summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml18
-rw-r--r--INSTALL.md6
-rw-r--r--Makefile280
-rw-r--r--asm-de/contest_link_80C2020.s5638
-rw-r--r--asm-de/contest_link_80C857C.s1408
-rw-r--r--asm-de/easy_chat.s10803
-rw-r--r--asm/battle_1.s94
-rw-r--r--asm/battle_2.s6434
-rw-r--r--asm/battle_9.s235
-rw-r--r--asm/battle_anim_81258BC.s732
-rw-r--r--asm/battle_anim_812C144.s40
-rw-r--r--asm/battle_anim_813F0F4.s20
-rwxr-xr-xasm/battle_intro.s1667
-rwxr-xr-xasm/bug.s825
-rw-r--r--asm/cable_car.s2880
-rw-r--r--asm/cable_car_util.s162
-rw-r--r--asm/contest_ai.s5292
-rw-r--r--asm/contest_effect.s2
-rw-r--r--asm/contest_link_80C2020.s353
-rw-r--r--asm/contest_link_80C857C.s1305
-rw-r--r--[-rwxr-xr-x]asm/current.s2
-rw-r--r--asm/cute_sketch.s3
-rwxr-xr-xasm/dark.s2013
-rwxr-xr-xasm/dragon.s1214
-rw-r--r--asm/easy_chat.s10732
-rw-r--r--[-rwxr-xr-x]asm/fight.s14
-rw-r--r--[-rwxr-xr-x]asm/flying.s2
-rw-r--r--[-rwxr-xr-x]asm/ghost.s8
-rw-r--r--[-rwxr-xr-x]asm/ground.s66
-rw-r--r--[-rwxr-xr-x]asm/ice.s4
-rw-r--r--asm/m4a_3.s2
-rw-r--r--asm/nakamura_debug_menu.s4686
-rw-r--r--asm/nohara_debug_menu.s2198
-rw-r--r--[-rwxr-xr-x]asm/normal.s34
-rw-r--r--[-rwxr-xr-x]asm/pc_screen_effect.s2
-rwxr-xr-xasm/poison.s364
-rw-r--r--asm/pokedex_area_screen.s2
-rw-r--r--asm/pokedex_cry_screen.s2
-rw-r--r--asm/pokemon_item_effect.s1969
-rw-r--r--asm/pokemon_storage_system.s13864
-rw-r--r--asm/pokenav.s126
-rwxr-xr-xasm/psychic.s2183
-rwxr-xr-xasm/rock.s1643
-rw-r--r--asm/roulette.s9658
-rw-r--r--asm/roulette_util.s779
-rw-r--r--asm/slot_machine.s10158
-rw-r--r--asm/taya_debug_window.s2054
-rw-r--r--asm/tomomichi_debug_menu.s8100
-rw-r--r--asm/unk_debug_menu_3.s747
-rw-r--r--asm/watanabe_debug_menu.s9578
-rw-r--r--[-rwxr-xr-x]asm/water.s46
-rwxr-xr-xasm/wisp_fire.s678
-rwxr-xr-xasmdiff_de_debug.sh7
-rw-r--r--charmap.txt5
-rw-r--r--common_syms/battle/battle_anim.txt3
-rw-r--r--common_syms/debug/mori_debug_menu.txt1
-rw-r--r--common_syms/debug/sound_check_menu.txt2
-rw-r--r--common_syms/engine/link.txt46
-rw-r--r--common_syms/engine/load_save.txt1
-rw-r--r--common_syms/engine/main.txt9
-rw-r--r--common_syms/engine/random.txt1
-rw-r--r--common_syms/engine/record_mixing.txt1
-rw-r--r--common_syms/engine/rtc.txt1
-rw-r--r--common_syms/engine/save.txt9
-rw-r--r--common_syms/engine/sound.txt1
-rw-r--r--common_syms/engine/sprite.txt12
-rw-r--r--common_syms/engine/string_util.txt1
-rw-r--r--common_syms/engine/task.txt1
-rw-r--r--common_syms/field/field_camera.txt3
-rw-r--r--common_syms/field/field_control_avatar.txt1
-rw-r--r--common_syms/field/field_map_obj.txt1
-rw-r--r--common_syms/field/fieldmap.txt1
-rw-r--r--common_syms/field/overworld.txt4
-rw-r--r--common_syms/field/start_menu.txt1
-rw-r--r--common_syms/field/tv.txt1
-rw-r--r--common_syms/libs/agb_flash.txt10
-rw-r--r--common_syms/libs/m4a_2.txt12
-rw-r--r--common_syms/pokemon/pokeblock_feed.txt12
-rw-r--r--common_syms/pokemon/pokedex.txt2
-rw-r--r--common_syms/pokemon/pokemon_1.txt4
-rw-r--r--common_syms/pokemon/pokemon_menu.txt2
-rw-r--r--common_syms/rom3.txt1
-rw-r--r--common_syms/scene/berry_blender.txt4
-rw-r--r--common_syms/scene/contest_painting.txt5
-rw-r--r--common_syms/scene/cute_sketch.txt0
-rw-r--r--common_syms/scene/egg_hatch.txt1
-rw-r--r--common_syms/scene/evolution_scene.txt1
-rw-r--r--common_syms/scene/intro.txt2
-rw-r--r--config.mk51
-rw-r--r--constants/trainer_constants.inc270
-rw-r--r--data-de/event_scripts.s353
-rw-r--r--data-de/field_move_scripts.inc36
-rw-r--r--data-de/strings2.s2
-rw-r--r--data-de/trainers.inc1388
-rw-r--r--data/battle_7.s25
-rw-r--r--data/battle_ai_scripts.s4
-rw-r--r--data/battle_anim.s1051
-rw-r--r--data/battle_anim_80A7E7C.s24
-rw-r--r--data/battle_anim_80CA710.s15
-rw-r--r--data/battle_anim_812C144.s2
-rw-r--r--data/battle_anim_813F0F4.s2
-rw-r--r--data/battle_anim_scripts.s4
-rw-r--r--data/battle_interface.s2
-rw-r--r--data/battle_moves.s2
-rw-r--r--data/battle_scripts_1.s14
-rw-r--r--data/battle_scripts_2.s6
-rw-r--r--data/btl_attrs.s452
-rw-r--r--data/cable_car.s102
-rw-r--r--data/contest.s2
-rw-r--r--data/contest_ai.s143
-rw-r--r--data/contest_ai_scripts.s4
-rw-r--r--data/contest_effect.s2
-rw-r--r--data/contest_link_80C2020.s2
-rw-r--r--data/cute_sketch.s2
-rw-r--r--data/data_8393054.s110
-rw-r--r--data/debug_menu_3.s106
-rw-r--r--data/debug_menu_nohara.s229
-rw-r--r--data/debug_menu_taya.s219
-rw-r--r--data/debug_menu_tomomichi.s2711
-rw-r--r--data/debug_menu_watanabe.s744
-rw-r--r--data/debug_mystery_event_menu.s20
-rw-r--r--data/easy_chat.s479
-rw-r--r--data/event_scripts.s351
-rw-r--r--data/field_effect_scripts.s4
-rw-r--r--data/field_move_scripts.inc36
-rw-r--r--data/graphics.s5
-rw-r--r--data/gray_sun.s21
-rw-r--r--data/item_ball_scripts.inc32
-rw-r--r--data/map_events.s2
-rw-r--r--data/maps.s2
-rw-r--r--data/maps/events/Route113.inc2
-rw-r--r--[-rwxr-xr-x]data/maps/events/Route124_DivingTreasureHuntersHouse.inc0
-rw-r--r--data/mon_attrs.s (renamed from data/data2a.s)330
-rw-r--r--[-rwxr-xr-x]data/pc_screen_effect.s2
-rw-r--r--data/pokedex_area_screen.s2
-rw-r--r--data/pokedex_cry_screen.s2
-rw-r--r--data/pokemon_storage_system.s688
-rw-r--r--data/pokenav.s2
-rw-r--r--data/roulette.s9
-rw-r--r--data/scripts/berry_tree.inc20
-rw-r--r--data/scripts/cable_club.inc41
-rw-r--r--data/scripts/contest_hall.inc179
-rw-r--r--data/scripts/day_care.inc46
-rw-r--r--data/scripts/debug.inc536
-rw-r--r--data/scripts/gabby_and_ty.inc34
-rw-r--r--data/scripts/magma_chimney.inc16
-rw-r--r--data/scripts/maps/AbandonedShip_CaptainsOffice.inc6
-rw-r--r--data/scripts/maps/AbandonedShip_Corridors_B1F.inc11
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc44
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc14
-rw-r--r--data/scripts/maps/AncientTomb.inc9
-rw-r--r--data/scripts/maps/AquaHideout_1F.inc6
-rw-r--r--data/scripts/maps/AquaHideout_B1F.inc3
-rw-r--r--data/scripts/maps/AquaHideout_B2F.inc2
-rw-r--r--data/scripts/maps/BattleTower_BattleRoom.inc22
-rw-r--r--data/scripts/maps/BattleTower_Lobby.inc42
-rw-r--r--data/scripts/maps/BattleTower_Outside.inc8
-rw-r--r--data/scripts/maps/CaveOfOrigin_1F.inc3
-rw-r--r--data/scripts/maps/CaveOfOrigin_B1F.inc3
-rw-r--r--data/scripts/maps/CaveOfOrigin_B2F.inc3
-rw-r--r--data/scripts/maps/CaveOfOrigin_B3F.inc3
-rw-r--r--data/scripts/maps/CaveOfOrigin_B4F.inc14
-rw-r--r--data/scripts/maps/DesertRuins.inc9
-rw-r--r--data/scripts/maps/DewfordTown.inc28
-rw-r--r--data/scripts/maps/DewfordTown_Gym.inc36
-rw-r--r--data/scripts/maps/DewfordTown_Hall.inc15
-rw-r--r--data/scripts/maps/DewfordTown_House2.inc3
-rw-r--r--data/scripts/maps/EverGrandeCity.inc3
-rw-r--r--data/scripts/maps/EverGrandeCity_ChampionsRoom.inc22
-rw-r--r--data/scripts/maps/EverGrandeCity_DrakesRoom.inc10
-rw-r--r--data/scripts/maps/EverGrandeCity_GlaciasRoom.inc10
-rw-r--r--data/scripts/maps/EverGrandeCity_PhoebesRoom.inc10
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonLeague.inc17
-rw-r--r--data/scripts/maps/EverGrandeCity_SidneysRoom.inc10
-rw-r--r--data/scripts/maps/FallarborTown.inc3
-rw-r--r--data/scripts/maps/FallarborTown_ContestLobby.inc7
-rw-r--r--data/scripts/maps/FallarborTown_House1.inc23
-rw-r--r--data/scripts/maps/FallarborTown_House2.inc7
-rw-r--r--data/scripts/maps/FallarborTown_PokemonCenter_1F.inc2
-rw-r--r--data/scripts/maps/FortreeCity.inc7
-rw-r--r--data/scripts/maps/FortreeCity_Gym.inc14
-rw-r--r--data/scripts/maps/FortreeCity_House1.inc9
-rw-r--r--data/scripts/maps/FortreeCity_House2.inc8
-rw-r--r--data/scripts/maps/FortreeCity_House4.inc9
-rw-r--r--data/scripts/maps/GraniteCave_1F.inc5
-rw-r--r--data/scripts/maps/GraniteCave_StevensRoom.inc14
-rw-r--r--data/scripts/maps/IslandCave.inc12
-rw-r--r--data/scripts/maps/JaggedPass.inc4
-rw-r--r--data/scripts/maps/LavaridgeTown.inc54
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_1F.inc46
-rw-r--r--data/scripts/maps/LavaridgeTown_HerbShop.inc3
-rw-r--r--data/scripts/maps/LilycoveCity.inc81
-rw-r--r--data/scripts/maps/LilycoveCity_ContestLobby.inc61
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc8
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc8
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc3
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc34
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc23
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc16
-rw-r--r--data/scripts/maps/LilycoveCity_Harbor.inc31
-rw-r--r--data/scripts/maps/LilycoveCity_House2.inc5
-rw-r--r--data/scripts/maps/LilycoveCity_House3.inc4
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc6
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc33
-rw-r--r--data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc14
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc3
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc16
-rw-r--r--data/scripts/maps/LittlerootTown.inc107
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc13
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc5
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_1F.inc23
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_2F.inc40
-rw-r--r--data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc42
-rw-r--r--data/scripts/maps/MagmaHideout_B1F.inc3
-rw-r--r--data/scripts/maps/MauvilleCity.inc32
-rw-r--r--data/scripts/maps/MauvilleCity_BikeShop.inc24
-rw-r--r--data/scripts/maps/MauvilleCity_GameCorner.inc110
-rw-r--r--data/scripts/maps/MauvilleCity_Gym.inc41
-rw-r--r--data/scripts/maps/MauvilleCity_House1.inc5
-rw-r--r--data/scripts/maps/MauvilleCity_House2.inc11
-rw-r--r--data/scripts/maps/MeteorFalls_1F_1R.inc5
-rw-r--r--data/scripts/maps/MossdeepCity.inc10
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_1F.inc28
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_B1F.inc6
-rw-r--r--data/scripts/maps/MossdeepCity_Gym.inc40
-rw-r--r--data/scripts/maps/MossdeepCity_House2.inc4
-rw-r--r--data/scripts/maps/MossdeepCity_House3.inc7
-rw-r--r--data/scripts/maps/MossdeepCity_House4.inc3
-rw-r--r--data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc7
-rw-r--r--data/scripts/maps/MossdeepCity_StevensHouse.inc26
-rw-r--r--data/scripts/maps/MtChimney.inc16
-rw-r--r--data/scripts/maps/MtChimney_CableCarStation.inc10
-rw-r--r--data/scripts/maps/MtPyre_1F.inc3
-rw-r--r--data/scripts/maps/MtPyre_Exterior.inc8
-rw-r--r--data/scripts/maps/MtPyre_Summit.inc61
-rw-r--r--data/scripts/maps/NewMauville_Entrance.inc8
-rw-r--r--data/scripts/maps/NewMauville_Inside.inc13
-rw-r--r--data/scripts/maps/OldaleTown.inc20
-rw-r--r--data/scripts/maps/OldaleTown_Mart.inc6
-rw-r--r--data/scripts/maps/OldaleTown_PokemonCenter_1F.inc3
-rw-r--r--data/scripts/maps/PacifidlogTown_House2.inc22
-rw-r--r--data/scripts/maps/PacifidlogTown_House3.inc9
-rw-r--r--data/scripts/maps/PacifidlogTown_House4.inc6
-rw-r--r--data/scripts/maps/PetalburgCity.inc26
-rw-r--r--data/scripts/maps/PetalburgCity_Gym.inc276
-rw-r--r--data/scripts/maps/PetalburgCity_Mart.inc3
-rw-r--r--data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc6
-rw-r--r--data/scripts/maps/PetalburgCity_WallysHouse.inc23
-rw-r--r--data/scripts/maps/PetalburgWoods.inc7
-rw-r--r--data/scripts/maps/Route101.inc2
-rw-r--r--data/scripts/maps/Route103.inc8
-rw-r--r--data/scripts/maps/Route104.inc23
-rw-r--r--data/scripts/maps/Route104_MrBrineysHouse.inc26
-rw-r--r--data/scripts/maps/Route104_PrettyPetalFlowerShop.inc38
-rw-r--r--data/scripts/maps/Route104_Prototype.inc42
-rw-r--r--data/scripts/maps/Route105.inc3
-rw-r--r--data/scripts/maps/Route109.inc10
-rw-r--r--data/scripts/maps/Route109_SeashoreHouse.inc22
-rw-r--r--data/scripts/maps/Route110.inc30
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc6
-rw-r--r--data/scripts/maps/Route110_TrickHouseEnd.inc38
-rw-r--r--data/scripts/maps/Route110_TrickHouseEntrance.inc103
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle2.inc16
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle3.inc38
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle5.inc104
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle7.inc87
-rw-r--r--data/scripts/maps/Route111.inc49
-rw-r--r--data/scripts/maps/Route111_OldLadysRestStop.inc12
-rw-r--r--data/scripts/maps/Route111_WinstrateFamilysHouse.inc6
-rw-r--r--data/scripts/maps/Route112_CableCarStation.inc10
-rw-r--r--data/scripts/maps/Route113.inc6
-rw-r--r--data/scripts/maps/Route113_GlassWorkshop.inc90
-rw-r--r--data/scripts/maps/Route114.inc8
-rw-r--r--data/scripts/maps/Route114_FossilManiacsHouse.inc5
-rw-r--r--data/scripts/maps/Route114_FossilManiacsTunnel.inc3
-rw-r--r--data/scripts/maps/Route114_LanettesHouse.inc13
-rw-r--r--data/scripts/maps/Route116.inc28
-rw-r--r--data/scripts/maps/Route116_TunnelersRestHouse.inc3
-rw-r--r--data/scripts/maps/Route117.inc3
-rw-r--r--data/scripts/maps/Route118.inc17
-rw-r--r--data/scripts/maps/Route119.inc35
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_1F.inc2
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_2F.inc9
-rw-r--r--data/scripts/maps/Route120.inc68
-rw-r--r--data/scripts/maps/Route121_SafariZoneEntrance.inc12
-rw-r--r--data/scripts/maps/Route123.inc5
-rw-r--r--data/scripts/maps/Route123_BerryMastersHouse.inc21
-rw-r--r--data/scripts/maps/Route124.inc3
-rw-r--r--data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc35
-rw-r--r--data/scripts/maps/Route125.inc3
-rw-r--r--data/scripts/maps/Route126.inc3
-rw-r--r--data/scripts/maps/Route127.inc3
-rw-r--r--data/scripts/maps/Route128.inc3
-rw-r--r--data/scripts/maps/Route131.inc3
-rw-r--r--data/scripts/maps/RustboroCity.inc53
-rw-r--r--data/scripts/maps/RustboroCity_CuttersHouse.inc5
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_1F.inc27
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_2F.inc44
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_3F.inc15
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_2F.inc3
-rw-r--r--data/scripts/maps/RustboroCity_Gym.inc16
-rw-r--r--data/scripts/maps/RustboroCity_House1.inc9
-rw-r--r--data/scripts/maps/RustboroCity_Mart.inc6
-rw-r--r--data/scripts/maps/RustboroCity_PokemonSchool.inc7
-rw-r--r--data/scripts/maps/RusturfTunnel.inc33
-rw-r--r--data/scripts/maps/SSTidalCorridor.inc47
-rw-r--r--data/scripts/maps/SSTidalRooms.inc5
-rw-r--r--data/scripts/maps/SafariZone_Southeast.inc6
-rw-r--r--data/scripts/maps/SeafloorCavern_Room9.inc14
-rw-r--r--data/scripts/maps/SealedChamber_InnerRoom.inc11
-rw-r--r--data/scripts/maps/SealedChamber_OuterRoom.inc6
-rw-r--r--data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc12
-rw-r--r--data/scripts/maps/ShoalCave_LowTideInnerRoom.inc45
-rw-r--r--data/scripts/maps/ShoalCave_LowTideLowerRoom.inc9
-rw-r--r--data/scripts/maps/ShoalCave_LowTideStairsRoom.inc6
-rw-r--r--data/scripts/maps/SkyPillar_Top.inc3
-rw-r--r--data/scripts/maps/SlateportCity.inc59
-rw-r--r--data/scripts/maps/SlateportCity_ContestHall.inc5
-rw-r--r--data/scripts/maps/SlateportCity_ContestLobby.inc7
-rw-r--r--data/scripts/maps/SlateportCity_Harbor.inc48
-rw-r--r--data/scripts/maps/SlateportCity_House1.inc14
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc17
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc14
-rw-r--r--data/scripts/maps/SlateportCity_PokemonFanClub.inc49
-rw-r--r--data/scripts/maps/SlateportCity_SternsShipyard_1F.inc12
-rw-r--r--data/scripts/maps/SootopolisCity.inc46
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_1F.inc31
-rw-r--r--data/scripts/maps/SootopolisCity_House1.inc5
-rw-r--r--data/scripts/maps/SootopolisCity_House2.inc10
-rw-r--r--data/scripts/maps/SootopolisCity_House3.inc4
-rw-r--r--data/scripts/maps/SootopolisCity_House6.inc9
-rw-r--r--data/scripts/maps/SootopolisCity_Mart.inc12
-rw-r--r--data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc12
-rw-r--r--data/scripts/maps/SouthernIsland_Exterior.inc4
-rw-r--r--data/scripts/maps/SouthernIsland_Interior.inc9
-rw-r--r--data/scripts/maps/Underwater_SeafloorCavern.inc6
-rw-r--r--data/scripts/maps/Underwater_SealedChamber.inc4
-rw-r--r--data/scripts/maps/UnknownMap_25_34.inc24
-rw-r--r--data/scripts/maps/VerdanturfTown.inc6
-rw-r--r--data/scripts/maps/VerdanturfTown_ContestLobby.inc9
-rw-r--r--data/scripts/maps/VerdanturfTown_WandasHouse.inc24
-rw-r--r--data/scripts/maps/VictoryRoad_1F.inc3
-rw-r--r--data/scripts/mauville_man.inc4
-rw-r--r--data/scripts/mystery_event_club.inc13
-rw-r--r--data/scripts/players_house.inc54
-rw-r--r--data/scripts/pokeblocks.inc36
-rw-r--r--data/scripts/safari_zone.inc16
-rw-r--r--data/scripts/secret_power_tm.inc12
-rw-r--r--data/scripts/tv.inc10
-rw-r--r--data/slot_machine.s1530
-rw-r--r--data/smokescreen.s (renamed from data/data2b.s)23
-rw-r--r--data/sound_data.s4
-rw-r--r--data/sparkle.s21
-rw-r--r--data/specials.inc3
-rw-r--r--data/start_menu_debug.s495
-rw-r--r--data/strings2.s2
-rw-r--r--data/tilesets.s2
-rw-r--r--data/trainer_money.inc108
-rw-r--r--data/trainers.inc1388
-rw-r--r--data/unk_debug_menu_3.s105
-rw-r--r--data/unused_hit.s29
-rw-r--r--data/unused_orb.s24
-rw-r--r--data/unused_orb2.s27
-rw-r--r--data/unused_paw.s8
-rwxr-xr-x[-rw-r--r--]de_after.sh3
-rwxr-xr-x[-rw-r--r--]de_before.sh3
-rw-r--r--fonts.mk2
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/blank_pal.pal0
-rw-r--r--graphics/debug/sprite_browser.pal51
-rw-r--r--graphics/debug/sprite_browser.pngbin0 -> 416 bytes
-rw-r--r--include/MPlayDef.s (renamed from sound/MPlayDef.s)0
-rw-r--r--include/battle.h189
-rw-r--r--include/battle_ai.h9
-rw-r--r--include/battle_anim.h4
-rw-r--r--include/battle_anim_80CA710.h2
-rw-r--r--include/battle_message.h137
-rw-r--r--include/battle_script_commands.h65
-rw-r--r--include/battle_string_ids.h387
-rw-r--r--include/battle_util.h29
-rw-r--r--include/cable_car_util.h13
-rw-r--r--include/cable_club.h3
-rw-r--r--include/clock.h1
-rw-r--r--include/config.h22
-rw-r--r--include/constants/battle_constants.h74
-rw-r--r--include/constants/decorations.h2
-rw-r--r--include/constants/easy_chat.h4
-rw-r--r--include/constants/items.h133
-rw-r--r--include/constants/songs.h708
-rw-r--r--include/constants/weather.h4
-rw-r--r--include/contest.h196
-rw-r--r--include/contest_ai.h16
-rw-r--r--include/credits.h11
-rw-r--r--include/data2.h7
-rw-r--r--include/debug.h10
-rw-r--r--include/decoration.h7
-rw-r--r--include/dewford_trend.h1
-rw-r--r--include/easy_chat.h120
-rw-r--r--[-rwxr-xr-x]include/ewram.h43
-rw-r--r--include/field_control_avatar.h1
-rw-r--r--include/field_effect.h2
-rw-r--r--include/field_fadetransition.h1
-rw-r--r--include/field_map_obj.h2
-rw-r--r--include/field_weather.h103
-rw-r--r--include/fldeff_poison.h4
-rw-r--r--include/gba/gba.h1
-rw-r--r--include/gba/isagbprint.h50
-rw-r--r--include/gba/macro.h89
-rw-r--r--include/global.fieldmap.h3
-rw-r--r--include/global.h23
-rw-r--r--include/graphics.h699
-rw-r--r--include/hof_pc.h12
-rw-r--r--include/item_menu.h2
-rw-r--r--include/link.h6
-rw-r--r--include/m4a.h1
-rw-r--r--include/macros.inc (renamed from asm/macros.inc)12
-rw-r--r--include/macros/asm.inc (renamed from asm/macros/asm.inc)0
-rw-r--r--include/macros/battle_ai_script.inc (renamed from asm/macros/battle_ai_script.inc)0
-rw-r--r--include/macros/battle_anim.inc (renamed from asm/macros/battle_anim.inc)0
-rw-r--r--include/macros/battle_script.inc (renamed from asm/macros/battle_script.inc)0
-rw-r--r--include/macros/contest_ai_script.inc (renamed from asm/macros/contest_ai_script.inc)0
-rw-r--r--include/macros/ec.inc (renamed from asm/macros/ec.inc)0
-rw-r--r--include/macros/event.inc (renamed from asm/macros/event.inc)94
-rw-r--r--include/macros/field_effect_script.inc (renamed from asm/macros/field_effect_script.inc)0
-rw-r--r--include/macros/function.inc (renamed from asm/macros/function.inc)0
-rw-r--r--include/macros/m4a.inc (renamed from asm/macros/m4a.inc)0
-rw-r--r--include/macros/map.inc (renamed from asm/macros/map.inc)0
-rw-r--r--include/macros/movement.inc (renamed from asm/macros/movement.inc)0
-rw-r--r--include/macros/music_voice.inc (renamed from asm/macros/music_voice.inc)0
-rw-r--r--include/macros/pokemon_data.inc (renamed from asm/macros/pokemon_data.inc)0
-rw-r--r--include/main.h2
-rw-r--r--include/matsuda_debug_menu.h1
-rw-r--r--include/menu.h63
-rw-r--r--include/menu_cursor.h8
-rw-r--r--include/menu_helpers.h27
-rw-r--r--include/mon_markings.h31
-rw-r--r--include/money.h2
-rw-r--r--include/mystery_event_menu.h1
-rw-r--r--include/overworld.h2
-rw-r--r--include/pc_screen_effect.h21
-rw-r--r--include/pokeblock.h14
-rw-r--r--include/pokedex.h2
-rw-r--r--include/pokemon.h34
-rw-r--r--include/pokemon_icon.h4
-rw-r--r--include/pokemon_item_effect.h2
-rw-r--r--include/pokemon_storage_system.h298
-rw-r--r--include/region_map.h1
-rw-r--r--[-rwxr-xr-x]include/region_map_sections.h0
-rw-r--r--include/reset_rtc_screen.h1
-rw-r--r--include/roamer.h2
-rw-r--r--include/rom_8077ABC.h12
-rw-r--r--include/roulette.h38
-rw-r--r--include/roulette_util.h14
-rw-r--r--include/save.h83
-rw-r--r--include/scanline_effect.h48
-rw-r--r--include/shop.h27
-rw-r--r--include/slot_machine.h76
-rw-r--r--include/sprite.h11
-rw-r--r--include/strings.h2
-rw-r--r--include/text.h184
-rw-r--r--include/text_window.h22
-rw-r--r--include/trade.h1
-rw-r--r--include/trainer.h270
-rw-r--r--include/trainer_card.h8
-rw-r--r--include/tv.h1
-rw-r--r--include/unknown_task.h42
-rw-r--r--ld_script.sed14
-rw-r--r--ld_script.txt175
-rw-r--r--misc.mk284
-rw-r--r--override-de.mk10
-rw-r--r--ruby_de_debug.sha11
-rw-r--r--sound/direct_sound_data.inc1248
-rw-r--r--sound/direct_sound_samples/8654C20.aifbin5169 -> 0 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_abra.aif (renamed from sound/direct_sound_samples/cry_abra.aif)bin11660 -> 11660 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_absol.aif (renamed from sound/direct_sound_samples/cry_absol.aif)bin5256 -> 5256 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_aerodactyl.aif (renamed from sound/direct_sound_samples/cry_aerodactyl.aif)bin12142 -> 12142 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_aggron.aif (renamed from sound/direct_sound_samples/cry_aggron.aif)bin12776 -> 12776 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_aipom.aif (renamed from sound/direct_sound_samples/cry_aipom.aif)bin7058 -> 7058 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_alakazam.aif (renamed from sound/direct_sound_samples/cry_alakazam.aif)bin15740 -> 15740 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_altaria.aif (renamed from sound/direct_sound_samples/cry_altaria.aif)bin5564 -> 5564 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ampharos.aif (renamed from sound/direct_sound_samples/cry_ampharos.aif)bin8242 -> 8242 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_anorith.aif (renamed from sound/direct_sound_samples/cry_anorith.aif)bin5862 -> 5862 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_arbok.aif (renamed from sound/direct_sound_samples/cry_arbok.aif)bin9648 -> 9648 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_arcanine.aif (renamed from sound/direct_sound_samples/cry_arcanine.aif)bin8602 -> 8602 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ariados.aif (renamed from sound/direct_sound_samples/cry_ariados.aif)bin6170 -> 6170 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_armaldo.aif (renamed from sound/direct_sound_samples/cry_armaldo.aif)bin11380 -> 11380 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_aron.aif (renamed from sound/direct_sound_samples/cry_aron.aif)bin4600 -> 4600 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_articuno.aif (renamed from sound/direct_sound_samples/cry_articuno.aif)bin11792 -> 11792 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_azumarill.aif (renamed from sound/direct_sound_samples/cry_azumarill.aif)bin8452 -> 8452 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_azurill.aif (renamed from sound/direct_sound_samples/cry_azurill.aif)bin5212 -> 5212 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_bagon.aif (renamed from sound/direct_sound_samples/cry_bagon.aif)bin3934 -> 3934 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_baltoy.aif (renamed from sound/direct_sound_samples/cry_baltoy.aif)bin6264 -> 6264 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_banette.aif (renamed from sound/direct_sound_samples/cry_banette.aif)bin6334 -> 6334 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_barboach.aif (renamed from sound/direct_sound_samples/cry_barboach.aif)bin4632 -> 4632 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_bayleef.aif (renamed from sound/direct_sound_samples/cry_bayleef.aif)bin4414 -> 4414 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_beautifly.aif (renamed from sound/direct_sound_samples/cry_beautifly.aif)bin4128 -> 4128 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_beedrill.aif (renamed from sound/direct_sound_samples/cry_beedrill.aif)bin9656 -> 9656 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_beldum.aif (renamed from sound/direct_sound_samples/cry_beldum.aif)bin4828 -> 4828 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_bellossom.aif (renamed from sound/direct_sound_samples/cry_bellossom.aif)bin7042 -> 7042 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_bellsprout.aif (renamed from sound/direct_sound_samples/cry_bellsprout.aif)bin3792 -> 3792 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_blastoise.aif (renamed from sound/direct_sound_samples/cry_blastoise.aif)bin9622 -> 9622 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_blaziken.aif (renamed from sound/direct_sound_samples/cry_blaziken.aif)bin15690 -> 15690 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_blissey.aif (renamed from sound/direct_sound_samples/cry_blissey.aif)bin8278 -> 8278 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_breloom.aif (renamed from sound/direct_sound_samples/cry_breloom.aif)bin6376 -> 6376 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_bulbasaur.aif (renamed from sound/direct_sound_samples/cry_bulbasaur.aif)bin8266 -> 8266 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_butterfree.aif (renamed from sound/direct_sound_samples/cry_butterfree.aif)bin5026 -> 5026 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cacnea.aif (renamed from sound/direct_sound_samples/cry_cacnea.aif)bin4488 -> 4488 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cacturne.aif (renamed from sound/direct_sound_samples/cry_cacturne.aif)bin11310 -> 11310 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_camerupt.aif (renamed from sound/direct_sound_samples/cry_camerupt.aif)bin11526 -> 11526 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_carvanha.aif (renamed from sound/direct_sound_samples/cry_carvanha.aif)bin5048 -> 5048 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cascoon.aif (renamed from sound/direct_sound_samples/cry_cascoon.aif)bin8126 -> 8126 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_castform.aif (renamed from sound/direct_sound_samples/cry_castform.aif)bin6302 -> 6302 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_caterpie.aif (renamed from sound/direct_sound_samples/cry_caterpie.aif)bin4192 -> 4192 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_celebi.aif (renamed from sound/direct_sound_samples/cry_celebi.aif)bin7230 -> 7230 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_chansey.aif (renamed from sound/direct_sound_samples/cry_chansey.aif)bin7390 -> 7390 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_charizard.aif (renamed from sound/direct_sound_samples/cry_charizard.aif)bin9622 -> 9622 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_charmander.aif (renamed from sound/direct_sound_samples/cry_charmander.aif)bin7216 -> 7216 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_charmeleon.aif (renamed from sound/direct_sound_samples/cry_charmeleon.aif)bin7248 -> 7248 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_chikorita.aif (renamed from sound/direct_sound_samples/cry_chikorita.aif)bin2654 -> 2654 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_chimecho.aif (renamed from sound/direct_sound_samples/cry_chimecho.aif)bin5040 -> 5040 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_chinchou.aif (renamed from sound/direct_sound_samples/cry_chinchou.aif)bin6346 -> 6346 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_clamperl.aif (renamed from sound/direct_sound_samples/cry_clamperl.aif)bin9142 -> 9142 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_claydol.aif (renamed from sound/direct_sound_samples/cry_claydol.aif)bin9668 -> 9668 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_clefable.aif (renamed from sound/direct_sound_samples/cry_clefable.aif)bin5294 -> 5294 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_clefairy.aif (renamed from sound/direct_sound_samples/cry_clefairy.aif)bin4234 -> 4234 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cleffa.aif (renamed from sound/direct_sound_samples/cry_cleffa.aif)bin2992 -> 2992 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cloyster.aif (renamed from sound/direct_sound_samples/cry_cloyster.aif)bin10354 -> 10354 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_combusken.aif (renamed from sound/direct_sound_samples/cry_combusken.aif)bin14360 -> 14360 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_corphish.aif (renamed from sound/direct_sound_samples/cry_corphish.aif)bin6010 -> 6010 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_corsola.aif (renamed from sound/direct_sound_samples/cry_corsola.aif)bin6440 -> 6440 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cradily.aif (renamed from sound/direct_sound_samples/cry_cradily.aif)bin14542 -> 14542 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_crawdaunt.aif (renamed from sound/direct_sound_samples/cry_crawdaunt.aif)bin12316 -> 12316 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_crobat.aif (renamed from sound/direct_sound_samples/cry_crobat.aif)bin11562 -> 11562 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_croconaw.aif (renamed from sound/direct_sound_samples/cry_croconaw.aif)bin10096 -> 10096 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cubone.aif (renamed from sound/direct_sound_samples/cry_cubone.aif)bin7558 -> 7558 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_cyndaquil.aif (renamed from sound/direct_sound_samples/cry_cyndaquil.aif)bin3528 -> 3528 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_delcatty.aif (renamed from sound/direct_sound_samples/cry_delcatty.aif)bin10518 -> 10518 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_delibird.aif (renamed from sound/direct_sound_samples/cry_delibird.aif)bin8094 -> 8094 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_deoxys.aif (renamed from sound/direct_sound_samples/cry_deoxys.aif)bin10388 -> 10388 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dewgong.aif (renamed from sound/direct_sound_samples/cry_dewgong.aif)bin10546 -> 10546 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_diglett.aif (renamed from sound/direct_sound_samples/cry_diglett.aif)bin9698 -> 9698 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ditto.aif (renamed from sound/direct_sound_samples/cry_ditto.aif)bin5566 -> 5566 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dodrio.aif (renamed from sound/direct_sound_samples/cry_dodrio.aif)bin9712 -> 9712 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_doduo.aif (renamed from sound/direct_sound_samples/cry_doduo.aif)bin9616 -> 9616 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_donphan.aif (renamed from sound/direct_sound_samples/cry_donphan.aif)bin8554 -> 8554 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dragonair.aif (renamed from sound/direct_sound_samples/cry_dragonair.aif)bin8318 -> 8318 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dragonite.aif (renamed from sound/direct_sound_samples/cry_dragonite.aif)bin9502 -> 9502 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dratini.aif (renamed from sound/direct_sound_samples/cry_dratini.aif)bin5812 -> 5812 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_drowzee.aif (renamed from sound/direct_sound_samples/cry_drowzee.aif)bin14494 -> 14494 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dugtrio.aif (renamed from sound/direct_sound_samples/cry_dugtrio.aif)bin9686 -> 9686 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dunsparce.aif (renamed from sound/direct_sound_samples/cry_dunsparce.aif)bin7926 -> 7926 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dusclops.aif (renamed from sound/direct_sound_samples/cry_dusclops.aif)bin6858 -> 6858 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_duskull.aif (renamed from sound/direct_sound_samples/cry_duskull.aif)bin5310 -> 5310 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_dustox.aif (renamed from sound/direct_sound_samples/cry_dustox.aif)bin6338 -> 6338 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_eevee.aif (renamed from sound/direct_sound_samples/cry_eevee.aif)bin7104 -> 7104 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ekans.aif (renamed from sound/direct_sound_samples/cry_ekans.aif)bin9626 -> 9626 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_electabuzz.aif (renamed from sound/direct_sound_samples/cry_electabuzz.aif)bin15380 -> 15380 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_electrike.aif (renamed from sound/direct_sound_samples/cry_electrike.aif)bin6186 -> 6186 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_electrode.aif (renamed from sound/direct_sound_samples/cry_electrode.aif)bin12564 -> 12564 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_elekid.aif (renamed from sound/direct_sound_samples/cry_elekid.aif)bin5284 -> 5284 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_entei.aif (renamed from sound/direct_sound_samples/cry_entei.aif)bin10198 -> 10198 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_espeon.aif (renamed from sound/direct_sound_samples/cry_espeon.aif)bin9828 -> 9828 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_exeggcute.aif (renamed from sound/direct_sound_samples/cry_exeggcute.aif)bin9416 -> 9416 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_exeggutor.aif (renamed from sound/direct_sound_samples/cry_exeggutor.aif)bin15880 -> 15880 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_exploud.aif (renamed from sound/direct_sound_samples/cry_exploud.aif)bin14086 -> 14086 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_farfetchd.aif (renamed from sound/direct_sound_samples/cry_farfetchd.aif)bin3766 -> 3766 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_fearow.aif (renamed from sound/direct_sound_samples/cry_fearow.aif)bin8602 -> 8602 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_feebas.aif (renamed from sound/direct_sound_samples/cry_feebas.aif)bin3932 -> 3932 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_feraligatr.aif (renamed from sound/direct_sound_samples/cry_feraligatr.aif)bin12712 -> 12712 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_flaaffy.aif (renamed from sound/direct_sound_samples/cry_flaaffy.aif)bin6854 -> 6854 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_flareon.aif (renamed from sound/direct_sound_samples/cry_flareon.aif)bin7748 -> 7748 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_flygon.aif (renamed from sound/direct_sound_samples/cry_flygon.aif)bin12974 -> 12974 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_forretress.aif (renamed from sound/direct_sound_samples/cry_forretress.aif)bin9990 -> 9990 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_furret.aif (renamed from sound/direct_sound_samples/cry_furret.aif)bin3168 -> 3168 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gardevoir.aif (renamed from sound/direct_sound_samples/cry_gardevoir.aif)bin12154 -> 12154 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gastly.aif (renamed from sound/direct_sound_samples/cry_gastly.aif)bin11620 -> 11620 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gengar.aif (renamed from sound/direct_sound_samples/cry_gengar.aif)bin7372 -> 7372 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_geodude.aif (renamed from sound/direct_sound_samples/cry_geodude.aif)bin11816 -> 11816 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_girafarig.aif (renamed from sound/direct_sound_samples/cry_girafarig.aif)bin7346 -> 7346 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_glalie.aif (renamed from sound/direct_sound_samples/cry_glalie.aif)bin10420 -> 10420 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gligar.aif (renamed from sound/direct_sound_samples/cry_gligar.aif)bin6068 -> 6068 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gloom.aif (renamed from sound/direct_sound_samples/cry_gloom.aif)bin6246 -> 6246 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_golbat.aif (renamed from sound/direct_sound_samples/cry_golbat.aif)bin9674 -> 9674 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_goldeen.aif (renamed from sound/direct_sound_samples/cry_goldeen.aif)bin4936 -> 4936 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_golduck.aif (renamed from sound/direct_sound_samples/cry_golduck.aif)bin5646 -> 5646 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_golem.aif (renamed from sound/direct_sound_samples/cry_golem.aif)bin7080 -> 7080 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gorebyss.aif (renamed from sound/direct_sound_samples/cry_gorebyss.aif)bin11176 -> 11176 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_granbull.aif (renamed from sound/direct_sound_samples/cry_granbull.aif)bin11782 -> 11782 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_graveler.aif (renamed from sound/direct_sound_samples/cry_graveler.aif)bin13900 -> 13900 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_grimer.aif (renamed from sound/direct_sound_samples/cry_grimer.aif)bin5274 -> 5274 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_groudon.aif (renamed from sound/direct_sound_samples/cry_groudon.aif)bin18438 -> 18438 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_grovyle.aif (renamed from sound/direct_sound_samples/cry_grovyle.aif)bin10198 -> 10198 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_growlithe.aif (renamed from sound/direct_sound_samples/cry_growlithe.aif)bin6696 -> 6696 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_grumpig.aif (renamed from sound/direct_sound_samples/cry_grumpig.aif)bin6318 -> 6318 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gulpin.aif (renamed from sound/direct_sound_samples/cry_gulpin.aif)bin4028 -> 4028 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_gyarados.aif (renamed from sound/direct_sound_samples/cry_gyarados.aif)bin10078 -> 10078 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hariyama.aif (renamed from sound/direct_sound_samples/cry_hariyama.aif)bin8348 -> 8348 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_haunter.aif (renamed from sound/direct_sound_samples/cry_haunter.aif)bin11714 -> 11714 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_heracross.aif (renamed from sound/direct_sound_samples/cry_heracross.aif)bin9144 -> 9144 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hitmonchan.aif (renamed from sound/direct_sound_samples/cry_hitmonchan.aif)bin8906 -> 8906 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hitmonlee.aif (renamed from sound/direct_sound_samples/cry_hitmonlee.aif)bin9318 -> 9318 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hitmontop.aif (renamed from sound/direct_sound_samples/cry_hitmontop.aif)bin6936 -> 6936 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ho_oh.aif (renamed from sound/direct_sound_samples/cry_ho_oh.aif)bin11260 -> 11260 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hoothoot.aif (renamed from sound/direct_sound_samples/cry_hoothoot.aif)bin5458 -> 5458 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hoppip.aif (renamed from sound/direct_sound_samples/cry_hoppip.aif)bin4226 -> 4226 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_horsea.aif (renamed from sound/direct_sound_samples/cry_horsea.aif)bin4754 -> 4754 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_houndoom.aif (renamed from sound/direct_sound_samples/cry_houndoom.aif)bin9820 -> 9820 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_houndour.aif (renamed from sound/direct_sound_samples/cry_houndour.aif)bin6332 -> 6332 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_huntail.aif (renamed from sound/direct_sound_samples/cry_huntail.aif)bin7944 -> 7944 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_hypno.aif (renamed from sound/direct_sound_samples/cry_hypno.aif)bin14450 -> 14450 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_igglybuff.aif (renamed from sound/direct_sound_samples/cry_igglybuff.aif)bin3518 -> 3518 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_illumise.aif (renamed from sound/direct_sound_samples/cry_illumise.aif)bin8536 -> 8536 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ivysaur.aif (renamed from sound/direct_sound_samples/cry_ivysaur.aif)bin8270 -> 8270 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_jigglypuff.aif (renamed from sound/direct_sound_samples/cry_jigglypuff.aif)bin2720 -> 2720 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_jirachi.aif (renamed from sound/direct_sound_samples/cry_jirachi.aif)bin6758 -> 6758 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_jolteon.aif (renamed from sound/direct_sound_samples/cry_jolteon.aif)bin7904 -> 7904 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_jumpluff.aif (renamed from sound/direct_sound_samples/cry_jumpluff.aif)bin8106 -> 8106 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_jynx.aif (renamed from sound/direct_sound_samples/cry_jynx.aif)bin23606 -> 23606 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kabuto.aif (renamed from sound/direct_sound_samples/cry_kabuto.aif)bin6170 -> 6170 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kabutops.aif (renamed from sound/direct_sound_samples/cry_kabutops.aif)bin6867 -> 6867 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kadabra.aif (renamed from sound/direct_sound_samples/cry_kadabra.aif)bin13408 -> 13408 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kakuna.aif (renamed from sound/direct_sound_samples/cry_kakuna.aif)bin9104 -> 9104 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kangaskhan.aif (renamed from sound/direct_sound_samples/cry_kangaskhan.aif)bin9334 -> 9334 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kecleon.aif (renamed from sound/direct_sound_samples/cry_kecleon.aif)bin4202 -> 4202 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kingdra.aif (renamed from sound/direct_sound_samples/cry_kingdra.aif)bin6922 -> 6922 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kingler.aif (renamed from sound/direct_sound_samples/cry_kingler.aif)bin12132 -> 12132 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kirlia.aif (renamed from sound/direct_sound_samples/cry_kirlia.aif)bin6100 -> 6100 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_koffing.aif (renamed from sound/direct_sound_samples/cry_koffing.aif)bin10154 -> 10154 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_krabby.aif (renamed from sound/direct_sound_samples/cry_krabby.aif)bin12112 -> 12112 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_kyogre.aif (renamed from sound/direct_sound_samples/cry_kyogre.aif)bin17782 -> 17782 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lairon.aif (renamed from sound/direct_sound_samples/cry_lairon.aif)bin10392 -> 10392 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lanturn.aif (renamed from sound/direct_sound_samples/cry_lanturn.aif)bin5282 -> 5282 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lapras.aif (renamed from sound/direct_sound_samples/cry_lapras.aif)bin7408 -> 7408 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_larvitar.aif (renamed from sound/direct_sound_samples/cry_larvitar.aif)bin6350 -> 6350 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_latias.aif (renamed from sound/direct_sound_samples/cry_latias.aif)bin6098 -> 6098 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_latios.aif (renamed from sound/direct_sound_samples/cry_latios.aif)bin10958 -> 10958 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ledian.aif (renamed from sound/direct_sound_samples/cry_ledian.aif)bin4214 -> 4214 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ledyba.aif (renamed from sound/direct_sound_samples/cry_ledyba.aif)bin3506 -> 3506 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lickitung.aif (renamed from sound/direct_sound_samples/cry_lickitung.aif)bin7571 -> 7571 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lileep.aif (renamed from sound/direct_sound_samples/cry_lileep.aif)bin4838 -> 4838 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_linoone.aif (renamed from sound/direct_sound_samples/cry_linoone.aif)bin15248 -> 15248 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lombre.aif (renamed from sound/direct_sound_samples/cry_lombre.aif)bin7282 -> 7282 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lotad.aif (renamed from sound/direct_sound_samples/cry_lotad.aif)bin2232 -> 2232 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_loudred.aif (renamed from sound/direct_sound_samples/cry_loudred.aif)bin6582 -> 6582 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ludicolo.aif (renamed from sound/direct_sound_samples/cry_ludicolo.aif)bin8398 -> 8398 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lugia.aif (renamed from sound/direct_sound_samples/cry_lugia.aif)bin18900 -> 18900 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_lunatone.aif (renamed from sound/direct_sound_samples/cry_lunatone.aif)bin11956 -> 11956 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_luvdisc.aif (renamed from sound/direct_sound_samples/cry_luvdisc.aif)bin2456 -> 2456 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_machamp.aif (renamed from sound/direct_sound_samples/cry_machamp.aif)bin8256 -> 8256 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_machoke.aif (renamed from sound/direct_sound_samples/cry_machoke.aif)bin6782 -> 6782 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_machop.aif (renamed from sound/direct_sound_samples/cry_machop.aif)bin6696 -> 6696 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_magby.aif (renamed from sound/direct_sound_samples/cry_magby.aif)bin7218 -> 7218 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_magcargo.aif (renamed from sound/direct_sound_samples/cry_magcargo.aif)bin10486 -> 10486 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_magikarp.aif (renamed from sound/direct_sound_samples/cry_magikarp.aif)bin9492 -> 9492 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_magmar.aif (renamed from sound/direct_sound_samples/cry_magmar.aif)bin7738 -> 7738 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_magnemite.aif (renamed from sound/direct_sound_samples/cry_magnemite.aif)bin9610 -> 9610 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_magneton.aif (renamed from sound/direct_sound_samples/cry_magneton.aif)bin11914 -> 11914 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_makuhita.aif (renamed from sound/direct_sound_samples/cry_makuhita.aif)bin3704 -> 3704 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_manectric.aif (renamed from sound/direct_sound_samples/cry_manectric.aif)bin10492 -> 10492 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mankey.aif (renamed from sound/direct_sound_samples/cry_mankey.aif)bin8178 -> 8178 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mantine.aif (renamed from sound/direct_sound_samples/cry_mantine.aif)bin7884 -> 7884 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mareep.aif (renamed from sound/direct_sound_samples/cry_mareep.aif)bin3694 -> 3694 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_marill.aif (renamed from sound/direct_sound_samples/cry_marill.aif)bin6538 -> 6538 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_marowak.aif (renamed from sound/direct_sound_samples/cry_marowak.aif)bin7216 -> 7216 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_marshtomp.aif (renamed from sound/direct_sound_samples/cry_marshtomp.aif)bin8498 -> 8498 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_masquerain.aif (renamed from sound/direct_sound_samples/cry_masquerain.aif)bin9830 -> 9830 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mawile.aif (renamed from sound/direct_sound_samples/cry_mawile.aif)bin5756 -> 5756 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_medicham.aif (renamed from sound/direct_sound_samples/cry_medicham.aif)bin8246 -> 8246 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_meditite.aif (renamed from sound/direct_sound_samples/cry_meditite.aif)bin4078 -> 4078 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_meganium.aif (renamed from sound/direct_sound_samples/cry_meganium.aif)bin8100 -> 8100 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_meowth.aif (renamed from sound/direct_sound_samples/cry_meowth.aif)bin4796 -> 4796 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_metagross.aif (renamed from sound/direct_sound_samples/cry_metagross.aif)bin19644 -> 19644 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_metang.aif (renamed from sound/direct_sound_samples/cry_metang.aif)bin9398 -> 9398 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_metapod.aif (renamed from sound/direct_sound_samples/cry_metapod.aif)bin11622 -> 11622 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mew.aif (renamed from sound/direct_sound_samples/cry_mew.aif)bin15146 -> 15146 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mewtwo.aif (renamed from sound/direct_sound_samples/cry_mewtwo.aif)bin15144 -> 15144 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mightyena.aif (renamed from sound/direct_sound_samples/cry_mightyena.aif)bin9748 -> 9748 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_milotic.aif (renamed from sound/direct_sound_samples/cry_milotic.aif)bin19542 -> 19542 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_miltank.aif (renamed from sound/direct_sound_samples/cry_miltank.aif)bin7424 -> 7424 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_minun.aif (renamed from sound/direct_sound_samples/cry_minun.aif)bin8004 -> 8004 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_misdreavus.aif (renamed from sound/direct_sound_samples/cry_misdreavus.aif)bin5816 -> 5816 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_moltres.aif (renamed from sound/direct_sound_samples/cry_moltres.aif)bin11796 -> 11796 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mr_mime.aif (renamed from sound/direct_sound_samples/cry_mr_mime.aif)bin9446 -> 9446 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_mudkip.aif (renamed from sound/direct_sound_samples/cry_mudkip.aif)bin3776 -> 3776 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_muk.aif (renamed from sound/direct_sound_samples/cry_muk.aif)bin7374 -> 7374 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_murkrow.aif (renamed from sound/direct_sound_samples/cry_murkrow.aif)bin8370 -> 8370 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_natu.aif (renamed from sound/direct_sound_samples/cry_natu.aif)bin5294 -> 5294 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nidoking.aif (renamed from sound/direct_sound_samples/cry_nidoking.aif)bin12176 -> 12176 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nidoqueen.aif (renamed from sound/direct_sound_samples/cry_nidoqueen.aif)bin8424 -> 8424 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nidoran_f.aif (renamed from sound/direct_sound_samples/cry_nidoran_f.aif)bin4858 -> 4858 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nidoran_m.aif (renamed from sound/direct_sound_samples/cry_nidoran_m.aif)bin5216 -> 5216 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nidorina.aif (renamed from sound/direct_sound_samples/cry_nidorina.aif)bin6394 -> 6394 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nidorino.aif (renamed from sound/direct_sound_samples/cry_nidorino.aif)bin6042 -> 6042 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nincada.aif (renamed from sound/direct_sound_samples/cry_nincada.aif)bin3244 -> 3244 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ninetales.aif (renamed from sound/direct_sound_samples/cry_ninetales.aif)bin12174 -> 12174 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ninjask.aif (renamed from sound/direct_sound_samples/cry_ninjask.aif)bin6084 -> 6084 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_noctowl.aif (renamed from sound/direct_sound_samples/cry_noctowl.aif)bin10564 -> 10564 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_none.aif (renamed from sound/direct_sound_samples/cry_none.aif)bin8286 -> 8286 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nosepass.aif (renamed from sound/direct_sound_samples/cry_nosepass.aif)bin6696 -> 6696 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_numel.aif (renamed from sound/direct_sound_samples/cry_numel.aif)bin4664 -> 4664 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_nuzleaf.aif (renamed from sound/direct_sound_samples/cry_nuzleaf.aif)bin5712 -> 5712 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_octillery.aif (renamed from sound/direct_sound_samples/cry_octillery.aif)bin13084 -> 13084 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_oddish.aif (renamed from sound/direct_sound_samples/cry_oddish.aif)bin7298 -> 7298 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_omanyte.aif (renamed from sound/direct_sound_samples/cry_omanyte.aif)bin6672 -> 6672 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_omastar.aif (renamed from sound/direct_sound_samples/cry_omastar.aif)bin6666 -> 6666 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_onix.aif (renamed from sound/direct_sound_samples/cry_onix.aif)bin12340 -> 12340 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_paras.aif (renamed from sound/direct_sound_samples/cry_paras.aif)bin13924 -> 13924 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_parasect.aif (renamed from sound/direct_sound_samples/cry_parasect.aif)bin15140 -> 15140 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pelipper.aif (renamed from sound/direct_sound_samples/cry_pelipper.aif)bin5894 -> 5894 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_persian.aif (renamed from sound/direct_sound_samples/cry_persian.aif)bin9412 -> 9412 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_phanpy.aif (renamed from sound/direct_sound_samples/cry_phanpy.aif)bin5664 -> 5664 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pichu.aif (renamed from sound/direct_sound_samples/cry_pichu.aif)bin3684 -> 3684 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pidgeot.aif (renamed from sound/direct_sound_samples/cry_pidgeot.aif)bin8590 -> 8590 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pidgeotto.aif (renamed from sound/direct_sound_samples/cry_pidgeotto.aif)bin7512 -> 7512 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pidgey.aif (renamed from sound/direct_sound_samples/cry_pidgey.aif)bin1984 -> 1984 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pikachu.aif (renamed from sound/direct_sound_samples/cry_pikachu.aif)bin8316 -> 8316 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_piloswine.aif (renamed from sound/direct_sound_samples/cry_piloswine.aif)bin6480 -> 6480 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pineco.aif (renamed from sound/direct_sound_samples/cry_pineco.aif)bin6690 -> 6690 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pinsir.aif (renamed from sound/direct_sound_samples/cry_pinsir.aif)bin6186 -> 6186 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_plusle.aif (renamed from sound/direct_sound_samples/cry_plusle.aif)bin4504 -> 4504 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_politoed.aif (renamed from sound/direct_sound_samples/cry_politoed.aif)bin9114 -> 9114 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_poliwag.aif (renamed from sound/direct_sound_samples/cry_poliwag.aif)bin5562 -> 5562 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_poliwhirl.aif (renamed from sound/direct_sound_samples/cry_poliwhirl.aif)bin3354 -> 3354 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_poliwrath.aif (renamed from sound/direct_sound_samples/cry_poliwrath.aif)bin5582 -> 5582 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ponyta.aif (renamed from sound/direct_sound_samples/cry_ponyta.aif)bin7524 -> 7524 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_poochyena.aif (renamed from sound/direct_sound_samples/cry_poochyena.aif)bin4656 -> 4656 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_porygon.aif (renamed from sound/direct_sound_samples/cry_porygon.aif)bin10002 -> 10002 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_porygon2.aif (renamed from sound/direct_sound_samples/cry_porygon2.aif)bin7854 -> 7854 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_primeape.aif (renamed from sound/direct_sound_samples/cry_primeape.aif)bin8086 -> 8086 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_psyduck.aif (renamed from sound/direct_sound_samples/cry_psyduck.aif)bin6578 -> 6578 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_pupitar.aif (renamed from sound/direct_sound_samples/cry_pupitar.aif)bin4234 -> 4234 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_quagsire.aif (renamed from sound/direct_sound_samples/cry_quagsire.aif)bin6684 -> 6684 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_quilava.aif (renamed from sound/direct_sound_samples/cry_quilava.aif)bin5962 -> 5962 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_qwilfish.aif (renamed from sound/direct_sound_samples/cry_qwilfish.aif)bin5808 -> 5808 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_raichu.aif (renamed from sound/direct_sound_samples/cry_raichu.aif)bin11842 -> 11842 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_raikou.aif (renamed from sound/direct_sound_samples/cry_raikou.aif)bin8704 -> 8704 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ralts.aif (renamed from sound/direct_sound_samples/cry_ralts.aif)bin5066 -> 5066 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_rapidash.aif (renamed from sound/direct_sound_samples/cry_rapidash.aif)bin9292 -> 9292 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_raticate.aif (renamed from sound/direct_sound_samples/cry_raticate.aif)bin4770 -> 4770 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_rattata.aif (renamed from sound/direct_sound_samples/cry_rattata.aif)bin3956 -> 3956 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_rayquaza.aif (renamed from sound/direct_sound_samples/cry_rayquaza.aif)bin14532 -> 14532 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_regice.aif (renamed from sound/direct_sound_samples/cry_regice.aif)bin15936 -> 15936 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_regirock.aif (renamed from sound/direct_sound_samples/cry_regirock.aif)bin15862 -> 15862 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_registeel.aif (renamed from sound/direct_sound_samples/cry_registeel.aif)bin11476 -> 11476 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_relicanth.aif (renamed from sound/direct_sound_samples/cry_relicanth.aif)bin10072 -> 10072 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_remoraid.aif (renamed from sound/direct_sound_samples/cry_remoraid.aif)bin5290 -> 5290 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_rhydon.aif (renamed from sound/direct_sound_samples/cry_rhydon.aif)bin10186 -> 10186 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_rhyhorn.aif (renamed from sound/direct_sound_samples/cry_rhyhorn.aif)bin9686 -> 9686 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_roselia.aif (renamed from sound/direct_sound_samples/cry_roselia.aif)bin5382 -> 5382 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sableye.aif (renamed from sound/direct_sound_samples/cry_sableye.aif)bin5826 -> 5826 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_salamence.aif (renamed from sound/direct_sound_samples/cry_salamence.aif)bin12514 -> 12514 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sandshrew.aif (renamed from sound/direct_sound_samples/cry_sandshrew.aif)bin4678 -> 4678 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sandslash.aif (renamed from sound/direct_sound_samples/cry_sandslash.aif)bin6784 -> 6784 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sceptile.aif (renamed from sound/direct_sound_samples/cry_sceptile.aif)bin13012 -> 13012 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_scizor.aif (renamed from sound/direct_sound_samples/cry_scizor.aif)bin11462 -> 11462 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_scyther.aif (renamed from sound/direct_sound_samples/cry_scyther.aif)bin6676 -> 6676 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_seadra.aif (renamed from sound/direct_sound_samples/cry_seadra.aif)bin4228 -> 4228 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_seaking.aif (renamed from sound/direct_sound_samples/cry_seaking.aif)bin9654 -> 9654 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sealeo.aif (renamed from sound/direct_sound_samples/cry_sealeo.aif)bin5928 -> 5928 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_seedot.aif (renamed from sound/direct_sound_samples/cry_seedot.aif)bin4106 -> 4106 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_seel.aif (renamed from sound/direct_sound_samples/cry_seel.aif)bin8954 -> 8954 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sentret.aif (renamed from sound/direct_sound_samples/cry_sentret.aif)bin2108 -> 2108 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_seviper.aif (renamed from sound/direct_sound_samples/cry_seviper.aif)bin5820 -> 5820 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sharpedo.aif (renamed from sound/direct_sound_samples/cry_sharpedo.aif)bin11488 -> 11488 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shedinja.aif (renamed from sound/direct_sound_samples/cry_shedinja.aif)bin3876 -> 3876 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shelgon.aif (renamed from sound/direct_sound_samples/cry_shelgon.aif)bin9992 -> 9992 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shellder.aif (renamed from sound/direct_sound_samples/cry_shellder.aif)bin7718 -> 7718 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shiftry.aif (renamed from sound/direct_sound_samples/cry_shiftry.aif)bin9860 -> 9860 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shroomish.aif (renamed from sound/direct_sound_samples/cry_shroomish.aif)bin4436 -> 4436 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shuckle.aif (renamed from sound/direct_sound_samples/cry_shuckle.aif)bin5110 -> 5110 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_shuppet.aif (renamed from sound/direct_sound_samples/cry_shuppet.aif)bin4144 -> 4144 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_silcoon.aif (renamed from sound/direct_sound_samples/cry_silcoon.aif)bin8074 -> 8074 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_skarmory.aif (renamed from sound/direct_sound_samples/cry_skarmory.aif)bin11982 -> 11982 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_skiploom.aif (renamed from sound/direct_sound_samples/cry_skiploom.aif)bin6516 -> 6516 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_skitty.aif (renamed from sound/direct_sound_samples/cry_skitty.aif)bin3560 -> 3560 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_slaking.aif (renamed from sound/direct_sound_samples/cry_slaking.aif)bin4970 -> 4970 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_slakoth.aif (renamed from sound/direct_sound_samples/cry_slakoth.aif)bin4272 -> 4272 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_slowbro.aif (renamed from sound/direct_sound_samples/cry_slowbro.aif)bin6720 -> 6720 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_slowking.aif (renamed from sound/direct_sound_samples/cry_slowking.aif)bin11908 -> 11908 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_slowpoke.aif (renamed from sound/direct_sound_samples/cry_slowpoke.aif)bin3724 -> 3724 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_slugma.aif (renamed from sound/direct_sound_samples/cry_slugma.aif)bin8536 -> 8536 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_smeargle.aif (renamed from sound/direct_sound_samples/cry_smeargle.aif)bin5114 -> 5114 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_smoochum.aif (renamed from sound/direct_sound_samples/cry_smoochum.aif)bin5860 -> 5860 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sneasel.aif (renamed from sound/direct_sound_samples/cry_sneasel.aif)bin4586 -> 4586 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_snorlax.aif (renamed from sound/direct_sound_samples/cry_snorlax.aif)bin2648 -> 2648 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_snorunt.aif (renamed from sound/direct_sound_samples/cry_snorunt.aif)bin8500 -> 8500 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_snubbull.aif (renamed from sound/direct_sound_samples/cry_snubbull.aif)bin7220 -> 7220 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_solrock.aif (renamed from sound/direct_sound_samples/cry_solrock.aif)bin8080 -> 8080 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_spearow.aif (renamed from sound/direct_sound_samples/cry_spearow.aif)bin8806 -> 8806 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_spheal.aif (renamed from sound/direct_sound_samples/cry_spheal.aif)bin2880 -> 2880 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_spinarak.aif (renamed from sound/direct_sound_samples/cry_spinarak.aif)bin6696 -> 6696 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_spinda.aif (renamed from sound/direct_sound_samples/cry_spinda.aif)bin6216 -> 6216 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_spoink.aif (renamed from sound/direct_sound_samples/cry_spoink.aif)bin3648 -> 3648 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_squirtle.aif (renamed from sound/direct_sound_samples/cry_squirtle.aif)bin7222 -> 7222 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_stantler.aif (renamed from sound/direct_sound_samples/cry_stantler.aif)bin11208 -> 11208 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_starmie.aif (renamed from sound/direct_sound_samples/cry_starmie.aif)bin10402 -> 10402 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_staryu.aif (renamed from sound/direct_sound_samples/cry_staryu.aif)bin9934 -> 9934 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_steelix.aif (renamed from sound/direct_sound_samples/cry_steelix.aif)bin18988 -> 18988 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sudowoodo.aif (renamed from sound/direct_sound_samples/cry_sudowoodo.aif)bin8084 -> 8084 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_suicune.aif (renamed from sound/direct_sound_samples/cry_suicune.aif)bin9126 -> 9126 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sunflora.aif (renamed from sound/direct_sound_samples/cry_sunflora.aif)bin7928 -> 7928 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_sunkern.aif (renamed from sound/direct_sound_samples/cry_sunkern.aif)bin4056 -> 4056 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_surskit.aif (renamed from sound/direct_sound_samples/cry_surskit.aif)bin5258 -> 5258 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_swablu.aif (renamed from sound/direct_sound_samples/cry_swablu.aif)bin2824 -> 2824 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_swalot.aif (renamed from sound/direct_sound_samples/cry_swalot.aif)bin8676 -> 8676 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_swampert.aif (renamed from sound/direct_sound_samples/cry_swampert.aif)bin11220 -> 11220 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_swellow.aif (renamed from sound/direct_sound_samples/cry_swellow.aif)bin4524 -> 4524 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_swinub.aif (renamed from sound/direct_sound_samples/cry_swinub.aif)bin6328 -> 6328 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_taillow.aif (renamed from sound/direct_sound_samples/cry_taillow.aif)bin3024 -> 3024 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tangela.aif (renamed from sound/direct_sound_samples/cry_tangela.aif)bin7550 -> 7550 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tauros.aif (renamed from sound/direct_sound_samples/cry_tauros.aif)bin9150 -> 9150 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_teddiursa.aif (renamed from sound/direct_sound_samples/cry_teddiursa.aif)bin8266 -> 8266 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tentacool.aif (renamed from sound/direct_sound_samples/cry_tentacool.aif)bin7960 -> 7960 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tentacruel.aif (renamed from sound/direct_sound_samples/cry_tentacruel.aif)bin11458 -> 11458 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_togepi.aif (renamed from sound/direct_sound_samples/cry_togepi.aif)bin5460 -> 5460 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_togetic.aif (renamed from sound/direct_sound_samples/cry_togetic.aif)bin3526 -> 3526 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_torchic.aif (renamed from sound/direct_sound_samples/cry_torchic.aif)bin4840 -> 4840 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_torkoal.aif (renamed from sound/direct_sound_samples/cry_torkoal.aif)bin4662 -> 4662 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_totodile.aif (renamed from sound/direct_sound_samples/cry_totodile.aif)bin9152 -> 9152 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_trapinch.aif (renamed from sound/direct_sound_samples/cry_trapinch.aif)bin5080 -> 5080 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_treecko.aif (renamed from sound/direct_sound_samples/cry_treecko.aif)bin5836 -> 5836 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tropius.aif (renamed from sound/direct_sound_samples/cry_tropius.aif)bin16318 -> 16318 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_typhlosion.aif (renamed from sound/direct_sound_samples/cry_typhlosion.aif)bin18944 -> 18944 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tyranitar.aif (renamed from sound/direct_sound_samples/cry_tyranitar.aif)bin11656 -> 11656 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_tyrogue.aif (renamed from sound/direct_sound_samples/cry_tyrogue.aif)bin8072 -> 8072 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_umbreon.aif (renamed from sound/direct_sound_samples/cry_umbreon.aif)bin7746 -> 7746 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_unown.aif (renamed from sound/direct_sound_samples/cry_unown.aif)bin6576 -> 6576 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_unused_265.aif (renamed from sound/direct_sound_samples/cry_unused_265.aif)bin4676 -> 4676 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_unused_268.aif (renamed from sound/direct_sound_samples/cry_unused_268.aif)bin8828 -> 8828 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_ursaring.aif (renamed from sound/direct_sound_samples/cry_ursaring.aif)bin14862 -> 14862 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_vaporeon.aif (renamed from sound/direct_sound_samples/cry_vaporeon.aif)bin11018 -> 11018 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_venomoth.aif (renamed from sound/direct_sound_samples/cry_venomoth.aif)bin8002 -> 8002 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_venonat.aif (renamed from sound/direct_sound_samples/cry_venonat.aif)bin7746 -> 7746 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_venusaur.aif (renamed from sound/direct_sound_samples/cry_venusaur.aif)bin9648 -> 9648 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_vibrava.aif (renamed from sound/direct_sound_samples/cry_vibrava.aif)bin7002 -> 7002 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_victreebel.aif (renamed from sound/direct_sound_samples/cry_victreebel.aif)bin9630 -> 9630 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_vigoroth.aif (renamed from sound/direct_sound_samples/cry_vigoroth.aif)bin7168 -> 7168 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_vileplume.aif (renamed from sound/direct_sound_samples/cry_vileplume.aif)bin12760 -> 12760 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_volbeat.aif (renamed from sound/direct_sound_samples/cry_volbeat.aif)bin5772 -> 5772 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_voltorb.aif (renamed from sound/direct_sound_samples/cry_voltorb.aif)bin12346 -> 12346 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_vulpix.aif (renamed from sound/direct_sound_samples/cry_vulpix.aif)bin11870 -> 11870 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wailmer.aif (renamed from sound/direct_sound_samples/cry_wailmer.aif)bin14134 -> 14134 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wailord.aif (renamed from sound/direct_sound_samples/cry_wailord.aif)bin20928 -> 20928 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_walrein.aif (renamed from sound/direct_sound_samples/cry_walrein.aif)bin18067 -> 18067 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wartortle.aif (renamed from sound/direct_sound_samples/cry_wartortle.aif)bin8614 -> 8614 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_weedle.aif (renamed from sound/direct_sound_samples/cry_weedle.aif)bin8124 -> 8124 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_weepinbell.aif (renamed from sound/direct_sound_samples/cry_weepinbell.aif)bin7310 -> 7310 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_weezing.aif (renamed from sound/direct_sound_samples/cry_weezing.aif)bin10806 -> 10806 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_whiscash.aif (renamed from sound/direct_sound_samples/cry_whiscash.aif)bin8478 -> 8478 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_whismur.aif (renamed from sound/direct_sound_samples/cry_whismur.aif)bin4092 -> 4092 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wigglytuff.aif (renamed from sound/direct_sound_samples/cry_wigglytuff.aif)bin3412 -> 3412 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wingull.aif (renamed from sound/direct_sound_samples/cry_wingull.aif)bin6132 -> 6132 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wobbuffet.aif (renamed from sound/direct_sound_samples/cry_wobbuffet.aif)bin10276 -> 10276 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wooper.aif (renamed from sound/direct_sound_samples/cry_wooper.aif)bin3710 -> 3710 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wurmple.aif (renamed from sound/direct_sound_samples/cry_wurmple.aif)bin4412 -> 4412 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_wynaut.aif (renamed from sound/direct_sound_samples/cry_wynaut.aif)bin6932 -> 6932 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_xatu.aif (renamed from sound/direct_sound_samples/cry_xatu.aif)bin7392 -> 7392 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_yanma.aif (renamed from sound/direct_sound_samples/cry_yanma.aif)bin8506 -> 8506 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_zangoose.aif (renamed from sound/direct_sound_samples/cry_zangoose.aif)bin4794 -> 4794 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_zapdos.aif (renamed from sound/direct_sound_samples/cry_zapdos.aif)bin7724 -> 7724 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_zigzagoon.aif (renamed from sound/direct_sound_samples/cry_zigzagoon.aif)bin5786 -> 5786 bytes
-rw-r--r--sound/direct_sound_samples/cries/cry_zubat.aif (renamed from sound/direct_sound_samples/cry_zubat.aif)bin9688 -> 9688 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_1.aif (renamed from sound/direct_sound_samples/84A7328.aif)bin3186 -> 3186 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_10.aif (renamed from sound/direct_sound_samples/863AD2C.aif)bin2738 -> 2738 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_11.aif (renamed from sound/direct_sound_samples/863B79C.aif)bin897 -> 897 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_12.aif (renamed from sound/direct_sound_samples/863BABC.aif)bin3273 -> 3273 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_13.aif (renamed from sound/direct_sound_samples/863C744.aif)bin1634 -> 1634 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_14.aif (renamed from sound/direct_sound_samples/863CD64.aif)bin999 -> 999 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_15.aif (renamed from sound/direct_sound_samples/863D0EC.aif)bin3619 -> 3619 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_16.aif (renamed from sound/direct_sound_samples/863DED0.aif)bin2481 -> 2481 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_17.aif (renamed from sound/direct_sound_samples/863E840.aif)bin1021 -> 1021 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_18.aif (renamed from sound/direct_sound_samples/863EBDC.aif)bin2035 -> 2035 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_19.aif (renamed from sound/direct_sound_samples/863F390.aif)bin3483 -> 3483 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_2.aif (renamed from sound/direct_sound_samples/84A7F38.aif)bin3057 -> 3057 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_20.aif (renamed from sound/direct_sound_samples/86400EC.aif)bin678 -> 678 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_21.aif (renamed from sound/direct_sound_samples/8640330.aif)bin3711 -> 3711 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_22.aif (renamed from sound/direct_sound_samples/8641170.aif)bin2451 -> 2451 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_23.aif (renamed from sound/direct_sound_samples/8641AC4.aif)bin948 -> 948 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_24.aif (renamed from sound/direct_sound_samples/8641E18.aif)bin1651 -> 1651 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_25.aif (renamed from sound/direct_sound_samples/864244C.aif)bin3243 -> 3243 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_26.aif (renamed from sound/direct_sound_samples/86430B8.aif)bin1529 -> 1529 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_27.aif (renamed from sound/direct_sound_samples/8643650.aif)bin2883 -> 2883 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_28.aif (renamed from sound/direct_sound_samples/8644154.aif)bin1605 -> 1605 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_29.aif (renamed from sound/direct_sound_samples/8644758.aif)bin599 -> 599 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_3.aif (renamed from sound/direct_sound_samples/84A8AC8.aif)bin2814 -> 2814 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_30.aif (renamed from sound/direct_sound_samples/8644950.aif)bin2467 -> 2467 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_31.aif (renamed from sound/direct_sound_samples/86452B4.aif)bin4043 -> 4043 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_32.aif (renamed from sound/direct_sound_samples/8646240.aif)bin1687 -> 1687 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_33.aif (renamed from sound/direct_sound_samples/8646878.aif)bin2835 -> 2835 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_34.aif (renamed from sound/direct_sound_samples/864734C.aif)bin3974 -> 3974 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_35.aif (renamed from sound/direct_sound_samples/8648290.aif)bin1498 -> 1498 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_36.aif (renamed from sound/direct_sound_samples/8648808.aif)bin3723 -> 3723 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_37.aif (renamed from sound/direct_sound_samples/8649654.aif)bin3911 -> 3911 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_38.aif (renamed from sound/direct_sound_samples/864A55C.aif)bin2870 -> 2870 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_39.aif (renamed from sound/direct_sound_samples/864B030.aif)bin3027 -> 3027 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_4.aif (renamed from sound/direct_sound_samples/84A9564.aif)bin2474 -> 2474 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_40.aif (renamed from sound/direct_sound_samples/864BBC4.aif)bin2583 -> 2583 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_41.aif (renamed from sound/direct_sound_samples/864C59C.aif)bin1696 -> 1696 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_42.aif (renamed from sound/direct_sound_samples/864CBDC.aif)bin2847 -> 2847 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_43.aif (renamed from sound/direct_sound_samples/864D6BC.aif)bin1660 -> 1660 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_44.aif (renamed from sound/direct_sound_samples/864DCF8.aif)bin1912 -> 1912 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_45.aif (renamed from sound/direct_sound_samples/864E410.aif)bin2427 -> 2427 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_46.aif (renamed from sound/direct_sound_samples/864ED4C.aif)bin2043 -> 2043 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_47.aif (renamed from sound/direct_sound_samples/864F508.aif)bin1478 -> 1478 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_48.aif (renamed from sound/direct_sound_samples/864FA6C.aif)bin3507 -> 3507 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_49.aif (renamed from sound/direct_sound_samples/86507E0.aif)bin1213 -> 1213 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_5.aif (renamed from sound/direct_sound_samples/84A9EAC.aif)bin2729 -> 2729 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_50.aif (renamed from sound/direct_sound_samples/8650C5C.aif)bin1358 -> 1358 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_51.aif (renamed from sound/direct_sound_samples/8651148.aif)bin2055 -> 2055 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_52.aif (renamed from sound/direct_sound_samples/8651910.aif)bin3133 -> 3133 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_53.aif (renamed from sound/direct_sound_samples/865250C.aif)bin984 -> 984 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_54.aif (renamed from sound/direct_sound_samples/8652884.aif)bin2043 -> 2043 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_55.aif (renamed from sound/direct_sound_samples/8653040.aif)bin3235 -> 3235 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_56.aif (renamed from sound/direct_sound_samples/8653CA4.aif)bin1326 -> 1326 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_57.aif (renamed from sound/direct_sound_samples/8654170.aif)bin2799 -> 2799 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_6.aif (renamed from sound/direct_sound_samples/84AA8F4.aif)bin3305 -> 3305 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_7.aif (renamed from sound/direct_sound_samples/8639898.aif)bin1697 -> 1697 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_8.aif (renamed from sound/direct_sound_samples/8639EF8.aif)bin1350 -> 1350 bytes
-rw-r--r--sound/direct_sound_samples/phonemes/vowel_9.aif (renamed from sound/direct_sound_samples/863A3DC.aif)bin2447 -> 2447 bytes
-rw-r--r--sound/direct_sound_samples/synth/hi_hat_rattle.aif (renamed from sound/direct_sound_samples/845ED34.aif)bin4086 -> 4086 bytes
-rw-r--r--sound/direct_sound_samples/synth/machine_sound1.aif (renamed from sound/direct_sound_samples/848E094.aif)bin5141 -> 5141 bytes
-rw-r--r--sound/direct_sound_samples/synth/machine_sound2.aif (renamed from sound/direct_sound_samples/848C4A4.aif)bin7250 -> 7250 bytes
-rw-r--r--sound/direct_sound_samples/synth/noise1.aif (renamed from sound/direct_sound_samples/849D45C.aif)bin8207 -> 8207 bytes
-rw-r--r--sound/direct_sound_samples/synth/noise2.aif (renamed from sound/direct_sound_samples/84A3B50.aif)bin7071 -> 7071 bytes
-rw-r--r--sound/direct_sound_samples/synth/noise3.aif (renamed from sound/direct_sound_samples/8491ACC.aif)bin4772 -> 4772 bytes
-rw-r--r--sound/direct_sound_samples/synth/ring.aif (renamed from sound/direct_sound_samples/8488F44.aif)bin6561 -> 6561 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_123_bubble.aif (renamed from sound/direct_sound_samples/8492D10.aif)bin4178 -> 4178 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_123_pink_noise.aif (renamed from sound/direct_sound_samples/8495028.aif)bin8555 -> 8555 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_123_white_noise.aif (renamed from sound/direct_sound_samples/8499110.aif)bin8818 -> 8818 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_124_horse_gallop.aif (renamed from sound/direct_sound_samples/84A5690.aif)bin2346 -> 2346 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_126_car_crash.aif (renamed from sound/direct_sound_samples/8493D20.aif)bin4967 -> 4967 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_127_applause_2.aif (renamed from sound/direct_sound_samples/848F448.aif)bin9955 -> 9955 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_13_marimba.aif (renamed from sound/direct_sound_samples/84A311C.aif)bin2709 -> 2709 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_15_tubular_bell.aif (renamed from sound/direct_sound_samples/849BAEC.aif)bin6610 -> 6610 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_18_organ_2.aif (renamed from sound/direct_sound_samples/84569D4.aif)bin2138 -> 2138 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_1_piano_1.aif (renamed from sound/direct_sound_samples/84A26EC.aif)bin2706 -> 2706 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_22_accordion_fr.aif (renamed from sound/direct_sound_samples/84A5F58.aif)bin5169 -> 5169 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_25_nylon_string_guitar.aif (renamed from sound/direct_sound_samples/8481130.aif)bin8144 -> 8144 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_26_steel_string_guitar.aif (renamed from sound/direct_sound_samples/846286C.aif)bin4031 -> 4031 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_2_piano_2.aif (renamed from sound/direct_sound_samples/8464E2C.aif)bin5564 -> 5564 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_34_finger_slap.aif (renamed from sound/direct_sound_samples/8457D98.aif)bin3993 -> 3993 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_34_fingered_bass.aif (renamed from sound/direct_sound_samples/8483804.aif)bin7344 -> 7344 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_36_fretless_bass.aif (renamed from sound/direct_sound_samples/84571CC.aif)bin3115 -> 3115 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_37_unison_slap.aif (renamed from sound/direct_sound_samples/8466388.aif)bin3052 -> 3052 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_39_synth_bass_1.aif (renamed from sound/direct_sound_samples/8458CD0.aif)bin3284 -> 3284 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_3_piano_3.aif (renamed from sound/direct_sound_samples/84637CC.aif)bin5824 -> 5824 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_46_pizzicato_strings.aif (renamed from sound/direct_sound_samples/848BD68.aif)bin1947 -> 1947 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_49_strings.aif (renamed from sound/direct_sound_samples/8466F14.aif)bin13830 -> 13830 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_49_strings_plus_flute.aif (renamed from sound/direct_sound_samples/846A4B8.aif)bin9085 -> 9085 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_49_strings_plus_horn.aif (renamed from sound/direct_sound_samples/846C7D4.aif)bin14123 -> 14123 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_57_trumpet.aif (renamed from sound/direct_sound_samples/846FEA0.aif)bin5040 -> 5040 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_58_trombone.aif (renamed from sound/direct_sound_samples/84711F0.aif)bin5489 -> 5489 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_59_tuba.aif (renamed from sound/direct_sound_samples/8472700.aif)bin5247 -> 5247 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_60_cup_muted_trumpet.aif (renamed from sound/direct_sound_samples/8473B20.aif)bin4347 -> 4347 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_60_muted_trumpet_3.aif (renamed from sound/direct_sound_samples/8474BBC.aif)bin4283 -> 4283 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_61_french_horns.aif (renamed from sound/direct_sound_samples/8475C18.aif)bin28662 -> 28662 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_61_wide_french_horns.aif (renamed from sound/direct_sound_samples/847CBAC.aif)bin17892 -> 17892 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_74_flute.aif (renamed from sound/direct_sound_samples/84830A0.aif)bin1989 -> 1989 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_81_square_wave.aif (renamed from sound/direct_sound_samples/8487330.aif)bin7286 -> 7286 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_82_jp_super_saw.aif (renamed from sound/direct_sound_samples/849F40C.aif)bin13121 -> 13121 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_82_waspy_synth.aif (renamed from sound/direct_sound_samples/8497134.aif)bin8253 -> 8253 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_bass_drum.aif (renamed from sound/direct_sound_samples/845AE14.aif)bin1249 -> 1249 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_cabasa.aif (renamed from sound/direct_sound_samples/845FCC8.aif)bin2294 -> 2294 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_closed_hi_hat.aif (renamed from sound/direct_sound_samples/845DAF0.aif)bin1107 -> 1107 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_1.aif (renamed from sound/direct_sound_samples/8460E60.aif)bin3979 -> 3979 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_2.aif (renamed from sound/direct_sound_samples/846057C.aif)bin2372 -> 2372 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_guiro.aif (renamed from sound/direct_sound_samples/849B320.aif)bin2093 -> 2093 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_hand_clap.aif (renamed from sound/direct_sound_samples/845B9A8.aif)bin2258 -> 2258 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_hi_mid_tom.aif (renamed from sound/direct_sound_samples/845CAB0.aif)bin4256 -> 4256 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_low_conga.aif (renamed from sound/direct_sound_samples/84622A4.aif)bin1546 -> 1546 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_mute_hi_conga.aif (renamed from sound/direct_sound_samples/8461D8C.aif)bin1370 -> 1370 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_open_hi_hat.aif (renamed from sound/direct_sound_samples/845DF04.aif)bin3728 -> 3728 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_snare_1.aif (renamed from sound/direct_sound_samples/845B2B4.aif)bin1844 -> 1844 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_snare_2.aif (renamed from sound/direct_sound_samples/845C238.aif)bin2231 -> 2231 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_snare_3.aif (renamed from sound/direct_sound_samples/848A8A4.aif)bin5382 -> 5382 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_snare_4.aif (renamed from sound/direct_sound_samples/8486924.aif)bin2669 -> 2669 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_timbale_1.aif (renamed from sound/direct_sound_samples/8485454.aif)bin5424 -> 5424 bytes
-rw-r--r--sound/direct_sound_samples/synth/sc88_drumkit_timbale_2.aif (renamed from sound/direct_sound_samples/8459944.aif)bin5424 -> 5424 bytes
-rw-r--r--sound/direct_sound_samples/synth/tone1.aif (renamed from sound/direct_sound_samples/8456330.aif)bin1797 -> 1797 bytes
-rw-r--r--sound/music_player_table.inc8
-rw-r--r--sound/song_table.inc712
-rw-r--r--sound/voice_groups.inc1060
-rw-r--r--[-rwxr-xr-x]src/battle/anim/alert.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/angel.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/angel_kiss.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/anger.c0
-rw-r--r--src/battle/anim/battle_intro.c499
-rw-r--r--[-rwxr-xr-x]src/battle/anim/blow_kiss.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/bottle.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/brace.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/breath.c0
-rw-r--r--src/battle/anim/bug.c302
-rw-r--r--[-rwxr-xr-x]src/battle/anim/bullet.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/copy_orb.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/cube.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/curtain.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/cutter.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/cyclone.c0
-rw-r--r--src/battle/anim/dark.c1008
-rw-r--r--src/battle/anim/dragon.c275
-rw-r--r--[-rwxr-xr-x]src/battle/anim/draw.c36
-rw-r--r--[-rwxr-xr-x]src/battle/anim/drum.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/egg.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/espeed.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/evasion.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/fang.c0
-rw-r--r--src/battle/anim/fire_2.c4
-rw-r--r--[-rwxr-xr-x]src/battle/anim/flash.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/flying_hearts.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/flying_path.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/flying_petals.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/glitter.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/glow.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/grip.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/grow.c0
-rw-r--r--src/battle/anim/guard.c3
-rw-r--r--[-rwxr-xr-x]src/battle/anim/guillotine.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/heal.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/heart_1.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/homing.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/hop.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/hop_2.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/kiss_fountain.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/leaf.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/love_bg.c23
-rw-r--r--[-rwxr-xr-x]src/battle/anim/lunge_1.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/lunge_2.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/money.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/moon.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/note_rain.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/note_scatter.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/note_scatter_2.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/note_wave.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/orbit.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/orbit_fast.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/orbit_scatter.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/orbs.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/osmose.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/perceive.c0
-rw-r--r--src/battle/anim/poison.c140
-rw-r--r--[-rwxr-xr-x]src/battle/anim/powder.c0
-rw-r--r--src/battle/anim/psychic.c900
-rw-r--r--[-rwxr-xr-x]src/battle/anim/ring.c0
-rw-r--r--src/battle/anim/rock.c602
-rw-r--r--[-rwxr-xr-x]src/battle/anim/roots.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/scan.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/scary_face.c21
-rw-r--r--[-rwxr-xr-x]src/battle/anim/seed.c0
-rw-r--r--src/battle/anim/sfx.c280
-rw-r--r--[-rwxr-xr-x]src/battle/anim/shadow_enlarge.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/shadow_minimize.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/shield.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/shimmer.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/silhouette.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/slash.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/sleep.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/slice.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/smoke.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/sonic.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/sonic_task.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/spin_finger.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/spit.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/splash.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/startle.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/strike.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/switch.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/sword.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/taunt_finger.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/tendrils.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/thought.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/thrashing.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/tile_in.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/tile_out.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/twinkle.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_1.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_2.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_3.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_4.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_5.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_6.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_7.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_8.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/unused_9.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/wave_finger.c0
-rw-r--r--[-rwxr-xr-x]src/battle/anim/whip.c0
-rw-r--r--src/battle/anim/wisp_fire.c196
-rw-r--r--[-rwxr-xr-x]src/battle/anim/withdraw.c0
-rw-r--r--src/battle/battle_2.c6848
-rw-r--r--src/battle/battle_4.c4045
-rw-r--r--src/battle/battle_7.c34
-rw-r--r--src/battle/battle_ai.c44
-rw-r--r--src/battle/battle_anim.c1401
-rw-r--r--src/battle/battle_anim_80A7E7C.c86
-rw-r--r--src/battle/battle_controller_linkopponent.c14
-rw-r--r--src/battle/battle_controller_linkpartner.c24
-rw-r--r--src/battle/battle_controller_opponent.c376
-rw-r--r--src/battle/battle_controller_player.c889
-rw-r--r--src/battle/battle_controller_safari.c52
-rw-r--r--src/battle/battle_controller_wally.c48
-rw-r--r--src/battle/battle_interface.c31
-rw-r--r--src/battle/battle_message.c91
-rw-r--r--src/battle/battle_party_menu.c28
-rw-r--r--src/battle/battle_records.c123
-rw-r--r--src/battle/battle_setup.c38
-rw-r--r--src/battle/battle_transition.c176
-rw-r--r--src/battle/battle_util.c (renamed from src/battle/battle_3.c)1274
-rw-r--r--src/battle/calculate_base_damage.c60
-rw-r--r--src/battle/contest_link_80C857C.c746
-rw-r--r--src/battle/pokeball.c10
-rw-r--r--src/battle/post_battle_event_funcs.c6
-rw-r--r--src/battle/reshow_battle_screen.c30
-rw-r--r--src/contest.c628
-rw-r--r--src/contest_ai.c1762
-rw-r--r--src/crt0.s (renamed from asm/crt0.s)0
-rw-r--r--[-rwxr-xr-x]src/data/battle_strings_de.h2
-rw-r--r--[-rwxr-xr-x]src/data/battle_strings_en.h2
-rw-r--r--src/data/battle_tower/trainers.h200
-rw-r--r--src/data/battle_tower/trainers_de.h200
-rw-r--r--[-rwxr-xr-x]src/data/credits_de.h0
-rw-r--r--[-rwxr-xr-x]src/data/credits_en.h0
-rw-r--r--src/data/items_de.h116
-rw-r--r--src/data/items_en.h116
-rw-r--r--src/data/pokedex_entries_de.h3
-rw-r--r--src/data/pokedex_entries_en.h2
-rw-r--r--src/data/pokemon/base_stats.h21393
-rw-r--r--src/data/pokemon/dex_order.h15
-rw-r--r--src/data/pokemon/evolution.h788
-rw-r--r--src/data/pokemon/item_effects.h729
-rw-r--r--src/data/pokemon/level_up_learnset_pointers.h2
-rw-r--r--src/data/pokemon/nature_stats.h37
-rw-r--r--src/data/pokemon/spinda_spots.h15
-rw-r--r--src/data/pokemon/tmhm_learnsets.h9824
-rw-r--r--src/data/pokemon/trainer_class_lookups.h158
-rw-r--r--src/de_rom_8040FE0.c96
-rw-r--r--src/debug/crash.c55
-rw-r--r--src/debug/kagaya_debug_menu.c183
-rw-r--r--src/debug/matsuda_debug_menu.c173
-rw-r--r--src/debug/mori_debug_menu.c22
-rw-r--r--src/debug/nakamura_debug_menu.c189
-rw-r--r--src/debug/nohara_debug_menu.c12
-rw-r--r--src/debug/sound_check_menu.c88
-rw-r--r--src/debug/start_menu_debug.c6051
-rw-r--r--src/debug/taya_debug_window.c6
-rw-r--r--src/debug/tomomichi_debug_menu.c20
-rw-r--r--src/debug/unknown_debug_menu.c14
-rw-r--r--src/debug/watanabe_debug_menu.c11
-rw-r--r--src/easy_chat_1.c1742
-rw-r--r--src/easy_chat_2.c3036
-rw-r--r--src/engine/cable_car_util.c47
-rw-r--r--src/engine/cable_club.c491
-rw-r--r--src/engine/clear_save_data_menu.c16
-rw-r--r--src/engine/clock.c3
-rw-r--r--src/engine/link.c221
-rw-r--r--src/engine/main.c16
-rw-r--r--src/engine/main_menu.c150
-rw-r--r--src/engine/menu.c264
-rw-r--r--src/engine/menu_cursor.c62
-rw-r--r--src/engine/mystery_event_menu.c498
-rw-r--r--src/engine/name_string_util.c4
-rw-r--r--src/engine/naming_screen.c65
-rw-r--r--src/engine/option_menu.c209
-rw-r--r--src/engine/palette.c4
-rw-r--r--src/engine/record_mixing.c12
-rw-r--r--src/engine/reset_rtc_screen.c377
-rw-r--r--src/engine/rtc.c29
-rw-r--r--src/engine/save.c726
-rw-r--r--src/engine/save_failed_screen.c230
-rw-r--r--src/engine/save_menu_util.c24
-rw-r--r--src/engine/sprite.c14
-rw-r--r--src/engine/task.c10
-rw-r--r--src/engine/text.c763
-rw-r--r--src/engine/text_window.c157
-rw-r--r--src/engine/time_events.c2
-rw-r--r--src/engine/trade.c243
-rw-r--r--src/engine/trainer_card.c772
-rw-r--r--src/field/battle_tower.c287
-rw-r--r--src/field/berry.c521
-rw-r--r--src/field/berry_tag_screen.c36
-rw-r--r--src/field/bike.c20
-rw-r--r--src/field/braille_puzzles.c4
-rw-r--r--src/field/choose_party.c142
-rw-r--r--src/field/coins.c6
-rw-r--r--src/field/coord_event_weather.c4
-rw-r--r--src/field/daycare.c24
-rw-r--r--src/field/decoration.c145
-rw-r--r--src/field/decoration_inventory.c11
-rw-r--r--src/field/diploma.c12
-rw-r--r--src/field/easy_chat.c445
-rw-r--r--src/field/field_control_avatar.c76
-rw-r--r--src/field/field_effect.c27
-rw-r--r--src/field/field_effect_helpers.c6
-rw-r--r--src/field/field_fadetransition.c32
-rw-r--r--src/field/field_map_obj.c522
-rw-r--r--src/field/field_message_box.c20
-rw-r--r--src/field/field_player_avatar.c215
-rw-r--r--src/field/field_poison.c47
-rw-r--r--src/field/field_region_map.c14
-rw-r--r--src/field/field_screen_effect.c30
-rw-r--r--src/field/field_specials.c82
-rw-r--r--src/field/field_weather.c983
-rw-r--r--src/field/field_weather_effects.c85
-rw-r--r--src/field/fieldmap.c18
-rw-r--r--src/field/fldeff_cut.c113
-rw-r--r--src/field/fldeff_escalator.c132
-rw-r--r--src/field/fldeff_flash.c30
-rw-r--r--src/field/fldeff_poison.c4
-rw-r--r--src/field/fldeff_secretpower.c96
-rw-r--r--src/field/fldeff_softboiled.c4
-rw-r--r--src/field/fldeff_strength.c23
-rw-r--r--src/field/item.c2
-rw-r--r--src/field/item_menu.c742
-rw-r--r--src/field/item_use.c46
-rw-r--r--src/field/map_name_popup.c8
-rw-r--r--src/field/mauville_man.c107
-rw-r--r--src/field/menu_helpers.c149
-rw-r--r--src/field/money.c12
-rw-r--r--src/field/overworld.c148
-rw-r--r--src/field/party_menu.c800
-rw-r--r--src/field/pc_screen_effect.c17
-rw-r--r--src/field/player_pc.c320
-rw-r--r--src/field/pokeblock.c192
-rw-r--r--src/field/pokedex_area_screen.c20
-rw-r--r--src/field/pokenav.c16
-rw-r--r--src/field/region_map.c55
-rw-r--r--src/field/roamer.c19
-rw-r--r--src/field/safari_zone.c4
-rw-r--r--src/field/scrcmd.c18
-rw-r--r--src/field/script_menu.c68
-rw-r--r--src/field/secret_base.c263
-rw-r--r--src/field/shop.c731
-rw-r--r--src/field/slot_machine.c7757
-rw-r--r--src/field/start_menu.c410
-rw-r--r--src/field/starter_choose.c34
-rw-r--r--src/field/trader.c30
-rw-r--r--src/field/tv.c34
-rw-r--r--src/field/use_pokeblock.c41
-rw-r--r--src/field/wallclock.c43
-rw-r--r--src/field/wild_encounter.c43
-rw-r--r--src/libs/libagbsyscall.s (renamed from asm/libagbsyscall.s)2
-rw-r--r--src/libs/libc.c143
-rw-r--r--src/libs/libgcnmultiboot.s (renamed from asm/libgcnmultiboot.s)2
-rw-r--r--src/libs/libisagbprn.c177
-rw-r--r--src/libs/m4a_1.s (renamed from asm/m4a_1.s)8
-rw-r--r--src/pokemon/learn_move.c92
-rw-r--r--src/pokemon/mail.c628
-rw-r--r--src/pokemon/mon_markings.c29
-rw-r--r--src/pokemon/pokeblock_feed.c10
-rw-r--r--src/pokemon/pokedex.c158
-rw-r--r--src/pokemon/pokemon_1.c111
-rw-r--r--src/pokemon/pokemon_2.c40
-rw-r--r--src/pokemon/pokemon_3.c114
-rw-r--r--src/pokemon/pokemon_data.c128
-rw-r--r--src/pokemon/pokemon_item_effect.c550
-rw-r--r--src/pokemon/pokemon_menu.c103
-rw-r--r--src/pokemon/pokemon_storage_system.c813
-rw-r--r--src/pokemon/pokemon_storage_system_2.c3058
-rw-r--r--src/pokemon/pokemon_storage_system_3.c655
-rw-r--r--src/pokemon/pokemon_storage_system_4.c2849
-rw-r--r--src/pokemon/pokemon_storage_system_5.c16
-rw-r--r--src/pokemon/pokemon_summary_screen.c790
-rw-r--r--src/pokenav_after.c16
-rw-r--r--src/pokenav_before.c6943
-rw-r--r--src/rom3.c29
-rw-r--r--src/rom6.c20
-rw-r--r--src/rom_800D42C.c12
-rw-r--r--src/rom_8077ABC.c1617
-rw-r--r--src/roulette.c5731
-rw-r--r--src/roulette_util.c242
-rw-r--r--src/scanline_effect.c261
-rw-r--r--src/scene/berry_blender.c216
-rw-r--r--src/scene/cable_car.c1198
-rw-r--r--src/scene/contest_painting.c27
-rw-r--r--src/scene/credits.c6
-rw-r--r--src/scene/cute_sketch.c344
-rw-r--r--src/scene/egg_hatch.c52
-rw-r--r--src/scene/evolution_scene.c191
-rw-r--r--src/scene/hall_of_fame.c151
-rw-r--r--src/scene/intro.c12
-rw-r--r--[-rwxr-xr-x]src/scene/intro_credits_graphics.c9
-rw-r--r--src/scene/new_game.c73
-rw-r--r--src/scene/title_screen.c27
-rw-r--r--src/script_pokemon_util_80C4BF0.c25
-rw-r--r--src/strings.c14
-rw-r--r--src/unknown_task.c234
-rw-r--r--src/unused_81258BC.c36
-rw-r--r--sym_bss.txt94
-rw-r--r--sym_common.txt658
-rw-r--r--sym_ewram.txt886
-rw-r--r--tilesets.mk216
1288 files changed, 138488 insertions, 129847 deletions
diff --git a/.travis.yml b/.travis.yml
index 56bea002d..6e88230ac 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,12 +25,12 @@ matrix:
env: _="Build"
script:
- ./build_tools.sh
- - make -j2 compare_ruby
- - make -j2 compare_ruby_rev1
- - make -j2 compare_ruby_rev2
- - make -j2 compare_sapphire
- - make -j2 compare_sapphire_rev1
- - make -j2 compare_sapphire_rev2
+ - make -j2 ruby
+ - make -j2 ruby_rev1
+ - make -j2 ruby_rev2
+ - make -j2 sapphire
+ - make -j2 sapphire_rev1
+ - make -j2 sapphire_rev2
- os: linux
env: _="Formatting"
addons:
@@ -49,12 +49,12 @@ matrix:
env: _="Build German"
before_script:
- cp override-de.mk override.mk
- - rsync -avhI asm-de/ asm/
- rsync -avhI data-de/ data/
- rsync -avhI graphics-de/ graphics/
script:
- ./build_tools.sh
- - make -j2 compare_ruby_de
- - make -j2 compare_sapphire_de
+ - make -j2 ruby_de
+ - make -j2 sapphire_de
+ - make -j2 ruby_de_debug
allow_failures:
- env: _="Formatting"
diff --git a/INSTALL.md b/INSTALL.md
index b852dd126..dfd992f2f 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -6,12 +6,12 @@ Make sure that there is an environment variable called DEVKITARM with the path o
Then get the compiler from https://github.com/pret/agbcc and run the following commands.
- build.sh
- install.sh PATH_OF_POKERUBY_DIRECTORY
+ ./build.sh
+ ./install.sh PATH_OF_POKERUBY_DIRECTORY
Then in the pokeruby directory, build the tools.
- build_tools.sh
+ ./build_tools.sh
Finally, build the rom.
diff --git a/Makefile b/Makefile
index e7e2a7156..9e2a2366e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,183 +1,171 @@
-SHELL := /bin/bash -o pipefail
-AS := $(DEVKITARM)/bin/arm-none-eabi-as
-ASFLAGS := -mcpu=arm7tdmi
+include config.mk
-CC1 := tools/agbcc/bin/agbcc
-override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm
-CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
-CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror -Wno-trigraphs
+#### Tools ####
-LD := $(DEVKITARM)/bin/arm-none-eabi-ld
+SHELL := /bin/bash -o pipefail
+AS := $(DEVKITARM)/bin/arm-none-eabi-as
+CC1 := tools/agbcc/bin/agbcc
+CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp
+LD := $(DEVKITARM)/bin/arm-none-eabi-ld
+OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
+SHA1SUM := sha1sum -c
+GBAGFX := tools/gbagfx/gbagfx
+RSFONT := tools/rsfont/rsfont
+AIF2PCM := tools/aif2pcm/aif2pcm
+MID2AGB := tools/mid2agb/mid2agb
+PREPROC := tools/preproc/preproc
+SCANINC := tools/scaninc/scaninc
+RAMSCRGEN := tools/ramscrgen/ramscrgen
-OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
+ASFLAGS := -mcpu=arm7tdmi -I include --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_REVISION) --defsym $(GAME_LANGUAGE)=1 --defsym DEBUG=$(DEBUG)
+CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm
+CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror -Wno-trigraphs -D $(GAME_VERSION) -D REVISION=$(GAME_REVISION) -D $(GAME_LANGUAGE) -D DEBUG=$(DEBUG)
-LIBGCC := tools/agbcc/lib/libgcc.a
-SHA1 := sha1sum -c
+#### Files ####
-GFX := tools/gbagfx/gbagfx
-AIF := tools/aif2pcm/aif2pcm
-MID := tools/mid2agb/mid2agb
-SCANINC := tools/scaninc/scaninc
-PREPROC := tools/preproc/preproc
-RAMSCRGEN := tools/ramscrgen/ramscrgen
+ROM := poke$(BUILD_NAME).gba
+MAP := $(ROM:%.gba=%.map)
-REVISION := 0
+SUBDIRS := \
+ sound \
+ sound/songs \
+ asm \
+ data \
+ src \
+ src/battle \
+ src/battle/anim \
+ src/field \
+ src/debug \
+ src/scene \
+ src/pokemon \
+ src/engine \
+ src/libs
+BUILD_DIR := build/$(BUILD_NAME)
-VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_de sapphire_de
+C_SOURCES := $(foreach dir, $(SUBDIRS), $(wildcard $(dir)/*.c))
+ASM_SOURCES := $(foreach dir, $(SUBDIRS), $(wildcard $(dir)/*.s))
-# Clear the default suffixes.
-.SUFFIXES:
+C_OBJECTS := $(addprefix $(BUILD_DIR)/, $(C_SOURCES:%.c=%.o))
+ASM_OBJECTS := $(addprefix $(BUILD_DIR)/, $(ASM_SOURCES:%.s=%.o))
+ALL_OBJECTS := $(C_OBJECTS) $(ASM_OBJECTS)
-# Secondary expansion is required for dependency variables in object rules.
-.SECONDEXPANSION:
-
-.PRECIOUS: %.1bpp %.4bpp %.8bpp %.gbapal %.lz %.rl %.pcm %.bin sound/direct_sound_samples/cry_%.bin
+LIBC := tools/agbcc/lib/libc.a
+LIBGCC := tools/agbcc/lib/libgcc.a
-.PHONY: all clean tidy all_versions compare compare_all \
-$(VERSIONS) $(VERSIONS:%=compare_%)
+LD_SCRIPT := $(BUILD_DIR)/ld_script.ld
+# Special configurations required for lib files
+%src/libs/siirtc.o: CC1FLAGS := -mthumb-interwork
+%src/libs/agb_flash.o: CC1FLAGS := -O1 -mthumb-interwork
+%src/libs/agb_flash_1m.o: CC1FLAGS := -O1 -mthumb-interwork
+%src/libs/agb_flash_mx.o: CC1FLAGS := -O1 -mthumb-interwork
+%src/libs/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
+%src/libs/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
+%src/libs/libisagbprn.o: CC1 := tools/agbcc/bin/old_agbcc
+%src/libs/libisagbprn.o: CC1FLAGS := -mthumb-interwork
-$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle{,/anim},/field,/debug,/scene,/pokemon,/engine,/libs}}))
-C_SRCS := $(shell find src -iname "*.c")
-ASM_SRCS := $(wildcard asm/*.s)
-DATA_ASM_SRCS := $(wildcard data/*.s)
+#### Main Rules ####
-SONG_SRCS := $(wildcard sound/songs/*.s)
-SONG_OBJS := $(SONG_SRCS:%.s=%.o)
+# Disable dependency scanning when NODEP is used for quick building
+ifeq ($(NODEP),)
+ $(BUILD_DIR)/src/%.o: C_FILE = $(*D)/$(*F).c
+ $(BUILD_DIR)/src/%.o: C_DEP = $(shell $(SCANINC) -I include $(C_FILE:$(BUILD_DIR)/=))
+ $(BUILD_DIR)/asm/%.o: ASM_DEP = $(shell $(SCANINC) asm/$(*F).s)
+ $(BUILD_DIR)/data/%.o: ASM_DEP = $(shell $(SCANINC) data/$(*F).s)
+endif
-all: ruby
- @:
+# Secondary expansion is required for dependency variables in object rules.
+.SECONDEXPANSION:
+# Clear the default suffixes
+.SUFFIXES:
+# Don't delete intermediate files
+.SECONDARY:
+# Delete files that weren't built properly
+.DELETE_ON_ERROR:
-all_versions: $(VERSIONS)
- @:
+# Create build subdirectories
+$(shell mkdir -p $(addprefix $(BUILD_DIR)/, $(SUBDIRS)))
-# For contributors to make sure a change didn't affect the contents of the ROM.
-compare: compare_ruby
-compare_all: $(VERSIONS:%=compare_%)
+all: $(ROM)
+ifeq ($(COMPARE),1)
+ @$(SHA1SUM) $(BUILD_NAME).sha1
+endif
clean: tidy
- rm -f sound/direct_sound_samples/*.bin
- rm -f $(SONG_OBJS)
+ find sound/direct_sound_samples \( -iname '*.bin' \) -exec rm {} +
+ $(RM) $(ALL_OBJECTS)
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' \) -exec rm {} +
+ALL_BUILDS := ruby ruby_rev1 ruby_rev1 sapphire sapphire_rev1 sapphire_rev2 ruby_de sapphire_de ruby_de_debug
tidy:
- rm -f $(VERSIONS:%=poke%{.gba,.elf,.map})
- rm -r build/*
+ $(RM) $(ALL_BUILDS:%=poke%{.gba,.elf,.map})
+ $(RM) -r build
-include castform.mk
-include tilesets.mk
-include fonts.mk
-include misc.mk
-include override.mk
+$(ROM): %.gba: %.elf
+ $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
-%.s: ;
-%.png: ;
-%.pal: ;
-%.aif: ;
-
-%.1bpp: %.png ; $(GFX) $< $@
-%.4bpp: %.png ; $(GFX) $< $@
-%.8bpp: %.png ; $(GFX) $< $@
-%.gbapal: %.pal ; $(GFX) $< $@
-%.gbapal: %.png ; $(GFX) $< $@
-%.lz: % ; $(GFX) $< $@
-%.rl: % ; $(GFX) $< $@
-sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(AIF) $< $@ --compress
-%.bin: %.aif ; $(AIF) $< $@
-sound/songs/%.s: sound/songs/%.mid
- cd $(@D) && ../../$(MID) $(<F)
+%.elf: $(LD_SCRIPT) $(ALL_OBJECTS)
+ cd $(BUILD_DIR) && $(LD) -T ld_script.ld -Map ../../$(MAP) ../../$(LIBGCC) ../../$(LIBC) -o ../../$@
-%src/libs/libc.o: CC1 := tools/agbcc/bin/old_agbcc
-%src/libs/libc.o: CFLAGS := -O2
+$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_common.ld $(BUILD_DIR)/sym_ewram.ld $(BUILD_DIR)/sym_bss.ld
+ cd $(BUILD_DIR) && sed -e "s#tools/#../../tools/#g" ../../ld_script.txt >ld_script.ld
+$(BUILD_DIR)/sym_%.ld: sym_%.txt
+ $(CPP) -P $(CPPFLAGS) $< | sed -e "s#tools/#../../tools/#g" > $@
-%src/libs/siirtc.o: CFLAGS := -mthumb-interwork
+$(C_OBJECTS): $(BUILD_DIR)/%.o: %.c $$(C_DEP)
+ $(CPP) $(CPPFLAGS) $< -o $(BUILD_DIR)/$*.i
+ $(PREPROC) $(BUILD_DIR)/$*.i charmap.txt | $(CC1) $(CC1FLAGS) -o $(BUILD_DIR)/$*.s
+ @printf ".text\n\t.align\t2, 0\n" >> $(BUILD_DIR)/$*.s
+ @$(AS) $(ASFLAGS) -o $@ $(BUILD_DIR)/$*.s
-%src/libs/agb_flash.o: CFLAGS := -O -mthumb-interwork
-%src/libs/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
-%src/libs/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
+# Only .s files in data need preproc
+$(BUILD_DIR)/data/%.o: data/%.s $$(ASM_DEP)
+ $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
-%src/libs/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
-%src/libs/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
+$(BUILD_DIR)/%.o: %.s $$(ASM_DEP)
+ $(AS) $(ASFLAGS) $< -o $@
-$(SONG_OBJS): %.o: %.s
- $(AS) $(ASFLAGS) -I sound -o $@ $<
+# "friendly" target names for convenience sake
+ruby: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY
+ruby_rev1: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_REVISION=1
+ruby_rev2: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_REVISION=2
+sapphire: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE
+sapphire_rev1: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE GAME_REVISION=1
+sapphire_rev2: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE GAME_REVISION=2
+ruby_de: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN
+sapphire_de: ; @$(MAKE) --no-print-directory GAME_VERSION=SAPPHIRE GAME_LANGUAGE=GERMAN
+ruby_de_debug: ; @$(MAKE) --no-print-directory GAME_VERSION=RUBY GAME_LANGUAGE=GERMAN DEBUG=1
-define VERSION_RULES
+#### Graphics Rules ####
-$1_C_OBJS := $$(C_SRCS:%.c=build/$1/%.o)
-$1_ASM_OBJS := $$(ASM_SRCS:%.s=build/$1/%.o)
-$1_DATA_ASM_OBJS := $$(DATA_ASM_SRCS:%.s=build/$1/%.o)
+GFX_OPTS :=
-ifeq ($$(NODEP),)
-build/$1/src/%.o: c_path = $$(*D)/$$(*F).c
-build/$1/src/%.o: c_dep = $$(shell $$(SCANINC) -I include $$(wildcard $$(c_path:build/$1/=)))
-build/$1/asm/%.o: asm_dep = $$(shell $$(SCANINC) asm/$$(*F).s)
-build/$1/data/%.o: asm_dep = $$(shell $$(SCANINC) data/$$(*F).s)
-endif
+include castform.mk
+include tilesets.mk
+include fonts.mk
+include misc.mk
+include override.mk
+
+%.1bpp: %.png ; $(GBAGFX) $< $@ $(GFX_OPTS)
+%.4bpp: %.png ; $(GBAGFX) $< $@ $(GFX_OPTS)
+%.8bpp: %.png ; $(GBAGFX) $< $@ $(GFX_OPTS)
+%.gbapal: %.pal ; $(GBAGFX) $< $@ $(GFX_OPTS)
+%.gbapal: %.png ; $(GBAGFX) $< $@ $(GFX_OPTS)
+%.lz: % ; $(GBAGFX) $< $@ $(GFX_OPTS)
+%.rl: % ; $(GBAGFX) $< $@ $(GFX_OPTS)
-$1_OBJS := $$($1_C_OBJS) $$($1_ASM_OBJS) $$($1_DATA_ASM_OBJS) $$(SONG_OBJS)
-$1_OBJS_REL := $$($1_OBJS:build/$1/%=%)
-$1_OBJS_REL := $$($1_OBJS_REL:sound/%=../../sound/%)
-
-$$($1_C_OBJS): VERSION := $2
-$$($1_C_OBJS): REVISION := $3
-$$($1_C_OBJS): LANGUAGE := $4
-build/$1/%.o : %.c $$$$(c_dep)
- @$$(CPP) $$(CPPFLAGS) -D $$(VERSION) -D REVISION=$$(REVISION) -D $$(LANGUAGE) $$< -o build/$1/$$*.i
- @$$(PREPROC) build/$1/$$*.i charmap.txt | $$(CC1) $$(CFLAGS) -o build/$1/$$*.s
- @printf ".text\n\t.align\t2, 0\n" >> build/$1/$$*.s
- $$(AS) $$(ASFLAGS) -o $$@ build/$1/$$*.s
-
-$$($1_ASM_OBJS): VERSION := $2
-$$($1_ASM_OBJS): REVISION := $3
-$$($1_ASM_OBJS): LANGUAGE := $4
-build/$1/asm/%.o: asm/%.s $$$$(asm_dep)
- $$(AS) $$(ASFLAGS) --defsym $$(VERSION)=1 --defsym REVISION=$$(REVISION) --defsym $$(LANGUAGE)=1 -o $$@ $$<
-
-$$($1_DATA_ASM_OBJS): VERSION := $2
-$$($1_DATA_ASM_OBJS): REVISION := $3
-$$($1_DATA_ASM_OBJS): LANGUAGE := $4
-build/$1/data/%.o: data/%.s $$$$(asm_dep)
- $$(PREPROC) $$< charmap.txt | $$(CPP) -I include | $$(AS) $$(ASFLAGS) --defsym $$(VERSION)=1 --defsym REVISION=$$(REVISION) --defsym $$(LANGUAGE)=1 -o $$@
-
-build/$1/sym_bss.ld: LANGUAGE := $4
-build/$1/sym_bss.ld: sym_bss.txt
- cd build/$1 && ../../$$(RAMSCRGEN) .bss ../../sym_bss.txt $$(LANGUAGE) >sym_bss.ld
-
-build/$1/sym_common.ld: LANGUAGE := $4
-build/$1/sym_common.ld: sym_common.txt $$($1_C_OBJS) $$(wildcard common_syms/*.txt)
- cd build/$1 && ../../$$(RAMSCRGEN) COMMON ../../sym_common.txt $$(LANGUAGE) -c src,../../common_syms >sym_common.ld
-
-build/$1/sym_ewram.ld: LANGUAGE := $4
-build/$1/sym_ewram.ld: sym_ewram.txt
- cd build/$1 && ../../$$(RAMSCRGEN) ewram_data ../../sym_ewram.txt $$(LANGUAGE) >sym_ewram.ld
-
-build/$1/ld_script.ld: ld_script.txt build/$1/sym_bss.ld build/$1/sym_common.ld build/$1/sym_ewram.ld
- cd build/$1 && sed -f ../../ld_script.sed ../../ld_script.txt | sed "s#tools/#../../tools/#g" | sed "s#sound/#../../sound/#g" >ld_script.ld
-
-poke$1.elf: build/$1/ld_script.ld $$($1_OBJS)
- cd build/$1 && $$(LD) -T ld_script.ld -Map ../../poke$1.map -o ../../$$@ $$($1_OBJS_REL) ../../$$(LIBGCC)
-
-poke$1.gba: %.gba: %.elf
- $$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $$< $$@
-
-compare_$1: poke$1.gba
- @$$(SHA1) $1.sha1
-
-$1: poke$1.gba
- @:
-endef
-
-$(eval $(call VERSION_RULES,ruby,RUBY,0,ENGLISH))
-$(eval $(call VERSION_RULES,ruby_rev1,RUBY,1,ENGLISH))
-$(eval $(call VERSION_RULES,ruby_rev2,RUBY,2,ENGLISH))
-$(eval $(call VERSION_RULES,sapphire,SAPPHIRE,0,ENGLISH))
-$(eval $(call VERSION_RULES,sapphire_rev1,SAPPHIRE,1,ENGLISH))
-$(eval $(call VERSION_RULES,sapphire_rev2,SAPPHIRE,2,ENGLISH))
-$(eval $(call VERSION_RULES,ruby_de,RUBY,0,GERMAN))
-$(eval $(call VERSION_RULES,sapphire_de,SAPPHIRE,0,GERMAN))
+#### Sound Rules ####
+
+sound/direct_sound_samples/cries/cry_%.bin: sound/direct_sound_samples/cries/cry_%.aif
+ $(AIF2PCM) $< $@ --compress
+
+sound/%.bin: sound/%.aif
+ $(AIF2PCM) $< $@
+
+sound/songs/%.s: sound/songs/%.mid
+ cd $(@D) && ../../$(MID2AGB) $(<F)
diff --git a/asm-de/contest_link_80C2020.s b/asm-de/contest_link_80C2020.s
deleted file mode 100644
index 0213fe90c..000000000
--- a/asm-de/contest_link_80C2020.s
+++ /dev/null
@@ -1,5638 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C2020
-sub_80C2020: @ 80C2020
- push {r4,r5,lr}
- movs r5, 0x80
- lsls r5, 19
- movs r0, 0x40
- strh r0, [r5]
- ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080C20F4 @ =gMenuWindow
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _080C20F8 @ =REG_BG0CNT
- movs r2, 0xF8
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080C20FC @ =0x00001803
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080C2100 @ =0x00001c03
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080C2104 @ =0x00003a03
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080C2108 @ =REG_MOSAIC
- movs r2, 0
- strh r2, [r0]
- adds r1, 0x3A
- ldr r3, _080C210C @ =0x00003f3f
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r3, 0x11
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080C2110 @ =REG_WIN0H
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- adds r0, 0xA
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- subs r0, 0x44
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldrh r0, [r5]
- movs r3, 0xFE
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r5]
- ldr r0, _080C2114 @ =gUnknown_030042A4
- strh r2, [r0]
- ldr r0, _080C2118 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r0, _080C211C @ =gBattle_BG1_X
- strh r2, [r0]
- ldr r0, _080C2120 @ =gBattle_BG1_Y
- strh r2, [r0]
- ldr r0, _080C2124 @ =gBattle_BG2_X
- strh r2, [r0]
- ldr r0, _080C2128 @ =gBattle_BG2_Y
- strh r2, [r0]
- ldr r0, _080C212C @ =gUnknown_030041B0
- strh r2, [r0]
- ldr r0, _080C2130 @ =gUnknown_030041B8
- strh r2, [r0]
- ldr r0, _080C2134 @ =gBattle_WIN0H
- strh r2, [r0]
- ldr r0, _080C2138 @ =gBattle_WIN0V
- strh r2, [r0]
- ldr r0, _080C213C @ =gBattle_WIN1H
- strh r2, [r0]
- ldr r0, _080C2140 @ =gBattle_WIN1V
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C20F0: .4byte gWindowConfig_81E6FA0
-_080C20F4: .4byte gMenuWindow
-_080C20F8: .4byte REG_BG0CNT
-_080C20FC: .4byte 0x00001803
-_080C2100: .4byte 0x00001c03
-_080C2104: .4byte 0x00003a03
-_080C2108: .4byte REG_MOSAIC
-_080C210C: .4byte 0x00003f3f
-_080C2110: .4byte REG_WIN0H
-_080C2114: .4byte gUnknown_030042A4
-_080C2118: .4byte gUnknown_030042A0
-_080C211C: .4byte gBattle_BG1_X
-_080C2120: .4byte gBattle_BG1_Y
-_080C2124: .4byte gBattle_BG2_X
-_080C2128: .4byte gBattle_BG2_Y
-_080C212C: .4byte gUnknown_030041B0
-_080C2130: .4byte gUnknown_030041B8
-_080C2134: .4byte gBattle_WIN0H
-_080C2138: .4byte gBattle_WIN0V
-_080C213C: .4byte gBattle_WIN1H
-_080C2140: .4byte gBattle_WIN1V
- thumb_func_end sub_80C2020
-
- thumb_func_start sub_80C2144
-sub_80C2144: @ 80C2144
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- ldr r0, _080C220C @ =gUnknown_08D1977C
- mov r12, r0
- movs r5, 0
- ldr r1, _080C2210 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080C2214 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_080C2162:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080C2162
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r12
- bl LZDecompressVram
- ldr r0, _080C2218 @ =gUnknown_08D1A490
- ldr r1, _080C221C @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _080C2220 @ =gUnknown_08D1A364
- ldr r1, _080C2224 @ =0x0600e000
- bl LZDecompressVram
- ldr r0, _080C2228 @ =gUnknown_08D1A250
- ldr r1, _080C222C @ =0x0600f000
- bl LZDecompressVram
- bl sub_80C37E4
- ldr r0, _080C2230 @ =gUnknown_08D1A618
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- ldr r0, _080C2234 @ =gWindowConfig_81E6FA0
- bl LoadFontDefaultPalette
- movs r6, 0
-_080C21C0:
- lsls r5, r6, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80C3990
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80C39E4
- movs r5, 0
- lsls r1, r6, 1
- adds r2, r6, 0x1
- mov r12, r2
- lsls r4, 24
- asrs r7, r4, 24
- adds r1, r6
- lsls r1, 6
- lsls r4, r0, 24
-_080C21EC:
- ldr r6, _080C2238 @ =0x000060b2
- cmp r5, r7
- bge _080C21F4
- adds r6, 0x2
-_080C21F4:
- asrs r2, r4, 24
- adds r0, r2, 0
- cmp r2, 0
- bge _080C21FE
- negs r0, r2
-_080C21FE:
- cmp r5, r0
- bge _080C2240
- ldr r3, _080C223C @ =0x000060a4
- cmp r2, 0
- bge _080C2242
- adds r3, 0x2
- b _080C2242
- .align 2, 0
-_080C220C: .4byte gUnknown_08D1977C
-_080C2210: .4byte 0x040000d4
-_080C2214: .4byte 0x85000400
-_080C2218: .4byte gUnknown_08D1A490
-_080C221C: .4byte 0x0600d000
-_080C2220: .4byte gUnknown_08D1A364
-_080C2224: .4byte 0x0600e000
-_080C2228: .4byte gUnknown_08D1A250
-_080C222C: .4byte 0x0600f000
-_080C2230: .4byte gUnknown_08D1A618
-_080C2234: .4byte gWindowConfig_81E6FA0
-_080C2238: .4byte 0x000060b2
-_080C223C: .4byte 0x000060a4
-_080C2240:
- ldr r3, _080C2264 @ =0x000060a2
-_080C2242:
- ldr r2, _080C2268 @ =0x0600c166
- adds r0, r1, r2
- strh r6, [r0]
- adds r2, 0x40
- adds r0, r1, r2
- strh r3, [r0]
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, 0x9
- ble _080C21EC
- mov r6, r12
- cmp r6, 0x3
- ble _080C21C0
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2264: .4byte 0x000060a2
-_080C2268: .4byte 0x0600c166
- thumb_func_end sub_80C2144
-
- thumb_func_start sub_80C226C
-sub_80C226C: @ 80C226C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C2288 @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- cmp r5, r0
- bne _080C2294
- ldr r0, _080C228C @ =gDisplayedStringBattle
- ldr r1, _080C2290 @ =gUnknown_083D17DC
- bl StringCopy
- adds r2, r0, 0
- b _080C2296
- .align 2, 0
-_080C2288: .4byte gContestPlayerMonIndex
-_080C228C: .4byte gDisplayedStringBattle
-_080C2290: .4byte gUnknown_083D17DC
-_080C2294:
- ldr r2, _080C22E8 @ =gDisplayedStringBattle
-_080C2296:
- movs r4, 0xFC
- strb r4, [r2]
- movs r0, 0x6
- strb r0, [r2, 0x1]
- movs r0, 0x4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r6, r5, 6
- ldr r7, _080C22EC @ =gContestMons + 0x2
- adds r1, r6, r7
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r4, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x32
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r1, _080C22F0 @ =gUnknown_083D17E0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080C22F4 @ =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C22FC
- lsls r4, r5, 3
- subs r1, r4, r5
- lsls r1, 2
- ldr r0, _080C22F8 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- b _080C230A
- .align 2, 0
-_080C22E8: .4byte gDisplayedStringBattle
-_080C22EC: .4byte gContestMons + 0x2
-_080C22F0: .4byte gUnknown_083D17E0
-_080C22F4: .4byte gIsLinkContest
-_080C22F8: .4byte gLinkPlayers + 0x8
-_080C22FC:
- adds r1, r7, 0
- adds r1, 0xB
- adds r1, r6, r1
- adds r0, r2, 0
- bl StringCopy
- lsls r4, r5, 3
-_080C230A:
- ldr r0, _080C2334 @ =gMenuWindow
- ldr r1, _080C2338 @ =gDisplayedStringBattle
- adds r2, r4, r5
- lsls r2, 18
- ldr r3, _080C233C @ =0x03020000
- adds r2, r3
- lsrs r2, 16
- lsls r3, r5, 1
- adds r3, r5
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x7
- bl sub_8003460
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2334: .4byte gMenuWindow
-_080C2338: .4byte gDisplayedStringBattle
-_080C233C: .4byte 0x03020000
- thumb_func_end sub_80C226C
-
- thumb_func_start sub_80C2340
-sub_80C2340: @ 80C2340
- push {r4,lr}
- movs r4, 0
-_080C2344:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80C226C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C2344
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C2340
-
- thumb_func_start sub_80C2358
-sub_80C2358: @ 80C2358
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080C240C @ =gPaletteFade
- ldrb r0, [r5, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r5, 0x8]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80C2020
- bl dp12_8087EA4
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl sub_80C2144
- bl sub_80C310C
- movs r0, 0
- movs r1, 0x1
- bl sub_80C30D4
- bl sub_80C2340
- ldr r4, _080C2410 @ =gSharedMem + 0x18000
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- adds r0, r4, 0
- adds r0, 0x18
- movs r1, 0
- movs r2, 0x50
- bl memset
- bl sub_80C33DC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrb r1, [r5, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5, 0x8]
- ldr r0, _080C2414 @ =sub_80C24F4
- movs r1, 0x5
- bl CreateTask
- strb r0, [r4, 0x2]
- ldr r0, _080C2418 @ =sub_80C2430
- bl SetMainCallback2
- ldr r1, _080C241C @ =gBattle_WIN1H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _080C2420 @ =gBattle_WIN1V
- ldr r2, _080C2424 @ =0x000080a0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080C2428 @ =sub_80C2F28
- movs r1, 0x14
- bl CreateTask
- bl sub_80C3F00
- movs r0, 0xDF
- lsls r0, 1
- bl PlayBGM
- ldr r0, _080C242C @ =sub_80C2448
- bl SetVBlankCallback
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C240C: .4byte gPaletteFade
-_080C2410: .4byte gSharedMem + 0x18000
-_080C2414: .4byte sub_80C24F4
-_080C2418: .4byte sub_80C2430
-_080C241C: .4byte gBattle_WIN1H
-_080C2420: .4byte gBattle_WIN1V
-_080C2424: .4byte 0x000080a0
-_080C2428: .4byte sub_80C2F28
-_080C242C: .4byte sub_80C2448
- thumb_func_end sub_80C2358
-
- thumb_func_start sub_80C2430
-sub_80C2430: @ 80C2430
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80C2430
-
- thumb_func_start sub_80C2448
-sub_80C2448: @ 80C2448
- push {lr}
- ldr r1, _080C24C0 @ =REG_BG0HOFS
- ldr r0, _080C24C4 @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24C8 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24CC @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D0 @ =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D4 @ =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D8 @ =gBattle_BG2_Y
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24DC @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24E0 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _080C24E4 @ =gBattle_WIN0H
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080C24E8 @ =gBattle_WIN0V
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _080C24EC @ =gBattle_WIN1H
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080C24F0 @ =gBattle_WIN1V
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080C24C0: .4byte REG_BG0HOFS
-_080C24C4: .4byte gUnknown_030042A4
-_080C24C8: .4byte gUnknown_030042A0
-_080C24CC: .4byte gBattle_BG1_X
-_080C24D0: .4byte gBattle_BG1_Y
-_080C24D4: .4byte gBattle_BG2_X
-_080C24D8: .4byte gBattle_BG2_Y
-_080C24DC: .4byte gUnknown_030041B0
-_080C24E0: .4byte gUnknown_030041B8
-_080C24E4: .4byte gBattle_WIN0H
-_080C24E8: .4byte gBattle_WIN0V
-_080C24EC: .4byte gBattle_WIN1H
-_080C24F0: .4byte gBattle_WIN1V
- thumb_func_end sub_80C2448
-
- thumb_func_start sub_80C24F4
-sub_80C24F4: @ 80C24F4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- ldr r0, _080C252C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C254E
- ldr r0, _080C2530 @ =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2540
- ldr r0, _080C2534 @ =gOtherText_LinkStandby
- bl sub_80C3698
- ldr r1, _080C2538 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C253C @ =sub_80C255C
- str r1, [r0]
- b _080C254E
- .align 2, 0
-_080C252C: .4byte gPaletteFade
-_080C2530: .4byte gIsLinkContest
-_080C2534: .4byte gOtherText_LinkStandby
-_080C2538: .4byte gTasks
-_080C253C: .4byte sub_80C255C
-_080C2540:
- ldr r0, _080C2554 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2558 @ =sub_80C2600
- str r0, [r1]
-_080C254E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2554: .4byte gTasks
-_080C2558: .4byte sub_80C2600
- thumb_func_end sub_80C24F4
-
- thumb_func_start sub_80C255C
-sub_80C255C: @ 80C255C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C258C
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C258C
- ldr r0, _080C2598 @ =sub_80C25A4
- movs r1, 0
- bl CreateTask
- ldr r1, _080C259C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C25A0 @ =TaskDummy
- str r1, [r0]
-_080C258C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2594: .4byte gReceivedRemoteLinkPlayers
-_080C2598: .4byte sub_80C25A4
-_080C259C: .4byte gTasks
-_080C25A0: .4byte TaskDummy
- thumb_func_end sub_80C255C
-
- thumb_func_start sub_80C25A4
-sub_80C25A4: @ 80C25A4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C25B8 @ =sub_80C89DC
- ldr r2, _080C25BC @ =sub_80C25C0
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C25B8: .4byte sub_80C89DC
-_080C25BC: .4byte sub_80C25C0
- thumb_func_end sub_80C25A4
-
- thumb_func_start sub_80C25C0
-sub_80C25C0: @ 80C25C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C25EC
- adds r0, r4, 0
- bl DestroyTask
- ldr r2, _080C25F4 @ =gTasks
- ldr r0, _080C25F8 @ =gSharedMem + 0x18000
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080C25FC @ =sub_80C2600
- str r1, [r0]
- bl sub_80C3764
-_080C25EC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C25F4: .4byte gTasks
-_080C25F8: .4byte gSharedMem + 0x18000
-_080C25FC: .4byte sub_80C2600
- thumb_func_end sub_80C25C0
-
- thumb_func_start sub_80C2600
-sub_80C2600: @ 80C2600
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2644 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrh r1, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080C2654
- ldr r0, _080C2648 @ =sub_80C2F64
- movs r1, 0x14
- bl CreateTask
- ldr r4, _080C264C @ =gContestText_AnnounceResults
- ldr r0, _080C2650 @ =gSharedMem + 0x18000
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- movs r2, 0x78
- b _080C26A6
- .align 2, 0
-_080C2644: .4byte gTasks
-_080C2648: .4byte sub_80C2F64
-_080C264C: .4byte gContestText_AnnounceResults
-_080C2650: .4byte gSharedMem + 0x18000
-_080C2654:
- cmp r0, 0x1
- bne _080C2668
- ldr r0, _080C2664 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080C26D4
- b _080C267C
- .align 2, 0
-_080C2664: .4byte gSharedMem + 0x18000
-_080C2668:
- cmp r0, 0x2
- bne _080C2684
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080C26D4
- movs r0, 0
-_080C267C:
- strh r0, [r5, 0xA]
- adds r0, r1, 0x1
- strh r0, [r5, 0x8]
- b _080C26D4
-_080C2684:
- cmp r0, 0x3
- bne _080C26C0
- ldr r4, _080C26B4 @ =gContestText_PreliminaryResults
- ldr r0, _080C26B8 @ =gSharedMem + 0x18000
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C26BC @ =0x0000ffff
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
-_080C26A6:
- bl sub_80C34CC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080C26D4
- .align 2, 0
-_080C26B4: .4byte gContestText_PreliminaryResults
-_080C26B8: .4byte gSharedMem + 0x18000
-_080C26BC: .4byte 0x0000ffff
-_080C26C0:
- cmp r0, 0x4
- bne _080C26D4
- ldr r0, _080C26DC @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- bne _080C26D4
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080C26E0 @ =sub_80C26E4
- str r0, [r5]
-_080C26D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C26DC: .4byte gSharedMem + 0x18000
-_080C26E0: .4byte sub_80C26E4
- thumb_func_end sub_80C2600
-
- thumb_func_start sub_80C26E4
-sub_80C26E4: @ 80C26E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2708 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C2744
- cmp r0, 0x1
- bgt _080C270C
- cmp r0, 0
- beq _080C2712
- b _080C2766
- .align 2, 0
-_080C2708: .4byte gTasks
-_080C270C:
- cmp r0, 0x2
- beq _080C2754
- b _080C2766
-_080C2712:
- ldr r5, _080C2738 @ =gSharedMem + 0x18000
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080C2766
- ldrh r1, [r4, 0xC]
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_80C40D4
- ldrb r0, [r5, 0x14]
- cmp r0, 0
- bne _080C273C
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080C2766
- .align 2, 0
-_080C2738: .4byte gSharedMem + 0x18000
-_080C273C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C2766
-_080C2744:
- ldr r0, _080C2750 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080C2766
- strh r0, [r4, 0x8]
- b _080C2766
- .align 2, 0
-_080C2750: .4byte gSharedMem + 0x18000
-_080C2754:
- movs r0, 0x88
- lsls r0, 3
- bl sub_80C3520
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xC]
- ldr r0, _080C276C @ =sub_80C2770
- str r0, [r4]
-_080C2766:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C276C: .4byte sub_80C2770
- thumb_func_end sub_80C26E4
-
- thumb_func_start sub_80C2770
-sub_80C2770: @ 80C2770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r5, _080C27BC @ =gSharedMem + 0x18000
- ldrb r3, [r5, 0x4]
- cmp r3, 0
- bne _080C27CC
- ldr r1, _080C27C0 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080C27DE
- strh r3, [r1, 0xA]
- ldr r4, _080C27C4 @ =gContestText_Round2Results
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C27C8 @ =0x0000ffff
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- bl sub_80C34CC
- b _080C27DE
- .align 2, 0
-_080C27BC: .4byte gSharedMem + 0x18000
-_080C27C0: .4byte gTasks
-_080C27C4: .4byte gContestText_Round2Results
-_080C27C8: .4byte 0x0000ffff
-_080C27CC:
- cmp r3, 0x2
- bne _080C27DE
- ldr r0, _080C27E4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C27E8 @ =sub_80C27EC
- str r0, [r1]
-_080C27DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C27E4: .4byte gTasks
-_080C27E8: .4byte sub_80C27EC
- thumb_func_end sub_80C2770
-
- thumb_func_start sub_80C27EC
-sub_80C27EC: @ 80C27EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2810 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C284C
- cmp r0, 0x1
- bgt _080C2814
- cmp r0, 0
- beq _080C281A
- b _080C286C
- .align 2, 0
-_080C2810: .4byte gTasks
-_080C2814:
- cmp r0, 0x2
- beq _080C285C
- b _080C286C
-_080C281A:
- ldr r5, _080C2840 @ =gSharedMem + 0x18000
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080C286C
- ldrh r1, [r4, 0xC]
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_80C40D4
- ldrb r0, [r5, 0x14]
- cmp r0, 0
- bne _080C2844
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080C286C
- .align 2, 0
-_080C2840: .4byte gSharedMem + 0x18000
-_080C2844:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C286C
-_080C284C:
- ldr r0, _080C2858 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080C286C
- strh r0, [r4, 0x8]
- b _080C286C
- .align 2, 0
-_080C2858: .4byte gSharedMem + 0x18000
-_080C285C:
- movs r0, 0x88
- lsls r0, 3
- bl sub_80C3520
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080C2874 @ =sub_80C2878
- str r0, [r4]
-_080C286C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2874: .4byte sub_80C2878
- thumb_func_end sub_80C27EC
-
- thumb_func_start sub_80C2878
-sub_80C2878: @ 80C2878
- push {r4-r7,lr}
- sub sp, 0x64
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C28A0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x5
- bls _080C2896
- b _080C2A80
-_080C2896:
- lsls r0, 2
- ldr r1, _080C28A4 @ =_080C28A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C28A0: .4byte gTasks
-_080C28A4: .4byte _080C28A8
- .align 2, 0
-_080C28A8:
- .4byte _080C28C0
- .4byte _080C28E0
- .4byte _080C28FE
- .4byte _080C2938
- .4byte _080C299C
- .4byte _080C2A70
-_080C28C0:
- ldr r0, _080C28DC @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080C28CA
- b _080C2A80
-_080C28CA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C2A80
- .align 2, 0
-_080C28DC: .4byte gSharedMem + 0x18000
-_080C28E0:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- beq _080C28F8
- b _080C2A80
-_080C28F8:
- movs r0, 0
- strh r0, [r1, 0xA]
- b _080C2A4A
-_080C28FE:
- movs r4, 0
- lsls r6, r5, 2
- ldr r7, _080C292C @ =gTasks
-_080C2904:
- ldr r0, _080C2930 @ =sub_80C3A5C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- ldr r0, _080C2934 @ =gContestFinalStandings
- adds r0, r4, r0
- ldrb r0, [r0]
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C2904
- b _080C2A42
- .align 2, 0
-_080C292C: .4byte gTasks
-_080C2930: .4byte sub_80C3A5C
-_080C2934: .4byte gContestFinalStandings
-_080C2938:
- ldr r0, _080C2990 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- beq _080C2942
- b _080C2A80
-_080C2942:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- beq _080C295A
- b _080C2A80
-_080C295A:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldr r0, _080C2994 @ =sub_80C3B30
- movs r1, 0xA
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r4, 0
- ldr r1, _080C2998 @ =gContestFinalStandings
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C2984
-_080C2976:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080C2984
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C2976
-_080C2984:
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0xE
- bl sub_80C3E60
- b _080C2A80
- .align 2, 0
-_080C2990: .4byte gSharedMem + 0x18000
-_080C2994: .4byte sub_80C3B30
-_080C2998: .4byte gContestFinalStandings
-_080C299C:
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r2, r0, r2
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- adds r6, r1, 0
- cmp r0, 0x15
- bne _080C2A80
- movs r0, 0
- strh r0, [r2, 0xA]
- movs r4, 0
- ldr r2, _080C29F4 @ =gContestFinalStandings
- ldrb r0, [r2]
- ldr r1, _080C29F8 @ =gIsLinkContest
- ldr r3, _080C29FC @ =gStringVar1
- cmp r0, 0
- beq _080C29D4
-_080C29C6:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080C29D4
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C29C6
-_080C29D4:
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2A04
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r0, _080C2A00 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- lsls r4, 6
- b _080C2A10
- .align 2, 0
-_080C29F4: .4byte gContestFinalStandings
-_080C29F8: .4byte gIsLinkContest
-_080C29FC: .4byte gStringVar1
-_080C2A00: .4byte gLinkPlayers + 0x8
-_080C2A04:
- lsls r4, 6
- ldr r1, _080C2A54 @ =gUnknown_0203857D
- adds r1, r4, r1
- adds r0, r3, 0
- bl StringCopy
-_080C2A10:
- ldr r0, _080C2A58 @ =gStringVar2
- ldr r1, _080C2A5C @ =gContestMons + 0x2
- adds r1, r4, r1
- bl StringCopy
- ldr r1, _080C2A60 @ =gContestText_PokeWon
- mov r0, sp
- bl StringExpandPlaceholders
- ldr r0, _080C2A64 @ =gSharedMem + 0x18000
- ldrb r1, [r0]
- mov r0, sp
- bl sub_80C3158
- mov r0, sp
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C2A68 @ =0x0000ffff
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- bl sub_80C34CC
-_080C2A42:
- ldr r0, _080C2A6C @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
-_080C2A4A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C2A80
- .align 2, 0
-_080C2A54: .4byte gUnknown_0203857D
-_080C2A58: .4byte gStringVar2
-_080C2A5C: .4byte gContestMons + 0x2
-_080C2A60: .4byte gContestText_PokeWon
-_080C2A64: .4byte gSharedMem + 0x18000
-_080C2A68: .4byte 0x0000ffff
-_080C2A6C: .4byte gTasks
-_080C2A70:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080C2A88 @ =sub_80C2A8C
- str r1, [r0]
-_080C2A80:
- add sp, 0x64
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2A88: .4byte sub_80C2A8C
- thumb_func_end sub_80C2878
-
- thumb_func_start sub_80C2A8C
-sub_80C2A8C: @ 80C2A8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080C2ABC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _080C2AB2
- b _080C2D04
-_080C2AB2:
- lsls r0, 2
- ldr r1, _080C2AC0 @ =_080C2AC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C2ABC: .4byte gTasks
-_080C2AC0: .4byte _080C2AC4
- .align 2, 0
-_080C2AC4:
- .4byte _080C2ADC
- .4byte _080C2C04
- .4byte _080C2C54
- .4byte _080C2C64
- .4byte _080C2CA8
- .4byte _080C2CE8
-_080C2ADC:
- ldr r1, _080C2BC4 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _080C2BC8 @ =gBattle_WIN0V
- ldr r3, _080C2BCC @ =0x00005050
- adds r0, r3, 0
- strh r0, [r1]
- movs r1, 0
- ldr r3, _080C2BD0 @ =gContestFinalStandings
- ldrb r0, [r3]
- lsls r4, r7, 2
- mov r10, r4
- ldr r2, _080C2BD4 @ =gContestMons
- ldr r5, _080C2BD8 @ =gMonFrontPicTable
- mov r12, r5
- ldr r4, _080C2BDC @ =gMonFrontPicCoords
- mov r8, r4
- ldr r5, _080C2BE0 @ =gUnknown_081FAF4C
- mov r9, r5
- cmp r0, 0
- beq _080C2B14
-_080C2B06:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _080C2B14
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C2B06
-_080C2B14:
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r4, [r0]
- adds r0, r2, 0
- adds r0, 0x3C
- adds r1, r0
- ldr r1, [r1]
- str r1, [sp, 0xC]
- lsls r0, r6, 3
- add r0, r12
- lsls r2, r6, 2
- add r2, r8
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- mov r5, r9
- ldr r3, [r5, 0x4]
- str r3, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r3, _080C2BE4 @ =gSharedMem
- bl HandleLoadSpecialPokePic
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- adds r2, r4, 0
- bl GetMonSpritePalStructFromOtIdPersonality
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080C2BE8 @ =gUnknown_02024E8C
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x50
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080C2BEC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r3, r2, r5
- strh r6, [r3, 0x30]
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- strb r1, [r3, 0x5]
- adds r5, 0x1C
- adds r2, r5
- ldr r1, _080C2BF0 @ =sub_80C3C44
- str r1, [r2]
- ldr r2, _080C2BE4 @ =gSharedMem
- movs r3, 0xC0
- lsls r3, 9
- adds r1, r2, r3
- strb r0, [r1, 0x8]
- ldr r0, _080C2BF4 @ =gUnknown_083D17CC
- bl LoadCompressedObjectPic
- ldr r0, _080C2BF8 @ =gUnknown_083D17D4
- bl LoadCompressedObjectPalette
- ldr r0, _080C2BFC @ =sub_80C3D04
- movs r1, 0xA
- bl CreateTask
- ldr r0, _080C2C00 @ =gTasks
- mov r4, r10
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2BC4: .4byte gBattle_WIN0H
-_080C2BC8: .4byte gBattle_WIN0V
-_080C2BCC: .4byte 0x00005050
-_080C2BD0: .4byte gContestFinalStandings
-_080C2BD4: .4byte gContestMons
-_080C2BD8: .4byte gMonFrontPicTable
-_080C2BDC: .4byte gMonFrontPicCoords
-_080C2BE0: .4byte gUnknown_081FAF4C
-_080C2BE4: .4byte gSharedMem
-_080C2BE8: .4byte gUnknown_02024E8C
-_080C2BEC: .4byte gSprites
-_080C2BF0: .4byte sub_80C3C44
-_080C2BF4: .4byte gUnknown_083D17CC
-_080C2BF8: .4byte gUnknown_083D17D4
-_080C2BFC: .4byte sub_80C3D04
-_080C2C00: .4byte gTasks
-_080C2C04:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080C2D04
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080C2C30
- movs r0, 0x20
- strh r0, [r4, 0xC]
-_080C2C30:
- ldrb r2, [r4, 0xC]
- ldr r3, _080C2C50 @ =gBattle_WIN0V
- movs r0, 0x50
- subs r0, r2
- lsls r0, 8
- adds r1, r2, 0
- adds r1, 0x50
- orrs r0, r1
- strh r0, [r3]
- cmp r2, 0x20
- bne _080C2D04
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2C50: .4byte gBattle_WIN0V
-_080C2C54:
- ldr r0, _080C2C60 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _080C2D04
- b _080C2CD0
- .align 2, 0
-_080C2C60: .4byte gSharedMem + 0x18000
-_080C2C64:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r4
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x79
- bne _080C2D04
- movs r0, 0
- strh r0, [r3, 0xA]
- ldr r2, _080C2C9C @ =gSprites
- ldr r0, _080C2CA0 @ =gSharedMem + 0x18000
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080C2CA4 @ =sub_80C3CB8
- str r1, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2C9C: .4byte gSprites
-_080C2CA0: .4byte gSharedMem + 0x18000
-_080C2CA4: .4byte sub_80C3CB8
-_080C2CA8:
- ldr r0, _080C2CE0 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x6]
- cmp r0, 0x2
- bne _080C2D04
- ldr r3, _080C2CE4 @ =gBattle_WIN0V
- ldrh r0, [r3]
- lsrs r2, r0, 8
- adds r0, r2, 0x2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x50
- bls _080C2CC2
- movs r2, 0x50
-_080C2CC2:
- lsls r1, r2, 8
- movs r0, 0xA0
- subs r0, r2
- orrs r1, r0
- strh r1, [r3]
- cmp r2, 0x50
- bne _080C2D04
-_080C2CD0:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2CE0: .4byte gSharedMem + 0x18000
-_080C2CE4: .4byte gBattle_WIN0V
-_080C2CE8:
- ldr r2, _080C2D14 @ =gSharedMem + 0x18000
- ldrb r0, [r2, 0x6]
- cmp r0, 0x2
- bne _080C2D04
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x9]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- strh r1, [r0, 0x8]
- ldr r1, _080C2D18 @ =sub_80C2D1C
- str r1, [r0]
-_080C2D04:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2D14: .4byte gSharedMem + 0x18000
-_080C2D18: .4byte sub_80C2D1C
- thumb_func_end sub_80C2A8C
-
- thumb_func_start sub_80C2D1C
-sub_80C2D1C: @ 80C2D1C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080C2D6C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C2D66
- ldr r0, _080C2D70 @ =gIsLinkContest
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- lsls r6, r7, 2
- cmp r0, 0
- bne _080C2D5A
- ldr r5, _080C2D74 @ =gContestMons
- movs r4, 0x3
-_080C2D42:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetSetPokedexFlag
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bge _080C2D42
-_080C2D5A:
- ldr r0, _080C2D78 @ =gTasks
- adds r1, r6, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2D7C @ =sub_80C2D80
- str r0, [r1]
-_080C2D66:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2D6C: .4byte gMain
-_080C2D70: .4byte gIsLinkContest
-_080C2D74: .4byte gContestMons
-_080C2D78: .4byte gTasks
-_080C2D7C: .4byte sub_80C2D80
- thumb_func_end sub_80C2D1C
-
- thumb_func_start sub_80C2D80
-sub_80C2D80: @ 80C2D80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2DAC @ =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2DBC
- ldr r0, _080C2DB0 @ =gOtherText_LinkStandby
- bl sub_80C3698
- bl sub_800832C
- ldr r1, _080C2DB4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2DB8 @ =sub_80C2DD8
- str r1, [r0]
- b _080C2DCA
- .align 2, 0
-_080C2DAC: .4byte gIsLinkContest
-_080C2DB0: .4byte gOtherText_LinkStandby
-_080C2DB4: .4byte gTasks
-_080C2DB8: .4byte sub_80C2DD8
-_080C2DBC:
- ldr r0, _080C2DD0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2DD4 @ =sub_80C2E14
- str r0, [r1]
-_080C2DCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2DD0: .4byte gTasks
-_080C2DD4: .4byte sub_80C2E14
- thumb_func_end sub_80C2D80
-
- thumb_func_start sub_80C2DD8
-sub_80C2DD8: @ 80C2DD8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers
- ldrb r1, [r0]
- cmp r1, 0
- bne _080C2DFC
- ldr r0, _080C2E08 @ =gIsLinkContest
- strb r1, [r0]
- bl sub_80C3764
- ldr r1, _080C2E0C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2E10 @ =sub_80C2E14
- str r1, [r0]
-_080C2DFC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E04: .4byte gReceivedRemoteLinkPlayers
-_080C2E08: .4byte gIsLinkContest
-_080C2E0C: .4byte gTasks
-_080C2E10: .4byte sub_80C2E14
- thumb_func_end sub_80C2DD8
-
- thumb_func_start sub_80C2E14
-sub_80C2E14: @ 80C2E14
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080C2E80 @ =gContestFinalStandings
- ldr r0, _080C2E84 @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80BE284
- movs r0, 0x2
- bl sub_810FB10
- ldr r0, _080C2E88 @ =gSpecialVar_ContestRank
- ldrb r0, [r0]
- bl Contest_SaveWinner
- movs r0, 0xFE
- bl Contest_SaveWinner
- ldr r4, _080C2E8C @ =gSharedMem
- ldr r0, _080C2E90 @ =0x00015ddf
- adds r1, r4, r0
- movs r6, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0xFE
- movs r1, 0
- bl sub_80B2C4C
- ldr r1, _080C2E94 @ =0x00015dde
- adds r4, r1
- strb r0, [r4]
- str r6, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, _080C2E98 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2E9C @ =sub_80C2EA0
- str r1, [r0]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E80: .4byte gContestFinalStandings
-_080C2E84: .4byte gContestPlayerMonIndex
-_080C2E88: .4byte gSpecialVar_ContestRank
-_080C2E8C: .4byte gSharedMem
-_080C2E90: .4byte 0x00015ddf
-_080C2E94: .4byte 0x00015dde
-_080C2E98: .4byte gTasks
-_080C2E9C: .4byte sub_80C2EA0
- thumb_func_end sub_80C2E14
-
- thumb_func_start sub_80C2EA0
-sub_80C2EA0: @ 80C2EA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- ldr r0, _080C2ED8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080C2F18
- ldr r1, _080C2EDC @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C2EE8
- ldr r0, _080C2EE0 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x3]
- bl DestroyTask
- ldr r0, _080C2EE4 @ =0x0000ffff
- b _080C2EEE
- .align 2, 0
-_080C2ED8: .4byte gPaletteFade
-_080C2EDC: .4byte gTasks
-_080C2EE0: .4byte gSharedMem + 0x18000
-_080C2EE4: .4byte 0x0000ffff
-_080C2EE8:
- cmp r0, 0x1
- bne _080C2F04
- ldr r0, _080C2F00 @ =0xffff0000
-_080C2EEE:
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080C2F18
- .align 2, 0
-_080C2F00: .4byte 0xffff0000
-_080C2F04:
- ldr r0, _080C2F20 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x4
- strh r3, [r0]
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_080C2F18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2F20: .4byte REG_BLDCNT
-_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C2EA0
-
- thumb_func_start sub_80C2F28
-sub_80C2F28: @ 80C2F28
- push {r4,r5,lr}
- ldr r2, _080C2F5C @ =gUnknown_030041B0
- ldrh r3, [r2]
- adds r0, r3, 0x2
- strh r0, [r2]
- ldr r4, _080C2F60 @ =gUnknown_030041B8
- ldrh r5, [r4]
- adds r1, r5, 0x1
- strh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _080C2F48
- adds r0, r3, 0
- subs r0, 0xFD
- strh r0, [r2]
-_080C2F48:
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _080C2F56
- adds r0, r5, 0
- subs r0, 0xFE
- strh r0, [r4]
-_080C2F56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2F5C: .4byte gUnknown_030041B0
-_080C2F60: .4byte gUnknown_030041B8
- thumb_func_end sub_80C2F28
-
- thumb_func_start sub_80C2F64
-sub_80C2F64: @ 80C2F64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C2F94 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080C2FE6
- movs r0, 0
- strh r0, [r2, 0x8]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080C2F98
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- b _080C2F9C
- .align 2, 0
-_080C2F94: .4byte gTasks
-_080C2F98:
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
-_080C2F9C:
- strh r0, [r2, 0xA]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x10
- bne _080C2FB2
- movs r0, 0x1
- b _080C2FB6
-_080C2FB2:
- cmp r0, 0
- bne _080C2FB8
-_080C2FB6:
- strh r0, [r1, 0xC]
-_080C2FB8:
- ldr r0, _080C3000 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r2, [r4, 0xA]
- ldr r3, _080C3004 @ =0x00002ede
- movs r0, 0x6B
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldr r3, _080C3008 @ =0x00007fff
- movs r0, 0x68
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldr r3, _080C300C @ =0x000077be
- movs r0, 0x6E
- movs r1, 0x1
- bl BlendPalette
-_080C2FE6:
- ldr r1, _080C3000 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r3, 0xA
- ldrsh r4, [r0, r3]
- cmp r4, 0
- bne _080C3014
- ldr r0, _080C3010 @ =gSharedMem + 0x18000
- strb r4, [r0, 0xA]
- b _080C301A
- .align 2, 0
-_080C3000: .4byte gTasks
-_080C3004: .4byte 0x00002ede
-_080C3008: .4byte 0x00007fff
-_080C300C: .4byte 0x000077be
-_080C3010: .4byte gSharedMem + 0x18000
-_080C3014:
- ldr r1, _080C3020 @ =gSharedMem + 0x18000
- movs r0, 0x1
- strb r0, [r1, 0xA]
-_080C301A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3020: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C2F64
-
- thumb_func_start sub_80C3024
-sub_80C3024: @ 80C3024
- push {r4-r6,lr}
- ldr r6, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- cmp r3, 0
- beq _080C30B0
- adds r1, r6, 0
- bl GetMonIconPtr
- lsls r1, r5, 9
- adds r0, r1
- adds r0, 0x80
- lsls r1, r4, 9
- ldr r2, _080C30A0 @ =0x06004000
- adds r1, r2
- ldr r2, _080C30A4 @ =0x040000d4
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080C30A8 @ =0x84000060
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, r4, 0
- adds r1, 0xA
- lsls r1, 28
- lsls r0, r4, 20
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- orrs r0, r1
- lsrs r1, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 21
- movs r2, 0x83
- lsls r2, 16
- adds r0, r2
- lsrs r5, r0, 16
- movs r2, 0
- ldr r6, _080C30AC @ =0x0600c000
-_080C307C:
- lsls r0, r2, 5
- adds r4, r2, 0x1
- adds r0, r5
- movs r3, 0x3
- lsls r0, 1
- adds r2, r0, r6
-_080C3088:
- strh r1, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3088
- adds r2, r4, 0
- cmp r2, 0x2
- ble _080C307C
- b _080C30CA
- .align 2, 0
-_080C30A0: .4byte 0x06004000
-_080C30A4: .4byte 0x040000d4
-_080C30A8: .4byte 0x84000060
-_080C30AC: .4byte 0x0600c000
-_080C30B0:
- adds r1, r6, 0
- bl GetMonIconPtr
- lsls r1, r5, 9
- adds r0, r1
- adds r0, 0x80
- lsls r1, r4, 9
- ldr r2, _080C30D0 @ =0x06004000
- adds r1, r2
- movs r2, 0xC0
- lsls r2, 1
- bl RequestSpriteCopy
-_080C30CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C30D0: .4byte 0x06004000
- thumb_func_end sub_80C3024
-
- thumb_func_start sub_80C30D4
-sub_80C30D4: @ 80C30D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r5, 0
- ldr r4, _080C3108 @ =gContestMons
-_080C30E4:
- ldrh r0, [r4]
- lsls r1, r5, 24
- lsrs r1, 24
- ldr r2, [r4, 0x38]
- str r2, [sp]
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_80C3024
- adds r4, 0x40
- adds r5, 0x1
- cmp r5, 0x3
- ble _080C30E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3108: .4byte gContestMons
- thumb_func_end sub_80C30D4
-
- thumb_func_start sub_80C310C
-sub_80C310C: @ 80C310C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _080C314C @ =gMonIconPaletteIndices
- movs r5, 0xA0
- lsls r5, 16
-_080C3116:
- ldr r1, _080C3150 @ =gContestMons
- lsls r0, r4, 6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080C3154 @ =gMonIconPalettes
- adds r0, r1
- lsrs r1, r5, 16
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 13
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C3116
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C314C: .4byte gMonIconPaletteIndices
-_080C3150: .4byte gContestMons
-_080C3154: .4byte gMonIconPalettes
- thumb_func_end sub_80C310C
-
- thumb_func_start sub_80C3158
-sub_80C3158: @ 80C3158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r3, _080C32C0 @ =gSprites
- adds r2, r3
- mov r1, sp
- ldrh r0, [r2, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1]
- mov r4, sp
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x2]
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x4]
- movs r0, 0x32
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x6]
- ldr r1, _080C32C4 @ =gWindowConfig_81E7278
- mov r8, r1
- ldr r7, _080C32C8 @ =0x06010000
- ldr r2, _080C32CC @ =0x040000d4
- ldr r6, _080C32D0 @ =0x85000100
- mov r1, sp
- movs r5, 0
- add r3, sp, 0x8
- movs r4, 0x3
-_080C31CE:
- ldrh r0, [r1]
- lsls r0, 5
- adds r0, r7
- str r5, [sp, 0x8]
- str r3, [r2]
- str r0, [r2, 0x4]
- str r6, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080C31CE
- mov r0, r8
- mov r1, r9
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080C32D4 @ =gDisplayedStringBattle
- ldr r1, _080C32D8 @ =gUnknown_083D17E2
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- mvns r0, r5
- adds r1, r0, 0x1
- movs r0, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080C3218
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- lsrs r0, r1, 1
- strb r0, [r2, 0x2]
- adds r2, 0x3
-_080C3218:
- adds r6, r5, 0x7
- movs r1, 0x8
- negs r1, r1
- adds r0, r1, 0
- ands r6, r0
- lsls r6, 24
- lsrs r5, r6, 24
- adds r0, r2, 0
- mov r1, r9
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- strb r5, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080C32DC @ =gSharedMem + 0x18068
- mov r10, r0
- ldr r1, _080C32D4 @ =gDisplayedStringBattle
- bl sub_80034D4
- mov r0, sp
- ldrh r4, [r0]
- lsls r4, 5
- ldr r1, _080C32C8 @ =0x06010000
- adds r7, r4, r1
- ldr r0, _080C32E0 @ =gUnknown_083D1624
- mov r9, r0
- ldr r1, _080C32E4 @ =REG_BG0CNT
- mov r8, r1
- adds r1, r7, 0
- mov r2, r8
- bl CpuSet
- mov r5, r9
- adds r5, 0x80
- ldr r0, _080C32E8 @ =0x06010100
- adds r1, r4, r0
- adds r0, r5, 0
- mov r2, r8
- bl CpuSet
- ldr r0, _080C32EC @ =0x06010200
- adds r1, r4, r0
- adds r0, r5, 0
- mov r2, r8
- bl CpuSet
- mov r0, r9
- adds r0, 0x40
- ldr r1, _080C32F0 @ =0x06010300
- adds r4, r1
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- lsrs r5, r6, 27
- movs r4, 0
- cmp r4, r5
- bgt _080C3382
- mov r6, sp
- mov r0, r10
- adds r0, 0x20
- str r0, [sp, 0xC]
- mov r1, r10
- str r1, [sp, 0x10]
- ldr r0, _080C32F4 @ =0x0600fd20
- str r0, [sp, 0x14]
- ldr r1, _080C32F8 @ =0x0600fe20
- str r1, [sp, 0x18]
- ldr r0, _080C32FC @ =0x0600ff20
- mov r10, r0
- ldr r1, _080C3300 @ =0x06010020
- mov r9, r1
-_080C32B2:
- cmp r4, 0x6
- bgt _080C3304
- ldrh r0, [r6]
- lsls r0, 5
- mov r1, r9
- b _080C3322
- .align 2, 0
-_080C32C0: .4byte gSprites
-_080C32C4: .4byte gWindowConfig_81E7278
-_080C32C8: .4byte 0x06010000
-_080C32CC: .4byte 0x040000d4
-_080C32D0: .4byte 0x85000100
-_080C32D4: .4byte gDisplayedStringBattle
-_080C32D8: .4byte gUnknown_083D17E2
-_080C32DC: .4byte gSharedMem + 0x18068
-_080C32E0: .4byte gUnknown_083D1624
-_080C32E4: .4byte REG_BG0CNT
-_080C32E8: .4byte 0x06010100
-_080C32EC: .4byte 0x06010200
-_080C32F0: .4byte 0x06010300
-_080C32F4: .4byte 0x0600fd20
-_080C32F8: .4byte 0x0600fe20
-_080C32FC: .4byte 0x0600ff20
-_080C3300: .4byte 0x06010020
-_080C3304:
- cmp r4, 0xE
- bgt _080C3310
- ldrh r0, [r6, 0x2]
- lsls r0, 5
- mov r1, r10
- b _080C3322
-_080C3310:
- cmp r4, 0x16
- bgt _080C331C
- ldrh r0, [r6, 0x4]
- lsls r0, 5
- ldr r1, [sp, 0x18]
- b _080C3322
-_080C331C:
- ldrh r0, [r6, 0x6]
- lsls r0, 5
- ldr r1, [sp, 0x14]
-_080C3322:
- adds r7, r0, r1
- cmp r4, r5
- beq _080C3382
- ldr r0, _080C33D0 @ =gUnknown_083D16E4
- adds r1, r7, 0
- mov r2, r8
- bl CpuSet
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r7, r0
- ldr r0, _080C33D0 @ =gUnknown_083D16E4
- adds r0, 0x20
- mov r2, r8
- bl CpuSet
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- ldr r0, [sp, 0x10]
- mov r2, r8
- bl CpuSet
- movs r0, 0x80
- lsls r0, 2
- adds r1, r7, r0
- ldr r0, [sp, 0xC]
- mov r2, r8
- bl CpuSet
- ldr r1, [sp, 0xC]
- adds r1, 0x40
- str r1, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r0, 0x40
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- adds r1, 0x20
- str r1, [sp, 0x14]
- ldr r0, [sp, 0x18]
- adds r0, 0x20
- str r0, [sp, 0x18]
- movs r1, 0x20
- add r10, r1
- add r9, r1
- adds r4, 0x1
- cmp r4, r5
- ble _080C32B2
-_080C3382:
- ldr r4, _080C33D4 @ =gUnknown_083D1644
- ldr r5, _080C33D8 @ =REG_BG0CNT
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl CpuSet
- adds r6, r4, 0
- adds r6, 0x80
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- movs r0, 0x80
- lsls r0, 2
- adds r1, r7, r0
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- adds r4, 0x40
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r7, r0
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C33D0: .4byte gUnknown_083D16E4
-_080C33D4: .4byte gUnknown_083D1644
-_080C33D8: .4byte REG_BG0CNT
- thumb_func_end sub_80C3158
-
- thumb_func_start sub_80C33DC
-sub_80C33DC: @ 80C33DC
- push {r4-r6,lr}
- sub sp, 0x20
- mov r1, sp
- ldr r0, _080C3498 @ =gSpriteTemplate_83D174C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- add r5, sp, 0x18
- ldr r6, _080C349C @ =gUnknown_083D1764
- movs r4, 0x7
-_080C33F2:
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r6, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _080C33F2
- ldr r0, _080C34A0 @ =gUnknown_083D17A4
- bl LoadSpritePalette
- movs r4, 0
- mov r6, sp
-_080C340A:
- mov r0, sp
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- adds r1, r5, r4
- strb r0, [r1]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- adds r4, 0x1
- cmp r4, 0x7
- ble _080C340A
- ldr r2, _080C34A4 @ =gSprites
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x1]
- movs r3, 0
- strh r1, [r0, 0x2E]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x2]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x3]
- strh r1, [r0, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x5]
- strh r1, [r0, 0x2E]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x6]
- strh r1, [r0, 0x30]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x7]
- strh r1, [r0, 0x32]
- ldr r1, _080C34A8 @ =gSharedMem + 0x18000
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r1, 0x4]
- ldrb r0, [r5, 0x4]
- strb r0, [r1, 0x1]
- bl sub_80C3764
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3498: .4byte gSpriteTemplate_83D174C
-_080C349C: .4byte gUnknown_083D1764
-_080C34A0: .4byte gUnknown_083D17A4
-_080C34A4: .4byte gSprites
-_080C34A8: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C33DC
-
- thumb_func_start sub_80C34AC
-sub_80C34AC: @ 80C34AC
- push {lr}
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 25
- lsrs r1, 25
- movs r0, 0x70
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80C34AC
-
- thumb_func_start sub_80C34CC
-sub_80C34CC: @ 80C34CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _080C3514 @ =gSharedMem + 0x18000
- mov r8, r4
- ldrb r5, [r4]
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r5, _080C3518 @ =gSprites
- adds r4, r5
- movs r6, 0
- movs r5, 0x88
- lsls r5, 1
- strh r5, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r6, [r4, 0x24]
- strh r6, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x20
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- strh r3, [r4, 0x3A]
- strh r6, [r4, 0x3C]
- ldr r0, _080C351C @ =sub_80C3588
- str r0, [r4, 0x1C]
- movs r0, 0x1
- mov r1, r8
- strb r0, [r1, 0x4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3514: .4byte gSharedMem + 0x18000
-_080C3518: .4byte gSprites
-_080C351C: .4byte sub_80C3588
- thumb_func_end sub_80C34CC
-
- thumb_func_start sub_80C3520
-sub_80C3520: @ 80C3520
- push {r4,r5,lr}
- ldr r4, _080C3558 @ =gSharedMem + 0x18000
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _080C355C @ =gSprites
- adds r1, r2
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- movs r3, 0
- strh r2, [r1, 0x20]
- ldrh r2, [r1, 0x26]
- ldrh r5, [r1, 0x22]
- adds r2, r5
- strh r2, [r1, 0x22]
- strh r3, [r1, 0x26]
- strh r3, [r1, 0x24]
- strh r0, [r1, 0x3A]
- strh r3, [r1, 0x3C]
- ldr r0, _080C3560 @ =sub_80C3630
- str r0, [r1, 0x1C]
- movs r0, 0x3
- strb r0, [r4, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3558: .4byte gSharedMem + 0x18000
-_080C355C: .4byte gSprites
-_080C3560: .4byte sub_80C3630
- thumb_func_end sub_80C3520
-
- thumb_func_start sub_80C3564
-sub_80C3564: @ 80C3564
- movs r3, 0
- movs r2, 0
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r1, 0x90
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x26]
- strh r2, [r0, 0x24]
- ldr r1, _080C3580 @ =SpriteCallbackDummy
- str r1, [r0, 0x1C]
- ldr r0, _080C3584 @ =gSharedMem + 0x18000
- strb r3, [r0, 0x4]
- bx lr
- .align 2, 0
-_080C3580: .4byte SpriteCallbackDummy
-_080C3584: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C3564
-
- thumb_func_start sub_80C3588
-sub_80C3588: @ 80C3588
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- ldrh r0, [r3, 0x3C]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r3, 0x3C]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r3, 0x36]
- movs r4, 0x36
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _080C35B2
- strh r2, [r3, 0x20]
-_080C35B2:
- movs r4, 0
- ldr r6, _080C35F4 @ =gSprites
- movs r5, 0x40
- adds r2, r3, 0
- adds r2, 0x2E
-_080C35BC:
- movs r7, 0
- ldrsh r0, [r2, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r3, 0x24]
- ldrh r7, [r3, 0x20]
- adds r0, r7
- adds r0, r5
- strh r0, [r1, 0x20]
- adds r5, 0x40
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _080C35BC
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r1, r0
- bne _080C35EC
- ldr r0, _080C35F8 @ =sub_80C35FC
- str r0, [r3, 0x1C]
-_080C35EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C35F4: .4byte gSprites
-_080C35F8: .4byte sub_80C35FC
- thumb_func_end sub_80C3588
-
- thumb_func_start sub_80C35FC
-sub_80C35FC: @ 80C35FC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080C3628 @ =gSharedMem + 0x18000
- movs r1, 0x2
- strb r1, [r0, 0x4]
- ldrh r3, [r2, 0x38]
- ldr r1, _080C362C @ =0xffff0000
- lsrs r0, r1, 16
- cmp r3, r0
- beq _080C3624
- subs r0, r3, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- asrs r1, 16
- cmp r0, r1
- bne _080C3624
- ldrh r0, [r2, 0x3A]
- bl sub_80C3520
-_080C3624:
- pop {r0}
- bx r0
- .align 2, 0
-_080C3628: .4byte gSharedMem + 0x18000
-_080C362C: .4byte 0xffff0000
- thumb_func_end sub_80C35FC
-
- thumb_func_start sub_80C3630
-sub_80C3630: @ 80C3630
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- ldrh r0, [r3, 0x3C]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x3C]
- movs r4, 0
- ldr r6, _080C3694 @ =gSprites
- movs r5, 0x40
- adds r2, r3, 0
- adds r2, 0x2E
-_080C3654:
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r3, 0x24]
- ldrh r7, [r3, 0x20]
- adds r0, r7
- adds r0, r5
- strh r0, [r1, 0x20]
- adds r5, 0x40
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _080C3654
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- adds r0, r1
- movs r1, 0xE0
- negs r1, r1
- cmp r0, r1
- bge _080C368C
- adds r0, r3, 0
- bl sub_80C3564
-_080C368C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3694: .4byte gSprites
- thumb_func_end sub_80C3630
-
- thumb_func_start sub_80C3698
-sub_80C3698: @ 80C3698
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080C374C @ =gSharedMem + 0x18000
- ldrb r1, [r5, 0x1]
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r5, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r3, _080C3750 @ =gSprites
- adds r4, r1, r3
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x50
- strh r0, [r4, 0x22]
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r5]
- movs r5, 0
- adds r6, r3, 0
- mov r12, r2
- movs r3, 0x40
-_080C36DA:
- lsls r0, r5, 1
- adds r2, r4, 0
- adds r2, 0x2E
- adds r2, r0
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r4, 0x24]
- ldrh r7, [r4, 0x20]
- adds r0, r7
- adds r0, r3
- strh r0, [r1, 0x20]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x22]
- strh r1, [r0, 0x22]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- adds r3, 0x40
- adds r5, 0x1
- cmp r5, 0x2
- ble _080C36DA
- ldr r1, _080C3754 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r2, _080C3758 @ =gBattle_WIN0V
- ldrh r1, [r4, 0x22]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 8
- adds r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080C375C @ =REG_WININ
- ldr r2, _080C3760 @ =0x00003f3e
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C374C: .4byte gSharedMem + 0x18000
-_080C3750: .4byte gSprites
-_080C3754: .4byte gBattle_WIN0H
-_080C3758: .4byte gBattle_WIN0V
-_080C375C: .4byte REG_WININ
-_080C3760: .4byte 0x00003f3e
- thumb_func_end sub_80C3698
-
- thumb_func_start sub_80C3764
-sub_80C3764: @ 80C3764
- push {r4-r7,lr}
- ldr r0, _080C37C8 @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r3, _080C37CC @ =gSprites
- adds r2, r3
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r7, _080C37D0 @ =gBattle_WIN0H
- ldr r6, _080C37D4 @ =gBattle_WIN0V
- adds r5, r3, 0
- movs r4, 0x4
- adds r2, 0x2E
- movs r3, 0x2
-_080C3790:
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3790
- movs r1, 0
- strh r1, [r7]
- strh r1, [r6]
- ldr r0, _080C37D8 @ =REG_WIN0H
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _080C37DC @ =REG_WININ
- ldr r2, _080C37E0 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C37C8: .4byte gSharedMem + 0x18000
-_080C37CC: .4byte gSprites
-_080C37D0: .4byte gBattle_WIN0H
-_080C37D4: .4byte gBattle_WIN0V
-_080C37D8: .4byte REG_WIN0H
-_080C37DC: .4byte REG_WININ
-_080C37E0: .4byte 0x00003f3f
- thumb_func_end sub_80C3764
-
- thumb_func_start de_sub_80C39A8
-de_sub_80C39A8: @ 80C39A8
- push {r4,lr}
- sub sp, 0x10
- adds r1, r0, 0
- ldr r0, _de_080C39DC @ =gIsLinkContest
- ldrb r0, [r0]
- movs r4, 0x1
- ands r4, r0
- cmp r4, 0
- beq _de_080C39E8
- ldr r0, _de_080C39E0 @ =0x0600e000
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _de_080C39E4 @ =gUnknown_08E964B8
- movs r2, 0xB
- str r2, [sp]
- movs r4, 0x3
- str r4, [sp, 0x4]
- movs r2, 0x8
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl sub_809D104
- movs r0, 0x8
- b _de_080C3A74
- .align 2, 0
-_de_080C39DC: .4byte gIsLinkContest
-_de_080C39E0: .4byte 0x0600e000
-_de_080C39E4: .4byte gUnknown_08E964B8
-_de_080C39E8:
- ldr r0, _de_080C3A08 @ =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r0, 0
- bne _de_080C3A14
- ldr r0, _de_080C3A0C @ =0x0600e000
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _de_080C3A10 @ =gUnknown_08E964B8
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r2, 0xB
- str r2, [sp, 0x8]
- movs r2, 0x3
- str r2, [sp, 0xC]
- b _de_080C3A6C
- .align 2, 0
-_de_080C3A08: .4byte gSpecialVar_ContestRank
-_de_080C3A0C: .4byte 0x0600e000
-_de_080C3A10: .4byte gUnknown_08E964B8
-_de_080C3A14:
- cmp r0, 0x1
- bne _de_080C3A2C
- ldr r0, _de_080C3A24 @ =0x0600e000
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _de_080C3A28 @ =gUnknown_08E964B8
- movs r2, 0xB
- b _de_080C3A3A
- .align 2, 0
-_de_080C3A24: .4byte 0x0600e000
-_de_080C3A28: .4byte gUnknown_08E964B8
-_de_080C3A2C:
- cmp r0, 0x2
- bne _de_080C3A58
- ldr r0, _de_080C3A50 @ =0x0600e000
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _de_080C3A54 @ =gUnknown_08E964B8
- movs r2, 0x15
-_de_080C3A3A:
- str r2, [sp]
- str r4, [sp, 0x4]
- movs r2, 0xA
- str r2, [sp, 0x8]
- movs r2, 0x3
- str r2, [sp, 0xC]
- movs r2, 0
- bl sub_809D104
- movs r0, 0xA
- b _de_080C3A74
- .align 2, 0
-_de_080C3A50: .4byte 0x0600e000
-_de_080C3A54: .4byte gUnknown_08E964B8
-_de_080C3A58:
- ldr r0, _de_080C3A7C @ =0x0600e000
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _de_080C3A80 @ =gUnknown_08E964B8
- str r4, [sp]
- movs r4, 0x3
- str r4, [sp, 0x4]
- movs r2, 0xB
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
-_de_080C3A6C:
- movs r2, 0
- bl sub_809D104
- movs r0, 0xB
-_de_080C3A74:
- add sp, 0x10
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_de_080C3A7C: .4byte 0x0600e000
-_de_080C3A80: .4byte gUnknown_08E964B8
- thumb_func_end de_sub_80C39A8
-
- thumb_func_start de_sub_80C3A84
-de_sub_80C3A84: @ 80C3A84
- push {r4,lr}
- sub sp, 0x10
- adds r2, r0, 0
- ldr r0, _de_080C3AAC @ =gSpecialVar_ContestCategory
- ldrh r4, [r0]
- cmp r4, 0
- bne _de_080C3AB8
- str r4, [r1]
- ldr r0, _de_080C3AB0 @ =0x0600e000
- lsls r1, r2, 16
- lsrs r1, 16
- ldr r3, _de_080C3AB4 @ =gUnknown_08E964B8
- movs r2, 0x13
- str r2, [sp]
- movs r4, 0x3
- str r4, [sp, 0x4]
- movs r2, 0x7
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- b _de_080C3AD6
- .align 2, 0
-_de_080C3AAC: .4byte gSpecialVar_ContestCategory
-_de_080C3AB0: .4byte 0x0600e000
-_de_080C3AB4: .4byte gUnknown_08E964B8
-_de_080C3AB8:
- cmp r4, 0x1
- bne _de_080C3AE8
- str r4, [r1]
- ldr r0, _de_080C3AE0 @ =0x0600e000
- lsls r1, r2, 16
- lsrs r1, 16
- ldr r3, _de_080C3AE4 @ =gUnknown_08E964B8
- movs r2, 0
- str r2, [sp]
- movs r2, 0x6
- str r2, [sp, 0x4]
- movs r2, 0x7
- str r2, [sp, 0x8]
- movs r2, 0x3
- str r2, [sp, 0xC]
-_de_080C3AD6:
- movs r2, 0
- bl sub_809D104
- movs r0, 0x7
- b _de_080C3B68
- .align 2, 0
-_de_080C3AE0: .4byte 0x0600e000
-_de_080C3AE4: .4byte gUnknown_08E964B8
-_de_080C3AE8:
- cmp r4, 0x2
- bne _de_080C3B18
- str r4, [r1]
- ldr r0, _de_080C3B10 @ =0x0600e000
- lsls r1, r2, 16
- lsrs r1, 16
- ldr r3, _de_080C3B14 @ =gUnknown_08E964B8
- movs r2, 0x7
- str r2, [sp]
- movs r2, 0x6
- str r2, [sp, 0x4]
- movs r2, 0x4
- str r2, [sp, 0x8]
- movs r2, 0x3
- str r2, [sp, 0xC]
- movs r2, 0
- bl sub_809D104
- movs r0, 0x4
- b _de_080C3B68
- .align 2, 0
-_de_080C3B10: .4byte 0x0600e000
-_de_080C3B14: .4byte gUnknown_08E964B8
-_de_080C3B18:
- cmp r4, 0x3
- bne _de_080C3B44
- str r4, [r1]
- ldr r0, _de_080C3B3C @ =0x0600e000
- lsls r1, r2, 16
- lsrs r1, 16
- ldr r3, _de_080C3B40 @ =gUnknown_08E964B8
- movs r2, 0xB
- str r2, [sp]
- movs r2, 0x6
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl sub_809D104
- movs r0, 0x6
- b _de_080C3B68
- .align 2, 0
-_de_080C3B3C: .4byte 0x0600e000
-_de_080C3B40: .4byte gUnknown_08E964B8
-_de_080C3B44:
- movs r0, 0x4
- str r0, [r1]
- ldr r0, _de_080C3B70 @ =0x0600e000
- lsls r1, r2, 16
- lsrs r1, 16
- ldr r3, _de_080C3B74 @ =gUnknown_08E964B8
- movs r2, 0x11
- str r2, [sp]
- movs r2, 0x6
- str r2, [sp, 0x4]
- movs r2, 0x5
- str r2, [sp, 0x8]
- movs r2, 0x3
- str r2, [sp, 0xC]
- movs r2, 0
- bl sub_809D104
- movs r0, 0x5
-_de_080C3B68:
- add sp, 0x10
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_de_080C3B70: .4byte 0x0600e000
-_de_080C3B74: .4byte gUnknown_08E964B8
- thumb_func_end de_sub_80C3A84
-
- thumb_func_start sub_80C37E4
-sub_80C37E4: @ 80C37E4
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x6
- bl de_sub_80C39A8
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x6
- mov r1, sp
- bl de_sub_80C3A84
- ldr r5, _080C3824 @ =0x00000fff
- ldr r0, [sp]
- lsls r4, r0, 12
- ldr r2, _080C3828 @ =0x0600e000
- movs r3, 0x7F
-_080C3804:
- ldrh r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- strh r0, [r2]
- ldrh r1, [r2]
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r2]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3804
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3824: .4byte 0x00000fff
-_080C3828: .4byte 0x0600e000
- thumb_func_end sub_80C37E4
-
- thumb_func_start sub_80C3990
-sub_80C3990: @ 80C3990
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r1, _080C39DC @ =gUnknown_02038670
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x3F
- bl __udivsi3
- adds r1, r0, 0
- ldr r0, _080C39E0 @ =0x0000ffff
- ands r0, r1
- cmp r0, 0
- beq _080C39BC
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
-_080C39BC:
- lsrs r1, 16
- cmp r1, 0
- bne _080C39C8
- cmp r4, 0
- beq _080C39C8
- movs r1, 0x1
-_080C39C8:
- cmp r5, 0
- beq _080C39D2
- cmp r1, 0xA
- bls _080C39D2
- movs r1, 0xA
-_080C39D2:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C39DC: .4byte gUnknown_02038670
-_080C39E0: .4byte 0x0000ffff
- thumb_func_end sub_80C3990
-
- thumb_func_start sub_80C39E4
-sub_80C39E4: @ 80C39E4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080C3A44 @ =gUnknown_02038688
- lsls r0, r5, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bge _080C3A00
- negs r0, r0
-_080C3A00:
- lsls r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x50
- bl __udivsi3
- adds r2, r0, 0
- ldr r0, _080C3A48 @ =0x0000ffff
- ands r0, r2
- cmp r0, 0
- beq _080C3A1A
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
-_080C3A1A:
- lsrs r2, 16
- cmp r2, 0
- bne _080C3A26
- cmp r4, 0
- beq _080C3A26
- movs r2, 0x1
-_080C3A26:
- cmp r6, 0
- beq _080C3A30
- cmp r2, 0xA
- bls _080C3A30
- movs r2, 0xA
-_080C3A30:
- lsls r0, r5, 1
- adds r0, r7
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080C3A4C
- negs r0, r2
- lsls r0, 24
- b _080C3A4E
- .align 2, 0
-_080C3A44: .4byte gUnknown_02038688
-_080C3A48: .4byte 0x0000ffff
-_080C3A4C:
- lsls r0, r2, 24
-_080C3A4E:
- lsrs r0, 24
- lsls r0, 24
- asrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C39E4
-
- thumb_func_start sub_80C3A5C
-sub_80C3A5C: @ 80C3A5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _080C3A90 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0x1C]
- movs r1, 0x1C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C3A94
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- movs r1, 0x3
- subs r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- strh r0, [r3, 0x1E]
- adds r0, r2, 0x1
- strh r0, [r3, 0x1C]
- b _080C3B12
- .align 2, 0
-_080C3A90: .4byte gTasks
-_080C3A94:
- cmp r0, 0x1
- bne _080C3B12
- ldrh r0, [r3, 0x1E]
- subs r0, 0x1
- strh r0, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080C3B12
- movs r0, 0x8
- ldrsh r2, [r3, r0]
- lsls r2, 17
- ldr r1, _080C3B18 @ =0x50430000
- adds r2, r1
- lsrs r2, 16
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B1C @ =0x0600e142
- adds r0, r1
- strh r2, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B20 @ =0x0600e144
- adds r0, r1
- adds r1, r2, 0x1
- strh r1, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B24 @ =0x0600e182
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x10
- strh r1, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B28 @ =0x0600e184
- adds r0, r1
- adds r2, 0x11
- strh r2, [r0]
- ldr r1, _080C3B2C @ =gSharedMem + 0x18000
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0x18
- bl PlaySE
-_080C3B12:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3B18: .4byte 0x50430000
-_080C3B1C: .4byte 0x0600e142
-_080C3B20: .4byte 0x0600e144
-_080C3B24: .4byte 0x0600e182
-_080C3B28: .4byte 0x0600e184
-_080C3B2C: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C3A5C
-
- thumb_func_start sub_80C3B30
-sub_80C3B30: @ 80C3B30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r5, 0
- ldr r1, _080C3BC0 @ =gContestFinalStandings
- ldrb r0, [r1]
- ldr r2, _080C3BC4 @ =gTasks
- mov r10, r2
- cmp r0, 0
- beq _080C3B5C
-_080C3B4E:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _080C3B5C
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C3B4E
-_080C3B5C:
- movs r1, 0
- lsls r0, r5, 1
- mov r2, r12
- lsls r2, 2
- mov r9, r2
- adds r0, r5
- lsls r0, 5
- mov r8, r0
- ldr r7, _080C3BC8 @ =0x00000fff
- movs r0, 0x90
- lsls r0, 8
- adds r6, r0, 0
-_080C3B74:
- lsls r0, r1, 5
- adds r4, r1, 0x1
- add r0, r8
- movs r3, 0x1D
- lsls r0, 1
- ldr r1, _080C3BCC @ =0x0600e100
- adds r2, r0, r1
-_080C3B82:
- ldrh r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strh r0, [r2]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3B82
- adds r1, r4, 0
- cmp r1, 0x2
- ble _080C3B74
- mov r0, r9
- add r0, r12
- lsls r0, 3
- add r0, r10
- strh r5, [r0, 0x1C]
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r2, _080C3BD0 @ =sub_80C3BD8
- str r2, [r0]
- mov r1, r12
- ldr r0, _080C3BD4 @ =gSharedMem + 0x18000
- strb r1, [r0, 0x3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3BC0: .4byte gContestFinalStandings
-_080C3BC4: .4byte gTasks
-_080C3BC8: .4byte 0x00000fff
-_080C3BCC: .4byte 0x0600e100
-_080C3BD0: .4byte sub_80C3BD8
-_080C3BD4: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C3B30
-
- thumb_func_start sub_80C3BD8
-sub_80C3BD8: @ 80C3BD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3C24 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x1
- bne _080C3C3C
- movs r0, 0
- strh r0, [r4, 0x1E]
- ldrh r2, [r4, 0x20]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080C3C28 @ =0x00006f8d
- movs r0, 0x91
- movs r1, 0x1
- bl BlendPalette
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C3C2C
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080C3C3C
- strh r5, [r4, 0x22]
- b _080C3C3C
- .align 2, 0
-_080C3C24: .4byte gTasks
-_080C3C28: .4byte 0x00006f8d
-_080C3C2C:
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080C3C3C
- strh r0, [r4, 0x22]
-_080C3C3C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C3BD8
-
- thumb_func_start sub_80C3C44
-sub_80C3C44: @ 80C3C44
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080C3C6C
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080C3CA8
- ldrh r0, [r4, 0x30]
- movs r1, 0
- bl PlayCry1
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080C3CA8
-_080C3C6C:
- movs r0, 0xC0
- lsls r0, 3
- adds r2, r0, 0
- ldrh r1, [r4, 0x30]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x77
- bgt _080C3C92
- movs r0, 0x78
- strh r0, [r4, 0x20]
-_080C3C92:
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- bne _080C3CA8
- ldr r0, _080C3CB0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080C3CB4 @ =gSharedMem + 0x18000
- movs r0, 0x1
- strb r0, [r1, 0x6]
-_080C3CA8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3CB0: .4byte SpriteCallbackDummy
-_080C3CB4: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C3C44
-
- thumb_func_start sub_80C3CB8
-sub_80C3CB8: @ 80C3CB8
- push {lr}
- adds r3, r0, 0
- movs r0, 0xC0
- lsls r0, 3
- adds r2, r0, 0
- ldrh r0, [r3, 0x30]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080C3CF8
- ldr r0, _080C3CFC @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080C3D00 @ =gSharedMem + 0x18000
- movs r0, 0x2
- strb r0, [r1, 0x6]
-_080C3CF8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C3CFC: .4byte SpriteCallbackDummy
-_080C3D00: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C3CB8
-
- thumb_func_start sub_80C3D04
-sub_80C3D04: @ 80C3D04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080C3DD8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080C3DBE
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _080C3DDC @ =gSharedMem + 0x18000
- mov r8, r0
- ldrb r0, [r0, 0x7]
- cmp r0, 0x27
- bhi _080C3DBE
- ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r1, r0, 0
- subs r1, 0x14
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0x2C
- movs r3, 0x5
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- ldr r1, _080C3DE4 @ =gSprites
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r1
- lsls r0, 23
- lsrs r0, 23
- strh r0, [r5, 0x2E]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- adds r0, 0x10
- strh r0, [r5, 0x30]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xFF
- ands r0, r1
- adds r0, 0x30
- strh r0, [r5, 0x32]
- bl Random
- ldrh r6, [r5, 0x4]
- lsls r4, r6, 22
- lsrs r4, 22
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r4, r0
- ldr r1, _080C3DE8 @ =0x000003ff
- adds r0, r1, 0
- ands r4, r0
- ldr r0, _080C3DEC @ =0xfffffc00
- ands r0, r6
- orrs r0, r4
- strh r0, [r5, 0x4]
- mov r1, r8
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
-_080C3DBE:
- ldr r0, _080C3DDC @ =gSharedMem + 0x18000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _080C3DCC
- adds r0, r7, 0
- bl DestroyTask
-_080C3DCC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3DD8: .4byte gTasks
-_080C3DDC: .4byte gSharedMem + 0x18000
-_080C3DE0: .4byte gSpriteTemplate_83D17B4
-_080C3DE4: .4byte gSprites
-_080C3DE8: .4byte 0x000003ff
-_080C3DEC: .4byte 0xfffffc00
- thumb_func_end sub_80C3D04
-
- thumb_func_start sub_80C3DF0
-sub_80C3DF0: @ 80C3DF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x32]
- ldrh r0, [r4, 0x36]
- adds r1, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x36]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldr r5, _080C3E5C @ =gSharedMem + 0x18000
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- beq _080C3E3A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080C3E3A:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xF8
- bgt _080C3E4A
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x74
- ble _080C3E56
-_080C3E4A:
- adds r0, r4, 0
- bl DestroySprite
- ldrb r0, [r5, 0x7]
- subs r0, 0x1
- strb r0, [r5, 0x7]
-_080C3E56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3E5C: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C3DF0
-
- thumb_func_start sub_80C3E60
-sub_80C3E60: @ 80C3E60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080C3E98 @ =sub_80C3EA4
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3E9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- ldr r0, _080C3EA0 @ =gContestMons
- lsls r4, 6
- adds r4, r0
- ldrh r0, [r4]
- strh r0, [r1, 0xC]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3E98: .4byte sub_80C3EA4
-_080C3E9C: .4byte gTasks
-_080C3EA0: .4byte gContestMons
- thumb_func_end sub_80C3E60
-
- thumb_func_start sub_80C3EA4
-sub_80C3EA4: @ 80C3EA4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3EF8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrb r5, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080C3EEE
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xC]
- ldrb r2, [r4, 0x1E]
- ldr r1, _080C3EFC @ =gContestMons
- lsls r3, r5, 6
- adds r1, 0x38
- adds r3, r1
- ldr r1, [r3]
- str r1, [sp]
- adds r1, r5, 0
- movs r3, 0
- bl sub_80C3024
- ldrh r0, [r4, 0x1E]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x1E]
-_080C3EEE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3EF8: .4byte gTasks
-_080C3EFC: .4byte gContestMons
- thumb_func_end sub_80C3EA4
-
- thumb_func_start sub_80C3F00
-sub_80C3F00: @ 80C3F00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080C4098 @ =gUnknown_02038678
- ldrh r2, [r0]
- adds r4, r0, 0
- adds r3, r4, 0x2
- movs r0, 0x2
- mov r8, r0
-_080C3F16:
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0
- ldrsh r1, [r3, r5]
- cmp r0, r1
- bge _080C3F24
- ldrh r2, [r3]
-_080C3F24:
- adds r3, 0x2
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- mov r1, r8
- cmp r1, 0
- bge _080C3F16
- lsls r0, r2, 16
- mov r9, r0
- cmp r0, 0
- bge _080C3F62
- ldrh r2, [r4]
- adds r3, r4, 0x2
- movs r4, 0x2
- mov r8, r4
-_080C3F42:
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0
- ldrsh r1, [r3, r5]
- cmp r0, r1
- ble _080C3F50
- ldrh r2, [r3]
-_080C3F50:
- adds r3, 0x2
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- lsls r1, r2, 16
- mov r9, r1
- mov r4, r8
- cmp r4, 0
- bge _080C3F42
-_080C3F62:
- movs r5, 0
- mov r8, r5
- mov r10, r5
-_080C3F68:
- ldr r0, _080C409C @ =gUnknown_02038670
- mov r1, r8
- lsls r7, r1, 1
- adds r0, r7, r0
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- mov r4, r9
- asrs r6, r4, 16
- adds r1, r6, 0
- cmp r6, 0
- bge _080C3F8A
- negs r1, r6
-_080C3F8A:
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C3F9C
- adds r4, 0xA
-_080C3F9C:
- ldr r0, _080C40A0 @ =gSharedMem + 0x18018
- mov r1, r10
- adds r5, r1, r0
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- ldr r0, _080C40A4 @ =gUnknown_02038688
- adds r7, r0
- movs r2, 0
- ldrsh r1, [r7, r2]
- cmp r1, 0
- bge _080C3FBA
- negs r1, r1
-_080C3FBA:
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r6, 0
- cmp r1, 0
- bge _080C3FCC
- negs r1, r1
-_080C3FCC:
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C3FDE
- adds r4, 0xA
-_080C3FDE:
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- str r0, [r5, 0x4]
- movs r4, 0
- ldrsh r0, [r7, r4]
- cmp r0, 0
- bge _080C3FF4
- movs r0, 0x1
- strb r0, [r5, 0x10]
-_080C3FF4:
- ldr r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r0, r1
- lsls r0, 11
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- movs r4, 0xFF
- ands r0, r4
- cmp r0, 0x7F
- bls _080C4016
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
-_080C4016:
- lsrs r0, r1, 8
- str r0, [r5, 0x8]
- ldr r1, [r5, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r0, r1
- lsls r0, 11
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- ands r0, r4
- cmp r0, 0x7F
- bls _080C403A
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
-_080C403A:
- lsrs r0, r1, 8
- str r0, [r5, 0xC]
- mov r0, r8
- lsls r4, r0, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80C3990
- strb r0, [r5, 0x11]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80C39E4
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080C4060
- negs r0, r0
-_080C4060:
- strb r0, [r5, 0x12]
- ldr r0, _080C40A8 @ =gContestFinalStandings
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C40B4
- ldr r4, [r5, 0x8]
- ldrh r2, [r5, 0x8]
- ldr r3, [r5, 0xC]
- ldrh r1, [r5, 0xC]
- ldrb r0, [r5, 0x10]
- cmp r0, 0
- beq _080C4080
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080C4080:
- lsls r0, r2, 16
- asrs r2, r0, 16
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r0, r2, r1
- cmp r0, 0x58
- bne _080C40B4
- cmp r1, 0
- ble _080C40AC
- subs r0, r3, 0x1
- str r0, [r5, 0xC]
- b _080C40B4
- .align 2, 0
-_080C4098: .4byte gUnknown_02038678
-_080C409C: .4byte gUnknown_02038670
-_080C40A0: .4byte gSharedMem + 0x18018
-_080C40A4: .4byte gUnknown_02038688
-_080C40A8: .4byte gContestFinalStandings
-_080C40AC:
- cmp r2, 0
- ble _080C40B4
- subs r0, r4, 0x1
- str r0, [r5, 0x8]
-_080C40B4:
- movs r1, 0x14
- add r10, r1
- movs r2, 0x1
- add r8, r2
- mov r4, r8
- cmp r4, 0x3
- bgt _080C40C4
- b _080C3F68
-_080C40C4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C3F00
-
- thumb_func_start sub_80C40D4
-sub_80C40D4: @ 80C40D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- mov r10, r1
- movs r2, 0
- str r2, [sp]
- cmp r0, 0
- bne _080C4198
- mov r8, r2
- ldr r0, _080C417C @ =gSharedMem + 0x18018
- subs r1, 0x18
- adds r1, r0
- mov r9, r1
- adds r4, r0, 0
- adds r4, 0x8
- movs r6, 0xA0
-_080C4102:
- ldrb r0, [r4, 0x9]
- cmp r7, r0
- bcs _080C416A
- adds r0, 0x13
- adds r0, r6, r0
- subs r0, r7
- lsls r0, 1
- ldr r2, _080C4180 @ =0x0600bffe
- adds r0, r2
- ldr r2, _080C4184 @ =0x000060b3
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _080C4188 @ =sub_80C42C0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r4]
- lsls r0, 16
- ldrb r1, [r4, 0x9]
- bl __udivsi3
- adds r1, r7, 0x1
- adds r3, r0, 0
- muls r3, r1
- ldr r0, _080C418C @ =0x0000ffff
- ands r0, r3
- ldr r1, _080C4190 @ =0x00007fff
- cmp r0, r1
- bls _080C4146
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_080C4146:
- ldr r1, _080C4194 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
- lsrs r1, r3, 16
- strh r1, [r0, 0xA]
- mov r2, r9
- ldrb r0, [r2, 0x14]
- adds r0, 0x1
- strb r0, [r2, 0x14]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_080C416A:
- adds r4, 0x14
- adds r6, 0x60
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- ble _080C4102
- b _080C4292
- .align 2, 0
-_080C417C: .4byte gSharedMem + 0x18018
-_080C4180: .4byte 0x0600bffe
-_080C4184: .4byte 0x000060b3
-_080C4188: .4byte sub_80C42C0
-_080C418C: .4byte 0x0000ffff
-_080C4190: .4byte 0x00007fff
-_080C4194: .4byte gTasks
-_080C4198:
- movs r2, 0
- mov r8, r2
- ldr r0, _080C4220 @ =gSharedMem + 0x18018
- mov r12, r0
- mov r9, r2
- movs r1, 0xC0
- str r1, [sp, 0x4]
-_080C41A6:
- mov r6, r9
- add r6, r12
- ldrb r1, [r6, 0x12]
- ldrb r0, [r6, 0x10]
- ldr r2, _080C4224 @ =0x000060a3
- cmp r0, 0
- beq _080C41B6
- adds r2, 0x2
-_080C41B6:
- lsls r0, r1, 24
- asrs r0, 24
- cmp r7, r0
- bge _080C427E
- adds r0, 0x13
- ldr r1, [sp, 0x4]
- adds r0, r1, r0
- subs r0, r7
- lsls r0, 1
- ldr r1, _080C4228 @ =0x0600bffe
- adds r0, r1
- strh r2, [r0]
- ldr r0, _080C422C @ =sub_80C42C0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r6, 0xC]
- lsls r0, 16
- ldrb r1, [r6, 0x12]
- bl __udivsi3
- adds r1, r7, 0x1
- adds r3, r0, 0
- muls r3, r1
- ldr r0, _080C4230 @ =0x0000ffff
- ands r0, r3
- ldr r1, _080C4234 @ =0x00007fff
- cmp r0, r1
- bls _080C41FA
- movs r2, 0x80
- lsls r2, 9
- adds r3, r2
-_080C41FA:
- ldr r1, _080C4238 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r4, r0, r1
- mov r0, r8
- strh r0, [r4, 0x8]
- ldrb r0, [r6, 0x10]
- adds r6, r1, 0
- cmp r0, 0
- beq _080C423C
- movs r0, 0x1
- strh r0, [r4, 0xC]
- ldr r0, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- b _080C4246
- .align 2, 0
-_080C4220: .4byte gSharedMem + 0x18018
-_080C4224: .4byte 0x000060a3
-_080C4228: .4byte 0x0600bffe
-_080C422C: .4byte sub_80C42C0
-_080C4230: .4byte 0x0000ffff
-_080C4234: .4byte 0x00007fff
-_080C4238: .4byte gTasks
-_080C423C:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_080C4246:
- ldr r0, _080C4264 @ =gSharedMem + 0x18018
- mov r1, r9
- adds r4, r1, r0
- ldrb r1, [r4, 0x10]
- mov r12, r0
- cmp r1, 0
- beq _080C4268
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r6
- lsrs r2, r3, 16
- ldr r1, [r4, 0x8]
- subs r1, r2
- b _080C4274
- .align 2, 0
-_080C4264: .4byte gSharedMem + 0x18018
-_080C4268:
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r6
- lsrs r2, r3, 16
- ldr r1, [r4, 0x8]
- adds r1, r2
-_080C4274:
- strh r1, [r0, 0xA]
- ldr r1, _080C42BC @ =gSharedMem + 0x18000
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
-_080C427E:
- movs r2, 0x14
- add r9, r2
- ldr r0, [sp, 0x4]
- adds r0, 0x60
- str r0, [sp, 0x4]
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x3
- ble _080C41A6
-_080C4292:
- ldr r0, [sp]
- cmp r0, 0
- beq _080C429E
- movs r0, 0x16
- bl PlaySE
-_080C429E:
- mov r1, r10
- cmp r1, 0
- beq _080C42AA
- movs r0, 0x15
- bl PlaySE
-_080C42AA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C42BC: .4byte gSharedMem + 0x18000
- thumb_func_end sub_80C40D4
-
- thumb_func_start sub_80C42C0
-sub_80C42C0: @ 80C42C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- mov r9, r6
- ldr r1, _080C4308 @ =gTasks
- lsls r0, 2
- add r0, r12
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x8]
- ldrh r7, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- mov r8, r1
- movs r2, 0xC
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080C4310
- ldr r1, _080C430C @ =gSharedMem + 0x18000
- lsls r2, r5, 1
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r2, r0
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r10, r1
- adds r4, r2, 0
- cmp r0, 0
- bgt _080C4328
- b _080C4326
- .align 2, 0
-_080C4308: .4byte gTasks
-_080C430C: .4byte gSharedMem + 0x18000
-_080C4310:
- ldr r1, _080C4350 @ =gSharedMem + 0x18000
- lsls r2, r5, 1
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r2, r0
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r10, r1
- adds r4, r2, 0
- cmp r0, 0x57
- ble _080C4328
-_080C4326:
- movs r6, 0x1
-_080C4328:
- mov r0, r10
- adds r0, 0xC
- adds r3, r4, r0
- ldrh r2, [r3]
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _080C4340
- movs r1, 0x1
- mov r9, r1
-_080C4340:
- mov r0, r9
- cmp r0, 0
- bne _080C4362
- cmp r6, 0
- beq _080C4354
- strh r7, [r3]
- b _080C4362
- .align 2, 0
-_080C4350: .4byte gSharedMem + 0x18000
-_080C4354:
- mov r1, r8
- cmp r1, 0
- beq _080C435E
- subs r0, r2, 0x1
- b _080C4360
-_080C435E:
- adds r0, r2, 0x1
-_080C4360:
- strh r0, [r3]
-_080C4362:
- cmp r6, 0
- bne _080C43C8
- mov r2, r9
- cmp r2, 0
- bne _080C43CE
- movs r2, 0
- ldr r0, _080C4388 @ =gSharedMem + 0x1800C
- adds r6, r4, r0
- adds r0, r4, r5
- lsls r5, r0, 5
-_080C4376:
- movs r0, 0
- ldrsh r3, [r6, r0]
- adds r0, r2, 0x1
- lsls r1, r0, 3
- adds r4, r0, 0
- cmp r3, r1
- blt _080C438C
- movs r0, 0x8
- b _080C43A8
- .align 2, 0
-_080C4388: .4byte gSharedMem + 0x1800C
-_080C438C:
- lsls r0, r2, 3
- cmp r3, r0
- blt _080C43A6
- adds r0, r3, 0
- cmp r3, 0
- bge _080C439A
- adds r0, r3, 0x7
-_080C439A:
- asrs r0, 3
- lsls r0, 3
- subs r0, r3, r0
- lsls r0, 24
- lsrs r0, 24
- b _080C43A8
-_080C43A6:
- movs r0, 0
-_080C43A8:
- cmp r0, 0x3
- bhi _080C43B4
- ldr r3, _080C43B0 @ =0x0000504c
- b _080C43B6
- .align 2, 0
-_080C43B0: .4byte 0x0000504c
-_080C43B4:
- ldr r3, _080C43EC @ =0x00005057
-_080C43B6:
- adds r1, r0, r3
- adds r0, r5, r2
- lsls r0, 1
- ldr r2, _080C43F0 @ =0x0600e18e
- adds r0, r2
- strh r1, [r0]
- adds r2, r4, 0
- cmp r2, 0xA
- ble _080C4376
-_080C43C8:
- mov r3, r9
- cmp r3, 0
- beq _080C43DC
-_080C43CE:
- mov r1, r10
- ldrb r0, [r1, 0x14]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- mov r0, r12
- bl DestroyTask
-_080C43DC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C43EC: .4byte 0x00005057
-_080C43F0: .4byte 0x0600e18e
- thumb_func_end sub_80C42C0
-
- thumb_func_start sub_80C43F4
-sub_80C43F4: @ 80C43F4
- push {r4,r5,lr}
- ldr r0, _080C442C @ =gUnknown_02038694
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080C4430 @ =gPlayerParty
- adds r0, r1
- bl sub_80AE47C
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r5, 0
- beq _080C4422
- ldr r4, _080C4434 @ =gSpecialVar_ContestCategory
- ldrb r0, [r4]
- ldr r1, _080C4438 @ =gSpecialVar_ContestRank
- ldrb r1, [r1]
- bl Contest_InitAllPokemon
- ldrb r0, [r4]
- bl sub_80AE82C
-_080C4422:
- ldr r0, _080C443C @ =gSpecialVar_Result
- strh r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C442C: .4byte gUnknown_02038694
-_080C4430: .4byte gPlayerParty
-_080C4434: .4byte gSpecialVar_ContestCategory
-_080C4438: .4byte gSpecialVar_ContestRank
-_080C443C: .4byte gSpecialVar_Result
- thumb_func_end sub_80C43F4
-
- thumb_func_start sub_80C4440
-sub_80C4440: @ 80C4440
- push {r4,lr}
- movs r4, 0
- ldr r0, _080C4464 @ =gUnknown_02038694
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080C4468 @ =gPlayerParty
- adds r2, r1, r0
- ldr r0, _080C446C @ =gSpecialVar_ContestCategory
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080C44B2
- lsls r0, 2
- ldr r1, _080C4470 @ =_080C4474
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C4464: .4byte gUnknown_02038694
-_080C4468: .4byte gPlayerParty
-_080C446C: .4byte gSpecialVar_ContestCategory
-_080C4470: .4byte _080C4474
- .align 2, 0
-_080C4474:
- .4byte _080C4488
- .4byte _080C448E
- .4byte _080C4494
- .4byte _080C449A
- .4byte _080C44A0
-_080C4488:
- adds r0, r2, 0
- movs r1, 0x32
- b _080C44A4
-_080C448E:
- adds r0, r2, 0
- movs r1, 0x33
- b _080C44A4
-_080C4494:
- adds r0, r2, 0
- movs r1, 0x34
- b _080C44A4
-_080C449A:
- adds r0, r2, 0
- movs r1, 0x35
- b _080C44A4
-_080C44A0:
- adds r0, r2, 0
- movs r1, 0x36
-_080C44A4:
- bl GetMonData
- ldr r1, _080C44BC @ =gSpecialVar_ContestRank
- ldrh r1, [r1]
- cmp r0, r1
- bls _080C44B2
- movs r4, 0x1
-_080C44B2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C44BC: .4byte gSpecialVar_ContestRank
- thumb_func_end sub_80C4440
-
- thumb_func_start sub_80C44C0
-sub_80C44C0: @ 80C44C0
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080C44E8 @ =gContestFinalStandings
- ldr r0, _080C44EC @ =gContestPlayerMonIndex
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C44D4
- b _080C465E
-_080C44D4:
- ldr r0, _080C44F0 @ =gSpecialVar_ContestCategory
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _080C44DE
- b _080C465E
-_080C44DE:
- lsls r0, 2
- ldr r1, _080C44F4 @ =_080C44F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C44E8: .4byte gContestFinalStandings
-_080C44EC: .4byte gContestPlayerMonIndex
-_080C44F0: .4byte gSpecialVar_ContestCategory
-_080C44F4: .4byte _080C44F8
- .align 2, 0
-_080C44F8:
- .4byte _080C450C
- .4byte _080C4554
- .4byte _080C4598
- .4byte _080C45DC
- .4byte _080C4624
-_080C450C:
- ldr r6, _080C4548 @ =gUnknown_02038694
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080C454C @ =gPlayerParty
- adds r0, r4
- movs r1, 0x32
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- ldr r0, _080C4550 @ =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r1, r0
- bls _080C4530
- b _080C465E
-_080C4530:
- adds r0, r1, 0
- cmp r0, 0x3
- bls _080C4538
- b _080C465E
-_080C4538:
- adds r1, r0, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x32
- b _080C4610
- .align 2, 0
-_080C4548: .4byte gUnknown_02038694
-_080C454C: .4byte gPlayerParty
-_080C4550: .4byte gSpecialVar_ContestRank
-_080C4554:
- mov r4, sp
- ldr r7, _080C458C @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C4590 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x33
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4594 @ =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x33
- b _080C4610
- .align 2, 0
-_080C458C: .4byte gUnknown_02038694
-_080C4590: .4byte gPlayerParty
-_080C4594: .4byte gSpecialVar_ContestRank
-_080C4598:
- mov r4, sp
- ldr r7, _080C45D0 @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C45D4 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x34
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C45D8 @ =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x34
- b _080C4610
- .align 2, 0
-_080C45D0: .4byte gUnknown_02038694
-_080C45D4: .4byte gPlayerParty
-_080C45D8: .4byte gSpecialVar_ContestRank
-_080C45DC:
- mov r4, sp
- ldr r7, _080C4618 @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C461C @ =gPlayerParty
- adds r0, r5
- movs r1, 0x35
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4620 @ =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x35
-_080C4610:
- mov r2, sp
- bl SetMonData
- b _080C465E
- .align 2, 0
-_080C4618: .4byte gUnknown_02038694
-_080C461C: .4byte gPlayerParty
-_080C4620: .4byte gSpecialVar_ContestRank
-_080C4624:
- mov r4, sp
- ldr r7, _080C4668 @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C466C @ =gPlayerParty
- adds r0, r5
- movs r1, 0x36
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4670 @ =gSpecialVar_ContestRank
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x36
- mov r2, sp
- bl SetMonData
-_080C465E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4668: .4byte gUnknown_02038694
-_080C466C: .4byte gPlayerParty
-_080C4670: .4byte gSpecialVar_ContestRank
- thumb_func_end sub_80C44C0
-
- thumb_func_start sub_80C4674
-sub_80C4674: @ 80C4674
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C4690
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C4690
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080C4690:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C4674
-
- thumb_func_start sub_80C4698
-sub_80C4698: @ 80C4698
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r4, 6
- ldr r0, _080C46E0 @ =gContestMons + 0x2
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- ldr r0, _080C46E4 @ =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C46DA
- ldr r0, _080C46E8 @ =gLinkPlayers
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x1
- bne _080C46DA
- adds r0, r5, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl ConvertInternationalString
-_080C46DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C46E0: .4byte gContestMons + 0x2
-_080C46E4: .4byte gIsLinkContest
-_080C46E8: .4byte gLinkPlayers
- thumb_func_end sub_80C4698
-
- thumb_func_start sub_80C46EC
-sub_80C46EC: @ 80C46EC
- push {lr}
- ldr r0, _080C4710 @ =gIsLinkContest
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4720
- ldr r0, _080C4714 @ =gStringVar1
- ldr r1, _080C4718 @ =gSpecialVar_0x8006
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r2, _080C471C @ =gLinkPlayers + 0x8
- adds r1, r2
- bl sub_80C4674
- b _080C4730
- .align 2, 0
-_080C4710: .4byte gIsLinkContest
-_080C4714: .4byte gStringVar1
-_080C4718: .4byte gSpecialVar_0x8006
-_080C471C: .4byte gLinkPlayers + 0x8
-_080C4720:
- ldr r0, _080C4734 @ =gStringVar1
- ldr r1, _080C4738 @ =gSpecialVar_0x8006
- ldrh r1, [r1]
- lsls r1, 6
- ldr r2, _080C473C @ =gUnknown_0203857D
- adds r1, r2
- bl sub_80C4674
-_080C4730:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4734: .4byte gStringVar1
-_080C4738: .4byte gSpecialVar_0x8006
-_080C473C: .4byte gUnknown_0203857D
- thumb_func_end sub_80C46EC
-
- thumb_func_start sub_80C4740
-sub_80C4740: @ 80C4740
- push {lr}
- ldr r0, _080C4750 @ =gStringVar3
- ldr r1, _080C4754 @ =gSpecialVar_0x8006
- ldrb r1, [r1]
- bl sub_80C4698
- pop {r0}
- bx r0
- .align 2, 0
-_080C4750: .4byte gStringVar3
-_080C4754: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80C4740
-
- thumb_func_start sub_80C4758
-sub_80C4758: @ 80C4758
- push {r4-r6,lr}
- movs r1, 0
- movs r2, 0
- ldr r5, _080C4794 @ =gSpecialVar_0x8004
- ldr r4, _080C4798 @ =gUnknown_02038670
- ldr r0, _080C479C @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r4
- movs r6, 0
- ldrsh r3, [r0, r6]
-_080C476E:
- lsls r0, r1, 1
- adds r0, r4
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r3, r0
- bge _080C4780
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080C4780:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C476E
- strh r2, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4794: .4byte gSpecialVar_0x8004
-_080C4798: .4byte gUnknown_02038670
-_080C479C: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80C4758
-
- thumb_func_start sub_80C47A0
-sub_80C47A0: @ 80C47A0
- ldr r2, _080C47B4 @ =gSpecialVar_0x8004
- ldr r1, _080C47B8 @ =gUnknown_02038670
- ldr r0, _080C47BC @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080C47B4: .4byte gSpecialVar_0x8004
-_080C47B8: .4byte gUnknown_02038670
-_080C47BC: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80C47A0
-
- thumb_func_start sub_80C47C0
-sub_80C47C0: @ 80C47C0
- push {lr}
- movs r1, 0
- ldr r2, _080C47E8 @ =gContestFinalStandings
- ldrb r0, [r2]
- ldr r3, _080C47EC @ =gSpecialVar_0x8005
- cmp r0, 0
- beq _080C47E0
-_080C47CE:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080C47E0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C47CE
-_080C47E0:
- strh r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_080C47E8: .4byte gContestFinalStandings
-_080C47EC: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80C47C0
-
- thumb_func_start sub_80C47F0
-sub_80C47F0: @ 80C47F0
- push {r4,lr}
- movs r2, 0
- ldr r3, _080C4830 @ =gContestFinalStandings
- ldrb r0, [r3]
- ldr r1, _080C4834 @ =gIsLinkContest
- ldr r4, _080C4838 @ =gStringVar3
- cmp r0, 0
- beq _080C4812
-_080C4800:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bhi _080C4812
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4800
-_080C4812:
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4840
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _080C483C @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r4, 0
- bl sub_80C4674
- b _080C484C
- .align 2, 0
-_080C4830: .4byte gContestFinalStandings
-_080C4834: .4byte gIsLinkContest
-_080C4838: .4byte gStringVar3
-_080C483C: .4byte gLinkPlayers + 0x8
-_080C4840:
- lsls r1, r2, 6
- ldr r0, _080C4854 @ =gUnknown_0203857D
- adds r1, r0
- adds r0, r4, 0
- bl sub_80C4674
-_080C484C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4854: .4byte gUnknown_0203857D
- thumb_func_end sub_80C47F0
-
- thumb_func_start sub_80C4858
-sub_80C4858: @ 80C4858
- push {lr}
- movs r1, 0
- ldr r2, _080C4884 @ =gContestFinalStandings
- ldrb r0, [r2]
- ldr r3, _080C4888 @ =gStringVar1
- cmp r0, 0
- beq _080C4878
-_080C4866:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080C4878
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4866
-_080C4878:
- adds r0, r3, 0
- bl sub_80C4698
- pop {r0}
- bx r0
- .align 2, 0
-_080C4884: .4byte gContestFinalStandings
-_080C4888: .4byte gStringVar1
- thumb_func_end sub_80C4858
-
- thumb_func_start sub_80C488C
-sub_80C488C: @ 80C488C
- push {lr}
- ldr r0, _080C4898 @ =CB2_StartContest
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C4898: .4byte CB2_StartContest
- thumb_func_end sub_80C488C
-
- thumb_func_start sub_80C489C
-sub_80C489C: @ 80C489C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C48C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C48BA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080C48C4 @ =sub_80C488C
- bl SetMainCallback2
-_080C48BA:
- pop {r0}
- bx r0
- .align 2, 0
-_080C48C0: .4byte gPaletteFade
-_080C48C4: .4byte sub_80C488C
- thumb_func_end sub_80C489C
-
- thumb_func_start sub_80C48C8
-sub_80C48C8: @ 80C48C8
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080C48F0 @ =sub_80C489C
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C48F0: .4byte sub_80C489C
- thumb_func_end sub_80C48C8
-
- thumb_func_start sub_80C48F4
-sub_80C48F4: @ 80C48F4
- ldr r2, _080C4908 @ =gSpecialVar_0x8004
- ldr r1, _080C490C @ =gContestMons
- ldr r0, _080C4910 @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 6
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080C4908: .4byte gSpecialVar_0x8004
-_080C490C: .4byte gContestMons
-_080C4910: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80C48F4
-
- thumb_func_start sub_80C4914
-sub_80C4914: @ 80C4914
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C4938 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C4932
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080C493C @ =sub_80C2358
- bl SetMainCallback2
-_080C4932:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4938: .4byte gPaletteFade
-_080C493C: .4byte sub_80C2358
- thumb_func_end sub_80C4914
-
- thumb_func_start sub_80C4940
-sub_80C4940: @ 80C4940
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080C4968 @ =sub_80C4914
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C4968: .4byte sub_80C4914
- thumb_func_end sub_80C4940
-
- thumb_func_start sub_80C496C
-sub_80C496C: @ 80C496C
- ldr r0, _080C4978 @ =gSpecialVar_0x8004
- ldr r1, _080C497C @ =gContestPlayerMonIndex
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080C4978: .4byte gSpecialVar_0x8004
-_080C497C: .4byte gContestPlayerMonIndex
- thumb_func_end sub_80C496C
-
- thumb_func_start sub_80C4980
-sub_80C4980: @ 80C4980
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl ScriptContext2_Enable
- ldr r6, _080C49B8 @ =sub_80C8604
- adds r0, r6, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080C49BC @ =sub_80C49C4
- adds r0, r4, 0
- adds r1, r6, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _080C49C0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1A]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C49B8: .4byte sub_80C8604
-_080C49BC: .4byte sub_80C49C4
-_080C49C0: .4byte gTasks
- thumb_func_end sub_80C4980
-
- thumb_func_start sub_80C49C4
-sub_80C49C4: @ 80C49C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C49E4 @ =gUnknown_02038694
- ldrb r0, [r0]
- bl Contest_CreatePlayerMon
- ldr r1, _080C49E8 @ =sub_80C8734
- ldr r2, _080C49EC @ =sub_80C49F0
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C49E4: .4byte gUnknown_02038694
-_080C49E8: .4byte sub_80C8734
-_080C49EC: .4byte sub_80C49F0
- thumb_func_end sub_80C49C4
-
- thumb_func_start sub_80C49F0
-sub_80C49F0: @ 80C49F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A04 @ =sub_80C88AC
- ldr r2, _080C4A08 @ =sub_80C4A0C
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A04: .4byte sub_80C88AC
-_080C4A08: .4byte sub_80C4A0C
- thumb_func_end sub_80C49F0
-
- thumb_func_start sub_80C4A0C
-sub_80C4A0C: @ 80C4A0C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A20 @ =sub_80C8E1C
- ldr r2, _080C4A24 @ =sub_80C4A28
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A20: .4byte sub_80C8E1C
-_080C4A24: .4byte sub_80C4A28
- thumb_func_end sub_80C4A0C
-
- thumb_func_start sub_80C4A28
-sub_80C4A28: @ 80C4A28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A3C @ =sub_80C8938
- ldr r2, _080C4A40 @ =sub_80C4A44
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A3C: .4byte sub_80C8938
-_080C4A40: .4byte sub_80C4A44
- thumb_func_end sub_80C4A28
-
- thumb_func_start sub_80C4A44
-sub_80C4A44: @ 80C4A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r0, _080C4AA0 @ =gSpecialVar_0x8004
- mov r8, r0
- add r1, sp, 0x4
- mov r12, r1
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r4, r0, 3
- ldr r6, _080C4AA4 @ =gTasks + 0x8
- adds r7, r1, 0
-_080C4A64:
- mov r0, sp
- adds r2, r0, r3
- adds r1, r3, 0x1
- lsls r0, r1, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r3, 0x3
- bls _080C4A64
- movs r3, 0
- mov r2, sp
-_080C4A80:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bhi _080C4A96
- mov r0, sp
- adds r1, r0, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080C4A80
-_080C4A96:
- cmp r3, 0x4
- bne _080C4AA8
- movs r0, 0
- b _080C4AAA
- .align 2, 0
-_080C4AA0: .4byte gSpecialVar_0x8004
-_080C4AA4: .4byte gTasks + 0x8
-_080C4AA8:
- movs r0, 0x1
-_080C4AAA:
- mov r1, r8
- strh r0, [r1]
- movs r3, 0
- mov r4, r12
- adds r0, r7, r5
- lsls r2, r0, 3
- ldr r6, _080C4AF8 @ =gTasks + 0x8
-_080C4AB8:
- adds r1, r4, r3
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r2
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080C4AB8
- mov r0, r12
- bl sub_80C4B34
- ldr r1, _080C4AFC @ =gUnknown_0203869B
- strb r0, [r1]
- ldr r0, _080C4B00 @ =gSpecialVar_ContestCategory
- ldrb r0, [r0]
- bl sub_80AE82C
- ldr r1, _080C4B04 @ =sub_80C8EBC
- ldr r2, _080C4B08 @ =sub_80C4B0C
- adds r0, r5, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4AF8: .4byte gTasks + 0x8
-_080C4AFC: .4byte gUnknown_0203869B
-_080C4B00: .4byte gSpecialVar_ContestCategory
-_080C4B04: .4byte sub_80C8EBC
-_080C4B08: .4byte sub_80C4B0C
- thumb_func_end sub_80C4A44
-
- thumb_func_start sub_80C4B0C
-sub_80C4B0C: @ 80C4B0C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80B0F28
- ldr r1, _080C4B2C @ =sub_80C8F34
- ldr r2, _080C4B30 @ =sub_80C4B5C
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4B2C: .4byte sub_80C8F34
-_080C4B30: .4byte sub_80C4B5C
- thumb_func_end sub_80C4B0C
-
- thumb_func_start sub_80C4B34
-sub_80C4B34: @ 80C4B34
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- movs r2, 0x1
-_080C4B3C:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080C4B4C
- lsls r0, r2, 24
- lsrs r4, r0, 24
-_080C4B4C:
- adds r2, 0x1
- cmp r2, 0x3
- ble _080C4B3C
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C4B34
-
- thumb_func_start sub_80C4B5C
-sub_80C4B5C: @ 80C4B5C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C4B84 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080C4B90
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C4B9E
- ldr r0, _080C4B88 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C4B8C @ =sub_80C4BA4
- str r0, [r1]
- b _080C4B9E
- .align 2, 0
-_080C4B84: .4byte gSpecialVar_0x8004
-_080C4B88: .4byte gTasks
-_080C4B8C: .4byte sub_80C4BA4
-_080C4B90:
- adds r0, r4, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_080C4B9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C4B5C
-
- thumb_func_start sub_80C4BA4
-sub_80C4BA4: @ 80C4BA4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _080C4BC4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C4BC8 @ =sub_80C4BCC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4BC4: .4byte gTasks
-_080C4BC8: .4byte sub_80C4BCC
- thumb_func_end sub_80C4BA4
-
- thumb_func_start sub_80C4BCC
-sub_80C4BCC: @ 80C4BCC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4BE8
- adds r0, r1, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_080C4BE8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4BEC: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80C4BCC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm-de/contest_link_80C857C.s b/asm-de/contest_link_80C857C.s
deleted file mode 100644
index e3a8b674d..000000000
--- a/asm-de/contest_link_80C857C.s
+++ /dev/null
@@ -1,1408 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C857C
-sub_80C857C: @ 80C857C
- push {r4,r5,lr}
- adds r2, r0, 0
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r5, _080C85A8 @ =gSharedMem + 0x1E000
- adds r0, r5, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl memcpy
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl SendBlock
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C85A8: .4byte gSharedMem + 0x1E000
- thumb_func_end sub_80C857C
-
- thumb_func_start sub_80C85AC
-sub_80C85AC: @ 80C85AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r0
- lsrs r4, r1, 24
- bl GetBlockReceivedStatus
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080C85D0
- adds r0, r4, 0
- bl ResetBlockReceivedFlag
- movs r0, 0x1
- b _080C85D2
-_080C85D0:
- movs r0, 0
-_080C85D2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85AC
-
- thumb_func_start sub_80C85D8
-sub_80C85D8: @ 80C85D8
- push {r4,lr}
- movs r4, 0
-_080C85DC:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C85F2
- movs r0, 0
- b _080C85FE
-_080C85F2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C85DC
- bl ResetBlockReceivedFlags
- movs r0, 0x1
-_080C85FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85D8
-
- thumb_func_start sub_80C8604
-sub_80C8604: @ 80C8604
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C861C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _080C8620 @ =sub_80C8644
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C861C: .4byte gTasks
-_080C8620: .4byte sub_80C8644
- thumb_func_end sub_80C8604
-
- thumb_func_start sub_80C8644
-sub_80C8644: @ 80C8644
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C8658 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C865C @ =sub_80C8660
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C8658: .4byte gTasks
-_080C865C: .4byte sub_80C8660
- thumb_func_end sub_80C8644
-
- thumb_func_start sub_80C8660
-sub_80C8660: @ 80C8660
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C868E
- bl GetMultiplayerId
- ldr r1, _080C8698 @ =gContestPlayerMonIndex
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C868E
- ldr r1, _080C869C @ =gIsLinkContest
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C868E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8694: .4byte gReceivedRemoteLinkPlayers
-_080C8698: .4byte gContestPlayerMonIndex
-_080C869C: .4byte gIsLinkContest
- thumb_func_end sub_80C8660
-
- thumb_func_start sub_80C86A0
-sub_80C86A0: @ 80C86A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x5
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C86B6
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C86B6
- movs r0, 0x5
- b _080C872C
-_080C86B6:
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _080C872A
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080C872A
-_080C86CA:
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r0, 0x45
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- bls _080C871E
- adds r0, r1, 0
- adds r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080C871E
- adds r0, r1, 0
- cmp r0, 0
- beq _080C871E
- cmp r0, 0xAD
- beq _080C871E
- cmp r0, 0xB8
- beq _080C871E
- cmp r0, 0xAB
- beq _080C871E
- cmp r0, 0xAC
- beq _080C871E
- cmp r0, 0xB5
- beq _080C871E
- cmp r0, 0xB6
- beq _080C871E
- cmp r0, 0xBA
- beq _080C871E
- cmp r0, 0xAE
- beq _080C871E
- cmp r0, 0xB0
- beq _080C871E
- cmp r0, 0xB1
- beq _080C871E
- cmp r0, 0xB2
- beq _080C871E
- cmp r0, 0xB3
- beq _080C871E
- cmp r0, 0xB1
- bne _080C8728
-_080C871E:
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080C86CA
- b _080C872A
-_080C8728:
- movs r5, 0x1
-_080C872A:
- adds r0, r5, 0
-_080C872C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C86A0
-
- thumb_func_start sub_80C8734
-sub_80C8734: @ 80C8734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C8760 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _080C8800
- cmp r0, 0x1
- bgt _080C8764
- cmp r0, 0
- beq _080C8770
- b _080C88E0
- .align 2, 0
-_080C8760: .4byte gTasks
-_080C8764:
- cmp r0, 0x2
- bne _080C876A
- b _080C88D4_B
-_080C876A:
- cmp r0, 0x8
- beq _080C8770
- b _080C88E0
-_080C8770:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C87D4
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8786
- b _080C88EE
-_080C8786:
- ldr r0, _080C87A0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C87A4
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080C88EE
- .align 2, 0
-_080C87A0: .4byte gTasks
-_080C87A4:
- ldr r0, _080C87C8 @ =gBlockSendBuffer
- ldr r1, _080C87CC @ =gContestPlayerMonIndex
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87D0 @ =gContestMons
- adds r1, r2
- movs r2, 0x40
- bl memcpy
- movs r0, 0
- bl de_sub_80C9274
- movs r0, 0x2
- bl sub_8007E9C
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _080C88EE
- .align 2, 0
-_080C87C8: .4byte gBlockSendBuffer
-_080C87CC: .4byte gContestPlayerMonIndex
-_080C87D0: .4byte gContestMons
-_080C87D4:
- ldr r0, _080C87F0 @ =gBlockSendBuffer
- ldr r1, _080C87F4 @ =gContestPlayerMonIndex
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87F8 @ =gContestMons
- adds r1, r2
- movs r2, 0x40
- bl memcpy
- movs r0, 0
- bl de_sub_80C9294
- ldr r1, _080C87FC @ =gTasks
- b _080C88E0
- .align 2, 0
-_080C87F0: .4byte gBlockSendBuffer
-_080C87F4: .4byte gContestPlayerMonIndex
-_080C87F8: .4byte gContestMons
-_080C87FC: .4byte gTasks
-_080C8800:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C88EE
- movs r2, 0
- mov r8, r2
- str r4, [sp]
- ldr r0, _080C884C @ =gContestMons
- ldr r7, _080C8850 @ =gLinkPlayers
- movs r6, 0
- mov r10, r0
- movs r3, 0xFF
- mov r9, r3
-_080C881C:
- mov r0, r8
- lsls r1, r0, 8
- ldr r0, _080C8854 @ =gBlockRecvBuffer
- adds r1, r0
- mov r0, r10
- movs r2, 0x40
- bl memcpy
- ldr r1, _080C8858 @ =gContestMons + 0x2
- adds r4, r6, r1
- ldrh r0, [r7, 0x1A]
- cmp r0, 0x1
- bne _080C885C
- adds r0, r4, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- b _080C8872
- .align 2, 0
-_080C884C: .4byte gContestMons
-_080C8850: .4byte gLinkPlayers
-_080C8854: .4byte gBlockRecvBuffer
-_080C8858: .4byte gContestMons + 0x2
-_080C885C:
- ldrb r0, [r4, 0xA]
- cmp r0, 0xFC
- bne _080C886C
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _080C8872
-_080C886C:
- strb r0, [r4, 0x5]
- mov r2, r9
- strb r2, [r4, 0xA]
-_080C8872:
- ldr r0, _080C88A0 @ =gUnknown_0203857D
- adds r4, r6, r0
- ldrh r0, [r7, 0x1A]
- cmp r0, 0x1
- bne _080C88A4
- mov r3, r9
- strb r3, [r4, 0x7]
- ldrb r0, [r4, 0x4]
- strb r0, [r4, 0x6]
- ldrb r0, [r4, 0x3]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x2]
- strb r0, [r4, 0x4]
- ldrb r0, [r4, 0x1]
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- strb r0, [r4, 0x2]
- movs r0, 0x15
- strb r0, [r4, 0x1]
- movs r0, 0xFC
- strb r0, [r4]
- b _080C88AC
- .align 2, 0
-_080C88A0: .4byte gUnknown_0203857D
-_080C88A4:
- ldrb r0, [r4, 0x7]
- strb r0, [r4, 0x5]
- mov r0, r9
- strb r0, [r4, 0x7]
-_080C88AC:
- adds r7, 0x1C
- adds r6, 0x40
- movs r1, 0x40
- add r10, r1
- movs r2, 0x1
- add r8, r2
- mov r3, r8
- cmp r3, 0x3
- ble _080C881C
- ldr r0, _080C88D0 @ =gTasks
- ldr r2, [sp]
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C88EE
- .align 2, 0
-_080C88D0: .4byte gTasks
-_080C88D4_B:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C88EE
-_080C88E0:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080C88EE:
- 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_80C8734
-
- thumb_func_start sub_80C88AC
-sub_80C88AC: @ 80C88AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C88D4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080C88D8
- cmp r0, 0x1
- beq _080C88FC
- movs r0, 0
- strh r0, [r5, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8924
- .align 2, 0
-_080C88D4: .4byte gTasks
-_080C88D8:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C891E
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C88F8 @ =gRngValue
- movs r1, 0x4
- bl sub_80C857C
- b _080C891E
- .align 2, 0
-_080C88F8: .4byte gRngValue
-_080C88FC:
- movs r0, 0
- bl sub_80C85AC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C892C @ =gRngValue
- ldr r4, _080C8930 @ =gBlockRecvBuffer
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _080C8934 @ =gUnknown_03005D28
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
-_080C891E:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080C8924:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C892C: .4byte gRngValue
-_080C8930: .4byte gBlockRecvBuffer
-_080C8934: .4byte gUnknown_03005D28
- thumb_func_end sub_80C88AC
-
- thumb_func_start sub_80C8938
-sub_80C8938: @ 80C8938
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8960 @ =gTasks
- lsls r5, r4, 2
- adds r0, r5, r4
- lsls r6, r0, 3
- adds r2, r6, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- mov r8, r1
- cmp r0, 0x1
- beq _080C89C4
- cmp r0, 0x1
- bgt _080C8964
- cmp r0, 0
- beq _080C896C
- b _080C8A0C
- .align 2, 0
-_080C8960: .4byte gTasks
-_080C8964:
- cmp r0, 0x2
- beq _080C8A00
- cmp r0, 0x8
- bne _080C8A0C
-_080C896C:
- ldr r1, _080C89A0 @ =gBlockSendBuffer
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r2, r8
- adds r4, r0, r2
- ldrh r0, [r4, 0x1A]
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C89B6
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8A1A
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080C89A4
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080C8A1A
- .align 2, 0
-_080C89A0: .4byte gBlockSendBuffer
-_080C89A4:
- movs r0, 0x1
- bl de_sub_80C9274
- movs r0, 0x2
- bl sub_8007E9C
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8A1A
-_080C89B6:
- movs r0, 0x1
- bl de_sub_80C9294
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8A1A
-_080C89C4:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8A1A
- movs r3, 0
- adds r7, r5, 0
- ldr r1, _080C89FC @ =gBlockRecvBuffer
- mov r0, r8
- adds r0, 0xA
- adds r2, r6, r0
- movs r5, 0x80
- lsls r5, 1
-_080C89DE:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, r5
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C89DE
- adds r1, r7, r4
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C8A1A
- .align 2, 0
-_080C89FC: .4byte gBlockRecvBuffer
-_080C8A00:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
- b _080C8A1A
-_080C8A0C:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080C8A1A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8938
-
- thumb_func_start sub_80C89DC
-sub_80C89DC: @ 80C89DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8A04 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A08
- cmp r0, 0x1
- beq _080C8A20
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8A30
- .align 2, 0
-_080C8A04: .4byte gTasks
-_080C8A08:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
- ldr r0, _080C8A1C @ =gContestPlayerMonIndex
- movs r1, 0x1
- bl sub_80C857C
- b _080C8A2A
- .align 2, 0
-_080C8A1C: .4byte gContestPlayerMonIndex
-_080C8A20:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
-_080C8A2A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C89DC
-
- thumb_func_start sub_80C8A38
-sub_80C8A38: @ 80C8A38
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r7, _080C8A60 @ =gTasks
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r7
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A64
- cmp r0, 0x1
- beq _080C8A94
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8AC2
- .align 2, 0
-_080C8A60: .4byte gTasks
-_080C8A64:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r0, _080C8A8C @ =gContestPlayerMonIndex
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080C8A90 @ =gSharedMem + 0x19266
- adds r0, r1
- movs r1, 0x2
- bl sub_80C857C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8AC2
- .align 2, 0
-_080C8A8C: .4byte gContestPlayerMonIndex
-_080C8A90: .4byte gSharedMem + 0x19266
-_080C8A94:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r1, _080C8AC8 @ =gBlockRecvBuffer
- ldr r3, _080C8ACC @ =gSharedMem + 0x19266
- movs r4, 0x80
- lsls r4, 1
- movs r2, 0x3
-_080C8AA8:
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, r4
- adds r3, 0x1C
- subs r2, 0x1
- cmp r2, 0
- bge _080C8AA8
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8AC2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8AC8: .4byte gBlockRecvBuffer
-_080C8ACC: .4byte gSharedMem + 0x19266
- thumb_func_end sub_80C8A38
-
- thumb_func_start sub_80C8AD0
-sub_80C8AD0: @ 80C8AD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8AF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8AEC
- b _080C8C70
-_080C8AEC:
- lsls r0, 2
- ldr r1, _080C8AFC @ =_080C8B00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8AF8: .4byte gTasks
-_080C8AFC: .4byte _080C8B00
- .align 2, 0
-_080C8B00:
- .4byte _080C8B30
- .4byte _080C8B4C
- .4byte _080C8B74
- .4byte _080C8B98
- .4byte _080C8BB0
- .4byte _080C8B74
- .4byte _080C8BD8
- .4byte _080C8BF0
- .4byte _080C8B74
- .4byte _080C8C18
- .4byte _080C8C30
- .4byte _080C8B74
-_080C8B30:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8B3C
- b _080C8C7A
-_080C8B3C:
- ldr r0, _080C8B48 @ =gUnknown_02038678
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8B48: .4byte gUnknown_02038678
-_080C8B4C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8B58
- b _080C8C7A
-_080C8B58:
- ldr r0, _080C8B68 @ =gUnknown_02038678
- ldr r1, _080C8B6C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8B70 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8B68: .4byte gUnknown_02038678
-_080C8B6C: .4byte gUnknown_0203869B
-_080C8B70: .4byte gBlockRecvBuffer
-_080C8B74:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bgt _080C8B8C
- b _080C8C7A
-_080C8B8C:
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8C7A
-_080C8B98:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BAC @ =gUnknown_02038680
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BAC: .4byte gUnknown_02038680
-_080C8BB0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BCC @ =gUnknown_02038680
- ldr r1, _080C8BD0 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8BD4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8BCC: .4byte gUnknown_02038680
-_080C8BD0: .4byte gUnknown_0203869B
-_080C8BD4: .4byte gBlockRecvBuffer
-_080C8BD8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BEC @ =gUnknown_02038688
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BEC: .4byte gUnknown_02038688
-_080C8BF0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C0C @ =gUnknown_02038688
- ldr r1, _080C8C10 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C14 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8C0C: .4byte gUnknown_02038688
-_080C8C10: .4byte gUnknown_0203869B
-_080C8C14: .4byte gBlockRecvBuffer
-_080C8C18:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C2C @ =gContestFinalStandings
- movs r1, 0x4
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8C2C: .4byte gContestFinalStandings
-_080C8C30:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C60 @ =gContestFinalStandings
- ldr r1, _080C8C64 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C68 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
-_080C8C48:
- bl memcpy
-_080C8C4C:
- ldr r1, _080C8C6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8C7A
- .align 2, 0
-_080C8C60: .4byte gContestFinalStandings
-_080C8C64: .4byte gUnknown_0203869B
-_080C8C68: .4byte gBlockRecvBuffer
-_080C8C6C: .4byte gTasks
-_080C8C70:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8AD0
-
- thumb_func_start sub_80C8C80
-sub_80C8C80: @ 80C8C80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8CA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8C9C
- b _080C8E0C
-_080C8C9C:
- lsls r0, 2
- ldr r1, _080C8CAC @ =_080C8CB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8CA8: .4byte gTasks
-_080C8CAC: .4byte _080C8CB0
- .align 2, 0
-_080C8CB0:
- .4byte _080C8CE0
- .4byte _080C8CFC
- .4byte _080C8D24
- .4byte _080C8D46
- .4byte _080C8D60
- .4byte _080C8D24
- .4byte _080C8D88
- .4byte _080C8DA0
- .4byte _080C8D24
- .4byte _080C8DB4
- .4byte _080C8DCC
- .4byte _080C8D24
-_080C8CE0:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8CEC
- b _080C8E16
-_080C8CEC:
- ldr r0, _080C8CF8 @ =gSharedMem + 0x19260
- movs r1, 0x70
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8CF8: .4byte gSharedMem + 0x19260
-_080C8CFC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8D08
- b _080C8E16
-_080C8D08:
- ldr r0, _080C8D18 @ =gSharedMem + 0x19260
- ldr r1, _080C8D1C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D20 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x70
- b _080C8DE4
- .align 2, 0
-_080C8D18: .4byte gSharedMem + 0x19260
-_080C8D1C: .4byte gUnknown_0203869B
-_080C8D20: .4byte gBlockRecvBuffer
-_080C8D24:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080C8E16
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8E16
-_080C8D46:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D5C @ =gSharedMem + 0x192D0
- movs r1, 0x14
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D5C: .4byte gSharedMem + 0x192D0
-_080C8D60:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D7C @ =gSharedMem + 0x192D0
- ldr r1, _080C8D80 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D84 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x14
- b _080C8DE4
- .align 2, 0
-_080C8D7C: .4byte gSharedMem + 0x192D0
-_080C8D80: .4byte gUnknown_0203869B
-_080C8D84: .4byte gBlockRecvBuffer
-_080C8D88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D9C @ =gSharedMem + 0x19328
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D9C: .4byte gSharedMem + 0x19328
-_080C8DA0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DB0 @ =gSharedMem + 0x19328
- b _080C8DD8
- .align 2, 0
-_080C8DB0: .4byte gSharedMem + 0x19328
-_080C8DB4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DC8 @ =gUnknown_02038696
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8DC8: .4byte gUnknown_02038696
-_080C8DCC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DFC @ =gUnknown_02038696
-_080C8DD8:
- ldr r1, _080C8E00 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8E04 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
-_080C8DE4:
- bl memcpy
-_080C8DE8:
- ldr r1, _080C8E08 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8E16
- .align 2, 0
-_080C8DFC: .4byte gUnknown_02038696
-_080C8E00: .4byte gUnknown_0203869B
-_080C8E04: .4byte gBlockRecvBuffer
-_080C8E08: .4byte gTasks
-_080C8E0C:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8E16:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8C80
-
- thumb_func_start sub_80C8E1C
-sub_80C8E1C: @ 80C8E1C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C8E40 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r6, r0, 3
- adds r2, r6, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r7, r1, 0
- cmp r0, 0x1
- beq _080C8EB0
- cmp r0, 0x1
- bgt _080C8E44
- cmp r0, 0
- beq _080C8E4C
- b _080C8EF8
- .align 2, 0
-_080C8E40: .4byte gTasks
-_080C8E44:
- cmp r0, 0x2
- beq _080C8EEC
- cmp r0, 0x8
- bne _080C8EF8
-_080C8E4C:
- ldr r1, _080C8E80 @ =gBlockSendBuffer
- movs r0, 0x64
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C8E9A
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F06
- ldr r0, _080C8E84 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C8E88
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080C8F06
- .align 2, 0
-_080C8E80: .4byte gBlockSendBuffer
-_080C8E84: .4byte gTasks
-_080C8E88:
- movs r0, 0
- bl de_sub_80C9274
- movs r0, 0x2
- bl sub_8007E9C
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8F06
-_080C8E9A:
- movs r0, 0
- bl de_sub_80C9294
- ldr r0, _080C8EAC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- b _080C8EDE
- .align 2, 0
-_080C8EAC: .4byte gTasks
-_080C8EB0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F06
- adds r1, r4, 0
- ldr r4, _080C8EE8 @ =gBlockRecvBuffer
- adds r0, r7, 0
- adds r0, 0x12
- adds r2, r6, r0
- movs r6, 0x80
- lsls r6, 1
- movs r3, 0x3
-_080C8ECA:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, r6
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C8ECA
- adds r1, r5
- lsls r1, 3
- adds r1, r7
-_080C8EDE:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C8F06
- .align 2, 0
-_080C8EE8: .4byte gBlockRecvBuffer
-_080C8EEC:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F06
-_080C8EF8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080C8F06:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8E1C
-
- thumb_func_start sub_80C8EBC
-sub_80C8EBC: @ 80C8EBC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8EE4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8EE8_B
- cmp r0, 0x1
- beq _080C8F00
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F22
- .align 2, 0
-_080C8EE4: .4byte gTasks
-_080C8EE8_B:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8EFC @ =gUnknown_02038670
- movs r1, 0x8
- bl sub_80C857C
- b _080C8F1C
- .align 2, 0
-_080C8EFC: .4byte gUnknown_02038670
-_080C8F00:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8F28 @ =gUnknown_02038670
- ldr r1, _080C8F2C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8F30 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- bl memcpy
-_080C8F1C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8F28: .4byte gUnknown_02038670
-_080C8F2C: .4byte gUnknown_0203869B
-_080C8F30: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8EBC
-
- thumb_func_start sub_80C8F34
-sub_80C8F34: @ 80C8F34
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8F5C @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8F60
- cmp r0, 0x1
- beq _080C8F78
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F9A
- .align 2, 0
-_080C8F5C: .4byte gTasks
-_080C8F60:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8F74 @ =gUnknown_02038696
- movs r1, 0x4
- bl sub_80C857C
- b _080C8F94
- .align 2, 0
-_080C8F74: .4byte gUnknown_02038696
-_080C8F78:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8FA0 @ =gUnknown_02038696
- ldr r1, _080C8FA4 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8FA8 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
- bl memcpy
-_080C8F94:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F9A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8FA0: .4byte gUnknown_02038696
-_080C8FA4: .4byte gUnknown_0203869B
-_080C8FA8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8F34
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s
deleted file mode 100644
index 89ea03b69..000000000
--- a/asm-de/easy_chat.s
+++ /dev/null
@@ -1,10803 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80E60D8
-sub_80E60D8: @ 80E60D8
- push {r4-r7,lr}
- movs r4, 0x3
- ldr r0, _080E60F4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xD
- bls _080E60E8
- b _080E6284
-_080E60E8:
- lsls r0, r1, 2
- ldr r1, _080E60F8 @ =_080E60FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E60F4: .4byte gSpecialVar_0x8004
-_080E60F8: .4byte _080E60FC
- .align 2, 0
-_080E60FC:
- .4byte _080E6134
- .4byte _080E613C
- .4byte _080E6144
- .4byte _080E614C
- .4byte _080E6154
- .4byte _080E619C
- .4byte _080E616C
- .4byte _080E61BC
- .4byte _080E61E0
- .4byte _080E61FC
- .4byte _080E6200
- .4byte _080E6214
- .4byte _080E623C
- .4byte _080E6260
-_080E6134:
- ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C
- b _080E624C
- .align 2, 0
-_080E6138: .4byte gSaveBlock1 + 0x2B1C
-_080E613C:
- ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28
- b _080E6276
- .align 2, 0
-_080E6140: .4byte gSaveBlock1 + 0x2B28
-_080E6144:
- ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34
- b _080E624C
- .align 2, 0
-_080E6148: .4byte gSaveBlock1 + 0x2B34
-_080E614C:
- ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40
- b _080E6276
- .align 2, 0
-_080E6150: .4byte gSaveBlock1 + 0x2B40
-_080E6154:
- ldr r0, _080E6164 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0, r1
- b _080E624C
- .align 2, 0
-_080E6164: .4byte gSpecialVar_0x8005
-_080E6168: .4byte gSaveBlock1 + 0x2B4C
-_080E616C:
- ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- ldr r1, _080E6198 @ =sub_80546B8
- mov r12, r1
- adds r3, r0, 0
- adds r3, 0xE
- adds r5, r0, 0x2
- adds r6, r3, 0
-_080E617C:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080E617C
- adds r1, r6, 0
- b _080E627A
- .align 2, 0
-_080E6194: .4byte gSaveBlock1 + 0x2D94
-_080E6198: .4byte sub_80546B8
-_080E619C:
- ldr r0, _080E61B0 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C
- adds r1, r0, r1
- ldr r0, _080E61B8 @ =gSpecialVar_0x8006
- ldrb r4, [r0]
- b _080E6276
- .align 2, 0
-_080E61B0: .4byte gSpecialVar_0x8005
-_080E61B4: .4byte gSaveBlock1 + 0x273C
-_080E61B8: .4byte gSpecialVar_0x8006
-_080E61BC:
- ldr r0, _080E61D4 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754
- adds r1, r0
- ldr r0, _080E61DC @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- b _080E624A
- .align 2, 0
-_080E61D4: .4byte gSpecialVar_0x8005
-_080E61D8: .4byte gSaveBlock1 + 0x2754
-_080E61DC: .4byte gSpecialVar_0x8006
-_080E61E0:
- ldr r0, _080E61F4 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A
- adds r1, r0, r1
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E61F4: .4byte gSpecialVar_0x8005
-_080E61F8: .4byte gSaveBlock1 + 0x273A
-_080E61FC:
- movs r1, 0
- b _080E624C
-_080E6200:
- ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16
- ldr r2, _080E6210 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- b _080E624A
- .align 2, 0
-_080E620C: .4byte gSaveBlock1 + 0x2B16
-_080E6210: .4byte 0x0000ffff
-_080E6214:
- ldr r0, _080E6230 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C
- adds r1, r0
- ldr r0, _080E6238 @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E6230: .4byte gSpecialVar_0x8005
-_080E6234: .4byte gSaveBlock1 + 0x273C
-_080E6238: .4byte gSpecialVar_0x8006
-_080E623C:
- ldr r0, _080E6254 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750
- adds r1, r0, r1
-_080E624A:
- movs r4, 0x1
-_080E624C:
- ldr r0, _080E625C @ =sub_80546B8
- mov r12, r0
- b _080E627A
- .align 2, 0
-_080E6254: .4byte gSpecialVar_0x8005
-_080E6258: .4byte gSaveBlock1 + 0x2750
-_080E625C: .4byte sub_80546B8
-_080E6260:
- ldr r1, _080E628C @ =gSharedMem + 0x1000
- ldr r0, _080E6290 @ =0x00009fa8
- adds r2, r1, r0
- ldr r0, _080E6294 @ =0x0000ffff
- strh r0, [r2]
- ldr r0, _080E6298 @ =0x00009faa
- adds r1, r0
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- adds r1, r2, 0
-_080E6276:
- ldr r2, _080E629C @ =sub_80546B8
- mov r12, r2
-_080E627A:
- ldrb r0, [r7]
- mov r2, r12
- adds r3, r4, 0
- bl sub_80E62A0
-_080E6284:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E628C: .4byte gSharedMem + 0x1000
-_080E6290: .4byte 0x00009fa8
-_080E6294: .4byte 0x0000ffff
-_080E6298: .4byte 0x00009faa
-_080E629C: .4byte sub_80546B8
- thumb_func_end sub_80E60D8
-
- thumb_func_start sub_80E62A0
-sub_80E62A0: @ 80E62A0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080E62DC @ =gSharedMem + 0x1000
- str r2, [r4]
- str r1, [r4, 0x4]
- strb r0, [r4, 0x8]
- strb r3, [r4, 0xB]
- cmp r0, 0x9
- bne _080E62D0
- ldr r0, _080E62E0 @ =0x00009fa8
- adds r2, r4, r0
- str r2, [r4, 0x4]
- ldr r0, _080E62E4 @ =gSaveBlock1
- ldr r3, _080E62E8 @ =0x00002dd8
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2]
- ldr r1, _080E62EC @ =0x00002dda
- adds r0, r1
- ldrh r1, [r0]
- ldr r2, _080E62F0 @ =0x00009faa
- adds r0, r4, r2
- strh r1, [r0]
-_080E62D0:
- ldr r0, _080E62F4 @ =sub_80E62F8
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E62DC: .4byte gSharedMem + 0x1000
-_080E62E0: .4byte 0x00009fa8
-_080E62E4: .4byte gSaveBlock1
-_080E62E8: .4byte 0x00002dd8
-_080E62EC: .4byte 0x00002dda
-_080E62F0: .4byte 0x00009faa
-_080E62F4: .4byte sub_80E62F8
- thumb_func_end sub_80E62A0
-
- thumb_func_start sub_80E62F8
-sub_80E62F8: @ 80E62F8
- push {lr}
- sub sp, 0x4
- ldr r0, _080E6314 @ =gMain
- ldr r1, _080E6318 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080E6344
- lsls r0, 2
- ldr r1, _080E631C @ =_080E6320
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6314: .4byte gMain
-_080E6318: .4byte 0x0000043c
-_080E631C: .4byte _080E6320
- .align 2, 0
-_080E6320:
- .4byte _080E6344
- .4byte _080E6380
- .4byte _080E638C
- .4byte _080E63A8
- .4byte _080E63AE
- .4byte _080E63B4
- .4byte _080E63BE
- .4byte _080E63D8
- .4byte _080E63EA
-_080E6344:
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetSpriteData
- bl dp12_8087EA4
- bl remove_some_task
- bl sub_80EAD08
- ldr r2, _080E637C @ =gUnknown_083DB698
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80895F8
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- b _080E6402
- .align 2, 0
-_080E637C: .4byte gUnknown_083DB698
-_080E6380:
- ldr r0, _080E6388 @ =gWindowConfig_81E6DA8
- bl SetUpWindowConfig
- b _080E6402
- .align 2, 0
-_080E6388: .4byte gWindowConfig_81E6DA8
-_080E638C:
- ldr r0, _080E63A0 @ =gWindowConfig_81E6D54
- bl InitMenuWindow
- ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _080E6402
- .align 2, 0
-_080E63A0: .4byte gWindowConfig_81E6D54
-_080E63A4: .4byte gWindowConfig_81E6DA8
-_080E63A8:
- bl sub_80E6424
- b _080E6402
-_080E63AE:
- bl sub_80E8DD8
- b _080E6402
-_080E63B4:
- bl sub_80E8218
- bl sub_80E8CEC
- b _080E6402
-_080E63BE:
- bl sub_80E69F8
- ldr r0, _080E63D0 @ =sub_80E6AA8
- bl sub_80E682C
- ldr r0, _080E63D4 @ =sub_80E6A6C
- bl SetVBlankCallback
- b _080E6402
- .align 2, 0
-_080E63D0: .4byte sub_80E6AA8
-_080E63D4: .4byte sub_80E6A6C
-_080E63D8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080E6402
-_080E63EA:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E6414 @ =sub_80E6A88
- bl SetMainCallback2
- ldr r0, _080E6418 @ =0x00000805
- bl FlagSet
-_080E6402:
- ldr r1, _080E641C @ =gMain
- ldr r0, _080E6420 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080E6414: .4byte sub_80E6A88
-_080E6418: .4byte 0x00000805
-_080E641C: .4byte gMain
-_080E6420: .4byte 0x0000043c
- thumb_func_end sub_80E62F8
-
- thumb_func_start sub_80E6424
-sub_80E6424: @ 80E6424
- push {lr}
- ldr r2, _080E6444 @ =gSharedMem + 0x1000
- ldr r0, _080E6448 @ =gUnknown_083DB6A4
- ldrb r1, [r2, 0x8]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2, 0x9]
- ldrb r0, [r2, 0x9]
- adds r3, r2, 0
- cmp r0, 0x5
- bhi _080E6512
- lsls r0, 2
- ldr r1, _080E644C @ =_080E6450
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6444: .4byte gSharedMem + 0x1000
-_080E6448: .4byte gUnknown_083DB6A4
-_080E644C: .4byte _080E6450
- .align 2, 0
-_080E6450:
- .4byte _080E64A0
- .4byte _080E64B8
- .4byte _080E64DA
- .4byte _080E64F6
- .4byte _080E6468
- .4byte _080E6480
-_080E6468:
- movs r2, 0x4
- strb r2, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- movs r1, 0x2
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x5
- b _080E64D0
-_080E6480:
- movs r1, 0x4
- strb r1, [r3, 0xA]
- adds r2, r3, 0
- adds r2, 0x83
- movs r0, 0x1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x84
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- b _080E6510
-_080E64A0:
- movs r0, 0x6
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x84
- movs r2, 0x3
- strb r2, [r0]
- adds r1, 0x5
- b _080E64CE
-_080E64B8:
- movs r2, 0
- movs r0, 0x9
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x5
- strb r0, [r1]
- adds r1, 0x4
-_080E64CE:
- movs r0, 0x4
-_080E64D0:
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8A
- strh r2, [r0]
- b _080E6512
-_080E64DA:
- movs r1, 0x1
- strb r1, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- b _080E6510
-_080E64F6:
- movs r0, 0x2
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3
-_080E6510:
- strh r0, [r1]
-_080E6512:
- adds r1, r3, 0
- adds r1, 0x86
- movs r0, 0
- strb r0, [r1]
- subs r1, 0x1
- strb r0, [r1]
- adds r1, 0x2
- strb r0, [r1]
- subs r1, 0x61
- strb r0, [r1]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- movs r0, 0xDF
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80E6554
- bl sub_80EAECC
- bl sub_80EB040
- bl sub_80E7E50
- bl sub_80E6630
- bl sub_80E6690
- pop {r0}
- bx r0
- thumb_func_end sub_80E6424
-
- thumb_func_start sub_80E6554
-sub_80E6554: @ 80E6554
- push {r4-r7,lr}
- sub sp, 0x4
- movs r4, 0
- movs r7, 0
- ldr r0, _080E6564 @ =gSharedMem + 0x1000
- mov r12, r0
- b _080E656E
- .align 2, 0
-_080E6564: .4byte gSharedMem + 0x1000
-_080E6568:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080E656E:
- movs r5, 0
- lsls r3, r7, 1
- mov r6, r12
- adds r6, 0x2A
- adds r2, r3, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- beq _080E65A6
-_080E6586:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bhi _080E65A2
- adds r2, r5, r3
- adds r2, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- bne _080E6586
-_080E65A2:
- cmp r4, 0x11
- bne _080E6568
-_080E65A6:
- movs r0, 0x11
- mov r1, r12
- strh r0, [r1, 0x28]
- cmp r4, 0x15
- bhi _080E6612
- mov r6, r12
- adds r2, r6, 0
- adds r2, 0x78
-_080E65B6:
- lsls r0, r4, 24
- lsrs r0, 24
- str r2, [sp]
- bl sub_80EAD7C
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [sp]
- cmp r1, 0
- beq _080E65FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E65DC
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
-_080E65DC:
- lsls r0, r7, 1
- adds r0, r5, r0
- adds r1, r6, 0
- adds r1, 0x2A
- adds r0, r1
- strb r4, [r0]
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r6, 0x28]
- adds r0, 0x1
- strh r0, [r6, 0x28]
- mov r12, r6
- b _080E6608
-_080E65FC:
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- strb r1, [r0]
- ldr r0, _080E662C @ =gSharedMem + 0x1000
- mov r12, r0
-_080E6608:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x15
- bls _080E65B6
-_080E6612:
- mov r1, r12
- ldrh r0, [r1, 0x28]
- adds r0, 0x1
- asrs r0, 1
- movs r1, 0xDB
- lsls r1, 1
- add r1, r12
- strb r0, [r1]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E662C: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E6554
-
- thumb_func_start sub_80E6630
-sub_80E6630: @ 80E6630
- push {r4-r7,lr}
- movs r1, 0
- ldr r0, _080E6664 @ =gUnknown_083DB6B2
- mov r12, r0
-_080E6638:
- lsls r0, r1, 4
- mov r2, r12
- adds r5, r0, r2
- movs r3, 0
- ldrb r0, [r5]
- adds r7, r1, 0x1
- cmp r0, 0xFF
- beq _080E6680
- lsls r0, r1, 3
- subs r0, r1
- lsls r4, r0, 1
- ldr r6, _080E6668 @ =gSharedMem + 0x1040
-_080E6650:
- adds r0, r5, r3
- ldrb r1, [r0]
- adds r2, r1, 0
- cmp r2, 0
- beq _080E666C
- adds r0, r3, r4
- adds r0, r6
- adds r1, 0x46
- strb r1, [r0]
- b _080E6672
- .align 2, 0
-_080E6664: .4byte gUnknown_083DB6B2
-_080E6668: .4byte gSharedMem + 0x1040
-_080E666C:
- adds r0, r3, r4
- adds r0, r6
- strb r2, [r0]
-_080E6672:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E6650
-_080E6680:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080E6638
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E6630
-
- thumb_func_start sub_80E6690
-sub_80E6690: @ 80E6690
- push {r4-r6,lr}
- sub sp, 0x10
- mov r0, sp
- ldr r1, _080E66E0 @ =gUnknown_083DB7DC
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldr r1, [r1]
- str r1, [r0]
- movs r5, 0
- ldr r6, _080E66E4 @ =gUnknown_083DB7C0
-_080E66A4:
- ldr r0, _080E66E8 @ =gSharedMem + 0x1000
- ldrb r0, [r0, 0x8]
- lsls r0, 1
- adds r0, r5, r0
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E66EC @ =gUnknown_083DB6F4
- adds r4, r0, r1
- lsls r0, r5, 3
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4]
- bl StringCopy
- adds r3, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _080E66F0
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4, 0x4]
- bl StringCopy
- b _080E670A
- .align 2, 0
-_080E66E0: .4byte gUnknown_083DB7DC
-_080E66E4: .4byte gUnknown_083DB7C0
-_080E66E8: .4byte gSharedMem + 0x1000
-_080E66EC: .4byte gUnknown_083DB6F4
-_080E66F0:
- strb r0, [r3]
- adds r3, 0x1
- ldr r1, [r4, 0x4]
- adds r0, r3, 0
- bl StringCopy
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1]
-_080E670A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E66A4
- movs r5, 0
- ldr r3, _080E6758 @ =gSharedMem + 0x1000
- ldr r0, _080E675C @ =0x0000a0d0
- adds r2, r3, r0
- movs r1, 0
-_080E671E:
- adds r0, r5, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x23
- bls _080E671E
- ldr r1, _080E675C @ =0x0000a0d0
- adds r0, r3, r1
- adds r0, r5, r0
- movs r4, 0x1
- negs r4, r4
- adds r2, r4, 0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _080E6760 @ =0x0000a29a
- adds r3, r0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x11
- strb r0, [r3, 0x1]
- movs r0, 0xE0
- strb r0, [r3, 0x2]
- strb r2, [r3, 0x3]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6758: .4byte gSharedMem + 0x1000
-_080E675C: .4byte 0x0000a0d0
-_080E6760: .4byte 0x0000a29a
- thumb_func_end sub_80E6690
-
- thumb_func_start InitEasyChatPhrases
-InitEasyChatPhrases: @ 80E6764
- push {r4-r6,lr}
- movs r3, 0
- ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
- ldr r2, _080E6810 @ =gUnknown_083DB7EC
-_080E676C:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080E676C
- movs r3, 0
- ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28
- ldr r2, _080E6818 @ =gUnknown_083DB7F4
-_080E6786:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E6786
- movs r3, 0
- ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34
- ldr r0, _080E6820 @ =0x0000ffff
- adds r4, r0, 0
- adds r6, r5, 0
- adds r6, 0xC
-_080E67A6:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r2]
- orrs r0, r4
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E67A6
- movs r3, 0
- ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C
- ldr r0, _080E6820 @ =0x0000ffff
- adds r5, r0, 0
-_080E67CA:
- movs r2, 0
- lsls r0, r3, 3
- adds r0, r3
- lsls r4, r0, 2
-_080E67D2:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x8
- bls _080E67D2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080E67CA
- movs r3, 0
- ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C
- movs r1, 0
-_080E67F8:
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080E67F8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E680C: .4byte gSaveBlock1 + 0x2B1C
-_080E6810: .4byte gUnknown_083DB7EC
-_080E6814: .4byte gSaveBlock1 + 0x2B28
-_080E6818: .4byte gUnknown_083DB7F4
-_080E681C: .4byte gSaveBlock1 + 0x2B34
-_080E6820: .4byte 0x0000ffff
-_080E6824: .4byte gSaveBlock1 + 0x2B4C
-_080E6828: .4byte gSaveBlock1 + 0x2D8C
- thumb_func_end InitEasyChatPhrases
-
- thumb_func_start sub_80E682C
-sub_80E682C: @ 80E682C
- ldr r1, _080E6838 @ =gSharedMem + 0x1000
- str r0, [r1, 0x20]
- movs r0, 0
- strh r0, [r1, 0x24]
- bx lr
- .align 2, 0
-_080E6838: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E682C
-
- thumb_func_start sub_80E683C
-sub_80E683C: @ 80E683C
- push {r4,r5,lr}
- ldr r1, _080E6890 @ =gSharedMem + 0x1000
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0
- bne _080E6898
- movs r1, 0
- movs r0, 0xDB
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- bge _080E6876
- movs r0, 0xD5
- lsls r0, 1
- adds r5, r2, r0
- movs r4, 0x2
-_080E6864:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- blt _080E6864
-_080E6876:
- adds r0, r2, r1
- ldr r1, _080E6894 @ =0x000001a9
- adds r3, r0, r1
- ldrh r0, [r2, 0x28]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r3]
- cmp r0, 0
- bne _080E68B8
- movs r0, 0x2
- strb r0, [r3]
- b _080E68B8
- .align 2, 0
-_080E6890: .4byte gSharedMem + 0x1000
-_080E6894: .4byte 0x000001a9
-_080E6898:
- movs r3, 0xD5
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0x7
- strb r0, [r1]
- ldr r1, _080E68E0 @ =0x000001ab
- adds r3, r2, r1
- movs r1, 0x6
- strb r1, [r3]
- movs r3, 0xD6
- lsls r3, 1
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x1
- adds r1, r2, r3
- strb r0, [r1]
-_080E68B8:
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r3, _080E68E4 @ =0x000001a9
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0xC
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x2
- adds r1, r2, r3
- strb r0, [r1]
- bl sub_80E9A4C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E68E0: .4byte 0x000001ab
-_080E68E4: .4byte 0x000001a9
- thumb_func_end sub_80E683C
-
- thumb_func_start sub_80E68E8
-sub_80E68E8: @ 80E68E8
- push {r4-r6,lr}
- bl sub_80EB0B0
- ldr r3, _080E694C @ =gSharedMem + 0x1000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E695C
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E6950 @ =0x000044a2
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E6954 @ =0x00009d54
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E693A
- ldr r3, _080E6958 @ =0x00009cd2
- adds r4, r5, r3
- movs r3, 0x2
-_080E6928:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E6928
-_080E693A:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E6958 @ =0x00009cd2
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E6950 @ =0x000044a2
- b _080E69AC
- .align 2, 0
-_080E694C: .4byte gSharedMem + 0x1000
-_080E6950: .4byte 0x000044a2
-_080E6954: .4byte 0x00009d54
-_080E6958: .4byte 0x00009cd2
-_080E695C:
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E69E0 @ =0x0000446c
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E69E4 @ =0x00009d54
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E699C
- ldr r3, _080E69E8 @ =0x00009cd2
- adds r4, r5, r3
- movs r3, 0x2
-_080E698A:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E698A
-_080E699C:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E69E8 @ =0x00009cd2
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E69E0 @ =0x0000446c
-_080E69AC:
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0
- bne _080E69C0
- movs r0, 0x2
- strb r0, [r2]
-_080E69C0:
- ldr r1, _080E69EC @ =0x00009cd0
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080E69F0 @ =0x00009cd1
- adds r0, r5, r2
- strb r1, [r0]
- ldr r3, _080E69F4 @ =0x00009d55
- adds r0, r5, r3
- strb r1, [r0]
- bl sub_80E9A4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E69E0: .4byte 0x0000446c
-_080E69E4: .4byte 0x00009d54
-_080E69E8: .4byte 0x00009cd2
-_080E69EC: .4byte 0x00009cd0
-_080E69F0: .4byte 0x00009cd1
-_080E69F4: .4byte 0x00009d55
- thumb_func_end sub_80E68E8
-
- thumb_func_start sub_80E69F8
-sub_80E69F8: @ 80E69F8
- push {r4,lr}
- ldr r0, _080E6A10 @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0x8]
- adds r4, r0, 0
- cmp r1, 0xD
- bhi _080E6A50
- lsls r0, r1, 2
- ldr r1, _080E6A14 @ =_080E6A18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6A10: .4byte gSharedMem + 0x1000
-_080E6A14: .4byte _080E6A18
- .align 2, 0
-_080E6A18:
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
-_080E6A50:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- b _080E6A66
-_080E6A58:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- bl sub_80E8BF4
-_080E6A66:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E69F8
-
- thumb_func_start sub_80E6A6C
-sub_80E6A6C: @ 80E6A6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_80EAC5C
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80E6A6C
-
- thumb_func_start sub_80E6A88
-sub_80E6A88: @ 80E6A88
- push {lr}
- ldr r0, _080E6AA4 @ =gSharedMem + 0x1000
- ldr r0, [r0, 0x20]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl sub_80EAD08
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AA4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E6A88
-
- thumb_func_start sub_80E6AA8
-sub_80E6AA8: @ 80E6AA8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E6ABA
- ldr r0, _080E6AC0 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6ABA:
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AC0: .4byte sub_80E6AC4
- thumb_func_end sub_80E6AA8
-
- thumb_func_start sub_80E6AC4
-sub_80E6AC4: @ 80E6AC4
- push {lr}
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8398
- movs r0, 0
- bl sub_80E91D4
- ldr r0, _080E6AE0 @ =sub_80E6AE4
- bl sub_80E682C
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AE0: .4byte sub_80E6AE4
- thumb_func_end sub_80E6AC4
-
- thumb_func_start sub_80E6AE4
-sub_80E6AE4: @ 80E6AE4
- push {r4,r5,lr}
- bl sub_80E75D8
- ldr r4, _080E6B44 @ =gSharedMem + 0x1000
- adds r1, r4, 0
- adds r1, 0x87
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080E6AFE
- movs r0, 0x5
- bl PlaySE
-_080E6AFE:
- ldr r2, _080E6B48 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _080E6BA4
- movs r0, 0x5
- bl PlaySE
- adds r1, r4, 0
- adds r1, 0x86
- adds r0, r4, 0
- adds r0, 0x84
- ldrb r2, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E6B78
- adds r0, r4, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080E6B60
- cmp r0, 0x1
- bgt _080E6B4C
- cmp r0, 0
- beq _080E6B52
- b _080E6BA4
- .align 2, 0
-_080E6B44: .4byte gSharedMem + 0x1000
-_080E6B48: .4byte gMain
-_080E6B4C:
- cmp r0, 0x2
- beq _080E6B6C
- b _080E6BA4
-_080E6B52:
- ldr r0, _080E6B5C @ =sub_80E6BC0
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B5C: .4byte sub_80E6BC0
-_080E6B60:
- ldr r0, _080E6B68 @ =sub_80E6C84
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B68: .4byte sub_80E6C84
-_080E6B6C:
- ldr r0, _080E6B74 @ =sub_80E6D7C
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B74: .4byte sub_80E6D7C
-_080E6B78:
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x85
- adds r3, r0, 0
- muls r3, r2
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x27
- strb r0, [r1]
- bl sub_80E7574
- ldr r0, _080E6BA0 @ =sub_80E6F68
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6BA0: .4byte sub_80E6F68
-_080E6BA4:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6BB4
- ldr r0, _080E6BBC @ =sub_80E6C84
- bl sub_80E682C
-_080E6BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6BBC: .4byte sub_80E6C84
- thumb_func_end sub_80E6AE4
-
- thumb_func_start sub_80E6BC0
-sub_80E6BC0: @ 80E6BC0
- push {r4,lr}
- ldr r4, _080E6BD4 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6C12
- cmp r0, 0x1
- bgt _080E6BD8
- cmp r0, 0
- beq _080E6BE2
- b _080E6C76
- .align 2, 0
-_080E6BD4: .4byte gSharedMem + 0x1000
-_080E6BD8:
- cmp r0, 0x2
- beq _080E6C54
- cmp r0, 0x64
- beq _080E6C64
- b _080E6C76
-_080E6BE2:
- movs r0, 0x2
- bl sub_80E8398
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6BFA
- movs r0, 0x6
- bl sub_80E91D4
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6BFA:
- movs r0, 0x2
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- b _080E6C3E
-_080E6C12:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6C32
- cmp r1, 0
- bgt _080E6C2C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6C46
- b _080E6C76
-_080E6C2C:
- cmp r1, 0x1
- beq _080E6C46
- b _080E6C76
-_080E6C32:
- bl sub_80E7D6C
- bl sub_80E98C4
- bl sub_80E95A4
-_080E6C3E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6C46:
- ldr r1, _080E6C50 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6C76
- .align 2, 0
-_080E6C50: .4byte gSharedMem + 0x1000
-_080E6C54:
- bl sub_80E81FC
- ldr r0, _080E6C60 @ =sub_80E6AC4
- bl sub_80E682C
- b _080E6C76
- .align 2, 0
-_080E6C60: .4byte sub_80E6AC4
-_080E6C64:
- ldr r0, _080E6C7C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6C76
- ldr r0, _080E6C80 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6C7C: .4byte gMain
-_080E6C80: .4byte sub_80E6AC4
- thumb_func_end sub_80E6BC0
-
- thumb_func_start sub_80E6C84
-sub_80E6C84: @ 80E6C84
- push {r4,lr}
- ldr r4, _080E6C98 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6CF4
- cmp r0, 0x1
- bgt _080E6C9C
- cmp r0, 0
- beq _080E6CA6
- b _080E6D72
- .align 2, 0
-_080E6C98: .4byte gSharedMem + 0x1000
-_080E6C9C:
- cmp r0, 0x2
- beq _080E6D24
- cmp r0, 0xFF
- beq _080E6D64
- b _080E6D72
-_080E6CA6:
- movs r0, 0x2
- bl sub_80E8398
- movs r0, 0x3
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- ldrb r0, [r4, 0x8]
- cmp r0, 0x9
- beq _080E6CE8
- cmp r0, 0x4
- beq _080E6CE8
- cmp r0, 0x7
- beq _080E6CE8
- cmp r0, 0x8
- beq _080E6CE8
- cmp r0, 0xA
- beq _080E6CE8
- cmp r0, 0xB
- beq _080E6CE8
- cmp r0, 0xC
- beq _080E6CE8
- cmp r0, 0x5
- beq _080E6CE8
- cmp r0, 0xD
- bne _080E6D1C
-_080E6CE8:
- ldr r1, _080E6CF0 @ =gSharedMem + 0x1000
- movs r0, 0x2
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6CF0: .4byte gSharedMem + 0x1000
-_080E6CF4:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D06
- cmp r1, 0
- ble _080E6D34
- b _080E6D3E
-_080E6D06:
- movs r0, 0x4
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
-_080E6D1C:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6D72
-_080E6D24:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D44
- cmp r1, 0
- bgt _080E6D3E
-_080E6D34:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6D58
- b _080E6D72
-_080E6D3E:
- cmp r1, 0x1
- beq _080E6D58
- b _080E6D72
-_080E6D44:
- ldr r0, _080E6D50 @ =gSpecialVar_Result
- strh r1, [r0]
- ldr r0, _080E6D54 @ =sub_80E752C
- bl sub_80E682C
- b _080E6D72
- .align 2, 0
-_080E6D50: .4byte gSpecialVar_Result
-_080E6D54: .4byte sub_80E752C
-_080E6D58:
- ldr r1, _080E6D60 @ =gSharedMem + 0x1000
- movs r0, 0xFF
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6D60: .4byte gSharedMem + 0x1000
-_080E6D64:
- bl HandleDestroyMenuCursors
- bl sub_80E81FC
- ldr r0, _080E6D78 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6D72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6D78: .4byte sub_80E6AC4
- thumb_func_end sub_80E6C84
-
- thumb_func_start sub_80E6D7C
-sub_80E6D7C: @ 80E6D7C
- push {r4-r7,lr}
- ldr r5, _080E6D98 @ =gSharedMem + 0x1000
- ldrh r0, [r5, 0x24]
- cmp r0, 0xA
- bne _080E6D88
- b _080E6F06
-_080E6D88:
- cmp r0, 0xA
- bgt _080E6D9C
- cmp r0, 0
- beq _080E6DB6
- cmp r0, 0x1
- beq _080E6E3C
- b _080E6F5E
- .align 2, 0
-_080E6D98: .4byte gSharedMem + 0x1000
-_080E6D9C:
- cmp r0, 0x65
- bne _080E6DA2
- b _080E6F30
-_080E6DA2:
- cmp r0, 0x65
- bgt _080E6DAE
- cmp r0, 0x64
- bne _080E6DAC
- b _080E6F24
-_080E6DAC:
- b _080E6F5E
-_080E6DAE:
- cmp r0, 0x66
- bne _080E6DB4
- b _080E6F50
-_080E6DB4:
- b _080E6F5E
-_080E6DB6:
- movs r0, 0x2
- bl sub_80E8398
- bl sub_80E8054
- lsls r0, 24
- cmp r0, 0
- beq _080E6DCA
- movs r0, 0x5
- b _080E6DEE
-_080E6DCA:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6DFC
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6DDE
- movs r0, 0x8
- b _080E6DEE
-_080E6DDE:
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6DF8 @ =0x0000ffff
- cmp r0, r1
- beq _080E6DEC
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6DFC
-_080E6DEC:
- movs r0, 0x9
-_080E6DEE:
- bl sub_80E91D4
- movs r0, 0xA
- strh r0, [r5, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6DF8: .4byte 0x0000ffff
-_080E6DFC:
- ldr r0, _080E6E18 @ =gSharedMem + 0x1000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- bne _080E6E20
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6E20
- ldr r0, _080E6E1C @ =sub_80E6C84
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6E18: .4byte gSharedMem + 0x1000
-_080E6E1C: .4byte sub_80E6C84
-_080E6E20:
- movs r0, 0x1
- bl sub_80E91D4
- bl sub_80E9744
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- b _080E6F3C
-_080E6E3C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r6, r0, 24
- cmp r6, 0
- beq _080E6E5C
- cmp r6, 0
- bgt _080E6E56
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- beq _080E6EDC
- b _080E6F5E
-_080E6E56:
- cmp r6, 0x1
- beq _080E6EDC
- b _080E6F5E
-_080E6E5C:
- ldr r7, _080E6EC8 @ =gSpecialVar_Result
- bl sub_80E7FA8
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r0, 31
- strh r0, [r7]
- bl sub_80E7D9C
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _080E6E82
- ldr r4, _080E6ECC @ =gSpecialVar_0x8004
- bl sub_80E8094
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E82:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6E9C
- bl sub_80E81C0
- ldr r4, _080E6ECC @ =gSpecialVar_0x8004
- ldr r1, _080E6ED0 @ =0x00009fa8
- adds r0, r5, r1
- bl sub_80FA364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E9C:
- ldrb r0, [r5, 0x8]
- cmp r0, 0xD
- bne _080E6EBE
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6ED4 @ =0x0000ffff
- cmp r0, r1
- beq _080E6EB0
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6EB2
-_080E6EB0:
- strh r6, [r7]
-_080E6EB2:
- ldr r4, _080E6ECC @ =gSpecialVar_0x8004
- bl sub_80E810C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6EBE:
- ldr r0, _080E6ED8 @ =sub_80E752C
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6EC8: .4byte gSpecialVar_Result
-_080E6ECC: .4byte gSpecialVar_0x8004
-_080E6ED0: .4byte 0x00009fa8
-_080E6ED4: .4byte 0x0000ffff
-_080E6ED8: .4byte sub_80E752C
-_080E6EDC:
- bl HandleDestroyMenuCursors
- bl sub_80E81FC
- ldr r4, _080E6EFC @ =gSharedMem + 0x1000
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6F00
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6F00
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6EFC: .4byte gSharedMem + 0x1000
-_080E6F00:
- bl sub_80E95A4
- b _080E6F12
-_080E6F06:
- ldr r0, _080E6F1C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F12:
- ldr r0, _080E6F20 @ =sub_80E6AC4
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6F1C: .4byte gMain
-_080E6F20: .4byte sub_80E6AC4
-_080E6F24:
- movs r0, 0x7
- bl sub_80E91D4
- ldrh r0, [r5, 0x24]
- adds r0, 0x1
- strh r0, [r5, 0x24]
-_080E6F30:
- ldr r0, _080E6F48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F3C:
- ldr r1, _080E6F4C @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6F48: .4byte gMain
-_080E6F4C: .4byte gSharedMem + 0x1000
-_080E6F50:
- bl sub_80E7E50
- bl sub_80E95A4
- ldr r0, _080E6F64 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6F5E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6F64: .4byte sub_80E6AC4
- thumb_func_end sub_80E6D7C
-
- thumb_func_start sub_80E6F68
-sub_80E6F68: @ 80E6F68
- push {r4,lr}
- ldr r4, _080E6F78 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- cmp r0, 0
- beq _080E6F7C
- cmp r0, 0x1
- beq _080E6F9C
- b _080E6FBC
- .align 2, 0
-_080E6F78: .4byte gSharedMem + 0x1000
-_080E6F7C:
- movs r0, 0x1
- bl sub_80E8398
- movs r0, 0xA
- bl sub_80E91D4
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6FBC
-_080E6F9C:
- bl sub_80E9EA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6FBC
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E6FC4 @ =sub_80E6FC8
- bl sub_80E682C
-_080E6FBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6FC4: .4byte sub_80E6FC8
- thumb_func_end sub_80E6F68
-
- thumb_func_start sub_80E6FC8
-sub_80E6FC8: @ 80E6FC8
- push {r4,lr}
- bl sub_80E77C8
- adds r1, r0, 0
- ldr r4, _080E7000 @ =gSharedMem + 0x1000
- adds r0, r4, 0
- adds r0, 0x96
- strb r1, [r0]
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E700C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E7004 @ =sub_80E6FC8
- str r1, [r0]
- ldr r0, _080E7008 @ =sub_80E7458
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E7000: .4byte gSharedMem + 0x1000
-_080E7004: .4byte sub_80E6FC8
-_080E7008: .4byte sub_80E7458
-_080E700C:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E7018
- movs r0, 0x5
- bl PlaySE
-_080E7018:
- ldr r0, _080E7054 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E70E8
- ldr r2, _080E7058 @ =0x000001b7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7090
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- beq _080E7070
- cmp r0, 0x2
- bgt _080E705C
- cmp r0, 0x1
- beq _080E7062
- b _080E710A
- .align 2, 0
-_080E7054: .4byte gMain
-_080E7058: .4byte 0x000001b7
-_080E705C:
- cmp r0, 0x3
- beq _080E70F0
- b _080E710A
-_080E7062:
- ldr r0, _080E706C @ =sub_80E718C
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E706C: .4byte sub_80E718C
-_080E7070:
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- beq _080E710A
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- ldr r1, _080E708C @ =0x0000ffff
- bl sub_80E7F00
- bl sub_80E7574
- bl sub_80E95A4
- b _080E710A
- .align 2, 0
-_080E708C: .4byte 0x0000ffff
-_080E7090:
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E70CA
- ldr r2, _080E70DC @ =0x000001a9
- adds r0, r4, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r4, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 1
- ldr r2, _080E70E0 @ =0x0000446c
- adds r1, r4, r2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080E710A
-_080E70CA:
- movs r0, 0x5
- bl PlaySE
- bl sub_80E7AD4
- ldr r0, _080E70E4 @ =sub_80E7218
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70DC: .4byte 0x000001a9
-_080E70E0: .4byte 0x0000446c
-_080E70E4: .4byte sub_80E7218
-_080E70E8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E70FC
-_080E70F0:
- ldr r0, _080E70F8 @ =sub_80E7114
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70F8: .4byte sub_80E7114
-_080E70FC:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E710A
- ldr r0, _080E7110 @ =sub_80E718C
- bl sub_80E682C
-_080E710A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7110: .4byte sub_80E718C
- thumb_func_end sub_80E6FC8
-
- thumb_func_start sub_80E7114
-sub_80E7114: @ 80E7114
- push {lr}
- ldr r0, _080E712C @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E7182
- lsls r0, r1, 2
- ldr r1, _080E7130 @ =_080E7134
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E712C: .4byte gSharedMem + 0x1000
-_080E7130: .4byte _080E7134
- .align 2, 0
-_080E7134:
- .4byte _080E7148
- .4byte _080E715C
- .4byte _080E715C
- .4byte _080E7164
- .4byte _080E717C
-_080E7148:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8D8C
- b _080E716E
-_080E715C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E7182
-_080E7164:
- bl sub_80E9F50
- lsls r0, 24
- cmp r0, 0
- beq _080E7182
-_080E716E:
- ldr r1, _080E7178 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7182
- .align 2, 0
-_080E7178: .4byte gSharedMem + 0x1000
-_080E717C:
- ldr r0, _080E7188 @ =sub_80E6AC4
- bl sub_80E682C
-_080E7182:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7188: .4byte sub_80E6AC4
- thumb_func_end sub_80E7114
-
- thumb_func_start sub_80E718C
-sub_80E718C: @ 80E718C
- push {r4,lr}
- ldr r0, _080E71A4 @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r4, r0, 0
- cmp r1, 0x1
- beq _080E71C6
- cmp r1, 0x1
- bgt _080E71A8
- cmp r1, 0
- beq _080E71AE
- b _080E71EC
- .align 2, 0
-_080E71A4: .4byte gSharedMem + 0x1000
-_080E71A8:
- cmp r1, 0x8
- beq _080E71F4
- b _080E71EC
-_080E71AE:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- bl sub_80E8D54
- b _080E720E
-_080E71C6:
- bl sub_80E9FD4
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- movs r2, 0
- adds r1, r4, 0
- adds r1, 0x26
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E71DE
- movs r2, 0x1
-_080E71DE:
- strb r2, [r1]
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
-_080E71EC:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E720E
-_080E71F4:
- bl sub_80EA014
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E7214 @ =sub_80E6FC8
- bl sub_80E682C
-_080E720E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7214: .4byte sub_80E6FC8
- thumb_func_end sub_80E718C
-
- thumb_func_start sub_80E7218
-sub_80E7218: @ 80E7218
- push {r4,lr}
- ldr r4, _080E7230 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- adds r1, r4, 0
- cmp r0, 0x9
- beq _080E7260
- cmp r0, 0x9
- bgt _080E7234
- cmp r0, 0x8
- beq _080E7244
- b _080E723C
- .align 2, 0
-_080E7230: .4byte gSharedMem + 0x1000
-_080E7234:
- cmp r0, 0xA
- beq _080E7276
- cmp r0, 0xB
- beq _080E7288
-_080E723C:
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7288
-_080E7244:
- movs r0, 0
- bl sub_80E8D8C
- bl sub_80E8504
- bl sub_80E9AD4
- bl sub_80E68E8
- bl sub_80E88F0
- bl sub_80E9E98
- b _080E726E
-_080E7260:
- bl sub_80EA050
- lsls r0, 24
- cmp r0, 0
- beq _080E7288
- bl sub_80E9C94
-_080E726E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7288
-_080E7276:
- movs r0, 0x1
- bl sub_80E87CC
- movs r0, 0x1
- bl sub_80E8958
- ldr r0, _080E7290 @ =sub_80E7294
- bl sub_80E682C
-_080E7288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7290: .4byte sub_80E7294
- thumb_func_end sub_80E7218
-
- thumb_func_start sub_80E7294
-sub_80E7294: @ 80E7294
- push {r4,lr}
- bl sub_80E7B40
- adds r1, r0, 0
- ldr r4, _080E72CC @ =gSharedMem + 0x1000
- ldr r2, _080E72D0 @ =0x000001b9
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, 0x7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E72DC
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E72D4 @ =sub_80E7294
- str r1, [r0]
- ldr r0, _080E72D8 @ =sub_80E7458
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E72CC: .4byte gSharedMem + 0x1000
-_080E72D0: .4byte 0x000001b9
-_080E72D4: .4byte sub_80E7294
-_080E72D8: .4byte sub_80E7458
-_080E72DC:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E72E8
- movs r0, 0x5
- bl PlaySE
-_080E72E8:
- ldr r0, _080E7304 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E730C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080E7308 @ =sub_80E7324
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E7304: .4byte gMain
-_080E7308: .4byte sub_80E7324
-_080E730C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E731A
- ldr r0, _080E7320 @ =sub_80E73D0
- bl sub_80E682C
-_080E731A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7320: .4byte sub_80E73D0
- thumb_func_end sub_80E7294
-
- thumb_func_start sub_80E7324
-sub_80E7324: @ 80E7324
- push {lr}
- ldr r0, _080E733C @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E73C6
- lsls r0, r1, 2
- ldr r1, _080E7340 @ =_080E7344
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E733C: .4byte gSharedMem + 0x1000
-_080E7340: .4byte _080E7344
- .align 2, 0
-_080E7344:
- .4byte _080E7358
- .4byte _080E737C
- .4byte _080E7384
- .4byte _080E738A
- .4byte _080E73A4
-_080E7358:
- bl sub_80E7DD0
- lsls r0, 24
- cmp r0, 0
- bne _080E7370
- ldr r0, _080E736C @ =sub_80E7294
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E736C: .4byte sub_80E7294
-_080E7370:
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E87CC
- b _080E7394
-_080E737C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E73C6
-_080E7384:
- bl sub_80E9E98
- b _080E7394
-_080E738A:
- bl sub_80EA184
- lsls r0, 24
- cmp r0, 0
- beq _080E73C6
-_080E7394:
- ldr r1, _080E73A0 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E73C6
- .align 2, 0
-_080E73A0: .4byte gSharedMem + 0x1000
-_080E73A4:
- ldrb r0, [r2, 0x8]
- cmp r0, 0x6
- bne _080E73C0
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E73C0
- ldr r0, _080E73BC @ =sub_80E6D7C
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E73BC: .4byte sub_80E6D7C
-_080E73C0:
- ldr r0, _080E73CC @ =sub_80E6AC4
- bl sub_80E682C
-_080E73C6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E73CC: .4byte sub_80E6AC4
- thumb_func_end sub_80E7324
-
- thumb_func_start sub_80E73D0
-sub_80E73D0: @ 80E73D0
- push {lr}
- ldr r0, _080E73E4 @ =gSharedMem + 0x1000
- ldrh r0, [r0, 0x24]
- cmp r0, 0x4
- bhi _080E744E
- lsls r0, 2
- ldr r1, _080E73E8 @ =_080E73EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E73E4: .4byte gSharedMem + 0x1000
-_080E73E8: .4byte _080E73EC
- .align 2, 0
-_080E73EC:
- .4byte _080E7400
- .4byte _080E740C
- .4byte _080E7416
- .4byte _080E742C
- .4byte _080E7444
-_080E7400:
- movs r0, 0
- bl sub_80E87CC
- bl sub_80E88F0
- b _080E7436
-_080E740C:
- bl sub_80E9AD4
- bl sub_80E9E98
- b _080E7436
-_080E7416:
- bl sub_80EA0E4
- lsls r0, 24
- cmp r0, 0
- beq _080E744E
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E9A14
- b _080E7436
-_080E742C:
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
-_080E7436:
- ldr r1, _080E7440 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E744E
- .align 2, 0
-_080E7440: .4byte gSharedMem + 0x1000
-_080E7444:
- bl sub_80E9974
- ldr r0, _080E7454 @ =sub_80E6FC8
- bl sub_80E682C
-_080E744E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7454: .4byte sub_80E6FC8
- thumb_func_end sub_80E73D0
-
- thumb_func_start sub_80E7458
-sub_80E7458: @ 80E7458
- push {r4,r5,lr}
- ldr r4, _080E7468 @ =gSharedMem + 0x1000
- ldrh r5, [r4, 0x24]
- cmp r5, 0
- beq _080E746C
- cmp r5, 0x1
- beq _080E74A4
- b _080E7518
- .align 2, 0
-_080E7468: .4byte gSharedMem + 0x1000
-_080E746C:
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E7480 @ =sub_80E6FC8
- cmp r1, r0
- bne _080E7484
- bl sub_80E9D7C
- b _080E7488
- .align 2, 0
-_080E7480: .4byte sub_80E6FC8
-_080E7484:
- bl sub_80E9D00
-_080E7488:
- ldr r4, _080E74A0 @ =gSharedMem + 0x1000
- movs r2, 0xDF
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80E9E08
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7518
- .align 2, 0
-_080E74A0: .4byte gSharedMem + 0x1000
-_080E74A4:
- bl sub_80E9E54
- lsls r0, 24
- cmp r0, 0
- beq _080E7518
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E74DC @ =sub_80E6FC8
- cmp r1, r0
- bne _080E74E4
- bl sub_80E9D7C
- ldr r2, _080E74E0 @ =0x000001b5
- adds r1, r4, r2
- adds r2, 0xB
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7A98
- adds r0, r4, 0
- adds r0, 0x96
- b _080E74FE
- .align 2, 0
-_080E74DC: .4byte sub_80E6FC8
-_080E74E0: .4byte 0x000001b5
-_080E74E4:
- ldr r0, _080E7520 @ =0x00009d55
- adds r1, r4, r0
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7D30
- ldr r1, _080E7524 @ =0x000001b9
- adds r0, r4, r1
-_080E74FE:
- strb r5, [r0]
- ldr r1, _080E7528 @ =gSharedMem + 0x1000
- movs r0, 0xDF
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0x2
- strb r0, [r2]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- bl sub_80E682C
-_080E7518:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7520: .4byte 0x00009d55
-_080E7524: .4byte 0x000001b9
-_080E7528: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7458
-
- thumb_func_start sub_80E752C
-sub_80E752C: @ 80E752C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080E7540 @ =gSharedMem + 0x1000
- ldrh r1, [r4, 0x24]
- cmp r1, 0
- beq _080E7544
- cmp r1, 0x1
- beq _080E755C
- b _080E756C
- .align 2, 0
-_080E7540: .4byte gSharedMem + 0x1000
-_080E7544:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E756C
-_080E755C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E756C
- ldr r0, [r4]
- bl SetMainCallback2
-_080E756C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E752C
-
- thumb_func_start sub_80E7574
-sub_80E7574: @ 80E7574
- push {r4,r5,lr}
- ldr r4, _080E75B8 @ =gSharedMem + 0x1000
- ldrb r5, [r4, 0x8]
- cmp r5, 0x1
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r4, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- lsls r0, 1
- subs r1, 0x72
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- beq _080E75BC
- adds r0, r4, 0
- adds r0, 0x7D
- strb r5, [r0]
- adds r1, r4, 0
- b _080E75C6
- .align 2, 0
-_080E75B8: .4byte gSharedMem + 0x1000
-_080E75BC:
- ldr r1, _080E75D4 @ =gSharedMem + 0x1000
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0
- strb r0, [r2]
-_080E75C6:
- adds r1, 0x7D
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E75D4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7574
-
- thumb_func_start sub_80E75D8
-sub_80E75D8: @ 80E75D8
- push {r4-r6,lr}
- movs r4, 0
- ldr r2, _080E75FC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7604
- ldr r1, _080E7600 @ =gSharedMem + 0x1000
- adds r0, r1, 0
- adds r0, 0x84
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x86
- strb r0, [r2]
- adds r1, 0x85
- movs r0, 0x2
- b _080E768E
- .align 2, 0
-_080E75FC: .4byte gMain
-_080E7600: .4byte gSharedMem + 0x1000
-_080E7604:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E7630
- ldr r2, _080E762C @ =gSharedMem + 0x1000
- adds r1, r2, 0
- adds r1, 0x86
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E765C
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- strb r0, [r1]
- b _080E765C
- .align 2, 0
-_080E762C: .4byte gSharedMem + 0x1000
-_080E7630:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E7658
- ldr r0, _080E7684 @ =gSharedMem + 0x1000
- adds r3, r0, 0
- adds r3, 0x86
- ldrb r1, [r3]
- adds r1, 0x1
- strb r1, [r3]
- adds r0, 0x84
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- ble _080E7656
- strb r4, [r3]
-_080E7656:
- movs r4, 0x1
-_080E7658:
- cmp r4, 0
- beq _080E76EA
-_080E765C:
- ldr r2, _080E7684 @ =gSharedMem + 0x1000
- ldrb r3, [r2, 0x9]
- cmp r3, 0x2
- bne _080E7692
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7688
- adds r0, r2, 0
- adds r0, 0x85
- strb r3, [r0]
- b _080E77BC
- .align 2, 0
-_080E7684: .4byte gSharedMem + 0x1000
-_080E7688:
- adds r1, r2, 0
- adds r1, 0x85
- movs r0, 0
-_080E768E:
- strb r0, [r1]
- b _080E77BC
-_080E7692:
- movs r0, 0x85
- adds r0, r2
- mov r12, r0
- adds r4, r2, 0
- adds r4, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrb r3, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _080E76B0
- subs r0, r3, 0x1
- mov r1, r12
- strb r0, [r1]
-_080E76B0:
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r3, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- beq _080E77BC
- ldrb r0, [r4]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, 0
- mov r5, r12
- ldrb r5, [r5]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
- mov r6, r12
- strb r0, [r6]
- b _080E77BC
-_080E76EA:
- ldrh r2, [r2, 0x30]
- movs r0, 0x20
- ands r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080E7744
- ldr r2, _080E7728 @ =gSharedMem + 0x1000
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bge _080E77BC
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r4, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E772C
- movs r0, 0x2
- b _080E77BA
- .align 2, 0
-_080E7728: .4byte gSharedMem + 0x1000
-_080E772C:
- adds r0, r2, 0
- adds r0, 0x83
- ldrb r0, [r0]
- subs r1, r0, 0x1
- strb r1, [r3]
- adds r5, r4, 0
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0
- lsls r1, 24
- lsrs r0, r1, 24
- b _080E77B2
-_080E7744:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080E77C0
- ldr r2, _080E777C @ =gSharedMem + 0x1000
- adds r5, r2, 0
- adds r5, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- movs r1, 0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7780
- adds r1, r2, 0
- adds r1, 0x85
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- ble _080E77BC
- strb r4, [r1]
- b _080E77BC
- .align 2, 0
-_080E777C: .4byte gSharedMem + 0x1000
-_080E7780:
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r6, 0x83
- adds r6, r2
- mov r12, r6
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- blt _080E779E
- strb r4, [r3]
-_080E779E:
- ldrb r1, [r5]
- mov r4, r12
- ldrb r0, [r4]
- adds r5, r0, 0
- muls r5, r1
- adds r0, r5, 0
- ldrb r6, [r3]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
-_080E77B2:
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
-_080E77BA:
- strb r0, [r3]
-_080E77BC:
- movs r0, 0x1
- b _080E77C2
-_080E77C0:
- movs r0, 0
-_080E77C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E75D8
-
- thumb_func_start sub_80E77C8
-sub_80E77C8: @ 80E77C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r1, _080E780C @ =gSharedMem + 0x1000
- ldr r2, _080E7810 @ =0x000001b7
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r1, 0
- cmp r0, 0
- beq _080E783E
- ldr r1, _080E7814 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7818
- movs r4, 0xD4
- lsls r4, 1
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- ble _080E7806
- b _080E7948
-_080E7806:
- movs r0, 0x3
- strb r0, [r1]
- b _080E7948
- .align 2, 0
-_080E780C: .4byte gSharedMem + 0x1000
-_080E7810: .4byte 0x000001b7
-_080E7814: .4byte gMain
-_080E7818:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- bne _080E7822
- b _080E7950
-_080E7822:
- movs r5, 0xD4
- lsls r5, 1
- adds r1, r3, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080E7838
- b _080E7948
-_080E7838:
- movs r0, 0x1
- strb r0, [r1]
- b _080E7948
-_080E783E:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E789A
- movs r4, 0
- ldr r1, _080E7870 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7874
- movs r6, 0xD4
- lsls r6, 1
- adds r1, r3, r6
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E7944
- movs r0, 0x3
- strb r0, [r1]
- b _080E7944
- .align 2, 0
-_080E7870: .4byte gMain
-_080E7874:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E7894
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E7892
- strb r7, [r1]
-_080E7892:
- movs r4, 0x1
-_080E7894:
- cmp r4, 0
- beq _080E7950
- b _080E7944
-_080E789A:
- movs r4, 0
- movs r1, 0xE0
- lsls r1, 1
- adds r5, r3, r1
- strb r7, [r5]
- ldr r1, _080E78E0 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E78E8
- movs r2, 0xD4
- lsls r2, 1
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E78C4
- b _080E7A88
-_080E78C4:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E78E4 @ =0x000001b5
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7932
- movs r0, 0xFF
- strb r0, [r5]
- b _080E7932
- .align 2, 0
-_080E78E0: .4byte gMain
-_080E78E4: .4byte 0x000001b5
-_080E78E8:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E792E
- movs r0, 0xD4
- lsls r0, 1
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- movs r4, 0xDB
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E790E
- b _080E7A88
-_080E790E:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E794C @ =0x000001b5
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x3
- cmp r1, r0
- ble _080E792C
- movs r0, 0x1
- strb r0, [r5]
-_080E792C:
- movs r4, 0x1
-_080E792E:
- cmp r4, 0
- beq _080E7950
-_080E7932:
- movs r4, 0xE0
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7944
- b _080E7A88
-_080E7944:
- bl sub_80E7A98
-_080E7948:
- movs r0, 0x1
- b _080E7A8A
- .align 2, 0
-_080E794C: .4byte 0x000001b5
-_080E7950:
- ldrh r1, [r6, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _080E7992
- ldr r5, _080E7974 @ =0x000001a9
- adds r2, r3, r5
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080E7978
- subs r0, r1, 0x1
- strb r0, [r2]
- b _080E79E6
- .align 2, 0
-_080E7974: .4byte 0x000001a9
-_080E7978:
- movs r6, 0xD4
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r4, 0xD5
- lsls r4, 1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- b _080E79E6
-_080E7992:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E79E2
- ldr r5, _080E79D4 @ =0x000001b7
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E79CC
- ldr r0, _080E79D8 @ =0x000001a9
- adds r4, r3, r0
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD5
- lsls r2, 1
- adds r0, r3, r2
- adds r1, r0
- ldrb r5, [r4]
- movs r2, 0
- ldrsb r2, [r4, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E79DC
-_080E79CC:
- ldr r4, _080E79D8 @ =0x000001a9
- adds r0, r3, r4
- strb r6, [r0]
- b _080E79E0
- .align 2, 0
-_080E79D4: .4byte 0x000001b7
-_080E79D8: .4byte 0x000001a9
-_080E79DC:
- adds r0, r5, 0x1
- strb r0, [r4]
-_080E79E0:
- movs r7, 0x1
-_080E79E2:
- cmp r7, 0
- beq _080E7A88
-_080E79E6:
- adds r2, r3, 0
- ldr r5, _080E7A48 @ =0x000001b7
- adds r7, r2, r5
- ldrb r6, [r7]
- mov r9, r6
- movs r1, 0
- ldr r0, _080E7A4C @ =0x000001a9
- adds r0, r2
- mov r12, r0
- subs r5, 0xF
- adds r4, r2, r5
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r6, 0xD5
- lsls r6, 1
- adds r6, r2
- mov r8, r6
- add r0, r8
- mov r6, r12
- movs r5, 0
- ldrsb r5, [r6, r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E7A1C
- movs r1, 0x1
-_080E7A1C:
- strb r1, [r7]
- cmp r1, 0
- beq _080E7A58
- ldr r0, _080E7A50 @ =0x000001b5
- adds r1, r2, r0
- ldrb r0, [r4]
- ldrb r1, [r1]
- subs r0, r1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- beq _080E7A36
- b _080E7948
-_080E7A36:
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080E7A54 @ =0x000001ab
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r2, r12
- strb r0, [r2]
- b _080E7948
- .align 2, 0
-_080E7A48: .4byte 0x000001b7
-_080E7A4C: .4byte 0x000001a9
-_080E7A50: .4byte 0x000001b5
-_080E7A54: .4byte 0x000001ab
-_080E7A58:
- mov r6, r9
- cmp r6, 0
- bne _080E7A60
- b _080E7948
-_080E7A60:
- ldr r1, _080E7A84 @ =0x000001b5
- adds r0, r3, r1
- ldrb r0, [r0]
- ldrb r2, [r4]
- adds r0, r2
- strb r0, [r4]
- cmp r5, 0
- bne _080E7A72
- b _080E7948
-_080E7A72:
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r0, r8
- ldrb r0, [r0]
- subs r0, 0x1
- mov r4, r12
- strb r0, [r4]
- b _080E7948
- .align 2, 0
-_080E7A84: .4byte 0x000001b5
-_080E7A88:
- movs r0, 0
-_080E7A8A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E77C8
-
- thumb_func_start sub_80E7A98
-sub_80E7A98: @ 80E7A98
- push {lr}
- ldr r1, _080E7ACC @ =gSharedMem + 0x1000
- ldr r0, _080E7AD0 @ =0x000001a9
- adds r3, r1, r0
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0x2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r3, r1]
- ldrb r2, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080E7AC6
- subs r0, r2, 0x1
- strb r0, [r3]
-_080E7AC6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7ACC: .4byte gSharedMem + 0x1000
-_080E7AD0: .4byte 0x000001a9
- thumb_func_end sub_80E7A98
-
- thumb_func_start sub_80E7AD4
-sub_80E7AD4: @ 80E7AD4
- push {lr}
- ldr r3, _080E7B08 @ =gSharedMem + 0x1000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7B10
- ldr r1, _080E7B0C @ =0x000001a9
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x2A
- adds r1, r0
- ldrb r1, [r1]
- adds r2, 0x10
- b _080E7B34
- .align 2, 0
-_080E7B08: .4byte gSharedMem + 0x1000
-_080E7B0C: .4byte 0x000001a9
-_080E7B10:
- ldr r1, _080E7B3C @ =0x000001a9
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r1, 0x1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r3, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r1, [r2]
- movs r2, 0xDC
- lsls r2, 1
-_080E7B34:
- adds r0, r3, r2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B3C: .4byte 0x000001a9
- thumb_func_end sub_80E7AD4
-
- thumb_func_start sub_80E7B40
-sub_80E7B40: @ 80E7B40
- push {r4-r7,lr}
- movs r5, 0
- ldr r2, _080E7B8C @ =gSharedMem + 0x1000
- movs r0, 0xE0
- lsls r0, 1
- adds r6, r2, r0
- strb r5, [r6]
- ldr r1, _080E7B90 @ =gMain
- ldrh r4, [r1, 0x30]
- movs r0, 0x40
- ands r0, r4
- adds r3, r2, 0
- adds r7, r1, 0
- cmp r0, 0
- beq _080E7B9C
- ldr r2, _080E7B94 @ =0x00009cd0
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E7B6E
- b _080E7D1A
-_080E7B6E:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E7B98 @ =0x00009d55
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7BF2
- movs r0, 0xFF
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7B8C: .4byte gSharedMem + 0x1000
-_080E7B90: .4byte gMain
-_080E7B94: .4byte 0x00009cd0
-_080E7B98: .4byte 0x00009d55
-_080E7B9C:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _080E7BEE
- ldr r0, _080E7BE0 @ =0x00009cd0
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r4, _080E7BE4 @ =0x00009d54
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E7BBE
- b _080E7D1A
-_080E7BBE:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E7BE8 @ =0x00009d55
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- cmp r1, r0
- blt _080E7BEC
- movs r0, 0x1
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7BE0: .4byte 0x00009cd0
-_080E7BE4: .4byte 0x00009d54
-_080E7BE8: .4byte 0x00009d55
-_080E7BEC:
- movs r5, 0x1
-_080E7BEE:
- cmp r5, 0
- beq _080E7BFA
-_080E7BF2:
- bl sub_80E7D30
-_080E7BF6:
- movs r0, 0x1
- b _080E7D1C
-_080E7BFA:
- ldrh r1, [r7, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080E7C38
- ldr r4, _080E7C30 @ =0x00009cd1
- adds r2, r3, r4
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bge _080E7BF6
- ldr r6, _080E7C34 @ =0x00009cd0
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, 0x1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r2]
- b _080E7BF6
- .align 2, 0
-_080E7C30: .4byte 0x00009cd1
-_080E7C34: .4byte 0x00009cd0
-_080E7C38:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7C70
- ldr r6, _080E7C68 @ =0x00009cd1
- adds r4, r3, r6
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r2, _080E7C6C @ =0x00009cd0
- adds r1, r3, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r6, 0x1
- adds r1, r3, r6
- adds r2, r1
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r2, r1]
- cmp r0, r1
- blt _080E7BF6
- strb r5, [r4]
- b _080E7BF6
- .align 2, 0
-_080E7C68: .4byte 0x00009cd1
-_080E7C6C: .4byte 0x00009cd0
-_080E7C70:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7CC4
- ldr r1, _080E7CBC @ =0x00009d55
- adds r0, r3, r1
- ldrb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7CA2
- negs r0, r1
- movs r4, 0xE0
- lsls r4, 1
- adds r2, r3, r4
- strb r0, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E7CA2
- strb r1, [r2]
-_080E7CA2:
- ldr r6, _080E7CC0 @ =0x00009cd0
- adds r1, r3, r6
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- ldrb r4, [r1]
- adds r0, r4
- strb r0, [r1]
- movs r6, 0xDF
- lsls r6, 1
- adds r1, r3, r6
- b _080E7D16
- .align 2, 0
-_080E7CBC: .4byte 0x00009d55
-_080E7CC0: .4byte 0x00009cd0
-_080E7CC4:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E7D1A
- ldr r0, _080E7D24 @ =0x00009d55
- adds r4, r3, r0
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r6, _080E7D28 @ =0x00009d54
- adds r2, r3, r6
- movs r0, 0
- ldrsb r0, [r2, r0]
- subs r0, 0x4
- cmp r1, r0
- bge _080E7CFE
- ldrb r1, [r4]
- adds r1, 0x4
- ldrb r0, [r2]
- subs r0, r1
- movs r2, 0xE0
- lsls r2, 1
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _080E7CFE
- movs r0, 0x4
- strb r0, [r1]
-_080E7CFE:
- ldr r4, _080E7D2C @ =0x00009cd0
- adds r1, r3, r4
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- movs r4, 0xDF
- lsls r4, 1
- adds r1, r3, r4
-_080E7D16:
- movs r0, 0x4
- strb r0, [r1]
-_080E7D1A:
- movs r0, 0
-_080E7D1C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7D24: .4byte 0x00009d55
-_080E7D28: .4byte 0x00009d54
-_080E7D2C: .4byte 0x00009cd0
- thumb_func_end sub_80E7B40
-
- thumb_func_start sub_80E7D30
-sub_80E7D30: @ 80E7D30
- push {r4,lr}
- ldr r0, _080E7D60 @ =gSharedMem + 0x1000
- ldr r1, _080E7D64 @ =0x00009cd1
- adds r4, r0, r1
- ldr r2, _080E7D68 @ =0x00009cd0
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r2, 0x2
- adds r0, r2
- adds r1, r0
- movs r2, 0
- ldrsb r2, [r4, r2]
- ldrb r3, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- blt _080E7D5A
- subs r0, r3, 0x1
- strb r0, [r4]
-_080E7D5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D60: .4byte gSharedMem + 0x1000
-_080E7D64: .4byte 0x00009cd1
-_080E7D68: .4byte 0x00009cd0
- thumb_func_end sub_80E7D30
-
- thumb_func_start sub_80E7D6C
-sub_80E7D6C: @ 80E7D6C
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _080E7D94 @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0xA]
- cmp r4, r1
- bcs _080E7D8E
- adds r5, r0, 0
-_080E7D7A:
- adds r0, r4, 0
- ldr r1, _080E7D98 @ =0x0000ffff
- bl sub_80E7F00
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r5, 0xA]
- cmp r4, r0
- bcc _080E7D7A
-_080E7D8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D94: .4byte gSharedMem + 0x1000
-_080E7D98: .4byte 0x0000ffff
- thumb_func_end sub_80E7D6C
-
- thumb_func_start sub_80E7D9C
-sub_80E7D9C: @ 80E7D9C
- push {r4,r5,lr}
- movs r2, 0
- ldr r0, _080E7DCC @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0xA]
- cmp r2, r1
- bcs _080E7DC6
- adds r3, r0, 0
- ldr r4, [r3, 0x4]
- adds r5, r3, 0
- adds r5, 0xC
-_080E7DB0:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r5
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r3, 0xA]
- cmp r2, r0
- bcc _080E7DB0
-_080E7DC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7DCC: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7D9C
-
- thumb_func_start sub_80E7DD0
-sub_80E7DD0: @ 80E7DD0
- push {r4,lr}
- ldr r2, _080E7E28 @ =gSharedMem + 0x1000
- ldr r1, _080E7E2C @ =0x00009cd1
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- ldr r3, _080E7E30 @ =0x00009cd0
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r1, r0
- adds r3, 0x86
- adds r0, r2, r3
- adds r1, r0
- ldrh r4, [r1]
- adds r0, r2, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E7E34
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r2, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080E7E34
- adds r0, r4, 0
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bne _080E7E34
- movs r0, 0
- b _080E7E46
- .align 2, 0
-_080E7E28: .4byte gSharedMem + 0x1000
-_080E7E2C: .4byte 0x00009cd1
-_080E7E30: .4byte 0x00009cd0
-_080E7E34:
- ldr r0, _080E7E4C @ =gSharedMem + 0x1000
- adds r0, 0x27
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80E7F00
- bl sub_80E95A4
- movs r0, 0x1
-_080E7E46:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7E4C: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7DD0
-
- thumb_func_start sub_80E7E50
-sub_80E7E50: @ 80E7E50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r5, 0
- movs r2, 0
- ldr r1, _080E7EF0 @ =gSharedMem + 0x1000
- adds r3, r1, 0
- adds r3, 0x84
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r2, r0
- bge _080E7EDE
- mov r8, r1
- adds r0, r1, 0
- str r0, [sp]
-_080E7E74:
- mov r0, r8
- adds r0, 0x7E
- adds r0, r2, r0
- movs r1, 0
- strb r1, [r0]
- movs r3, 0
- ldr r6, _080E7EF4 @ =gSharedMem + 0x1083
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- cmp r3, r0
- bge _080E7ECE
- ldr r6, [sp]
- mov r12, r6
- movs r0, 0
- mov r10, r0
- ldr r1, _080E7EF4 @ =gSharedMem + 0x1083
- mov r9, r1
- ldr r7, _080E7EF8 @ =gSharedMem + 0x100C
- lsls r4, r2, 1
-_080E7E9E:
- lsls r1, r5, 1
- adds r2, r1, r7
- mov r6, r12
- ldr r0, [r6, 0x4]
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- adds r0, r3, r4
- mov r1, r12
- adds r1, 0x8C
- adds r0, r1
- mov r1, r10
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- mov r6, r9
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r3, r0
- blt _080E7E9E
-_080E7ECE:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r6, _080E7EFC @ =gSharedMem + 0x1084
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080E7E74
-_080E7EDE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7EF0: .4byte gSharedMem + 0x1000
-_080E7EF4: .4byte gSharedMem + 0x1083
-_080E7EF8: .4byte gSharedMem + 0x100C
-_080E7EFC: .4byte gSharedMem + 0x1084
- thumb_func_end sub_80E7E50
-
- thumb_func_start sub_80E7F00
-sub_80E7F00: @ 80E7F00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r7, _080E7F68 @ =gSharedMem + 0x1000
- adds r0, r7, 0
- adds r0, 0x83
- movs r4, 0
- ldrsb r4, [r0, r4]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, r6, 1
- adds r1, r7, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r9
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r4, 0x7
- bne _080E7F6C
- cmp r3, 0x7
- beq _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- subs r0, 0x1
- b _080E7F7A
- .align 2, 0
-_080E7F68: .4byte gSharedMem + 0x1000
-_080E7F6C:
- cmp r3, 0x7
- bne _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- adds r0, 0x1
-_080E7F7A:
- strb r0, [r1]
-_080E7F7C:
- movs r3, 0
- ldr r2, _080E7FA4 @ =gSharedMem + 0x1000
- lsls r0, r5, 1
- add r0, r8
- adds r1, r2, 0
- adds r1, 0x8C
- adds r0, r1
- strb r3, [r0]
- lsls r0, r6, 1
- adds r2, 0xC
- adds r0, r2
- mov r1, r9
- strh r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7FA4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7F00
-
- thumb_func_start sub_80E7FA8
-sub_80E7FA8: @ 80E7FA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _080E8040 @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0xA]
- cmp r8, r1
- bcs _080E802E
- ldr r3, _080E8044 @ =0x0000a140
- adds r6, r0, r3
- ldr r1, _080E8048 @ =0x0000a16d
- adds r1, r0
- mov r9, r1
-_080E7FC8:
- ldr r3, _080E804C @ =0xffff5ec0
- adds r7, r6, r3
- ldr r0, [r7, 0x4]
- lsls r4, r5, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r1, _080E8050 @ =0xffff5ecc
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0
- bl sub_80EB218
- adds r1, r6, 0
- mov r2, r9
- ldrb r0, [r1]
- adds r4, r5, 0x1
- ldrb r3, [r2]
- cmp r0, r3
- bne _080E8018
- adds r3, r7, 0
- cmp r0, 0xFF
- beq _080E8010
-_080E8000:
- adds r1, 0x1
- adds r2, 0x1
- ldrb r0, [r1]
- ldrb r5, [r2]
- cmp r0, r5
- bne _080E8018
- cmp r0, 0xFF
- bne _080E8000
-_080E8010:
- ldrb r0, [r1]
- ldrb r2, [r2]
- cmp r0, r2
- beq _080E8024
-_080E8018:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r3, _080E8040 @ =gSharedMem + 0x1000
-_080E8024:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- ldrb r3, [r3, 0xA]
- cmp r5, r3
- bcc _080E7FC8
-_080E802E:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E8040: .4byte gSharedMem + 0x1000
-_080E8044: .4byte 0x0000a140
-_080E8048: .4byte 0x0000a16d
-_080E804C: .4byte 0xffff5ec0
-_080E8050: .4byte 0xffff5ecc
- thumb_func_end sub_80E7FA8
-
- thumb_func_start sub_80E8054
-sub_80E8054: @ 80E8054
- push {r4,lr}
- movs r1, 0
- ldr r2, _080E8078 @ =gSharedMem + 0x1000
- ldrb r0, [r2, 0xA]
- cmp r1, r0
- bcs _080E808A
- adds r4, r2, 0
- adds r4, 0xC
- ldr r3, _080E807C @ =0x0000ffff
- adds r2, r0, 0
-_080E8068:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _080E8080
- movs r0, 0
- b _080E808C
- .align 2, 0
-_080E8078: .4byte gSharedMem + 0x1000
-_080E807C: .4byte 0x0000ffff
-_080E8080:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080E8068
-_080E808A:
- movs r0, 0x1
-_080E808C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8054
-
- thumb_func_start sub_80E8094
-sub_80E8094: @ 80E8094
- push {r4-r7,lr}
- movs r5, 0
- ldr r6, _080E80C4 @ =gSharedMem + 0xB140
- adds r7, r6, 0
- adds r7, 0x2D
-_080E809E:
- lsls r4, r5, 1
- ldr r1, _080E80C8 @ =0xffff5ecc
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r0, _080E80CC @ =gMysteryEventPhrase
- adds r4, r0
- ldrh r1, [r4]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- adds r3, r6, 0
- adds r4, r7, 0
- b _080E80D8
- .align 2, 0
-_080E80C4: .4byte gSharedMem + 0xB140
-_080E80C8: .4byte 0xffff5ecc
-_080E80CC: .4byte gMysteryEventPhrase
-_080E80D0:
- adds r4, 0x1
- adds r3, 0x1
- cmp r2, r1
- bne _080E80F4
-_080E80D8:
- ldrb r2, [r3]
- adds r0, r2, 0
- cmp r0, 0xFF
- beq _080E80EE
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E80D0
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E80F4
-_080E80EE:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080E80F8
-_080E80F4:
- movs r0, 0
- b _080E8104
-_080E80F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E809E
- movs r0, 0x1
-_080E8104:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8094
-
- thumb_func_start sub_80E810C
-sub_80E810C: @ 80E810C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r6, _080E8198 @ =gSharedMem + 0xB19A
- ldr r0, _080E819C @ =0xffff5e66
- adds r0, r6
- mov r9, r0
- movs r1, 0
- mov r8, r1
- adds r7, r6, 0
- adds r7, 0x80
- ldr r2, _080E81A0 @ =gBerryMasterWifePhrases
- mov r10, r2
-_080E812C:
- mov r0, r9
- ldrh r1, [r0, 0xC]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- mov r1, r8
- strb r1, [r0]
- adds r0, 0x1
- mov r2, r9
- ldrh r1, [r2, 0xE]
- movs r2, 0
- bl sub_80EB218
- lsls r4, r5, 2
- mov r1, r10
- adds r0, r4, r1
- ldrh r1, [r0]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- mov r2, r8
- strb r2, [r0]
- adds r0, 0x1
- ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- adds r0, r6, 0
- adds r3, r7, 0
- adds r4, r5, 0x1
-_080E8170:
- ldrb r2, [r0]
- cmp r2, 0xFF
- beq _080E818A
- ldrb r1, [r3]
- cmp r1, 0xFF
- beq _080E8184
- adds r3, 0x1
- adds r0, 0x1
- cmp r2, r1
- beq _080E8170
-_080E8184:
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E81A8
-_080E818A:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E81A8
- lsls r0, r4, 24
- lsrs r0, 24
- b _080E81B2
- .align 2, 0
-_080E8198: .4byte gSharedMem + 0xB19A
-_080E819C: .4byte 0xffff5e66
-_080E81A0: .4byte gBerryMasterWifePhrases
-_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
-_080E81A8:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080E812C
- movs r0, 0
-_080E81B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E810C
-
- thumb_func_start sub_80E81C0
-sub_80E81C0: @ 80E81C0
- push {r4,lr}
- ldr r0, _080E81EC @ =gStringVar2
- ldr r4, _080E81F0 @ =gSharedMem + 0x1000
- ldr r2, _080E81F4 @ =0x00009fa8
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r2, 0
- bl sub_80EB218
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- ldr r1, _080E81F8 @ =0x00009faa
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E81EC: .4byte gStringVar2
-_080E81F0: .4byte gSharedMem + 0x1000
-_080E81F4: .4byte 0x00009fa8
-_080E81F8: .4byte 0x00009faa
- thumb_func_end sub_80E81C0
-
- thumb_func_start sub_80E81FC
-sub_80E81FC: @ 80E81FC
- push {lr}
- movs r0, 0x5
- bl PlaySE
- bl sub_80E95A4
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80E81FC
-
- thumb_func_start sub_80E8218
-sub_80E8218: @ 80E8218
- push {r4,r5,lr}
- sub sp, 0x40
- mov r1, sp
- ldr r0, _080E8260 @ =gSpriteSheets_Interview
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldr r0, [r0]
- str r0, [r1]
- add r4, sp, 0x28
- adds r1, r4, 0
- ldr r0, _080E8264 @ =gSpritePalettes_Interview
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- bl sub_80E8268
- bl sub_80E8818
- bl sub_80E8A7C
- add sp, 0x40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8260: .4byte gSpriteSheets_Interview
-_080E8264: .4byte gSpritePalettes_Interview
- thumb_func_end sub_80E8218
-
- thumb_func_start sub_80E8268
-sub_80E8268: @ 80E8268
- push {lr}
- ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E82B4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080E82B8 @ =gUnknown_083DB694
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x8
- movs r2, 0
- strh r0, [r1, 0x22]
- adds r0, r3, 0
- adds r0, 0x88
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x20]
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r0, r3, 0
- adds r0, 0x98
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E82B0: .4byte gSpriteTemplate_83DBBFC
-_080E82B4: .4byte gSprites
-_080E82B8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8268
-
- thumb_func_start sub_80E82BC
-sub_80E82BC: @ 80E82BC
- push {r4-r7,lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E838C
- ldr r0, _080E8334 @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x87
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _080E836C
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0
- movs r1, 0
- cmp r7, r4
- bcs _080E8316
- lsls r6, r5, 1
- adds r2, 0x8C
-_080E8300:
- adds r0, r1, r6
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bcc _080E8300
-_080E8316:
- mov r0, r12
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E8338
- movs r0, 0x60
- strh r0, [r3, 0x22]
- lsls r0, r4, 3
- subs r0, r4
- adds r0, 0x3
- b _080E8356
- .align 2, 0
-_080E8334: .4byte gUnknown_083DB694
-_080E8338:
- adds r1, r2, 0
- adds r1, 0x8A
- lsls r0, r5, 1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 3
- adds r0, 0x8
- strh r0, [r3, 0x22]
- adds r0, r2, 0
- adds r0, 0x88
- ldrh r0, [r0]
- adds r0, r7
- movs r1, 0xB
- muls r1, r4
- adds r0, r1
-_080E8356:
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r3, 0x20]
- movs r1, 0
- ldr r0, _080E8368 @ =0x0000fffa
- strh r0, [r3, 0x24]
- strh r1, [r3, 0x2E]
- b _080E838C
- .align 2, 0
-_080E8368: .4byte 0x0000fffa
-_080E836C:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E838C
- strh r1, [r3, 0x2E]
- ldrh r0, [r3, 0x24]
- adds r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E838C
- ldr r0, _080E8394 @ =0x0000fffa
- strh r0, [r3, 0x24]
-_080E838C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8394: .4byte 0x0000fffa
- thumb_func_end sub_80E82BC
-
- thumb_func_start sub_80E8398
-sub_80E8398: @ 80E8398
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- beq _080E83D4
- cmp r3, 0x1
- bgt _080E83AC
- cmp r3, 0
- beq _080E83B2
- b _080E8416
-_080E83AC:
- cmp r3, 0x2
- beq _080E83F8
- b _080E8416
-_080E83B2:
- ldr r0, _080E83D0 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0x98
- ldr r1, [r0]
- strh r3, [r1, 0x30]
- ldr r1, [r0]
- strh r3, [r1, 0x24]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83D0: .4byte gUnknown_083DB694
-_080E83D4:
- ldr r0, _080E83F4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0x98
- ldr r0, [r1]
- movs r2, 0
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r2, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83F4: .4byte gUnknown_083DB694
-_080E83F8:
- ldr r0, _080E841C @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0x98
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x1
- strh r0, [r2, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_080E8414:
- strb r0, [r1]
-_080E8416:
- pop {r0}
- bx r0
- .align 2, 0
-_080E841C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8398
-
- thumb_func_start sub_80E8420
-sub_80E8420: @ 80E8420
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E84E4 @ =gUnknown_083DB694
- ldr r7, [r1]
- adds r5, r7, 0
- adds r5, 0x9C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r4, _080E84E8 @ =gSprites
- adds r1, r4
- str r1, [r5]
- ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C
- str r0, [sp, 0x8]
- ldr r0, _080E84F0 @ =sub_80E872C
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r6, r7, 0
- adds r6, 0xA0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r6]
- ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C
- str r0, [sp, 0x8]
- ldr r0, _080E84F8 @ =sub_80E8760
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r2, r7, 0
- adds r2, 0xA4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r2]
- ldr r0, [r5]
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r0, [r6]
- strh r1, [r0, 0x2E]
- ldr r0, [r2]
- strh r1, [r0, 0x2E]
- movs r0, 0x1
- bl IndexOfSpritePaletteTag
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 20
- ldr r2, _080E84FC @ =0x00000101
- adds r0, r2
- strh r0, [r1, 0x34]
- bl sub_80E8534
- adds r1, r7, 0
- adds r1, 0x96
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080E8500 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E84E0: .4byte gSpriteTemplate_83DBCAC
-_080E84E4: .4byte gUnknown_083DB694
-_080E84E8: .4byte gSprites
-_080E84EC: .4byte gSpriteAnimTable_83DBC8C
-_080E84F0: .4byte sub_80E872C
-_080E84F4: .4byte gSpriteAnimTable_83DBC9C
-_080E84F8: .4byte sub_80E8760
-_080E84FC: .4byte 0x00000101
-_080E8500: .4byte REG_BLDCNT
- thumb_func_end sub_80E8420
-
- thumb_func_start sub_80E8504
-sub_80E8504: @ 80E8504
- push {r4,lr}
- ldr r0, _080E8530 @ =gUnknown_083DB694
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x9C
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA4
- ldr r0, [r0]
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8530: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8504
-
- thumb_func_start sub_80E8534
-sub_80E8534: @ 80E8534
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _080E8554 @ =gUnknown_083DB694
- ldr r3, [r1]
- ldr r2, _080E8558 @ =0x000001b7
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r1, 0
- cmp r0, 0
- beq _080E8560
- ldr r1, _080E855C @ =gUnknown_020388AC
- movs r0, 0x1
- b _080E8598
- .align 2, 0
-_080E8554: .4byte gUnknown_083DB694
-_080E8558: .4byte 0x000001b7
-_080E855C: .4byte gUnknown_020388AC
-_080E8560:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r2, [r0]
- cmp r2, 0
- bne _080E8578
- ldr r0, _080E8574 @ =gUnknown_020388AC
- strb r2, [r0]
- adds r7, r0, 0
- b _080E859C
- .align 2, 0
-_080E8574: .4byte gUnknown_020388AC
-_080E8578:
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _080E8594
- ldr r1, _080E8590 @ =gUnknown_020388AC
- movs r0, 0x2
- b _080E8598
- .align 2, 0
-_080E8590: .4byte gUnknown_020388AC
-_080E8594:
- ldr r1, _080E85F4 @ =gUnknown_020388AC
- movs r0, 0x3
-_080E8598:
- strb r0, [r1]
- adds r7, r1, 0
-_080E859C:
- ldr r2, [r4]
- adds r4, r2, 0
- adds r4, 0x9C
- ldr r1, [r4]
- ldrb r0, [r7]
- movs r3, 0
- mov r8, r3
- strh r0, [r1, 0x32]
- adds r5, r2, 0
- adds r5, 0xA0
- ldr r1, [r5]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- adds r6, r2, 0
- adds r6, 0xA4
- ldr r1, [r6]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- ldr r0, [r4]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r5]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r6]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0x8
- strh r1, [r0, 0x38]
- ldr r0, [r4]
- strh r1, [r0, 0x3A]
- ldr r0, [r4]
- mov r1, r8
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E85F4: .4byte gUnknown_020388AC
- thumb_func_end sub_80E8534
-
- thumb_func_start sub_80E85F8
-sub_80E85F8: @ 80E85F8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E8624
- ldr r1, _080E8620 @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r0, 0x8
- strh r0, [r5, 0x38]
- b _080E863A
- .align 2, 0
-_080E8620: .4byte gSineTable
-_080E8624:
- ldr r1, _080E8688 @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 21
- movs r0, 0x8
- subs r0, r1
- strh r0, [r5, 0x3A]
-_080E863A:
- ldrh r0, [r5, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldr r2, _080E868C @ =REG_BLDALPHA
- ldrh r0, [r5, 0x3A]
- lsls r0, 8
- ldrh r1, [r5, 0x38]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080E8690 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E871A
- bl sub_80E8534
- adds r1, r6, 0
- adds r1, 0x9C
- ldr r0, [r1]
- movs r2, 0x8
- strh r2, [r0, 0x38]
- ldr r0, [r1]
- strh r2, [r0, 0x3A]
- ldr r1, [r1]
- movs r0, 0
- strh r0, [r1, 0x30]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080E86C4
- cmp r0, 0x1
- bgt _080E8694
- cmp r0, 0
- beq _080E869E
- b _080E871A
- .align 2, 0
-_080E8688: .4byte gSineTable
-_080E868C: .4byte REG_BLDALPHA
-_080E8690: .4byte gUnknown_083DB694
-_080E8694:
- cmp r0, 0x2
- beq _080E86D6
- cmp r0, 0x3
- beq _080E86DE
- b _080E871A
-_080E869E:
- ldr r2, _080E86C0 @ =0x000001a9
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x20
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0xC
- b _080E870A
- .align 2, 0
-_080E86C0: .4byte 0x000001a9
-_080E86C4:
- movs r0, 0xD6
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _080E8714
-_080E86D6:
- movs r0, 0x97
- strh r0, [r5, 0x20]
- movs r0, 0x60
- b _080E8718
-_080E86DE:
- ldr r4, _080E8720 @ =gUnknown_083DBCC4
- ldr r2, _080E8724 @ =0x000001a9
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xD4
- lsls r0, 1
- adds r3, r6, r0
- movs r2, 0
- ldrsb r2, [r3, r2]
- lsls r0, r2, 3
- subs r0, r2
- adds r1, r0
- adds r1, r4
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 3
- adds r0, 0x1F
- strh r0, [r5, 0x20]
- movs r0, 0
- ldrsb r0, [r3, r0]
- ldr r2, _080E8728 @ =0x000001b5
-_080E870A:
- adds r1, r6, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
-_080E8714:
- lsls r0, 4
- adds r0, 0x60
-_080E8718:
- strh r0, [r5, 0x22]
-_080E871A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8720: .4byte gUnknown_083DBCC4
-_080E8724: .4byte 0x000001a9
-_080E8728: .4byte 0x000001b5
- thumb_func_end sub_80E85F8
-
- thumb_func_start sub_80E872C
-sub_80E872C: @ 80E872C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E875C @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8756
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E8756
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x20
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E8756:
- pop {r0}
- bx r0
- .align 2, 0
-_080E875C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E872C
-
- thumb_func_start sub_80E8760
-sub_80E8760: @ 80E8760
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E8784 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E87B2
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _080E8798
- cmp r0, 0x1
- bgt _080E8788
- cmp r0, 0
- beq _080E878E
- b _080E87B2
- .align 2, 0
-_080E8784: .4byte gUnknown_083DB694
-_080E8788:
- cmp r0, 0x2
- beq _080E87A2
- b _080E87B2
-_080E878E:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x40
- b _080E87AA
-_080E8798:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x1C
- b _080E87AA
-_080E87A2:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x15
-_080E87AA:
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E87B2:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8760
-
- thumb_func_start sub_80E87A4
-sub_80E87A4: @ 80E87A4
- push {r4,lr}
- lsls r0, 24
- ldr r1, _080E87C8 @ =gUnknown_083DB694
- ldr r1, [r1]
- adds r2, r1, 0
- adds r2, 0xA8
- ldr r3, [r2]
- movs r4, 0
- cmp r0, 0
- bne _080E87BA
- movs r4, 0x1
-_080E87BA:
- movs r1, 0
- strh r4, [r3, 0x30]
- ldr r0, [r2]
- strh r1, [r0, 0x24]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E87C8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E87A4
-
- thumb_func_start sub_80E87CC
-sub_80E87CC: @ 80E87CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E8810 @ =gUnknown_083DB694
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0xA8
- ldr r0, [r0]
- movs r3, 0
- cmp r4, 0
- bne _080E87E6
- movs r3, 0x1
-_080E87E6:
- adds r2, r0, 0
- adds r2, 0x3E
- lsls r3, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- adds r0, r4, 0
- bl sub_80E87A4
- cmp r4, 0
- beq _080E880A
- ldr r0, _080E8814 @ =0x000001b9
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_080E880A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8810: .4byte gUnknown_083DB694
-_080E8814: .4byte 0x000001b9
- thumb_func_end sub_80E87CC
-
- thumb_func_start sub_80E8818
-sub_80E8818: @ 80E8818
- push {lr}
- ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E8854 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- ldr r0, _080E8858 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xA8
- str r1, [r0]
- ldr r0, _080E885C @ =sub_80E8860
- str r0, [r1, 0x1C]
- movs r0, 0
- bl sub_80E87CC
- pop {r0}
- bx r0
- .align 2, 0
-_080E8850: .4byte gSpriteTemplate_83DBBFC
-_080E8854: .4byte gSprites
-_080E8858: .4byte gUnknown_083DB694
-_080E885C: .4byte sub_80E8860
- thumb_func_end sub_80E8818
-
- thumb_func_start sub_80E8860
-sub_80E8860: @ 80E8860
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r4, [r2, r0]
- cmp r4, 0
- bne _080E88E4
- ldr r0, _080E88B0 @ =gUnknown_083DB694
- ldr r3, [r0]
- ldr r1, _080E88B4 @ =0x000001b9
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080E88C4
- ldr r5, _080E88B8 @ =0x00009cd1
- adds r0, r3, r5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x2C
- strh r0, [r2, 0x20]
- ldr r1, _080E88BC @ =0x00009cd0
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r5, 0x84
- adds r1, r3, r5
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
- lsls r0, 4
- adds r0, 0x60
- strh r0, [r2, 0x22]
- ldr r0, _080E88C0 @ =0x0000fffa
- strh r0, [r2, 0x24]
- strh r4, [r2, 0x2E]
- b _080E88E4
- .align 2, 0
-_080E88B0: .4byte gUnknown_083DB694
-_080E88B4: .4byte 0x000001b9
-_080E88B8: .4byte 0x00009cd1
-_080E88BC: .4byte 0x00009cd0
-_080E88C0: .4byte 0x0000fffa
-_080E88C4:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E88E4
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E88E4
- ldr r0, _080E88EC @ =0x0000fffa
- strh r0, [r2, 0x24]
-_080E88E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E88EC: .4byte 0x0000fffa
- thumb_func_end sub_80E8860
-
- thumb_func_start sub_80E88F0
-sub_80E88F0: @ 80E88F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r0, _080E8950 @ =gUnknown_083DB694
- mov r8, r0
- ldr r0, [r0]
- movs r6, 0x4
- movs r5, 0
- movs r1, 0xB4
- adds r1, r0
- mov r12, r1
- adds r7, r0, 0
- adds r7, 0xAC
-_080E890C:
- lsls r2, r4, 2
- adds r3, r7, r2
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r3]
- strh r5, [r0, 0x30]
- add r2, r12
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r2]
- strh r5, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E890C
- mov r1, r8
- ldr r0, [r1]
- ldr r1, _080E8954 @ =0x00009f9c
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8950: .4byte gUnknown_083DB694
-_080E8954: .4byte 0x00009f9c
- thumb_func_end sub_80E88F0
-
- thumb_func_start sub_80E8958
-sub_80E8958: @ 80E8958
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _080E89B4
- movs r0, 0x64
- mov r9, r0
- ldr r0, _080E8998 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r3, _080E899C @ =0x00009f98
- adds r1, r2, r3
- ldr r3, _080E89A0 @ =0x000001b5
- adds r0, r2, r3
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E89A8
- movs r1, 0xDB
- lsls r1, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E89A4 @ =0x00009f9d
- adds r1, r2, r3
- strb r0, [r1]
- b _080E8A00
- .align 2, 0
-_080E8998: .4byte gUnknown_083DB694
-_080E899C: .4byte 0x00009f98
-_080E89A0: .4byte 0x000001b5
-_080E89A4: .4byte 0x00009f9d
-_080E89A8:
- ldr r1, _080E89B0 @ =0x00009f9d
- adds r0, r2, r1
- strb r7, [r0]
- b _080E8A00
- .align 2, 0
-_080E89B0: .4byte 0x00009f9d
-_080E89B4:
- movs r3, 0x78
- mov r9, r3
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E8A68 @ =0x00009f98
- adds r1, r2, r0
- ldr r3, _080E8A6C @ =0x00009d55
- adds r0, r2, r3
- str r0, [r1]
- ldr r1, _080E8A70 @ =0x00009d54
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E8A74 @ =0x00009f9d
- adds r1, r2, r3
- strb r0, [r1]
- movs r4, 0
- adds r5, r2, 0
- adds r5, 0xB4
- movs r0, 0x5
- negs r0, r0
- mov r12, r0
- movs r6, 0x1
-_080E89E2:
- lsls r3, r4, 2
- adds r3, r5, r3
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- strh r6, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E89E2
-_080E8A00:
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r3, _080E8A74 @ =0x00009f9d
- adds r1, r2, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E8A14
- movs r0, 0
- strb r0, [r1]
-_080E8A14:
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0xAC
- movs r0, 0x5
- negs r0, r0
- mov r8, r0
-_080E8A20:
- lsls r2, r4, 2
- adds r2, r6, r2
- ldr r0, [r2]
- mov r1, r9
- strh r1, [r0, 0x20]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r2]
- movs r5, 0x1
- strh r5, [r0, 0x30]
- ldr r0, [r2]
- adds r1, r7, 0
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E8A20
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E8A78 @ =0x00009f9c
- adds r0, r1
- strb r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A64: .4byte gUnknown_083DB694
-_080E8A68: .4byte 0x00009f98
-_080E8A6C: .4byte 0x00009d55
-_080E8A70: .4byte 0x00009d54
-_080E8A74: .4byte 0x00009f9d
-_080E8A78: .4byte 0x00009f9c
- thumb_func_end sub_80E8958
-
- thumb_func_start sub_80E8A7C
-sub_80E8A7C: @ 80E8A7C
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r5, 0
-_080E8A8E:
- lsls r2, r5, 3
- adds r2, r5
- lsls r2, 19
- movs r0, 0xA8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- mov r0, sp
- movs r1, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C @ =gUnknown_083DB694
- ldr r2, [r0]
- lsls r0, r5, 2
- adds r2, 0xAC
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70 @ =gSprites
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- adds r3, 0x3F
- movs r0, 0x1
- adds r2, r5, 0
- ands r2, r0
- lsls r2, 1
- ldrb r0, [r3]
- movs r4, 0x3
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8A8E
- mov r0, sp
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10
- str r0, [sp, 0x8]
- movs r5, 0
- movs r7, 0x3F
- movs r6, 0x40
-_080E8AF6:
- lsls r4, r5, 2
- adds r1, r4, r5
- lsls r1, 19
- movs r0, 0x8E
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r2, 0xB4
- adds r2, r4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70 @ =gSprites
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x1]
- ldr r3, [r2]
- ldrb r1, [r3, 0x3]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x3]
- ldr r0, [r2]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8AF6
- movs r0, 0
- bl sub_80E8958
- bl sub_80E88F0
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B68: .4byte gSpriteTemplate_83DBD18
-_080E8B6C: .4byte gUnknown_083DB694
-_080E8B70: .4byte gSprites
-_080E8B74: .4byte gSpriteAnimTable_83DBD10
- thumb_func_end sub_80E8A7C
-
- thumb_func_start sub_80E8B78
-sub_80E8B78: @ 80E8B78
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080E8BB0 @ =gUnknown_083DB694
- ldr r1, [r0]
- ldr r2, _080E8BB4 @ =0x00009f9c
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _080E8BBC
- movs r4, 0
- ldr r2, _080E8BB8 @ =0x00009f98
- adds r0, r1, r2
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E8BD6
- b _080E8BD4
- .align 2, 0
-_080E8BB0: .4byte gUnknown_083DB694
-_080E8BB4: .4byte 0x00009f9c
-_080E8BB8: .4byte 0x00009f98
-_080E8BBC:
- movs r4, 0
- ldr r2, _080E8BF0 @ =0x00009f98
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x5
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E8BD6
-_080E8BD4:
- movs r4, 0x1
-_080E8BD6:
- adds r2, r3, 0
- adds r2, 0x3E
- lsls r3, r4, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E8BE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8BF0: .4byte 0x00009f98
- thumb_func_end sub_80E8B78
-
- thumb_func_start sub_80E8BF4
-sub_80E8BF4: @ 80E8BF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r0, _080E8C28 @ =gUnknown_083DBD30
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- ldr r0, _080E8C2C @ =gUnknown_083DBD38
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- cmp r2, 0x2
- beq _080E8C20
- cmp r2, 0x5
- beq _080E8C30
-_080E8C20:
- movs r4, 0x40
- movs r5, 0x28
- b _080E8C34
- .align 2, 0
-_080E8C28: .4byte gUnknown_083DBD30
-_080E8C2C: .4byte gUnknown_083DBD38
-_080E8C30:
- movs r4, 0x24
- movs r5, 0x30
-_080E8C34:
- cmp r3, 0
- beq _080E8C3C
- cmp r3, 0x1
- beq _080E8C40
-_080E8C3C:
- movs r0, 0x43
- b _080E8C42
-_080E8C40:
- movs r0, 0x44
-_080E8C42:
- mov r8, r0
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- add r0, sp, 0xC
- bl LoadSpritePalette
- ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl CreateSprite
- ldr r0, _080E8CE0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x69
- cmp r0, 0
- bne _080E8C68
- movs r1, 0x64
-_080E8C68:
- ldr r7, _080E8CE4 @ =SpriteCallbackDummy
- adds r2, r4, 0
- subs r2, 0xC
- movs r6, 0
- str r6, [sp]
- adds r0, r1, 0
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8C9E
- ldr r1, _080E8CE8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x3
- bl StartSpriteAnim
-_080E8C9E:
- adds r2, r4, 0
- adds r2, 0xC
- str r6, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8CD0
- ldr r1, _080E8CE8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8CD0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8CDC: .4byte gSpriteTemplate_83DBD48
-_080E8CE0: .4byte gSaveBlock2
-_080E8CE4: .4byte SpriteCallbackDummy
-_080E8CE8: .4byte gSprites
- thumb_func_end sub_80E8BF4
-
- thumb_func_start sub_80E8CEC
-sub_80E8CEC: @ 80E8CEC
- push {lr}
- ldr r0, _080E8D24 @ =gUnknown_083DBD60
- bl LoadCompressedObjectPic
- ldr r0, _080E8D28 @ =gUnknown_083DBD68
- bl LoadSpritePalette
- ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4
- movs r1, 0xE0
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080E8D3C
- ldr r0, _080E8D30 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E8D34 @ =0x00009fa0
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8D38 @ =gSprites
- adds r0, r1
- str r0, [r2]
- b _080E8D48
- .align 2, 0
-_080E8D24: .4byte gUnknown_083DBD60
-_080E8D28: .4byte gUnknown_083DBD68
-_080E8D2C: .4byte gSpriteTemplate_83DBDE4
-_080E8D30: .4byte gUnknown_083DB694
-_080E8D34: .4byte 0x00009fa0
-_080E8D38: .4byte gSprites
-_080E8D3C:
- ldr r0, _080E8D4C @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E8D50 @ =0x00009fa0
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_080E8D48:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8D4C: .4byte gUnknown_083DB694
-_080E8D50: .4byte 0x00009fa0
- thumb_func_end sub_80E8CEC
-
- thumb_func_start sub_80E8D54
-sub_80E8D54: @ 80E8D54
- push {lr}
- ldr r0, _080E8D78 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r1, _080E8D7C @ =0x00009fa0
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8D88
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8D80
- adds r0, r1, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _080E8D88
- .align 2, 0
-_080E8D78: .4byte gUnknown_083DB694
-_080E8D7C: .4byte 0x00009fa0
-_080E8D80:
- adds r0, r1, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8D88:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D54
-
- thumb_func_start sub_80E8D8C
-sub_80E8D8C: @ 80E8D8C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080E8DB8 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r1, _080E8DBC @ =0x00009fa0
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8DD2
- cmp r3, 0
- beq _080E8DCA
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8DC0
- adds r0, r1, 0
- movs r1, 0x3
- bl StartSpriteAnim
- b _080E8DD2
- .align 2, 0
-_080E8DB8: .4byte gUnknown_083DB694
-_080E8DBC: .4byte 0x00009fa0
-_080E8DC0:
- adds r0, r1, 0
- movs r1, 0x4
- bl StartSpriteAnim
- b _080E8DD2
-_080E8DCA:
- adds r0, r1, 0
- movs r1, 0x5
- bl StartSpriteAnim
-_080E8DD2:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D8C
-
- thumb_func_start sub_80E8DD8
-sub_80E8DD8: @ 80E8DD8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- ldr r0, _080E8F2C @ =REG_BG0HOFS
- movs r6, 0
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- subs r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- ldr r1, _080E8F30 @ =REG_BG0CNT
- movs r2, 0x8B
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E8F34 @ =0x00000d09
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E8F38 @ =gUnknown_08E945D0
- ldr r1, _080E8F3C @ =gUnknown_083DB694
- ldr r1, [r1]
- mov r8, r1
- movs r4, 0xE4
- lsls r4, 1
- add r4, r8
- movs r5, 0xA0
- lsls r5, 2
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F40 @ =gUnknown_08E953D0
- movs r1, 0xD9
- lsls r1, 3
- add r1, r8
- bl LZ77UnCompWram
- ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx
- ldr r1, _080E8F48 @ =0x06008000
- bl LZ77UnCompVram
- ldr r1, _080E8F4C @ =0x06006800
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r1, _080E8F54 @ =REG_BG2CNT
- ldr r2, _080E8F58 @ =0x00000e02
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F5C @ =0x06007000
- movs r5, 0x80
- lsls r5, 4
- mov r0, sp
- strh r6, [r0]
- ldr r4, _080E8F60 @ =0x040000d4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r0, r5, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F64 @ =gUnknown_08E9AB00
- ldr r2, _080E8F68 @ =0x06006000
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _080E8F6C @ =0x80000020
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F70 @ =gUnknown_08E9AB60
- bl LZ77UnCompVram
- ldr r0, _080E8F74 @ =gUnknown_08E9AB40
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F78 @ =gUnknown_083DBDFC
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080E8F7C @ =REG_BG3CNT
- ldr r2, _080E8F80 @ =0x00000f0f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F84 @ =0x06007800
- movs r0, 0
- mov r9, r0
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r5, 2
- movs r0, 0x85
- lsls r0, 24
- orrs r5, r0
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F88 @ =gUnknown_083DBE40
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F8C @ =gPlttBufferUnfaded
- adds r1, r0, 0
- adds r1, 0x7E
- ldr r3, _080E8F90 @ =0x00007fff
- strh r3, [r1]
- subs r1, 0x1C
- ldr r2, _080E8F94 @ =0x00006f5b
- strh r2, [r1]
- adds r0, 0x70
- ldr r1, _080E8F98 @ =0x0000739c
- strh r1, [r0]
- ldr r0, _080E8F9C @ =gPlttBufferFaded
- adds r4, r0, 0
- adds r4, 0x7E
- strh r3, [r4]
- adds r3, r0, 0
- adds r3, 0x62
- strh r2, [r3]
- adds r0, 0x70
- strh r1, [r0]
- movs r1, 0xBC
- add r8, r1
- mov r2, r8
- strb r6, [r2]
- bl sub_80E8FA4
- bl sub_80E948C
- movs r0, 0xA
- bl sub_80E9198
- movs r0, 0
- bl sub_80E91D4
- bl sub_80E95A4
- ldr r0, _080E8FA0 @ =REG_BLDCNT
- mov r1, r9
- strh r1, [r0]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8F2C: .4byte REG_BG0HOFS
-_080E8F30: .4byte REG_BG0CNT
-_080E8F34: .4byte 0x00000d09
-_080E8F38: .4byte gUnknown_08E945D0
-_080E8F3C: .4byte gUnknown_083DB694
-_080E8F40: .4byte gUnknown_08E953D0
-_080E8F44: .4byte gMenuWordGroupFrame_Gfx
-_080E8F48: .4byte 0x06008000
-_080E8F4C: .4byte 0x06006800
-_080E8F50: .4byte gMenuWordGroupFrame1_Pal
-_080E8F54: .4byte REG_BG2CNT
-_080E8F58: .4byte 0x00000e02
-_080E8F5C: .4byte 0x06007000
-_080E8F60: .4byte 0x040000d4
-_080E8F64: .4byte gUnknown_08E9AB00
-_080E8F68: .4byte 0x06006000
-_080E8F6C: .4byte 0x80000020
-_080E8F70: .4byte gUnknown_08E9AB60
-_080E8F74: .4byte gUnknown_08E9AB40
-_080E8F78: .4byte gUnknown_083DBDFC
-_080E8F7C: .4byte REG_BG3CNT
-_080E8F80: .4byte 0x00000f0f
-_080E8F84: .4byte 0x06007800
-_080E8F88: .4byte gUnknown_083DBE40
-_080E8F8C: .4byte gPlttBufferUnfaded
-_080E8F90: .4byte 0x00007fff
-_080E8F94: .4byte 0x00006f5b
-_080E8F98: .4byte 0x0000739c
-_080E8F9C: .4byte gPlttBufferFaded
-_080E8FA0: .4byte REG_BLDCNT
- thumb_func_end sub_80E8DD8
-
- thumb_func_start sub_80E8FA4
-sub_80E8FA4: @ 80E8FA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r0, 0
- mov r9, r0
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x24]
- add r2, sp, 0xC
- mov r12, r2
-_080E8FBE:
- mov r3, r9
- lsls r1, r3, 1
- ldr r4, _080E90F4 @ =0x08e8f136
- adds r0, r1, r4
- ldrh r2, [r0]
- movs r0, 0x1F
- ands r0, r2
- lsls r0, 8
- str r0, [sp]
- ldr r5, _080E90F8 @ =0x08e8f13c
- adds r1, r5
- ldrh r1, [r1]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0xC]
- lsls r2, 16
- lsrs r0, r2, 21
- movs r3, 0x1F
- ands r0, r3
- lsls r0, 8
- str r0, [sp, 0x4]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r3
- lsls r0, 8
- mov r4, r12
- str r0, [r4, 0x4]
- lsrs r2, 26
- ands r2, r3
- lsls r2, 8
- str r2, [sp, 0x8]
- lsrs r1, 26
- ands r1, r3
- lsls r1, 8
- str r1, [r4, 0x8]
- movs r3, 0
- mov r5, r9
- lsls r5, 3
- mov r10, r5
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x28]
- ldr r4, [sp, 0x24]
-_080E9016:
- lsls r0, r3, 2
- adds r2, r4, r0
- mov r5, r12
- adds r1, r5, r0
- add r0, sp
- ldr r1, [r1]
- ldr r0, [r0]
- subs r0, r1, r0
- cmp r0, 0
- bge _080E902C
- adds r0, 0x7
-_080E902C:
- asrs r0, 3
- str r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9016
- movs r4, 0
- ldr r0, _080E90FC @ =gUnknown_083DB694
- ldr r1, [r0]
- mov r0, r10
- add r0, r9
- lsls r0, 1
- mov r8, r0
- movs r5, 0x1F
- ldr r6, [sp, 0x24]
- ldr r0, _080E9100 @ =0x00009f60
- adds r7, r1, r0
-_080E9050:
- lsls r2, r4, 1
- add r2, r8
- adds r2, r7, r2
- ldr r1, [sp, 0x8]
- asrs r1, 8
- ands r1, r5
- lsls r1, 10
- ldr r0, [sp, 0x4]
- asrs r0, 8
- ands r0, r5
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp]
- asrs r0, 8
- ands r0, r5
- orrs r1, r0
- strh r1, [r2]
- movs r3, 0
- adds r4, 0x1
-_080E9076:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- adds r0, r6, r0
- ldr r1, [r2]
- ldr r0, [r0]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9076
- lsls r0, r4, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080E9050
- ldr r2, _080E90FC @ =gUnknown_083DB694
- ldr r3, [r2]
- mov r0, r10
- add r0, r9
- adds r0, r4
- lsls r0, 1
- ldr r4, _080E9100 @ =0x00009f60
- adds r2, r3, r4
- adds r2, r0
- mov r5, r12
- ldr r1, [r5, 0x8]
- asrs r1, 8
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 10
- ldr r0, [r5, 0x4]
- asrs r0, 8
- movs r4, 0x1F
- ands r0, r4
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp, 0xC]
- asrs r0, 8
- ands r0, r4
- orrs r1, r0
- strh r1, [r2]
- ldr r5, [sp, 0x28]
- lsls r0, r5, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x2
- bhi _080E90DA
- b _080E8FBE
-_080E90DA:
- ldr r0, _080E9104 @ =0x00009f5e
- adds r1, r3, r0
- movs r0, 0
- strb r0, [r1]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E90F4: .4byte 0x08e8f136
-_080E90F8: .4byte 0x08e8f13c
-_080E90FC: .4byte gUnknown_083DB694
-_080E9100: .4byte 0x00009f60
-_080E9104: .4byte 0x00009f5e
- thumb_func_end sub_80E8FA4
-
- thumb_func_start sub_80E9108
-sub_80E9108: @ 80E9108
- push {r4-r7,lr}
- lsls r0, 24
- ldr r1, _080E9164 @ =gUnknown_083DB694
- ldr r2, [r1]
- ldr r3, _080E9168 @ =0x00009f5e
- adds r1, r2, r3
- lsrs r0, 24
- ldrb r3, [r1]
- adds r0, r3
- strb r0, [r1]
- movs r4, 0
- ldr r0, _080E916C @ =gPlttBufferUnfaded
- mov r12, r0
- adds r6, r1, 0
- ldr r3, _080E9170 @ =0x00009f60
- adds r5, r2, r3
- ldr r7, _080E9174 @ =gPlttBufferFaded
-_080E912A:
- adds r2, r4, 0
- adds r2, 0x51
- lsls r2, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r0, [r6]
- lsls r0, 1
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r3]
- adds r2, r7
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _080E912A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9164: .4byte gUnknown_083DB694
-_080E9168: .4byte 0x00009f5e
-_080E916C: .4byte gPlttBufferUnfaded
-_080E9170: .4byte 0x00009f60
-_080E9174: .4byte gPlttBufferFaded
- thumb_func_end sub_80E9108
-
- thumb_func_start sub_80E9178
-sub_80E9178: @ 80E9178
- push {lr}
- ldr r0, _080E9190 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E9194 @ =0x00009f5e
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0
- bl sub_80E9108
- pop {r0}
- bx r0
- .align 2, 0
-_080E9190: .4byte gUnknown_083DB694
-_080E9194: .4byte 0x00009f5e
- thumb_func_end sub_80E9178
-
- thumb_func_start sub_80E9198
-sub_80E9198: @ 80E9198
- ldr r1, _080E91A0 @ =gUnknown_03000740
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080E91A0: .4byte gUnknown_03000740
- thumb_func_end sub_80E9198
-
- thumb_func_start sub_80E91A4
-sub_80E91A4: @ 80E91A4
- ldr r0, _080E91AC @ =gUnknown_03000740
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080E91AC: .4byte gUnknown_03000740
- thumb_func_end sub_80E91A4
-
- thumb_func_start sub_80E91B0
-sub_80E91B0: @ 80E91B0
- push {lr}
- sub sp, 0x8
- lsls r2, 24
- lsls r1, 27
- lsrs r1, 24
- lsrs r2, 21
- lsls r3, 27
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- movs r3, 0xB0
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_80E91B0
-
- thumb_func_start sub_80E91D4
-sub_80E91D4: @ 80E91D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E91FC @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- cmp r4, 0xA
- bne _080E9200
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0xA
- bl sub_80E9198
- b _080E935C
- .align 2, 0
-_080E91FC: .4byte gWindowConfig_81E6DA8
-_080E9200:
- bl sub_80E91A4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _080E9218
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080E9218:
- adds r0, r4, 0
- bl sub_80E9198
- cmp r4, 0x9
- bls _080E9224
- b _080E935C
-_080E9224:
- lsls r0, r4, 2
- ldr r1, _080E9230 @ =_080E9234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9230: .4byte _080E9234
- .align 2, 0
-_080E9234:
- .4byte _080E925C
- .4byte _080E9284
- .4byte _080E92AC
- .4byte _080E92C4
- .4byte _080E92F0
- .4byte _080E9308
- .4byte _080E9310
- .4byte _080E9318
- .4byte _080E933C
- .4byte _080E9350
-_080E925C:
- ldr r0, _080E9278 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r1, _080E927C @ =0x00009fac
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9280 @ =0x00009ff5
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E9278: .4byte gUnknown_083DB694
-_080E927C: .4byte 0x00009fac
-_080E9280: .4byte 0x00009ff5
-_080E9284:
- ldr r0, _080E92A0 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r1, _080E92A4 @ =0x0000a03e
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92A8 @ =0x0000a087
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E92A0: .4byte gUnknown_083DB694
-_080E92A4: .4byte 0x0000a03e
-_080E92A8: .4byte 0x0000a087
-_080E92AC:
- ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2
- b _080E9326
- .align 2, 0
-_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
-_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
-_080E92C4:
- ldr r0, _080E92D8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- beq _080E92E0
- cmp r0, 0x9
- bne _080E92E8
- ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo
- b _080E933E
- .align 2, 0
-_080E92D8: .4byte gUnknown_083DB694
-_080E92DC: .4byte gOtherText_QuitGivingInfo
-_080E92E0:
- ldr r0, _080E92E4 @ =gOtherText_StopGivingMail
- b _080E933E
- .align 2, 0
-_080E92E4: .4byte gOtherText_StopGivingMail
-_080E92E8:
- ldr r0, _080E92EC @ =gOtherText_QuitEditing
- b _080E933E
- .align 2, 0
-_080E92EC: .4byte gOtherText_QuitEditing
-_080E92F0:
- ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2
- b _080E9326
- .align 2, 0
-_080E9300: .4byte gOtherText_EditedTextNoSavePage1
-_080E9304: .4byte gOtherText_EditedTextNoSavePage2
-_080E9308:
- ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord
- b _080E933E
- .align 2, 0
-_080E930C: .4byte gOtherText_EnterAPhraseOrWord
-_080E9310:
- ldr r0, _080E9314 @ =gOtherText_TextNoDelete
- b _080E933E
- .align 2, 0
-_080E9314: .4byte gOtherText_TextNoDelete
-_080E9318:
- ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored
-_080E9326:
- movs r1, 0x4
- movs r2, 0x11
- movs r3, 0x2
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E9334: .4byte gOtherText_OnlyOnePhrase
-_080E9338: .4byte gOtherText_OriginalSongRestored
-_080E933C:
- ldr r0, _080E934C @ =gOtherText_TrendyAlready
-_080E933E:
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E934C: .4byte gOtherText_TrendyAlready
-_080E9350:
- ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
-_080E935C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9364: .4byte gOtherText_CombineTwoPhrases
- thumb_func_end sub_80E91D4
-
- thumb_func_start sub_80E9368
-sub_80E9368: @ 80E9368
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080E93F8
- lsls r0, 2
- ldr r1, _080E937C @ =_080E9380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E937C: .4byte _080E9380
- .align 2, 0
-_080E9380:
- .4byte _080E93B8
- .4byte _080E93C0
- .4byte _080E93C8
- .4byte _080E93D0
- .4byte _080E93F8
- .4byte _080E93E8
- .4byte _080E93D8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E0
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93F0
-_080E93B8:
- ldr r4, _080E93BC @ =gOtherText_Profile
- b _080E93FA
- .align 2, 0
-_080E93BC: .4byte gOtherText_Profile
-_080E93C0:
- ldr r4, _080E93C4 @ =gOtherText_AtBattleStart
- b _080E93FA
- .align 2, 0
-_080E93C4: .4byte gOtherText_AtBattleStart
-_080E93C8:
- ldr r4, _080E93CC @ =gOtherText_UponWinningBattle
- b _080E93FA
- .align 2, 0
-_080E93CC: .4byte gOtherText_UponWinningBattle
-_080E93D0:
- ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle
- b _080E93FA
- .align 2, 0
-_080E93D4: .4byte gOtherText_UponLosingBattle
-_080E93D8:
- ldr r4, _080E93DC @ =gOtherText_TheBardsSong
- b _080E93FA
- .align 2, 0
-_080E93DC: .4byte gOtherText_TheBardsSong
-_080E93E0:
- ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening
- b _080E93FA
- .align 2, 0
-_080E93E4: .4byte gOtherText_WhatsHipHappening
-_080E93E8:
- ldr r4, _080E93EC @ =gOtherText_Interview
- b _080E93FA
- .align 2, 0
-_080E93EC: .4byte gOtherText_Interview
-_080E93F0:
- ldr r4, _080E93F4 @ =gOtherText_GoodSaying
- b _080E93FA
- .align 2, 0
-_080E93F4: .4byte gOtherText_GoodSaying
-_080E93F8:
- movs r4, 0
-_080E93FA:
- ldr r0, _080E943C @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E9440 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E9444 @ =0x0000a2ba
- adds r5, r2, r0
- movs r3, 0xFC
- strb r3, [r5]
- adds r0, 0x1
- adds r1, r2, r0
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080E9448 @ =0x0000a2bc
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- cmp r4, 0
- beq _080E9450
- ldr r1, _080E944C @ =0x0000a2bd
- adds r0, r2, r1
- adds r1, r4, 0
- movs r2, 0xF0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- b _080E9476
- .align 2, 0
-_080E943C: .4byte gWindowConfig_81E6D8C
-_080E9440: .4byte gUnknown_083DB694
-_080E9444: .4byte 0x0000a2ba
-_080E9448: .4byte 0x0000a2bc
-_080E944C: .4byte 0x0000a2bd
-_080E9450:
- ldr r0, _080E9484 @ =0x0000a2bd
- adds r1, r2, r0
- strb r3, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0
- bl MenuPrint
-_080E9476:
- ldr r0, _080E9488 @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9484: .4byte 0x0000a2bd
-_080E9488: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9368
-
- thumb_func_start sub_80E948C
-sub_80E948C: @ 80E948C
- push {lr}
- sub sp, 0x10
- ldr r0, _080E94A8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bls _080E949C
- b _080E9594
-_080E949C:
- lsls r0, 2
- ldr r1, _080E94AC @ =_080E94B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E94A8: .4byte gUnknown_083DB694
-_080E94AC: .4byte _080E94B0
- .align 2, 0
-_080E94B0:
- .4byte _080E9508
- .4byte _080E9530
- .4byte _080E9554
- .4byte _080E9578
- .4byte _080E94C8
- .4byte _080E94E8
-_080E94C8:
- ldr r0, _080E94E0 @ =0x06006800
- ldr r3, _080E94E4 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1A
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x6
- str r1, [sp, 0xC]
- movs r1, 0x3
- b _080E9568
- .align 2, 0
-_080E94E0: .4byte 0x06006800
-_080E94E4: .4byte gUnknown_08E94AD0
-_080E94E8:
- ldr r0, _080E9500 @ =0x06006800
- ldr r3, _080E9504 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- movs r1, 0xD
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0xE
- b _080E951E
- .align 2, 0
-_080E9500: .4byte 0x06006800
-_080E9504: .4byte gUnknown_08E94AD0
-_080E9508:
- ldr r0, _080E9528 @ =0x06006800
- ldr r3, _080E952C @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0x2
-_080E951E:
- movs r2, 0x2
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9528: .4byte 0x06006800
-_080E952C: .4byte gUnknown_08E94AD0
-_080E9530:
- ldr r0, _080E954C @ =0x06006800
- ldr r3, _080E9550 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0xA
- str r1, [sp, 0xC]
- movs r1, 0x2
- movs r2, 0
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E954C: .4byte 0x06006800
-_080E9550: .4byte gUnknown_08E94AD0
-_080E9554:
- ldr r0, _080E9570 @ =0x06006800
- ldr r3, _080E9574 @ =gUnknown_08E94AD0
- movs r2, 0xD
- str r2, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0xE
-_080E9568:
- movs r2, 0x3
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9570: .4byte 0x06006800
-_080E9574: .4byte gUnknown_08E94AD0
-_080E9578:
- ldr r0, _080E959C @ =0x06006800
- ldr r3, _080E95A0 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0x3
- movs r2, 0x2
- bl sub_809D104
-_080E9594:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080E959C: .4byte 0x06006800
-_080E95A0: .4byte gUnknown_08E94AD0
- thumb_func_end sub_80E948C
-
- thumb_func_start sub_80E95A4
-sub_80E95A4: @ 80E95A4
- push {lr}
- ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E95C4 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9612
- lsls r0, 2
- ldr r1, _080E95C8 @ =_080E95CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E95C0: .4byte gWindowConfig_81E6D8C
-_080E95C4: .4byte gUnknown_083DB694
-_080E95C8: .4byte _080E95CC
- .align 2, 0
-_080E95CC:
- .4byte _080E95F2
- .4byte _080E95F6
- .4byte _080E9600
- .4byte _080E960A
- .4byte _080E95E4
- .4byte _080E95EE
-_080E95E4:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E9620
- b _080E9612
-_080E95EE:
- movs r0, 0x2
- b _080E9602
-_080E95F2:
- movs r0, 0x3
- b _080E95F8
-_080E95F6:
- movs r0, 0
-_080E95F8:
- movs r1, 0x5
- bl sub_80E9620
- b _080E9612
-_080E9600:
- movs r0, 0x4
-_080E9602:
- movs r1, 0x11
- bl sub_80E9620
- b _080E9612
-_080E960A:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E9620
-_080E9612:
- ldr r0, _080E961C @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E961C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E95A4
-
- thumb_func_start sub_80E9620
-sub_80E9620: @ 80E9620
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r1, 0
- mov r10, r1
- lsrs r7, r0, 16
- mov r9, r1
- ldr r0, _080E9644 @ =gUnknown_083DB694
- ldr r0, [r0]
- b _080E971A
- .align 2, 0
-_080E9644: .4byte gUnknown_083DB694
-_080E9648:
- ldr r6, [sp, 0x14]
- movs r2, 0
- mov r8, r2
- adds r0, r7, 0x2
- str r0, [sp, 0x1C]
- mov r1, r9
- adds r1, 0x1
- str r1, [sp, 0x18]
- b _080E96E4
-_080E965A:
- mov r2, r10
- lsls r0, r2, 1
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _080E9690 @ =0x0000ffff
- cmp r0, r2
- bne _080E969C
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r0, _080E9694 @ =0x06007000
- adds r1, r6, 0
- adds r2, r7, 0
- ldr r3, _080E9698 @ =gUnknown_083DBE1C
- bl sub_8095C8C
- adds r0, r6, 0
- adds r0, 0xB
- b _080E96CC
- .align 2, 0
-_080E9690: .4byte 0x0000ffff
-_080E9694: .4byte 0x06007000
-_080E9698: .4byte gUnknown_083DBE1C
-_080E969C:
- ldr r0, _080E9738 @ =0x0000a140
- adds r4, r5, r0
- ldrh r1, [r1]
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_80EB218
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- mov r1, r9
- lsls r0, r1, 1
- add r0, r8
- adds r1, r5, 0
- adds r1, 0x8C
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xB
- ldrb r1, [r1]
- adds r0, r1
-_080E96CC:
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080E96E4:
- ldr r0, _080E973C @ =gUnknown_083DB694
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- bge _080E970A
- ldrb r2, [r5, 0xA]
- cmp r10, r2
- bcc _080E965A
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- ldr r0, _080E9740 @ =gUnknown_083DBEA8
- bl MenuPrint
-_080E970A:
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 16
- lsrs r7, r0, 16
- ldr r2, [sp, 0x18]
- lsls r0, r2, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, 0
-_080E971A:
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r9, r0
- blt _080E9648
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9738: .4byte 0x0000a140
-_080E973C: .4byte gUnknown_083DB694
-_080E9740: .4byte gUnknown_083DBEA8
- thumb_func_end sub_80E9620
-
- thumb_func_start sub_80E9744
-sub_80E9744: @ 80E9744
- push {lr}
- ldr r0, _080E9760 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E9764 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E97B2
- lsls r0, 2
- ldr r1, _080E9768 @ =_080E976C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9760: .4byte gWindowConfig_81E6D8C
-_080E9764: .4byte gUnknown_083DB694
-_080E9768: .4byte _080E976C
- .align 2, 0
-_080E976C:
- .4byte _080E9792
- .4byte _080E9796
- .4byte _080E97A0
- .4byte _080E97AA
- .4byte _080E9784
- .4byte _080E978E
-_080E9784:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E97C0
- b _080E97B2
-_080E978E:
- movs r0, 0x2
- b _080E97A2
-_080E9792:
- movs r0, 0x3
- b _080E9798
-_080E9796:
- movs r0, 0
-_080E9798:
- movs r1, 0x5
- bl sub_80E97C0
- b _080E97B2
-_080E97A0:
- movs r0, 0x4
-_080E97A2:
- movs r1, 0x11
- bl sub_80E97C0
- b _080E97B2
-_080E97AA:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E97C0
-_080E97B2:
- ldr r0, _080E97BC @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E97BC: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9744
-
- thumb_func_start sub_80E97C0
-sub_80E97C0: @ 80E97C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r7, 0
- movs r3, 0
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- ldr r0, [r1]
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r3, r0
- bge _080E98A6
-_080E97EA:
- ldr r1, [r1]
- ldr r0, _080E98BC @ =0x0000a19a
- adds r2, r1, r0
- movs r6, 0
- adds r0, r1, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r4, [sp]
- lsls r4, 24
- mov r8, r4
- lsls r4, r5, 24
- mov r9, r4
- adds r5, 0x2
- mov r10, r5
- adds r3, 0x1
- str r3, [sp, 0x4]
- cmp r6, r0
- bge _080E985E
- ldrb r1, [r1, 0xA]
- cmp r7, r1
- bcs _080E985E
- ldr r0, _080E98B8 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r5, _080E98C0 @ =0x0000ffff
-_080E981E:
- lsls r0, r7, 1
- adds r1, r4, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r5
- beq _080E983E
- adds r1, r0, 0
- adds r0, r2, 0
- movs r2, 0
- bl sub_80EB218
- adds r2, r0, 0
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
-_080E983E:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E985E
- ldrb r0, [r4, 0xA]
- cmp r7, r0
- bcc _080E981E
-_080E985E:
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- ldr r4, [r1]
- adds r0, r4, 0
- adds r0, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xB
- muls r1, r0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- lsls r1, 3
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _080E98BC @ =0x0000a19a
- adds r0, r4, r2
- mov r3, r8
- lsrs r1, r3, 24
- mov r3, r9
- lsrs r2, r3, 24
- bl MenuPrint
- mov r1, r10
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x4]
- lsls r0, r2, 24
- lsrs r3, r0, 24
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- adds r4, 0x84
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r3, r0
- blt _080E97EA
-_080E98A6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E98B8: .4byte gUnknown_083DB694
-_080E98BC: .4byte 0x0000a19a
-_080E98C0: .4byte 0x0000ffff
- thumb_func_end sub_80E97C0
-
- thumb_func_start sub_80E98C4
-sub_80E98C4: @ 80E98C4
- push {lr}
- ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E98E4 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9936
- lsls r0, 2
- ldr r1, _080E98E8 @ =_080E98EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E98E0: .4byte gWindowConfig_81E6D8C
-_080E98E4: .4byte gUnknown_083DB694
-_080E98E8: .4byte _080E98EC
- .align 2, 0
-_080E98EC:
- .4byte _080E990A
- .4byte _080E9910
- .4byte _080E9916
- .4byte _080E991A
- .4byte _080E9904
- .4byte _080E990A
-_080E9904:
- movs r1, 0x4
- movs r3, 0x2
- b _080E991E
-_080E990A:
- movs r1, 0x3
- movs r3, 0x2
- b _080E991E
-_080E9910:
- movs r1, 0x1
- movs r3, 0x3
- b _080E991E
-_080E9916:
- movs r1, 0x4
- b _080E991C
-_080E991A:
- movs r1, 0x3
-_080E991C:
- movs r3, 0x1
-_080E991E:
- lsls r3, 1
- adds r3, r1, r3
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- movs r2, 0x1B
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080E993C @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
-_080E9936:
- pop {r0}
- bx r0
- .align 2, 0
-_080E993C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E98C4
-
- thumb_func_start sub_80E9940
-sub_80E9940: @ 80E9940
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- movs r4, 0x7
- ands r4, r5
- lsls r3, r4, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0x2
- movs r2, 0x1F
- bl MenuFillWindowRectWithBlankTile
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80E9A7C
- lsls r4, 1
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_80E9A60
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9940
-
- thumb_func_start sub_80E9974
-sub_80E9974: @ 80E9974
- push {r4-r6,lr}
- ldr r0, _080E99C4 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- ldr r0, _080E99C8 @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E99D4
- ldr r1, _080E99CC @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r1, r0, 16
- lsrs r4, r1, 16
- adds r0, 0x4
- cmp r4, r0
- bge _080E9A02
- adds r5, r2, 0
- ldr r2, _080E99CC @ =0x000001b5
- adds r6, r5, r2
-_080E99A4:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E99D0 @ =0x0000a0f5
- adds r0, r5, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, 0x4
- cmp r4, r0
- blt _080E99A4
- b _080E9A02
- .align 2, 0
-_080E99C4: .4byte gWindowConfig_81E6D54
-_080E99C8: .4byte gUnknown_083DB694
-_080E99CC: .4byte 0x000001b5
-_080E99D0: .4byte 0x0000a0f5
-_080E99D4:
- bl sub_80E9AD4
- ldr r4, _080E9A08 @ =gUnknown_083DBEAC
- ldr r0, [r4]
- movs r1, 0x2
- movs r2, 0
- bl sub_80E9A60
- ldr r0, [r4, 0x4]
- movs r1, 0x2
- movs r2, 0x2
- bl sub_80E9A60
- ldr r0, [r4, 0x8]
- movs r1, 0x2
- movs r2, 0x4
- bl sub_80E9A60
- ldr r0, [r4, 0xC]
- movs r1, 0x2
- movs r2, 0x6
- bl sub_80E9A60
-_080E9A02:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A08: .4byte gUnknown_083DBEAC
- thumb_func_end sub_80E9974
-
- thumb_func_start sub_80E9A14
-sub_80E9A14: @ 80E9A14
- push {lr}
- bl sub_80E9A4C
- ldr r0, _080E9A44 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E9A40
- movs r0, 0xDD
- lsls r0, 1
- adds r2, r1, r0
- ldr r3, _080E9A48 @ =0x000001b5
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
-_080E9A40:
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A44: .4byte gUnknown_083DB694
-_080E9A48: .4byte 0x000001b5
- thumb_func_end sub_80E9A14
-
- thumb_func_start sub_80E9A4C
-sub_80E9A4C: @ 80E9A4C
- ldr r0, _080E9A5C @ =gUnknown_083DB694
- ldr r0, [r0]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080E9A5C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A4C
-
- thumb_func_start sub_80E9A60
-sub_80E9A60: @ 80E9A60
- push {lr}
- lsls r2, 16
- movs r3, 0xF0
- lsls r3, 12
- ands r3, r2
- lsls r1, 24
- lsrs r1, 24
- lsrs r3, 16
- adds r2, r3, 0
- bl MenuPrint
- pop {r0}
- bx r0
- thumb_func_end sub_80E9A60
-
- thumb_func_start sub_80E9A7C
-sub_80E9A7C: @ 80E9A7C
- push {r4-r7,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r0, r7, 17
- lsrs r5, r0, 16
- movs r4, 0
- ldr r0, _080E9AD0 @ =gUnknown_083DB694
- ldr r6, [r0]
-_080E9A8E:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x58
- muls r0, r4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r1, r7, 1
- adds r1, r4, r1
- adds r0, r6, 0
- adds r0, 0x2A
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0xB
- bl sub_80EAD64
- adds r2, r0, 0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r6, 0x28]
- cmp r5, r0
- bcs _080E9ACA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E9A8E
-_080E9ACA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AD0: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A7C
-
- thumb_func_start sub_80E9AD4
-sub_80E9AD4: @ 80E9AD4
- push {r4,lr}
- ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- movs r4, 0
-_080E9ADE:
- adds r0, r4, 0
- bl sub_80E9C74
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080E9ADE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AF4: .4byte gWindowConfig_81E6D54
- thumb_func_end sub_80E9AD4
-
- thumb_func_start sub_80E9AF8
-sub_80E9AF8: @ 80E9AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- bl sub_80E9C74
- ldr r4, _080E9B7C @ =gUnknown_083DB694
- ldr r5, [r4]
- ldr r0, _080E9B80 @ =0x0000a140
- adds r0, r5
- mov r8, r0
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- ldr r2, _080E9B84 @ =0x0000a143
- adds r2, r5
- mov r8, r2
- adds r0, r5, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E9BF4
- movs r6, 0
- ldr r3, _080E9B88 @ =0x00009cd2
- adds r0, r5, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- blt _080E9B4A
- b _080E9C52
-_080E9B4A:
- lsls r0, r7, 2
- mov r9, r0
- ldr r1, _080E9B8C @ =0x00009d56
- adds r1, r5, r1
- str r1, [sp]
- lsls r2, r7, 17
- mov r10, r2
-_080E9B58:
- lsls r4, r6, 1
- mov r3, r9
- adds r0, r4, r3
- ldr r1, [sp]
- adds r0, r1, r0
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- adds r5, r4, 0
- cmp r0, 0x7
- bne _080E9B94
- ldr r0, _080E9B90 @ =gWindowConfig_81E6D70
- bl BasicInitMenuWindow
- b _080E9B9A
- .align 2, 0
-_080E9B7C: .4byte gUnknown_083DB694
-_080E9B80: .4byte 0x0000a140
-_080E9B84: .4byte 0x0000a143
-_080E9B88: .4byte 0x00009cd2
-_080E9B8C: .4byte 0x00009d56
-_080E9B90: .4byte gWindowConfig_81E6D70
-_080E9B94:
- ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
-_080E9B9A:
- ldr r2, _080E9BE4 @ =gUnknown_083DB694
- ldr r4, [r2]
- mov r3, r9
- adds r1, r5, r3
- ldr r2, _080E9BE8 @ =0x00009d56
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- ldr r3, _080E9BEC @ =0x0000a140
- adds r0, r4, r3
- movs r1, 0xB
- muls r1, r6
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- mov r3, r10
- lsrs r2, r3, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080E9BF0 @ =0x00009cd2
- adds r4, r0
- adds r4, r7
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r6, r0
- blt _080E9B58
- b _080E9C52
- .align 2, 0
-_080E9BE0: .4byte gWindowConfig_81E6D54
-_080E9BE4: .4byte gUnknown_083DB694
-_080E9BE8: .4byte 0x00009d56
-_080E9BEC: .4byte 0x0000a140
-_080E9BF0: .4byte 0x00009cd2
-_080E9BF4:
- ldr r0, _080E9C64 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- movs r6, 0
- ldr r1, _080E9C68 @ =0x00009cd2
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E9C52
- adds r4, r5, 0
- adds r0, r4, r1
- adds r0, r7
- mov r9, r0
- lsls r5, r7, 17
-_080E9C16:
- lsls r1, r6, 1
- lsls r0, r7, 2
- adds r1, r0
- ldr r2, _080E9C6C @ =0x00009d56
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- movs r0, 0xB
- adds r1, r6, 0
- muls r1, r0
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _080E9C70 @ =0x0000a140
- adds r0, r4, r3
- lsrs r2, r5, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r9
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r6, r0
- blt _080E9C16
-_080E9C52:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9C64: .4byte gWindowConfig_81E6D54
-_080E9C68: .4byte 0x00009cd2
-_080E9C6C: .4byte 0x00009d56
-_080E9C70: .4byte 0x0000a140
- thumb_func_end sub_80E9AF8
-
- thumb_func_start sub_80E9C74
-sub_80E9C74: @ 80E9C74
- push {lr}
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- lsls r3, r1, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0
- movs r2, 0x1D
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C74
-
- thumb_func_start sub_80E9C94
-sub_80E9C94: @ 80E9C94
- push {r4-r6,lr}
- ldr r0, _080E9CAC @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r2, _080E9CB0 @ =0x00009d54
- adds r1, r0, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x3
- bgt _080E9CB4
- lsls r0, 16
- lsrs r0, 16
- b _080E9CB6
- .align 2, 0
-_080E9CAC: .4byte gUnknown_083DB694
-_080E9CB0: .4byte 0x00009d54
-_080E9CB4:
- movs r0, 0x4
-_080E9CB6:
- adds r5, r0, 0
- movs r4, 0
- cmp r4, r5
- bcs _080E9CF4
- ldr r0, _080E9CE0 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E9CE4 @ =0x00009d55
- adds r6, r0, r1
-_080E9CC6:
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- bl sub_80E9AF8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _080E9CC6
- b _080E9CF4
- .align 2, 0
-_080E9CE0: .4byte gUnknown_083DB694
-_080E9CE4: .4byte 0x00009d55
-_080E9CE8:
- adds r0, r4, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_80E9C74
-_080E9CF4:
- cmp r4, 0x3
- bls _080E9CE8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C94
-
- thumb_func_start sub_80E9D00
-sub_80E9D00: @ 80E9D00
- push {r4-r6,lr}
- ldr r0, _080E9D28 @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- ble _080E9D30
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D2C @ =0x00009d55
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- b _080E9D46
- .align 2, 0
-_080E9D28: .4byte gUnknown_083DB694
-_080E9D2C: .4byte 0x00009d55
-_080E9D30:
- movs r0, 0
- ldrsb r0, [r1, r0]
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D74 @ =0x00009d55
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r4
-_080E9D46:
- lsls r0, 16
- lsrs r5, r0, 16
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080E9D78 @ =0x0000ffff
- cmp r4, r0
- beq _080E9D6E
- adds r6, r0, 0
-_080E9D58:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_80E9AF8
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r6
- bne _080E9D58
-_080E9D6E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9D74: .4byte 0x00009d55
-_080E9D78: .4byte 0x0000ffff
- thumb_func_end sub_80E9D00
-
- thumb_func_start sub_80E9D7C
-sub_80E9D7C: @ 80E9D7C
- push {r4-r7,lr}
- ldr r0, _080E9DAC @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- ldr r0, _080E9DB0 @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E9DB8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DB4 @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r6
- b _080E9DCC
- .align 2, 0
-_080E9DAC: .4byte gWindowConfig_81E6D54
-_080E9DB0: .4byte gUnknown_083DB694
-_080E9DB4: .4byte 0x000001b5
-_080E9DB8:
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DFC @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
-_080E9DCC:
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0
- cmp r5, r6
- bcs _080E9DF6
- ldr r0, _080E9E00 @ =gUnknown_083DB694
- ldr r7, [r0]
-_080E9DDA:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E9E04 @ =0x0000a0f5
- adds r0, r7, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r6
- bcc _080E9DDA
-_080E9DF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9DFC: .4byte 0x000001b5
-_080E9E00: .4byte gUnknown_083DB694
-_080E9E04: .4byte 0x0000a0f5
- thumb_func_end sub_80E9D7C
-
- thumb_func_start sub_80E9E08
-sub_80E9E08: @ 80E9E08
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E9E4C @ =gUnknown_083DB694
- ldr r3, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r3, r0
- movs r5, 0xE0
- lsls r5, 1
- adds r2, r3, r5
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 4
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7F
- ands r0, r1
- subs r5, 0x4
- adds r1, r3, r5
- strh r0, [r1]
- adds r1, r4, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bge _080E9E3E
- negs r1, r4
-_080E9E3E:
- ldr r2, _080E9E50 @ =0x000001bf
- adds r0, r3, r2
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9E4C: .4byte gUnknown_083DB694
-_080E9E50: .4byte 0x000001bf
- thumb_func_end sub_80E9E08
-
- thumb_func_start sub_80E9E54
-sub_80E9E54: @ 80E9E54
- push {r4,lr}
- ldr r0, _080E9E8C @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r3, r2, r0
- ldr r1, _080E9E90 @ =0x000001bf
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r4, [r3]
- adds r0, r4
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r3]
- movs r3, 0
- movs r4, 0xDE
- lsls r4, 1
- adds r1, r2, r4
- ldrh r1, [r1]
- cmp r0, r1
- bne _080E9E84
- movs r3, 0x1
-_080E9E84:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E9E8C: .4byte gUnknown_083DB694
-_080E9E90: .4byte 0x000001bf
- thumb_func_end sub_80E9E54
-
- thumb_func_start nullsub_23
-nullsub_23: @ 80E9E94
- bx lr
- thumb_func_end nullsub_23
-
- thumb_func_start sub_80E9E98
-sub_80E9E98: @ 80E9E98
- ldr r0, _080E9EA4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080E9EA4: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9E98
-
- thumb_func_start sub_80E9EA8
-sub_80E9EA8: @ 80E9EA8
- push {lr}
- ldr r1, _080E9EC4 @ =gUnknown_083DB694
- ldr r0, [r1]
- adds r0, 0xBE
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _080E9F48
- lsls r0, 2
- ldr r1, _080E9EC8 @ =_080E9ECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9EC4: .4byte gUnknown_083DB694
-_080E9EC8: .4byte _080E9ECC
- .align 2, 0
-_080E9ECC:
- .4byte _080E9EE4
- .4byte _080E9EF4
- .4byte _080E9F0C
- .4byte _080E9F24
- .4byte _080E9F38
- .4byte _080E9F44
-_080E9EE4:
- bl sub_80EA24C
- ldr r0, _080E9F08 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9EF4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA4A4
- ldr r0, _080E9F08 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F08: .4byte gUnknown_083DB694
-_080E9F0C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA704
- ldr r0, _080E9F20 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F20: .4byte gUnknown_083DB694
-_080E9F24:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- ldr r0, _080E9F34 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F34: .4byte gUnknown_083DB694
-_080E9F38:
- ldr r1, [r2]
-_080E9F3A:
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9F48
-_080E9F44:
- movs r0, 0x1
- b _080E9F4A
-_080E9F48:
- movs r0, 0
-_080E9F4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9EA8
-
- thumb_func_start sub_80E9F50
-sub_80E9F50: @ 80E9F50
- push {lr}
- ldr r0, _080E9F68 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x6
- bhi _080E9FCC
- lsls r0, 2
- ldr r1, _080E9F6C @ =_080E9F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9F68: .4byte gUnknown_083DB694
-_080E9F6C: .4byte _080E9F70
- .align 2, 0
-_080E9F70:
- .4byte _080E9F8C
- .4byte _080E9FAC
- .4byte _080E9F96
- .4byte _080E9FAC
- .4byte _080E9F9C
- .4byte _080E9FAC
- .4byte _080E9FC8
-_080E9F8C:
- bl nullsub_23
- bl sub_80EA764
- b _080E9FA0
-_080E9F96:
- bl sub_80EA5A0
- b _080E9FA0
-_080E9F9C:
- bl sub_80EA348
-_080E9FA0:
- ldr r0, _080E9FC4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9FAC:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9FCC
- ldr r0, _080E9FC4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9FCC
- .align 2, 0
-_080E9FC4: .4byte gUnknown_083DB694
-_080E9FC8:
- movs r0, 0x1
- b _080E9FCE
-_080E9FCC:
- movs r0, 0
-_080E9FCE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9F50
-
- thumb_func_start sub_80E9FD4
-sub_80E9FD4: @ 80E9FD4
- push {r4,lr}
- ldr r0, _080E9FEC @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080E9FF0
- cmp r0, 0x1
- beq _080E9FFE
- b _080EA00C
- .align 2, 0
-_080E9FEC: .4byte gUnknown_083DB694
-_080E9FF0:
- bl nullsub_23
- bl sub_80EA5A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080E9FFE:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA00C
- movs r0, 0x1
- b _080EA00E
-_080EA00C:
- movs r0, 0
-_080EA00E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E9FD4
-
- thumb_func_start sub_80EA014
-sub_80EA014: @ 80EA014
- push {r4,lr}
- ldr r0, _080EA02C @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EA030
- cmp r0, 0x1
- beq _080EA03A
- b _080EA048
- .align 2, 0
-_080EA02C: .4byte gUnknown_083DB694
-_080EA030:
- bl sub_80EA4A4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA03A:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA048
- movs r0, 0x1
- b _080EA04A
-_080EA048:
- movs r0, 0
-_080EA04A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA014
-
- thumb_func_start sub_80EA050
-sub_80EA050: @ 80EA050
- push {lr}
- ldr r0, _080EA068 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA0DC
- lsls r0, 2
- ldr r1, _080EA06C @ =_080EA070
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA068: .4byte gUnknown_083DB694
-_080EA06C: .4byte _080EA070
- .align 2, 0
-_080EA070:
- .4byte _080EA084
- .4byte _080EA08E
- .4byte _080EA09E
- .4byte _080EA0B4
- .4byte _080EA0D8
-_080EA084:
- bl nullsub_23
- bl sub_80EA764
- b _080EA0C4
-_080EA08E:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA7F4
- b _080EA0C4
-_080EA09E:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA8BC
- b _080EA0C4
-_080EA0B4:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
-_080EA0C4:
- ldr r0, _080EA0D4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA0DC
- .align 2, 0
-_080EA0D4: .4byte gUnknown_083DB694
-_080EA0D8:
- movs r0, 0x1
- b _080EA0DE
-_080EA0DC:
- movs r0, 0
-_080EA0DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA050
-
- thumb_func_start sub_80EA0E4
-sub_80EA0E4: @ 80EA0E4
- push {lr}
- ldr r0, _080EA0FC @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA17C
- lsls r0, 2
- ldr r1, _080EA100 @ =_080EA104
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA0FC: .4byte gUnknown_083DB694
-_080EA100: .4byte _080EA104
- .align 2, 0
-_080EA104:
- .4byte _080EA118
- .4byte _080EA128
- .4byte _080EA144
- .4byte _080EA15C
- .4byte _080EA178
-_080EA118:
- bl sub_80EA948
- ldr r0, _080EA140 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EA128:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EAA44
- b _080EA166
- .align 2, 0
-_080EA140: .4byte gUnknown_083DB694
-_080EA144:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EA704
- b _080EA166
-_080EA15C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
-_080EA166:
- ldr r0, _080EA174 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA17C
- .align 2, 0
-_080EA174: .4byte gUnknown_083DB694
-_080EA178:
- movs r0, 0x1
- b _080EA17E
-_080EA17C:
- movs r0, 0
-_080EA17E:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA0E4
-
- thumb_func_start sub_80EA184
-sub_80EA184: @ 80EA184
- push {r4,lr}
- ldr r0, _080EA1A0 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EA1B4
- cmp r0, 0x1
- bgt _080EA1A4
- cmp r0, 0
- beq _080EA1AA
- b _080EA1D8
- .align 2, 0
-_080EA1A0: .4byte gUnknown_083DB694
-_080EA1A4:
- cmp r0, 0x2
- beq _080EA1D0
- b _080EA1D8
-_080EA1AA:
- bl sub_80EAAD4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA1B4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA1D8
- ldr r0, _080EA1CC @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA1D8
- .align 2, 0
-_080EA1CC: .4byte gUnknown_083DB694
-_080EA1D0:
- bl sub_80E9178
- movs r0, 0x1
- b _080EA1DA
-_080EA1D8:
- movs r0, 0
-_080EA1DA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA184
-
- thumb_func_start sub_80EA1E0
-sub_80EA1E0: @ 80EA1E0
- push {r4-r6,lr}
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EA244
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EA228
- adds r5, r1, 0
- adds r6, r0, 0
-_080EA200:
- lsls r0, r4, 4
- adds r0, 0xC8
- adds r0, r5, r0
- bl sub_80EAC0C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- bl sub_80EAC48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EA200
-_080EA228:
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0xBC
- movs r0, 0x1
- strb r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080EA246
- .align 2, 0
-_080EA240: .4byte gUnknown_083DB694
-_080EA244:
- movs r0, 0x1
-_080EA246:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA1E0
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA340 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- ldr r1, _080EA344 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r6, 0x10
- str r6, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0x9
- mov r3, r8
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA340: .4byte gUnknown_083DB694
-_080EA344: .4byte 0x0000fffe
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA348
-sub_80EA348: @ 80EA348
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA49C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r5, 0xF
- str r5, [sp]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EA4A0 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0x2
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r5, 0x10
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r8
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0x2
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xE
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA49C: .4byte gUnknown_083DB694
-_080EA4A0: .4byte 0x0000fffe
- thumb_func_end sub_80EA348
-
- thumb_func_start sub_80EA4A4
-sub_80EA4A4: @ 80EA4A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA598 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r1, _080EA59C @ =0x0000ffff
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x10
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r6, 0x1
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA598: .4byte gUnknown_083DB694
-_080EA59C: .4byte 0x0000ffff
- thumb_func_end sub_80EA4A4
-
- thumb_func_start sub_80EA5A0
-sub_80EA5A0: @ 80EA5A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA6FC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EA700 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r1, r8
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x6
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6FC: .4byte gUnknown_083DB694
-_080EA700: .4byte 0x0000ffff
- thumb_func_end sub_80EA5A0
-
- thumb_func_start sub_80EA704
-sub_80EA704: @ 80EA704
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA75C @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r1, 0x14
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- ldr r3, _080EA760 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0xA
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xC2
- strh r5, [r0]
- adds r1, r6, 0
- adds r1, 0xC4
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA75C: .4byte gUnknown_083DB694
-_080EA760: .4byte 0x0000ffff
- thumb_func_end sub_80EA704
-
- thumb_func_start sub_80EA764
-sub_80EA764: @ 80EA764
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _080EA7EC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EA7F0 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1E
- movs r2, 0xC
- movs r3, 0x1F
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0xC
- adds r3, r5, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7EC: .4byte gUnknown_083DB694
-_080EA7F0: .4byte 0x0000ffff
- thumb_func_end sub_80EA764
-
- thumb_func_start sub_80EA7F4
-sub_80EA7F4: @ 80EA7F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r0, _080EA8B4 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x14
- movs r2, 0xA
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- ldr r3, _080EA8B8 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r2, r7
- mov r8, r2
- str r2, [sp, 0x4]
- movs r1, 0x19
- movs r2, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x3
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8B4: .4byte gUnknown_083DB694
-_080EA8B8: .4byte 0x0000ffff
- thumb_func_end sub_80EA7F4
-
- thumb_func_start sub_80EA8BC
-sub_80EA8BC: @ 80EA8BC
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA944 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA944: .4byte gUnknown_083DB694
- thumb_func_end sub_80EA8BC
-
- thumb_func_start sub_80EA948
-sub_80EA948: @ 80EA948
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EAA3C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EAA40 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x80
- adds r1, r7
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x5
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1A
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- movs r1, 0x1A
- movs r2, 0xA
- adds r3, r5, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x19
- movs r2, 0xA
- movs r3, 0x1A
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAA3C: .4byte gUnknown_083DB694
-_080EAA40: .4byte 0x0000ffff
- thumb_func_end sub_80EA948
-
- thumb_func_start sub_80EAA44
-sub_80EAA44: @ 80EAA44
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EAACC @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EAAD0 @ =0x0000ffff
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x17
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAACC: .4byte gUnknown_083DB694
-_080EAAD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAA44
-
- thumb_func_start sub_80EAAD4
-sub_80EAAD4: @ 80EAAD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EABCC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r1, 0xF
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r5, 0x1
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EABD0 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0
- movs r2, 0xF
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x68
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EABCC: .4byte gUnknown_083DB694
-_080EABD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAAD4
-
- thumb_func_start sub_80EABD4
-sub_80EABD4: @ 80EABD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r8, r7
- strh r1, [r0]
- strh r3, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r5, [r0, 0x6]
- strh r6, [r0, 0x8]
- strh r4, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r4, r8
- strh r4, [r0, 0xE]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD4
-
- thumb_func_start sub_80EAC0C
-sub_80EAC0C: @ 80EAC0C
- ldrh r1, [r0, 0x8]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0xA]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0xC]
- ldrh r2, [r0, 0x4]
- adds r1, r2
- strh r1, [r0, 0x4]
- ldrh r1, [r0, 0xE]
- ldrh r2, [r0, 0x6]
- adds r1, r2
- strh r1, [r0, 0x6]
- bx lr
- thumb_func_end sub_80EAC0C
-
- thumb_func_start sub_80EAC30
-sub_80EAC30: @ 80EAC30
- push {r4,r5,lr}
- ldr r4, [sp, 0xC]
- ldr r5, [sp, 0x10]
- strh r1, [r0]
- strh r2, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- str r5, [r0, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC30
-
- thumb_func_start sub_80EAC48
-sub_80EAC48: @ 80EAC48
- ldrh r1, [r0, 0x4]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0x6]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end sub_80EAC48
-
- thumb_func_start sub_80EAC5C
-sub_80EAC5C: @ 80EAC5C
- push {r4-r6,lr}
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EACAC
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EACA2
- adds r5, r1, 0
- adds r6, r0, 0
-_080EAC7C:
- lsls r1, r4, 4
- adds r1, 0xC8
- adds r1, r5, r1
- lsls r2, r4, 1
- adds r2, r4
- lsls r2, 2
- movs r0, 0xA4
- lsls r0, 1
- adds r2, r0
- adds r2, r5, r2
- ldr r0, _080EACB8 @ =0x06006800
- bl sub_80EACBC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EAC7C
-_080EACA2:
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBC
- movs r1, 0
- strb r1, [r0]
-_080EACAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EACB4: .4byte gUnknown_083DB694
-_080EACB8: .4byte 0x06006800
- thumb_func_end sub_80EAC5C
-
- thumb_func_start sub_80EACBC
-sub_80EACBC: @ 80EACBC
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- ldrh r2, [r3, 0x2]
- ldrh r0, [r3]
- subs r2, r0
- ldrh r0, [r3, 0x6]
- ldrh r1, [r3, 0x4]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r6, r2, 16
- cmp r6, 0
- ble _080EACFE
- lsls r5, r0, 16
- cmp r5, 0
- ble _080EACFE
- ldrh r1, [r3]
- ldrh r2, [r3, 0x4]
- ldr r3, [r4, 0x8]
- ldrh r0, [r4]
- str r0, [sp]
- ldrh r0, [r4, 0x2]
- str r0, [sp, 0x4]
- lsrs r0, r6, 16
- str r0, [sp, 0x8]
- lsrs r0, r5, 16
- str r0, [sp, 0xC]
- adds r0, r7, 0
- bl sub_809D104
-_080EACFE:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EACBC
-
- thumb_func_start sub_80EAD08
-sub_80EAD08: @ 80EAD08
- push {r4,r5,lr}
- ldr r0, _080EAD58 @ =gUnknown_03004DC0
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080EAD5C @ =gUnknown_03004DE0
- adds r4, r0, r1
- adds r4, 0xB0
- ldr r0, _080EAD60 @ =gUnknown_083DB694
- ldr r1, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- adds r2, r0, 0
- subs r2, 0x58
- movs r0, 0xFF
- ands r2, r0
- movs r3, 0
- movs r5, 0xFF
-_080EAD32:
- ldrh r0, [r1]
- adds r0, r3
- cmp r0, 0x80
- bne _080EAD42
- negs r0, r3
- adds r2, r0, 0
- subs r2, 0x58
- ands r2, r5
-_080EAD42:
- strh r2, [r4]
- adds r4, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080EAD32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD58: .4byte gUnknown_03004DC0
-_080EAD5C: .4byte gUnknown_03004DE0
-_080EAD60: .4byte gUnknown_083DB694
- thumb_func_end sub_80EAD08
-
- thumb_func_start sub_80EAD64
-sub_80EAD64: @ 80EAD64
- push {lr}
- lsls r1, 24
- ldr r2, _080EAD78 @ =gEasyChatGroupNames
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r1}
- bx r1
- .align 2, 0
-_080EAD78: .4byte gEasyChatGroupNames
- thumb_func_end sub_80EAD64
-
- thumb_func_start sub_80EAD7C
-sub_80EAD7C: @ 80EAD7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x14
- beq _080EADA2
- cmp r0, 0x14
- bgt _080EAD9C
- cmp r0, 0x11
- blt _080EADBA
- ldr r0, _080EAD98 @ =0x00000804
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EAD98: .4byte 0x00000804
-_080EAD9C:
- cmp r1, 0x15
- beq _080EADB0
- b _080EADBA
-_080EADA2:
- ldr r0, _080EADAC @ =0x00000806
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EADAC: .4byte 0x00000806
-_080EADB0:
- bl sub_80EB9C8
-_080EADB4:
- lsls r0, 24
- lsrs r0, 24
- b _080EADBC
-_080EADBA:
- movs r0, 0x1
-_080EADBC:
- pop {r1}
- bx r1
- thumb_func_end sub_80EAD7C
-
- thumb_func_start sub_80EADC0
-sub_80EADC0: @ 80EADC0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r2, 0x15
- bhi _080EAE82
- lsls r0, r2, 2
- ldr r1, _080EADD8 @ =_080EADDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EADD8: .4byte _080EADDC
- .align 2, 0
-_080EADDC:
- .4byte _080EAE50
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE34
- .4byte _080EAE78
-_080EAE34:
- ldr r0, _080EAE4C @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EAE70
- lsls r0, r3, 24
- lsrs r0, 24
- bl sub_80EB868
- b _080EAE7C
- .align 2, 0
-_080EAE4C: .4byte gUnknown_083DB694
-_080EAE50:
- adds r0, r3, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- b _080EAE7C
-_080EAE62:
- ldr r0, _080EAE74 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EAE82
-_080EAE70:
- movs r0, 0
- b _080EAE84
- .align 2, 0
-_080EAE74: .4byte gUnknown_083DB694
-_080EAE78:
- bl sub_80EB9C8
-_080EAE7C:
- lsls r0, 24
- lsrs r0, 24
- b _080EAE84
-_080EAE82:
- movs r0, 0x1
-_080EAE84:
- pop {r1}
- bx r1
- thumb_func_end sub_80EADC0
-
- thumb_func_start sub_80EAE88
-sub_80EAE88: @ 80EAE88
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080EAEA6
- cmp r4, 0x14
- beq _080EAEB2
- adds r0, r4, 0
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EAEBC
- movs r0, 0
- b _080EAEC2
-_080EAEA6:
- movs r0, 0
- bl GetHoennPokedexCount
- lsls r0, 16
- lsrs r0, 16
- b _080EAEC2
-_080EAEB2:
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r0, 24
- b _080EAEC2
-_080EAEBC:
- ldr r0, _080EAEC8 @ =gEasyChatGroupSizes
- adds r0, r4, r0
- ldrb r0, [r0]
-_080EAEC2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EAEC8: .4byte gEasyChatGroupSizes
- thumb_func_end sub_80EAE88
-
- thumb_func_start sub_80EAECC
-sub_80EAECC: @ 80EAECC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r7, 0
- ldr r1, _080EAF08 @ =gUnknown_083DB694
- ldr r0, [r1]
- ldr r3, _080EAF0C @ =0x0000446c
- adds r3, r0, r3
- str r3, [sp, 0x4]
-_080EAEE4:
- ldr r1, _080EAF10 @ =gEasyChatWordsByLetter
- lsls r2, r7, 1
- adds r0, r2, r1
- ldrh r4, [r0]
- adds r3, r7, 0x1
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x4]
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- mov r9, r0
- adds r6, r4, 0
- mov r10, r2
- str r3, [sp, 0x8]
- b _080EB00C
- .align 2, 0
-_080EAF08: .4byte gUnknown_083DB694
-_080EAF0C: .4byte 0x0000446c
-_080EAF10: .4byte gEasyChatWordsByLetter
-_080EAF14:
- ldr r2, _080EAFAC @ =gEasyChatWordsAlphabetized
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r4, r1, 0
- ldr r0, _080EAFB0 @ =0x0000feff
- cmp r1, r0
- bls _080EAFC8
- movs r0, 0xFF
- ands r1, r0
- movs r3, 0
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080EAFB4 @ =0x0000ffff
- cmp r5, r0
- beq _080EB00C
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
-_080EAF4A:
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- ldr r0, _080EAFAC @ =gEasyChatWordsAlphabetized
- adds r1, r0
- ldrh r4, [r1]
- lsrs r0, r4, 9
- ldr r1, _080EAFB8 @ =0x000001ff
- adds r2, r1, 0
- adds r1, r4, 0
- ands r1, r2
- str r3, [sp, 0xC]
- bl sub_80EADC0
- lsls r0, 24
- ldr r3, [sp, 0xC]
- cmp r0, 0
- beq _080EAF9E
- cmp r3, 0
- bne _080EAF9E
- ldr r3, _080EAFBC @ =gUnknown_083DB694
- ldr r2, [r3]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 1
- add r1, r8
- ldr r3, _080EAFC0 @ =0x00000b78
- adds r0, r2, r3
- adds r0, r1
- strh r4, [r0]
- ldr r0, _080EAFC4 @ =0x0000446c
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- movs r3, 0x1
-_080EAF9E:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080EAFB4 @ =0x0000ffff
- cmp r5, r1
- bne _080EAF4A
- b _080EB00C
- .align 2, 0
-_080EAFAC: .4byte gEasyChatWordsAlphabetized
-_080EAFB0: .4byte 0x0000feff
-_080EAFB4: .4byte 0x0000ffff
-_080EAFB8: .4byte 0x000001ff
-_080EAFBC: .4byte gUnknown_083DB694
-_080EAFC0: .4byte 0x00000b78
-_080EAFC4: .4byte 0x0000446c
-_080EAFC8:
- lsrs r0, r4, 9
- ldr r3, _080EB030 @ =0x000001ff
- adds r2, r3, 0
- adds r1, r4, 0
- ands r1, r2
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB00C
- ldr r0, _080EB034 @ =gUnknown_083DB694
- ldr r2, [r0]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 1
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 3
- subs r0, r7
- lsls r0, 2
- adds r1, r0
- ldr r3, _080EB038 @ =0x00000b78
- adds r0, r2, r3
- adds r0, r1
- strh r4, [r0]
- ldr r0, _080EB03C @ =0x0000446c
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EB00C:
- ldr r1, [sp]
- cmp r6, r1
- bcs _080EB014
- b _080EAF14
-_080EB014:
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- lsrs r7, r0, 16
- cmp r7, 0x1A
- bhi _080EB020
- b _080EAEE4
-_080EB020:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB030: .4byte 0x000001ff
-_080EB034: .4byte gUnknown_083DB694
-_080EB038: .4byte 0x00000b78
-_080EB03C: .4byte 0x0000446c
- thumb_func_end sub_80EAECC
-
- thumb_func_start sub_80EB040
-sub_80EB040: @ 80EB040
- push {r4-r6,lr}
- movs r3, 0
-_080EB044:
- adds r6, r3, 0x1
- cmp r3, 0
- beq _080EB094
- cmp r3, 0x15
- beq _080EB094
- cmp r3, 0x12
- beq _080EB094
- cmp r3, 0x13
- beq _080EB094
- ldr r0, _080EB0A4 @ =gEasyChatGroupWords
- lsls r1, r3, 2
- adds r1, r0
- ldr r2, [r1]
- movs r4, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _080EB094
- ldr r0, _080EB0A8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080EB0AC @ =0x000044d0
- adds r5, r0, r1
-_080EB06E:
- lsls r0, r4, 2
- lsls r1, r3, 10
- adds r0, r1
- adds r0, r5, r0
- str r2, [r0]
- ldrb r0, [r2]
- adds r1, r4, 0x1
- cmp r0, 0xFF
- beq _080EB088
-_080EB080:
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB080
-_080EB088:
- adds r2, 0x1
- lsls r0, r1, 16
- lsrs r4, r0, 16
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB06E
-_080EB094:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, 0x15
- bls _080EB044
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB0A4: .4byte gEasyChatGroupWords
-_080EB0A8: .4byte gUnknown_083DB694
-_080EB0AC: .4byte 0x000044d0
- thumb_func_end sub_80EB040
-
- thumb_func_start sub_80EB0B0
-sub_80EB0B0: @ 80EB0B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r3, _080EB184 @ =gUnknown_083DB694
- ldr r4, [r3]
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r5, [r0]
- cmp r5, 0
- bne _080EB19C
- movs r0, 0xDC
- lsls r0, 1
- adds r2, r4, r0
- ldrb r6, [r2]
- lsls r1, r6, 1
- ldr r7, _080EB188 @ =0x000044a2
- adds r0, r4, r7
- adds r0, r1
- strh r5, [r0]
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r1, _080EB18C @ =gEasyChatGroupOrders
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp]
- movs r1, 0
- mov r8, r1
- ldr r1, _080EB190 @ =gEasyChatGroupSizes
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB0FE
- b _080EB1FE
-_080EB0FE:
- movs r2, 0xDC
- lsls r2, 1
- adds r2, r4, r2
- str r2, [sp, 0x4]
- lsls r5, r6, 24
- mov r10, r5
-_080EB10A:
- mov r1, r8
- lsls r0, r1, 1
- ldr r2, [sp]
- adds r5, r0, r2
- ldrh r1, [r5]
- mov r2, r10
- lsrs r0, r2, 24
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB16A
- ldr r0, _080EB184 @ =gUnknown_083DB694
- ldr r3, [r0]
- lsls r1, r7, 1
- mov r2, r9
- lsls r0, r2, 2
- adds r1, r0
- ldr r0, _080EB194 @ =0x00009d56
- adds r4, r3, r0
- adds r4, r1
- movs r0, 0x7F
- ands r0, r6
- lsls r0, 9
- ldrh r1, [r5]
- ldr r5, _080EB198 @ =0x000001ff
- adds r2, r5, 0
- ands r1, r2
- orrs r0, r1
- strh r0, [r4]
- lsls r0, r6, 1
- ldr r1, _080EB188 @ =0x000044a2
- adds r3, r1
- adds r3, r0
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _080EB16A
- movs r7, 0
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
-_080EB16A:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _080EB190 @ =gEasyChatGroupSizes
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB10A
- b _080EB1FE
- .align 2, 0
-_080EB184: .4byte gUnknown_083DB694
-_080EB188: .4byte 0x000044a2
-_080EB18C: .4byte gEasyChatGroupOrders
-_080EB190: .4byte gEasyChatGroupSizes
-_080EB194: .4byte 0x00009d56
-_080EB198: .4byte 0x000001ff
-_080EB19C:
- movs r5, 0xDC
- lsls r5, 1
- adds r0, r4, r5
- ldrb r2, [r0]
- movs r3, 0
- movs r6, 0
- movs r5, 0
- lsls r1, r2, 1
- ldr r7, _080EB210 @ =0x0000446c
- adds r0, r4, r7
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r5, r0
- bcs _080EB1FE
- ldr r7, _080EB214 @ =0x00009d56
- adds r7, r4
- mov r8, r7
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 3
- subs r0, r2
- lsls r7, r0, 2
- ldr r0, _080EB218 @ =0x00000b78
- adds r2, r4, r0
- adds r4, r1, 0
-_080EB1CE:
- lsls r1, r3, 1
- lsls r0, r6, 2
- adds r1, r0
- add r1, r8
- lsls r0, r5, 1
- adds r0, r7
- adds r0, r2, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _080EB1F2
- movs r3, 0
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB1F2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r1, [r4]
- cmp r5, r1
- bcc _080EB1CE
-_080EB1FE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB210: .4byte 0x0000446c
-_080EB214: .4byte 0x00009d56
-_080EB218: .4byte 0x00000b78
- thumb_func_end sub_80EB0B0
-
- thumb_func_start sub_80EB218
-sub_80EB218: @ 80EB218
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r4, r6, 16
- adds r7, r4, 0
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB240
- ldr r1, _080EB23C @ =gOtherText_ThreeQuestions
- b _080EB2A2
- .align 2, 0
-_080EB23C: .4byte gOtherText_ThreeQuestions
-_080EB240:
- ldr r0, _080EB250 @ =0x0000ffff
- cmp r4, r0
- bne _080EB254
- adds r1, r5, 0
- movs r0, 0xFF
- strb r0, [r1]
- b _080EB2AA
- .align 2, 0
-_080EB250: .4byte 0x0000ffff
-_080EB254:
- lsrs r2, r6, 25
- ldr r1, _080EB268 @ =0x000001ff
- ands r1, r7
- cmp r2, 0x13
- bgt _080EB26C
- cmp r2, 0x12
- bge _080EB280
- cmp r2, 0
- beq _080EB270
- b _080EB290
- .align 2, 0
-_080EB268: .4byte 0x000001ff
-_080EB26C:
- cmp r2, 0x15
- bne _080EB290
-_080EB270:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB27C @ =gSpeciesNames
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB27C: .4byte gSpeciesNames
-_080EB280:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB28C @ =gMoveNames
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB28C: .4byte gMoveNames
-_080EB290:
- ldr r0, _080EB2CC @ =gUnknown_083DB694
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB2D0 @ =0x000044d0
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB2A2:
- adds r0, r5, 0
- bl StringCopy
- adds r1, r0, 0
-_080EB2AA:
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- mov r2, r8
- lsls r0, r2, 3
- strb r0, [r1, 0x2]
- adds r1, 0x3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB2CC: .4byte gUnknown_083DB694
-_080EB2D0: .4byte 0x000044d0
- thumb_func_end sub_80EB218
-
- thumb_func_start sub_80EB2D4
-sub_80EB2D4: @ 80EB2D4
- push {r4-r6,lr}
- lsls r5, r0, 16
- lsrs r4, r5, 16
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB2F8
- ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- b _080EB374
- .align 2, 0
-_080EB2F4: .4byte gOtherText_ThreeQuestions
-_080EB2F8:
- ldr r0, _080EB304 @ =0x0000ffff
- cmp r4, r0
- bne _080EB308
- movs r0, 0
- b _080EB374
- .align 2, 0
-_080EB304: .4byte 0x0000ffff
-_080EB308:
- lsrs r2, r5, 25
- ldr r1, _080EB31C @ =0x000001ff
- ands r1, r6
- cmp r2, 0x13
- bgt _080EB320
- cmp r2, 0x12
- bge _080EB334
- cmp r2, 0
- beq _080EB324
- b _080EB344
- .align 2, 0
-_080EB31C: .4byte 0x000001ff
-_080EB320:
- cmp r2, 0x15
- bne _080EB344
-_080EB324:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB330 @ =gSpeciesNames
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB330: .4byte gSpeciesNames
-_080EB334:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB340 @ =gMoveNames
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB340: .4byte gMoveNames
-_080EB344:
- ldr r0, _080EB35C @ =gUnknown_083DB694
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB360 @ =0x000044d0
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB356:
- movs r2, 0
- b _080EB36C
- .align 2, 0
-_080EB35C: .4byte gUnknown_083DB694
-_080EB360: .4byte 0x000044d0
-_080EB364:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB36C:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB364
- adds r0, r2, 0
-_080EB374:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB2D4
-
- thumb_func_start sub_80EB37C
-sub_80EB37C: @ 80EB37C
- push {r4,r5,lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB3A0 @ =0x0000ffff
- cmp r3, r0
- beq _080EB3EA
- lsrs r2, r1, 25
- ldr r5, _080EB3A4 @ =0x000001ff
- ands r5, r3
- cmp r2, 0x15
- bhi _080EB3F4
- cmp r2, 0x13
- bgt _080EB3A8
- cmp r2, 0x12
- bge _080EB3AC
- cmp r2, 0
- beq _080EB3AC
- b _080EB3E0
- .align 2, 0
-_080EB3A0: .4byte 0x0000ffff
-_080EB3A4: .4byte 0x000001ff
-_080EB3A8:
- cmp r2, 0x15
- bne _080EB3E0
-_080EB3AC:
- ldr r0, _080EB3D8 @ =gEasyChatGroupWords
- lsls r1, r2, 2
- adds r1, r0
- ldr r4, [r1]
- movs r3, 0
- ldr r0, _080EB3DC @ =gEasyChatGroupSizes
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080EB3F4
- adds r1, r0, 0
-_080EB3C2:
- lsls r0, r3, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r5, r0
- beq _080EB3EA
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _080EB3C2
- b _080EB3F4
- .align 2, 0
-_080EB3D8: .4byte gEasyChatGroupWords
-_080EB3DC: .4byte gEasyChatGroupSizes
-_080EB3E0:
- ldr r0, _080EB3F0 @ =gEasyChatGroupSizes
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080EB3F4
-_080EB3EA:
- movs r0, 0
- b _080EB3F6
- .align 2, 0
-_080EB3F0: .4byte gEasyChatGroupSizes
-_080EB3F4:
- movs r0, 0x1
-_080EB3F6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB37C
-
- thumb_func_start de_sub_80EB748
-de_sub_80EB748: @ 80EB3FC
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- movs r7, 0
- cmp r3, 0x13
- bgt _080EB412
- cmp r3, 0x12
- bge _080EB416
- cmp r3, 0
- beq _080EB416
- b _080EB458
-_080EB412:
- cmp r3, 0x15
- bne _080EB458
-_080EB416:
- ldr r1, _080EB438 @ =gEasyChatGroupWords
- lsls r0, r3, 2
- adds r0, r1
- ldr r4, [r0]
- movs r2, 0
- ldr r0, _080EB43C @ =gEasyChatGroupSizes
- adds r1, r3, r0
- adds r6, r0, 0
- ldrb r1, [r1]
- cmp r2, r1
- bge _080EB45A
- ldrh r0, [r4]
- cmp r5, r0
- bne _080EB440
- movs r7, 0
- b _080EB45A
- .align 2, 0
-_080EB438: .4byte gEasyChatGroupWords
-_080EB43C: .4byte gEasyChatGroupSizes
-_080EB440:
- adds r2, 0x1
- adds r0, r3, r6
- ldrb r0, [r0]
- cmp r2, r0
- bge _080EB45A
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r5, r0
- bne _080EB440
- adds r7, r2, 0
- b _080EB45A
-_080EB458:
- adds r7, r5, 0
-_080EB45A:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end de_sub_80EB748
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_1.s b/asm/battle_1.s
index f0a883ec4..cd925e10d 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1,6 +1,6 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -448,16 +448,16 @@ _0800D748: .4byte 0x0000bf40
sub_800D74C: @ 800D74C
push {r4,lr}
movs r0, 0x12
- bl SetTextWindowBaseTileNum
+ bl TextWindow_SetBaseTileNum
ldr r4, _0800D79C @ =gUnknown_03004210
adds r0, r4, 0
movs r1, 0x1
- bl LoadTextWindowGraphics_OverridePalSlot
+ bl TextWindow_LoadStdFrameGraphicsOverridePal
movs r0, 0x22
- bl SetTextWindowBaseTileNum
+ bl TextWindow_SetBaseTileNum
adds r0, r4, 0
movs r1, 0x1
- bl LoadTextWindowGraphics_OverridePalSlot
+ bl TextWindow_LoadStdFrameGraphicsOverridePal
ldr r3, _0800D7A0 @ =gPlttBufferUnfaded
adds r0, r3, 0
adds r0, 0xB8
@@ -794,6 +794,77 @@ _0800DAB0: .4byte 0x0600d000
_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
thumb_func_end DrawMainBattleBackground
+.if DEBUG
+ thumb_func_start sub_800DAB8
+sub_800DAB8:
+.syntax divided
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffffc
+ ldr r0, ._113 @ gUnknown_08D00000
+ mov r1, #0xc0
+ lsl r1, r1, #0x13
+ bl LZDecompressVram
+ ldr r0, ._113 + 4 @ gUnknown_08D00524
+ ldr r4, ._113 + 8 @ 0x600c000
+ mov r2, #0x80
+ lsl r2, r2, #0x4
+ add r1, r4, #0
+ bl CpuSet
+ ldr r0, ._113 + 12 @ gUnknown_08D004E0
+ mov r1, #0x0
+ mov r2, #0x40
+ bl LoadCompressedPalette
+ bl sub_800D74C
+ bl DrawMainBattleBackground
+ ldr r0, ._113 + 16 @ gBattleTypeFlags
+ ldrh r1, [r0]
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._112 @cond_branch
+ ldr r0, ._113 + 20 @ 0x6000600
+ mov r1, #0x0
+ add r2, r4, #0
+ mov r3, #0x1
+ bl debug_sub_8008218
+ ldr r5, ._113 + 24 @ 0x101
+ mov r4, #0x1
+ str r4, [sp]
+ add r0, r5, #0
+ mov r1, #0x3
+ mov r2, #0x1
+ mov r3, #0x3
+ bl debug_sub_8008264
+ str r4, [sp]
+ add r0, r5, #0
+ mov r1, #0x3
+ mov r2, #0x15
+ mov r3, #0x3
+ bl debug_sub_8008264
+ str r4, [sp]
+ add r0, r5, #0
+ mov r1, #0x3
+ mov r2, #0x29
+ mov r3, #0x3
+ bl debug_sub_8008264
+._112:
+ add sp, sp, #0x4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._114:
+ .align 2, 0
+._113:
+ .word gUnknown_08D00000
+ .word gUnknown_08D00524
+ .word 0x600c000
+ .word gUnknown_08D004E0
+ .word gBattleTypeFlags
+ .word 0x6000600
+ .word 0x101
+.syntax unified
+ thumb_func_end sub_800DAB8
+.else
thumb_func_start sub_800DAB8
sub_800DAB8: @ 800DAB8
push {lr}
@@ -820,6 +891,7 @@ _0800DAEC: .4byte gUnknown_08D00524
_0800DAF0: .4byte 0x0600c000
_0800DAF4: .4byte gUnknown_08D004E0
thumb_func_end sub_800DAB8
+.endif
thumb_func_start sub_800DAF8
sub_800DAF8: @ 800DAF8
@@ -1055,9 +1127,9 @@ _0800DE88:
str r0, [sp, 0x4]
adds r0, r1, 0
adds r1, r7, 0
- bl sub_8002E4C
+ bl Text_InitWindow8002E4C
ldr r0, [sp, 0xC]
- bl sub_8002F44
+ bl Text_PrintWindow8002F44
ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
adds r4, r2
ldr r2, [r4]
@@ -1111,9 +1183,9 @@ _0800DF04:
movs r5, 0x1
str r5, [sp, 0x4]
adds r0, r4, 0
- bl sub_8002E4C
+ bl Text_InitWindow8002E4C
adds r0, r4, 0
- bl sub_8002F44
+ bl Text_PrintWindow8002F44
mov r0, r8
ldr r2, [r0, 0x38]
mov r0, r9
@@ -1134,9 +1206,9 @@ _0800DF04:
str r0, [sp]
str r5, [sp, 0x4]
adds r0, r4, 0
- bl sub_8002E4C
+ bl Text_InitWindow8002E4C
adds r0, r4, 0
- bl sub_8002F44
+ bl Text_PrintWindow8002F44
mov r5, r8
ldr r2, [r5, 0x44]
mov r0, r9
diff --git a/asm/battle_2.s b/asm/battle_2.s
deleted file mode 100644
index 5a751ba55..000000000
--- a/asm/battle_2.s
+++ /dev/null
@@ -1,6434 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8012324
-sub_8012324: @ 8012324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08012340 @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x4]
- ldr r0, _08012344 @ =gActiveBank
- strb r1, [r0]
- ldr r0, _08012348 @ =gNoOfAllBanks
- bl _08012F74
- .align 2, 0
-_08012340: .4byte gBattleCommunication
-_08012344: .4byte gActiveBank
-_08012348: .4byte gNoOfAllBanks
-_0801234C:
- ldr r4, _08012374 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08012378 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08012368
- bl _08012F66
-_08012368:
- lsls r0, 2
- ldr r1, _0801237C @ =_08012380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012374: .4byte gActiveBank
-_08012378: .4byte gBattleCommunication
-_0801237C: .4byte _08012380
- .align 2, 0
-_08012380:
- .4byte _0801239C
- .4byte _080124C8
- .4byte _08012A28
- .4byte _08012DA8
- .4byte _08012E50
- .4byte _08012E94
- .4byte _08012F38
-_0801239C:
- ldr r4, _08012434 @ =gSharedMem
- ldr r0, _08012438 @ =gActiveBank
- ldrb r0, [r0]
- ldr r1, _0801243C @ =0x00016068
- adds r0, r1
- adds r0, r4
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _08012440 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080123F8
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080123F8
- eors r5, r1
- adds r0, r5, 0
- bl GetBankByPlayerAI
- ldr r2, _08012444 @ =0x000160a6
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r2, _08012448 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080123F8
- ldr r4, _0801244C @ =gBattleCommunication
- adds r0, r5, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _080123F8
- bl _08012F66
-_080123F8:
- ldr r0, _08012434 @ =gSharedMem
- ldr r3, _08012444 @ =0x000160a6
- adds r0, r3
- ldrb r3, [r0]
- ldr r1, _08012448 @ =gBitTable
- ldr r4, _08012438 @ =gActiveBank
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- beq _08012468
- ldr r0, _08012450 @ =gActionForBanks
- adds r0, r2, r0
- movs r1, 0xD
- strb r1, [r0]
- ldr r0, _08012440 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08012454
- ldr r0, _0801244C @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012434: .4byte gSharedMem
-_08012438: .4byte gActiveBank
-_0801243C: .4byte 0x00016068
-_08012440: .4byte gBattleTypeFlags
-_08012444: .4byte 0x000160a6
-_08012448: .4byte gBitTable
-_0801244C: .4byte gBattleCommunication
-_08012450: .4byte gActionForBanks
-_08012454:
- ldr r0, _08012464 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x3
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012464: .4byte gBattleCommunication
-_08012468:
- ldr r1, _0801249C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _08012488
- movs r0, 0x80
- lsls r0, 15
- ands r1, r0
- cmp r1, 0
- beq _080124A8
-_08012488:
- ldr r0, _080124A0 @ =gActionForBanks
- adds r0, r2, r0
- strb r3, [r0]
- ldr r1, _080124A4 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F66
- .align 2, 0
-_0801249C: .4byte gBattleMons
-_080124A0: .4byte gActionForBanks
-_080124A4: .4byte gBattleCommunication
-_080124A8:
- ldr r0, _080124C0 @ =gActionForBanks
- ldrb r1, [r0]
- ldr r0, _080124C4 @ =gBattleBufferB
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0
- bl Emitcmd18
- bl _08012E32
- .align 2, 0
-_080124C0: .4byte gActionForBanks
-_080124C4: .4byte gBattleBufferB
-_080124C8:
- ldr r4, _08012520 @ =gBattleExecBuffer
- ldr r1, _08012524 @ =gBitTable
- ldr r3, _08012528 @ =gActiveBank
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _080124F6
- bl _08012F66
-_080124F6:
- ldr r2, _0801252C @ =gActionForBanks
- adds r2, r5, r2
- ldr r1, _08012530 @ =gBattleBufferB
- lsls r0, r5, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08012514
- b _08012968
-_08012514:
- lsls r0, 2
- ldr r1, _08012534 @ =_08012538
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012520: .4byte gBattleExecBuffer
-_08012524: .4byte gBitTable
-_08012528: .4byte gActiveBank
-_0801252C: .4byte gActionForBanks
-_08012530: .4byte gBattleBufferB
-_08012534: .4byte _08012538
- .align 2, 0
-_08012538:
- .4byte _0801256C
- .4byte _080126B4
- .4byte _080126E0
- .4byte _08012968
- .4byte _08012968
- .4byte _080128B0
- .4byte _08012908
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _0801292C
-_0801256C:
- bl AreAllMovesUnusable
- lsls r0, 24
- cmp r0, 0
- beq _080125D0
- ldr r0, _080125B4 @ =gBattleCommunication
- ldr r2, _080125B8 @ =gActiveBank
- ldrb r1, [r2]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _080125BC @ =gSharedMem
- ldrb r0, [r2]
- ldr r1, _080125C0 @ =0x00016060
- adds r0, r1
- adds r0, r3
- strb r4, [r0]
- ldrb r0, [r2]
- ldr r4, _080125C4 @ =0x00016094
- adds r0, r4
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r2]
- ldr r0, _080125C8 @ =0x00016010
- adds r2, r1, r0
- adds r2, r3
- ldr r0, _080125CC @ =gBattleBufferB
- lsls r1, 9
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- bl _08012F90
- .align 2, 0
-_080125B4: .4byte gBattleCommunication
-_080125B8: .4byte gActiveBank
-_080125BC: .4byte gSharedMem
-_080125C0: .4byte 0x00016060
-_080125C4: .4byte 0x00016094
-_080125C8: .4byte 0x00016010
-_080125CC: .4byte gBattleBufferB
-_080125D0:
- ldr r1, _080125FC @ =gDisableStructs
- ldr r5, _08012600 @ =gActiveBank
- ldrb r4, [r5]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r2, [r0, 0x6]
- cmp r2, 0
- beq _0801260C
- ldr r1, _08012604 @ =gChosenMovesByBanks
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _08012608 @ =gBattleCommunication
- ldrb r0, [r5]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F90
- .align 2, 0
-_080125FC: .4byte gDisableStructs
-_08012600: .4byte gActiveBank
-_08012604: .4byte gChosenMovesByBanks
-_08012608: .4byte gBattleCommunication
-_0801260C:
- add r2, sp, 0x4
- ldr r3, _080126AC @ =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r2, 0x12]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x22
- ldrb r0, [r0]
- strb r0, [r2, 0x13]
- movs r4, 0
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x18]
- add r2, sp, 0x10
- mov r10, r2
- mov r8, r3
- adds r7, r5, 0
- movs r6, 0x58
- movs r3, 0xC
- add r3, r8
- mov r9, r3
- add r5, sp, 0x4
-_0801264E:
- lsls r2, r4, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2, r0
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- ldr r0, [sp, 0x18]
- adds r3, r0, r4
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r2, r1
- add r2, r9
- ldrh r0, [r2]
- add r1, r8
- adds r1, 0x3B
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl CalculatePPWithBonus
- mov r2, r10
- adds r1, r2, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801264E
- ldr r0, _080126B0 @ =gBattleTypeFlags
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- movs r0, 0
- movs r2, 0
- add r3, sp, 0x4
- bl Emitcmd20
- b _0801289E
- .align 2, 0
-_080126AC: .4byte gBattleMons
-_080126B0: .4byte gBattleTypeFlags
-_080126B4:
- ldr r0, _080126D0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _080126D4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080126C2
- b _08012908
-_080126C2:
- ldr r1, _080126D8 @ =gUnknown_02024C1C
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed
- b _080129CC
- .align 2, 0
-_080126D0: .4byte gBattleTypeFlags
-_080126D4: .4byte 0x00000902
-_080126D8: .4byte gUnknown_02024C1C
-_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed
-_080126E0:
- ldr r3, _08012738 @ =gSharedMem
- ldr r5, _0801273C @ =gActiveBank
- ldrb r0, [r5]
- ldr r4, _08012740 @ =0x00016064
- adds r1, r0, r4
- adds r1, r3
- ldr r2, _08012744 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r7, _08012748 @ =gBattleMons
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0801274C @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08012722
- ldr r0, _08012750 @ =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _08012758
-_08012722:
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012754 @ =0x0001606c
- adds r1, r3, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x6
- b _0801286C
- .align 2, 0
-_08012738: .4byte gSharedMem
-_0801273C: .4byte gActiveBank
-_08012740: .4byte 0x00016064
-_08012744: .4byte gBattlePartyID
-_08012748: .4byte gBattleMons
-_0801274C: .4byte 0x0400e000
-_08012750: .4byte gStatuses3
-_08012754: .4byte 0x0001606c
-_08012758:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080127E0
- ldrb r1, [r5]
- str r4, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080127A8
- ldrb r0, [r5]
- muls r0, r6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _080127E0
-_080127A8:
- ldr r5, _08012808 @ =gActiveBank
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08012818
- ldr r2, _0801280C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _080127E0
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08012818
-_080127E0:
- subs r1, r4, 0x1
- lsls r1, 4
- movs r0, 0x4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08012810 @ =gLastUsedAbility
- ldrb r3, [r0]
- ldr r0, _08012808 @ =gActiveBank
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012814 @ =gSharedMem + 0x1606C
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x6
- bl EmitChoosePokemon
- b _0801289E
- .align 2, 0
-_08012808: .4byte gActiveBank
-_0801280C: .4byte gBattleMons
-_08012810: .4byte gLastUsedAbility
-_08012814: .4byte gSharedMem + 0x1606C
-_08012818:
- ldr r0, _08012830 @ =gActiveBank
- ldrb r1, [r0]
- mov r8, r0
- cmp r1, 0x2
- bne _08012840
- ldr r0, _08012834 @ =gActionForBanks
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08012840
- ldr r3, _08012838 @ =gSharedMem
- ldr r4, _0801283C @ =0x00016068
- b _08012854
- .align 2, 0
-_08012830: .4byte gActiveBank
-_08012834: .4byte gActionForBanks
-_08012838: .4byte gSharedMem
-_0801283C: .4byte 0x00016068
-_08012840:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _08012884
- ldr r0, _08012874 @ =gActionForBanks
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _08012884
- ldr r3, _08012878 @ =gSharedMem
- ldr r4, _0801287C @ =0x00016069
-_08012854:
- adds r0, r3, r4
- ldrb r2, [r0]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08012880 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r1, 0
-_0801286C:
- movs r3, 0
- bl EmitChoosePokemon
- b _0801289E
- .align 2, 0
-_08012874: .4byte gActionForBanks
-_08012878: .4byte gSharedMem
-_0801287C: .4byte 0x00016069
-_08012880: .4byte 0x0001606c
-_08012884:
- ldr r0, _080128A8 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080128AC @ =gSharedMem + 0x1606C
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl EmitChoosePokemon
-_0801289E:
- ldr r0, _080128A8 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- b _08012968
- .align 2, 0
-_080128A8: .4byte gActiveBank
-_080128AC: .4byte gSharedMem + 0x1606C
-_080128B0:
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- beq _08012968
- ldr r1, _080128EC @ =gUnknown_02024C1C
- ldr r2, _080128F0 @ =gActiveBank
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080128F4 @ =BattleScript_PrintFullBox
- str r1, [r0]
- ldr r0, _080128F8 @ =gBattleCommunication
- ldrb r1, [r2]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _080128FC @ =gSharedMem
- ldrb r0, [r2]
- ldr r4, _08012900 @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r3, [r0]
- ldrb r0, [r2]
- ldr r2, _08012904 @ =0x00016094
- adds r0, r2
- adds r0, r1
- strb r3, [r0]
- b _08012F90
- .align 2, 0
-_080128EC: .4byte gUnknown_02024C1C
-_080128F0: .4byte gActiveBank
-_080128F4: .4byte BattleScript_PrintFullBox
-_080128F8: .4byte gBattleCommunication
-_080128FC: .4byte gSharedMem
-_08012900: .4byte 0x00016060
-_08012904: .4byte 0x00016094
-_08012908:
- ldr r4, _08012924 @ =gActiveBank
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08012928 @ =gSharedMem + 0x1606C
- adds r1, r0
- movs r0, 0
- bl EmitOpenBag
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08012968
- .align 2, 0
-_08012924: .4byte gActiveBank
-_08012928: .4byte gSharedMem + 0x1606C
-_0801292C:
- ldr r4, _08012964 @ =gBattleCommunication
- mov r3, r8
- ldrb r1, [r3]
- adds r1, r4
- movs r5, 0
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r3]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strb r5, [r0]
- movs r0, 0
- bl Emitcmd50
- mov r4, r8
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08012F90
- .align 2, 0
-_08012964: .4byte gBattleCommunication
-_08012968:
- ldr r0, _08012994 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- bne _080129A8
- ldr r0, _08012998 @ =gBattleBufferB
- ldr r4, _0801299C @ =gActiveBank
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080129A8
- ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer
- bl b_call_bc_move_exec
- ldr r1, _080129A4 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- b _08012BFE
- .align 2, 0
-_08012994: .4byte gBattleTypeFlags
-_08012998: .4byte gBattleBufferB
-_0801299C: .4byte gActiveBank
-_080129A0: .4byte BattleScript_PrintCantRunFromTrainer
-_080129A4: .4byte gBattleCommunication
-_080129A8:
- bl CanRunFromBattle
- lsls r0, 24
- cmp r0, 0
- beq _08012A14
- ldr r0, _080129F4 @ =gBattleBufferB
- ldr r3, _080129F8 @ =gActiveBank
- ldrb r2, [r3]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08012A14
- ldr r1, _080129FC @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle
-_080129CC:
- str r1, [r0]
- ldr r0, _08012A04 @ =gBattleCommunication
- ldrb r1, [r3]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _08012A08 @ =gSharedMem
- ldrb r0, [r3]
- ldr r4, _08012A0C @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r3]
- ldr r3, _08012A10 @ =0x00016094
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- b _08012F90
- .align 2, 0
-_080129F4: .4byte gBattleBufferB
-_080129F8: .4byte gActiveBank
-_080129FC: .4byte gUnknown_02024C1C
-_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle
-_08012A04: .4byte gBattleCommunication
-_08012A08: .4byte gSharedMem
-_08012A0C: .4byte 0x00016060
-_08012A10: .4byte 0x00016094
-_08012A14:
- ldr r2, _08012A20 @ =gBattleCommunication
- ldr r0, _08012A24 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012A20: .4byte gBattleCommunication
-_08012A24: .4byte gActiveBank
-_08012A28:
- ldr r4, _08012A6C @ =gBattleExecBuffer
- ldr r1, _08012A70 @ =gBitTable
- ldr r3, _08012A74 @ =gActiveBank
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _08012A54
- b _08012F66
-_08012A54:
- ldr r1, _08012A78 @ =gActionForBanks
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x9
- bls _08012A62
- b _08012F66
-_08012A62:
- lsls r0, 2
- ldr r1, _08012A7C @ =_08012A80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012A6C: .4byte gBattleExecBuffer
-_08012A70: .4byte gBitTable
-_08012A74: .4byte gActiveBank
-_08012A78: .4byte gActionForBanks
-_08012A7C: .4byte _08012A80
- .align 2, 0
-_08012A80:
- .4byte _08012AA8
- .4byte _08012BB0
- .4byte _08012BE8
- .4byte _08012CE0
- .4byte _08012D04
- .4byte _08012D18
- .4byte _08012D2C
- .4byte _08012D5C
- .4byte _08012D70
- .4byte _08012D94
-_08012AA8:
- ldr r0, _08012AC8 @ =gBattleBufferB
- mov r1, r8
- ldrb r4, [r1]
- lsls r1, r4, 9
- adds r2, r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0x9
- bgt _08012ACC
- cmp r1, 0x3
- blt _08012ACC
- adds r0, r4, r3
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012AC8: .4byte gBattleBufferB
-_08012ACC:
- adds r3, r6, 0
- mov r5, r8
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r7, r3, 0x2
- adds r0, r1, r7
- ldrb r2, [r0]
- adds r3, 0x3
- mov r9, r3
- add r1, r9
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08012AF4 @ =0x0000ffff
- cmp r2, r0
- bne _08012AFC
- ldr r0, _08012AF8 @ =gBattleCommunication
- adds r0, r4, r0
- b _08012BFE
- .align 2, 0
-_08012AF4: .4byte 0x0000ffff
-_08012AF8: .4byte gBattleCommunication
-_08012AFC:
- bl sub_8015894
- lsls r0, 24
- cmp r0, 0
- beq _08012B48
- ldr r0, _08012B38 @ =gBattleCommunication
- ldrb r1, [r5]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _08012B3C @ =gSharedMem
- ldrb r0, [r5]
- ldr r4, _08012B40 @ =0x00016060
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r6, 0x1
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r5]
- ldr r1, _08012B44 @ =0x00016094
- adds r0, r1
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012B38: .4byte gBattleCommunication
-_08012B3C: .4byte gSharedMem
-_08012B40: .4byte 0x00016060
-_08012B44: .4byte 0x00016094
-_08012B48:
- ldr r6, _08012B98 @ =gSharedMem
- mov r2, r8
- ldrb r0, [r2]
- ldr r2, _08012B9C @ =0x0001608c
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BA0 @ =gChosenMovesByBanks
- mov r4, r8
- ldrb r3, [r4]
- lsls r5, r3, 1
- adds r5, r0
- ldr r4, _08012BA4 @ =gBattleMons
- adds r2, r3, r2
- adds r2, r6
- ldrb r0, [r2]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r4, 0xC
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r5]
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, _08012BA8 @ =0x00016010
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- add r0, r9
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BAC @ =gBattleCommunication
- mov r3, r8
- ldrb r1, [r3]
- b _08012E3C
- .align 2, 0
-_08012B98: .4byte gSharedMem
-_08012B9C: .4byte 0x0001608c
-_08012BA0: .4byte gChosenMovesByBanks
-_08012BA4: .4byte gBattleMons
-_08012BA8: .4byte 0x00016010
-_08012BAC: .4byte gBattleCommunication
-_08012BB0:
- ldr r2, _08012BD8 @ =gBattleBufferB
- ldr r5, _08012BDC @ =gActiveBank
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012BCE
- b _08012F60
-_08012BCE:
- ldr r0, _08012BE0 @ =gLastUsedItem
- strh r3, [r0]
- ldr r0, _08012BE4 @ =gBattleCommunication
- ldrb r1, [r5]
- b _08012E3C
- .align 2, 0
-_08012BD8: .4byte gBattleBufferB
-_08012BDC: .4byte gActiveBank
-_08012BE0: .4byte gLastUsedItem
-_08012BE4: .4byte gBattleCommunication
-_08012BE8:
- ldr r4, _08012C04 @ =gBattleBufferB
- ldr r7, _08012C08 @ =gActiveBank
- ldrb r2, [r7]
- lsls r0, r2, 9
- adds r1, r4, 0x1
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0x6
- bne _08012C10
- ldr r0, _08012C0C @ =gBattleCommunication
- adds r0, r2, r0
-_08012BFE:
- movs r1, 0
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012C04: .4byte gBattleBufferB
-_08012C08: .4byte gActiveBank
-_08012C0C: .4byte gBattleCommunication
-_08012C10:
- ldr r0, _08012CC4 @ =gSharedMem
- mov r12, r0
- ldr r3, _08012CC8 @ =0x00016068
- adds r0, r2, r3
- add r0, r12
- strb r1, [r0]
- ldr r0, _08012CCC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08012CBE
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08012CD0 @ =0x0001606c
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, r5
- add r2, r12
- lsls r0, 9
- adds r6, r4, 0x2
- adds r0, r6
- ldrb r1, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _08012CD4 @ =0x0001606d
- adds r1, r2
- add r1, r12
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _08012CD8 @ =0x0001606e
- adds r1, r3
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
-_08012CBE:
- ldr r0, _08012CDC @ =gBattleCommunication
- ldrb r1, [r7]
- b _08012E3C
- .align 2, 0
-_08012CC4: .4byte gSharedMem
-_08012CC8: .4byte 0x00016068
-_08012CCC: .4byte gBattleTypeFlags
-_08012CD0: .4byte 0x0001606c
-_08012CD4: .4byte 0x0001606d
-_08012CD8: .4byte 0x0001606e
-_08012CDC: .4byte gBattleCommunication
-_08012CE0:
- ldr r2, _08012CF8 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012CFC @ =gBattleCommunication
- ldr r0, _08012D00 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012CF8: .4byte gHitMarker
-_08012CFC: .4byte gBattleCommunication
-_08012D00: .4byte gActiveBank
-_08012D04:
- ldr r2, _08012D10 @ =gBattleCommunication
- ldr r0, _08012D14 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D10: .4byte gBattleCommunication
-_08012D14: .4byte gActiveBank
-_08012D18:
- ldr r2, _08012D24 @ =gBattleCommunication
- ldr r0, _08012D28 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D24: .4byte gBattleCommunication
-_08012D28: .4byte gActiveBank
-_08012D2C:
- ldr r2, _08012D50 @ =gBattleBufferB
- ldr r0, _08012D54 @ =gActiveBank
- ldrb r4, [r0]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012D4A
- b _08012F60
-_08012D4A:
- ldr r1, _08012D58 @ =gBattleCommunication
- adds r1, r4, r1
- b _08012E3E
- .align 2, 0
-_08012D50: .4byte gBattleBufferB
-_08012D54: .4byte gActiveBank
-_08012D58: .4byte gBattleCommunication
-_08012D5C:
- ldr r2, _08012D68 @ =gBattleCommunication
- ldr r0, _08012D6C @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D68: .4byte gBattleCommunication
-_08012D6C: .4byte gActiveBank
-_08012D70:
- ldr r2, _08012D88 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012D8C @ =gBattleCommunication
- ldr r0, _08012D90 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D88: .4byte gHitMarker
-_08012D8C: .4byte gBattleCommunication
-_08012D90: .4byte gActiveBank
-_08012D94:
- ldr r2, _08012DA0 @ =gBattleCommunication
- ldr r0, _08012DA4 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012DA0: .4byte gBattleCommunication
-_08012DA4: .4byte gActiveBank
-_08012DA8:
- ldr r3, _08012E10 @ =gBattleExecBuffer
- ldr r4, _08012E14 @ =gBitTable
- ldr r0, _08012E18 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08012DD2
- b _08012F66
-_08012DD2:
- ldr r0, _08012E1C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08012E06
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08012E06
- adds r0, r5, 0
- eors r0, r1
- bl GetBankByPlayerAI
- ldr r1, _08012E20 @ =gSharedMem
- ldr r2, _08012E24 @ =0x000160a6
- adds r1, r2
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08012E28
-_08012E06:
- movs r0, 0
- movs r1, 0
- bl EmitLinkStandbyMsg
- b _08012E30
- .align 2, 0
-_08012E10: .4byte gBattleExecBuffer
-_08012E14: .4byte gBitTable
-_08012E18: .4byte gActiveBank
-_08012E1C: .4byte gBattleTypeFlags
-_08012E20: .4byte gSharedMem
-_08012E24: .4byte 0x000160a6
-_08012E28:
- movs r0, 0
- movs r1, 0x1
- bl EmitLinkStandbyMsg
-_08012E30:
- ldr r4, _08012E48 @ =gActiveBank
-_08012E32:
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, _08012E4C @ =gBattleCommunication
- ldrb r1, [r4]
-_08012E3C:
- adds r1, r0
-_08012E3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08012F66
- .align 2, 0
-_08012E48: .4byte gActiveBank
-_08012E4C: .4byte gBattleCommunication
-_08012E50:
- ldr r3, _08012E84 @ =gBattleExecBuffer
- ldr r1, _08012E88 @ =gBitTable
- ldr r0, _08012E8C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F66
- ldr r1, _08012E90 @ =gBattleCommunication
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08012F66
- .align 2, 0
-_08012E84: .4byte gBattleExecBuffer
-_08012E88: .4byte gBitTable
-_08012E8C: .4byte gActiveBank
-_08012E90: .4byte gBattleCommunication
-_08012E94:
- ldr r2, _08012EB8 @ =gSharedMem
- ldr r5, _08012EBC @ =gActiveBank
- ldrb r1, [r5]
- ldr r3, _08012EC0 @ =0x00016060
- adds r0, r1, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08012ECC
- ldr r0, _08012EC4 @ =gBattleCommunication
- adds r0, r1, r0
- ldr r4, _08012EC8 @ =0x00016094
- adds r1, r4
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012EB8: .4byte gSharedMem
-_08012EBC: .4byte gActiveBank
-_08012EC0: .4byte 0x00016060
-_08012EC4: .4byte gBattleCommunication
-_08012EC8: .4byte 0x00016094
-_08012ECC:
- ldr r0, _08012F20 @ =gBankAttacker
- strb r1, [r0]
- ldr r7, _08012F24 @ =gBattlescriptCurrInstr
- ldr r6, _08012F28 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r4, [r0]
- str r4, [r7]
- ldr r3, _08012F2C @ =gBattleExecBuffer
- ldr r1, _08012F30 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F12
- ldr r0, _08012F34 @ =gBattleScriptingCommandsTable
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08012F12:
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r7]
- str r1, [r0]
- b _08012F66
- .align 2, 0
-_08012F20: .4byte gBankAttacker
-_08012F24: .4byte gBattlescriptCurrInstr
-_08012F28: .4byte gUnknown_02024C1C
-_08012F2C: .4byte gBattleExecBuffer
-_08012F30: .4byte gBitTable
-_08012F34: .4byte gBattleScriptingCommandsTable
-_08012F38:
- ldr r3, _08012FA0 @ =gBattleExecBuffer
- ldr r1, _08012FA4 @ =gBitTable
- ldr r0, _08012FA8 @ =gActiveBank
- ldrb r4, [r0]
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r3, [r3]
- ands r3, r0
- cmp r3, 0
- bne _08012F66
-_08012F60:
- ldr r0, _08012FAC @ =gBattleCommunication
- adds r0, r4, r0
- strb r3, [r0]
-_08012F66:
- ldr r0, _08012FA8 @ =gActiveBank
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08012FB0 @ =gNoOfAllBanks
- lsls r1, 24
- lsrs r1, 24
-_08012F74:
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r1, r0
- bcs _08012F80
- bl _0801234C
-_08012F80:
- ldr r0, _08012FAC @ =gBattleCommunication
- ldrb r0, [r0, 0x4]
- ldrb r2, [r2]
- cmp r0, r2
- bne _08012F90
- ldr r1, _08012FB4 @ =gBattleMainFunc
- ldr r0, _08012FB8 @ =sub_80133C8
- str r0, [r1]
-_08012F90:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08012FA0: .4byte gBattleExecBuffer
-_08012FA4: .4byte gBitTable
-_08012FA8: .4byte gActiveBank
-_08012FAC: .4byte gBattleCommunication
-_08012FB0: .4byte gNoOfAllBanks
-_08012FB4: .4byte gBattleMainFunc
-_08012FB8: .4byte sub_80133C8
- thumb_func_end sub_8012324
-
- thumb_func_start sub_8012FBC
-sub_8012FBC: @ 8012FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08012FE8 @ =gUnknown_02024A76
- adds r4, r0, r2
- ldrb r5, [r4]
- adds r2, r1, r2
- ldrb r3, [r2]
- strb r3, [r4]
- strb r5, [r2]
- ldr r2, _08012FEC @ =gTurnOrder
- adds r0, r2
- ldrb r5, [r0]
- adds r1, r2
- ldrb r2, [r1]
- strb r2, [r0]
- strb r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012FE8: .4byte gUnknown_02024A76
-_08012FEC: .4byte gTurnOrder
- thumb_func_end sub_8012FBC
-
- thumb_func_start GetWhoStrikesFirst
-GetWhoStrikesFirst: @ 8012FF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, [sp, 0x8]
- str r1, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, _08013070 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x21
- bne _0801305C
- ldr r0, _08013074 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801306C
-_0801305C:
- cmp r3, 0x22
- bne _08013078
- ldr r0, _08013074 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08013078
-_0801306C:
- movs r3, 0x2
- b _0801307A
- .align 2, 0
-_08013070: .4byte gBattleMons
-_08013074: .4byte gBattleWeather
-_08013078:
- movs r3, 0x1
-_0801307A:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _080130B0 @ =gBattleMons
- adds r0, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x21
- bne _0801309A
- ldr r0, _080130B4 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080130AA
-_0801309A:
- cmp r2, 0x22
- bne _080130BA
- ldr r0, _080130B4 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080130BA
-_080130AA:
- movs r7, 0x2
- b _080130BC
- .align 2, 0
-_080130B0: .4byte gBattleMons
-_080130B4: .4byte gBattleWeather
-_080130B8:
- movs r3, 0x1
-_080130BA:
- movs r7, 0x1
-_080130BC:
- ldr r1, _08013100 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- muls r3, r0
- ldr r2, _08013104 @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- mov r8, r0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _0801310C
- ldr r1, _08013108 @ =gEnigmaBerries
- mov r3, r9
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013120
- .align 2, 0
-_08013100: .4byte gBattleMons
-_08013104: .4byte gStatStageRatios
-_08013108: .4byte gEnigmaBerries
-_0801310C:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013120:
- ldr r0, _080131DC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013154
- ldr r0, _080131E0 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013154
- mov r0, r9
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08013154
- movs r0, 0x6E
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __udivsi3
- mov r8, r0
-_08013154:
- cmp r6, 0x18
- bne _0801315E
- mov r2, r8
- lsrs r2, 1
- mov r8, r2
-_0801315E:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801317C
- mov r0, r8
- lsrs r0, 2
- mov r8, r0
-_0801317C:
- cmp r6, 0x1A
- bne _08013198
- ldr r0, _080131E8 @ =gRandomTurnNumber
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013198
- movs r1, 0x1
- negs r1, r1
- mov r8, r1
-_08013198:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- adds r3, r0, 0
- muls r3, r7
- ldr r2, _080131EC @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- adds r7, r0, 0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _080131F4
- ldr r1, _080131F0 @ =gEnigmaBerries
- mov r3, r10
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013208
- .align 2, 0
-_080131DC: .4byte gBattleTypeFlags
-_080131E0: .4byte 0x00000809
-_080131E4: .4byte gBattleMons
-_080131E8: .4byte gRandomTurnNumber
-_080131EC: .4byte gStatStageRatios
-_080131F0: .4byte gEnigmaBerries
-_080131F4:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013208:
- ldr r0, _08013280 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013238
- ldr r0, _08013284 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013238
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08013238
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __udivsi3
- adds r7, r0, 0
-_08013238:
- cmp r6, 0x18
- bne _0801323E
- lsrs r7, 1
-_0801323E:
- ldr r2, _08013288 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801325A
- lsrs r7, 2
-_0801325A:
- cmp r6, 0x1A
- bne _08013274
- ldr r0, _0801328C @ =gRandomTurnNumber
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013274
- movs r7, 0x1
- negs r7, r7
-_08013274:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- beq _08013290
- movs r3, 0
- b _08013334
- .align 2, 0
-_08013280: .4byte gBattleTypeFlags
-_08013284: .4byte 0x00000809
-_08013288: .4byte gBattleMons
-_0801328C: .4byte gRandomTurnNumber
-_08013290:
- ldr r0, _080132B0 @ =gActionForBanks
- mov r3, r9
- adds r1, r3, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- bne _080132E4
- ldr r0, _080132B4 @ =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _080132B8
- movs r3, 0xA5
- b _080132E6
- .align 2, 0
-_080132B0: .4byte gActionForBanks
-_080132B4: .4byte gProtectStructs
-_080132B8:
- ldr r1, _080132D8 @ =gSharedMem
- ldr r0, _080132DC @ =0x0001608c
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r3, r9
- muls r3, r1
- adds r1, r3, 0
- adds r0, r1
- ldr r1, _080132E0 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r3, [r0]
- b _080132E6
- .align 2, 0
-_080132D8: .4byte gSharedMem
-_080132DC: .4byte 0x0001608c
-_080132E0: .4byte gBattleMons
-_080132E4:
- movs r3, 0
-_080132E6:
- mov r1, r10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013334
- ldr r0, _08013304 @ =gProtectStructs
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08013308
- movs r2, 0xA5
- b _08013336
- .align 2, 0
-_08013304: .4byte gProtectStructs
-_08013308:
- ldr r1, _08013328 @ =gSharedMem
- ldr r0, _0801332C @ =0x0001608c
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- adds r0, r1
- ldr r1, _08013330 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r2, [r0]
- b _08013336
- .align 2, 0
-_08013328: .4byte gSharedMem
-_0801332C: .4byte 0x0001608c
-_08013330: .4byte gBattleMons
-_08013334:
- movs r2, 0
-_08013336:
- ldr r4, _08013380 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- movs r1, 0x7
- ldrsb r1, [r0, r1]
- lsls r3, r2, 1
- cmp r1, 0
- bne _0801335A
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08013398
-_0801335A:
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _0801338E
- cmp r8, r7
- bne _08013384
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08013384
- movs r3, 0x2
- b _080133B4
- .align 2, 0
-_08013380: .4byte gBattleMoves
-_08013384:
- cmp r8, r7
- bcs _080133B6
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _080133B6
-_0801338E:
- cmp r1, r0
- bge _080133B6
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _080133B6
-_08013398:
- cmp r8, r7
- bne _080133AE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080133AE
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _080133B6
-_080133AE:
- cmp r8, r7
- bcs _080133B6
- movs r3, 0x1
-_080133B4:
- str r3, [sp, 0x8]
-_080133B6:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetWhoStrikesFirst
-
- thumb_func_start sub_80133C8
-sub_80133C8: @ 80133C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r0, _0801341C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08013434
- ldr r0, _08013420 @ =gActiveBank
- strb r3, [r0]
- ldr r4, _08013424 @ =gNoOfAllBanks
- mov r8, r0
- ldrb r0, [r4]
- cmp r3, r0
- bcc _080133F0
- b _08013622
-_080133F0:
- ldr r7, _08013428 @ =gUnknown_02024A76
- ldr r6, _0801342C @ =gActionForBanks
- mov r2, r8
- ldr r5, _08013430 @ =gTurnOrder
-_080133F8:
- adds r1, r3, r7
- ldrb r0, [r2]
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r3, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r0, r1
- bcc _080133F8
- b _08013622
- .align 2, 0
-_0801341C: .4byte gBattleTypeFlags
-_08013420: .4byte gActiveBank
-_08013424: .4byte gNoOfAllBanks
-_08013428: .4byte gUnknown_02024A76
-_0801342C: .4byte gActionForBanks
-_08013430: .4byte gTurnOrder
-_08013434:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013484
- ldr r0, _08013478 @ =gActiveBank
- strb r3, [r0]
- ldr r1, _0801347C @ =gNoOfAllBanks
- mov r8, r0
- adds r2, r1, 0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08013494
- ldr r0, _08013480 @ =gActionForBanks
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3
- beq _08013492
-_08013456:
- mov r7, r8
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801347C @ =gNoOfAllBanks
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08013494
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08013456
- b _08013492
- .align 2, 0
-_08013478: .4byte gActiveBank
-_0801347C: .4byte gNoOfAllBanks
-_08013480: .4byte gActionForBanks
-_08013484:
- ldr r0, _080134FC @ =gActionForBanks
- ldrb r0, [r0]
- ldr r2, _08013500 @ =gActiveBank
- mov r8, r2
- cmp r0, 0x3
- bne _08013494
- strb r3, [r2]
-_08013492:
- movs r3, 0x5
-_08013494:
- cmp r3, 0x5
- bne _08013520
- ldr r6, _08013504 @ =gUnknown_02024A76
- ldr r1, _080134FC @ =gActionForBanks
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r2, _08013508 @ =gTurnOrder
- ldrb r0, [r3]
- strb r0, [r2]
- movs r3, 0x1
- movs r5, 0
- adds r4, r1, 0
- ldr r7, _0801350C @ =gBattleMainFunc
- mov r9, r7
- ldr r0, _08013510 @ =bc_80154A0
- mov r12, r0
- ldr r1, _08013514 @ =gSharedMem
- mov r10, r1
- ldr r7, _08013518 @ =gNoOfAllBanks
- ldrb r7, [r7]
- cmp r5, r7
- bge _080134EC
- adds r7, r6, 0
- adds r6, r4, 0
- adds r4, r2, 0
- ldr r2, _08013518 @ =gNoOfAllBanks
-_080134CE:
- mov r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- beq _080134E4
- adds r1, r3, r7
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r3, 0x1
-_080134E4:
- adds r5, 0x1
- ldrb r1, [r2]
- cmp r5, r1
- blt _080134CE
-_080134EC:
- mov r2, r12
- mov r3, r9
- str r2, [r3]
- ldr r1, _0801351C @ =0x0001601d
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- b _08013632
- .align 2, 0
-_080134FC: .4byte gActionForBanks
-_08013500: .4byte gActiveBank
-_08013504: .4byte gUnknown_02024A76
-_08013508: .4byte gTurnOrder
-_0801350C: .4byte gBattleMainFunc
-_08013510: .4byte bc_80154A0
-_08013514: .4byte gSharedMem
-_08013518: .4byte gNoOfAllBanks
-_0801351C: .4byte 0x0001601d
-_08013520:
- movs r0, 0
- mov r7, r8
- strb r0, [r7]
- ldr r1, _080135B0 @ =gNoOfAllBanks
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013566
- ldr r6, _080135B4 @ =gActionForBanks
- mov r2, r8
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gTurnOrder
-_08013536:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013554
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013554:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gNoOfAllBanks
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013536
-_08013566:
- movs r0, 0
- mov r2, r8
- strb r0, [r2]
- ldr r7, _080135B0 @ =gNoOfAllBanks
- ldrb r0, [r7]
- cmp r0, 0
- beq _080135AA
- ldr r6, _080135B4 @ =gActionForBanks
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gTurnOrder
-_0801357A:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08013598
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013598:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gNoOfAllBanks
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801357A
-_080135AA:
- movs r5, 0
- b _08013618
- .align 2, 0
-_080135B0: .4byte gNoOfAllBanks
-_080135B4: .4byte gActionForBanks
-_080135B8: .4byte gUnknown_02024A76
-_080135BC: .4byte gTurnOrder
-_080135C0:
- adds r4, r5, 0x1
- adds r7, r4, 0
- ldrb r1, [r1]
- cmp r7, r1
- bge _08013616
- ldr r6, _08013640 @ =gUnknown_02024A76
- lsls r2, r5, 24
- mov r8, r2
-_080135D0:
- ldr r0, _08013644 @ =gTurnOrder
- adds r1, r5, r0
- ldrb r3, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- adds r0, r5, r6
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _0801360C
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0801360C
- cmp r2, 0x2
- beq _0801360C
- cmp r0, 0x2
- beq _0801360C
- adds r0, r3, 0
- movs r2, 0
- bl GetWhoStrikesFirst
- lsls r0, 24
- cmp r0, 0
- beq _0801360C
- lsls r1, r4, 24
- lsrs r1, 24
- mov r3, r8
- lsrs r0, r3, 24
- bl sub_8012FBC
-_0801360C:
- adds r4, 0x1
- ldr r0, _08013648 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _080135D0
-_08013616:
- adds r5, r7, 0
-_08013618:
- ldr r1, _08013648 @ =gNoOfAllBanks
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080135C0
-_08013622:
- ldr r1, _0801364C @ =gBattleMainFunc
- ldr r0, _08013650 @ =bc_80154A0
- str r0, [r1]
- ldr r0, _08013654 @ =gSharedMem
- ldr r7, _08013658 @ =0x0001601d
- adds r0, r7
- movs r1, 0
- strb r1, [r0]
-_08013632:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013640: .4byte gUnknown_02024A76
-_08013644: .4byte gTurnOrder
-_08013648: .4byte gNoOfAllBanks
-_0801364C: .4byte gBattleMainFunc
-_08013650: .4byte bc_80154A0
-_08013654: .4byte gSharedMem
-_08013658: .4byte 0x0001601d
- thumb_func_end sub_80133C8
-
- thumb_func_start TurnValuesCleanUp
-TurnValuesCleanUp: @ 801365C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080136B4 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080136B8 @ =gNoOfAllBanks
- ldrb r2, [r0]
- adds r5, r1, 0
- cmp r2, 0
- beq _08013754
- ldr r7, _080136BC @ =gProtectStructs
- adds r6, r5, 0
- ldr r0, _080136C0 @ =gUnknown_02024AD0
- mov r12, r0
- ldr r1, _080136C4 @ =gDisableStructs
- mov r8, r1
- mov r10, r8
-_0801368A:
- mov r2, r9
- cmp r2, 0
- beq _080136C8
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08013724
- .align 2, 0
-_080136B4: .4byte gActiveBank
-_080136B8: .4byte gNoOfAllBanks
-_080136BC: .4byte gProtectStructs
-_080136C0: .4byte gUnknown_02024AD0
-_080136C4: .4byte gDisableStructs
-_080136C8:
- ldrb r0, [r6]
- lsls r0, 4
- adds r2, r0, r7
- movs r1, 0
- mov r4, r10
- movs r3, 0
-_080136D4:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0xF
- bls _080136D4
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _080136F2
- subs r0, 0x1
- strb r0, [r1, 0x16]
-_080136F2:
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- beq _08013724
- subs r0, 0x1
- strb r0, [r1, 0x19]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _08013724
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _0801376C @ =0xffbfffff
- ands r0, r1
- str r0, [r2]
-_08013724:
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _08013742
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08013770 @ =0xfeffffff
- ands r0, r1
- str r0, [r2]
-_08013742:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08013774 @ =gNoOfAllBanks
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801368A
-_08013754:
- movs r0, 0
- ldr r2, _08013778 @ =gSideTimer
- strb r0, [r2, 0x8]
- strb r0, [r2, 0x14]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801376C: .4byte 0xffbfffff
-_08013770: .4byte 0xfeffffff
-_08013774: .4byte gNoOfAllBanks
-_08013778: .4byte gSideTimer
- thumb_func_end TurnValuesCleanUp
-
- thumb_func_start SpecialStatusesClear
-SpecialStatusesClear: @ 801377C
- push {r4-r6,lr}
- ldr r2, _080137C0 @ =gActiveBank
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080137C4 @ =gNoOfAllBanks
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _080137BA
- adds r3, r2, 0
- movs r4, 0
- ldr r5, _080137C8 @ =gSpecialStatuses
-_08013794:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r5
- movs r1, 0
-_080137A0:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, 0x13
- bls _080137A0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- cmp r0, r1
- bcc _08013794
-_080137BA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080137C0: .4byte gActiveBank
-_080137C4: .4byte gNoOfAllBanks
-_080137C8: .4byte gSpecialStatuses
- thumb_func_end SpecialStatusesClear
-
- thumb_func_start bc_80154A0
-bc_80154A0: @ 80137CC
- push {r4-r7,lr}
- ldr r0, _08013850 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _08013884
- ldr r0, _08013854 @ =gSharedMem
- ldr r1, _08013858 @ =0x0001601d
- adds r2, r0, r1
- ldr r0, _0801385C @ =gNoOfAllBanks
- ldrb r1, [r2]
- adds r7, r0, 0
- ldrb r0, [r7]
- cmp r1, r0
- bcs _08013884
- ldr r6, _08013860 @ =gActiveBank
- ldr r5, _08013864 @ =gBankAttacker
- adds r4, r2, 0
- movs r1, 0x84
- lsls r1, 1
- mov r12, r1
-_080137FA:
- ldrb r0, [r4]
- strb r0, [r5]
- strb r0, [r6]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013868 @ =gChosenMovesByBanks
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r12
- bne _0801387C
- ldr r1, _0801386C @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801387C
- ldr r2, _08013870 @ =gDisableStructs
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _0801387C
- ldr r0, _08013874 @ =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _0801387C
- ldr r0, _08013878 @ =BattleScript_FocusPunchSetUp
- bl b_call_bc_move_exec
- b _080138BE
- .align 2, 0
-_08013850: .4byte gHitMarker
-_08013854: .4byte gSharedMem
-_08013858: .4byte 0x0001601d
-_0801385C: .4byte gNoOfAllBanks
-_08013860: .4byte gActiveBank
-_08013864: .4byte gBankAttacker
-_08013868: .4byte gChosenMovesByBanks
-_0801386C: .4byte gBattleMons
-_08013870: .4byte gDisableStructs
-_08013874: .4byte gProtectStructs
-_08013878: .4byte BattleScript_FocusPunchSetUp
-_0801387C:
- ldrb r0, [r4]
- ldrb r2, [r7]
- cmp r0, r2
- bcc _080137FA
-_08013884:
- bl b_clear_atk_up_if_hit_flag_unless_enraged
- ldr r1, _080138C4 @ =gCurrentMoveTurn
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080138C8 @ =gFightStateTracker
- ldr r0, _080138CC @ =gUnknown_02024A76
- movs r2, 0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080138D0 @ =gDynamicBasePower
- movs r3, 0
- strh r2, [r0]
- ldr r1, _080138D4 @ =gSharedMem
- ldr r2, _080138D8 @ =0x0001601c
- adds r0, r1, r2
- strb r3, [r0]
- ldr r2, _080138DC @ =gBattleMainFunc
- ldr r0, _080138E0 @ =sub_80138F0
- str r0, [r2]
- ldr r0, _080138E4 @ =gBattleCommunication
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- ldr r2, _080138E8 @ =0x00016112
- adds r0, r1, r2
- strb r3, [r0]
- ldr r0, _080138EC @ =0x00017130
- adds r1, r0
- strb r3, [r1]
-_080138BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080138C4: .4byte gCurrentMoveTurn
-_080138C8: .4byte gFightStateTracker
-_080138CC: .4byte gUnknown_02024A76
-_080138D0: .4byte gDynamicBasePower
-_080138D4: .4byte gSharedMem
-_080138D8: .4byte 0x0001601c
-_080138DC: .4byte gBattleMainFunc
-_080138E0: .4byte sub_80138F0
-_080138E4: .4byte gBattleCommunication
-_080138E8: .4byte 0x00016112
-_080138EC: .4byte 0x00017130
- thumb_func_end bc_80154A0
-
- thumb_func_start sub_80138F0
-sub_80138F0: @ 80138F0
- push {r4-r6,lr}
- ldr r6, _08013944 @ =gBattleOutcome
- ldrb r0, [r6]
- ldr r2, _08013948 @ =gFightStateTracker
- cmp r0, 0
- beq _08013900
- movs r0, 0xC
- strb r0, [r2]
-_08013900:
- ldr r1, _0801394C @ =gSharedMem
- ldr r4, _08013950 @ =gCurrentMoveTurn
- ldrb r0, [r4]
- ldr r3, _08013954 @ =0x00016057
- adds r5, r1, r3
- strb r0, [r5]
- ldr r1, _08013958 @ =gUnknown_081FA640
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0801395C @ =gNoOfAllBanks
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08013970
- ldr r2, _08013960 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08013964 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08013968 @ =gBattleMainFunc
- ldr r2, _0801396C @ =gUnknown_081FA678
- ldrb r1, [r6]
- movs r0, 0x7F
- ands r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- b _08013984
- .align 2, 0
-_08013944: .4byte gBattleOutcome
-_08013948: .4byte gFightStateTracker
-_0801394C: .4byte gSharedMem
-_08013950: .4byte gCurrentMoveTurn
-_08013954: .4byte 0x00016057
-_08013958: .4byte gUnknown_081FA640
-_0801395C: .4byte gNoOfAllBanks
-_08013960: .4byte gHitMarker
-_08013964: .4byte 0xffefffff
-_08013968: .4byte gBattleMainFunc
-_0801396C: .4byte gUnknown_081FA678
-_08013970:
- ldrb r0, [r5]
- cmp r0, r1
- beq _08013984
- ldr r2, _0801398C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08013990 @ =0xfffffdff
- ands r0, r1
- ldr r1, _08013994 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
-_08013984:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801398C: .4byte gHitMarker
-_08013990: .4byte 0xfffffdff
-_08013994: .4byte 0xfff7ffff
- thumb_func_end sub_80138F0
-
- thumb_func_start sub_8013998
-sub_8013998: @ 8013998
- push {r4,lr}
- ldr r1, _080139D0 @ =gFightStateTracker
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080139D4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080139EC
- ldr r1, _080139D8 @ =gBattleTextBuff1
- ldr r4, _080139DC @ =gBattleOutcome
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _080139E0 @ =gBankAttacker
- strb r0, [r1]
- ldr r1, _080139E4 @ =gBattlescriptCurrInstr
- ldr r0, _080139E8 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013B48
- .align 2, 0
-_080139D0: .4byte gFightStateTracker
-_080139D4: .4byte gBattleTypeFlags
-_080139D8: .4byte gBattleTextBuff1
-_080139DC: .4byte gBattleOutcome
-_080139E0: .4byte gBankAttacker
-_080139E4: .4byte gBattlescriptCurrInstr
-_080139E8: .4byte gUnknown_081D8E02
-_080139EC:
- movs r0, 0x90
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08013A04
- ldr r1, _080139FC @ =gBattlescriptCurrInstr
- ldr r0, _08013A00 @ =gUnknown_081D8E0D
- b _08013B46
- .align 2, 0
-_080139FC: .4byte gBattlescriptCurrInstr
-_08013A00: .4byte gUnknown_081D8E0D
-_08013A04:
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- beq _08013A0E
- b _08013B42
-_08013A0E:
- bl BattleMusicStop
- ldr r1, _08013A3C @ =gBattlescriptCurrInstr
- ldr r0, _08013A40 @ =BattleScript_LocalTrainerBattleWon
- str r0, [r1]
- ldr r2, _08013A44 @ =gTrainers
- ldr r0, _08013A48 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08013A30
- b _08013B38
-_08013A30:
- lsls r0, 2
- ldr r1, _08013A4C @ =_08013A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08013A3C: .4byte gBattlescriptCurrInstr
-_08013A40: .4byte BattleScript_LocalTrainerBattleWon
-_08013A44: .4byte gTrainers
-_08013A48: .4byte gTrainerBattleOpponent
-_08013A4C: .4byte _08013A50
- .align 2, 0
-_08013A50:
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B2E
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
-_08013B18:
- ldr r0, _08013B20 @ =0x00000163
- bl PlayBGM
- b _08013B48
- .align 2, 0
-_08013B20: .4byte 0x00000163
-_08013B24:
- movs r0, 0xD4
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B2E:
- movs r0, 0xB1
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B38:
- movs r0, 0xCE
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B42:
- ldr r1, _08013B54 @ =gBattlescriptCurrInstr
- ldr r0, _08013B58 @ =BattleScript_PayDayMoneyAndPickUpItems
-_08013B46:
- str r0, [r1]
-_08013B48:
- ldr r1, _08013B5C @ =gBattleMainFunc
- ldr r0, _08013B60 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013B54: .4byte gBattlescriptCurrInstr
-_08013B58: .4byte BattleScript_PayDayMoneyAndPickUpItems
-_08013B5C: .4byte gBattleMainFunc
-_08013B60: .4byte sub_8013C9C
- thumb_func_end sub_8013998
-
- thumb_func_start sub_8013B64
-sub_8013B64: @ 8013B64
- push {r4,lr}
- ldr r1, _08013B9C @ =gFightStateTracker
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08013BA0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013BB8
- ldr r1, _08013BA4 @ =gBattleTextBuff1
- ldr r4, _08013BA8 @ =gBattleOutcome
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _08013BAC @ =gBankAttacker
- strb r0, [r1]
- ldr r1, _08013BB0 @ =gBattlescriptCurrInstr
- ldr r0, _08013BB4 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013BBE
- .align 2, 0
-_08013B9C: .4byte gFightStateTracker
-_08013BA0: .4byte gBattleTypeFlags
-_08013BA4: .4byte gBattleTextBuff1
-_08013BA8: .4byte gBattleOutcome
-_08013BAC: .4byte gBankAttacker
-_08013BB0: .4byte gBattlescriptCurrInstr
-_08013BB4: .4byte gUnknown_081D8E02
-_08013BB8:
- ldr r1, _08013BCC @ =gBattlescriptCurrInstr
- ldr r0, _08013BD0 @ =BattleScript_LocalBattleLost
- str r0, [r1]
-_08013BBE:
- ldr r1, _08013BD4 @ =gBattleMainFunc
- ldr r0, _08013BD8 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013BCC: .4byte gBattlescriptCurrInstr
-_08013BD0: .4byte BattleScript_LocalBattleLost
-_08013BD4: .4byte gBattleMainFunc
-_08013BD8: .4byte sub_8013C9C
- thumb_func_end sub_8013B64
-
- thumb_func_start sub_8013BDC
-sub_8013BDC: @ 8013BDC
- push {lr}
- ldr r1, _08013C04 @ =gFightStateTracker
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C08 @ =gProtectStructs
- ldr r0, _08013C0C @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, 0x1
- beq _08013C18
- cmp r0, 0x2
- beq _08013C28
- ldr r1, _08013C10 @ =gBattlescriptCurrInstr
- ldr r0, _08013C14 @ =BattleScript_GotAwaySafely
- b _08013C2C
- .align 2, 0
-_08013C04: .4byte gFightStateTracker
-_08013C08: .4byte gProtectStructs
-_08013C0C: .4byte gBankAttacker
-_08013C10: .4byte gBattlescriptCurrInstr
-_08013C14: .4byte BattleScript_GotAwaySafely
-_08013C18:
- ldr r1, _08013C20 @ =gBattlescriptCurrInstr
- ldr r0, _08013C24 @ =BattleScript_SmokeBallEscape
- b _08013C2C
- .align 2, 0
-_08013C20: .4byte gBattlescriptCurrInstr
-_08013C24: .4byte BattleScript_SmokeBallEscape
-_08013C28:
- ldr r1, _08013C38 @ =gBattlescriptCurrInstr
- ldr r0, _08013C3C @ =BattleScript_RanAwayUsingMonAbility
-_08013C2C:
- str r0, [r1]
- ldr r1, _08013C40 @ =gBattleMainFunc
- ldr r0, _08013C44 @ =sub_8013C9C
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08013C38: .4byte gBattlescriptCurrInstr
-_08013C3C: .4byte BattleScript_RanAwayUsingMonAbility
-_08013C40: .4byte gBattleMainFunc
-_08013C44: .4byte sub_8013C9C
- thumb_func_end sub_8013BDC
-
- thumb_func_start sub_8013C48
-sub_8013C48: @ 8013C48
- ldr r1, _08013C7C @ =gFightStateTracker
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C80 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _08013C84 @ =gBankAttacker
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08013C88 @ =gBattlePartyID
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08013C8C @ =gBattlescriptCurrInstr
- ldr r0, _08013C90 @ =BattleScript_WildMonFled
- str r0, [r1]
- ldr r1, _08013C94 @ =gBattleMainFunc
- ldr r0, _08013C98 @ =sub_8013C9C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08013C7C: .4byte gFightStateTracker
-_08013C80: .4byte gBattleTextBuff1
-_08013C84: .4byte gBankAttacker
-_08013C88: .4byte gBattlePartyID
-_08013C8C: .4byte gBattlescriptCurrInstr
-_08013C90: .4byte BattleScript_WildMonFled
-_08013C94: .4byte gBattleMainFunc
-_08013C98: .4byte sub_8013C9C
- thumb_func_end sub_8013C48
-
- thumb_func_start sub_8013C9C
-sub_8013C9C: @ 8013C9C
- push {r4-r7,lr}
- ldr r0, _08013D00 @ =gFightStateTracker
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013D7C
- ldr r0, _08013D04 @ =gBattleTypeFlags
- ldrh r0, [r0]
- ldr r1, _08013D08 @ =0x00000b92
- ands r1, r0
- cmp r1, 0
- bne _08013D4C
- ldr r2, _08013D0C @ =gActiveBank
- strb r1, [r2]
- ldr r0, _08013D10 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013D48
- adds r4, r2, 0
- ldr r6, _08013D14 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x30
-_08013CCE:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08013D36
- ldr r2, _08013D18 @ =gBattleResults
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _08013D1C
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x8
- bl StringCopy
- b _08013D36
- .align 2, 0
-_08013D00: .4byte gFightStateTracker
-_08013D04: .4byte gBattleTypeFlags
-_08013D08: .4byte 0x00000b92
-_08013D0C: .4byte gActiveBank
-_08013D10: .4byte gNoOfAllBanks
-_08013D14: .4byte gBattleMons
-_08013D18: .4byte gBattleResults
-_08013D1C:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x26]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x14
- bl StringCopy
-_08013D36:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013D68 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013CCE
-_08013D48:
- bl sub_80BDEC8
-_08013D4C:
- movs r0, 0x3
- bl BeginFastPaletteFade
- movs r0, 0x5
- bl FadeOutMapMusic
- ldr r1, _08013D6C @ =gBattleMainFunc
- ldr r0, _08013D70 @ =sub_8013DA8
- str r0, [r1]
- ldr r1, _08013D74 @ =gCB2_AfterEvolution
- ldr r0, _08013D78 @ =sub_800F808
- str r0, [r1]
- b _08013D96
- .align 2, 0
-_08013D68: .4byte gNoOfAllBanks
-_08013D6C: .4byte gBattleMainFunc
-_08013D70: .4byte sub_8013DA8
-_08013D74: .4byte gCB2_AfterEvolution
-_08013D78: .4byte sub_800F808
-_08013D7C:
- ldr r0, _08013D9C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08013D96
- ldr r1, _08013DA0 @ =gBattleScriptingCommandsTable
- ldr r0, _08013DA4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013D96:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013D9C: .4byte gBattleExecBuffer
-_08013DA0: .4byte gBattleScriptingCommandsTable
-_08013DA4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8013C9C
-
- thumb_func_start sub_8013DA8
-sub_8013DA8: @ 8013DA8
- push {lr}
- ldr r0, _08013DD0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08013DEA
- bl ResetSpriteData
- ldr r0, _08013DD4 @ =gLeveledUpInBattle
- ldrb r0, [r0]
- cmp r0, 0
- beq _08013DCA
- ldr r0, _08013DD8 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08013DE4
-_08013DCA:
- ldr r1, _08013DDC @ =gBattleMainFunc
- ldr r0, _08013DE0 @ =c4_overworld
- b _08013DE8
- .align 2, 0
-_08013DD0: .4byte gPaletteFade
-_08013DD4: .4byte gLeveledUpInBattle
-_08013DD8: .4byte gBattleOutcome
-_08013DDC: .4byte gBattleMainFunc
-_08013DE0: .4byte c4_overworld
-_08013DE4:
- ldr r1, _08013DF0 @ =gBattleMainFunc
- ldr r0, _08013DF4 @ =bc_evolution_cutscene
-_08013DE8:
- str r0, [r1]
-_08013DEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013DF0: .4byte gBattleMainFunc
-_08013DF4: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013DA8
-
- thumb_func_start bc_evolution_cutscene
-bc_evolution_cutscene: @ 8013DF8
- push {r4,r5,lr}
- ldr r0, _08013E4C @ =gLeveledUpInBattle
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0
- beq _08013E6E
-_08013E04:
- movs r5, 0
-_08013E06:
- ldrb r2, [r3]
- ldr r0, _08013E50 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08013E60
- bics r2, r1
- strb r2, [r3]
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08013E54 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08013E60
- ldr r0, _08013E58 @ =gBattleMainFunc
- ldr r1, _08013E5C @ =sub_8013E88
- str r1, [r0]
- lsls r3, r5, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x81
- bl EvolutionScene
- b _08013E74
- .align 2, 0
-_08013E4C: .4byte gLeveledUpInBattle
-_08013E50: .4byte gBitTable
-_08013E54: .4byte gPlayerParty
-_08013E58: .4byte gBattleMainFunc
-_08013E5C: .4byte sub_8013E88
-_08013E60:
- adds r5, 0x1
- ldr r3, _08013E7C @ =gLeveledUpInBattle
- cmp r5, 0x5
- ble _08013E06
- ldrb r0, [r3]
- cmp r0, 0
- bne _08013E04
-_08013E6E:
- ldr r1, _08013E80 @ =gBattleMainFunc
- ldr r0, _08013E84 @ =c4_overworld
- str r0, [r1]
-_08013E74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013E7C: .4byte gLeveledUpInBattle
-_08013E80: .4byte gBattleMainFunc
-_08013E84: .4byte c4_overworld
- thumb_func_end bc_evolution_cutscene
-
- thumb_func_start sub_8013E88
-sub_8013E88: @ 8013E88
- push {lr}
- ldr r0, _08013EA0 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08013EA4 @ =sub_800F808
- cmp r1, r0
- bne _08013E9A
- ldr r1, _08013EA8 @ =gBattleMainFunc
- ldr r0, _08013EAC @ =bc_evolution_cutscene
- str r0, [r1]
-_08013E9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013EA0: .4byte gMain
-_08013EA4: .4byte sub_800F808
-_08013EA8: .4byte gBattleMainFunc
-_08013EAC: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013E88
-
- thumb_func_start c4_overworld
-c4_overworld: @ 8013EB0
- push {r4-r6,lr}
- ldr r5, _08013F30 @ =gBattleTypeFlags
- ldrh r1, [r5]
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08013ECE
- ldr r4, _08013F34 @ =gPlayerParty
- adds r0, r4, 0
- bl RandomlyGivePartyPokerus
- adds r0, r4, 0
- bl PartySpreadPokerus
-_08013ECE:
- ldrh r4, [r5]
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _08013EE0
- ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013F2A
-_08013EE0:
- ldr r1, _08013F3C @ =gSpecialVar_Result
- ldr r5, _08013F40 @ =gBattleOutcome
- ldrb r0, [r5]
- strh r0, [r1]
- ldr r3, _08013F44 @ =gMain
- ldr r0, _08013F48 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08013F4C @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- cmp r0, 0
- beq _08013F1C
- ldr r0, _08013F50 @ =gEnemyParty
- bl UpdateRoamerHPStatus
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08013F18
- cmp r0, 0x7
- bne _08013F1C
-_08013F18:
- bl SetRoamerInactive
-_08013F1C:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r0, _08013F44 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08013F2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08013F30: .4byte gBattleTypeFlags
-_08013F34: .4byte gPlayerParty
-_08013F38: .4byte gReceivedRemoteLinkPlayers
-_08013F3C: .4byte gSpecialVar_Result
-_08013F40: .4byte gBattleOutcome
-_08013F44: .4byte gMain
-_08013F48: .4byte 0x0000043d
-_08013F4C: .4byte gPreBattleCallback1
-_08013F50: .4byte gEnemyParty
- thumb_func_end c4_overworld
-
- thumb_func_start sub_8013F54
-sub_8013F54: @ 8013F54
- push {lr}
- ldr r0, _08013F84 @ =gFightStateTracker
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013F90
- ldr r2, _08013F88 @ =gSharedMem + 0x17140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013F74
- subs r0, 0x1
- strb r0, [r1]
-_08013F74:
- ldr r0, _08013F8C @ =gBattleMainFunc
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- b _08013FAA
- .align 2, 0
-_08013F84: .4byte gFightStateTracker
-_08013F88: .4byte gSharedMem + 0x17140
-_08013F8C: .4byte gBattleMainFunc
-_08013F90:
- ldr r0, _08013FB0 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FAA
- ldr r1, _08013FB4 @ =gBattleScriptingCommandsTable
- ldr r0, _08013FB8 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FAA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FB0: .4byte gBattleExecBuffer
-_08013FB4: .4byte gBattleScriptingCommandsTable
-_08013FB8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8013F54
-
- thumb_func_start sub_8013FBC
-sub_8013FBC: @ 8013FBC
- push {lr}
- ldr r0, _08013FDC @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FD8
- ldr r1, _08013FE0 @ =gBattleScriptingCommandsTable
- ldr r0, _08013FE4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FD8:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FDC: .4byte gBattleExecBuffer
-_08013FE0: .4byte gBattleScriptingCommandsTable
-_08013FE4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8013FBC
-
- thumb_func_start sub_8013FE8
-sub_8013FE8: @ 8013FE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0x4
- str r0, [sp]
- ldr r7, _08014028 @ =gBankAttacker
- ldr r1, _0801402C @ =gTurnOrder
- ldr r0, _08014030 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r7]
- ldr r1, _08014034 @ =gSharedMem
- mov r10, r1
- ldr r0, _08014038 @ =0x000160a6
- add r0, r10
- ldrb r2, [r0]
- ldr r1, _0801403C @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08014044
- ldr r1, _08014040 @ =gFightStateTracker
- movs r0, 0xC
- b _080146CC
- .align 2, 0
-_08014028: .4byte gBankAttacker
-_0801402C: .4byte gTurnOrder
-_08014030: .4byte gCurrentMoveTurn
-_08014034: .4byte gSharedMem
-_08014038: .4byte 0x000160a6
-_0801403C: .4byte gBitTable
-_08014040: .4byte gFightStateTracker
-_08014044:
- ldr r1, _080140B8 @ =gCritMultiplier
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080140BC @ =0x0001601f
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080140C0 @ =0x000160e7
- add r0, r10
- strb r2, [r0]
- ldr r0, _080140C4 @ =gBattleMoveFlags
- strb r2, [r0]
- ldr r0, _080140C8 @ =gMultiHitCounter
- strb r2, [r0]
- ldr r0, _080140CC @ =gBattleCommunication
- strb r2, [r0, 0x6]
- ldr r3, _080140D0 @ =gCurrMovePos
- ldrb r0, [r7]
- ldr r2, _080140D4 @ =0x0001608c
- adds r0, r2
- add r0, r10
- ldrb r0, [r0]
- ldr r4, _080140D8 @ =gUnknown_02024BE5
- strb r0, [r4]
- strb r0, [r3]
- ldr r1, _080140DC @ =gProtectStructs
- ldrb r2, [r7]
- lsls r0, r2, 4
- adds r5, r0, r1
- ldrb r1, [r5]
- lsls r0, r1, 29
- adds r4, r2, 0
- mov r8, r3
- cmp r0, 0
- bge _080140F0
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r5]
- ldr r2, _080140E0 @ =gCurrentMove
- ldr r1, _080140E4 @ =gChosenMove
- movs r0, 0xA5
- strh r0, [r1]
- strh r0, [r2]
- ldr r2, _080140E8 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r2]
- movs r0, 0xA5
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r7]
- ldr r2, _080140EC @ =0x00016010
- adds r1, r2
- b _08014200
- .align 2, 0
-_080140B8: .4byte gCritMultiplier
-_080140BC: .4byte 0x0001601f
-_080140C0: .4byte 0x000160e7
-_080140C4: .4byte gBattleMoveFlags
-_080140C8: .4byte gMultiHitCounter
-_080140CC: .4byte gBattleCommunication
-_080140D0: .4byte gCurrMovePos
-_080140D4: .4byte 0x0001608c
-_080140D8: .4byte gUnknown_02024BE5
-_080140DC: .4byte gProtectStructs
-_080140E0: .4byte gCurrentMove
-_080140E4: .4byte gChosenMove
-_080140E8: .4byte gHitMarker
-_080140EC: .4byte 0x00016010
-_080140F0:
- ldr r1, _08014128 @ =gBattleMons
- movs r0, 0x58
- adds r5, r4, 0
- muls r5, r0
- adds r0, r1, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _08014114
- movs r6, 0x80
- lsls r6, 15
- ands r6, r2
- cmp r6, 0
- beq _08014138
-_08014114:
- ldr r3, _0801412C @ =gCurrentMove
- ldr r2, _08014130 @ =gChosenMove
- ldr r1, _08014134 @ =gLockedMove
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- b _08014280
- .align 2, 0
-_08014128: .4byte gBattleMons
-_0801412C: .4byte gCurrentMove
-_08014130: .4byte gChosenMove
-_08014134: .4byte gLockedMove
-_08014138:
- ldr r3, _08014188 @ =gDisableStructs
- mov r12, r3
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r2, r0, r3
- ldrh r4, [r2, 0x6]
- adds r1, r4, 0
- cmp r1, 0
- beq _08014218
- ldrb r3, [r2, 0xC]
- lsls r0, r3, 1
- adds r0, r5
- str r0, [sp, 0x8]
- ldr r0, _0801418C @ =gBattleMons
- adds r0, 0xC
- mov r9, r0
- ldr r0, [sp, 0x8]
- add r0, r9
- ldrh r0, [r0]
- cmp r1, r0
- bne _080141A0
- ldr r1, _08014190 @ =gCurrentMove
- ldr r0, _08014194 @ =gChosenMove
- strh r4, [r0]
- strh r4, [r1]
- ldrb r0, [r2, 0xC]
- ldr r2, _08014198 @ =gUnknown_02024BE5
- strb r0, [r2]
- mov r3, r8
- strb r0, [r3]
- ldrh r0, [r1]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r7]
- ldr r4, _0801419C @ =0x00016010
- adds r1, r4
- b _08014200
- .align 2, 0
-_08014188: .4byte gDisableStructs
-_0801418C: .4byte gBattleMons
-_08014190: .4byte gCurrentMove
-_08014194: .4byte gChosenMove
-_08014198: .4byte gUnknown_02024BE5
-_0801419C: .4byte 0x00016010
-_080141A0:
- cmp r1, 0
- beq _08014218
- cmp r1, r0
- beq _08014218
- ldr r0, _08014208 @ =gUnknown_02024BE5
- strb r3, [r0]
- mov r1, r8
- strb r3, [r1]
- ldr r3, _0801420C @ =gCurrentMove
- ldr r1, _08014210 @ =gChosenMove
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r3]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- movs r2, 0
- strh r6, [r0, 0x6]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r2, [r0, 0xC]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldrh r0, [r3]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r7]
- ldr r3, _08014214 @ =0x00016010
- adds r1, r3
-_08014200:
- add r1, r10
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_08014208: .4byte gUnknown_02024BE5
-_0801420C: .4byte gCurrentMove
-_08014210: .4byte gChosenMove
-_08014214: .4byte 0x00016010
-_08014218:
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- ldr r4, _0801425C @ =gBankAttacker
- ldrb r2, [r4]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- ldr r1, _08014260 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldr r1, _08014264 @ =gChosenMovesByBanks
- lsls r2, 1
- adds r2, r1
- ldrh r3, [r0]
- ldrh r2, [r2]
- cmp r3, r2
- beq _08014278
- ldr r1, _08014268 @ =gCurrentMove
- ldr r0, _0801426C @ =gChosenMove
- strh r3, [r0]
- strh r3, [r1]
- ldrh r0, [r1]
- movs r1, 0
- bl GetMoveTarget
- ldr r2, _08014270 @ =gSharedMem
- ldrb r1, [r4]
- ldr r3, _08014274 @ =0x00016010
- adds r1, r3
- adds r1, r2
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_0801425C: .4byte gBankAttacker
-_08014260: .4byte gBattleMons
-_08014264: .4byte gChosenMovesByBanks
-_08014268: .4byte gCurrentMove
-_0801426C: .4byte gChosenMove
-_08014270: .4byte gSharedMem
-_08014274: .4byte 0x00016010
-_08014278:
- ldr r1, _08014298 @ =gCurrentMove
- ldr r0, _0801429C @ =gChosenMove
- strh r3, [r0]
- strh r3, [r1]
-_08014280:
- ldr r0, _080142A0 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080142A8
- ldr r0, _080142A4 @ =gBattleResults
- ldr r1, _08014298 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0, 0x22]
- b _080142B0
- .align 2, 0
-_08014298: .4byte gCurrentMove
-_0801429C: .4byte gChosenMove
-_080142A0: .4byte gBankAttacker
-_080142A4: .4byte gBattleResults
-_080142A8:
- ldr r0, _08014314 @ =gBattleResults
- ldr r1, _08014318 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0, 0x24]
-_080142B0:
- ldr r4, _0801431C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014320 @ =gSideTimer
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- adds r3, r4, 0
- cmp r0, 0
- beq _08014330
- ldr r2, _08014324 @ =gBattleMoves
- ldr r0, _08014318 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08014330
- ldrb r0, [r3]
- bl GetBankSide
- adds r4, r0, 0
- ldrb r0, [r5, 0x9]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014330
- ldr r1, _08014328 @ =gBattleMons
- ldrb r2, [r5, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08014330
- ldr r0, _0801432C @ =gBankTarget
- strb r2, [r0]
- b _080146AC
- .align 2, 0
-_08014314: .4byte gBattleResults
-_08014318: .4byte gCurrentMove
-_0801431C: .4byte gBankAttacker
-_08014320: .4byte gSideTimer
-_08014324: .4byte gBattleMoves
-_08014328: .4byte gBattleMons
-_0801432C: .4byte gBankTarget
-_08014330:
- ldr r2, _08014454 @ =gBattleTypeFlags
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- ldr r3, _08014458 @ =gBankAttacker
- mov r9, r2
- cmp r0, 0
- bne _08014342
- b _0801461C
-_08014342:
- ldr r1, _0801445C @ =gSideTimer
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r7, [r0, 0x8]
- cmp r7, 0
- beq _08014354
- b _08014570
-_08014354:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _08014464 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08014370
- ldrb r0, [r4, 0x6]
- cmp r0, 0x10
- bne _08014370
- b _08014570
-_08014370:
- ldr r3, _08014468 @ =gBattleMons
- ldr r0, _0801446C @ =gSharedMem
- mov r8, r0
- ldr r2, _08014458 @ =gBankAttacker
- ldrb r5, [r2]
- ldr r1, _08014470 @ =0x00016010
- adds r0, r5, r1
- add r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0x1F
- bne _08014394
- b _08014570
-_08014394:
- ldrb r0, [r4, 0x2]
- cmp r0, 0xD
- beq _0801439C
- b _08014570
-_0801439C:
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014474 @ =gActiveBank
- strb r7, [r1]
- ldr r0, _08014478 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcs _08014416
- adds r4, r1, 0
- mov r5, r8
-_080143B6:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08014404
- ldr r0, _08014458 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _08014470 @ =0x00016010
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08014404
- ldr r1, _08014468 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08014404
- adds r0, r2, 0
- bl BankGetTurnOrder
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r0, r1
- bcs _08014404
- ldrb r0, [r4]
- bl BankGetTurnOrder
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08014404:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014478 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080143B6
-_08014416:
- ldr r2, [sp]
- cmp r2, 0x4
- beq _0801441E
- b _08014522
-_0801441E:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _0801447C @ =gChosenMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ldr r3, [sp]
- ands r3, r0
- cmp r3, 0
- beq _080144A4
- ldr r0, _08014458 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08014484
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014480
- movs r0, 0x1
- b _08014496
- .align 2, 0
-_08014454: .4byte gBattleTypeFlags
-_08014458: .4byte gBankAttacker
-_0801445C: .4byte gSideTimer
-_08014460: .4byte gBattleMoves
-_08014464: .4byte gCurrentMove
-_08014468: .4byte gBattleMons
-_0801446C: .4byte gSharedMem
-_08014470: .4byte 0x00016010
-_08014474: .4byte gActiveBank
-_08014478: .4byte gNoOfAllBanks
-_0801447C: .4byte gChosenMove
-_08014480:
- movs r0, 0x3
- b _08014496
-_08014484:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014494
- movs r0, 0
- b _08014496
-_08014494:
- movs r0, 0x2
-_08014496:
- bl GetBankByPlayerAI
- ldr r1, _080144A0 @ =gBankTarget
- strb r0, [r1]
- b _080144B6
- .align 2, 0
-_080144A0: .4byte gBankTarget
-_080144A4:
- ldr r2, _080144EC @ =gBankTarget
- ldr r1, _080144F0 @ =gSharedMem
- ldr r0, _080144F4 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r4, _080144F8 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
-_080144B6:
- ldr r7, _080144FC @ =gAbsentBankFlags
- ldrb r0, [r7]
- ldr r1, _08014500 @ =gBitTable
- mov r8, r1
- ldr r5, _080144EC @ =gBankTarget
- ldrb r1, [r5]
- lsls r1, 2
- add r1, r8
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _080144D0
- b _080146AC
-_080144D0:
- ldr r6, _080144F4 @ =gBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014504
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_080144EC: .4byte gBankTarget
-_080144F0: .4byte gSharedMem
-_080144F4: .4byte gBankAttacker
-_080144F8: .4byte 0x00016010
-_080144FC: .4byte gAbsentBankFlags
-_08014500: .4byte gBitTable
-_08014504:
- ldrb r0, [r6]
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- strb r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r5]
- lsls r0, r2, 2
- add r0, r8
- b _08014690
-_08014522:
- ldr r4, _0801455C @ =gActiveBank
- ldr r0, _08014560 @ =gTurnOrder
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _08014564 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- adds r1, 0x20
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r2, _08014568 @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0801456C @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1]
- b _080146AC
- .align 2, 0
-_0801455C: .4byte gActiveBank
-_08014560: .4byte gTurnOrder
-_08014564: .4byte gBattleMons
-_08014568: .4byte gSpecialStatuses
-_0801456C: .4byte gBankTarget
-_08014570:
- mov r4, r9
- ldrh r1, [r4]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldr r2, _080145B4 @ =gBattleMoves
- ldr r0, _080145B8 @ =gChosenMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldrb r0, [r3]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080145C0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145BC
- movs r0, 0x1
- b _080145D2
- .align 2, 0
-_080145B4: .4byte gBattleMoves
-_080145B8: .4byte gChosenMove
-_080145BC:
- movs r0, 0x3
- b _080145D2
-_080145C0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145D0
- movs r0, 0
- b _080145D2
-_080145D0:
- movs r0, 0x2
-_080145D2:
- bl GetBankByPlayerAI
- ldr r1, _0801460C @ =gBankTarget
- strb r0, [r1]
- ldr r0, _08014610 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08014614 @ =gBitTable
- ldr r5, _0801460C @ =gBankTarget
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldr r0, _08014618 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080146AC
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_0801460C: .4byte gBankTarget
-_08014610: .4byte gAbsentBankFlags
-_08014614: .4byte gBitTable
-_08014618: .4byte gBankAttacker
-_0801461C:
- ldr r5, _08014660 @ =gBankTarget
- ldr r1, _08014664 @ =gSharedMem
- adds r2, r3, 0
- ldrb r0, [r2]
- ldr r4, _08014668 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0801466C @ =gAbsentBankFlags
- ldrb r1, [r6]
- ldr r7, _08014670 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldrb r0, [r2]
- str r3, [sp, 0x4]
- bl GetBankSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r4, r0
- beq _08014674
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_08014660: .4byte gBankTarget
-_08014664: .4byte gSharedMem
-_08014668: .4byte 0x00016010
-_0801466C: .4byte gAbsentBankFlags
-_08014670: .4byte gBitTable
-_08014674:
- ldrb r0, [r3]
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- strb r0, [r5]
- ldrb r1, [r6]
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r7
-_08014690:
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- adds r0, r2, 0
-_0801469A:
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- strb r0, [r5]
-_080146AC:
- ldr r4, _080146E0 @ =gBattlescriptCurrInstr
- ldr r3, _080146E4 @ =gBattleScriptsForMoveEffects
- ldr r2, _080146E8 @ =gBattleMoves
- ldr r0, _080146EC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- ldr r1, _080146F0 @ =gFightStateTracker
- movs r0, 0xA
-_080146CC:
- strb r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080146E0: .4byte gBattlescriptCurrInstr
-_080146E4: .4byte gBattleScriptsForMoveEffects
-_080146E8: .4byte gBattleMoves
-_080146EC: .4byte gCurrentMove
-_080146F0: .4byte gFightStateTracker
- thumb_func_end sub_8013FE8
-
- thumb_func_start sub_80146F4
-sub_80146F4: @ 80146F4
- push {r4,lr}
- ldr r3, _08014764 @ =gBankAttacker
- ldr r1, _08014768 @ =gTurnOrder
- ldr r0, _0801476C @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014770 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014774 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r1, _08014778 @ =gActionSelectionCursor
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r1, _0801477C @ =gMoveSelectionCursor
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r2, _08014780 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldrb r4, [r3]
- strb r4, [r2, 0x2]
- ldr r1, _08014784 @ =gSharedMem
- ldrb r0, [r3]
- ldr r3, _08014788 @ =0x00016064
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r0, _0801478C @ =0x00016003
- adds r1, r0
- strb r4, [r1]
- ldr r1, _08014790 @ =gBattlescriptCurrInstr
- ldr r0, _08014794 @ =BattleScript_ActionSwitch
- str r0, [r1]
- ldr r1, _08014798 @ =gFightStateTracker
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _0801479C @ =gBattleResults
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0801475C
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0801475C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014764: .4byte gBankAttacker
-_08014768: .4byte gTurnOrder
-_0801476C: .4byte gCurrentMoveTurn
-_08014770: .4byte gUnknown_030042A4
-_08014774: .4byte gUnknown_030042A0
-_08014778: .4byte gActionSelectionCursor
-_0801477C: .4byte gMoveSelectionCursor
-_08014780: .4byte gBattleTextBuff1
-_08014784: .4byte gSharedMem
-_08014788: .4byte 0x00016064
-_0801478C: .4byte 0x00016003
-_08014790: .4byte gBattlescriptCurrInstr
-_08014794: .4byte BattleScript_ActionSwitch
-_08014798: .4byte gFightStateTracker
-_0801479C: .4byte gBattleResults
- thumb_func_end sub_80146F4
-
- thumb_func_start sub_80147A0
-sub_80147A0: @ 80147A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08014804 @ =gBankAttacker
- ldr r2, _08014808 @ =gBankTarget
- ldr r1, _0801480C @ =gTurnOrder
- ldr r0, _08014810 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r4]
- ldr r0, _08014814 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014818 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r3, _0801481C @ =gDisableStructs
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- strb r2, [r0, 0x10]
- ldr r5, _08014820 @ =gLastUsedItem
- ldr r2, _08014824 @ =gBattleBufferB
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- strh r3, [r5]
- cmp r3, 0xC
- bhi _08014830
- ldr r2, _08014828 @ =gBattlescriptCurrInstr
- ldr r1, _0801482C @ =gBattlescriptsForBallThrow
- ldrh r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- b _08014A8C
- .align 2, 0
-_08014804: .4byte gBankAttacker
-_08014808: .4byte gBankTarget
-_0801480C: .4byte gTurnOrder
-_08014810: .4byte gCurrentMoveTurn
-_08014814: .4byte gUnknown_030042A4
-_08014818: .4byte gUnknown_030042A0
-_0801481C: .4byte gDisableStructs
-_08014820: .4byte gLastUsedItem
-_08014824: .4byte gBattleBufferB
-_08014828: .4byte gBattlescriptCurrInstr
-_0801482C: .4byte gBattlescriptsForBallThrow
-_08014830:
- adds r0, r3, 0
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0801484C
- ldr r0, _08014844 @ =gBattlescriptCurrInstr
- ldr r1, _08014848 @ =gBattlescriptsForRunningByItem
- b _0801485C
- .align 2, 0
-_08014844: .4byte gBattlescriptCurrInstr
-_08014848: .4byte gBattlescriptsForRunningByItem
-_0801484C:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801486C
- ldr r0, _08014864 @ =gBattlescriptCurrInstr
- ldr r1, _08014868 @ =gBattlescriptsForUsingItem
-_0801485C:
- ldr r1, [r1]
- str r1, [r0]
- b _08014A8C
- .align 2, 0
-_08014864: .4byte gBattlescriptCurrInstr
-_08014868: .4byte gBattlescriptsForUsingItem
-_0801486C:
- ldr r2, _080148A0 @ =gSharedMem
- ldrb r0, [r4]
- ldr r3, _080148A4 @ =0x00016003
- adds r1, r2, r3
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080148A8 @ =0x000160d8
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- mov r8, r4
- ldr r3, _080148AC @ =gBattlescriptCurrInstr
- mov r9, r3
- ldr r1, _080148B0 @ =gBattlescriptsForUsingItem
- mov r10, r1
- adds r7, r2, 0
- cmp r0, 0x4
- bls _08014896
- b _08014A74
-_08014896:
- lsls r0, 2
- ldr r1, _080148B4 @ =_080148B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080148A0: .4byte gSharedMem
-_080148A4: .4byte 0x00016003
-_080148A8: .4byte 0x000160d8
-_080148AC: .4byte gBattlescriptCurrInstr
-_080148B0: .4byte gBattlescriptsForUsingItem
-_080148B4: .4byte _080148B8
- .align 2, 0
-_080148B8:
- .4byte _08014A74
- .4byte _08014A74
- .4byte _080148CC
- .4byte _08014958
- .4byte _08014A30
-_080148CC:
- ldr r2, _08014904 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r2, 0x5]
- ldr r1, _08014908 @ =gBankAttacker
- ldrb r0, [r1]
- lsrs r0, 1
- ldr r6, _0801490C @ =0x000160da
- adds r0, r6
- adds r0, r7
- ldrb r3, [r0]
- movs r0, 0x1
- ands r0, r3
- mov r8, r1
- cmp r0, 0
- beq _08014918
- movs r0, 0x3E
- ands r0, r3
- ldr r3, _08014910 @ =gBattlescriptCurrInstr
- mov r9, r3
- ldr r1, _08014914 @ =gBattlescriptsForUsingItem
- mov r10, r1
- cmp r0, 0
- bne _080148FC
- b _08014A74
-_080148FC:
- movs r0, 0x5
- strb r0, [r2, 0x5]
- b _08014A74
- .align 2, 0
-_08014904: .4byte gBattleCommunication
-_08014908: .4byte gBankAttacker
-_0801490C: .4byte 0x000160da
-_08014910: .4byte gBattlescriptCurrInstr
-_08014914: .4byte gBattlescriptsForUsingItem
-_08014918:
- ldr r3, _08014950 @ =gBattlescriptCurrInstr
- mov r9, r3
- ldr r0, _08014954 @ =gBattlescriptsForUsingItem
- mov r10, r0
- adds r5, r7, 0
- mov r4, r8
- adds r3, r6, 0
-_08014926:
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08014926
- b _08014A74
- .align 2, 0
-_08014950: .4byte gBattlescriptCurrInstr
-_08014954: .4byte gBattlescriptsForUsingItem
-_08014958:
- ldr r3, _0801498C @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r3, 0x5]
- ldr r2, _08014990 @ =gBankAttacker
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, _08014994 @ =0x000160da
- mov r12, r1
- add r0, r12
- adds r6, r0, r7
- ldrb r1, [r6]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r2
- cmp r5, 0
- beq _080149A0
- movs r0, 0x5
- strb r0, [r3, 0x5]
- ldr r2, _08014998 @ =gBattlescriptCurrInstr
- mov r9, r2
- ldr r3, _0801499C @ =gBattlescriptsForUsingItem
- mov r10, r3
- b _08014A74
- .align 2, 0
-_0801498C: .4byte gBattleCommunication
-_08014990: .4byte gBankAttacker
-_08014994: .4byte 0x000160da
-_08014998: .4byte gBattlescriptCurrInstr
-_0801499C: .4byte gBattlescriptsForUsingItem
-_080149A0:
- ldr r3, _08014A18 @ =gBattleTextBuff1
- movs r4, 0xFD
- strb r4, [r3]
- movs r0, 0x5
- strb r0, [r3, 0x1]
- movs r2, 0x1
- strb r2, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r1, _08014A1C @ =gBattleTextBuff2
- strb r4, [r1]
- strb r5, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r5, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- ands r2, r0
- ldr r0, _08014A20 @ =gBattlescriptCurrInstr
- mov r9, r0
- ldr r1, _08014A24 @ =gBattlescriptsForUsingItem
- mov r10, r1
- adds r6, r3, 0
- cmp r2, 0
- bne _08014A02
- adds r3, r7, 0
- mov r5, r8
- mov r4, r12
- adds r2, r6, 0
-_080149DC:
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080149DC
-_08014A02:
- ldrb r0, [r6, 0x2]
- adds r0, 0xE
- ldr r2, _08014A28 @ =0x000160a4
- adds r1, r7, r2
- movs r2, 0
- strb r0, [r1]
- ldr r3, _08014A2C @ =0x000160a5
- adds r0, r7, r3
- strb r2, [r0]
- b _08014A74
- .align 2, 0
-_08014A18: .4byte gBattleTextBuff1
-_08014A1C: .4byte gBattleTextBuff2
-_08014A20: .4byte gBattlescriptCurrInstr
-_08014A24: .4byte gBattlescriptsForUsingItem
-_08014A28: .4byte 0x000160a4
-_08014A2C: .4byte 0x000160a5
-_08014A30:
- ldr r0, _08014A50 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014A64
- ldr r1, _08014A54 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r0, _08014A58 @ =gBankAttacker
- mov r8, r0
- ldr r1, _08014A5C @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r2, _08014A60 @ =gBattlescriptsForUsingItem
- mov r10, r2
- b _08014A74
- .align 2, 0
-_08014A50: .4byte gBattleTypeFlags
-_08014A54: .4byte gBattleCommunication
-_08014A58: .4byte gBankAttacker
-_08014A5C: .4byte gBattlescriptCurrInstr
-_08014A60: .4byte gBattlescriptsForUsingItem
-_08014A64:
- ldr r0, _08014AA0 @ =gBattleCommunication
- strb r1, [r0, 0x5]
- ldr r3, _08014AA4 @ =gBankAttacker
- mov r8, r3
- ldr r0, _08014AA8 @ =gBattlescriptCurrInstr
- mov r9, r0
- ldr r1, _08014AAC @ =gBattlescriptsForUsingItem
- mov r10, r1
-_08014A74:
- mov r2, r8
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r3, _08014AB0 @ =0x000160d8
- adds r0, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- mov r1, r9
- str r0, [r1]
-_08014A8C:
- movs r0, 0xA
- ldr r2, _08014AB4 @ =gFightStateTracker
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08014AA0: .4byte gBattleCommunication
-_08014AA4: .4byte gBankAttacker
-_08014AA8: .4byte gBattlescriptCurrInstr
-_08014AAC: .4byte gBattlescriptsForUsingItem
-_08014AB0: .4byte 0x000160d8
-_08014AB4: .4byte gFightStateTracker
- thumb_func_end sub_80147A0
-
- thumb_func_start sub_8014AB8
-sub_8014AB8: @ 8014AB8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r1, _08014ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08014AE4
- ldr r1, _08014AE0 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- b _08014AEE
- .align 2, 0
-_08014ADC: .4byte gBattleMons
-_08014AE0: .4byte gEnigmaBerries
-_08014AE4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r1, r0, 24
-_08014AEE:
- ldr r0, _08014B18 @ =gStringBank
- strb r4, [r0]
- cmp r1, 0x25
- bne _08014B28
- ldr r2, _08014B1C @ =gLastUsedItem
- ldr r1, _08014B20 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, _08014B24 @ =gProtectStructs
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- b _08014B50
- .align 2, 0
-_08014B18: .4byte gStringBank
-_08014B1C: .4byte gLastUsedItem
-_08014B20: .4byte gBattleMons
-_08014B24: .4byte gProtectStructs
-_08014B28:
- ldr r6, _08014B5C @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r3, r0, r6
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x32
- bne _08014B68
- ldr r0, _08014B60 @ =gLastUsedAbility
- strb r1, [r0]
- ldr r0, _08014B64 @ =gProtectStructs
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
-_08014B50:
- orrs r0, r1
- strb r0, [r2, 0x1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _08014BC2
- .align 2, 0
-_08014B5C: .4byte gBattleMons
-_08014B60: .4byte gLastUsedAbility
-_08014B64: .4byte gProtectStructs
-_08014B68:
- ldr r0, _08014BDC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08014BB6
- movs r1, 0x1
- adds r0, r4, 0
- eors r0, r1
- muls r0, r2
- adds r2, r0, r6
- ldrh r0, [r3, 0x6]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- bcs _08014BB0
- lsls r0, 7
- ldrh r1, [r2, 0x6]
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _08014BE0 @ =gSharedMem
- ldr r1, _08014BE4 @ =0x00016078
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- movs r1, 0xFF
- ands r1, r0
- cmp r4, r1
- bls _08014BB6
-_08014BB0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08014BB6:
- ldr r1, _08014BE0 @ =gSharedMem
- ldr r0, _08014BE4 @ =0x00016078
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08014BC2:
- cmp r5, 0
- beq _08014BD4
- ldr r1, _08014BE8 @ =gCurrentMoveTurn
- ldr r0, _08014BEC @ =gNoOfAllBanks
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08014BF0 @ =gBattleOutcome
- movs r0, 0x4
- strb r0, [r1]
-_08014BD4:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08014BDC: .4byte gBattleTypeFlags
-_08014BE0: .4byte gSharedMem
-_08014BE4: .4byte 0x00016078
-_08014BE8: .4byte gCurrentMoveTurn
-_08014BEC: .4byte gNoOfAllBanks
-_08014BF0: .4byte gBattleOutcome
- thumb_func_end sub_8014AB8
-
- thumb_func_start sub_8014BF4
-sub_8014BF4: @ 8014BF4
- push {r4-r6,lr}
- ldr r4, _08014C44 @ =gBankAttacker
- ldr r1, _08014C48 @ =gTurnOrder
- ldr r5, _08014C4C @ =gCurrentMoveTurn
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08014C50 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08014C9C
- ldr r0, _08014C54 @ =gNoOfAllBanks
- ldrb r1, [r0]
- strb r1, [r5]
- ldr r2, _08014C58 @ =gActiveBank
- movs r0, 0
- strb r0, [r2]
- lsls r1, 24
- cmp r1, 0
- beq _08014C88
- adds r4, r2, 0
- ldr r6, _08014C5C @ =gActionForBanks
- ldr r5, _08014C60 @ =gBattleOutcome
-_08014C28:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08014C64
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x2
- b _08014C72
- .align 2, 0
-_08014C44: .4byte gBankAttacker
-_08014C48: .4byte gTurnOrder
-_08014C4C: .4byte gCurrentMoveTurn
-_08014C50: .4byte gBattleTypeFlags
-_08014C54: .4byte gNoOfAllBanks
-_08014C58: .4byte gActiveBank
-_08014C5C: .4byte gActionForBanks
-_08014C60: .4byte gBattleOutcome
-_08014C64:
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x1
-_08014C72:
- orrs r0, r1
- strb r0, [r5]
-_08014C76:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014C94 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08014C28
-_08014C88:
- ldr r0, _08014C98 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08014D40
- .align 2, 0
-_08014C94: .4byte gNoOfAllBanks
-_08014C98: .4byte gBattleOutcome
-_08014C9C:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08014CF4
- ldrb r0, [r4]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- bne _08014D40
- ldr r1, _08014CDC @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _08014CE0 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08014CE4 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r1, _08014CE8 @ =gBattlescriptCurrInstr
- ldr r0, _08014CEC @ =BattleScript_PrintFailedToRunString
- str r0, [r1]
- ldr r1, _08014CF0 @ =gFightStateTracker
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014CDC: .4byte gBattleMons
-_08014CE0: .4byte 0xfdffffff
-_08014CE4: .4byte gBattleCommunication
-_08014CE8: .4byte gBattlescriptCurrInstr
-_08014CEC: .4byte BattleScript_PrintFailedToRunString
-_08014CF0: .4byte gFightStateTracker
-_08014CF4:
- ldr r1, _08014D1C @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08014D20 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _08014D34
- ldr r1, _08014D24 @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r1, _08014D28 @ =gBattlescriptCurrInstr
- ldr r0, _08014D2C @ =BattleScript_PrintFailedToRunString
- str r0, [r1]
- ldr r1, _08014D30 @ =gFightStateTracker
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014D1C: .4byte gBattleMons
-_08014D20: .4byte 0x0400e000
-_08014D24: .4byte gBattleCommunication
-_08014D28: .4byte gBattlescriptCurrInstr
-_08014D2C: .4byte BattleScript_PrintFailedToRunString
-_08014D30: .4byte gFightStateTracker
-_08014D34:
- ldr r0, _08014D48 @ =gNoOfAllBanks
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _08014D4C @ =gBattleOutcome
- movs r0, 0x6
-_08014D3E:
- strb r0, [r1]
-_08014D40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014D48: .4byte gNoOfAllBanks
-_08014D4C: .4byte gBattleOutcome
- thumb_func_end sub_8014BF4
-
- thumb_func_start sub_8014D50
-sub_8014D50: @ 8014D50
- ldr r2, _08014D78 @ =gBankAttacker
- ldr r1, _08014D7C @ =gTurnOrder
- ldr r0, _08014D80 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014D84 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014D88 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014D8C @ =gBattlescriptCurrInstr
- ldr r0, _08014D90 @ =gBattlescriptsForSafariActions
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08014D94 @ =gFightStateTracker
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014D78: .4byte gBankAttacker
-_08014D7C: .4byte gTurnOrder
-_08014D80: .4byte gCurrentMoveTurn
-_08014D84: .4byte gUnknown_030042A4
-_08014D88: .4byte gUnknown_030042A0
-_08014D8C: .4byte gBattlescriptCurrInstr
-_08014D90: .4byte gBattlescriptsForSafariActions
-_08014D94: .4byte gFightStateTracker
- thumb_func_end sub_8014D50
-
- thumb_func_start sub_8014D98
-sub_8014D98: @ 8014D98
- ldr r2, _08014DD0 @ =gBankAttacker
- ldr r1, _08014DD4 @ =gTurnOrder
- ldr r0, _08014DD8 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014DDC @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014DE0 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014DE4 @ =gNumSafariBalls
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r1, _08014DE8 @ =gLastUsedItem
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _08014DEC @ =gBattlescriptCurrInstr
- ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _08014DF4 @ =gFightStateTracker
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014DD0: .4byte gBankAttacker
-_08014DD4: .4byte gTurnOrder
-_08014DD8: .4byte gCurrentMoveTurn
-_08014DDC: .4byte gUnknown_030042A4
-_08014DE0: .4byte gUnknown_030042A0
-_08014DE4: .4byte gNumSafariBalls
-_08014DE8: .4byte gLastUsedItem
-_08014DEC: .4byte gBattlescriptCurrInstr
-_08014DF0: .4byte gBattlescriptsForBallThrow
-_08014DF4: .4byte gFightStateTracker
- thumb_func_end sub_8014D98
-
- thumb_func_start sub_8014DF8
-sub_8014DF8: @ 8014DF8
- push {r4-r6,lr}
- ldr r3, _08014E68 @ =gBankAttacker
- ldr r1, _08014E6C @ =gTurnOrder
- ldr r0, _08014E70 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014E74 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014E78 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r6, _08014E7C @ =gBattleCommunication
- ldr r2, _08014E80 @ =gBattleBufferB
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r6, 0x5]
- ldr r1, _08014E84 @ =gLastUsedItem
- ldrb r0, [r3]
- lsls r0, 9
- adds r2, 0x2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r2, _08014E88 @ =gSharedMem
- ldr r0, _08014E8C @ =0x00016087
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08014E42
- adds r0, 0x1
- strb r0, [r1]
-_08014E42:
- ldr r0, _08014E90 @ =0x00016088
- adds r4, r2, r0
- ldrb r5, [r4]
- adds r3, r5, 0
- cmp r3, 0x1
- bls _08014E9C
- ldr r2, _08014E94 @ =gUnknown_081FA70C
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- ldrb r6, [r6, 0x5]
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08014E98
- movs r0, 0x1
- b _08014E9A
- .align 2, 0
-_08014E68: .4byte gBankAttacker
-_08014E6C: .4byte gTurnOrder
-_08014E70: .4byte gCurrentMoveTurn
-_08014E74: .4byte gUnknown_030042A4
-_08014E78: .4byte gUnknown_030042A0
-_08014E7C: .4byte gBattleCommunication
-_08014E80: .4byte gBattleBufferB
-_08014E84: .4byte gLastUsedItem
-_08014E88: .4byte gSharedMem
-_08014E8C: .4byte 0x00016087
-_08014E90: .4byte 0x00016088
-_08014E94: .4byte gUnknown_081FA70C
-_08014E98:
- subs r0, r5, r0
-_08014E9A:
- strb r0, [r4]
-_08014E9C:
- ldr r1, _08014EB0 @ =gBattlescriptCurrInstr
- ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _08014EB8 @ =gFightStateTracker
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014EB0: .4byte gBattlescriptCurrInstr
-_08014EB4: .4byte gBattlescriptsForSafariActions
-_08014EB8: .4byte gFightStateTracker
- thumb_func_end sub_8014DF8
-
- thumb_func_start sub_8014EBC
-sub_8014EBC: @ 8014EBC
- push {r4,r5,lr}
- ldr r2, _08014F28 @ =gBankAttacker
- ldr r1, _08014F2C @ =gTurnOrder
- ldr r0, _08014F30 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014F34 @ =gUnknown_030042A4
- movs r5, 0
- strh r5, [r0]
- ldr r0, _08014F38 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r3, _08014F3C @ =gSharedMem
- ldr r0, _08014F40 @ =0x00016089
- adds r2, r3, r0
- ldr r1, _08014F44 @ =gUnknown_081FA71B
- subs r0, 0x3
- adds r4, r3, r0
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014EFA
- movs r0, 0x14
- strb r0, [r2]
-_08014EFA:
- ldr r0, _08014F48 @ =0x00016088
- adds r2, r3, r0
- ldr r1, _08014F4C @ =gUnknown_081FA71F
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014F18
- movs r0, 0x14
- strb r0, [r2]
-_08014F18:
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08014F54
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _08014F50 @ =gBattleCommunication
- strb r5, [r0, 0x5]
- b _08014F5A
- .align 2, 0
-_08014F28: .4byte gBankAttacker
-_08014F2C: .4byte gTurnOrder
-_08014F30: .4byte gCurrentMoveTurn
-_08014F34: .4byte gUnknown_030042A4
-_08014F38: .4byte gUnknown_030042A0
-_08014F3C: .4byte gSharedMem
-_08014F40: .4byte 0x00016089
-_08014F44: .4byte gUnknown_081FA71B
-_08014F48: .4byte 0x00016088
-_08014F4C: .4byte gUnknown_081FA71F
-_08014F50: .4byte gBattleCommunication
-_08014F54:
- ldr r1, _08014F70 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08014F5A:
- ldr r1, _08014F74 @ =gBattlescriptCurrInstr
- ldr r0, _08014F78 @ =gBattlescriptsForSafariActions
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _08014F7C @ =gFightStateTracker
- movs r0, 0xA
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08014F70: .4byte gBattleCommunication
-_08014F74: .4byte gBattlescriptCurrInstr
-_08014F78: .4byte gBattlescriptsForSafariActions
-_08014F7C: .4byte gFightStateTracker
- thumb_func_end sub_8014EBC
-
- thumb_func_start bs8_exit_by_flight
-bs8_exit_by_flight: @ 8014F80
- push {r4,lr}
- ldr r2, _08014FA8 @ =gBankAttacker
- ldr r1, _08014FAC @ =gTurnOrder
- ldr r4, _08014FB0 @ =gCurrentMoveTurn
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x11
- bl PlaySE
- ldr r0, _08014FB4 @ =gNoOfAllBanks
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08014FB8 @ =gBattleOutcome
- movs r0, 0x4
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014FA8: .4byte gBankAttacker
-_08014FAC: .4byte gTurnOrder
-_08014FB0: .4byte gCurrentMoveTurn
-_08014FB4: .4byte gNoOfAllBanks
-_08014FB8: .4byte gBattleOutcome
- thumb_func_end bs8_exit_by_flight
-
- thumb_func_start sub_8014FBC
-sub_8014FBC: @ 8014FBC
- ldr r3, _08015008 @ =gBankAttacker
- ldr r1, _0801500C @ =gTurnOrder
- ldr r0, _08015010 @ =gCurrentMoveTurn
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- strb r2, [r3]
- ldr r0, _08015014 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08015018 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _0801501C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _08015020 @ =gBattlePartyID
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08015024 @ =gBattlescriptCurrInstr
- ldr r0, _08015028 @ =gBattlescriptsForSafariActions
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _0801502C @ =gFightStateTracker
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08015030 @ =gUnknown_02024A76
- movs r0, 0xC
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08015008: .4byte gBankAttacker
-_0801500C: .4byte gTurnOrder
-_08015010: .4byte gCurrentMoveTurn
-_08015014: .4byte gUnknown_030042A4
-_08015018: .4byte gUnknown_030042A0
-_0801501C: .4byte gBattleTextBuff1
-_08015020: .4byte gBattlePartyID
-_08015024: .4byte gBattlescriptCurrInstr
-_08015028: .4byte gBattlescriptsForSafariActions
-_0801502C: .4byte gFightStateTracker
-_08015030: .4byte gUnknown_02024A76
- thumb_func_end sub_8014FBC
-
- thumb_func_start bsB_exit_by_move
-bsB_exit_by_move: @ 8015034
- push {lr}
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08015050
- ldr r0, _08015054 @ =gSharedMem
- ldr r2, _08015058 @ =0x00016059
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801505C @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
-_08015050:
- pop {r0}
- bx r0
- .align 2, 0
-_08015054: .4byte gSharedMem
-_08015058: .4byte 0x00016059
-_0801505C: .4byte gFightStateTracker
- thumb_func_end bsB_exit_by_move
-
- thumb_func_start sub_8015060
-sub_8015060: @ 8015060
- ldr r1, _08015080 @ =gCurrentMoveTurn
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015084 @ =gFightStateTracker
- ldr r2, _08015088 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r2, _0801508C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08015090 @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08015080: .4byte gCurrentMoveTurn
-_08015084: .4byte gFightStateTracker
-_08015088: .4byte gUnknown_02024A76
-_0801508C: .4byte gHitMarker
-_08015090: .4byte 0xf1e892af
- thumb_func_end sub_8015060
-
- thumb_func_start bsC_8016D70
-bsC_8016D70: @ 8015094
- push {r4,r5,lr}
- ldr r1, _0801510C @ =gCurrentMoveTurn
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015110 @ =gFightStateTracker
- ldr r2, _08015114 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- bl SpecialStatusesClear
- ldr r2, _08015118 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0801511C @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- ldr r0, _08015120 @ =gBattleMoveDamage
- movs r4, 0
- str r4, [r0]
- ldr r1, _08015124 @ =gSharedMem
- ldr r2, _08015128 @ =0x00016002
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0801512C @ =0x000160a1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r2, _08015130 @ =gMoveHitWith
- ldr r5, _08015134 @ =gBankAttacker
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- strh r4, [r0]
- ldr r3, _08015138 @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r3
- strh r4, [r0]
- ldr r3, _0801513C @ =0x0001601c
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015140 @ =gDynamicBasePower
- strh r4, [r0]
- subs r3, 0x10
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015144 @ =gBattleCommunication
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- ldr r3, _08015148 @ =0x00016112
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0801514C @ =0x00017130
- adds r1, r0
- strb r2, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801510C: .4byte gCurrentMoveTurn
-_08015110: .4byte gFightStateTracker
-_08015114: .4byte gUnknown_02024A76
-_08015118: .4byte gHitMarker
-_0801511C: .4byte 0xf1e892af
-_08015120: .4byte gBattleMoveDamage
-_08015124: .4byte gSharedMem
-_08015128: .4byte 0x00016002
-_0801512C: .4byte 0x000160a1
-_08015130: .4byte gMoveHitWith
-_08015134: .4byte gBankAttacker
-_08015138: .4byte gUnknown_02024C44
-_0801513C: .4byte 0x0001601c
-_08015140: .4byte gDynamicBasePower
-_08015144: .4byte gBattleCommunication
-_08015148: .4byte 0x00016112
-_0801514C: .4byte 0x00017130
- thumb_func_end bsC_8016D70
-
- thumb_func_start GetBattleBank
-GetBattleBank: @ 8015150
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r0, 0xA
- bhi _080151C8
- lsls r0, 2
- ldr r1, _08015168 @ =_0801516C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015168: .4byte _0801516C
- .align 2, 0
-_0801516C:
- .4byte _08015198
- .4byte _080151A0
- .4byte _080151A8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151B0
- .4byte _080151C8
- .4byte _080151C8
- .4byte _080151B4
-_08015198:
- ldr r0, _0801519C @ =gBankTarget
- b _080151C6
- .align 2, 0
-_0801519C: .4byte gBankTarget
-_080151A0:
- ldr r0, _080151A4 @ =gBankAttacker
- b _080151C6
- .align 2, 0
-_080151A4: .4byte gBankAttacker
-_080151A8:
- ldr r0, _080151AC @ =gEffectBank
- b _080151C6
- .align 2, 0
-_080151AC: .4byte gEffectBank
-_080151B0:
- movs r2, 0
- b _080151C8
-_080151B4:
- ldr r0, _080151BC @ =gSharedMem
- ldr r1, _080151C0 @ =0x00016003
- adds r0, r1
- b _080151C6
- .align 2, 0
-_080151BC: .4byte gSharedMem
-_080151C0: .4byte 0x00016003
-_080151C4:
- ldr r0, _080151D0 @ =gBank1
-_080151C6:
- ldrb r2, [r0]
-_080151C8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080151D0: .4byte gBank1
- thumb_func_end GetBattleBank
-
- thumb_func_start PressurePPLose
-PressurePPLose: @ 80151D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _08015204 @ =gBattleMons
- movs r4, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x2E
- bne _08015286
- movs r3, 0
- adds r0, r5, 0
- muls r0, r4
- adds r1, 0xC
- adds r1, r0, r1
- b _08015210
- .align 2, 0
-_08015204: .4byte gBattleMons
-_08015208:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08015216
-_08015210:
- ldrh r0, [r1]
- cmp r0, r2
- bne _08015208
-_08015216:
- cmp r3, 0x4
- beq _08015286
- movs r7, 0x58
- adds r2, r5, 0
- muls r2, r7
- adds r0, r3, r2
- mov r6, r12
- adds r6, 0x24
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015232
- subs r0, 0x1
- strb r0, [r1]
-_08015232:
- mov r0, r12
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08015286
- ldr r1, _08015290 @ =gDisableStructs
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08015294 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08015286
- ldr r4, _08015298 @ =gActiveBank
- strb r5, [r4]
- adds r1, r3, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r7
- adds r0, r6
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08015286:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015290: .4byte gDisableStructs
-_08015294: .4byte gBitTable
-_08015298: .4byte gActiveBank
- thumb_func_end PressurePPLose
-
- thumb_func_start sub_801529C
-sub_801529C: @ 801529C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x4
- mov r8, r0
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _080153BC @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bge _08015344
- ldr r1, _080153C0 @ =gBattleMons
- movs r0, 0x58
- adds r7, r5, 0
- muls r7, r0
- adds r1, 0xC
- mov r10, r1
-_080152D2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- adds r6, r4, 0x1
- cmp r9, r0
- beq _0801533A
- ldr r0, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r1, r4, 0
- muls r1, r3
- adds r1, r0
- adds r1, 0x20
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0x2E
- bne _0801533A
- movs r2, 0
- adds r0, r5, 0
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- cmp r0, r1
- beq _08015322
- adds r3, r1, 0
- mov r0, r10
- adds r1, r7, r0
-_08015314:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015322
- ldrh r0, [r1]
- cmp r0, r3
- bne _08015314
-_08015322:
- cmp r2, 0x4
- beq _0801533A
- mov r8, r2
- adds r1, r2, r7
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801533A
- subs r0, 0x1
- strb r0, [r1]
-_0801533A:
- adds r4, r6, 0
- ldr r0, _080153BC @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _080152D2
-_08015344:
- mov r1, r8
- cmp r1, 0x4
- beq _080153AC
- ldr r6, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r0, r5, 0
- muls r0, r3
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080153AC
- ldr r1, _080153C4 @ =gDisableStructs
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080153C8 @ =gBitTable
- mov r4, r8
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080153AC
- ldr r4, _080153CC @ =gActiveBank
- strb r5, [r4]
- mov r1, r8
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r3
- adds r2, r6, 0
- adds r2, 0x24
- adds r0, r2
- add r0, r8
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080153AC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080153BC: .4byte gNoOfAllBanks
-_080153C0: .4byte gBattleMons
-_080153C4: .4byte gDisableStructs
-_080153C8: .4byte gBitTable
-_080153CC: .4byte gActiveBank
- thumb_func_end sub_801529C
-
- thumb_func_start sub_80153D0
-sub_80153D0: @ 80153D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- movs r6, 0x4
- movs r1, 0
- ldr r0, _080154C8 @ =gNoOfAllBanks
- mov r8, r0
- ldrb r0, [r0]
- cmp r1, r0
- bge _08015452
- ldr r7, _080154CC @ =gBattleMons
- movs r2, 0x58
- mov r12, r2
- mov r5, r12
- muls r5, r3
- adds r0, r7, 0
- adds r0, 0xC
- adds r2, r5, r0
- mov r10, r2
- mov r9, r5
-_08015402:
- mov r0, r12
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r1, 0x1
- cmp r0, 0x2E
- bne _08015448
- cmp r1, r3
- beq _08015448
- movs r2, 0
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, 0xC3
- beq _08015432
- ldr r1, _080154D0 @ =gUnknown_02024A8C
- add r1, r9
-_08015424:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015432
- ldrh r0, [r1]
- cmp r0, 0xC3
- bne _08015424
-_08015432:
- cmp r2, 0x4
- beq _08015448
- adds r6, r2, 0
- adds r0, r6, r5
- ldr r2, _080154D4 @ =gUnknown_02024AA4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015448
- subs r0, 0x1
- strb r0, [r1]
-_08015448:
- adds r1, r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r1, r0
- blt _08015402
-_08015452:
- cmp r6, 0x4
- beq _080154B6
- ldr r7, _080154CC @ =gBattleMons
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080154B6
- ldr r1, _080154D8 @ =gDisableStructs
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080154DC @ =gBitTable
- lsls r0, r6, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080154B6
- ldr r4, _080154E0 @ =gActiveBank
- strb r3, [r4]
- adds r1, r6, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r5
- adds r2, r7, 0
- adds r2, 0x24
- adds r0, r2
- adds r0, r6
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080154B6:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080154C8: .4byte gNoOfAllBanks
-_080154CC: .4byte gBattleMons
-_080154D0: .4byte gUnknown_02024A8C
-_080154D4: .4byte gUnknown_02024AA4
-_080154D8: .4byte gDisableStructs
-_080154DC: .4byte gBitTable
-_080154E0: .4byte gActiveBank
- thumb_func_end sub_80153D0
-
- thumb_func_start unref_sub_80154E4
-unref_sub_80154E4: @ 80154E4
- push {r4,r5,lr}
- ldr r0, _08015514 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015524
- movs r2, 0
- ldr r4, _08015518 @ =gNoOfAllBanks
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801551C @ =gBattleExecBuffer
- ldr r5, _08015520 @ =gBitTable
-_08015500:
- ldm r5!, {r1}
- lsls r1, 28
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015500
- b _08015542
- .align 2, 0
-_08015514: .4byte gBattleTypeFlags
-_08015518: .4byte gNoOfAllBanks
-_0801551C: .4byte gBattleExecBuffer
-_08015520: .4byte gBitTable
-_08015524:
- movs r2, 0
- ldr r4, _08015548 @ =gNoOfAllBanks
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801554C @ =gBattleExecBuffer
- ldr r5, _08015550 @ =gBitTable
-_08015532:
- ldr r0, [r3]
- ldm r5!, {r1}
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015532
-_08015542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08015548: .4byte gNoOfAllBanks
-_0801554C: .4byte gBattleExecBuffer
-_08015550: .4byte gBitTable
- thumb_func_end unref_sub_80154E4
-
- thumb_func_start MarkBufferBankForExecution
-MarkBufferBankForExecution: @ 8015554
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0801557C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015588
- ldr r2, _08015580 @ =gBattleExecBuffer
- ldr r1, _08015584 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _08015598
- .align 2, 0
-_0801557C: .4byte gBattleTypeFlags
-_08015580: .4byte gBattleExecBuffer
-_08015584: .4byte gBitTable
-_08015588:
- ldr r2, _0801559C @ =gBattleExecBuffer
- ldr r1, _080155A0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
-_08015598:
- pop {r0}
- bx r0
- .align 2, 0
-_0801559C: .4byte gBattleExecBuffer
-_080155A0: .4byte gBitTable
- thumb_func_end MarkBufferBankForExecution
-
- thumb_func_start sub_80155A4
-sub_80155A4: @ 80155A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r5, _080155B8 @ =gBattleExecBuffer
- ldr r1, _080155BC @ =gBitTable
- lsls r0, r7, 2
- adds r6, r0, r1
- b _080155CE
- .align 2, 0
-_080155B8: .4byte gBattleExecBuffer
-_080155BC: .4byte gBitTable
-_080155C0:
- lsls r0, r4, 2
- ldr r1, [r6]
- lsls r1, r0
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- adds r4, 0x1
-_080155CE:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080155C0
- ldr r2, _080155F0 @ =gBattleExecBuffer
- movs r1, 0x80
- lsls r1, 21
- lsls r1, r7
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080155F0: .4byte gBattleExecBuffer
- thumb_func_end sub_80155A4
-
- thumb_func_start CancelMultiTurnMoves
-CancelMultiTurnMoves: @ 80155F4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015644 @ =gBattleMons
- movs r2, 0x58
- adds r3, r0, 0
- muls r3, r2
- adds r1, 0x50
- adds r3, r1
- ldr r1, [r3]
- ldr r2, _08015648 @ =0xffffefff
- ands r1, r2
- ldr r2, _0801564C @ =0xfffff3ff
- ands r1, r2
- movs r2, 0x71
- negs r2, r2
- ands r1, r2
- ldr r2, _08015650 @ =0xfffffcff
- ands r1, r2
- str r1, [r3]
- ldr r1, _08015654 @ =gStatuses3
- lsls r2, r0, 2
- adds r2, r1
- ldr r1, [r2]
- ldr r3, _08015658 @ =0xfffbff3f
- ands r1, r3
- str r1, [r2]
- ldr r2, _0801565C @ =gDisableStructs
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x11]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x11]
- movs r0, 0
- strb r0, [r1, 0x10]
- bx lr
- .align 2, 0
-_08015644: .4byte gBattleMons
-_08015648: .4byte 0xffffefff
-_0801564C: .4byte 0xfffff3ff
-_08015650: .4byte 0xfffffcff
-_08015654: .4byte gStatuses3
-_08015658: .4byte 0xfffbff3f
-_0801565C: .4byte gDisableStructs
- thumb_func_end CancelMultiTurnMoves
-
- thumb_func_start sub_8015660
-sub_8015660: @ 8015660
- push {lr}
- lsls r0, 24
- ldr r1, _080156AC @ =gProtectStructs
- lsrs r0, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- bne _080156A6
- ldrb r2, [r1, 0x1]
- lsls r0, r2, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 26
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 25
- cmp r0, 0
- blt _080156A6
- lsrs r0, r2, 7
- cmp r0, 0
- bne _080156A6
- ldrb r1, [r1, 0x2]
- lsls r0, r1, 31
- cmp r0, 0
- bne _080156A6
- lsls r0, r1, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r1, 29
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 31
- cmp r0, 0
- beq _080156B0
-_080156A6:
- movs r0, 0x1
- b _080156B2
- .align 2, 0
-_080156AC: .4byte gProtectStructs
-_080156B0:
- movs r0, 0
-_080156B2:
- pop {r1}
- bx r1
- thumb_func_end sub_8015660
-
- thumb_func_start PrepareStringBattle
-PrepareStringBattle: @ 80156B8
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080156D8 @ =gActiveBank
- strb r1, [r4]
- movs r0, 0
- adds r1, r2, 0
- bl EmitPrintString
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080156D8: .4byte gActiveBank
- thumb_func_end PrepareStringBattle
-
- thumb_func_start sub_80156DC
-sub_80156DC: @ 80156DC
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08015730 @ =gSentPokesToOpponent
- strb r3, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0
- ldr r0, _08015734 @ =gNoOfAllBanks
- ldrb r2, [r0]
- adds r6, r0, 0
- cmp r1, r2
- bge _0801570A
- ldr r5, _08015738 @ =gBitTable
- adds r4, r2, 0
- ldr r2, _0801573C @ =gBattlePartyID
-_080156F8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- orrs r3, r0
- adds r2, 0x4
- adds r1, 0x2
- cmp r1, r4
- blt _080156F8
-_0801570A:
- movs r1, 0x1
- adds r2, r6, 0
- ldrb r0, [r2]
- cmp r1, r0
- bge _0801572A
- ldr r5, _08015730 @ =gSentPokesToOpponent
- movs r4, 0x2
-_08015718:
- adds r0, r1, 0
- ands r0, r4
- asrs r0, 1
- adds r0, r5
- strb r3, [r0]
- adds r1, 0x2
- ldrb r0, [r2]
- cmp r1, r0
- blt _08015718
-_0801572A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015730: .4byte gSentPokesToOpponent
-_08015734: .4byte gNoOfAllBanks
-_08015738: .4byte gBitTable
-_0801573C: .4byte gBattlePartyID
- thumb_func_end sub_80156DC
-
- thumb_func_start sub_8015740
-sub_8015740: @ 8015740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157A4
- movs r0, 0x2
- ands r0, r5
- lsls r0, 24
- lsrs r0, 25
- mov r12, r0
- ldr r1, _080157B0 @ =gSentPokesToOpponent
- adds r0, r1
- strb r4, [r0]
- adds r5, r4, 0
- ldr r0, _080157B4 @ =gNoOfAllBanks
- ldrb r2, [r0]
- mov r8, r1
- cmp r4, r2
- bge _0801579E
- ldr r0, _080157B8 @ =gAbsentBankFlags
- ldrb r7, [r0]
- ldr r1, _080157BC @ =gBitTable
- adds r6, r2, 0
- ldr r3, _080157C0 @ =gBattlePartyID
- adds r2, r1, 0
-_08015782:
- ldr r0, [r2]
- ands r0, r7
- cmp r0, 0
- bne _08015794
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r4, r0
-_08015794:
- adds r3, 0x4
- adds r2, 0x8
- adds r5, 0x2
- cmp r5, r6
- blt _08015782
-_0801579E:
- mov r0, r12
- add r0, r8
- strb r4, [r0]
-_080157A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080157B0: .4byte gSentPokesToOpponent
-_080157B4: .4byte gNoOfAllBanks
-_080157B8: .4byte gAbsentBankFlags
-_080157BC: .4byte gBitTable
-_080157C0: .4byte gBattlePartyID
- thumb_func_end sub_8015740
-
- thumb_func_start sub_80157C4
-sub_80157C4: @ 80157C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157E0
- adds r0, r4, 0
- bl sub_8015740
- b _08015816
-_080157E0:
- movs r3, 0x1
- ldr r5, _0801581C @ =gNoOfAllBanks
- ldrb r0, [r5]
- cmp r3, r0
- bge _08015816
- ldr r0, _08015820 @ =gSentPokesToOpponent
- mov r12, r0
- movs r7, 0x2
- ldr r6, _08015824 @ =gBitTable
- ldr r1, _08015828 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r4, r0, r1
-_080157F8:
- adds r2, r3, 0
- ands r2, r7
- asrs r2, 1
- add r2, r12
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080157F8
-_08015816:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801581C: .4byte gNoOfAllBanks
-_08015820: .4byte gSentPokesToOpponent
-_08015824: .4byte gBitTable
-_08015828: .4byte gBattlePartyID
- thumb_func_end sub_80157C4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_9.s b/asm/battle_9.s
index dce32d076..3f162df12 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -95,7 +95,7 @@ _0803609C: .4byte 0x000160c8
_080360A0:
ldr r4, _080361D8 @ =gBattleMons
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
movs r1, 0x58
@@ -108,7 +108,7 @@ _080360A0:
b _080361C8
_080360BC:
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r2, r0, 24
movs r6, 0
@@ -187,7 +187,7 @@ _08036110:
movs r1, 0x2E
bl GetMonData
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r2, r0, 24
movs r4, 0
@@ -273,7 +273,7 @@ sub_80361E8: @ 80361E8
beq _08036214
b _08036400
_08036214:
- ldr r1, _0803627C @ =gMoveHitWith
+ ldr r1, _0803627C @ =gLastLandedMoves
ldr r5, _08036280 @ =gActiveBank
ldrb r3, [r5]
lsls r0, r3, 1
@@ -312,7 +312,7 @@ _08036242:
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _08036290 @ =gAbsentBankFlags
ldrb r1, [r1]
ldr r2, _08036294 @ =gBitTable
@@ -326,7 +326,7 @@ _08036242:
ldrb r7, [r5]
b _080362B2
.align 2, 0
-_0803627C: .4byte gMoveHitWith
+_0803627C: .4byte gLastLandedMoves
_08036280: .4byte gActiveBank
_08036284: .4byte 0x0000ffff
_08036288: .4byte gBattleMoves
@@ -339,7 +339,7 @@ _08036298:
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r7, r0, 24
b _080362B2
@@ -348,7 +348,7 @@ _080362AE:
mov r8, r7
_080362B2:
ldr r3, _080362D4 @ =gBattleMoves
- ldr r1, _080362D8 @ =gMoveHitWith
+ ldr r1, _080362D8 @ =gLastLandedMoves
ldr r2, _080362DC @ =gActiveBank
ldrb r0, [r2]
lsls r0, 1
@@ -366,7 +366,7 @@ _080362B2:
b _080362F2
.align 2, 0
_080362D4: .4byte gBattleMoves
-_080362D8: .4byte gMoveHitWith
+_080362D8: .4byte gLastLandedMoves
_080362DC: .4byte gActiveBank
_080362E0:
cmp r0, 0xB
@@ -548,7 +548,7 @@ AI_SwitchIfNaturalCure: @ 8036410
lsrs r0, 1
cmp r1, r0
bcc _080364D8
- ldr r1, _08036470 @ =gMoveHitWith
+ ldr r1, _08036470 @ =gLastLandedMoves
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -568,11 +568,11 @@ _08036456:
.align 2, 0
_08036468: .4byte gBattleMons
_0803646C: .4byte gActiveBank
-_08036470: .4byte gMoveHitWith
+_08036470: .4byte gLastLandedMoves
_08036474: .4byte 0x0000ffff
_08036478:
ldr r2, _080364A4 @ =gBattleMoves
- ldr r1, _080364A8 @ =gMoveHitWith
+ ldr r1, _080364A8 @ =gLastLandedMoves
ldr r4, _080364AC @ =gActiveBank
ldrb r0, [r4]
lsls r0, 1
@@ -594,7 +594,7 @@ _08036478:
b _080364E0
.align 2, 0
_080364A4: .4byte gBattleMoves
-_080364A8: .4byte gMoveHitWith
+_080364A8: .4byte gLastLandedMoves
_080364AC: .4byte gActiveBank
_080364B0:
movs r0, 0x8
@@ -656,7 +656,7 @@ ai_has_super_effective_move_on_field: @ 8036514
lsrs r0, 24
mov r8, r0
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r3, r0, 24
ldr r0, _080365AC @ =gAbsentBankFlags
@@ -733,7 +733,7 @@ _080365C0:
b _08036640
_080365C4:
movs r0, 0x2
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r3, r0, 24
ldr r0, _0803664C @ =gAbsentBankFlags
@@ -863,7 +863,7 @@ sub_80366A4: @ 80366A4
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0x4]
- ldr r1, _08036730 @ =gMoveHitWith
+ ldr r1, _08036730 @ =gLastLandedMoves
ldr r5, _08036734 @ =gActiveBank
ldrb r3, [r5]
lsls r0, r3, 1
@@ -909,7 +909,7 @@ _080366F6:
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _08036748 @ =gAbsentBankFlags
ldrb r1, [r1]
ldr r2, _0803674C @ =gBitTable
@@ -924,7 +924,7 @@ _080366F6:
mov r10, r5
b _0803679C
.align 2, 0
-_08036730: .4byte gMoveHitWith
+_08036730: .4byte gLastLandedMoves
_08036734: .4byte gActiveBank
_08036738: .4byte 0x0000ffff
_0803673C: .4byte gUnknown_02024C5C
@@ -938,7 +938,7 @@ _08036750:
eors r0, r4
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -1053,7 +1053,7 @@ _08036844:
adds r0, r2
ldrb r2, [r0, 0x16]
_08036850:
- ldr r1, _080368F0 @ =gMoveHitWith
+ ldr r1, _080368F0 @ =gLastLandedMoves
ldr r5, _080368F4 @ =gActiveBank
ldrb r0, [r5]
lsls r0, 1
@@ -1132,7 +1132,7 @@ _080368DA:
bx r1
.align 2, 0
_080368EC: .4byte gBaseStats
-_080368F0: .4byte gMoveHitWith
+_080368F0: .4byte gLastLandedMoves
_080368F4: .4byte gActiveBank
_080368F8: .4byte gUnknown_02024C5C
_080368FC: .4byte gBattleMons
@@ -1238,7 +1238,7 @@ _080369A0:
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _080369F4 @ =gAbsentBankFlags
ldrb r1, [r1]
ldr r2, _080369F8 @ =gBitTable
@@ -1265,7 +1265,7 @@ _080369FC:
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r6, r0, 24
b _08036A18
@@ -1387,6 +1387,176 @@ _08036AFE:
bx r1
thumb_func_end AI_ShouldSwitch
+.if DEBUG
+ thumb_func_start sub_8036B0C
+sub_8036B0C:
+.syntax divided
+ push {r4, r5, r6, lr}
+ ldr r5, ._205 @ gBattleTypeFlags
+ ldrh r1, [r5]
+ mov r0, #0x8
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._197 @cond_branch
+ b ._216
+._197:
+ bl AI_ShouldSwitch
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._199 @cond_branch
+ b ._200
+._199:
+ ldr r4, ._205 + 4 @ 0x2000000
+ ldr r0, ._205 + 8 @ gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x19
+ ldr r1, ._205 + 12 @ 0x160c8
+ add r0, r0, r1
+ add r0, r0, r4
+ ldrb r0, [r0]
+ cmp r0, #0x6
+ bne ._201 @cond_branch
+ bl sub_8036CD4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x6
+ bne ._211 @cond_branch
+ ldrh r1, [r5]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._203 @cond_branch
+ mov r0, #0x1
+ bl GetBankByIdentity
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r6, r5, #0
+ b ._204
+._206:
+ .align 2, 0
+._205:
+ .word gBattleTypeFlags
+ .word 0x2000000
+ .word gActiveBank
+ .word 0x160c8
+._203:
+ mov r0, #0x1
+ bl GetBankByIdentity
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ mov r0, #0x3
+ bl GetBankByIdentity
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+._204:
+ mov r4, #0x0
+._212:
+ mov r0, #0x64
+ mul r0, r0, r4
+ ldr r1, ._214 @ gEnemyParty
+ add r0, r0, r1
+ mov r1, #0x39
+ bl GetMonData
+ cmp r0, #0
+ beq ._210 @cond_branch
+ ldr r1, ._214 + 4 @ gBattlePartyID
+ lsl r0, r6, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq ._210 @cond_branch
+ lsl r0, r5, #0x1
+ add r0, r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq ._210 @cond_branch
+ ldr r1, ._214 + 8 @ 0x2000000
+ ldr r2, ._214 + 12 @ 0x16068
+ add r0, r6, r2
+ add r0, r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq ._210 @cond_branch
+ add r0, r5, r2
+ add r0, r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne ._211 @cond_branch
+._210:
+ add r4, r4, #0x1
+ cmp r4, #0x5
+ ble ._212 @cond_branch
+._211:
+ ldr r0, ._214 + 16 @ gActiveBank
+ ldrb r0, [r0]
+ bl GetBankIdentity
+ ldr r1, ._214 + 8 @ 0x2000000
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x19
+ ldr r3, ._214 + 20 @ 0x160c8
+ add r0, r0, r3
+ add r0, r0, r1
+ strb r4, [r0]
+._201:
+ ldr r4, ._214 + 16 @ gActiveBank
+ ldrb r0, [r4]
+ bl GetBankIdentity
+ ldr r2, ._214 + 8 @ 0x2000000
+ ldrb r1, [r4]
+ ldr r3, ._214 + 12 @ 0x16068
+ add r1, r1, r3
+ add r1, r1, r2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x19
+ add r3, r3, #0x60
+ add r0, r0, r3
+ add r0, r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b ._217
+._215:
+ .align 2, 0
+._214:
+ .word gEnemyParty
+ .word gBattlePartyID
+ .word 0x2000000
+ .word 0x16068
+ .word gActiveBank
+ .word 0x160c8
+._200:
+ ldr r0, ._218 @ gUnknown_02023A14
+ ldrb r1, [r0]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._216 @cond_branch
+ bl AI_ShouldUseItem
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._217 @cond_branch
+._216:
+ ldr r0, ._218 + 4 @ gActiveBank
+ ldrb r0, [r0]
+ mov r2, #0x1
+ eor r2, r2, r0
+ lsl r2, r2, #0x8
+ mov r0, #0x1
+ mov r1, #0x0
+ bl Emitcmd33
+._217:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._219:
+ .align 2, 0
+._218:
+ .word gUnknown_02023A14+0x50
+ .word gActiveBank
+.syntax unified
+ thumb_func_end sub_8036B0C
+.else
thumb_func_start sub_8036B0C
sub_8036B0C: @ 8036B0C
push {r4-r6,lr}
@@ -1427,7 +1597,7 @@ _08036B28:
cmp r0, 0
bne _08036B78
movs r0, 0x1
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
@@ -1439,11 +1609,11 @@ _08036B70: .4byte gActiveBank
_08036B74: .4byte 0x000160c8
_08036B78:
movs r0, 0x1
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x3
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r5, r0, 24
_08036B8C:
@@ -1540,6 +1710,7 @@ _08036C40:
.align 2, 0
_08036C48: .4byte gActiveBank
thumb_func_end sub_8036B0C
+.endif
thumb_func_start sub_8036C4C
sub_8036C4C: @ 8036C4C
@@ -1636,7 +1807,7 @@ sub_8036CD4: @ 8036CD4
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _08036D24 @ =gAbsentBankFlags
ldrb r1, [r1]
ldr r2, _08036D28 @ =gBitTable
@@ -1661,7 +1832,7 @@ _08036D2C:
eors r0, r5
lsls r0, 24
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
@@ -1692,7 +1863,7 @@ _08036D70: .4byte gAbsentBankFlags
_08036D74: .4byte gBitTable
_08036D78:
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -2598,7 +2769,7 @@ _08037468:
ldrb r0, [r0, 0x16]
cmp r0, 0
beq _080374A8
- ldr r0, _080374A4 @ =gSideTimer
+ ldr r0, _080374A4 @ =gSideTimers
lsls r1, r3, 1
adds r1, r3
lsls r1, 2
@@ -2613,7 +2784,7 @@ _08037496:
.align 2, 0
_0803749C: .4byte gActiveBank
_080374A0: .4byte gDisableStructs
-_080374A4: .4byte gSideTimer
+_080374A4: .4byte gSideTimers
_080374A8:
mov r1, r8
cmp r1, 0
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
deleted file mode 100644
index 2c19ad731..000000000
--- a/asm/battle_anim_81258BC.s
+++ /dev/null
@@ -1,732 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start unref_sub_812AECC
-unref_sub_812AECC: @ 812AECC
- push {lr}
- bl RunMysteryEventScript
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _0812AEEA
- cmp r0, 0x1
- ble _0812AF08
- cmp r1, 0x2
- beq _0812AEF4
- cmp r1, 0x3
- beq _0812AEFA
- b _0812AF08
-_0812AEEA:
- movs r0, 0x16
- bl PlaySE
- movs r0, 0x1
- b _0812AF0A
-_0812AEF4:
- bl sub_812AF10
- b _0812AF08
-_0812AEFA:
- movs r0, 0x16
- bl PlaySE
- bl sub_812AF10
- movs r0, 0x1
- b _0812AF0A
-_0812AF08:
- movs r0, 0
-_0812AF0A:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812AECC
-
- thumb_func_start sub_812AF10
-sub_812AF10: @ 812AF10
- push {lr}
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0812AF2C @ =gStringVar4
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF2C: .4byte gStringVar4
- thumb_func_end sub_812AF10
-
- thumb_func_start sub_812AF30
-sub_812AF30: @ 812AF30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812AF8C @ =gTasks
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- adds r6, r1
- ldr r1, _0812AF90 @ =gBattleAnimArgs
- ldrh r0, [r1]
- strh r0, [r6, 0x8]
- ldrh r0, [r1, 0x2]
- strh r0, [r6, 0xA]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl CalculatePanIncrement
- strh r4, [r6, 0xC]
- strh r5, [r6, 0xE]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r6, 0x10]
- movs r0, 0xA
- strh r0, [r6, 0x1C]
- ldr r0, _0812AF94 @ =sub_812AF98
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF8C: .4byte gTasks
-_0812AF90: .4byte gBattleAnimArgs
-_0812AF94: .4byte sub_812AF98
- thumb_func_end sub_812AF30
-
- thumb_func_start sub_812AF98
-sub_812AF98: @ 812AF98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812AFC8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r5, [r4, 0xC]
- ldrb r6, [r4, 0x10]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- bne _0812AFD0
- movs r0, 0x5
- strh r0, [r4, 0x1C]
- strh r1, [r4, 0x1E]
- ldr r0, _0812AFCC @ =sub_812B004
- str r0, [r4]
- b _0812AFFE
- .align 2, 0
-_0812AFC8: .4byte gTasks
-_0812AFCC: .4byte sub_812B004
-_0812AFD0:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0812AFEA
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x8]
- lsls r1, r5, 24
- asrs r1, 24
- bl PlaySE12WithPanning
-_0812AFEA:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_8077104
- strh r0, [r4, 0xC]
-_0812AFFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812AF98
-
- thumb_func_start sub_812B004
-sub_812B004: @ 812B004
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B054 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0812B04C
- movs r0, 0
- strh r0, [r4, 0x1C]
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812B04C
- adds r0, r5, 0
- bl DestroyAnimSoundTask
-_0812B04C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B054: .4byte gTasks
- thumb_func_end sub_812B004
-
- thumb_func_start sub_812B058
-sub_812B058: @ 812B058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B0FC @ =gBattleAnimArgs
- ldrh r1, [r0]
- str r1, [sp]
- ldrb r5, [r0, 0x4]
- ldrb r6, [r0, 0x6]
- ldrb r3, [r0, 0x8]
- mov r10, r3
- ldrb r7, [r0, 0xA]
- ldrb r1, [r0, 0xC]
- mov r9, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl BattleAnimAdjustPanning
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl BattleAnimAdjustPanning
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CalculatePanIncrement
- ldr r2, _0812B100 @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- mov r6, sp
- ldrh r6, [r6]
- strh r6, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r10
- strh r0, [r1, 0x10]
- strh r7, [r1, 0x12]
- mov r3, r9
- strh r3, [r1, 0x14]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- strh r3, [r1, 0x20]
- ldr r2, _0812B104 @ =sub_812B108
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B0FC: .4byte gBattleAnimArgs
-_0812B100: .4byte gTasks
-_0812B104: .4byte sub_812B108
- thumb_func_end sub_812B058
-
- thumb_func_start sub_812B108
-sub_812B108: @ 812B108
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B14C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0x1
- strh r1, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B150
- movs r0, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x8]
- movs r1, 0x1E
- ldrsb r1, [r4, r1]
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0812B150
- adds r0, r5, 0
- bl DestroyAnimSoundTask
- b _0812B182
- .align 2, 0
-_0812B14C: .4byte gTasks
-_0812B150:
- ldr r1, _0812B188 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B182
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xE]
- ldrh r1, [r4, 0x1E]
- adds r0, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B188: .4byte gTasks
- thumb_func_end sub_812B108
-
- thumb_func_start sub_812B18C
-sub_812B18C: @ 812B18C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- lsls r0, 24
- lsrs r6, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0812B1CC
- ldr r0, _0812B1BC @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812B1C4
- ldr r0, _0812B1C0 @ =gSharedMem + 0x19348
- ldrh r4, [r0]
- b _0812B272
- .align 2, 0
-_0812B1BC: .4byte gBattleAnimArgs
-_0812B1C0: .4byte gSharedMem + 0x19348
-_0812B1C4:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _0812B272
-_0812B1CC:
- ldr r0, _0812B1E0 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _0812B1E8
- ldr r0, _0812B1E4 @ =gAnimBankAttacker
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1E0: .4byte gBattleAnimArgs
-_0812B1E4: .4byte gAnimBankAttacker
-_0812B1E8:
- cmp r1, 0x1
- bne _0812B1F8
- ldr r0, _0812B1F4 @ =gAnimBankTarget
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1F4: .4byte gAnimBankTarget
-_0812B1F8:
- cmp r1, 0x2
- bne _0812B204
- ldr r0, _0812B200 @ =gAnimBankAttacker
- b _0812B206
- .align 2, 0
-_0812B200: .4byte gAnimBankAttacker
-_0812B204:
- ldr r0, _0812B230 @ =gAnimBankTarget
-_0812B206:
- ldrb r1, [r0]
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r1
-_0812B20E:
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _0812B21A
- cmp r0, 0x3
- bne _0812B234
-_0812B21A:
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- bne _0812B234
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _0812B2B0
- .align 2, 0
-_0812B230: .4byte gAnimBankTarget
-_0812B234:
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0812B258
- ldr r1, _0812B250 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B254 @ =gEnemyParty
- b _0812B266
- .align 2, 0
-_0812B250: .4byte gBattlePartyID
-_0812B254: .4byte gEnemyParty
-_0812B258:
- ldr r1, _0812B290 @ =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B294 @ =gPlayerParty
-_0812B266:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_0812B272:
- cmp r4, 0
- beq _0812B2AA
- ldr r0, _0812B298 @ =gBattleAnimArgs
- ldrh r2, [r0, 0x2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- bne _0812B29C
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlayCry1
- b _0812B2AA
- .align 2, 0
-_0812B290: .4byte gBattlePartyID
-_0812B294: .4byte gPlayerParty
-_0812B298: .4byte gBattleAnimArgs
-_0812B29C:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl PlayCry3
-_0812B2AA:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0812B2B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812B18C
-
- thumb_func_start sub_812B2B8
-sub_812B2B8: @ 812B2B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _0812B2DC
- ldr r0, _0812B2D8 @ =gSharedMem + 0x19348
- b _0812B2E6
- .align 2, 0
-_0812B2D8: .4byte gSharedMem + 0x19348
-_0812B2DC:
- ldr r1, _0812B304 @ =gAnimSpeciesByBanks
- ldr r0, _0812B308 @ =gAnimBankAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
-_0812B2E6:
- ldrh r0, [r0]
- cmp r0, 0
- beq _0812B2F6
- lsls r1, r4, 24
- asrs r1, 24
- movs r2, 0x4
- bl PlayCry3
-_0812B2F6:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B304: .4byte gAnimSpeciesByBanks
-_0812B308: .4byte gAnimBankAttacker
- thumb_func_end sub_812B2B8
-
- thumb_func_start sub_812B30C
-sub_812B30C: @ 812B30C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B33C @ =gBattleAnimArgs
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE1WithPanning
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B33C: .4byte gBattleAnimArgs
- thumb_func_end sub_812B30C
-
- thumb_func_start sub_812B340
-sub_812B340: @ 812B340
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B370 @ =gBattleAnimArgs
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE2WithPanning
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B370: .4byte gBattleAnimArgs
- thumb_func_end sub_812B340
-
- thumb_func_start sub_812B374
-sub_812B374: @ 812B374
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B3F8 @ =gBattleAnimArgs
- ldrb r5, [r0, 0x2]
- ldrb r6, [r0, 0x4]
- ldrh r1, [r0, 0x6]
- mov r9, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl BattleAnimAdjustPanning
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl BattleAnimAdjustPanning
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CalculatePanIncrement
- ldr r2, _0812B3FC @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r9
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- ldr r2, _0812B400 @ =sub_812B404
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B3F8: .4byte gBattleAnimArgs
-_0812B3FC: .4byte gTasks
-_0812B400: .4byte sub_812B404
- thumb_func_end sub_812B374
-
- thumb_func_start sub_812B404
-sub_812B404: @ 812B404
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812B45C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0812B43E
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r0, r2, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B43E:
- ldr r1, _0812B460 @ =gUnknown_0202F7D2
- ldrh r0, [r4, 0x1E]
- strb r0, [r1]
- movs r3, 0x1E
- ldrsh r1, [r4, r3]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0812B456
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_0812B456:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B45C: .4byte gTasks
-_0812B460: .4byte gUnknown_0202F7D2
- thumb_func_end sub_812B404
-
- .align 2, 0 @ Don't pad with nop.
- \ No newline at end of file
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index 02eec98ec..03ffc0eda 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -1752,7 +1752,7 @@ _0812CE70:
ldrsh r0, [r5, r6]
cmp r1, r0
bgt _0812CEA6
- ldr r4, _0812CEB0 @ =gUnknown_03004DE0
+ ldr r4, _0812CEB0 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r4
@@ -1777,7 +1777,7 @@ _0812CEA6:
ldr r0, _0812CEB4 @ =REG_BG1HOFS
b _0812CEBA
.align 2, 0
-_0812CEB0: .4byte gUnknown_03004DE0
+_0812CEB0: .4byte gScanlineEffectRegBuffers
_0812CEB4: .4byte REG_BG1HOFS
_0812CEB8:
ldr r0, _0812CEE4 @ =REG_BG2HOFS
@@ -1794,7 +1794,7 @@ _0812CEBA:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r0, _0812CEEC @ =sub_812CEF0
str r0, [r5]
add sp, 0xC
@@ -1889,7 +1889,7 @@ _0812CF74:
ldrsh r0, [r4, r2]
cmp r1, r0
bge _0812CFA8
- ldr r5, _0812D000 @ =gUnknown_03004DE0
+ ldr r5, _0812D000 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1917,7 +1917,7 @@ _0812CFA8:
ldrsh r0, [r4, r2]
cmp r1, r0
bgt _0812CFDC
- ldr r5, _0812D000 @ =gUnknown_03004DE0
+ ldr r5, _0812D000 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1946,7 +1946,7 @@ _0812CFDC:
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0812CFF2
- ldr r1, _0812D004 @ =gUnknown_03004DC0
+ ldr r1, _0812D004 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_0812CFF2:
@@ -1957,8 +1957,8 @@ _0812CFF8:
pop {r0}
bx r0
.align 2, 0
-_0812D000: .4byte gUnknown_03004DE0
-_0812D004: .4byte gUnknown_03004DC0
+_0812D000: .4byte gScanlineEffectRegBuffers
+_0812D004: .4byte gScanlineEffect
thumb_func_end sub_812CEF0
thumb_func_start sub_812D008
@@ -6545,7 +6545,7 @@ _0812F3EE:
ldrh r3, [r0]
movs r7, 0
movs r2, 0
- ldr r6, _0812F468 @ =gUnknown_03004DE0
+ ldr r6, _0812F468 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r6
@@ -6586,7 +6586,7 @@ _0812F3FE:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r0, _0812F470 @ =sub_812F474
str r0, [r4]
add sp, 0xC
@@ -6599,7 +6599,7 @@ _0812F458: .4byte REG_BLDCNT
_0812F45C: .4byte 0x00003f44
_0812F460: .4byte gBattle_BG2_X
_0812F464: .4byte gBattle_BG2_Y
-_0812F468: .4byte gUnknown_03004DE0
+_0812F468: .4byte gScanlineEffectRegBuffers
_0812F46C: .4byte 0xa6600001
_0812F470: .4byte sub_812F474
thumb_func_end sub_812F314
@@ -6711,7 +6711,7 @@ _0812F4EA:
ldrsh r0, [r6, r3]
cmp r1, r0
ble _0812F60A
- ldr r0, _0812F660 @ =gUnknown_03004DC0
+ ldr r0, _0812F660 @ =gScanlineEffect
mov r10, r0
ldr r1, [sp, 0x4]
lsls r0, r1, 16
@@ -6732,7 +6732,7 @@ _0812F55A:
subs r0, r1
lsls r0, 7
adds r2, r0
- ldr r0, _0812F664 @ =gUnknown_03004DE0
+ ldr r0, _0812F664 @ =gScanlineEffectRegBuffers
adds r2, r0
lsls r4, 16
asrs r4, 16
@@ -6750,7 +6750,7 @@ _0812F55A:
subs r0, r1
lsls r0, 7
adds r3, r0
- ldr r1, _0812F664 @ =gUnknown_03004DE0
+ ldr r1, _0812F664 @ =gScanlineEffectRegBuffers
adds r3, r1
lsls r1, r7, 16
asrs r1, 16
@@ -6814,7 +6814,7 @@ _0812F60A:
lsls r1, r2, 17
cmp r1, 0
blt _0812F636
- ldr r4, _0812F664 @ =gUnknown_03004DE0
+ ldr r4, _0812F664 @ =gScanlineEffectRegBuffers
ldr r7, [sp, 0x4]
lsls r0, r7, 16
asrs r0, 16
@@ -6856,8 +6856,8 @@ _0812F636:
strh r0, [r6, 0xE]
b _0812F676
.align 2, 0
-_0812F660: .4byte gUnknown_03004DC0
-_0812F664: .4byte gUnknown_03004DE0
+_0812F660: .4byte gScanlineEffect
+_0812F664: .4byte gScanlineEffectRegBuffers
_0812F668: .4byte gSineTable
_0812F66C: .4byte 0xffff0000
_0812F670:
@@ -6898,14 +6898,14 @@ _0812F6A6:
asrs r0, 16
cmp r0, 0xC
ble _0812F712
- ldr r1, _0812F6C0 @ =gUnknown_03004DC0
+ ldr r1, _0812F6C0 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0
strh r0, [r6, 0xC]
b _0812F700
.align 2, 0
-_0812F6C0: .4byte gUnknown_03004DC0
+_0812F6C0: .4byte gScanlineEffect
_0812F6C4:
ldrh r0, [r6, 0xC]
adds r0, 0x1
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
index 73f399caa..ccb4854af 100644
--- a/asm/battle_anim_813F0F4.s
+++ b/asm/battle_anim_813F0F4.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -1366,7 +1366,7 @@ _0813FBE0:
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
bl sub_8079E90
@@ -1418,7 +1418,7 @@ _0813FBE0:
ldr r0, _0813FCAC @ =SpriteCallbackDummy
str r0, [r4]
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _0813FCB0 @ =gObjectBankIDs
lsls r0, 24
lsrs r0, 24
@@ -1462,7 +1462,7 @@ sub_813FCBC: @ 813FCBC
lsrs r5, r0, 24
ldr r6, _0813FD1C @ =gSprites
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _0813FD20 @ =gObjectBankIDs
lsls r0, 24
lsrs r0, 24
@@ -1519,7 +1519,7 @@ sub_813FD34: @ 813FD34
lsrs r5, r0, 24
ldr r6, _0813FD88 @ =gSprites
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r4, _0813FD8C @ =gObjectBankIDs
lsls r0, 24
lsrs r0, 24
@@ -1535,7 +1535,7 @@ sub_813FD34: @ 813FD34
cmp r0, 0
bge _0813FD80
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -5483,7 +5483,7 @@ sub_8141C30: @ 8141C30
movs r0, 0x1E
strh r0, [r4, 0x2E]
movs r0, 0x1
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -5495,7 +5495,7 @@ sub_8141C30: @ 8141C30
adds r0, r1
strh r0, [r4, 0x32]
movs r0, 0x1
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -5644,11 +5644,11 @@ sub_8141D7C: @ 8141D7C
lsls r4, 24
lsrs r4, 24
movs r0, 0
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _08141DA4 @ =gAnimBankAttacker
strb r0, [r1]
movs r0, 0x1
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
ldr r1, _08141DA8 @ =gAnimBankTarget
strb r0, [r1]
adds r0, r4, 0
diff --git a/asm/battle_intro.s b/asm/battle_intro.s
deleted file mode 100755
index 10b504a79..000000000
--- a/asm/battle_intro.s
+++ /dev/null
@@ -1,1667 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ intro
-
- thumb_func_start sub_80E43C0
-sub_80E43C0: @ 80E43C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E43D8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E43E0
- ldr r0, _080E43DC @ =sub_80E4C34
- b _080E4408
- .align 2, 0
-_080E43D8: .4byte gBattleTypeFlags
-_080E43DC: .4byte sub_80E4C34
-_080E43E0:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _080E4400
- ldr r0, _080E43F8 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080E4400
- movs r4, 0x3
- ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8
- b _080E4408
- .align 2, 0
-_080E43F8: .4byte gGameVersion
-_080E43FC: .4byte task00_battle_intro_80BC6C8
-_080E4400:
- ldr r1, _080E4434 @ =gUnknown_083DB56C
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
-_080E4408:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080E4438 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4434: .4byte gUnknown_083DB56C
-_080E4438: .4byte gTasks
- thumb_func_end sub_80E43C0
-
- thumb_func_start sub_80E443C
-sub_80E443C: @ 80E443C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _080E4474 @ =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E4478 @ =gBattle_BG1_Y
- strh r1, [r0]
- ldr r0, _080E447C @ =gBattle_BG2_X
- strh r1, [r0]
- ldr r0, _080E4480 @ =gBattle_BG2_Y
- strh r1, [r0]
- ldr r0, _080E4484 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- ldr r2, _080E4488 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E4474: .4byte gBattle_BG1_X
-_080E4478: .4byte gBattle_BG1_Y
-_080E447C: .4byte gBattle_BG2_X
-_080E4480: .4byte gBattle_BG2_Y
-_080E4484: .4byte REG_BLDCNT
-_080E4488: .4byte 0x00003f3f
- thumb_func_end sub_80E443C
-
- thumb_func_start task_battle_intro_80BC47C
-task_battle_intro_80BC47C: @ 80E448C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080E44C4 @ =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x6
- strh r0, [r1]
- ldr r1, _080E44C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x4
- bls _080E44B8
- b _080E46BE
-_080E44B8:
- lsls r0, 2
- ldr r1, _080E44CC @ =_080E44D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E44C4: .4byte gBattle_BG1_X
-_080E44C8: .4byte gTasks
-_080E44CC: .4byte _080E44D0
- .align 2, 0
-_080E44D0:
- .4byte _080E44E4
- .4byte _080E4514
- .4byte _080E4540
- .4byte _080E4588
- .4byte _080E46B8
-_080E44E4:
- ldr r0, _080E44FC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E4500
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x10
- b _080E450A
- .align 2, 0
-_080E44FC: .4byte gBattleTypeFlags
-_080E4500:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x1
-_080E450A:
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080E46BE
-_080E4514:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r3, r8
- adds r1, r0, r3
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E452C
- b _080E46BE
-_080E452C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E453C @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- b _080E46BE
- .align 2, 0
-_080E453C: .4byte REG_WININ
-_080E4540:
- ldr r1, _080E457C @ =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4558
- b _080E46BE
-_080E4558:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080E4580 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4584 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E46BE
- .align 2, 0
-_080E457C: .4byte gBattle_WIN0V
-_080E4580: .4byte gUnknown_02024DE8
-_080E4584: .4byte 0x0000fffe
-_080E4588:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- mov r5, r8
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r5, 0xE
- ldrsh r1, [r2, r5]
- mov r12, r0
- cmp r1, 0
- beq _080E45A4
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080E45D2
-_080E45A4:
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080E45C4
- ldr r2, _080E45BC @ =gBattle_BG1_Y
- ldrh r1, [r2]
- ldr r0, _080E45C0 @ =0x0000ffb0
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x2
- b _080E45D0
- .align 2, 0
-_080E45BC: .4byte gBattle_BG1_Y
-_080E45C0: .4byte 0x0000ffb0
-_080E45C4:
- ldr r2, _080E4690 @ =gBattle_BG1_Y
- ldrh r1, [r2]
- ldr r0, _080E4694 @ =0x0000ffc8
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x1
-_080E45D0:
- strh r0, [r2]
-_080E45D2:
- ldr r2, _080E4698 @ =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E45E6
- ldr r3, _080E469C @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080E45E6:
- mov r5, r12
- adds r0, r5, r4
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E45FE
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E45FE:
- movs r3, 0
- ldr r5, _080E46A0 @ =gUnknown_03004DC0
- mov r9, r5
- ldr r7, _080E46A4 @ =gUnknown_03004DE0
- mov r6, r9
- adds r5, r1, 0
-_080E460A:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E460A
- cmp r3, 0x9F
- bgt _080E464E
- ldr r7, _080E46A4 @ =gUnknown_03004DE0
- ldr r6, _080E46A0 @ =gUnknown_03004DC0
- ldr r1, _080E46A8 @ =gTasks
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080E4634:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4634
-_080E464E:
- mov r3, r12
- adds r0, r3, r4
- lsls r0, 3
- mov r5, r8
- adds r1, r0, r5
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _080E46BE
- movs r0, 0x3
- mov r3, r9
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E46AC @ =0x0600e000
- ldr r2, _080E46B0 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r1, _080E46B4 @ =REG_BG1CNT
- movs r5, 0x9C
- lsls r5, 8
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xBC
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- b _080E46BE
- .align 2, 0
-_080E4690: .4byte gBattle_BG1_Y
-_080E4694: .4byte 0x0000ffc8
-_080E4698: .4byte gBattle_WIN0V
-_080E469C: .4byte 0xfffffc04
-_080E46A0: .4byte gUnknown_03004DC0
-_080E46A4: .4byte gUnknown_03004DE0
-_080E46A8: .4byte gTasks
-_080E46AC: .4byte 0x0600e000
-_080E46B0: .4byte 0x05000200
-_080E46B4: .4byte REG_BG1CNT
-_080E46B8:
- adds r0, r4, 0
- bl sub_80E443C
-_080E46BE:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_battle_intro_80BC47C
-
- thumb_func_start task00_battle_intro_80BC6C8
-task00_battle_intro_80BC6C8: @ 80E46CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E46F8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x3
- beq _080E470C
- cmp r0, 0x3
- bgt _080E46FC
- cmp r0, 0x2
- beq _080E4700
- b _080E4714
- .align 2, 0
-_080E46F8: .4byte gTasks
-_080E46FC:
- cmp r0, 0x4
- bne _080E4714
-_080E4700:
- ldr r1, _080E4708 @ =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x8
- b _080E4712
- .align 2, 0
-_080E4708: .4byte gBattle_BG1_X
-_080E470C:
- ldr r1, _080E4750 @ =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x6
-_080E4712:
- strh r0, [r1]
-_080E4714:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r4, r1, r2
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- adds r6, r0, 0
- cmp r1, 0x4
- bne _080E4778
- ldr r7, _080E4754 @ =gBattle_BG1_Y
- ldrh r0, [r4, 0x14]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080E473A
- ldr r1, _080E4758 @ =0x000001ff
- adds r0, r1
-_080E473A:
- asrs r0, 9
- subs r0, 0x8
- strh r0, [r7]
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0xB3
- bgt _080E475C
- adds r0, r1, 0x4
- b _080E475E
- .align 2, 0
-_080E4750: .4byte gBattle_BG1_X
-_080E4754: .4byte gBattle_BG1_Y
-_080E4758: .4byte 0x000001ff
-_080E475C:
- adds r0, r1, 0x6
-_080E475E:
- strh r0, [r4, 0x14]
- ldr r2, _080E4794 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r4, 0x14
- ldrsh r1, [r3, r4]
- movs r0, 0xB4
- lsls r0, 1
- cmp r1, r0
- bne _080E4778
- movs r0, 0
- strh r0, [r3, 0x14]
-_080E4778:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _080E4788
- b _080E4996
-_080E4788:
- lsls r0, 2
- ldr r1, _080E4798 @ =_080E479C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E4794: .4byte gTasks
-_080E4798: .4byte _080E479C
- .align 2, 0
-_080E479C:
- .4byte _080E47B0
- .4byte _080E47E0
- .4byte _080E480C
- .4byte _080E485C
- .4byte _080E4990
-_080E47B0:
- ldr r1, _080E47CC @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x10
- strh r3, [r2, 0x10]
- ldr r0, _080E47D0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E47D4
- strh r3, [r2, 0xC]
- b _080E47D8
- .align 2, 0
-_080E47CC: .4byte gTasks
-_080E47D0: .4byte gBattleTypeFlags
-_080E47D4:
- movs r0, 0x1
- strh r0, [r2, 0xC]
-_080E47D8:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080E4996
-_080E47E0:
- ldr r0, _080E4804 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E47F6
- b _080E4996
-_080E47F6:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4808 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- b _080E4996
- .align 2, 0
-_080E4804: .4byte gTasks
-_080E4808: .4byte REG_WININ
-_080E480C:
- ldr r1, _080E484C @ =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4824
- b _080E4996
-_080E4824:
- ldr r0, _080E4850 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080E4854 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4858 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E4996
- .align 2, 0
-_080E484C: .4byte gBattle_WIN0V
-_080E4850: .4byte gTasks
-_080E4854: .4byte gUnknown_02024DE8
-_080E4858: .4byte 0x0000fffe
-_080E485C:
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r3, [r1, 0xE]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _080E4898
- subs r0, r3, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080E48B8
- ldr r1, _080E488C @ =REG_BLDCNT
- ldr r4, _080E4890 @ =0x00001842
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xF
- strh r0, [r1]
- ldr r0, _080E4894 @ =REG_BLDY
- strh r3, [r0]
- b _080E48B8
- .align 2, 0
-_080E488C: .4byte REG_BLDCNT
-_080E4890: .4byte 0x00001842
-_080E4894: .4byte REG_BLDY
-_080E4898:
- ldrh r3, [r1, 0x10]
- movs r0, 0x1F
- ands r0, r3
- cmp r0, 0
- beq _080E48B8
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080E48B8
- adds r0, r3, 0
- adds r0, 0xFF
- strh r0, [r1, 0x10]
- movs r0, 0x4
- strh r0, [r1, 0x12]
-_080E48B8:
- ldr r3, _080E4970 @ =gBattle_WIN0V
- ldrh r1, [r3]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E48CC
- ldr r4, _080E4974 @ =0xfffffc04
- adds r0, r1, r4
- strh r0, [r3]
-_080E48CC:
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E48E0
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E48E0:
- movs r3, 0
- ldr r4, _080E4978 @ =gUnknown_03004DC0
- mov r8, r4
- ldr r0, _080E497C @ =gUnknown_03004DE0
- mov r12, r0
- mov r7, r8
- adds r4, r1, 0
-_080E48EE:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E48EE
- cmp r3, 0x9F
- bgt _080E4932
- ldr r1, _080E497C @ =gUnknown_03004DE0
- mov r12, r1
- ldr r7, _080E4978 @ =gUnknown_03004DC0
- ldr r1, _080E4980 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r1
-_080E4918:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4918
-_080E4932:
- ldr r1, _080E4980 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080E4996
- movs r0, 0x3
- mov r4, r8
- strb r0, [r4, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E4984 @ =0x0600e000
- ldr r2, _080E4988 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r1, _080E498C @ =REG_BG1CNT
- movs r2, 0x9C
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xBC
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- b _080E4996
- .align 2, 0
-_080E4970: .4byte gBattle_WIN0V
-_080E4974: .4byte 0xfffffc04
-_080E4978: .4byte gUnknown_03004DC0
-_080E497C: .4byte gUnknown_03004DE0
-_080E4980: .4byte gTasks
-_080E4984: .4byte 0x0600e000
-_080E4988: .4byte 0x05000200
-_080E498C: .4byte REG_BG1CNT
-_080E4990:
- adds r0, r5, 0
- bl sub_80E443C
-_080E4996:
- ldr r0, _080E49B8 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r2, r1, r0
- movs r4, 0x8
- ldrsh r0, [r2, r4]
- cmp r0, 0x4
- beq _080E49AC
- ldr r1, _080E49BC @ =REG_BLDALPHA
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
-_080E49AC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E49B8: .4byte gTasks
-_080E49BC: .4byte REG_BLDALPHA
- thumb_func_end task00_battle_intro_80BC6C8
-
- thumb_func_start task_battle_intro_anim
-task_battle_intro_anim: @ 80E49C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080E49F4 @ =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, _080E49F8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0x4
- bls _080E49EA
- b _080E4C06
-_080E49EA:
- lsls r0, 2
- ldr r1, _080E49FC @ =_080E4A00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E49F4: .4byte gBattle_BG1_X
-_080E49F8: .4byte gTasks
-_080E49FC: .4byte _080E4A00
- .align 2, 0
-_080E4A00:
- .4byte _080E4A14
- .4byte _080E4A6C
- .4byte _080E4A9C
- .4byte _080E4AEC
- .4byte _080E4C00
-_080E4A14:
- ldr r1, _080E4A48 @ =REG_BLDCNT
- ldr r3, _080E4A4C @ =0x00001842
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080E4A50 @ =REG_BLDALPHA
- ldr r6, _080E4A54 @ =0x00000808
- adds r2, r6, 0
- strh r2, [r0]
- adds r1, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080E4A58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- strh r2, [r3, 0x10]
- ldr r0, _080E4A5C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E4A60
- movs r0, 0x10
- b _080E4A62
- .align 2, 0
-_080E4A48: .4byte REG_BLDCNT
-_080E4A4C: .4byte 0x00001842
-_080E4A50: .4byte REG_BLDALPHA
-_080E4A54: .4byte 0x00000808
-_080E4A58: .4byte gTasks
-_080E4A5C: .4byte gBattleTypeFlags
-_080E4A60:
- movs r0, 0x1
-_080E4A62:
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080E4C06
-_080E4A6C:
- ldr r0, _080E4A94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E4A84
- b _080E4C06
-_080E4A84:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4A98 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- b _080E4C06
- .align 2, 0
-_080E4A94: .4byte gTasks
-_080E4A98: .4byte REG_WININ
-_080E4A9C:
- ldr r1, _080E4ADC @ =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4AB4
- b _080E4C06
-_080E4AB4:
- ldr r0, _080E4AE0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080E4AE4 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4AE8 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E4C06
- .align 2, 0
-_080E4ADC: .4byte gBattle_WIN0V
-_080E4AE0: .4byte gTasks
-_080E4AE4: .4byte gUnknown_02024DE8
-_080E4AE8: .4byte 0x0000fffe
-_080E4AEC:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r6, 0xE
- ldrsh r1, [r2, r6]
- mov r12, r0
- cmp r1, 0
- beq _080E4B06
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080E4B26
-_080E4B06:
- ldrh r1, [r2, 0x10]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080E4B26
- ldrh r0, [r2, 0x12]
- subs r0, 0x1
- strh r0, [r2, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080E4B26
- adds r0, r1, 0
- adds r0, 0xFF
- strh r0, [r2, 0x10]
- movs r0, 0x6
- strh r0, [r2, 0x12]
-_080E4B26:
- ldr r2, _080E4BE0 @ =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E4B3A
- ldr r3, _080E4BE4 @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080E4B3A:
- mov r6, r12
- adds r0, r6, r4
- lsls r0, 3
- adds r1, r0, r5
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E4B50
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E4B50:
- movs r3, 0
- ldr r6, _080E4BE8 @ =gUnknown_03004DC0
- mov r8, r6
- ldr r7, _080E4BEC @ =gUnknown_03004DE0
- adds r5, r1, 0
-_080E4B5A:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E4B5A
- cmp r3, 0x9F
- bgt _080E4B9E
- ldr r7, _080E4BEC @ =gUnknown_03004DE0
- ldr r6, _080E4BE8 @ =gUnknown_03004DC0
- ldr r1, _080E4BF0 @ =gTasks
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080E4B84:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4B84
-_080E4B9E:
- ldr r1, _080E4BF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080E4C06
- movs r0, 0x3
- mov r6, r8
- strb r0, [r6, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E4BF4 @ =0x0600e000
- ldr r2, _080E4BF8 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r1, _080E4BFC @ =REG_BG1CNT
- movs r2, 0x9C
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xBC
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- b _080E4C06
- .align 2, 0
-_080E4BE0: .4byte gBattle_WIN0V
-_080E4BE4: .4byte 0xfffffc04
-_080E4BE8: .4byte gUnknown_03004DC0
-_080E4BEC: .4byte gUnknown_03004DE0
-_080E4BF0: .4byte gTasks
-_080E4BF4: .4byte 0x0600e000
-_080E4BF8: .4byte 0x05000200
-_080E4BFC: .4byte REG_BG1CNT
-_080E4C00:
- adds r0, r4, 0
- bl sub_80E443C
-_080E4C06:
- ldr r0, _080E4C2C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r6, 0x8
- ldrsh r0, [r2, r6]
- cmp r0, 0x4
- beq _080E4C1E
- ldr r1, _080E4C30 @ =REG_BLDALPHA
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
-_080E4C1E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4C2C: .4byte gTasks
-_080E4C30: .4byte REG_BLDALPHA
- thumb_func_end task_battle_intro_anim
-
- thumb_func_start sub_80E4C34
-sub_80E4C34: @ 80E4C34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E4C80 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- ble _080E4CAA
- movs r2, 0x10
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080E4CAA
- ldr r2, _080E4C84 @ =gBattle_BG1_X
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080E4C72
- cmp r1, 0x4F
- bhi _080E4C8C
-_080E4C72:
- adds r0, r1, 0x3
- strh r0, [r2]
- ldr r1, _080E4C88 @ =gBattle_BG2_X
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- b _080E4CAA
- .align 2, 0
-_080E4C80: .4byte gTasks
-_080E4C84: .4byte gBattle_BG1_X
-_080E4C88: .4byte gBattle_BG2_X
-_080E4C8C:
- str r5, [sp]
- ldr r1, _080E4CCC @ =0x0600e000
- ldr r4, _080E4CD0 @ =0x05000200
- mov r0, sp
- adds r2, r4, 0
- bl CpuSet
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldr r1, _080E4CD4 @ =0x0600f000
- adds r2, r4, 0
- bl CpuSet
- movs r0, 0x1
- strh r0, [r7, 0x10]
-_080E4CAA:
- ldr r0, _080E4CD8 @ =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- mov r12, r0
- adds r5, r2, 0
- cmp r1, 0x4
- bls _080E4CC2
- b _080E4EBA
-_080E4CC2:
- lsls r0, r1, 2
- ldr r1, _080E4CDC @ =_080E4CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E4CCC: .4byte 0x0600e000
-_080E4CD0: .4byte 0x05000200
-_080E4CD4: .4byte 0x0600f000
-_080E4CD8: .4byte gTasks
-_080E4CDC: .4byte _080E4CE0
- .align 2, 0
-_080E4CE0:
- .4byte _080E4CF4
- .4byte _080E4D06
- .4byte _080E4DA8
- .4byte _080E4DEC
- .4byte _080E4EB4
-_080E4CF4:
- adds r0, r5, r6
- lsls r0, 3
- add r0, r12
- movs r1, 0x10
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080E4EBA
-_080E4D06:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E4D1C
- b _080E4EBA
-_080E4D1C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r5, _080E4D8C @ =gSprites
- ldr r4, _080E4D90 @ =gSharedMem
- ldr r3, _080E4D94 @ =0x0001608a
- adds r6, r4, r3
- ldrb r0, [r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x8
- mov r8, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r6
- ldr r3, _080E4D98 @ =sub_800FE20
- str r3, [r0]
- ldr r0, _080E4D9C @ =0x0001608b
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r2, r1
- mov r1, r8
- orrs r2, r1
- strb r2, [r0, 0x1]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r3, [r0]
- ldr r1, _080E4DA0 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E4DA4 @ =0x00003f06
- b _080E4E94
- .align 2, 0
-_080E4D8C: .4byte gSprites
-_080E4D90: .4byte gSharedMem
-_080E4D94: .4byte 0x0001608a
-_080E4D98: .4byte sub_800FE20
-_080E4D9C: .4byte 0x0001608b
-_080E4DA0: .4byte REG_WININ
-_080E4DA4: .4byte 0x00003f06
-_080E4DA8:
- ldr r1, _080E4DE0 @ =gBattle_WIN0V
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4DC0
- b _080E4EBA
-_080E4DC0:
- adds r1, r5, r6
- lsls r1, 3
- add r1, r12
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080E4DE4 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4DE8 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E4EBA
- .align 2, 0
-_080E4DE0: .4byte gBattle_WIN0V
-_080E4DE4: .4byte gUnknown_02024DE8
-_080E4DE8: .4byte 0x0000fffe
-_080E4DEC:
- ldr r2, _080E4E9C @ =gBattle_WIN0V
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E4E00
- ldr r3, _080E4EA0 @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080E4E00:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E4E16
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E4E16:
- movs r3, 0
- ldr r0, _080E4EA4 @ =gUnknown_03004DC0
- mov r9, r0
- ldr r2, _080E4EA8 @ =gUnknown_03004DE0
- mov r8, r2
- mov r7, r9
- adds r4, r1, 0
-_080E4E24:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E4E24
- cmp r3, 0x9F
- bgt _080E4E68
- ldr r0, _080E4EA8 @ =gUnknown_03004DE0
- mov r8, r0
- ldr r7, _080E4EA4 @ =gUnknown_03004DC0
- ldr r1, _080E4EAC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r4, r0, r1
-_080E4E4E:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4E4E
-_080E4E68:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080E4EBA
- movs r0, 0x3
- mov r2, r9
- strb r0, [r2, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4EB0 @ =REG_BG1CNT
- movs r3, 0x9C
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xBC
- lsls r2, 7
-_080E4E94:
- adds r0, r2, 0
- strh r0, [r1]
- b _080E4EBA
- .align 2, 0
-_080E4E9C: .4byte gBattle_WIN0V
-_080E4EA0: .4byte 0xfffffc04
-_080E4EA4: .4byte gUnknown_03004DC0
-_080E4EA8: .4byte gUnknown_03004DE0
-_080E4EAC: .4byte gTasks
-_080E4EB0: .4byte REG_BG1CNT
-_080E4EB4:
- adds r0, r6, 0
- bl sub_80E443C
-_080E4EBA:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E4C34
-
- thumb_func_start unref_sub_80E4EC8
-unref_sub_80E4EC8: @ 80E4EC8
- push {r4,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0x80
- lsls r4, 7
- str r4, [sp]
- movs r4, 0x1E
- str r4, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_80E4EF8
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80E4EC8
-
- thumb_func_start sub_80E4EF8
-sub_80E4EF8: @ 80E4EF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r1
- adds r4, r2, 0
- ldr r1, [sp, 0x24]
- mov r8, r1
- ldr r1, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r7, r9
- lsls r7, 24
- adds r0, r7, 0
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- mov r3, r8
- lsls r3, 16
- mov r8, r3
- lsrs r6, r3, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4FCC @ =0x040000d4
- ldr r1, _080E4FD0 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r4, r1
- ldr r1, _080E4FD4 @ =gBattleMonForms
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r4]
- adds r0, r1
- str r0, [r2]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r2, 0x4]
- ldr r0, _080E4FD8 @ =0x80000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- mov r0, r8
- lsrs r0, 21
- lsls r5, 9
- subs r5, r0, r5
- mov r0, r9
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080E4FBC
- mov r9, r1
- mov r1, r10
- lsls r1, 1
- mov r8, r1
- lsls r7, 11
- mov r12, r7
-_080E4F86:
- mov r2, r10
- adds r4, r2, 0
- adds r4, 0x8
- adds r1, r0, 0x1
- cmp r2, r4
- bge _080E4FB6
- ldr r3, [sp]
- lsls r6, r3, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- add r0, r12
- mov r7, r8
- adds r3, r7, r0
- subs r2, r4, r2
-_080E4FA6:
- adds r0, r5, 0
- orrs r0, r6
- strh r0, [r3]
- adds r5, 0x1
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E4FA6
-_080E4FB6:
- adds r0, r1, 0
- cmp r0, r9
- blt _080E4F86
-_080E4FBC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4FCC: .4byte 0x040000d4
-_080E4FD0: .4byte gUnknown_081FAF4C
-_080E4FD4: .4byte gBattleMonForms
-_080E4FD8: .4byte 0x80000400
- thumb_func_end sub_80E4EF8
-
- thumb_func_start unref_sub_80E4FDC
-unref_sub_80E4FDC: @ 80E4FDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- mov r8, r5
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- mov r7, r8
- lsls r7, 16
- lsrs r6, r7, 16
- lsls r5, 24
- lsrs r5, 24
- mov r0, r9
- lsls r0, 24
- mov r9, r0
- ldr r4, _080E509C @ =0x040000d4
- ldr r0, _080E50A0 @ =gUnknown_081FAF4C
- lsrs r2, 22
- adds r2, r0
- lsrs r3, 13
- ldr r0, [r2]
- adds r0, r3
- str r0, [r4]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r4, 0x4]
- ldr r0, _080E50A4 @ =0x80000400
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, r7, 0
- lsrs r2, 21
- mov r6, r9
- lsrs r6, 15
- subs r4, r2, r6
- lsrs r0, r1, 24
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080E508C
- mov r9, r1
- mov r7, r12
- lsls r7, 1
- mov r8, r7
- lsls r5, 11
- str r5, [sp]
-_080E5054:
- mov r2, r12
- adds r3, r2, 0
- adds r3, 0x8
- adds r5, r0, 0x1
- cmp r2, r3
- bge _080E5086
- mov r1, r10
- lsls r6, r1, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- ldr r1, [sp]
- adds r0, r1, r0
- mov r7, r8
- adds r1, r7, r0
- subs r2, r3, r2
-_080E5076:
- adds r0, r4, 0
- orrs r0, r6
- strh r0, [r1]
- adds r4, 0x1
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E5076
-_080E5086:
- adds r0, r5, 0
- cmp r0, r9
- blt _080E5054
-_080E508C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E509C: .4byte 0x040000d4
-_080E50A0: .4byte gUnknown_081FAF4C
-_080E50A4: .4byte 0x80000400
- thumb_func_end unref_sub_80E4FDC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/bug.s b/asm/bug.s
deleted file mode 100755
index 83170e9a7..000000000
--- a/asm/bug.s
+++ /dev/null
@@ -1,825 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ bug
-
- thumb_func_start sub_80DC824
-sub_80DC824: @ 80DC824
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DC850
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080DC84C @ =gBattleAnimArgs
- ldrh r1, [r0, 0x4]
- negs r1, r1
- strh r1, [r0, 0x4]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
- b _080DC880
- .align 2, 0
-_080DC84C: .4byte gBattleAnimArgs
-_080DC850:
- ldr r0, _080DC8E4 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DC880
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080DC8E8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DC880:
- ldr r5, _080DC8E4 @ =gAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080DC8E8 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080DC8EC @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080DC8F0 @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC8E4: .4byte gAnimBankTarget
-_080DC8E8: .4byte gBattleAnimArgs
-_080DC8EC: .4byte sub_8078B34
-_080DC8F0: .4byte DestroyAnimSprite
- thumb_func_end sub_80DC824
-
- thumb_func_start sub_80DC8F4
-sub_80DC8F4: @ 80DC8F4
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DC918
- ldr r1, _080DC914 @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _080DC934
- .align 2, 0
-_080DC914: .4byte gBattleAnimArgs
-_080DC918:
- ldr r0, _080DC990 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DC934
- ldr r0, _080DC994 @ =gBattleAnimArgs
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
-_080DC934:
- ldr r5, _080DC990 @ =gAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080DC994 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- ldr r0, _080DC998 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080DC99C @ =DestroyAnimSprite
- adds r0, r6, 0
- bl StoreSpriteCallbackInData
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC990: .4byte gAnimBankTarget
-_080DC994: .4byte gBattleAnimArgs
-_080DC998: .4byte sub_8078B34
-_080DC99C: .4byte DestroyAnimSprite
- thumb_func_end sub_80DC8F4
-
- thumb_func_start sub_80DC9A0
-sub_80DC9A0: @ 80DC9A0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DC9BC
- ldr r0, _080DC9FC @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r0, 0x4]
-_080DC9BC:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DC9FC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080DCA04
- ldr r4, _080DCA00 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DCA16
- .align 2, 0
-_080DC9FC: .4byte gBattleAnimArgs
-_080DCA00: .4byte gAnimBankTarget
-_080DCA04:
- ldr r0, _080DCA2C @ =gAnimBankTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080DCA16:
- adds r0, r5, 0
- bl sub_8078BD4
- ldr r0, _080DCA30 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x38]
- ldr r0, _080DCA34 @ =sub_80DCA38
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCA2C: .4byte gAnimBankTarget
-_080DCA30: .4byte gBattleAnimArgs
-_080DCA34: .4byte sub_80DCA38
- thumb_func_end sub_80DC9A0
-
- thumb_func_start sub_80DCA38
-sub_80DCA38: @ 80DCA38
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DCA4E
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080DCA6A
-_080DCA4E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0xD
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
-_080DCA6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCA38
-
- thumb_func_start sub_80DCA70
-sub_80DCA70: @ 80DCA70
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DCAA0 @ =gAnimBankTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldr r0, _080DCAA4 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DCAAC
- ldr r0, _080DCAA8 @ =gBattleAnimArgs
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080DCAB8
- .align 2, 0
-_080DCAA0: .4byte gAnimBankTarget
-_080DCAA4: .4byte gAnimBankAttacker
-_080DCAA8: .4byte gBattleAnimArgs
-_080DCAAC:
- ldr r1, _080DCAE0 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080DCAB8:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080DCAE4 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DCAD4
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_080DCAD4:
- ldr r0, _080DCAE8 @ =sub_80DCAEC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCAE0: .4byte gBattleAnimArgs
-_080DCAE4: .4byte gAnimBankTarget
-_080DCAE8: .4byte sub_80DCAEC
- thumb_func_end sub_80DCA70
-
- thumb_func_start sub_80DCAEC
-sub_80DCAEC: @ 80DCAEC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DCB20
- movs r0, 0
- strh r0, [r3, 0x2E]
- 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]
-_080DCB20:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080DCB34
- adds r0, r3, 0
- bl DestroyAnimSprite
-_080DCB34:
- pop {r0}
- bx r0
- thumb_func_end sub_80DCAEC
-
- thumb_func_start sub_80DCB38
-sub_80DCB38: @ 80DCB38
- ldr r2, _080DCB54 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x2
- movs r1, 0x10
- strh r1, [r2]
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldr r1, _080DCB58 @ =sub_80DCB5C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080DCB54: .4byte REG_BLDCNT
-_080DCB58: .4byte sub_80DCB5C
- thumb_func_end sub_80DCB38
-
- thumb_func_start sub_80DCB5C
-sub_80DCB5C: @ 80DCB5C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x32]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0x13
- bgt _080DCB70
- adds r0, r1, 0x1
- strh r0, [r3, 0x32]
- b _080DCBA8
-_080DCB70:
- ldrh r1, [r3, 0x30]
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DCBA8
- ldrh r1, [r3, 0x2E]
- subs r1, 0x1
- strh r1, [r3, 0x2E]
- ldr r2, _080DCBAC @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DCBA8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DCBB0 @ =sub_80DCBB4
- str r0, [r3, 0x1C]
-_080DCBA8:
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBAC: .4byte REG_BLDALPHA
-_080DCBB0: .4byte sub_80DCBB4
- thumb_func_end sub_80DCB5C
-
- thumb_func_start sub_80DCBB4
-sub_80DCBB4: @ 80DCBB4
- push {lr}
- ldr r1, _080DCBC8 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl DestroyAnimSprite
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBC8: .4byte REG_BLDCNT
- thumb_func_end sub_80DCBB4
-
- thumb_func_start sub_80DCBCC
-sub_80DCBCC: @ 80DCBCC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DCBEC
- ldr r1, _080DCBE8 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080DCC0E
- .align 2, 0
-_080DCBE8: .4byte gBattleAnimArgs
-_080DCBEC:
- ldr r0, _080DCCE8 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DCC0E
- ldr r1, _080DCCEC @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080DCC0E:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DCC5E
- ldr r0, _080DCCE8 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- adds r4, r0, 0
- ldr r5, _080DCCF0 @ =gAnimBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080DCC5E
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- beq _080DCC4C
- ldrb r0, [r5]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DCC5E
-_080DCC4C:
- ldr r0, _080DCCEC @ =gBattleAnimArgs
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x4]
- movs r2, 0
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0]
-_080DCC5E:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080DCCF0 @ =gAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBankPosition
- adds r4, r0, 0
- lsls r4, 24
- ldr r6, _080DCCEC @ =gBattleAnimArgs
- lsrs r4, 24
- ldrh r0, [r6, 0x4]
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBankPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r6, 0x6]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r7, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r7, 0x22]
- lsrs r5, r1, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0x2E]
- strh r4, [r7, 0x32]
- strh r5, [r7, 0x36]
- ldr r0, _080DCCF4 @ =sub_8078B34
- str r0, [r7, 0x1C]
- ldr r1, _080DCCF8 @ =DestroyAnimSprite
- adds r0, r7, 0
- bl StoreSpriteCallbackInData
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCCE8: .4byte gAnimBankAttacker
-_080DCCEC: .4byte gBattleAnimArgs
-_080DCCF0: .4byte gAnimBankTarget
-_080DCCF4: .4byte sub_8078B34
-_080DCCF8: .4byte DestroyAnimSprite
- thumb_func_end sub_80DCBCC
-
- thumb_func_start sub_80DCCFC
-sub_80DCCFC: @ 80DCCFC
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DCD68 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DCD1C
- ldr r1, _080DCD6C @ =gBattleAnimArgs
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080DCD1C:
- ldr r4, _080DCD6C @ =gBattleAnimArgs
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080DCD70 @ =gAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080DCD74 @ =sub_80DCD78
- str r0, [r6, 0x1C]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCD68: .4byte gAnimBankAttacker
-_080DCD6C: .4byte gBattleAnimArgs
-_080DCD70: .4byte gAnimBankTarget
-_080DCD74: .4byte sub_80DCD78
- thumb_func_end sub_80DCCFC
-
- thumb_func_start sub_80DCD78
-sub_80DCD78: @ 80DCD78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DCDA4
- adds r0, r4, 0
- bl DestroyAnimSprite
- b _080DCE34
-_080DCDA4:
- movs r0, 0x2E
- adds r0, r4
- mov r8, r0
- ldrh r7, [r4, 0x20]
- ldrh r5, [r4, 0x24]
- ldrh r1, [r4, 0x22]
- mov r12, r1
- ldrh r6, [r4, 0x26]
- mov r2, r8
- add r1, sp, 0x4
- movs r3, 0x7
-_080DCDBA:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080DCDBA
- adds r0, r7, r5
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080DCE34
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r1, r5, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r1, r2
- lsls r2, r6, 16
- asrs r2, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- add r2, sp, 0x4
- mov r1, r8
- movs r3, 0x7
-_080DCE26:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080DCE26
-_080DCE34:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCD78
-
- thumb_func_start sub_80DCE40
-sub_80DCE40: @ 80DCE40
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DCE54 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DCE5C
- ldr r4, _080DCE58 @ =gAnimBankAttacker
- b _080DCE5E
- .align 2, 0
-_080DCE54: .4byte gBattleAnimArgs
-_080DCE58: .4byte gAnimBankAttacker
-_080DCE5C:
- ldr r4, _080DCE90 @ =gAnimBankTarget
-_080DCE5E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x12
- strh r0, [r5, 0x22]
- ldr r1, _080DCE94 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- ldr r0, _080DCE98 @ =sub_80785E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCE90: .4byte gAnimBankTarget
-_080DCE94: .4byte move_anim_8074EE0
-_080DCE98: .4byte sub_80785E4
- thumb_func_end sub_80DCE40
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_car.s b/asm/cable_car.s
deleted file mode 100644
index 52bc2668b..000000000
--- a/asm/cable_car.s
+++ /dev/null
@@ -1,2880 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81231EC
-sub_81231EC: @ 81231EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08123210 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812320A
- ldr r0, _08123214 @ =sub_8123244
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0812320A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123210: .4byte gPaletteFade
-_08123214: .4byte sub_8123244
- thumb_func_end sub_81231EC
-
- thumb_func_start sub_8123218
-sub_8123218: @ 8123218
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08123240 @ =sub_81231EC
- movs r1, 0x1
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08123240: .4byte sub_81231EC
- thumb_func_end sub_8123218
-
- thumb_func_start sub_8123244
-sub_8123244: @ 8123244
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r1, _08123268 @ =gMain
- ldr r2, _0812326C @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r9, r1
- cmp r0, 0x8
- bhi _08123298
- lsls r0, 2
- ldr r1, _08123270 @ =_08123274
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08123268: .4byte gMain
-_0812326C: .4byte 0x0000043c
-_08123270: .4byte _08123274
- .align 2, 0
-_08123274:
- .4byte _08123298
- .4byte _08123384
- .4byte _081233E8
- .4byte _08123484
- .4byte _081234A0
- .4byte _08123504
- .4byte _08123598
- .4byte _08123678
- .4byte _081236B0
-_08123298:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0xC
- mov r9, r0
- add r2, sp, 0x8
- movs r6, 0
- ldr r1, _08123368 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0812336C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r8, r0
-_081232C0:
- strh r6, [r2]
- add r0, sp, 0x8
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _081232C0
- strh r6, [r2]
- add r2, sp, 0x8
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _08123368 @ =0x040000d4
- mov r1, r9
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- add r0, sp, 0x8
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r4, 0x81
- lsls r4, 24
- orrs r3, r4
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _08123370 @ =gUnknown_02039274
- ldr r0, _08123374 @ =gSharedMem + 0x17000
- str r0, [r1]
- adds r3, r0, 0
- ldr r5, _08123378 @ =0x000010fc
- ldr r0, _0812337C @ =gMain
- mov r9, r0
- add r1, sp, 0x8
- movs r7, 0
- movs r6, 0x80
- lsls r6, 5
- ldr r0, _0812336C @ =0x81000800
- mov r8, r0
-_08123338:
- strh r7, [r1]
- add r0, sp, 0x8
- str r0, [r2]
- str r3, [r2, 0x4]
- mov r0, r8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r3, r6
- subs r5, r6
- cmp r5, r6
- bhi _08123338
- strh r7, [r1]
- add r1, sp, 0x8
- str r1, [r2]
- str r3, [r2, 0x4]
- lsrs r0, r5, 1
- orrs r0, r4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _08123380 @ =0x0000043c
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123368: .4byte 0x040000d4
-_0812336C: .4byte 0x81000800
-_08123370: .4byte gUnknown_02039274
-_08123374: .4byte gSharedMem + 0x17000
-_08123378: .4byte 0x000010fc
-_0812337C: .4byte gMain
-_08123380: .4byte 0x0000043c
-_08123384:
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl StartWeather
- movs r4, 0
- ldr r0, _081233D4 @ =gWeatherPtr
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_081233A4:
- lsls r0, r4, 2
- adds r0, r1, r0
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081233A4
- bl InitMapMusic
- bl ResetMapMusic
- ldr r2, _081233D8 @ =gSpriteCoordOffsetX
- ldr r1, _081233DC @ =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- strh r0, [r2]
- ldr r1, _081233E0 @ =gMain
- ldr r2, _081233E4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081233D4: .4byte gWeatherPtr
-_081233D8: .4byte gSpriteCoordOffsetX
-_081233DC: .4byte gSpriteCoordOffsetY
-_081233E0: .4byte gMain
-_081233E4: .4byte 0x0000043c
-_081233E8:
- movs r4, 0
- ldr r5, _08123454 @ =gUnknown_08401CF8
-_081233EC:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadCompressedObjectPic
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081233EC
- ldr r0, _08123458 @ =gUnknown_08401D18
- bl LoadSpritePalettes
- ldr r0, _0812345C @ =gCableCarMtChimneyTilemap
- ldr r4, _08123460 @ =gSharedMem + 0x19000
- adds r1, r4, 0
- bl LZDecompressWram
- ldr r0, _08123464 @ =gCableCarTreeTilemap
- movs r2, 0xB4
- lsls r2, 1
- adds r1, r4, r2
- bl LZDecompressWram
- ldr r0, _08123468 @ =gCableCarMountainTilemap
- movs r2, 0xA5
- lsls r2, 3
- adds r1, r4, r2
- bl LZDecompressWram
- ldr r0, _0812346C @ =gCableCarPylonStemTilemap
- ldr r1, _08123470 @ =0x000009d8
- adds r4, r1
- adds r1, r4, 0
- bl LZDecompressWram
- ldr r0, _08123474 @ =gCableCarBG_Pal
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- ldr r0, _08123478 @ =gCableCarBG_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r1, _0812347C @ =gMain
- ldr r2, _08123480 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123454: .4byte gUnknown_08401CF8
-_08123458: .4byte gUnknown_08401D18
-_0812345C: .4byte gCableCarMtChimneyTilemap
-_08123460: .4byte gSharedMem + 0x19000
-_08123464: .4byte gCableCarTreeTilemap
-_08123468: .4byte gCableCarMountainTilemap
-_0812346C: .4byte gCableCarPylonStemTilemap
-_08123470: .4byte 0x000009d8
-_08123474: .4byte gCableCarBG_Pal
-_08123478: .4byte gCableCarBG_Gfx
-_0812347C: .4byte gMain
-_08123480: .4byte 0x0000043c
-_08123484:
- bl sub_8124118
- bl RunTasks
- ldr r1, _08123498 @ =gMain
- ldr r0, _0812349C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123498: .4byte gMain
-_0812349C: .4byte 0x0000043c
-_081234A0:
- ldr r0, _081234B4 @ =gUnknown_02039274
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x7
- bne _081234BC
- ldr r1, _081234B8 @ =0x0000043c
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081234B4: .4byte gUnknown_02039274
-_081234B8: .4byte 0x0000043c
-_081234BC:
- ldr r0, _081234FC @ =gWeatherPtr
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- ldr r0, [r1]
- cmp r0, 0
- bne _081234CC
- b _0812370E
-_081234CC:
- movs r4, 0
- adds r3, r1, 0
- movs r5, 0xD
- negs r5, r5
-_081234D4:
- lsls r0, r4, 2
- adds r0, r3, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _081234E6
- ldrb r1, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x5]
-_081234E6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081234D4
- ldr r1, _08123500 @ =0x0000043c
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081234FC: .4byte gWeatherPtr
-_08123500: .4byte 0x0000043c
-_08123504:
- ldr r0, _08123578 @ =0x0600e800
- ldr r5, _0812357C @ =gSharedMem + 0x19168
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0xF
- str r1, [sp, 0x4]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x11
- bl sub_8124F08
- ldr r0, _08123580 @ =0x0600f000
- movs r2, 0xF0
- lsls r2, 2
- adds r1, r5, r2
- movs r2, 0x1E
- str r2, [sp]
- movs r2, 0x14
- mov r9, r2
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- ldr r0, _08123584 @ =gUnknown_02039274
- mov r8, r0
- ldr r0, [r0]
- ldr r6, _08123588 @ =0x000008fc
- adds r0, r6
- ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries
- movs r2, 0x5
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- movs r2, 0x87
- lsls r2, 4
- adds r5, r2
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- ldr r1, _08123590 @ =gMain
- ldr r2, _08123594 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123578: .4byte 0x0600e800
-_0812357C: .4byte gSharedMem + 0x19168
-_08123580: .4byte 0x0600f000
-_08123584: .4byte gUnknown_02039274
-_08123588: .4byte 0x000008fc
-_0812358C: .4byte gCableCarPylonHookTilemapEntries
-_08123590: .4byte gMain
-_08123594: .4byte 0x0000043c
-_08123598:
- ldr r0, _08123664 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_81248AC
- ldr r0, _08123668 @ =gUnknown_02039274
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0xFC
- ldr r4, _0812366C @ =gSharedMem + 0x19090
- movs r6, 0xC
- str r6, [sp]
- movs r5, 0x3
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0xE
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- adds r1, r4, 0
- adds r1, 0x48
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r2, 0xC
- movs r3, 0x11
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- adds r1, r4, 0
- adds r1, 0x90
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x18
- movs r3, 0x14
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- movs r2, 0x90
- negs r2, r2
- adds r2, r4
- mov r9, r2
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0
- movs r3, 0x11
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- subs r4, 0x48
- str r6, [sp]
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x14
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0xC
- movs r3, 0x14
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0xC
- movs r3, 0x17
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0x18
- movs r3, 0x17
- bl sub_8124F08
- ldr r1, _08123670 @ =gMain
- ldr r0, _08123674 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123664: .4byte gSpecialVar_0x8004
-_08123668: .4byte gUnknown_02039274
-_0812366C: .4byte gSharedMem + 0x19090
-_08123670: .4byte gMain
-_08123674: .4byte 0x0000043c
-_08123678:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x3
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081236A4 @ =0x000001a9
- movs r1, 0x1
- bl FadeInNewBGM
- movs r0, 0x1
- bl sub_8123FBC
- ldr r1, _081236A8 @ =gMain
- ldr r2, _081236AC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081236A4: .4byte 0x000001a9
-_081236A8: .4byte gMain
-_081236AC: .4byte 0x0000043c
-_081236B0:
- ldr r3, _081236E4 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _081236E8 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _081236EC @ =sub_8123C40
- bl SetVBlankCallback
- ldr r0, _081236F0 @ =sub_8123724
- bl SetMainCallback2
- ldr r0, _081236F4 @ =sub_8123878
- movs r1, 0
- bl CreateTask
- ldr r0, _081236F8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123700
- ldr r0, _081236FC @ =sub_81239E4
- b _08123702
- .align 2, 0
-_081236E4: .4byte 0x04000208
-_081236E8: .4byte 0x04000200
-_081236EC: .4byte sub_8123C40
-_081236F0: .4byte sub_8123724
-_081236F4: .4byte sub_8123878
-_081236F8: .4byte gSpecialVar_0x8004
-_081236FC: .4byte sub_81239E4
-_08123700:
- ldr r0, _0812371C @ =sub_8123AF8
-_08123702:
- movs r1, 0x1
- bl CreateTask
- ldr r1, _08123720 @ =gUnknown_02039274
- ldr r1, [r1]
-_0812370C:
- strb r0, [r1]
-_0812370E:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812371C: .4byte sub_8123AF8
-_08123720: .4byte gUnknown_02039274
- thumb_func_end sub_8123244
-
- thumb_func_start sub_8123724
-sub_8123724: @ 8123724
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl MapMusicMain
- pop {r0}
- bx r0
- thumb_func_end sub_8123724
-
- thumb_func_start sub_8123740
-sub_8123740: @ 8123740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r4, 0
- movs r0, 0
- bl sub_8123FBC
- ldr r0, _08123854 @ =gSpriteCoordOffsetX
- strh r4, [r0]
- movs r0, 0
- bl sub_807C9B4
- add r7, sp, 0x4
- ldr r0, _08123858 @ =gWeatherPtr
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_08123766:
- lsls r0, r4, 2
- adds r0, r1, r0
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08123766
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- ldr r2, _0812385C @ =gSharedMem
- movs r3, 0x80
- lsls r3, 10
- movs r5, 0
- ldr r1, _08123860 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08123864 @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r12, r0
-_08123798:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _08123798
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08123868 @ =gUnknown_02039274
- movs r0, 0
- str r0, [r1]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- adds r2, r7, 0
- movs r6, 0
- ldr r1, _08123860 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r0, _0812386C @ =0x81000800
- mov r12, r0
- movs r0, 0x81
- lsls r0, 24
- mov r8, r0
-_081237E0:
- strh r6, [r2]
- str r2, [r1]
- str r3, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _081237E0
- strh r6, [r7]
- str r7, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r8
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp]
- ldr r2, _08123860 @ =0x040000d4
- mov r1, sp
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r0, 0xA0
- lsls r0, 19
- strh r4, [r7]
- str r7, [r2]
- str r0, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bl warp_in
- ldr r0, _08123870 @ =gFieldCallback
- str r4, [r0]
- ldr r0, _08123874 @ =CB2_LoadMap
- bl SetMainCallback2
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08123854: .4byte gSpriteCoordOffsetX
-_08123858: .4byte gWeatherPtr
-_0812385C: .4byte gSharedMem
-_08123860: .4byte 0x040000d4
-_08123864: .4byte 0x85000400
-_08123868: .4byte gUnknown_02039274
-_0812386C: .4byte 0x81000800
-_08123870: .4byte gFieldCallback
-_08123874: .4byte CB2_LoadMap
- thumb_func_end sub_8123740
-
- thumb_func_start sub_8123878
-sub_8123878: @ 8123878
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _081238A4 @ =gUnknown_02039274
- ldr r3, [r5]
- ldrh r0, [r3, 0x6]
- adds r0, 0x1
- strh r0, [r3, 0x6]
- ldrb r2, [r3, 0x1]
- adds r7, r5, 0
- cmp r2, 0x2
- beq _0812397E
- cmp r2, 0x2
- bgt _081238A8
- cmp r2, 0
- beq _081238B6
- cmp r2, 0x1
- beq _081238D0
- b _081239D6
- .align 2, 0
-_081238A4: .4byte gUnknown_02039274
-_081238A8:
- cmp r2, 0x3
- bne _081238AE
- b _081239A4
-_081238AE:
- cmp r2, 0xFF
- bne _081238B4
- b _081239BC
-_081238B4:
- b _081239D6
-_081238B6:
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r3, 0x4]
- cmp r0, r1
- beq _081238C2
- b _081239D6
-_081238C2:
- ldrb r0, [r3, 0x2]
- bl DoWeatherEffect
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _081239D6
-_081238D0:
- ldrb r0, [r3, 0x2]
- cmp r0, 0x2
- beq _08123924
- cmp r0, 0x7
- beq _081238DC
- b _081239D6
-_081238DC:
- ldr r0, _08123920 @ =gWeatherPtr
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
- ldr r0, [r2]
- cmp r0, 0
- beq _081239D6
- ldrb r1, [r0, 0x5]
- movs r0, 0xC
- ands r0, r1
- cmp r0, 0
- beq _081239D6
- adds r3, r2, 0
- movs r5, 0xD
- negs r5, r5
-_081238FA:
- lsls r0, r4, 2
- adds r0, r3, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _0812390C
- ldrb r1, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x5]
-_0812390C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081238FA
- ldr r1, [r7]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- b _081239D6
- .align 2, 0
-_08123920: .4byte gWeatherPtr
-_08123924:
- ldr r0, _08123938 @ =gWeatherPtr
- ldr r2, [r0]
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0812393C
- strb r0, [r3, 0x1]
- b _081239D6
- .align 2, 0
-_08123938: .4byte gWeatherPtr
-_0812393C:
- ldrh r1, [r3, 0x6]
- ldrh r0, [r3, 0x4]
- adds r0, 0x8
- cmp r1, r0
- blt _081239D6
- adds r6, r2, 0
- adds r6, 0xF0
- movs r5, 0x1
- movs r7, 0x5
- negs r7, r7
-_08123950:
- lsls r0, r4, 2
- adds r0, r6, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _08123972
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r1, r2, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08123972:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08123950
- b _081239D6
-_0812397E:
- lsls r1, r0, 16
- ldr r0, _081239A0 @ =0x023a0000
- cmp r1, r0
- bne _081239D6
- movs r0, 0x3
- strb r0, [r3, 0x1]
- subs r0, 0x4
- str r4, [sp]
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- bl FadeOutBGM
- b _081239D6
- .align 2, 0
-_081239A0: .4byte 0x023a0000
-_081239A4:
- ldr r0, _081239B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081239D6
- movs r0, 0xFF
- strb r0, [r3, 0x1]
- b _081239D6
- .align 2, 0
-_081239B8: .4byte gPaletteFade
-_081239BC:
- movs r0, 0
- bl SetVBlankCallback
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, [r5]
- ldrb r0, [r0]
- bl DestroyTask
- ldr r0, _081239E0 @ =sub_8123740
- bl SetMainCallback2
-_081239D6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081239E0: .4byte sub_8123740
- thumb_func_end sub_8123878
-
- thumb_func_start sub_81239E4
-sub_81239E4: @ 81239E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08123A38 @ =gUnknown_02039274
- ldr r1, [r6]
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08123AC0
- ldrb r0, [r1, 0x14]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r1, [r6]
- ldrh r0, [r1, 0x6]
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- bne _08123A0A
- ldrb r0, [r1, 0x15]
- subs r0, 0x1
- strb r0, [r1, 0x15]
-_08123A0A:
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08123A24
- ldrb r0, [r2, 0xC]
- subs r0, 0x1
- strb r0, [r2, 0xC]
- ldr r1, [r6]
- ldrb r0, [r1, 0xD]
- subs r0, 0x1
- strb r0, [r1, 0xD]
-_08123A24:
- ldr r0, [r6]
- ldrb r1, [r0, 0x14]
- cmp r1, 0x20
- beq _08123A74
- cmp r1, 0x20
- bgt _08123A3C
- cmp r1, 0x10
- beq _08123A90
- b _08123AC0
- .align 2, 0
-_08123A38: .4byte gUnknown_02039274
-_08123A3C:
- cmp r1, 0x28
- beq _08123A60
- cmp r1, 0xAF
- bne _08123AC0
- ldr r1, _08123A5C @ =0x000008fc
- adds r0, r1
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0x16
- bl sub_8124E7C
- b _08123AC0
- .align 2, 0
-_08123A5C: .4byte 0x000008fc
-_08123A60:
- ldr r1, _08123A70 @ =0x000008fc
- adds r0, r1
- movs r1, 0x2
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x3
- b _08123A82
- .align 2, 0
-_08123A70: .4byte 0x000008fc
-_08123A74:
- ldr r1, _08123A8C @ =0x000008fc
- adds r0, r1
- str r3, [sp]
- movs r1, 0x2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x2
-_08123A82:
- movs r3, 0
- bl sub_8124E7C
- b _08123AC0
- .align 2, 0
-_08123A8C: .4byte 0x000008fc
-_08123A90:
- ldr r5, _08123AE8 @ =0x000008fc
- adds r0, r5
- ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries
- movs r2, 0x5
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- ldr r0, [r6]
- adds r0, r5
- ldr r1, _08123AF0 @ =gSharedMem + 0x199D8
- str r4, [sp]
- movs r2, 0x1E
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- ldr r1, [r6]
- movs r0, 0x40
- strb r0, [r1, 0x15]
-_08123AC0:
- bl sub_812453C
- ldr r3, _08123AF4 @ =gSpriteCoordOffsetX
- movs r0, 0
- ldrsh r2, [r3, r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _08123AD6
- adds r0, r2, 0
- adds r0, 0x80
-_08123AD6:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- strh r0, [r3]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123AE8: .4byte 0x000008fc
-_08123AEC: .4byte gCableCarPylonHookTilemapEntries
-_08123AF0: .4byte gSharedMem + 0x199D8
-_08123AF4: .4byte gSpriteCoordOffsetX
- thumb_func_end sub_81239E4
-
- thumb_func_start sub_8123AF8
-sub_8123AF8: @ 8123AF8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08123B4C @ =gUnknown_02039274
- ldr r1, [r6]
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08123BEE
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08123B1E
- ldrb r0, [r2, 0x15]
- adds r0, 0x1
- strb r0, [r2, 0x15]
-_08123B1E:
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08123B38
- ldrb r0, [r2, 0xC]
- adds r0, 0x1
- strb r0, [r2, 0xC]
- ldr r1, [r6]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_08123B38:
- ldr r3, [r6]
- ldrb r0, [r3, 0x14]
- cmp r0, 0x20
- beq _08123BB0
- cmp r0, 0x20
- bgt _08123B50
- cmp r0, 0x10
- beq _08123B78
- b _08123BEE
- .align 2, 0
-_08123B4C: .4byte gUnknown_02039274
-_08123B50:
- cmp r0, 0x28
- beq _08123BDC
- cmp r0, 0xB0
- bne _08123BEE
- ldr r1, _08123B70 @ =0x000008fc
- adds r0, r3, r1
- ldr r1, _08123B74 @ =gSharedMem + 0x199D8
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1E
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- b _08123BEE
- .align 2, 0
-_08123B70: .4byte 0x000008fc
-_08123B74: .4byte gSharedMem + 0x199D8
-_08123B78:
- ldr r5, _08123BAC @ =0x000008fc
- adds r0, r3, r5
- movs r1, 0x3
- str r1, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8124E7C
- ldr r0, [r6]
- adds r0, r5
- str r4, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0x16
- bl sub_8124E7C
- ldr r1, [r6]
- movs r0, 0xC0
- strb r0, [r1, 0x15]
- b _08123BEE
- .align 2, 0
-_08123BAC: .4byte 0x000008fc
-_08123BB0:
- ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4
- ldrh r2, [r1]
- movs r4, 0x90
- lsls r4, 4
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1, 0x2]
- adds r4, 0x2
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1, 0xA]
- adds r4, 0x3E
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r1, [r1, 0xC]
- ldr r2, _08123BD8 @ =0x00000942
- b _08123BEA
- .align 2, 0
-_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4
-_08123BD8: .4byte 0x00000942
-_08123BDC:
- ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8
- ldrh r1, [r2]
- ldr r4, _08123C0C @ =0x00000904
- adds r0, r3, r4
- strh r1, [r0]
- ldrh r1, [r2, 0xA]
- ldr r2, _08123C10 @ =0x00000944
-_08123BEA:
- adds r0, r3, r2
- strh r1, [r0]
-_08123BEE:
- bl sub_8124598
- ldr r0, _08123C14 @ =gUnknown_02039274
- ldr r1, [r0]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bcs _08123C1C
- ldr r4, _08123C18 @ =gSpriteCoordOffsetX
- movs r1, 0
- ldrsh r0, [r4, r1]
- b _08123C26
- .align 2, 0
-_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8
-_08123C0C: .4byte 0x00000904
-_08123C10: .4byte 0x00000944
-_08123C14: .4byte gUnknown_02039274
-_08123C18: .4byte gSpriteCoordOffsetX
-_08123C1C:
- ldr r0, _08123C38 @ =gWeatherPtr
- ldr r4, [r0]
- ldr r2, _08123C3C @ =0x000006fc
- adds r4, r2
- ldrh r0, [r4]
-_08123C26:
- adds r0, 0xF7
- movs r1, 0xF8
- bl __modsi3
- strh r0, [r4]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123C38: .4byte gWeatherPtr
-_08123C3C: .4byte 0x000006fc
- thumb_func_end sub_8123AF8
-
- thumb_func_start sub_8123C40
-sub_8123C40: @ 8123C40
- push {r4,lr}
- ldr r1, _08123C9C @ =0x040000d4
- ldr r0, _08123CA0 @ =gUnknown_02039274
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xFC
- str r0, [r1]
- ldr r0, _08123CA4 @ =0x0600e000
- str r0, [r1, 0x4]
- ldr r3, _08123CA8 @ =0x80000400
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _08123CAC @ =0x000008fc
- adds r0, r2, r4
- str r0, [r1]
- ldr r0, _08123CB0 @ =0x0600f800
- str r0, [r1, 0x4]
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- subs r1, 0xB8
- ldrb r0, [r2, 0x14]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x15]
- strh r0, [r1]
- subs r1, 0xA
- ldrb r0, [r2, 0xC]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0xD]
- strh r0, [r1]
- subs r1, 0x6
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x9]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123C9C: .4byte 0x040000d4
-_08123CA0: .4byte gUnknown_02039274
-_08123CA4: .4byte 0x0600e000
-_08123CA8: .4byte 0x80000400
-_08123CAC: .4byte 0x000008fc
-_08123CB0: .4byte 0x0600f800
- thumb_func_end sub_8123C40
-
- thumb_func_start nullsub_76
-nullsub_76: @ 8123CB4
- bx lr
- thumb_func_end nullsub_76
-
- thumb_func_start sub_8123CB8
-sub_8123CB8: @ 8123CB8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08123D20 @ =gUnknown_02039274
- ldr r6, [r0]
- ldrb r0, [r6, 0x1]
- cmp r0, 0xFF
- beq _08123D84
- ldr r0, _08123D24 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123D34
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123CE2
- ldr r1, _08123D28 @ =0x47800000
- bl __addsf3
-_08123CE2:
- ldr r1, _08123D2C @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- subs r1, r0
- strh r1, [r5, 0x20]
- movs r1, 0x6
- ldrsh r4, [r6, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D0A
- ldr r1, _08123D28 @ =0x47800000
- bl __addsf3
-_08123D0A:
- ldr r1, _08123D30 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x22]
- b _08123D84
- .align 2, 0
-_08123D20: .4byte gUnknown_02039274
-_08123D24: .4byte gSpecialVar_0x8004
-_08123D28: .4byte 0x47800000
-_08123D2C: .4byte 0x3e0f5c29
-_08123D30: .4byte 0x3d89374c
-_08123D34:
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D48
- ldr r1, _08123D8C @ =0x47800000
- bl __addsf3
-_08123D48:
- ldr r1, _08123D90 @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- adds r0, r1
- strh r0, [r5, 0x20]
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D70
- ldr r1, _08123D8C @ =0x47800000
- bl __addsf3
-_08123D70:
- ldr r1, _08123D94 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x22]
-_08123D84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123D8C: .4byte 0x47800000
-_08123D90: .4byte 0x3e0f5c29
-_08123D94: .4byte 0x3d89374c
- thumb_func_end sub_8123CB8
-
- thumb_func_start sub_8123D98
-sub_8123D98: @ 8123D98
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08123E04 @ =gUnknown_02039274
- ldr r6, [r0]
- ldrb r0, [r6, 0x1]
- cmp r0, 0xFF
- bne _08123DA8
- b _08123EB0
-_08123DA8:
- ldr r0, _08123E08 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123E18
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123DC4
- ldr r1, _08123E0C @ =0x47800000
- bl __addsf3
-_08123DC4:
- ldr r1, _08123E10 @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- subs r1, r0
- strh r1, [r5, 0x20]
- movs r1, 0x6
- ldrsh r4, [r6, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123DEC
- ldr r1, _08123E0C @ =0x47800000
- bl __addsf3
-_08123DEC:
- ldr r1, _08123E14 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x22]
- b _08123E68
- .align 2, 0
-_08123E04: .4byte gUnknown_02039274
-_08123E08: .4byte gSpecialVar_0x8004
-_08123E0C: .4byte 0x47800000
-_08123E10: .4byte 0x3e0f5c29
-_08123E14: .4byte 0x3d89374c
-_08123E18:
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123E2C
- ldr r1, _08123E8C @ =0x47800000
- bl __addsf3
-_08123E2C:
- ldr r1, _08123E90 @ =0x3e0f5c29
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- adds r0, r1
- strh r0, [r5, 0x20]
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123E54
- ldr r1, _08123E8C @ =0x47800000
- bl __addsf3
-_08123E54:
- ldr r1, _08123E94 @ =0x3d89374c
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x22]
-_08123E68:
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- cmp r2, 0
- bne _08123E98
- movs r0, 0x11
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x34]
- adds r1, r0, 0x1
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08123EB0
- strh r2, [r5, 0x34]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- b _08123EB0
- .align 2, 0
-_08123E8C: .4byte 0x47800000
-_08123E90: .4byte 0x3e0f5c29
-_08123E94: .4byte 0x3d89374c
-_08123E98:
- movs r2, 0
- movs r0, 0x10
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x34]
- adds r1, r0, 0x1
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08123EB0
- strh r2, [r5, 0x34]
- strh r2, [r5, 0x32]
-_08123EB0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8123D98
-
- thumb_func_start sub_8123EB8
-sub_8123EB8: @ 8123EB8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08123EE8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x22]
- adds r1, 0x10
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r2, 0x22]
-_08123EE8:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08123F3E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- beq _08123F08
- cmp r1, 0x1
- beq _08123F12
- b _08123F30
-_08123F08:
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- b _08123F22
-_08123F12:
- ldrh r0, [r2, 0x2E]
- ands r0, r1
- cmp r0, 0
- beq _08123F30
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x20]
-_08123F22:
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08123F30
- ldrh r0, [r2, 0x22]
- adds r0, 0x1
- strh r0, [r2, 0x22]
-_08123F30:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- cmp r0, 0xA0
- ble _08123F3E
- adds r0, r2, 0
- bl DestroySprite
-_08123F3E:
- pop {r0}
- bx r0
- thumb_func_end sub_8123EB8
-
- thumb_func_start sub_8123F44
-sub_8123F44: @ 8123F44
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08123F62
- ldrh r1, [r2, 0x22]
- adds r1, 0x10
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r2, 0x22]
-_08123F62:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08123FB8
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- beq _08123F82
- cmp r1, 0x1
- beq _08123F8C
- b _08123FAA
-_08123F82:
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- b _08123F9C
-_08123F8C:
- ldrh r0, [r2, 0x2E]
- ands r0, r1
- cmp r0, 0
- beq _08123FAA
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x20]
-_08123F9C:
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08123FAA
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_08123FAA:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- bgt _08123FB8
- adds r0, r2, 0
- bl DestroySprite
-_08123FB8:
- pop {r0}
- bx r0
- thumb_func_end sub_8123F44
-
- thumb_func_start sub_8123FBC
-sub_8123FBC: @ 8123FBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08123FCA
- cmp r0, 0x1
- beq _08124024
-_08123FCA:
- ldr r1, _08124020 @ =REG_WININ
- movs r0, 0
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0xA
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x46
- strh r0, [r1]
- adds r1, 0xE
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- adds r1, 0x14
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x3E
- strh r0, [r1]
- b _081240EE
- .align 2, 0
-_08124020: .4byte REG_WININ
-_08124024:
- ldr r0, _08124060 @ =REG_WININ
- movs r3, 0
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- subs r0, 0xA
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- ldr r0, _08124064 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _0812406C
- ldr r1, _08124068 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r0, 0xB0
- strb r0, [r2, 0x14]
- ldr r2, [r1]
- movs r0, 0x10
- strb r0, [r2, 0x15]
- ldr r0, [r1]
- strb r3, [r0, 0xC]
- ldr r2, [r1]
- movs r0, 0x50
- b _08124082
- .align 2, 0
-_08124060: .4byte REG_WININ
-_08124064: .4byte gSpecialVar_0x8004
-_08124068: .4byte gUnknown_02039274
-_0812406C:
- ldr r1, _081240F4 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r0, 0x60
- strb r0, [r2, 0x14]
- ldr r2, [r1]
- movs r0, 0xE8
- strb r0, [r2, 0x15]
- ldr r0, [r1]
- strb r3, [r0, 0xC]
- ldr r2, [r1]
- movs r0, 0x4
-_08124082:
- strb r0, [r2, 0xD]
- ldr r0, [r1]
- strb r3, [r0, 0x9]
- ldr r0, [r1]
- strb r3, [r0, 0x9]
- adds r2, r1, 0
- ldr r1, _081240F8 @ =REG_BG3HOFS
- ldr r2, [r2]
- ldrb r0, [r2, 0x14]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x15]
- strh r0, [r1]
- ldr r0, _081240FC @ =REG_BG2HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08124100 @ =REG_BG1HOFS
- ldrb r0, [r2, 0xC]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0xD]
- strh r0, [r1]
- subs r1, 0x6
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x9]
- strh r0, [r1]
- subs r1, 0xA
- ldr r2, _08124104 @ =0x00003c01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _08124108 @ =0x00003d02
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812410C @ =0x00003e03
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08124110 @ =REG_BG3CNT
- movs r3, 0xFC
- lsls r3, 6
- adds r2, r3, 0
- strh r2, [r0]
- subs r1, 0xC
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08124114 @ =REG_BLDCNT
- strh r2, [r0]
-_081240EE:
- pop {r0}
- bx r0
- .align 2, 0
-_081240F4: .4byte gUnknown_02039274
-_081240F8: .4byte REG_BG3HOFS
-_081240FC: .4byte REG_BG2HOFS
-_08124100: .4byte REG_BG1HOFS
-_08124104: .4byte 0x00003c01
-_08124108: .4byte 0x00003d02
-_0812410C: .4byte 0x00003e03
-_08124110: .4byte REG_BG3CNT
-_08124114: .4byte REG_BLDCNT
- thumb_func_end sub_8123FBC
-
- thumb_func_start sub_8124118
-sub_8124118: @ 8124118
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs
- add r0, sp, 0x8
- movs r2, 0x2
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- add r6, sp, 0xC
- ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x10
- ldr r1, _08124234 @ =gMtChimneyHikerCoords
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- add r4, sp, 0x18
- ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _0812423C @ =gUnknown_08401D9C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- str r1, [sp, 0x20]
- ldr r0, _08124240 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- mov r8, r6
- mov r10, r5
- cmp r0, 0
- beq _08124176
- cmp r0, 0x1
- beq _08124258
-_08124176:
- ldr r0, _08124244 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, _08124248 @ =sub_8123D98
- movs r2, 0x66
- str r2, [sp]
- movs r2, 0xC8
- movs r3, 0x49
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _081241BE
- ldr r0, _0812424C @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x8
- strh r0, [r1, 0x24]
- movs r0, 0x10
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x2E]
- movs r0, 0x49
- strh r0, [r1, 0x30]
-_081241BE:
- ldr r4, _08124250 @ =gSpriteTemplate_8401D40
- adds r0, r4, 0
- movs r1, 0xB0
- movs r2, 0x2B
- movs r3, 0x67
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _0812424C @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x26]
- strh r1, [r0, 0x24]
- movs r1, 0xB0
- strh r1, [r0, 0x2E]
- movs r1, 0x2B
- strh r1, [r0, 0x30]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0xC8
- movs r2, 0x63
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- movs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0xC8
- strh r1, [r0, 0x2E]
- movs r1, 0x63
- strh r1, [r0, 0x30]
- ldr r2, _08124254 @ =gUnknown_02039274
- ldr r1, [r2]
- movs r0, 0x7
- strb r0, [r1, 0x2]
- ldr r1, [r2]
- movs r0, 0xAF
- lsls r0, 1
- strh r0, [r1, 0x4]
- movs r0, 0x2
- bl sub_807C9B4
- b _0812431E
- .align 2, 0
-_0812422C: .4byte gCableCarPlayerGraphicsIDs
-_08124230: .4byte gMtChimneyHikerGraphicsIDs
-_08124234: .4byte gMtChimneyHikerCoords
-_08124238: .4byte gMtChimneyHikerMovementDelayTable
-_0812423C: .4byte gUnknown_08401D9C
-_08124240: .4byte gSpecialVar_0x8004
-_08124244: .4byte gSaveBlock2
-_08124248: .4byte sub_8123D98
-_0812424C: .4byte gSprites
-_08124250: .4byte gSpriteTemplate_8401D40
-_08124254: .4byte gUnknown_02039274
-_08124258:
- ldr r7, _081243EC @ =gUnknown_02039274
- ldr r0, [r7]
- adds r0, 0xFC
- ldr r1, _081243F0 @ =gSharedMem + 0x19048
- movs r2, 0xC
- str r2, [sp]
- movs r2, 0x3
- str r2, [sp, 0x4]
- movs r2, 0x18
- movs r3, 0x1A
- bl sub_8124F08
- ldr r0, _081243F4 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, _081243F8 @ =sub_8123D98
- movs r2, 0x66
- str r2, [sp]
- movs r2, 0x80
- movs r3, 0x27
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _081242B8
- ldr r0, _081243FC @ =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x8
- strh r0, [r1, 0x24]
- movs r0, 0x10
- strh r0, [r1, 0x26]
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- movs r0, 0x27
- strh r0, [r1, 0x30]
-_081242B8:
- ldr r4, _08124400 @ =gSpriteTemplate_8401D40
- adds r0, r4, 0
- movs r1, 0x68
- movs r2, 0x9
- movs r3, 0x67
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _081243FC @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x26]
- strh r1, [r0, 0x24]
- movs r1, 0x68
- strh r1, [r0, 0x2E]
- movs r1, 0x9
- strh r1, [r0, 0x30]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- movs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0x41
- strh r1, [r0, 0x30]
- ldr r1, [r7]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- ldr r1, [r7]
- ldr r0, _08124404 @ =0x00000109
- strh r0, [r1, 0x4]
- movs r0, 0x7
- bl sub_807C9B4
-_0812431E:
- movs r4, 0
- ldr r5, _081243FC @ =gSprites
-_08124322:
- lsls r1, r4, 20
- movs r0, 0xC0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, r4, 19
- ldr r3, _08124408 @ =0xfff80000
- adds r2, r3
- asrs r2, 16
- ldr r0, _0812440C @ =gSpriteTemplate_8401D70
- movs r3, 0x68
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08124322
- movs r0, 0x3F
- mov r4, r9
- ands r0, r4
- cmp r0, 0
- bne _08124458
- mov r0, r9
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- add r0, r8
- ldrb r0, [r0]
- ldr r5, _08124410 @ =gSpecialVar_0x8004
- ldrh r4, [r5]
- lsls r4, 2
- add r1, sp, 0x1C
- adds r1, r4, r1
- ldr r1, [r1]
- mov r3, r10
- adds r2, r3, r4
- movs r3, 0
- ldrsh r2, [r2, r3]
- mov r3, sp
- adds r3, 0x12
- adds r3, r4
- movs r4, 0
- ldrsh r3, [r3, r4]
- movs r4, 0x6A
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _08124458
- ldr r1, _081243FC @ =gSprites
- lsls r2, r6, 4
- adds r0, r2, r6
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r5]
- mov r8, r2
- cmp r0, 0
- bne _0812441A
- movs r7, 0x1
- mov r5, r9
- ands r5, r7
- cmp r5, 0
- beq _08124414
- adds r0, r4, 0
- movs r1, 0x6
- b _08124428
- .align 2, 0
-_081243EC: .4byte gUnknown_02039274
-_081243F0: .4byte gSharedMem + 0x19048
-_081243F4: .4byte gSaveBlock2
-_081243F8: .4byte sub_8123D98
-_081243FC: .4byte gSprites
-_08124400: .4byte gSpriteTemplate_8401D40
-_08124404: .4byte 0x00000109
-_08124408: .4byte 0xfff80000
-_0812440C: .4byte gSpriteTemplate_8401D70
-_08124410: .4byte gSpecialVar_0x8004
-_08124414:
- adds r0, r4, 0
- movs r1, 0x7
- b _0812443A
-_0812441A:
- movs r7, 0x1
- mov r5, r9
- ands r5, r7
- cmp r5, 0
- beq _08124436
- adds r0, r4, 0
- movs r1, 0x7
-_08124428:
- bl StartSpriteAnim
- strh r7, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- b _08124440
-_08124436:
- adds r0, r4, 0
- movs r1, 0x6
-_0812443A:
- bl StartSpriteAnim
- strh r5, [r4, 0x30]
-_08124440:
- ldr r0, _08124468 @ =gSprites
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- mov r3, r9
- ands r0, r3
- add r0, sp
- adds r0, 0x18
- ldrb r0, [r0]
- strh r0, [r1, 0x32]
-_08124458:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08124468: .4byte gSprites
- thumb_func_end sub_8124118
-
- thumb_func_start sub_812446C
-sub_812446C: @ 812446C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r3, 0
- mov r9, r3
- ldr r2, _08124530 @ =gUnknown_02039274
- ldr r0, [r2]
- ldrb r1, [r0, 0x1B]
- adds r1, 0x2
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 26
- lsrs r0, 24
- mov r12, r0
-_0812448E:
- movs r6, 0
- lsls r0, r3, 1
- adds r1, r3, 0x3
- adds r2, r3, 0x6
- adds r4, r3, 0x1
- str r4, [sp]
- adds r0, r3
- lsls r0, 3
- mov r10, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r8, r0
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- str r0, [sp, 0x4]
-_081244B0:
- ldr r7, _08124530 @ =gUnknown_02039274
- ldr r5, [r7]
- lsls r3, r6, 1
- mov r0, r10
- adds r2, r3, r0
- adds r4, r5, 0
- adds r4, 0x22
- adds r2, r4, r2
- mov r1, r12
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 1
- ldr r7, _08124534 @ =gSharedMem + 0x19000
- adds r1, r7
- ldrh r0, [r1]
- strh r0, [r2]
- mov r0, r8
- adds r1, r3, r0
- adds r1, r4, r1
- mov r7, r9
- lsls r2, r7, 1
- ldr r7, _08124534 @ =gSharedMem + 0x19000
- adds r0, r2, r7
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, [sp, 0x4]
- adds r3, r0
- adds r4, r3
- ldr r1, _08124538 @ =gSharedMem + 0x19048
- adds r2, r1
- ldrh r0, [r2]
- strh r0, [r4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _081244B0
- ldr r4, [sp]
- lsls r0, r4, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0812448E
- ldrb r0, [r5, 0x1B]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- strb r0, [r5, 0x1B]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08124530: .4byte gUnknown_02039274
-_08124534: .4byte gSharedMem + 0x19000
-_08124538: .4byte gSharedMem + 0x19048
- thumb_func_end sub_812446C
-
- thumb_func_start sub_812453C
-sub_812453C: @ 812453C
- push {r4,r5,lr}
- ldr r5, _08124594 @ =gUnknown_02039274
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1F]
- ldrb r2, [r1, 0x1D]
- subs r0, r2
- strb r0, [r1, 0x8]
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1E]
- subs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08124580
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_08124580:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _0812458C
- bl sub_81245F4
-_0812458C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08124594: .4byte gUnknown_02039274
- thumb_func_end sub_812453C
-
- thumb_func_start sub_8124598
-sub_8124598: @ 8124598
- push {r4,r5,lr}
- ldr r5, _081245F0 @ =gUnknown_02039274
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- ldrb r2, [r1, 0x1F]
- adds r0, r2
- strb r0, [r1, 0x8]
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r0, [r1, 0x1E]
- ldrb r2, [r2]
- adds r0, r2
- strb r0, [r1, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081245DC
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_081245DC:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _081245E8
- bl sub_812476C
-_081245E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081245F0: .4byte gUnknown_02039274
- thumb_func_end sub_8124598
-
- thumb_func_start sub_81245F4
-sub_81245F4: @ 81245F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- ldr r2, _0812475C @ =gUnknown_02039274
- ldr r0, [r2]
- mov r1, r12
- strb r1, [r0, 0x1E]
- strb r1, [r0, 0x1D]
- ldr r1, [r2]
- ldrb r0, [r1, 0x8]
- strb r0, [r1, 0x1F]
- ldr r0, [r2]
- ldrb r1, [r0, 0x9]
- adds r0, 0x20
- strb r1, [r0]
- ldr r4, [r2]
- ldrb r1, [r4, 0x19]
- adds r3, r1, 0
- adds r3, 0x1E
- adds r0, r3, 0
- mov r9, r2
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r4, 0x19]
- mov r2, r9
- ldr r1, [r2]
- ldrb r0, [r1, 0x18]
- subs r0, 0x2
- strb r0, [r1, 0x18]
- ldr r0, [r2]
- ldrb r1, [r0, 0x1A]
- adds r2, r1, 0
- adds r2, 0x17
- adds r0, r2, 0
- ldr r3, _08124760 @ =gUnknown_0203927A
- mov r10, r3
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- mov r4, r10
- strb r0, [r4]
- ldr r7, _08124764 @ =gUnknown_02039278
- ldr r0, _08124768 @ =gUnknown_02039279
- mov r8, r0
-_08124658:
- mov r1, r9
- ldr r3, [r1]
- ldrb r0, [r3, 0x19]
- strb r0, [r7]
- mov r2, r10
- ldrb r0, [r2]
- mov r4, r12
- adds r1, r0, r4
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- mov r1, r8
- strb r0, [r1]
- ldrb r2, [r7]
- lsls r2, 1
- ldrb r0, [r1]
- lsls r0, 6
- adds r2, r0
- adds r6, r3, 0
- adds r6, 0xFC
- adds r2, r6, r2
- ldrb r1, [r3, 0x18]
- lsls r1, 1
- mov r4, r12
- lsls r0, r4, 1
- add r0, r12
- lsls r5, r0, 3
- adds r1, r5
- adds r4, r3, 0
- adds r4, 0x22
- adds r1, r4, r1
- ldrh r0, [r1]
- strh r0, [r2]
- ldrb r1, [r7]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r7]
- ldrb r1, [r7]
- lsls r1, 1
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r1, r6, r1
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x8
- bls _08124658
- ldr r4, _08124764 @ =gUnknown_02039278
- mov r5, r9
- ldr r3, [r5]
- ldrb r1, [r3, 0x19]
- adds r2, r1, 0
- adds r2, 0x1E
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r4]
- adds r0, r3, 0
- adds r0, 0xFC
- ldrb r2, [r4]
- movs r1, 0x2
- str r1, [sp]
- movs r6, 0x20
- str r6, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl sub_8124E7C
- ldr r1, [r5]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- bne _0812474C
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0
- adds r3, 0x1D
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r1, 0x1A]
- mov r3, r9
- ldr r1, [r3]
- movs r0, 0xC
- strb r0, [r1, 0x18]
- bl sub_812446C
- mov r4, r9
- ldr r1, [r4]
- ldrb r3, [r1, 0x1A]
- adds r4, r3, 0x1
- adds r0, r4, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r4, r0
- ldr r2, _08124764 @ =gUnknown_02039278
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xFC
- ldrb r3, [r2]
- str r6, [sp]
- movs r1, 0x9
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- bl sub_8124E7C
-_0812474C:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812475C: .4byte gUnknown_02039274
-_08124760: .4byte gUnknown_0203927A
-_08124764: .4byte gUnknown_02039278
-_08124768: .4byte gUnknown_02039279
- thumb_func_end sub_81245F4
-
- thumb_func_start sub_812476C
-sub_812476C: @ 812476C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- ldr r2, _0812489C @ =gUnknown_02039274
- ldr r0, [r2]
- mov r1, r12
- strb r1, [r0, 0x1E]
- strb r1, [r0, 0x1D]
- ldr r1, [r2]
- ldrb r0, [r1, 0x8]
- strb r0, [r1, 0x1F]
- ldr r0, [r2]
- ldrb r1, [r0, 0x9]
- adds r0, 0x20
- strb r1, [r0]
- ldr r4, [r2]
- ldrb r1, [r4, 0x19]
- adds r3, r1, 0x2
- adds r0, r3, 0
- mov r9, r2
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r4, 0x19]
- mov r2, r9
- ldr r1, [r2]
- ldrb r0, [r1, 0x18]
- adds r0, 0x2
- strb r0, [r1, 0x18]
- ldr r1, _081248A0 @ =gUnknown_0203927D
- ldr r0, [r2]
- ldrb r0, [r0, 0x1A]
- strb r0, [r1]
- ldr r4, _081248A4 @ =gUnknown_0203927C
- mov r10, r4
- ldr r7, _081248A8 @ =gUnknown_0203927B
- mov r8, r10
-_081247C0:
- mov r0, r9
- ldr r3, [r0]
- ldrb r0, [r3, 0x19]
- strb r0, [r7]
- ldr r1, _081248A0 @ =gUnknown_0203927D
- ldrb r0, [r1]
- mov r2, r12
- adds r1, r0, r2
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- mov r4, r8
- strb r0, [r4]
- ldrb r2, [r7]
- lsls r2, 1
- ldrb r0, [r4]
- lsls r0, 6
- adds r2, r0
- adds r6, r3, 0
- adds r6, 0xFC
- adds r2, r6, r2
- ldrb r1, [r3, 0x18]
- lsls r1, 1
- mov r4, r12
- lsls r0, r4, 1
- add r0, r12
- lsls r5, r0, 3
- adds r1, r5
- adds r4, r3, 0
- adds r4, 0x22
- adds r1, r4, r1
- ldrh r0, [r1]
- strh r0, [r2]
- ldrb r1, [r7]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r7]
- ldrb r1, [r7]
- lsls r1, 1
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r1, r6, r1
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x8
- bls _081247C0
- mov r4, r9
- ldr r1, [r4]
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0
- adds r3, 0x17
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- mov r2, r10
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xFC
- ldrb r2, [r1, 0x19]
- mov r1, r10
- ldrb r3, [r1]
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x9
- str r1, [sp, 0x4]
- movs r1, 0
- bl sub_8124E7C
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0xA
- bne _0812488C
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0x3
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r1, 0x1A]
- mov r2, r9
- ldr r1, [r2]
- movs r0, 0xFE
- strb r0, [r1, 0x18]
- bl sub_812446C
-_0812488C:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812489C: .4byte gUnknown_02039274
-_081248A0: .4byte gUnknown_0203927D
-_081248A4: .4byte gUnknown_0203927C
-_081248A8: .4byte gUnknown_0203927B
- thumb_func_end sub_812476C
-
- thumb_func_start sub_81248AC
-sub_81248AC: @ 81248AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081248BA
- cmp r0, 0x1
- beq _081248E4
-_081248BA:
- ldr r1, _081248E0 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x2
- strb r0, [r2, 0x1B]
- ldr r0, [r1]
- strb r3, [r0, 0x19]
- ldr r2, [r1]
- movs r0, 0x14
- strb r0, [r2, 0x1A]
- ldr r1, [r1]
- movs r0, 0xC
- strb r0, [r1, 0x18]
- bl sub_812446C
- bl sub_81245F4
- b _08124906
- .align 2, 0
-_081248E0: .4byte gUnknown_02039274
-_081248E4:
- ldr r1, _08124914 @ =gUnknown_02039274
- ldr r2, [r1]
- movs r0, 0x2
- strb r0, [r2, 0x1B]
- ldr r2, [r1]
- movs r0, 0x1C
- strb r0, [r2, 0x19]
- ldr r2, [r1]
- movs r0, 0x14
- strb r0, [r2, 0x1A]
- ldr r1, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x18]
- bl sub_812446C
- bl sub_812476C
-_08124906:
- ldr r0, _08124914 @ =gUnknown_02039274
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08124914: .4byte gUnknown_02039274
- thumb_func_end sub_81248AC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s
deleted file mode 100644
index 50ef19dec..000000000
--- a/asm/cable_car_util.s
+++ /dev/null
@@ -1,162 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8124E7C
-sub_8124E7C: @ 8124E7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- movs r0, 0
- lsrs r4, r3, 24
- cmp r0, r8
- bcs _08124EF6
-_08124EAE:
- ldr r2, [sp]
- movs r3, 0
- adds r6, r4, 0x1
- adds r0, 0x1
- mov r12, r0
- cmp r3, r7
- bcs _08124EE0
- lsls r5, r4, 6
-_08124EBE:
- lsls r0, r2, 1
- adds r0, r5
- add r0, r10
- mov r1, r9
- strh r1, [r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r7
- bcc _08124EBE
-_08124EE0:
- adds r0, r6, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r6, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r12
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _08124EAE
-_08124EF6:
- 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_8124E7C
-
- thumb_func_start sub_8124F08
-sub_8124F08: @ 8124F08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- movs r0, 0
- adds r5, r1, 0
- lsrs r4, r3, 24
- cmp r0, r9
- bcs _08124F82
-_08124F38:
- ldr r2, [sp]
- movs r3, 0
- adds r7, r4, 0x1
- adds r0, 0x1
- mov r8, r0
- cmp r3, r12
- bcs _08124F6C
- lsls r6, r4, 6
-_08124F48:
- lsls r0, r2, 1
- adds r0, r6
- add r0, r10
- ldrh r1, [r5]
- strh r1, [r0]
- adds r5, 0x2
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r12
- bcc _08124F48
-_08124F6C:
- adds r0, r7, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r7, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08124F38
-_08124F82:
- 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_8124F08
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
deleted file mode 100644
index 94347f2ad..000000000
--- a/asm/contest_ai.s
+++ /dev/null
@@ -1,5292 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81288F4
-sub_81288F4: @ 81288F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0812893C @ =gSharedMem + 0x192E4
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x44
- bl memset
- movs r3, 0x64
- adds r2, r4, 0
- movs r1, 0x3
- adds r0, r2, 0
- adds r0, 0x8
-_08128910:
- strb r3, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08128910
- adds r3, r2, 0
- adds r3, 0x41
- movs r1, 0
- strb r5, [r3]
- adds r0, r2, 0
- adds r0, 0x40
- strb r1, [r0]
- ldr r1, _08128940 @ =gContestMons
- ldrb r0, [r3]
- lsls r0, 6
- adds r1, 0x18
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2, 0x14]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812893C: .4byte gSharedMem + 0x192E4
-_08128940: .4byte gContestMons
- thumb_func_end sub_81288F4
-
- thumb_func_start sub_8128944
-sub_8128944: @ 8128944
- push {r4-r6,lr}
- ldr r1, _081289A8 @ =gSharedMem + 0x192E4
- ldr r0, [r1, 0x14]
- cmp r0, 0
- beq _08128974
- adds r4, r1, 0
- movs r5, 0
-_08128952:
- ldr r0, [r4, 0x14]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128962
- strb r5, [r4]
- bl sub_81289AC
-_08128962:
- ldr r1, [r4, 0x14]
- lsrs r1, 1
- str r1, [r4, 0x14]
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
- strb r5, [r4, 0x4]
- cmp r1, 0
- bne _08128952
-_08128974:
- movs r6, 0x3
- ldr r5, _081289A8 @ =gSharedMem + 0x192E4
-_08128978:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- adds r3, r5, 0x5
- adds r0, r4, r3
- ldrb r2, [r0]
- movs r1, 0
- ldrb r0, [r5, 0x5]
- cmp r2, r0
- bcc _0812899C
-_0812898E:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _0812899C
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0812898E
-_0812899C:
- cmp r1, 0x4
- bne _08128978
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081289A8: .4byte gSharedMem + 0x192E4
- thumb_func_end sub_8128944
-
- thumb_func_start sub_81289AC
-sub_81289AC: @ 81289AC
- push {r4-r6,lr}
- ldr r1, _081289F4 @ =gSharedMem + 0x192E4
- ldrb r0, [r1]
- adds r2, r1, 0
- cmp r0, 0x2
- beq _08128A76
- adds r4, r1, 0
- ldr r5, _081289F8 @ =gAIScriptPtr
- ldr r6, _081289FC @ =gUnknown_0203858E
-_081289BE:
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08128A0E
- cmp r0, 0x1
- bgt _08128A6E
- cmp r0, 0
- bne _08128A6E
- ldr r1, _08128A00 @ =gContestAIs
- ldrb r0, [r4, 0x10]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r5]
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r1, 0
- cmp r0, 0
- bne _08128A04
- strh r0, [r4, 0x2]
- b _08128A06
- .align 2, 0
-_081289F4: .4byte gSharedMem + 0x192E4
-_081289F8: .4byte gAIScriptPtr
-_081289FC: .4byte gUnknown_0203858E
-_08128A00: .4byte gContestAIs
-_08128A04:
- strh r1, [r4, 0x2]
-_08128A06:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08128A6E
-_08128A0E:
- ldrh r1, [r1, 0x2]
- cmp r1, 0
- beq _08128A2C
- ldr r1, _08128A28 @ =sContestAICmdTable
- ldr r0, [r5]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08128A3C
- .align 2, 0
-_08128A28: .4byte sContestAICmdTable
-_08128A2C:
- adds r0, r4, 0x5
- ldrb r2, [r4, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r4, 0x9]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r4, 0x9]
-_08128A3C:
- ldr r2, _08128A5C @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128A6E
- ldrb r0, [r2, 0x4]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08128A60
- strb r1, [r2]
- b _08128A66
- .align 2, 0
-_08128A5C: .4byte gSharedMem + 0x192E4
-_08128A60:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08128A66:
- ldrb r1, [r4, 0x9]
- movs r0, 0xFE
- ands r0, r1
- strb r0, [r4, 0x9]
-_08128A6E:
- adds r1, r2, 0
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _081289BE
-_08128A76:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81289AC
-
- thumb_func_start sub_8128A7C
-sub_8128A7C: @ 8128A7C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _08128AA4 @ =gSharedMem + 0x192D0
- ldrb r0, [r3]
- cmp r0, r2
- beq _08128A9A
-_08128A8C:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _08128A9A
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08128A8C
-_08128A9A:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08128AA4: .4byte gSharedMem + 0x192D0
- thumb_func_end sub_8128A7C
-
- thumb_func_start ContestAICmd_unk_00
-ContestAICmd_unk_00: @ 8128AA8
- push {lr}
- ldr r2, _08128AD0 @ =gSharedMem + 0x192E4
- adds r1, r2, 0x5
- ldrb r0, [r2, 0x4]
- adds r1, r0
- ldr r3, _08128AD4 @ =gAIScriptPtr
- ldr r0, [r3]
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08128AD8
- movs r1, 0xFF
- b _08128ADE
- .align 2, 0
-_08128AD0: .4byte gSharedMem + 0x192E4
-_08128AD4: .4byte gAIScriptPtr
-_08128AD8:
- cmp r0, 0
- bge _08128ADE
- movs r1, 0
-_08128ADE:
- adds r0, r2, 0x5
- ldrb r2, [r2, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_00
-
- thumb_func_start ContestAICmd_get_turn
-ContestAICmd_get_turn: @ 8128AF0
- ldr r1, _08128B04 @ =gSharedMem + 0x192E4
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x18]
- ldr r1, _08128B08 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128B04: .4byte gSharedMem + 0x192E4
-_08128B08: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_turn
-
- thumb_func_start ContestAICmd_unk_02
-ContestAICmd_unk_02: @ 8128B0C
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128B3C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B40 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128B44
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128B48
- .align 2, 0
-_08128B3C: .4byte gSharedMem + 0x192E4
-_08128B40: .4byte gAIScriptPtr
-_08128B44:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B48:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_02
-
- thumb_func_start ContestAICmd_unk_03
-ContestAICmd_unk_03: @ 8128B4C
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128B7C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B80 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128B84
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128B88
- .align 2, 0
-_08128B7C: .4byte gSharedMem + 0x192E4
-_08128B80: .4byte gAIScriptPtr
-_08128B84:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B88:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_03
-
- thumb_func_start ContestAICmd_unk_04
-ContestAICmd_unk_04: @ 8128B8C
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128BBC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128BC0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128BC4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128BC8
- .align 2, 0
-_08128BBC: .4byte gSharedMem + 0x192E4
-_08128BC0: .4byte gAIScriptPtr
-_08128BC4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128BC8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_04
-
- thumb_func_start ContestAICmd_unk_05
-ContestAICmd_unk_05: @ 8128BCC
- push {lr}
- bl ContestAICmd_get_turn
- ldr r0, _08128BFC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C00 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128C04
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128C08
- .align 2, 0
-_08128BFC: .4byte gSharedMem + 0x192E4
-_08128C00: .4byte gAIScriptPtr
-_08128C04:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C08:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_05
-
- thumb_func_start ContestAICmd_get_excitement
-ContestAICmd_get_excitement: @ 8128C0C
- ldr r1, _08128C24 @ =gSharedMem + 0x192E4
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x18]
- ldr r1, _08128C28 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128C24: .4byte gSharedMem + 0x192E4
-_08128C28: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_excitement
-
- thumb_func_start ContestAICmd_unk_07
-ContestAICmd_unk_07: @ 8128C2C
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128C5C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C60 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128C64
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128C68
- .align 2, 0
-_08128C5C: .4byte gSharedMem + 0x192E4
-_08128C60: .4byte gAIScriptPtr
-_08128C64:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C68:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_07
-
- thumb_func_start ContestAICmd_unk_08
-ContestAICmd_unk_08: @ 8128C6C
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128C9C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CA0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128CA4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128CA8
- .align 2, 0
-_08128C9C: .4byte gSharedMem + 0x192E4
-_08128CA0: .4byte gAIScriptPtr
-_08128CA4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CA8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_08
-
- thumb_func_start ContestAICmd_unk_09
-ContestAICmd_unk_09: @ 8128CAC
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128CDC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CE0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128CE4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128CE8
- .align 2, 0
-_08128CDC: .4byte gSharedMem + 0x192E4
-_08128CE0: .4byte gAIScriptPtr
-_08128CE4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CE8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_09
-
- thumb_func_start ContestAICmd_unk_0A
-ContestAICmd_unk_0A: @ 8128CEC
- push {lr}
- bl ContestAICmd_get_excitement
- ldr r0, _08128D1C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D20 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128D24
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128D28
- .align 2, 0
-_08128D1C: .4byte gSharedMem + 0x192E4
-_08128D20: .4byte gAIScriptPtr
-_08128D24:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D28:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0A
-
- thumb_func_start ContestAICmd_get_user_order
-ContestAICmd_get_user_order: @ 8128D2C
- ldr r1, _08128D48 @ =gSharedMem + 0x192E4
- adds r2, r1, 0
- adds r2, 0x41
- adds r0, r1, 0
- subs r0, 0x14
- ldrb r2, [r2]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08128D4C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128D48: .4byte gSharedMem + 0x192E4
-_08128D4C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_user_order
-
- thumb_func_start ContestAICmd_unk_0C
-ContestAICmd_unk_0C: @ 8128D50
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128D80 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D84 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128D88
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128D8C
- .align 2, 0
-_08128D80: .4byte gSharedMem + 0x192E4
-_08128D84: .4byte gAIScriptPtr
-_08128D88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D8C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0C
-
- thumb_func_start ContestAICmd_unk_0D
-ContestAICmd_unk_0D: @ 8128D90
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128DC0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128DC4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128DC8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128DCC
- .align 2, 0
-_08128DC0: .4byte gSharedMem + 0x192E4
-_08128DC4: .4byte gAIScriptPtr
-_08128DC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128DCC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0D
-
- thumb_func_start ContestAICmd_unk_0E
-ContestAICmd_unk_0E: @ 8128DD0
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128E00 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E04 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128E08
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128E0C
- .align 2, 0
-_08128E00: .4byte gSharedMem + 0x192E4
-_08128E04: .4byte gAIScriptPtr
-_08128E08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E0C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0E
-
- thumb_func_start ContestAICmd_unk_0F
-ContestAICmd_unk_0F: @ 8128E10
- push {lr}
- bl ContestAICmd_get_user_order
- ldr r0, _08128E40 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E44 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128E48
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128E4C
- .align 2, 0
-_08128E40: .4byte gSharedMem + 0x192E4
-_08128E44: .4byte gAIScriptPtr
-_08128E48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E4C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_0F
-
- thumb_func_start ContestAICmd_get_user_condition_maybe
-ContestAICmd_get_user_condition_maybe: @ 8128E50
- push {r4,lr}
- ldr r4, _08128E88 @ =gSharedMem + 0x192E4
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08128E8C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128E88: .4byte gSharedMem + 0x192E4
-_08128E8C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_user_condition_maybe
-
- thumb_func_start ContestAICmd_unk_11
-ContestAICmd_unk_11: @ 8128E90
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128EC0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128EC4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128EC8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128ECC
- .align 2, 0
-_08128EC0: .4byte gSharedMem + 0x192E4
-_08128EC4: .4byte gAIScriptPtr
-_08128EC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128ECC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_11
-
- thumb_func_start ContestAICmd_unk_12
-ContestAICmd_unk_12: @ 8128ED0
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F00 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F04 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128F08
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128F0C
- .align 2, 0
-_08128F00: .4byte gSharedMem + 0x192E4
-_08128F04: .4byte gAIScriptPtr
-_08128F08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F0C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_12
-
- thumb_func_start ContestAICmd_unk_13
-ContestAICmd_unk_13: @ 8128F10
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F40 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F44 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128F48
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128F4C
- .align 2, 0
-_08128F40: .4byte gSharedMem + 0x192E4
-_08128F44: .4byte gAIScriptPtr
-_08128F48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F4C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_13
-
- thumb_func_start ContestAICmd_unk_14
-ContestAICmd_unk_14: @ 8128F50
- push {lr}
- bl ContestAICmd_get_user_condition_maybe
- ldr r0, _08128F80 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F84 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128F88
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128F8C
- .align 2, 0
-_08128F80: .4byte gSharedMem + 0x192E4
-_08128F84: .4byte gAIScriptPtr
-_08128F88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F8C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_14
-
- thumb_func_start ContestAICmd_unk_15
-ContestAICmd_unk_15: @ 8128F90
- ldr r2, _08128FB4 @ =gSharedMem + 0x192E4
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r0, [r0, 0x4]
- strh r0, [r2, 0x18]
- ldr r1, _08128FB8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128FB4: .4byte gSharedMem + 0x192E4
-_08128FB8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_15
-
- thumb_func_start ContestAICmd_unk_16
-ContestAICmd_unk_16: @ 8128FBC
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _08128FF4 @ =gSharedMem + 0x192E4
- ldr r4, _08128FF8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08128FFC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129000
- .align 2, 0
-_08128FF4: .4byte gSharedMem + 0x192E4
-_08128FF8: .4byte gAIScriptPtr
-_08128FFC:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129000:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_16
-
- thumb_func_start ContestAICmd_unk_17
-ContestAICmd_unk_17: @ 8129008
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _08129040 @ =gSharedMem + 0x192E4
- ldr r4, _08129044 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _08129048
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812904C
- .align 2, 0
-_08129040: .4byte gSharedMem + 0x192E4
-_08129044: .4byte gAIScriptPtr
-_08129048:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812904C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_17
-
- thumb_func_start ContestAICmd_unk_18
-ContestAICmd_unk_18: @ 8129054
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _0812908C @ =gSharedMem + 0x192E4
- ldr r4, _08129090 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08129094
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129098
- .align 2, 0
-_0812908C: .4byte gSharedMem + 0x192E4
-_08129090: .4byte gAIScriptPtr
-_08129094:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129098:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_18
-
- thumb_func_start ContestAICmd_unk_19
-ContestAICmd_unk_19: @ 81290A0
- push {r4,r5,lr}
- bl ContestAICmd_unk_15
- ldr r2, _081290D8 @ =gSharedMem + 0x192E4
- ldr r4, _081290DC @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _081290E0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081290E4
- .align 2, 0
-_081290D8: .4byte gSharedMem + 0x192E4
-_081290DC: .4byte gAIScriptPtr
-_081290E0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081290E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_19
-
- thumb_func_start ContestAICmd_unk_1A
-ContestAICmd_unk_1A: @ 81290EC
- ldr r2, _08129108 @ =gSharedMem + 0x192E4
- ldr r1, _0812910C @ =gUnknown_02038670
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x18]
- ldr r1, _08129110 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129108: .4byte gSharedMem + 0x192E4
-_0812910C: .4byte gUnknown_02038670
-_08129110: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_1A
-
- thumb_func_start ContestAICmd_unk_1B
-ContestAICmd_unk_1B: @ 8129114
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _0812914C @ =gSharedMem + 0x192E4
- ldr r4, _08129150 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08129154
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129158
- .align 2, 0
-_0812914C: .4byte gSharedMem + 0x192E4
-_08129150: .4byte gAIScriptPtr
-_08129154:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129158:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1B
-
- thumb_func_start ContestAICmd_unk_1C
-ContestAICmd_unk_1C: @ 8129160
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _08129198 @ =gSharedMem + 0x192E4
- ldr r4, _0812919C @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _081291A0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081291A4
- .align 2, 0
-_08129198: .4byte gSharedMem + 0x192E4
-_0812919C: .4byte gAIScriptPtr
-_081291A0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1C
-
- thumb_func_start ContestAICmd_unk_1D
-ContestAICmd_unk_1D: @ 81291AC
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _081291E4 @ =gSharedMem + 0x192E4
- ldr r4, _081291E8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _081291EC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081291F0
- .align 2, 0
-_081291E4: .4byte gSharedMem + 0x192E4
-_081291E8: .4byte gAIScriptPtr
-_081291EC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1D
-
- thumb_func_start ContestAICmd_unk_1E
-ContestAICmd_unk_1E: @ 81291F8
- push {r4,r5,lr}
- bl ContestAICmd_unk_1A
- ldr r2, _08129230 @ =gSharedMem + 0x192E4
- ldr r4, _08129234 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _08129238
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812923C
- .align 2, 0
-_08129230: .4byte gSharedMem + 0x192E4
-_08129234: .4byte gAIScriptPtr
-_08129238:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812923C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_1E
-
- thumb_func_start ContestAICmd_get_contest_type
-ContestAICmd_get_contest_type: @ 8129244
- ldr r1, _08129258 @ =gSharedMem + 0x192E4
- ldr r0, _0812925C @ =gSpecialVar_ContestCategory
- ldrh r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08129260 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129258: .4byte gSharedMem + 0x192E4
-_0812925C: .4byte gSpecialVar_ContestCategory
-_08129260: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_contest_type
-
- thumb_func_start ContestAICmd_unk_20
-ContestAICmd_unk_20: @ 8129264
- push {lr}
- bl ContestAICmd_get_contest_type
- ldr r0, _08129294 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129298 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812929C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081292A0
- .align 2, 0
-_08129294: .4byte gSharedMem + 0x192E4
-_08129298: .4byte gAIScriptPtr
-_0812929C:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292A0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_20
-
- thumb_func_start ContestAICmd_unk_21
-ContestAICmd_unk_21: @ 81292A4
- push {lr}
- bl ContestAICmd_get_contest_type
- ldr r0, _081292D4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081292D8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081292DC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081292E0
- .align 2, 0
-_081292D4: .4byte gSharedMem + 0x192E4
-_081292D8: .4byte gAIScriptPtr
-_081292DC:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292E0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_21
-
- thumb_func_start ContestAICmd_get_move_excitement
-ContestAICmd_get_move_excitement: @ 81292E4
- push {r4,lr}
- ldr r2, _08129318 @ =gContestMons
- ldr r4, _0812931C @ =gSharedMem + 0x192E4
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl Contest_GetMoveExcitement
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129320 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129318: .4byte gContestMons
-_0812931C: .4byte gSharedMem + 0x192E4
-_08129320: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_excitement
-
- thumb_func_start ContestAICmd_unk_23
-ContestAICmd_unk_23: @ 8129324
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _08129354 @ =gSharedMem + 0x192E4
- ldr r3, _08129358 @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _0812935C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129360
- .align 2, 0
-_08129354: .4byte gSharedMem + 0x192E4
-_08129358: .4byte gAIScriptPtr
-_0812935C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129360:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_23
-
- thumb_func_start ContestAICmd_unk_24
-ContestAICmd_unk_24: @ 8129368
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _08129398 @ =gSharedMem + 0x192E4
- ldr r3, _0812939C @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- ble _081293A0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081293A4
- .align 2, 0
-_08129398: .4byte gSharedMem + 0x192E4
-_0812939C: .4byte gAIScriptPtr
-_081293A0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_24
-
- thumb_func_start ContestAICmd_unk_25
-ContestAICmd_unk_25: @ 81293AC
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _081293DC @ =gSharedMem + 0x192E4
- ldr r3, _081293E0 @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _081293E4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081293E8
- .align 2, 0
-_081293DC: .4byte gSharedMem + 0x192E4
-_081293E0: .4byte gAIScriptPtr
-_081293E4:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_25
-
- thumb_func_start ContestAICmd_unk_26
-ContestAICmd_unk_26: @ 81293F0
- push {r4,lr}
- bl ContestAICmd_get_move_excitement
- ldr r0, _08129420 @ =gSharedMem + 0x192E4
- ldr r3, _08129424 @ =gAIScriptPtr
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- beq _08129428
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812942C
- .align 2, 0
-_08129420: .4byte gSharedMem + 0x192E4
-_08129424: .4byte gAIScriptPtr
-_08129428:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812942C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_26
-
- thumb_func_start ContestAICmd_get_move_effect
-ContestAICmd_get_move_effect: @ 8129434
- ldr r2, _08129460 @ =gContestMons
- ldr r3, _08129464 @ =gSharedMem + 0x192E4
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r1, _08129468 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _0812946C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129460: .4byte gContestMons
-_08129464: .4byte gSharedMem + 0x192E4
-_08129468: .4byte gContestMoves
-_0812946C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_effect
-
- thumb_func_start ContestAICmd_unk_28
-ContestAICmd_unk_28: @ 8129470
- push {lr}
- bl ContestAICmd_get_move_effect
- ldr r0, _081294A0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294A4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081294A8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081294AC
- .align 2, 0
-_081294A0: .4byte gSharedMem + 0x192E4
-_081294A4: .4byte gAIScriptPtr
-_081294A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294AC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_28
-
- thumb_func_start ContestAICmd_unk_29
-ContestAICmd_unk_29: @ 81294B0
- push {lr}
- bl ContestAICmd_get_move_effect
- ldr r0, _081294E0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294E4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081294E8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081294EC
- .align 2, 0
-_081294E0: .4byte gSharedMem + 0x192E4
-_081294E4: .4byte gAIScriptPtr
-_081294E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294EC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_29
-
- thumb_func_start ContestAICmd_get_move_effect_type
-ContestAICmd_get_move_effect_type: @ 81294F0
- ldr r2, _08129524 @ =gContestMons
- ldr r3, _08129528 @ =gSharedMem + 0x192E4
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812952C @ =gContestEffects
- ldr r1, _08129530 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _08129534 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129524: .4byte gContestMons
-_08129528: .4byte gSharedMem + 0x192E4
-_0812952C: .4byte gContestEffects
-_08129530: .4byte gContestMoves
-_08129534: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_effect_type
-
- thumb_func_start ContestAICmd_unk_2B
-ContestAICmd_unk_2B: @ 8129538
- push {lr}
- bl ContestAICmd_get_move_effect_type
- ldr r0, _08129568 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812956C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129570
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129574
- .align 2, 0
-_08129568: .4byte gSharedMem + 0x192E4
-_0812956C: .4byte gAIScriptPtr
-_08129570:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129574:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_2B
-
- thumb_func_start ContestAICmd_unk_2C
-ContestAICmd_unk_2C: @ 8129578
- push {lr}
- bl ContestAICmd_get_move_effect_type
- ldr r0, _081295A8 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081295AC @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081295B0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081295B4
- .align 2, 0
-_081295A8: .4byte gSharedMem + 0x192E4
-_081295AC: .4byte gAIScriptPtr
-_081295B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081295B4:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_2C
-
- thumb_func_start ContestAICmd_check_move_has_highest_appeal
-ContestAICmd_check_move_has_highest_appeal: @ 81295B8
- push {r4-r7,lr}
- ldr r2, _08129610 @ =gContestMons
- ldr r3, _08129614 @ =gSharedMem + 0x192E4
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 6
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
- ldr r4, _08129618 @ =gContestEffects
- ldr r5, _0812961C @ =gContestMoves
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r7, [r0, 0x1]
- movs r6, 0
- ldr r0, _08129620 @ =gAIScriptPtr
- mov r12, r0
- adds r1, r2
-_081295EA:
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129600
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- cmp r7, r0
- bcc _08129608
-_08129600:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _081295EA
-_08129608:
- cmp r6, 0x4
- bne _08129624
- movs r0, 0x1
- b _08129626
- .align 2, 0
-_08129610: .4byte gContestMons
-_08129614: .4byte gSharedMem + 0x192E4
-_08129618: .4byte gContestEffects
-_0812961C: .4byte gContestMoves
-_08129620: .4byte gAIScriptPtr
-_08129624:
- movs r0, 0
-_08129626:
- strh r0, [r3, 0x18]
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_check_move_has_highest_appeal
-
- thumb_func_start ContestAICmd_unk_2E
-ContestAICmd_unk_2E: @ 8129638
- push {lr}
- bl ContestAICmd_check_move_has_highest_appeal
- ldr r0, _08129664 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812966C
- ldr r3, _08129668 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129674
- .align 2, 0
-_08129664: .4byte gSharedMem + 0x192E4
-_08129668: .4byte gAIScriptPtr
-_0812966C:
- ldr r1, _08129678 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129674:
- pop {r0}
- bx r0
- .align 2, 0
-_08129678: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_2E
-
- thumb_func_start ContestAICmd_unk_2F
-ContestAICmd_unk_2F: @ 812967C
- push {r4-r7,lr}
- ldr r2, _081296D4 @ =gContestMons
- ldr r3, _081296D8 @ =gSharedMem + 0x192E4
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 6
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
- ldr r4, _081296DC @ =gContestEffects
- ldr r5, _081296E0 @ =gContestMoves
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r7, [r0, 0x2]
- movs r6, 0
- ldr r0, _081296E4 @ =gAIScriptPtr
- mov r12, r0
- adds r1, r2
-_081296AE:
- ldrh r0, [r1]
- cmp r0, 0
- beq _081296C4
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r7, r0
- bcc _081296CC
-_081296C4:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _081296AE
-_081296CC:
- cmp r6, 0x4
- bne _081296E8
- movs r0, 0x1
- b _081296EA
- .align 2, 0
-_081296D4: .4byte gContestMons
-_081296D8: .4byte gSharedMem + 0x192E4
-_081296DC: .4byte gContestEffects
-_081296E0: .4byte gContestMoves
-_081296E4: .4byte gAIScriptPtr
-_081296E8:
- movs r0, 0
-_081296EA:
- strh r0, [r3, 0x18]
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_2F
-
- thumb_func_start ContestAICmd_unk_30
-ContestAICmd_unk_30: @ 81296FC
- push {lr}
- bl ContestAICmd_unk_2F
- ldr r0, _08129728 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129730
- ldr r3, _0812972C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129738
- .align 2, 0
-_08129728: .4byte gSharedMem + 0x192E4
-_0812972C: .4byte gAIScriptPtr
-_08129730:
- ldr r1, _0812973C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08129738:
- pop {r0}
- bx r0
- .align 2, 0
-_0812973C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_30
-
- thumb_func_start ContestAICmd_unk_31
-ContestAICmd_unk_31: @ 8129740
- push {r4,lr}
- ldr r2, _08129784 @ =gContestMons
- ldr r4, _08129788 @ =gSharedMem + 0x192E4
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812978C @ =gContestEffects
- ldr r1, _08129790 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129794 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129784: .4byte gContestMons
-_08129788: .4byte gSharedMem + 0x192E4
-_0812978C: .4byte gContestEffects
-_08129790: .4byte gContestMoves
-_08129794: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_31
-
- thumb_func_start ContestAICmd_unk_32
-ContestAICmd_unk_32: @ 8129798
- push {lr}
- bl ContestAICmd_unk_31
- ldr r0, _081297C8 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081297CC @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _081297D0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081297D4
- .align 2, 0
-_081297C8: .4byte gSharedMem + 0x192E4
-_081297CC: .4byte gAIScriptPtr
-_081297D0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081297D4:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_32
-
- thumb_func_start ContestAICmd_unk_33
-ContestAICmd_unk_33: @ 81297D8
- push {lr}
- bl ContestAICmd_unk_31
- ldr r0, _08129808 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812980C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129810
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129814
- .align 2, 0
-_08129808: .4byte gSharedMem + 0x192E4
-_0812980C: .4byte gAIScriptPtr
-_08129810:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129814:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_33
-
- thumb_func_start ContestAICmd_unk_34
-ContestAICmd_unk_34: @ 8129818
- push {lr}
- bl ContestAICmd_unk_31
- ldr r0, _08129848 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812984C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129850
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129854
- .align 2, 0
-_08129848: .4byte gSharedMem + 0x192E4
-_0812984C: .4byte gAIScriptPtr
-_08129850:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129854:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_34
-
- thumb_func_start ContestAICmd_unk_35
-ContestAICmd_unk_35: @ 8129858
- push {lr}
- bl ContestAICmd_unk_31
- ldr r0, _08129888 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812988C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129890
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129894
- .align 2, 0
-_08129888: .4byte gSharedMem + 0x192E4
-_0812988C: .4byte gAIScriptPtr
-_08129890:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129894:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_35
-
- thumb_func_start ContestAICmd_unk_36
-ContestAICmd_unk_36: @ 8129898
- push {r4,lr}
- ldr r2, _081298DC @ =gContestMons
- ldr r4, _081298E0 @ =gSharedMem + 0x192E4
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _081298E4 @ =gContestEffects
- ldr r1, _081298E8 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _081298EC @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081298DC: .4byte gContestMons
-_081298E0: .4byte gSharedMem + 0x192E4
-_081298E4: .4byte gContestEffects
-_081298E8: .4byte gContestMoves
-_081298EC: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_36
-
- thumb_func_start ContestAICmd_unk_37
-ContestAICmd_unk_37: @ 81298F0
- push {lr}
- bl ContestAICmd_unk_36
- ldr r0, _08129920 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129924 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129928
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812992C
- .align 2, 0
-_08129920: .4byte gSharedMem + 0x192E4
-_08129924: .4byte gAIScriptPtr
-_08129928:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812992C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_37
-
- thumb_func_start ContestAICmd_unk_38
-ContestAICmd_unk_38: @ 8129930
- push {lr}
- bl ContestAICmd_unk_36
- ldr r0, _08129960 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129964 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129968
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812996C
- .align 2, 0
-_08129960: .4byte gSharedMem + 0x192E4
-_08129964: .4byte gAIScriptPtr
-_08129968:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812996C:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_38
-
- thumb_func_start ContestAICmd_unk_39
-ContestAICmd_unk_39: @ 8129970
- push {lr}
- bl ContestAICmd_unk_36
- ldr r0, _081299A0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081299A4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081299A8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081299AC
- .align 2, 0
-_081299A0: .4byte gSharedMem + 0x192E4
-_081299A4: .4byte gAIScriptPtr
-_081299A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081299AC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_39
-
- thumb_func_start ContestAICmd_unk_3A
-ContestAICmd_unk_3A: @ 81299B0
- push {lr}
- bl ContestAICmd_unk_36
- ldr r0, _081299E0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081299E4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081299E8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081299EC
- .align 2, 0
-_081299E0: .4byte gSharedMem + 0x192E4
-_081299E4: .4byte gAIScriptPtr
-_081299E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081299EC:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_3A
-
- thumb_func_start ContestAICmd_get_move_used_count
-ContestAICmd_get_move_used_count: @ 81299F0
- push {r4,lr}
- ldr r3, _08129A20 @ =gContestMons
- ldr r4, _08129A24 @ =gSharedMem + 0x192E4
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r1, [r0, 0x8]
- cmp r3, r1
- beq _08129A28
- movs r0, 0
- b _08129A30
- .align 2, 0
-_08129A20: .4byte gContestMons
-_08129A24: .4byte gSharedMem + 0x192E4
-_08129A28:
- ldrb r0, [r0, 0xB]
- lsls r0, 25
- lsrs r0, 29
- adds r0, 0x1
-_08129A30:
- strh r0, [r4, 0x18]
- ldr r1, _08129A40 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129A40: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_get_move_used_count
-
- thumb_func_start ContestAICmd_unk_3C
-ContestAICmd_unk_3C: @ 8129A44
- push {lr}
- bl ContestAICmd_get_move_used_count
- ldr r0, _08129A74 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129A78 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129A7C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129A80
- .align 2, 0
-_08129A74: .4byte gSharedMem + 0x192E4
-_08129A78: .4byte gAIScriptPtr
-_08129A7C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129A80:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_3C
-
- thumb_func_start ContestAICmd_unk_3D
-ContestAICmd_unk_3D: @ 8129A84
- push {lr}
- bl ContestAICmd_get_move_used_count
- ldr r0, _08129AB4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129AB8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129ABC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129AC0
- .align 2, 0
-_08129AB4: .4byte gSharedMem + 0x192E4
-_08129AB8: .4byte gAIScriptPtr
-_08129ABC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129AC0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_3D
-
- thumb_func_start ContestAICmd_unk_3E
-ContestAICmd_unk_3E: @ 8129AC4
- push {lr}
- bl ContestAICmd_get_move_used_count
- ldr r0, _08129AF4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129AF8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129AFC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129B00
- .align 2, 0
-_08129AF4: .4byte gSharedMem + 0x192E4
-_08129AF8: .4byte gAIScriptPtr
-_08129AFC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129B00:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_3E
-
- thumb_func_start ContestAICmd_unk_3F
-ContestAICmd_unk_3F: @ 8129B04
- push {lr}
- bl ContestAICmd_get_move_used_count
- ldr r0, _08129B34 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129B38 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129B3C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129B40
- .align 2, 0
-_08129B34: .4byte gSharedMem + 0x192E4
-_08129B38: .4byte gAIScriptPtr
-_08129B3C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129B40:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_3F
-
- thumb_func_start ContestAICmd_check_combo_starter
-ContestAICmd_check_combo_starter: @ 8129B44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129BAC @ =gContestMons
- ldr r2, _08129BB0 @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129B68:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129B8A
- adds r1, r0, 0
- adds r0, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129B94
-_08129B8A:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129B68
- cmp r5, 0
- beq _08129B96
-_08129B94:
- movs r5, 0x1
-_08129B96:
- ldr r0, _08129BB0 @ =gSharedMem + 0x192E4
- strh r5, [r0, 0x18]
- ldr r1, _08129BB4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BAC: .4byte gContestMons
-_08129BB0: .4byte gSharedMem + 0x192E4
-_08129BB4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_combo_starter
-
- thumb_func_start ContestAICmd_unk_41
-ContestAICmd_unk_41: @ 8129BB8
- push {lr}
- bl ContestAICmd_check_combo_starter
- ldr r0, _08129BE4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129BEC
- ldr r3, _08129BE8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129BF4
- .align 2, 0
-_08129BE4: .4byte gSharedMem + 0x192E4
-_08129BE8: .4byte gAIScriptPtr
-_08129BEC:
- ldr r1, _08129BF8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129BF4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129BF8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_41
-
- thumb_func_start ContestAICmd_unk_42
-ContestAICmd_unk_42: @ 8129BFC
- push {lr}
- bl ContestAICmd_check_combo_starter
- ldr r0, _08129C28 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129C30
- ldr r3, _08129C2C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129C38
- .align 2, 0
-_08129C28: .4byte gSharedMem + 0x192E4
-_08129C2C: .4byte gAIScriptPtr
-_08129C30:
- ldr r1, _08129C3C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129C38:
- pop {r0}
- bx r0
- .align 2, 0
-_08129C3C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_42
-
- thumb_func_start ContestAICmd_check_combo_finisher
-ContestAICmd_check_combo_finisher: @ 8129C40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129CA8 @ =gContestMons
- ldr r2, _08129CAC @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129C64:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129C84
- adds r1, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129C8E
-_08129C84:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129C64
- cmp r5, 0
- beq _08129C90
-_08129C8E:
- movs r5, 0x1
-_08129C90:
- ldr r0, _08129CAC @ =gSharedMem + 0x192E4
- strh r5, [r0, 0x18]
- ldr r1, _08129CB0 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129CA8: .4byte gContestMons
-_08129CAC: .4byte gSharedMem + 0x192E4
-_08129CB0: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_combo_finisher
-
- thumb_func_start ContestAICmd_unk_44
-ContestAICmd_unk_44: @ 8129CB4
- push {lr}
- bl ContestAICmd_check_combo_finisher
- ldr r0, _08129CE0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129CE8
- ldr r3, _08129CE4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129CF0
- .align 2, 0
-_08129CE0: .4byte gSharedMem + 0x192E4
-_08129CE4: .4byte gAIScriptPtr
-_08129CE8:
- ldr r1, _08129CF4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129CF0:
- pop {r0}
- bx r0
- .align 2, 0
-_08129CF4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_44
-
- thumb_func_start ContestAICmd_unk_45
-ContestAICmd_unk_45: @ 8129CF8
- push {lr}
- bl ContestAICmd_check_combo_finisher
- ldr r0, _08129D24 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129D2C
- ldr r3, _08129D28 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129D34
- .align 2, 0
-_08129D24: .4byte gSharedMem + 0x192E4
-_08129D28: .4byte gAIScriptPtr
-_08129D2C:
- ldr r1, _08129D38 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129D34:
- pop {r0}
- bx r0
- .align 2, 0
-_08129D38: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_45
-
- thumb_func_start ContestAICmd_check_would_finish_combo
-ContestAICmd_check_would_finish_combo: @ 8129D3C
- push {r4,r5,lr}
- movs r5, 0
- ldr r3, _08129D8C @ =gContestMons
- ldr r4, _08129D90 @ =gSharedMem + 0x192E4
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- beq _08129D74
- adds r1, r3, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
-_08129D74:
- cmp r5, 0
- beq _08129D7A
- movs r5, 0x1
-_08129D7A:
- strh r5, [r4, 0x18]
- ldr r1, _08129D94 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129D8C: .4byte gContestMons
-_08129D90: .4byte gSharedMem + 0x192E4
-_08129D94: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_would_finish_combo
-
- thumb_func_start ContestAICmd_unk_47
-ContestAICmd_unk_47: @ 8129D98
- push {lr}
- bl ContestAICmd_check_would_finish_combo
- ldr r0, _08129DC4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129DCC
- ldr r3, _08129DC8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129DD4
- .align 2, 0
-_08129DC4: .4byte gSharedMem + 0x192E4
-_08129DC8: .4byte gAIScriptPtr
-_08129DCC:
- ldr r1, _08129DD8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129DD4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129DD8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_47
-
- thumb_func_start ContestAICmd_unk_48
-ContestAICmd_unk_48: @ 8129DDC
- push {lr}
- bl ContestAICmd_check_would_finish_combo
- ldr r0, _08129E08 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129E10
- ldr r3, _08129E0C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129E18
- .align 2, 0
-_08129E08: .4byte gSharedMem + 0x192E4
-_08129E0C: .4byte gAIScriptPtr
-_08129E10:
- ldr r1, _08129E1C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129E18:
- pop {r0}
- bx r0
- .align 2, 0
-_08129E1C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_48
-
- thumb_func_start ContestAICmd_get_condition
-ContestAICmd_get_condition: @ 8129E20
- push {r4,r5,lr}
- ldr r4, _08129E5C @ =gAIScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08129E60 @ =gSharedMem + 0x192E4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r5, 0
- subs r0, 0x84
- adds r1, r0
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129E5C: .4byte gAIScriptPtr
-_08129E60: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_get_condition
-
- thumb_func_start ContestAICmd_unk_4A
-ContestAICmd_unk_4A: @ 8129E64
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129E94 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129E98 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129E9C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129EA0
- .align 2, 0
-_08129E94: .4byte gSharedMem + 0x192E4
-_08129E98: .4byte gAIScriptPtr
-_08129E9C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EA0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4A
-
- thumb_func_start ContestAICmd_unk_4B
-ContestAICmd_unk_4B: @ 8129EA4
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129ED4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129ED8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129EDC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129EE0
- .align 2, 0
-_08129ED4: .4byte gSharedMem + 0x192E4
-_08129ED8: .4byte gAIScriptPtr
-_08129EDC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EE0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4B
-
- thumb_func_start ContestAICmd_unk_4C
-ContestAICmd_unk_4C: @ 8129EE4
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129F14 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F18 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129F1C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129F20
- .align 2, 0
-_08129F14: .4byte gSharedMem + 0x192E4
-_08129F18: .4byte gAIScriptPtr
-_08129F1C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F20:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4C
-
- thumb_func_start ContestAICmd_unk_4D
-ContestAICmd_unk_4D: @ 8129F24
- push {lr}
- bl ContestAICmd_get_condition
- ldr r0, _08129F54 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F58 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129F5C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129F60
- .align 2, 0
-_08129F54: .4byte gSharedMem + 0x192E4
-_08129F58: .4byte gAIScriptPtr
-_08129F5C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F60:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4D
-
- thumb_func_start ContestAICmd_get_used_combo_starter
-ContestAICmd_get_used_combo_starter: @ 8129F64
- push {r4-r6,lr}
- movs r6, 0
- ldr r5, _08129FAC @ =gAIScriptPtr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _08129F9C
- ldr r2, _08129FB0 @ =gContestMoves
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08129FB4 @ =gSharedMem + 0x19260
- adds r0, r1
- ldrh r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
-_08129F9C:
- ldr r0, _08129FB8 @ =gSharedMem + 0x192E4
- strh r6, [r0, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08129FAC: .4byte gAIScriptPtr
-_08129FB0: .4byte gContestMoves
-_08129FB4: .4byte gSharedMem + 0x19260
-_08129FB8: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_get_used_combo_starter
-
- thumb_func_start ContestAICmd_unk_4F
-ContestAICmd_unk_4F: @ 8129FBC
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _08129FEC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129FF0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129FF4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129FF8
- .align 2, 0
-_08129FEC: .4byte gSharedMem + 0x192E4
-_08129FF0: .4byte gAIScriptPtr
-_08129FF4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129FF8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_4F
-
- thumb_func_start ContestAICmd_unk_50
-ContestAICmd_unk_50: @ 8129FFC
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A02C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A030 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A034
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A038
- .align 2, 0
-_0812A02C: .4byte gSharedMem + 0x192E4
-_0812A030: .4byte gAIScriptPtr
-_0812A034:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A038:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_50
-
- thumb_func_start ContestAICmd_unk_51
-ContestAICmd_unk_51: @ 812A03C
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A06C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A070 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A074
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A078
- .align 2, 0
-_0812A06C: .4byte gSharedMem + 0x192E4
-_0812A070: .4byte gAIScriptPtr
-_0812A074:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A078:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_51
-
- thumb_func_start ContestAICmd_unk_52
-ContestAICmd_unk_52: @ 812A07C
- push {lr}
- bl ContestAICmd_get_used_combo_starter
- ldr r0, _0812A0AC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A0B0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A0B4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A0B8
- .align 2, 0
-_0812A0AC: .4byte gSharedMem + 0x192E4
-_0812A0B0: .4byte gAIScriptPtr
-_0812A0B4:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A0B8:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_52
-
- thumb_func_start ContestAICmd_check_can_participate
-ContestAICmd_check_can_participate: @ 812A0BC
- push {lr}
- ldr r0, _0812A0DC @ =gAIScriptPtr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- bl Contest_IsMonsTurnDisabled
- lsls r0, 24
- cmp r0, 0
- beq _0812A0E4
- ldr r1, _0812A0E0 @ =gSharedMem + 0x192E4
- movs r0, 0
- b _0812A0E8
- .align 2, 0
-_0812A0DC: .4byte gAIScriptPtr
-_0812A0E0: .4byte gSharedMem + 0x192E4
-_0812A0E4:
- ldr r1, _0812A0F8 @ =gSharedMem + 0x192E4
- movs r0, 0x1
-_0812A0E8:
- strh r0, [r1, 0x18]
- ldr r1, _0812A0FC @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0812A0F8: .4byte gSharedMem + 0x192E4
-_0812A0FC: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_can_participate
-
- thumb_func_start ContestAICmd_unk_54
-ContestAICmd_unk_54: @ 812A100
- push {lr}
- bl ContestAICmd_check_can_participate
- ldr r0, _0812A12C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A134
- ldr r3, _0812A130 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A13C
- .align 2, 0
-_0812A12C: .4byte gSharedMem + 0x192E4
-_0812A130: .4byte gAIScriptPtr
-_0812A134:
- ldr r1, _0812A140 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A13C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A140: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_54
-
- thumb_func_start ContestAICmd_unk_55
-ContestAICmd_unk_55: @ 812A144
- push {lr}
- bl ContestAICmd_check_can_participate
- ldr r0, _0812A170 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A178
- ldr r3, _0812A174 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A180
- .align 2, 0
-_0812A170: .4byte gSharedMem + 0x192E4
-_0812A174: .4byte gAIScriptPtr
-_0812A178:
- ldr r1, _0812A184 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A180:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A184: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_55
-
- thumb_func_start ContestAICmd_get_val_812A188
-ContestAICmd_get_val_812A188: @ 812A188
- push {r4,lr}
- ldr r4, _0812A1BC @ =gAIScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812A1C0 @ =gSharedMem + 0x192E4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0
- subs r0, 0x84
- adds r1, r0
- ldrb r0, [r1, 0x15]
- lsls r0, 28
- lsrs r0, 31
- strh r0, [r2, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A1BC: .4byte gAIScriptPtr
-_0812A1C0: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_get_val_812A188
-
- thumb_func_start ContestAICmd_unk_57
-ContestAICmd_unk_57: @ 812A1C4
- push {lr}
- bl ContestAICmd_get_val_812A188
- ldr r0, _0812A1F0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A1F8
- ldr r3, _0812A1F4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A200
- .align 2, 0
-_0812A1F0: .4byte gSharedMem + 0x192E4
-_0812A1F4: .4byte gAIScriptPtr
-_0812A1F8:
- ldr r1, _0812A204 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A200:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A204: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_57
-
- thumb_func_start ContestAICmd_unk_58
-ContestAICmd_unk_58: @ 812A208
- push {lr}
- bl ContestAICmd_get_val_812A188
- ldr r0, _0812A234 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A23C
- ldr r3, _0812A238 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A244
- .align 2, 0
-_0812A234: .4byte gSharedMem + 0x192E4
-_0812A238: .4byte gAIScriptPtr
-_0812A23C:
- ldr r1, _0812A248 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A244:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A248: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_58
-
- thumb_func_start ContestAICmd_unk_59
-ContestAICmd_unk_59: @ 812A24C
- push {r4,r5,lr}
- ldr r5, _0812A28C @ =gAIScriptPtr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0812A290 @ =gSharedMem + 0x192E4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, r3, 0
- subs r4, 0x84
- adds r1, r4
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r2, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r3, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A28C: .4byte gAIScriptPtr
-_0812A290: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_unk_59
-
- thumb_func_start ContestAICmd_unk_5A
-ContestAICmd_unk_5A: @ 812A294
- push {lr}
- bl ContestAICmd_unk_59
- ldr r0, _0812A2C0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0812A2C8
- ldr r3, _0812A2C4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A2D0
- .align 2, 0
-_0812A2C0: .4byte gSharedMem + 0x192E4
-_0812A2C4: .4byte gAIScriptPtr
-_0812A2C8:
- ldr r1, _0812A2D4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A2D0:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A2D4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_5A
-
- thumb_func_start ContestAICmd_unk_5B
-ContestAICmd_unk_5B: @ 812A2D8
- push {lr}
- bl ContestAICmd_unk_59
- ldr r0, _0812A304 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _0812A30C
- ldr r3, _0812A308 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A314
- .align 2, 0
-_0812A304: .4byte gSharedMem + 0x192E4
-_0812A308: .4byte gAIScriptPtr
-_0812A30C:
- ldr r1, _0812A318 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A314:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A318: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_5B
-
- thumb_func_start ContestAICmd_unk_5C
-ContestAICmd_unk_5C: @ 812A31C
- push {lr}
- bl ContestAICmd_unk_59
- ldr r0, _0812A348 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A350
- ldr r3, _0812A34C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A358
- .align 2, 0
-_0812A348: .4byte gSharedMem + 0x192E4
-_0812A34C: .4byte gAIScriptPtr
-_0812A350:
- ldr r1, _0812A35C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A358:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A35C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_5C
-
- thumb_func_start ContestAICmd_unk_5D
-ContestAICmd_unk_5D: @ 812A360
- push {lr}
- bl ContestAICmd_unk_59
- ldr r0, _0812A38C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A394
- ldr r3, _0812A390 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A39C
- .align 2, 0
-_0812A38C: .4byte gSharedMem + 0x192E4
-_0812A390: .4byte gAIScriptPtr
-_0812A394:
- ldr r1, _0812A3A0 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A39C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A3A0: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_5D
-
- thumb_func_start ContestAICmd_unk_5E
-ContestAICmd_unk_5E: @ 812A3A4
- push {r4,lr}
- ldr r4, _0812A3D8 @ =gAIScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, _0812A3DC @ =gSharedMem + 0x192E4
- ldr r2, _0812A3E0 @ =gUnknown_02038670
- lsrs r0, 23
- adds r0, r2
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r3, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A3D8: .4byte gAIScriptPtr
-_0812A3DC: .4byte gSharedMem + 0x192E4
-_0812A3E0: .4byte gUnknown_02038670
- thumb_func_end ContestAICmd_unk_5E
-
- thumb_func_start ContestAICmd_unk_5F
-ContestAICmd_unk_5F: @ 812A3E4
- push {lr}
- bl ContestAICmd_unk_5E
- ldr r0, _0812A410 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0812A418
- ldr r3, _0812A414 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A420
- .align 2, 0
-_0812A410: .4byte gSharedMem + 0x192E4
-_0812A414: .4byte gAIScriptPtr
-_0812A418:
- ldr r1, _0812A424 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A420:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A424: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_5F
-
- thumb_func_start ContestAICmd_unk_60
-ContestAICmd_unk_60: @ 812A428
- push {lr}
- bl ContestAICmd_unk_5E
- ldr r0, _0812A454 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _0812A45C
- ldr r3, _0812A458 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A464
- .align 2, 0
-_0812A454: .4byte gSharedMem + 0x192E4
-_0812A458: .4byte gAIScriptPtr
-_0812A45C:
- ldr r1, _0812A468 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A464:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A468: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_60
-
- thumb_func_start ContestAICmd_unk_61
-ContestAICmd_unk_61: @ 812A46C
- push {lr}
- bl ContestAICmd_unk_5E
- ldr r0, _0812A498 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A4A0
- ldr r3, _0812A49C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A4A8
- .align 2, 0
-_0812A498: .4byte gSharedMem + 0x192E4
-_0812A49C: .4byte gAIScriptPtr
-_0812A4A0:
- ldr r1, _0812A4AC @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A4A8:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4AC: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_61
-
- thumb_func_start ContestAICmd_unk_62
-ContestAICmd_unk_62: @ 812A4B0
- push {lr}
- bl ContestAICmd_unk_5E
- ldr r0, _0812A4DC @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A4E4
- ldr r3, _0812A4E0 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A4EC
- .align 2, 0
-_0812A4DC: .4byte gSharedMem + 0x192E4
-_0812A4E0: .4byte gAIScriptPtr
-_0812A4E4:
- ldr r1, _0812A4F0 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A4EC:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4F0: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_62
-
- thumb_func_start ContestAICmd_unk_63
-ContestAICmd_unk_63: @ 812A4F4
- push {r4,lr}
- ldr r4, _0812A52C @ =gAIScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A530 @ =gSharedMem + 0x19204
- lsrs r0, 23
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldrh r0, [r0]
- adds r2, 0xE0
- ldr r1, _0812A534 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A52C: .4byte gAIScriptPtr
-_0812A530: .4byte gSharedMem + 0x19204
-_0812A534: .4byte gContestMoves
- thumb_func_end ContestAICmd_unk_63
-
- thumb_func_start ContestAICmd_unk_64
-ContestAICmd_unk_64: @ 812A538
- push {lr}
- bl ContestAICmd_unk_63
- ldr r0, _0812A568 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A56C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _0812A570
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A574
- .align 2, 0
-_0812A568: .4byte gSharedMem + 0x192E4
-_0812A56C: .4byte gAIScriptPtr
-_0812A570:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A574:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_64
-
- thumb_func_start ContestAICmd_unk_65
-ContestAICmd_unk_65: @ 812A578
- push {lr}
- bl ContestAICmd_unk_63
- ldr r0, _0812A5A8 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A5AC @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A5B0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A5B4
- .align 2, 0
-_0812A5A8: .4byte gSharedMem + 0x192E4
-_0812A5AC: .4byte gAIScriptPtr
-_0812A5B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A5B4:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_65
-
- thumb_func_start ContestAICmd_unk_66
-ContestAICmd_unk_66: @ 812A5B8
- push {lr}
- bl ContestAICmd_unk_63
- ldr r0, _0812A5E8 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A5EC @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A5F0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A5F4
- .align 2, 0
-_0812A5E8: .4byte gSharedMem + 0x192E4
-_0812A5EC: .4byte gAIScriptPtr
-_0812A5F0:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A5F4:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_66
-
- thumb_func_start ContestAICmd_unk_67
-ContestAICmd_unk_67: @ 812A5F8
- push {lr}
- bl ContestAICmd_unk_63
- ldr r0, _0812A628 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A62C @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A630
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A634
- .align 2, 0
-_0812A628: .4byte gSharedMem + 0x192E4
-_0812A62C: .4byte gAIScriptPtr
-_0812A630:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A634:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_67
-
- thumb_func_start ContestAICmd_unk_68
-ContestAICmd_unk_68: @ 812A638
- push {r4,lr}
- ldr r4, _0812A66C @ =gAIScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A670 @ =gSharedMem + 0x19204
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x44
- adds r0, r1
- adds r2, 0xE0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A66C: .4byte gAIScriptPtr
-_0812A670: .4byte gSharedMem + 0x19204
- thumb_func_end ContestAICmd_unk_68
-
- thumb_func_start ContestAICmd_unk_69
-ContestAICmd_unk_69: @ 812A674
- push {lr}
- bl ContestAICmd_unk_68
- ldr r0, _0812A6A4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A6A8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _0812A6AC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A6B0
- .align 2, 0
-_0812A6A4: .4byte gSharedMem + 0x192E4
-_0812A6A8: .4byte gAIScriptPtr
-_0812A6AC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A6B0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_69
-
- thumb_func_start ContestAICmd_unk_6A
-ContestAICmd_unk_6A: @ 812A6B4
- push {lr}
- bl ContestAICmd_unk_68
- ldr r0, _0812A6E4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A6E8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A6EC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A6F0
- .align 2, 0
-_0812A6E4: .4byte gSharedMem + 0x192E4
-_0812A6E8: .4byte gAIScriptPtr
-_0812A6EC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A6F0:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_6A
-
- thumb_func_start ContestAICmd_unk_6B
-ContestAICmd_unk_6B: @ 812A6F4
- push {lr}
- bl ContestAICmd_unk_68
- ldr r0, _0812A724 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A728 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A72C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A730
- .align 2, 0
-_0812A724: .4byte gSharedMem + 0x192E4
-_0812A728: .4byte gAIScriptPtr
-_0812A72C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A730:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_6B
-
- thumb_func_start ContestAICmd_unk_6C
-ContestAICmd_unk_6C: @ 812A734
- push {lr}
- bl ContestAICmd_unk_68
- ldr r0, _0812A764 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A768 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A76C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A770
- .align 2, 0
-_0812A764: .4byte gSharedMem + 0x192E4
-_0812A768: .4byte gAIScriptPtr
-_0812A76C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A770:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_6C
-
- thumb_func_start ContestAICmd_unk_6D
-ContestAICmd_unk_6D: @ 812A774
- push {r4,r5,lr}
- ldr r5, _0812A7B4 @ =gAIScriptPtr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A7B8 @ =gSharedMem + 0x19204
- lsrs r0, 23
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldrh r0, [r0]
- adds r2, 0xE0
- ldr r4, _0812A7BC @ =gContestEffects
- ldr r1, _0812A7C0 @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A7B4: .4byte gAIScriptPtr
-_0812A7B8: .4byte gSharedMem + 0x19204
-_0812A7BC: .4byte gContestEffects
-_0812A7C0: .4byte gContestMoves
- thumb_func_end ContestAICmd_unk_6D
-
- thumb_func_start ContestAICmd_unk_6E
-ContestAICmd_unk_6E: @ 812A7C4
- push {lr}
- bl ContestAICmd_unk_6D
- ldr r0, _0812A7F4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A7F8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A7FC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A800
- .align 2, 0
-_0812A7F4: .4byte gSharedMem + 0x192E4
-_0812A7F8: .4byte gAIScriptPtr
-_0812A7FC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A800:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_6E
-
- thumb_func_start ContestAICmd_unk_6F
-ContestAICmd_unk_6F: @ 812A804
- push {lr}
- bl ContestAICmd_unk_6D
- ldr r0, _0812A834 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A838 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A83C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A840
- .align 2, 0
-_0812A834: .4byte gSharedMem + 0x192E4
-_0812A838: .4byte gAIScriptPtr
-_0812A83C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A840:
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_6F
-
- thumb_func_start ContestAICmd_unk_70
-ContestAICmd_unk_70: @ 812A844
- push {r4,lr}
- ldr r3, _0812A864 @ =gSharedMem + 0x192E4
- ldr r4, _0812A868 @ =gAIScriptPtr
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x1A
- adds r0, r1
- ldrh r1, [r3, 0x18]
- strh r1, [r0]
- adds r2, 0x2
- str r2, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A864: .4byte gSharedMem + 0x192E4
-_0812A868: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_70
-
- thumb_func_start ContestAICmd_unk_71
-ContestAICmd_unk_71: @ 812A86C
- push {r4,lr}
- ldr r0, _0812A890 @ =gSharedMem + 0x192E4
- ldr r4, _0812A894 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- lsls r2, 1
- adds r0, 0x1A
- adds r2, r0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- adds r3, 0x4
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A890: .4byte gSharedMem + 0x192E4
-_0812A894: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_71
-
- thumb_func_start ContestAICmd_unk_72
-ContestAICmd_unk_72: @ 812A898
- push {r4,lr}
- ldr r0, _0812A8C4 @ =gSharedMem + 0x192E4
- ldr r4, _0812A8C8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- lsls r2, 1
- adds r0, 0x1A
- adds r2, r0
- movs r1, 0x2
- ldrsb r1, [r3, r1]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- adds r1, r0
- strh r1, [r2]
- adds r3, 0x4
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A8C4: .4byte gSharedMem + 0x192E4
-_0812A8C8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_72
-
- thumb_func_start ContestAICmd_unk_73
-ContestAICmd_unk_73: @ 812A8CC
- push {r4,lr}
- ldr r2, _0812A8F4 @ =gSharedMem + 0x192E4
- ldr r4, _0812A8F8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A8F4: .4byte gSharedMem + 0x192E4
-_0812A8F8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_73
-
- thumb_func_start ContestAICmd_unk_74
-ContestAICmd_unk_74: @ 812A8FC
- push {r4,lr}
- ldr r2, _0812A924 @ =gSharedMem + 0x192E4
- ldr r4, _0812A928 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A924: .4byte gSharedMem + 0x192E4
-_0812A928: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_74
-
- thumb_func_start ContestAICmd_unk_75
-ContestAICmd_unk_75: @ 812A92C
- push {r4,lr}
- ldr r1, _0812A964 @ =gSharedMem + 0x192E4
- ldr r4, _0812A968 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- bge _0812A96C
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812A972
- .align 2, 0
-_0812A964: .4byte gSharedMem + 0x192E4
-_0812A968: .4byte gAIScriptPtr
-_0812A96C:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812A972:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_75
-
- thumb_func_start ContestAICmd_unk_76
-ContestAICmd_unk_76: @ 812A978
- push {r4,lr}
- ldr r1, _0812A9B0 @ =gSharedMem + 0x192E4
- ldr r4, _0812A9B4 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- ble _0812A9B8
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812A9BE
- .align 2, 0
-_0812A9B0: .4byte gSharedMem + 0x192E4
-_0812A9B4: .4byte gAIScriptPtr
-_0812A9B8:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812A9BE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_76
-
- thumb_func_start ContestAICmd_unk_77
-ContestAICmd_unk_77: @ 812A9C4
- push {r4,lr}
- ldr r1, _0812A9FC @ =gSharedMem + 0x192E4
- ldr r4, _0812AA00 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- bne _0812AA04
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AA0A
- .align 2, 0
-_0812A9FC: .4byte gSharedMem + 0x192E4
-_0812AA00: .4byte gAIScriptPtr
-_0812AA04:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812AA0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_77
-
- thumb_func_start ContestAICmd_unk_78
-ContestAICmd_unk_78: @ 812AA10
- push {r4,lr}
- ldr r1, _0812AA48 @ =gSharedMem + 0x192E4
- ldr r4, _0812AA4C @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- beq _0812AA50
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AA56
- .align 2, 0
-_0812AA48: .4byte gSharedMem + 0x192E4
-_0812AA4C: .4byte gAIScriptPtr
-_0812AA50:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812AA56:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_78
-
- thumb_func_start ContestAICmd_unk_79
-ContestAICmd_unk_79: @ 812AA5C
- push {r4,lr}
- ldr r2, _0812AA98 @ =gSharedMem + 0x192E4
- ldr r4, _0812AA9C @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bge _0812AAA0
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AAA4
- .align 2, 0
-_0812AA98: .4byte gSharedMem + 0x192E4
-_0812AA9C: .4byte gAIScriptPtr
-_0812AAA0:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AAA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_79
-
- thumb_func_start ContestAICmd_unk_7A
-ContestAICmd_unk_7A: @ 812AAAC
- push {r4,lr}
- ldr r2, _0812AAE8 @ =gSharedMem + 0x192E4
- ldr r4, _0812AAEC @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- ble _0812AAF0
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AAF4
- .align 2, 0
-_0812AAE8: .4byte gSharedMem + 0x192E4
-_0812AAEC: .4byte gAIScriptPtr
-_0812AAF0:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AAF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_7A
-
- thumb_func_start ContestAICmd_unk_7B
-ContestAICmd_unk_7B: @ 812AAFC
- push {r4,lr}
- ldr r2, _0812AB38 @ =gSharedMem + 0x192E4
- ldr r4, _0812AB3C @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _0812AB40
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AB44
- .align 2, 0
-_0812AB38: .4byte gSharedMem + 0x192E4
-_0812AB3C: .4byte gAIScriptPtr
-_0812AB40:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AB44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_7B
-
- thumb_func_start ContestAICmd_unk_7C
-ContestAICmd_unk_7C: @ 812AB4C
- push {r4,lr}
- ldr r2, _0812AB88 @ =gSharedMem + 0x192E4
- ldr r4, _0812AB8C @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- beq _0812AB90
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AB94
- .align 2, 0
-_0812AB88: .4byte gSharedMem + 0x192E4
-_0812AB8C: .4byte gAIScriptPtr
-_0812AB90:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AB94:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_7C
-
- thumb_func_start ContestAICmd_unk_7D
-ContestAICmd_unk_7D: @ 812AB9C
- push {r4,lr}
- bl Random
- movs r2, 0xFF
- ands r2, r0
- ldr r1, _0812ABD4 @ =gSharedMem + 0x192E4
- ldr r4, _0812ABD8 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- bge _0812ABDC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812ABE0
- .align 2, 0
-_0812ABD4: .4byte gSharedMem + 0x192E4
-_0812ABD8: .4byte gAIScriptPtr
-_0812ABDC:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812ABE0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_7D
-
- thumb_func_start ContestAICmd_unk_7E
-ContestAICmd_unk_7E: @ 812ABE8
- push {r4,lr}
- bl Random
- movs r2, 0xFF
- ands r2, r0
- ldr r1, _0812AC20 @ =gSharedMem + 0x192E4
- ldr r4, _0812AC24 @ =gAIScriptPtr
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- ble _0812AC28
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AC2C
- .align 2, 0
-_0812AC20: .4byte gSharedMem + 0x192E4
-_0812AC24: .4byte gAIScriptPtr
-_0812AC28:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812AC2C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_7E
-
- thumb_func_start ContestAICmd_unk_7F
-ContestAICmd_unk_7F: @ 812AC34
- ldr r3, _0812AC50 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_0812AC50: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_7F
-
- thumb_func_start ContestAICmd_unk_80
-ContestAICmd_unk_80: @ 812AC54
- push {r4,lr}
- ldr r4, _0812AC80 @ =gAIScriptPtr
- ldr r0, [r4]
- adds r0, 0x5
- bl sub_812ACA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AC80: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_80
-
- thumb_func_start ContestAICmd_unk_81
-ContestAICmd_unk_81: @ 812AC84
- push {lr}
- bl sub_812ACC8
- lsls r0, 24
- cmp r0, 0
- bne _0812AC9A
- ldr r2, _0812ACA0 @ =gSharedMem + 0x192E4
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
-_0812AC9A:
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACA0: .4byte gSharedMem + 0x192E4
- thumb_func_end ContestAICmd_unk_81
-
- thumb_func_start sub_812ACA4
-sub_812ACA4: @ 812ACA4
- push {r4,lr}
- ldr r3, _0812ACC4 @ =gSharedMem + 0x192E4
- adds r4, r3, 0
- adds r4, 0x40
- ldrb r1, [r4]
- adds r2, r1, 0x1
- strb r2, [r4]
- lsls r1, 24
- lsrs r1, 22
- adds r3, 0x20
- adds r1, r3
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACC4: .4byte gSharedMem + 0x192E4
- thumb_func_end sub_812ACA4
-
- thumb_func_start sub_812ACC8
-sub_812ACC8: @ 812ACC8
- push {lr}
- ldr r1, _0812ACDC @ =gSharedMem + 0x192E4
- adds r3, r1, 0
- adds r3, 0x40
- ldrb r0, [r3]
- cmp r0, 0
- bne _0812ACE0
- movs r0, 0
- b _0812ACF4
- .align 2, 0
-_0812ACDC: .4byte gSharedMem + 0x192E4
-_0812ACE0:
- subs r0, 0x1
- strb r0, [r3]
- ldr r2, _0812ACF8 @ =gAIScriptPtr
- ldrb r0, [r3]
- lsls r0, 2
- adds r1, 0x20
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- movs r0, 0x1
-_0812ACF4:
- pop {r1}
- bx r1
- .align 2, 0
-_0812ACF8: .4byte gAIScriptPtr
- thumb_func_end sub_812ACC8
-
- thumb_func_start ContestAICmd_check_for_exciting_move
-ContestAICmd_check_for_exciting_move: @ 812ACFC
- push {r4-r7,lr}
- movs r5, 0
- movs r4, 0
- ldr r7, _0812AD28 @ =gSharedMem + 0x19325
- ldr r6, _0812AD2C @ =gUnknown_0203858E
-_0812AD06:
- lsls r0, r4, 1
- ldrb r1, [r7]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r6
- ldrh r0, [r1]
- cmp r0, 0
- beq _0812AD30
- bl Contest_GetMoveExcitement
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0812AD30
- movs r5, 0x1
- b _0812AD36
- .align 2, 0
-_0812AD28: .4byte gSharedMem + 0x19325
-_0812AD2C: .4byte gUnknown_0203858E
-_0812AD30:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812AD06
-_0812AD36:
- ldr r0, _0812AD48 @ =gSharedMem + 0x192E4
- strh r5, [r0, 0x18]
- ldr r1, _0812AD4C @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD48: .4byte gSharedMem + 0x192E4
-_0812AD4C: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_check_for_exciting_move
-
- thumb_func_start ContestAICmd_unk_83
-ContestAICmd_unk_83: @ 812AD50
- push {lr}
- bl ContestAICmd_check_for_exciting_move
- ldr r0, _0812AD7C @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812AD84
- ldr r3, _0812AD80 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AD8C
- .align 2, 0
-_0812AD7C: .4byte gSharedMem + 0x192E4
-_0812AD80: .4byte gAIScriptPtr
-_0812AD84:
- ldr r1, _0812AD90 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AD8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD90: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_83
-
- thumb_func_start ContestAICmd_unk_84
-ContestAICmd_unk_84: @ 812AD94
- push {lr}
- bl ContestAICmd_check_for_exciting_move
- ldr r0, _0812ADC0 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812ADC8
- ldr r3, _0812ADC4 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812ADD0
- .align 2, 0
-_0812ADC0: .4byte gSharedMem + 0x192E4
-_0812ADC4: .4byte gAIScriptPtr
-_0812ADC8:
- ldr r1, _0812ADD4 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812ADD0:
- pop {r0}
- bx r0
- .align 2, 0
-_0812ADD4: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_84
-
- thumb_func_start ContestAICmd_unk_85
-ContestAICmd_unk_85: @ 812ADD8
- push {r4-r7,lr}
- movs r6, 0
- ldr r2, _0812AE08 @ =gAIScriptPtr
- ldr r0, [r2]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r4, r0
- movs r3, 0
- ldr r0, _0812AE0C @ =gContestMons
- mov r12, r0
- ldr r5, _0812AE10 @ =gSharedMem + 0x192E4
- adds r0, r5, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- mov r1, r12
- adds r1, 0x1E
- adds r0, r1
- ldrh r0, [r0]
- adds r7, r2, 0
- mov r2, r12
- mov r12, r5
- b _0812AE2E
- .align 2, 0
-_0812AE08: .4byte gAIScriptPtr
-_0812AE0C: .4byte gContestMons
-_0812AE10: .4byte gSharedMem + 0x192E4
-_0812AE14:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0812AE34
- lsls r1, r3, 1
- mov r0, r12
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x1E
- adds r1, r0
- ldrh r0, [r1]
-_0812AE2E:
- cmp r0, r4
- bne _0812AE14
- movs r6, 0x1
-_0812AE34:
- mov r0, r12
- strh r6, [r0, 0x18]
- ldr r0, [r7]
- adds r0, 0x3
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestAICmd_unk_85
-
- thumb_func_start ContestAICmd_unk_86
-ContestAICmd_unk_86: @ 812AE44
- push {lr}
- bl ContestAICmd_unk_85
- ldr r0, _0812AE70 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812AE78
- ldr r3, _0812AE74 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AE80
- .align 2, 0
-_0812AE70: .4byte gSharedMem + 0x192E4
-_0812AE74: .4byte gAIScriptPtr
-_0812AE78:
- ldr r1, _0812AE84 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AE80:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AE84: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_86
-
- thumb_func_start ContestAICmd_unk_87
-ContestAICmd_unk_87: @ 812AE88
- push {lr}
- bl ContestAICmd_unk_85
- ldr r0, _0812AEB4 @ =gSharedMem + 0x192E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812AEBC
- ldr r3, _0812AEB8 @ =gAIScriptPtr
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AEC4
- .align 2, 0
-_0812AEB4: .4byte gSharedMem + 0x192E4
-_0812AEB8: .4byte gAIScriptPtr
-_0812AEBC:
- ldr r1, _0812AEC8 @ =gAIScriptPtr
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AEC4:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AEC8: .4byte gAIScriptPtr
- thumb_func_end ContestAICmd_unk_87
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index d06789976..341cb0903 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index 26ed8e3fe..891711bc5 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -12,12 +12,12 @@ sub_80C2020: @ 80C2020
lsls r5, 19
movs r0, 0x40
strh r0, [r5]
- ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0
+ ldr r4, _080C20F0 @ =gWindowTemplate_81E6FA0
adds r0, r4, 0
- bl SetUpWindowConfig
+ bl Text_LoadWindowTemplate
ldr r0, _080C20F4 @ =gMenuWindow
adds r1, r4, 0
- bl InitWindowFromConfig
+ bl Text_InitWindowWithTemplate
ldr r1, _080C20F8 @ =REG_BG0CNT
movs r2, 0xF8
lsls r2, 6
@@ -82,9 +82,9 @@ sub_80C2020: @ 80C2020
adds r1, r3, 0
orrs r0, r1
strh r0, [r5]
- ldr r0, _080C2114 @ =gUnknown_030042A4
+ ldr r0, _080C2114 @ =gBattle_BG0_X
strh r2, [r0]
- ldr r0, _080C2118 @ =gUnknown_030042A0
+ ldr r0, _080C2118 @ =gBattle_BG0_Y
strh r2, [r0]
ldr r0, _080C211C @ =gBattle_BG1_X
strh r2, [r0]
@@ -94,9 +94,9 @@ sub_80C2020: @ 80C2020
strh r2, [r0]
ldr r0, _080C2128 @ =gBattle_BG2_Y
strh r2, [r0]
- ldr r0, _080C212C @ =gUnknown_030041B0
+ ldr r0, _080C212C @ =gBattle_BG3_X
strh r2, [r0]
- ldr r0, _080C2130 @ =gUnknown_030041B8
+ ldr r0, _080C2130 @ =gBattle_BG3_Y
strh r2, [r0]
ldr r0, _080C2134 @ =gBattle_WIN0H
strh r2, [r0]
@@ -110,7 +110,7 @@ sub_80C2020: @ 80C2020
pop {r0}
bx r0
.align 2, 0
-_080C20F0: .4byte gWindowConfig_81E6FA0
+_080C20F0: .4byte gWindowTemplate_81E6FA0
_080C20F4: .4byte gMenuWindow
_080C20F8: .4byte REG_BG0CNT
_080C20FC: .4byte 0x00001803
@@ -119,14 +119,14 @@ _080C2104: .4byte 0x00003a03
_080C2108: .4byte REG_MOSAIC
_080C210C: .4byte 0x00003f3f
_080C2110: .4byte REG_WIN0H
-_080C2114: .4byte gUnknown_030042A4
-_080C2118: .4byte gUnknown_030042A0
+_080C2114: .4byte gBattle_BG0_X
+_080C2118: .4byte gBattle_BG0_Y
_080C211C: .4byte gBattle_BG1_X
_080C2120: .4byte gBattle_BG1_Y
_080C2124: .4byte gBattle_BG2_X
_080C2128: .4byte gBattle_BG2_Y
-_080C212C: .4byte gUnknown_030041B0
-_080C2130: .4byte gUnknown_030041B8
+_080C212C: .4byte gBattle_BG3_X
+_080C2130: .4byte gBattle_BG3_Y
_080C2134: .4byte gBattle_WIN0H
_080C2138: .4byte gBattle_WIN0V
_080C213C: .4byte gBattle_WIN1H
@@ -188,7 +188,7 @@ _080C2162:
lsls r2, 2
movs r1, 0
bl LoadCompressedPalette
- ldr r0, _080C2234 @ =gWindowConfig_81E6FA0
+ ldr r0, _080C2234 @ =gWindowTemplate_81E6FA0
bl LoadFontDefaultPalette
movs r6, 0
_080C21C0:
@@ -242,7 +242,7 @@ _080C2224: .4byte 0x0600e000
_080C2228: .4byte gUnknown_08D1A250
_080C222C: .4byte 0x0600f000
_080C2230: .4byte gUnknown_08D1A618
-_080C2234: .4byte gWindowConfig_81E6FA0
+_080C2234: .4byte gWindowTemplate_81E6FA0
_080C2238: .4byte 0x000060b2
_080C223C: .4byte 0x000060a4
_080C2240:
@@ -357,7 +357,7 @@ _080C230A:
lsrs r3, 24
str r3, [sp]
movs r3, 0x7
- bl sub_8003460
+ bl Text_InitWindowAndPrintText
add sp, 0x4
pop {r4-r7}
pop {r0}
@@ -396,7 +396,7 @@ sub_80C2358: @ 80C2358
movs r0, 0
bl SetVBlankCallback
bl sub_80C2020
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
@@ -482,11 +482,11 @@ sub_80C2430: @ 80C2430
sub_80C2448: @ 80C2448
push {lr}
ldr r1, _080C24C0 @ =REG_BG0HOFS
- ldr r0, _080C24C4 @ =gUnknown_030042A4
+ ldr r0, _080C24C4 @ =gBattle_BG0_X
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
- ldr r0, _080C24C8 @ =gUnknown_030042A0
+ ldr r0, _080C24C8 @ =gBattle_BG0_Y
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
@@ -506,11 +506,11 @@ sub_80C2448: @ 80C2448
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
- ldr r0, _080C24DC @ =gUnknown_030041B0
+ ldr r0, _080C24DC @ =gBattle_BG3_X
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
- ldr r0, _080C24E0 @ =gUnknown_030041B8
+ ldr r0, _080C24E0 @ =gBattle_BG3_Y
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x22
@@ -532,19 +532,19 @@ sub_80C2448: @ 80C2448
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_8089668
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
_080C24C0: .4byte REG_BG0HOFS
-_080C24C4: .4byte gUnknown_030042A4
-_080C24C8: .4byte gUnknown_030042A0
+_080C24C4: .4byte gBattle_BG0_X
+_080C24C8: .4byte gBattle_BG0_Y
_080C24CC: .4byte gBattle_BG1_X
_080C24D0: .4byte gBattle_BG1_Y
_080C24D4: .4byte gBattle_BG2_X
_080C24D8: .4byte gBattle_BG2_Y
-_080C24DC: .4byte gUnknown_030041B0
-_080C24E0: .4byte gUnknown_030041B8
+_080C24DC: .4byte gBattle_BG3_X
+_080C24E0: .4byte gBattle_BG3_Y
_080C24E4: .4byte gBattle_WIN0H
_080C24E8: .4byte gBattle_WIN0V
_080C24EC: .4byte gBattle_WIN1H
@@ -657,7 +657,7 @@ sub_80C25C0: @ 80C25C0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_8007ECC
+ bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _080C25EC
@@ -1202,7 +1202,7 @@ _080C29FC: .4byte gStringVar1
_080C2A00: .4byte gLinkPlayers + 0x8
_080C2A04:
lsls r4, 6
- ldr r1, _080C2A54 @ =gUnknown_0203857D
+ ldr r1, _080C2A54 @ =gContestMons + 0xD
adds r1, r4, r1
adds r0, r3, 0
bl StringCopy
@@ -1238,7 +1238,7 @@ _080C2A4A:
strh r0, [r1, 0x8]
b _080C2A80
.align 2, 0
-_080C2A54: .4byte gUnknown_0203857D
+_080C2A54: .4byte gContestMons + 0xD
_080C2A58: .4byte gStringVar2
_080C2A5C: .4byte gContestMons + 0x2
_080C2A60: .4byte gContestText_PokeWon
@@ -1826,11 +1826,11 @@ _080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_start sub_80C2F28
sub_80C2F28: @ 80C2F28
push {r4,r5,lr}
- ldr r2, _080C2F5C @ =gUnknown_030041B0
+ ldr r2, _080C2F5C @ =gBattle_BG3_X
ldrh r3, [r2]
adds r0, r3, 0x2
strh r0, [r2]
- ldr r4, _080C2F60 @ =gUnknown_030041B8
+ ldr r4, _080C2F60 @ =gBattle_BG3_Y
ldrh r5, [r4]
adds r1, r5, 0x1
strh r1, [r4]
@@ -1854,8 +1854,8 @@ _080C2F56:
pop {r0}
bx r0
.align 2, 0
-_080C2F5C: .4byte gUnknown_030041B0
-_080C2F60: .4byte gUnknown_030041B8
+_080C2F5C: .4byte gBattle_BG3_X
+_080C2F60: .4byte gBattle_BG3_Y
thumb_func_end sub_80C2F28
thumb_func_start sub_80C2F64
@@ -2170,7 +2170,7 @@ sub_80C3158: @ 80C3158
lsls r0, 22
lsrs r0, 22
strh r0, [r4, 0x6]
- ldr r1, _080C32C4 @ =gWindowConfig_81E7278
+ ldr r1, _080C32C4 @ =gWindowTemplate_81E7278
mov r8, r1
ldr r7, _080C32C8 @ =0x06010000
ldr r2, _080C32CC @ =0x040000d4
@@ -2194,7 +2194,7 @@ _080C31CE:
bge _080C31CE
mov r0, r8
mov r1, r9
- bl GetStringWidthGivenWindowConfig
+ bl Text_GetStringWidthFromWindowTemplate
lsls r0, 24
lsrs r5, r0, 24
ldr r2, _080C32D4 @ =gDisplayedStringBattle
@@ -2296,7 +2296,7 @@ _080C32B2:
b _080C3322
.align 2, 0
_080C32C0: .4byte gSprites
-_080C32C4: .4byte gWindowConfig_81E7278
+_080C32C4: .4byte gWindowTemplate_81E7278
_080C32C8: .4byte 0x06010000
_080C32CC: .4byte 0x040000d4
_080C32D0: .4byte 0x85000100
@@ -2947,6 +2947,7 @@ _080C37DC: .4byte REG_WININ
_080C37E0: .4byte 0x00003f3f
thumb_func_end sub_80C3764
+.ifdef ENGLISH
thumb_func_start sub_80C37E4
sub_80C37E4: @ 80C37E4
push {r4-r6,lr}
@@ -3156,6 +3157,276 @@ _080C3984: .4byte 0x0600e000
_080C3988: .4byte gUnknown_08E964B8
_080C398C: .4byte 0x00000fff
thumb_func_end sub_80C37E4
+.else
+ thumb_func_start de_sub_80C39A8
+de_sub_80C39A8: @ 80C39A8
+ push {r4,lr}
+ sub sp, 0x10
+ adds r1, r0, 0
+ ldr r0, _de_080C39DC @ =gIsLinkContest
+ ldrb r0, [r0]
+ movs r4, 0x1
+ ands r4, r0
+ cmp r4, 0
+ beq _de_080C39E8
+ ldr r0, _de_080C39E0 @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C39E4 @ =gUnknown_08E964B8
+ movs r2, 0xB
+ str r2, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ movs r2, 0x8
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x8
+ b _de_080C3A74
+ .align 2, 0
+_de_080C39DC: .4byte gIsLinkContest
+_de_080C39E0: .4byte 0x0600e000
+_de_080C39E4: .4byte gUnknown_08E964B8
+_de_080C39E8:
+ ldr r0, _de_080C3A08 @ =gSpecialVar_ContestRank
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _de_080C3A14
+ ldr r0, _de_080C3A0C @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A10 @ =gUnknown_08E964B8
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xB
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ b _de_080C3A6C
+ .align 2, 0
+_de_080C3A08: .4byte gSpecialVar_ContestRank
+_de_080C3A0C: .4byte 0x0600e000
+_de_080C3A10: .4byte gUnknown_08E964B8
+_de_080C3A14:
+ cmp r0, 0x1
+ bne _de_080C3A2C
+ ldr r0, _de_080C3A24 @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A28 @ =gUnknown_08E964B8
+ movs r2, 0xB
+ b _de_080C3A3A
+ .align 2, 0
+_de_080C3A24: .4byte 0x0600e000
+_de_080C3A28: .4byte gUnknown_08E964B8
+_de_080C3A2C:
+ cmp r0, 0x2
+ bne _de_080C3A58
+ ldr r0, _de_080C3A50 @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A54 @ =gUnknown_08E964B8
+ movs r2, 0x15
+_de_080C3A3A:
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xA
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0xA
+ b _de_080C3A74
+ .align 2, 0
+_de_080C3A50: .4byte 0x0600e000
+_de_080C3A54: .4byte gUnknown_08E964B8
+_de_080C3A58:
+ ldr r0, _de_080C3A7C @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A80 @ =gUnknown_08E964B8
+ str r4, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ movs r2, 0xB
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+_de_080C3A6C:
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0xB
+_de_080C3A74:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_de_080C3A7C: .4byte 0x0600e000
+_de_080C3A80: .4byte gUnknown_08E964B8
+ thumb_func_end de_sub_80C39A8
+
+ thumb_func_start de_sub_80C3A84
+de_sub_80C3A84: @ 80C3A84
+ push {r4,lr}
+ sub sp, 0x10
+ adds r2, r0, 0
+ ldr r0, _de_080C3AAC @ =gSpecialVar_ContestCategory
+ ldrh r4, [r0]
+ cmp r4, 0
+ bne _de_080C3AB8
+ str r4, [r1]
+ ldr r0, _de_080C3AB0 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3AB4 @ =gUnknown_08E964B8
+ movs r2, 0x13
+ str r2, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ movs r2, 0x7
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ b _de_080C3AD6
+ .align 2, 0
+_de_080C3AAC: .4byte gSpecialVar_ContestCategory
+_de_080C3AB0: .4byte 0x0600e000
+_de_080C3AB4: .4byte gUnknown_08E964B8
+_de_080C3AB8:
+ cmp r4, 0x1
+ bne _de_080C3AE8
+ str r4, [r1]
+ ldr r0, _de_080C3AE0 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3AE4 @ =gUnknown_08E964B8
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ movs r2, 0x7
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+_de_080C3AD6:
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x7
+ b _de_080C3B68
+ .align 2, 0
+_de_080C3AE0: .4byte 0x0600e000
+_de_080C3AE4: .4byte gUnknown_08E964B8
+_de_080C3AE8:
+ cmp r4, 0x2
+ bne _de_080C3B18
+ str r4, [r1]
+ ldr r0, _de_080C3B10 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3B14 @ =gUnknown_08E964B8
+ movs r2, 0x7
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ movs r2, 0x4
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x4
+ b _de_080C3B68
+ .align 2, 0
+_de_080C3B10: .4byte 0x0600e000
+_de_080C3B14: .4byte gUnknown_08E964B8
+_de_080C3B18:
+ cmp r4, 0x3
+ bne _de_080C3B44
+ str r4, [r1]
+ ldr r0, _de_080C3B3C @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3B40 @ =gUnknown_08E964B8
+ movs r2, 0xB
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x6
+ b _de_080C3B68
+ .align 2, 0
+_de_080C3B3C: .4byte 0x0600e000
+_de_080C3B40: .4byte gUnknown_08E964B8
+_de_080C3B44:
+ movs r0, 0x4
+ str r0, [r1]
+ ldr r0, _de_080C3B70 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3B74 @ =gUnknown_08E964B8
+ movs r2, 0x11
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ movs r2, 0x5
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x5
+_de_080C3B68:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_de_080C3B70: .4byte 0x0600e000
+_de_080C3B74: .4byte gUnknown_08E964B8
+ thumb_func_end de_sub_80C3A84
+
+ thumb_func_start sub_80C37E4
+sub_80C37E4: @ 80C37E4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0x6
+ bl de_sub_80C39A8
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x6
+ mov r1, sp
+ bl de_sub_80C3A84
+ ldr r5, _080C3824 @ =0x00000fff
+ ldr r0, [sp]
+ lsls r4, r0, 12
+ ldr r2, _080C3828 @ =0x0600e000
+ movs r3, 0x7F
+_080C3804:
+ ldrh r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3804
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3824: .4byte 0x00000fff
+_080C3828: .4byte 0x0600e000
+ thumb_func_end sub_80C37E4
+.endif
thumb_func_start sub_80C3990
sub_80C3990: @ 80C3990
@@ -4930,7 +5201,7 @@ _080C4720:
ldr r1, _080C4738 @ =gSpecialVar_0x8006
ldrh r1, [r1]
lsls r1, 6
- ldr r2, _080C473C @ =gUnknown_0203857D
+ ldr r2, _080C473C @ =gContestMons + 0xD
adds r1, r2
bl sub_80C4674
_080C4730:
@@ -4939,7 +5210,7 @@ _080C4730:
.align 2, 0
_080C4734: .4byte gStringVar1
_080C4738: .4byte gSpecialVar_0x8006
-_080C473C: .4byte gUnknown_0203857D
+_080C473C: .4byte gContestMons + 0xD
thumb_func_end sub_80C46EC
thumb_func_start sub_80C4740
@@ -5081,7 +5352,7 @@ _080C4838: .4byte gStringVar3
_080C483C: .4byte gLinkPlayers + 0x8
_080C4840:
lsls r1, r2, 6
- ldr r0, _080C4854 @ =gUnknown_0203857D
+ ldr r0, _080C4854 @ =gContestMons + 0xD
adds r1, r0
adds r0, r4, 0
bl sub_80C4674
@@ -5090,7 +5361,7 @@ _080C484C:
pop {r0}
bx r0
.align 2, 0
-_080C4854: .4byte gUnknown_0203857D
+_080C4854: .4byte gContestMons + 0xD
thumb_func_end sub_80C47F0
thumb_func_start sub_80C4858
@@ -5507,7 +5778,7 @@ sub_80C4B5C: @ 80C4B5C
ldrh r0, [r0]
cmp r0, 0x1
bne _080C4B90
- bl sub_8007ECC
+ bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _080C4B9E
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
deleted file mode 100644
index 0ff6823b5..000000000
--- a/asm/contest_link_80C857C.s
+++ /dev/null
@@ -1,1305 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C857C
-sub_80C857C: @ 80C857C
- push {r4,r5,lr}
- adds r2, r0, 0
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r5, _080C85A8 @ =gSharedMem + 0x1E000
- adds r0, r5, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl memcpy
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl SendBlock
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C85A8: .4byte gSharedMem + 0x1E000
- thumb_func_end sub_80C857C
-
- thumb_func_start sub_80C85AC
-sub_80C85AC: @ 80C85AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r0
- lsrs r4, r1, 24
- bl GetBlockReceivedStatus
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080C85D0
- adds r0, r4, 0
- bl ResetBlockReceivedFlag
- movs r0, 0x1
- b _080C85D2
-_080C85D0:
- movs r0, 0
-_080C85D2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85AC
-
- thumb_func_start sub_80C85D8
-sub_80C85D8: @ 80C85D8
- push {r4,lr}
- movs r4, 0
-_080C85DC:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C85F2
- movs r0, 0
- b _080C85FE
-_080C85F2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C85DC
- bl ResetBlockReceivedFlags
- movs r0, 0x1
-_080C85FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85D8
-
- thumb_func_start sub_80C8604
-sub_80C8604: @ 80C8604
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r5, _080C8638 @ =gTasks
- ldr r6, _080C863C @ =sub_80C8644
- ldr r4, _080C8640 @ =gBlockRecvBuffer
- movs r3, 0xFF
-_080C8614:
- lsls r0, r1, 8
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C8614
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x8]
- str r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8638: .4byte gTasks
-_080C863C: .4byte sub_80C8644
-_080C8640: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8604
-
- thumb_func_start sub_80C8644
-sub_80C8644: @ 80C8644
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C8658 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C865C @ =sub_80C8660
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C8658: .4byte gTasks
-_080C865C: .4byte sub_80C8660
- thumb_func_end sub_80C8644
-
- thumb_func_start sub_80C8660
-sub_80C8660: @ 80C8660
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C868E
- bl GetMultiplayerId
- ldr r1, _080C8698 @ =gContestPlayerMonIndex
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C868E
- ldr r1, _080C869C @ =gIsLinkContest
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C868E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8694: .4byte gReceivedRemoteLinkPlayers
-_080C8698: .4byte gContestPlayerMonIndex
-_080C869C: .4byte gIsLinkContest
- thumb_func_end sub_80C8660
-
- thumb_func_start sub_80C86A0
-sub_80C86A0: @ 80C86A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x2
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C86B6
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C86B6
- movs r0, 0x2
- b _080C872C
-_080C86B6:
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _080C872A
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080C872A
-_080C86CA:
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r0, 0x45
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- bls _080C871E
- adds r0, r1, 0
- adds r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080C871E
- adds r0, r1, 0
- cmp r0, 0
- beq _080C871E
- cmp r0, 0xAD
- beq _080C871E
- cmp r0, 0xB8
- beq _080C871E
- cmp r0, 0xAB
- beq _080C871E
- cmp r0, 0xAC
- beq _080C871E
- cmp r0, 0xB5
- beq _080C871E
- cmp r0, 0xB6
- beq _080C871E
- cmp r0, 0xBA
- beq _080C871E
- cmp r0, 0xAE
- beq _080C871E
- cmp r0, 0xB0
- beq _080C871E
- cmp r0, 0xB1
- beq _080C871E
- cmp r0, 0xB2
- beq _080C871E
- cmp r0, 0xB3
- beq _080C871E
- cmp r0, 0xB1
- bne _080C8728
-_080C871E:
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080C86CA
- b _080C872A
-_080C8728:
- movs r5, 0x1
-_080C872A:
- adds r0, r5, 0
-_080C872C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C86A0
-
- thumb_func_start sub_80C8734
-sub_80C8734: @ 80C8734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080C8768 @ =gTasks
- lsls r5, r0, 2
- adds r0, r5, r0
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C876C
- cmp r0, 0x1
- beq _080C87D0
- movs r0, 0
- strh r0, [r4, 0x8]
- mov r0, r9
- bl SwitchTaskToFollowupFunc
- b _080C8896
- .align 2, 0
-_080C8768: .4byte gTasks
-_080C876C:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C87A8
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8782
- b _080C8896
-_080C8782:
- ldr r0, _080C879C @ =gBlockSendBuffer
- ldr r1, _080C87A0 @ =gContestPlayerMonIndex
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87A4 @ =gContestMons
- adds r1, r2
- movs r2, 0x40
- bl memcpy
- movs r0, 0x2
- bl sub_8007E9C
- b _080C87BA
- .align 2, 0
-_080C879C: .4byte gBlockSendBuffer
-_080C87A0: .4byte gContestPlayerMonIndex
-_080C87A4: .4byte gContestMons
-_080C87A8:
- ldr r0, _080C87C4 @ =gBlockSendBuffer
- ldr r1, _080C87C8 @ =gContestPlayerMonIndex
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87CC @ =gContestMons
- adds r1, r2
- movs r2, 0x40
- bl memcpy
-_080C87BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8896
- .align 2, 0
-_080C87C4: .4byte gBlockSendBuffer
-_080C87C8: .4byte gContestPlayerMonIndex
-_080C87CC: .4byte gContestMons
-_080C87D0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8896
- movs r7, 0
- str r5, [sp]
- ldr r0, _080C8818 @ =gContestMons
- ldr r6, _080C881C @ =gLinkPlayers
- movs r5, 0
- mov r10, r0
- movs r2, 0xFF
- mov r8, r2
-_080C87EA:
- lsls r1, r7, 8
- ldr r0, _080C8820 @ =gBlockRecvBuffer
- adds r1, r0
- mov r0, r10
- movs r2, 0x40
- bl memcpy
- ldr r0, _080C8824 @ =gContestMons + 0x2
- adds r4, r5, r0
- ldrh r0, [r6, 0x1A]
- cmp r0, 0x1
- bne _080C8828
- adds r0, r4, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- b _080C883E
- .align 2, 0
-_080C8818: .4byte gContestMons
-_080C881C: .4byte gLinkPlayers
-_080C8820: .4byte gBlockRecvBuffer
-_080C8824: .4byte gContestMons + 0x2
-_080C8828:
- ldrb r0, [r4, 0xA]
- cmp r0, 0xFC
- bne _080C8838
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _080C883E
-_080C8838:
- strb r0, [r4, 0x5]
- mov r1, r8
- strb r1, [r4, 0xA]
-_080C883E:
- ldr r0, _080C886C @ =gUnknown_0203857D
- adds r4, r5, r0
- ldrh r0, [r6, 0x1A]
- cmp r0, 0x1
- bne _080C8870
- mov r2, r8
- strb r2, [r4, 0x7]
- ldrb r0, [r4, 0x4]
- strb r0, [r4, 0x6]
- ldrb r0, [r4, 0x3]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x2]
- strb r0, [r4, 0x4]
- ldrb r0, [r4, 0x1]
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- strb r0, [r4, 0x2]
- movs r0, 0x15
- strb r0, [r4, 0x1]
- movs r0, 0xFC
- strb r0, [r4]
- b _080C8878
- .align 2, 0
-_080C886C: .4byte gUnknown_0203857D
-_080C8870:
- ldrb r0, [r4, 0x7]
- strb r0, [r4, 0x5]
- mov r0, r8
- strb r0, [r4, 0x7]
-_080C8878:
- adds r6, 0x1C
- adds r5, 0x40
- movs r1, 0x40
- add r10, r1
- adds r7, 0x1
- cmp r7, 0x3
- ble _080C87EA
- ldr r0, _080C88A8 @ =gTasks
- ldr r1, [sp]
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8896:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C88A8: .4byte gTasks
- thumb_func_end sub_80C8734
-
- thumb_func_start sub_80C88AC
-sub_80C88AC: @ 80C88AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C88D4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080C88D8
- cmp r0, 0x1
- beq _080C88FC
- movs r0, 0
- strh r0, [r5, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8924
- .align 2, 0
-_080C88D4: .4byte gTasks
-_080C88D8:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C891E
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C88F8 @ =gRngValue
- movs r1, 0x4
- bl sub_80C857C
- b _080C891E
- .align 2, 0
-_080C88F8: .4byte gRngValue
-_080C88FC:
- movs r0, 0
- bl sub_80C85AC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C892C @ =gRngValue
- ldr r4, _080C8930 @ =gBlockRecvBuffer
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _080C8934 @ =gUnknown_03005D28
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
-_080C891E:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080C8924:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C892C: .4byte gRngValue
-_080C8930: .4byte gBlockRecvBuffer
-_080C8934: .4byte gUnknown_03005D28
- thumb_func_end sub_80C88AC
-
- thumb_func_start sub_80C8938
-sub_80C8938: @ 80C8938
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C8968 @ =gTasks
- mov r8, r0
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- mov r1, r8
- adds r4, r7, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C896C
- cmp r0, 0x1
- beq _080C8998
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C89CE
- .align 2, 0
-_080C8968: .4byte gTasks
-_080C896C:
- ldr r1, _080C8994 @ =gBlockSendBuffer
- ldrh r0, [r4, 0x1A]
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C898C
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C89CE
- movs r0, 0x2
- bl sub_8007E9C
-_080C898C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C89CE
- .align 2, 0
-_080C8994: .4byte gBlockSendBuffer
-_080C8998:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C89CE
- movs r3, 0
- mov r12, r8
- adds r1, r6, 0
- ldr r4, _080C89D8 @ =gBlockRecvBuffer
- mov r0, r12
- adds r0, 0xA
- adds r2, r7, r0
- movs r6, 0x80
- lsls r6, 1
-_080C89B4:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, r6
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C89B4
- adds r1, r5
- lsls r1, 3
- add r1, r12
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C89CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C89D8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8938
-
- thumb_func_start sub_80C89DC
-sub_80C89DC: @ 80C89DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8A04 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A08
- cmp r0, 0x1
- beq _080C8A20
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8A30
- .align 2, 0
-_080C8A04: .4byte gTasks
-_080C8A08:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
- ldr r0, _080C8A1C @ =gContestPlayerMonIndex
- movs r1, 0x1
- bl sub_80C857C
- b _080C8A2A
- .align 2, 0
-_080C8A1C: .4byte gContestPlayerMonIndex
-_080C8A20:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
-_080C8A2A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C89DC
-
- thumb_func_start sub_80C8A38
-sub_80C8A38: @ 80C8A38
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r7, _080C8A60 @ =gTasks
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r7
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A64
- cmp r0, 0x1
- beq _080C8A94
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8AC2
- .align 2, 0
-_080C8A60: .4byte gTasks
-_080C8A64:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r0, _080C8A8C @ =gContestPlayerMonIndex
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080C8A90 @ =gSharedMem + 0x19266
- adds r0, r1
- movs r1, 0x2
- bl sub_80C857C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8AC2
- .align 2, 0
-_080C8A8C: .4byte gContestPlayerMonIndex
-_080C8A90: .4byte gSharedMem + 0x19266
-_080C8A94:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r1, _080C8AC8 @ =gBlockRecvBuffer
- ldr r3, _080C8ACC @ =gSharedMem + 0x19266
- movs r4, 0x80
- lsls r4, 1
- movs r2, 0x3
-_080C8AA8:
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, r4
- adds r3, 0x1C
- subs r2, 0x1
- cmp r2, 0
- bge _080C8AA8
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8AC2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8AC8: .4byte gBlockRecvBuffer
-_080C8ACC: .4byte gSharedMem + 0x19266
- thumb_func_end sub_80C8A38
-
- thumb_func_start sub_80C8AD0
-sub_80C8AD0: @ 80C8AD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8AF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8AEC
- b _080C8C70
-_080C8AEC:
- lsls r0, 2
- ldr r1, _080C8AFC @ =_080C8B00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8AF8: .4byte gTasks
-_080C8AFC: .4byte _080C8B00
- .align 2, 0
-_080C8B00:
- .4byte _080C8B30
- .4byte _080C8B4C
- .4byte _080C8B74
- .4byte _080C8B98
- .4byte _080C8BB0
- .4byte _080C8B74
- .4byte _080C8BD8
- .4byte _080C8BF0
- .4byte _080C8B74
- .4byte _080C8C18
- .4byte _080C8C30
- .4byte _080C8B74
-_080C8B30:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8B3C
- b _080C8C7A
-_080C8B3C:
- ldr r0, _080C8B48 @ =gUnknown_02038678
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8B48: .4byte gUnknown_02038678
-_080C8B4C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8B58
- b _080C8C7A
-_080C8B58:
- ldr r0, _080C8B68 @ =gUnknown_02038678
- ldr r1, _080C8B6C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8B70 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8B68: .4byte gUnknown_02038678
-_080C8B6C: .4byte gUnknown_0203869B
-_080C8B70: .4byte gBlockRecvBuffer
-_080C8B74:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bgt _080C8B8C
- b _080C8C7A
-_080C8B8C:
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8C7A
-_080C8B98:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BAC @ =gUnknown_02038680
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BAC: .4byte gUnknown_02038680
-_080C8BB0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BCC @ =gUnknown_02038680
- ldr r1, _080C8BD0 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8BD4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8BCC: .4byte gUnknown_02038680
-_080C8BD0: .4byte gUnknown_0203869B
-_080C8BD4: .4byte gBlockRecvBuffer
-_080C8BD8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BEC @ =gUnknown_02038688
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BEC: .4byte gUnknown_02038688
-_080C8BF0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C0C @ =gUnknown_02038688
- ldr r1, _080C8C10 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C14 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8C0C: .4byte gUnknown_02038688
-_080C8C10: .4byte gUnknown_0203869B
-_080C8C14: .4byte gBlockRecvBuffer
-_080C8C18:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C2C @ =gContestFinalStandings
- movs r1, 0x4
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8C2C: .4byte gContestFinalStandings
-_080C8C30:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C60 @ =gContestFinalStandings
- ldr r1, _080C8C64 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C68 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
-_080C8C48:
- bl memcpy
-_080C8C4C:
- ldr r1, _080C8C6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8C7A
- .align 2, 0
-_080C8C60: .4byte gContestFinalStandings
-_080C8C64: .4byte gUnknown_0203869B
-_080C8C68: .4byte gBlockRecvBuffer
-_080C8C6C: .4byte gTasks
-_080C8C70:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8AD0
-
- thumb_func_start sub_80C8C80
-sub_80C8C80: @ 80C8C80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8CA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8C9C
- b _080C8E0C
-_080C8C9C:
- lsls r0, 2
- ldr r1, _080C8CAC @ =_080C8CB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8CA8: .4byte gTasks
-_080C8CAC: .4byte _080C8CB0
- .align 2, 0
-_080C8CB0:
- .4byte _080C8CE0
- .4byte _080C8CFC
- .4byte _080C8D24
- .4byte _080C8D46
- .4byte _080C8D60
- .4byte _080C8D24
- .4byte _080C8D88
- .4byte _080C8DA0
- .4byte _080C8D24
- .4byte _080C8DB4
- .4byte _080C8DCC
- .4byte _080C8D24
-_080C8CE0:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8CEC
- b _080C8E16
-_080C8CEC:
- ldr r0, _080C8CF8 @ =gSharedMem + 0x19260
- movs r1, 0x70
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8CF8: .4byte gSharedMem + 0x19260
-_080C8CFC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8D08
- b _080C8E16
-_080C8D08:
- ldr r0, _080C8D18 @ =gSharedMem + 0x19260
- ldr r1, _080C8D1C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D20 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x70
- b _080C8DE4
- .align 2, 0
-_080C8D18: .4byte gSharedMem + 0x19260
-_080C8D1C: .4byte gUnknown_0203869B
-_080C8D20: .4byte gBlockRecvBuffer
-_080C8D24:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080C8E16
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8E16
-_080C8D46:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D5C @ =gSharedMem + 0x192D0
- movs r1, 0x14
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D5C: .4byte gSharedMem + 0x192D0
-_080C8D60:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D7C @ =gSharedMem + 0x192D0
- ldr r1, _080C8D80 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D84 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x14
- b _080C8DE4
- .align 2, 0
-_080C8D7C: .4byte gSharedMem + 0x192D0
-_080C8D80: .4byte gUnknown_0203869B
-_080C8D84: .4byte gBlockRecvBuffer
-_080C8D88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D9C @ =gSharedMem + 0x19328
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D9C: .4byte gSharedMem + 0x19328
-_080C8DA0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DB0 @ =gSharedMem + 0x19328
- b _080C8DD8
- .align 2, 0
-_080C8DB0: .4byte gSharedMem + 0x19328
-_080C8DB4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DC8 @ =gUnknown_02038696
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8DC8: .4byte gUnknown_02038696
-_080C8DCC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DFC @ =gUnknown_02038696
-_080C8DD8:
- ldr r1, _080C8E00 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8E04 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
-_080C8DE4:
- bl memcpy
-_080C8DE8:
- ldr r1, _080C8E08 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8E16
- .align 2, 0
-_080C8DFC: .4byte gUnknown_02038696
-_080C8E00: .4byte gUnknown_0203869B
-_080C8E04: .4byte gBlockRecvBuffer
-_080C8E08: .4byte gTasks
-_080C8E0C:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8E16:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8C80
-
- thumb_func_start sub_80C8E1C
-sub_80C8E1C: @ 80C8E1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C8E4C @ =gTasks
- mov r8, r0
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- mov r1, r8
- adds r4, r7, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8E50
- cmp r0, 0x1
- beq _080C8E7C
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8EAE
- .align 2, 0
-_080C8E4C: .4byte gTasks
-_080C8E50:
- ldr r1, _080C8E78 @ =gBlockSendBuffer
- movs r0, 0x64
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C8E70
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8EAE
- movs r0, 0x2
- bl sub_8007E9C
-_080C8E70:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8EAE
- .align 2, 0
-_080C8E78: .4byte gBlockSendBuffer
-_080C8E7C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8EAE
- ldr r1, _080C8EB8 @ =gBlockRecvBuffer
- mov r0, r8
- adds r0, 0x12
- adds r2, r7, r0
- movs r4, 0x80
- lsls r4, 1
- movs r3, 0x3
-_080C8E94:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, r4
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C8E94
- adds r1, r6, r5
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8EAE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8EB8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8E1C
-
- thumb_func_start sub_80C8EBC
-sub_80C8EBC: @ 80C8EBC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8EE4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8EE8
- cmp r0, 0x1
- beq _080C8F00
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F22
- .align 2, 0
-_080C8EE4: .4byte gTasks
-_080C8EE8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8EFC @ =gUnknown_02038670
- movs r1, 0x8
- bl sub_80C857C
- b _080C8F1C
- .align 2, 0
-_080C8EFC: .4byte gUnknown_02038670
-_080C8F00:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8F28 @ =gUnknown_02038670
- ldr r1, _080C8F2C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8F30 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- bl memcpy
-_080C8F1C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8F28: .4byte gUnknown_02038670
-_080C8F2C: .4byte gUnknown_0203869B
-_080C8F30: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8EBC
-
- thumb_func_start sub_80C8F34
-sub_80C8F34: @ 80C8F34
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8F5C @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8F60
- cmp r0, 0x1
- beq _080C8F78
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F9A
- .align 2, 0
-_080C8F5C: .4byte gTasks
-_080C8F60:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8F74 @ =gUnknown_02038696
- movs r1, 0x4
- bl sub_80C857C
- b _080C8F94
- .align 2, 0
-_080C8F74: .4byte gUnknown_02038696
-_080C8F78:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8FA0 @ =gUnknown_02038696
- ldr r1, _080C8FA4 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8FA8 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
- bl memcpy
-_080C8F94:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F9A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8FA0: .4byte gUnknown_02038696
-_080C8FA4: .4byte gUnknown_0203869B
-_080C8FA8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8F34
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/current.s b/asm/current.s
index e77218cc9..4ef537dc3 100755..100644
--- a/asm/current.s
+++ b/asm/current.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s
index da5dea0ce..bc72a6ef5 100644
--- a/asm/cute_sketch.s
+++ b/asm/cute_sketch.s
@@ -1,11 +1,10 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
.text
-
thumb_func_start sub_80FCB5C
sub_80FCB5C: @ 80FCB5C
push {r4-r7,lr}
diff --git a/asm/dark.s b/asm/dark.s
deleted file mode 100755
index 3fcc3f56c..000000000
--- a/asm/dark.s
+++ /dev/null
@@ -1,2013 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ dark
-
- thumb_func_start sub_80DFF1C
-sub_80DFF1C: @ 80DFF1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DFF50 @ =gBattleAnimArgs
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x32]
- ldr r0, _080DFF54 @ =sub_80DFF58
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFF50: .4byte gBattleAnimArgs
-_080DFF54: .4byte sub_80DFF58
- thumb_func_end sub_80DFF1C
-
- thumb_func_start sub_80DFF58
-sub_80DFF58: @ 80DFF58
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _080DFF8E
- ldr r0, _080DFF94 @ =sub_80DFF98
- str r0, [r2, 0x1C]
-_080DFF8E:
- pop {r0}
- bx r0
- .align 2, 0
-_080DFF94: .4byte sub_80DFF98
- thumb_func_end sub_80DFF58
-
- thumb_func_start sub_80DFF98
-sub_80DFF98: @ 80DFF98
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x36]
- ldrh r0, [r3, 0x2E]
- subs r1, r0
- strh r1, [r3, 0x36]
- ldrh r0, [r3, 0x38]
- ldrh r2, [r3, 0x30]
- subs r0, r2
- strh r0, [r3, 0x38]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r3, 0x24]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080DFFCA
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080DFFCA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DFF98
-
- thumb_func_start sub_80DFFD0
-sub_80DFFD0: @ 80DFFD0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080DFFE4 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080DFFEC
- ldr r0, _080DFFE8 @ =gAnimBankAttacker
- b _080DFFEE
- .align 2, 0
-_080DFFE4: .4byte gBattleAnimArgs
-_080DFFE8: .4byte gAnimBankAttacker
-_080DFFEC:
- ldr r0, _080E001C @ =gAnimBankTarget
-_080DFFEE:
- ldrb r5, [r0]
- movs r6, 0x14
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- ldr r7, _080E0020 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080E0024 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080E004C
- cmp r0, 0x1
- bgt _080E0028
- cmp r0, 0
- beq _080E0032
- b _080E00A0
- .align 2, 0
-_080E001C: .4byte gAnimBankTarget
-_080E0020: .4byte 0x000003ff
-_080E0024: .4byte 0xfffffc00
-_080E0028:
- cmp r0, 0x2
- beq _080E0066
- cmp r0, 0x3
- beq _080E007E
- b _080E00A0
-_080E0032:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r4, 0x22]
- b _080E00A0
-_080E004C:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x10
- strh r0, [r4, 0x22]
- b _080E00A0
-_080E0066:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080E0094
-_080E007E:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x10
-_080E0094:
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r6, 0xEC
-_080E00A0:
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- lsls r0, r6, 24
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r0, 0xC
- strh r0, [r4, 0x36]
- ldr r0, _080E00C8 @ =0x0000fff4
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080E00CC @ =sub_80E00D0
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E00C8: .4byte 0x0000fff4
-_080E00CC: .4byte sub_80E00D0
- thumb_func_end sub_80DFFD0
-
- thumb_func_start sub_80E00D0
-sub_80E00D0: @ 80E00D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E00E4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080E00E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E00D0
-
- thumb_func_start sub_80E00EC
-sub_80E00EC: @ 80E00EC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080E0150 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080E0154 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- strh r1, [r5, 0x12]
- strh r0, [r5, 0x10]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x24]
- adds r0, 0x20
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080E015C
- ldr r0, _080E0158 @ =0x0000fff4
- b _080E015E
- .align 2, 0
-_080E0150: .4byte gTasks
-_080E0154: .4byte gAnimBankAttacker
-_080E0158: .4byte 0x0000fff4
-_080E015C:
- ldr r0, _080E01A8 @ =0x0000ffc0
-_080E015E:
- strh r0, [r5, 0x18]
- ldr r0, _080E01AC @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080E01C4
- add r4, sp, 0xC
- adds r0, r4, 0
- bl sub_8078914
- ldr r0, _080E01B0 @ =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080E01B4 @ =REG_BLDCNT
- ldr r2, _080E01B8 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- ldrb r1, [r4, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080E01BC @ =REG_BG1VOFS
- str r0, [sp]
- movs r7, 0x2
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E01F4
- ldr r1, _080E01C0 @ =gBattle_BG2_X
- b _080E01EE
- .align 2, 0
-_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gAnimBankAttacker
-_080E01B0: .4byte gBattle_BG1_Y
-_080E01B4: .4byte REG_BLDCNT
-_080E01B8: .4byte 0x00003f42
-_080E01BC: .4byte REG_BG1VOFS
-_080E01C0: .4byte gBattle_BG2_X
-_080E01C4:
- ldr r0, _080E0278 @ =gBattle_BG2_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080E027C @ =REG_BLDCNT
- ldr r2, _080E0280 @ =0x00003f44
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080E0284 @ =REG_BG2VOFS
- str r0, [sp]
- movs r7, 0x4
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E01F4
- ldr r1, _080E0288 @ =gBattle_BG1_X
-_080E01EE:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
-_080E01F4:
- ldr r0, _080E028C @ =0xa2600001
- str r0, [sp, 0x4]
- mov r2, sp
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- mov r0, sp
- strb r1, [r0, 0x9]
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- strh r0, [r5, 0x20]
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- strh r1, [r5, 0xC]
- movs r0, 0x3
- bl sub_80E08CC
- movs r3, 0
- ldr r4, _080E0290 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080E0220:
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x1C]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080E0220
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r1, _080E0294 @ =REG_WINOUT
- movs r0, 0x3F
- eors r7, r0
- movs r2, 0xFC
- lsls r2, 6
- adds r0, r2, 0
- orrs r7, r0
- strh r7, [r1]
- subs r1, 0x2
- adds r2, 0x3F
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080E0298 @ =gBattle_WIN0H
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E029C @ =gBattle_WIN0V
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080E02A0 @ =sub_80E02A4
- str r0, [r5]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0278: .4byte gBattle_BG2_Y
-_080E027C: .4byte REG_BLDCNT
-_080E0280: .4byte 0x00003f44
-_080E0284: .4byte REG_BG2VOFS
-_080E0288: .4byte gBattle_BG1_X
-_080E028C: .4byte 0xa2600001
-_080E0290: .4byte gUnknown_03004DE0
-_080E0294: .4byte REG_WINOUT
-_080E0298: .4byte gBattle_WIN0H
-_080E029C: .4byte gBattle_WIN0V
-_080E02A0: .4byte sub_80E02A4
- thumb_func_end sub_80E00EC
-
- thumb_func_start sub_80E02A4
-sub_80E02A4: @ 80E02A4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E02C8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E02BE
- b _080E03B6
-_080E02BE:
- lsls r0, 2
- ldr r1, _080E02CC @ =_080E02D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E02C8: .4byte gTasks
-_080E02CC: .4byte _080E02D0
- .align 2, 0
-_080E02D0:
- .4byte _080E02E4
- .4byte _080E0344
- .4byte _080E035E
- .4byte _080E039C
- .4byte _080E03B0
-_080E02E4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E03B6
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0314
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0xC
- beq _080E0322
- adds r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080E0322
-_080E0314:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _080E0322
- subs r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080E0322:
- ldr r2, _080E0340 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x20]
- lsls r0, 8
- ldrh r1, [r4, 0x1E]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _080E03B6
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _080E03B6
- b _080E03A2
- .align 2, 0
-_080E0340: .4byte REG_BLDALPHA
-_080E0344:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _080E03B6
- b _080E03A2
-_080E035E:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80E079C
- ldrh r1, [r4, 0x24]
- adds r1, 0x4
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r2, r0, 0x4
- strh r2, [r4, 0x26]
- lsls r1, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080E0380
- strh r2, [r4, 0x24]
-_080E0380:
- ldr r3, _080E0398 @ =gBattle_WIN0H
- ldrh r2, [r4, 0x24]
- lsls r0, r2, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r3]
- lsls r2, 16
- lsls r1, 16
- cmp r2, r1
- bne _080E03B6
- b _080E03A2
- .align 2, 0
-_080E0398: .4byte gBattle_WIN0H
-_080E039C:
- ldr r1, _080E03AC @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E03A2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E03B6
- .align 2, 0
-_080E03AC: .4byte gUnknown_03004DC0
-_080E03B0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E03B6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E02A4
-
- thumb_func_start sub_80E03BC
-sub_80E03BC: @ 80E03BC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080E03E4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080E03D8
- b _080E05F2
-_080E03D8:
- lsls r0, 2
- ldr r1, _080E03E8 @ =_080E03EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E03E4: .4byte gTasks
-_080E03E8: .4byte _080E03EC
- .align 2, 0
-_080E03EC:
- .4byte _080E0400
- .4byte _080E048C
- .4byte _080E04D0
- .4byte _080E053C
- .4byte _080E05A4
-_080E0400:
- bl IsContest
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E043C
- ldr r0, _080E042C @ =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0430 @ =gBattle_WIN0V
- strh r1, [r0]
- ldr r0, _080E0434 @ =REG_WININ
- ldr r2, _080E0438 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080E05F2
- .align 2, 0
-_080E042C: .4byte gBattle_WIN0H
-_080E0430: .4byte gBattle_WIN0V
-_080E0434: .4byte REG_WININ
-_080E0438: .4byte 0x00003f3f
-_080E043C:
- ldr r0, _080E045C @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080E046C
- ldr r1, _080E0460 @ =REG_BLDCNT
- ldr r2, _080E0464 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0468 @ =gBattle_BG2_X
- b _080E0476
- .align 2, 0
-_080E045C: .4byte gAnimBankTarget
-_080E0460: .4byte REG_BLDCNT
-_080E0464: .4byte 0x00003f42
-_080E0468: .4byte gBattle_BG2_X
-_080E046C:
- ldr r1, _080E0480 @ =REG_BLDCNT
- ldr r2, _080E0484 @ =0x00003f44
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0488 @ =gBattle_BG1_X
-_080E0476:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
- b _080E0590
- .align 2, 0
-_080E0480: .4byte REG_BLDCNT
-_080E0484: .4byte 0x00003f44
-_080E0488: .4byte gBattle_BG1_X
-_080E048C:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E04B4
- mov r0, sp
- bl sub_8078914
- ldr r0, _080E04B0 @ =gBattle_BG1_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- b _080E04C4
- .align 2, 0
-_080E04B0: .4byte gBattle_BG1_Y
-_080E04B4:
- ldr r0, _080E04CC @ =gBattle_BG2_Y
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
-_080E04C4:
- movs r0, 0x3
- bl sub_80E08CC
- b _080E0590
- .align 2, 0
-_080E04CC: .4byte gBattle_BG2_Y
-_080E04D0:
- ldr r4, _080E051C @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x4
- strh r1, [r5, 0x24]
- adds r0, 0x4
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080E0524
- ldr r0, _080E0520 @ =0x0000fff4
- b _080E0526
- .align 2, 0
-_080E051C: .4byte gAnimBankTarget
-_080E0520: .4byte 0x0000fff4
-_080E0524:
- ldr r0, _080E0538 @ =0x0000ffc0
-_080E0526:
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- movs r0, 0x8
- strh r0, [r5, 0x20]
- b _080E0590
- .align 2, 0
-_080E0538: .4byte 0x0000ffc0
-_080E053C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _080E054C
- ldr r0, _080E0548 @ =REG_BG1VOFS
- b _080E054E
- .align 2, 0
-_080E0548: .4byte REG_BG1VOFS
-_080E054C:
- ldr r0, _080E0598 @ =REG_BG2VOFS
-_080E054E:
- str r0, [sp, 0xC]
- movs r3, 0
- add r4, sp, 0xC
- ldr r6, _080E059C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r7, r6, r0
-_080E055C:
- lsls r1, r3, 1
- adds r2, r1, r6
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r2]
- adds r1, r7
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080E055C
- ldr r1, _080E05A0 @ =0xa2600001
- str r1, [r4, 0x4]
- movs r2, 0
- movs r0, 0x1
- strb r0, [r4, 0x8]
- strb r2, [r4, 0x9]
- ldr r0, [sp, 0xC]
- ldr r2, [r4, 0x8]
- bl sub_80895F8
-_080E0590:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080E05F2
- .align 2, 0
-_080E0598: .4byte REG_BG2VOFS
-_080E059C: .4byte gUnknown_03004DE0
-_080E05A0: .4byte 0xa2600001
-_080E05A4:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E05BC
- ldr r1, _080E05B4 @ =REG_WINOUT
- ldr r2, _080E05B8 @ =0x00003f3d
- b _080E05C0
- .align 2, 0
-_080E05B4: .4byte REG_WINOUT
-_080E05B8: .4byte 0x00003f3d
-_080E05BC:
- ldr r1, _080E05FC @ =REG_WINOUT
- ldr r2, _080E0600 @ =0x00003f3b
-_080E05C0:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0604 @ =REG_WININ
- ldr r2, _080E0608 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080E060C @ =gBattle_WIN0H
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0610 @ =gBattle_WIN0V
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldr r1, _080E0614 @ =REG_BLDALPHA
- ldr r2, _080E0618 @ =0x0000080c
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E061C @ =sub_80E0620
- str r0, [r5]
-_080E05F2:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E05FC: .4byte REG_WINOUT
-_080E0600: .4byte 0x00003f3b
-_080E0604: .4byte REG_WININ
-_080E0608: .4byte 0x00003f3f
-_080E060C: .4byte gBattle_WIN0H
-_080E0610: .4byte gBattle_WIN0V
-_080E0614: .4byte REG_BLDALPHA
-_080E0618: .4byte 0x0000080c
-_080E061C: .4byte sub_80E0620
- thumb_func_end sub_80E03BC
-
- thumb_func_start sub_80E0620
-sub_80E0620: @ 80E0620
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E0644 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E063A
- b _080E0784
-_080E063A:
- lsls r0, 2
- ldr r1, _080E0648 @ =_080E064C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E0644: .4byte gTasks
-_080E0648: .4byte _080E064C
- .align 2, 0
-_080E064C:
- .4byte _080E0660
- .4byte _080E068C
- .4byte _080E06F4
- .4byte _080E0754
- .4byte _080E0768
-_080E0660:
- ldrh r0, [r4, 0x12]
- adds r0, 0x8
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x16]
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E0676
- strh r2, [r4, 0x12]
-_080E0676:
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080E068A
- b _080E0784
-_080E068A:
- b _080E075A
-_080E068C:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- subs r0, r1
- cmp r0, 0x3F
- bgt _080E06A8
- ldrh r0, [r4, 0x24]
- subs r0, 0x4
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x4
- strh r0, [r4, 0x26]
- b _080E06AC
-_080E06A8:
- movs r0, 0x1
- strh r0, [r4, 0xA]
-_080E06AC:
- ldr r2, _080E06F0 @ =gBattle_WIN0H
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x14]
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E06CE
- strh r2, [r4, 0x10]
-_080E06CE:
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E0784
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080E0784
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080E075A
- .align 2, 0
-_080E06F0: .4byte gBattle_WIN0H
-_080E06F4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E0784
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0724
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E0732
- subs r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080E0732
-_080E0724:
- ldrh r1, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _080E0732
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080E0732:
- ldr r2, _080E0750 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x20]
- lsls r0, 8
- ldrh r1, [r4, 0x1E]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E0784
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080E0784
- b _080E075A
- .align 2, 0
-_080E0750: .4byte REG_BLDALPHA
-_080E0754:
- ldr r1, _080E0764 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E075A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E0784
- .align 2, 0
-_080E0764: .4byte gUnknown_03004DC0
-_080E0768:
- ldr r0, _080E078C @ =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0790 @ =gBattle_WIN0V
- strh r1, [r0]
- ldr r0, _080E0794 @ =REG_WININ
- ldr r3, _080E0798 @ =0x00003f3f
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080E0784:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E078C: .4byte gBattle_WIN0H
-_080E0790: .4byte gBattle_WIN0V
-_080E0794: .4byte REG_WININ
-_080E0798: .4byte 0x00003f3f
- thumb_func_end sub_80E0620
-
- thumb_func_start sub_80E079C
-sub_80E079C: @ 80E079C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r0, [r6, 0x12]
- ldrh r4, [r6, 0x10]
- subs r0, r4
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080E0890
- movs r2, 0x22
- ldrsh r0, [r6, r2]
- bl __divsi3
- mov r8, r0
- movs r3, 0x14
- ldrsh r0, [r6, r3]
- lsls r5, r0, 8
- lsls r0, r4, 16
- movs r4, 0
- cmp r0, 0
- ble _080E07FC
- ldr r0, _080E0888 @ =gUnknown_03004DE0
- mov r12, r0
- ldr r7, _080E088C @ =gUnknown_03004DC0
-_080E07D0:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- add r3, r12
- adds r1, r2, 0
- subs r1, 0x9F
- ldrh r0, [r6, 0x1C]
- subs r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r2, r0
- blt _080E07D0
-_080E07FC:
- ldrh r4, [r6, 0x10]
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bgt _080E0846
- ldr r0, _080E0888 @ =gUnknown_03004DE0
- mov r12, r0
- ldr r7, _080E088C @ =gUnknown_03004DC0
-_080E0810:
- asrs r4, r3, 16
- cmp r4, 0
- blt _080E0832
- asrs r1, r5, 8
- subs r1, r4
- lsls r3, r4, 1
- ldrb r2, [r7, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- add r3, r12
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6, 0x1C]
- adds r1, r2
- strh r1, [r3]
-_080E0832:
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080E0810
-_080E0846:
- movs r3, 0x1C
- ldrsh r0, [r6, r3]
- adds r0, 0x9F
- lsls r2, r4, 16
- asrs r1, r2, 16
- subs r5, r0, r1
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bge _080E08BE
- ldr r7, _080E0888 @ =gUnknown_03004DE0
- ldr r4, _080E088C @ =gUnknown_03004DC0
-_080E085E:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080E0876
- lsls r2, r3, 1
- ldrb r1, [r4, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- strh r5, [r2]
- subs r5, 0x1
-_080E0876:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- blt _080E085E
- b _080E08BE
- .align 2, 0
-_080E0888: .4byte gUnknown_03004DE0
-_080E088C: .4byte gUnknown_03004DC0
-_080E0890:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- adds r5, r0, 0
- adds r5, 0x9F
- movs r4, 0
- ldr r3, _080E08C8 @ =gUnknown_03004DE0
- movs r2, 0xF0
- lsls r2, 3
- adds r6, r3, r2
-_080E08A2:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r2, r0, 1
- adds r1, r2, r3
- strh r5, [r1]
- adds r2, r6
- strh r5, [r2]
- subs r5, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080E08A2
-_080E08BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E08C8: .4byte gUnknown_03004DE0
- thumb_func_end sub_80E079C
-
- thumb_func_start sub_80E08CC
-sub_80E08CC: @ 80E08CC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- ldr r7, _080E0914 @ =gSprites
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r0, 0xD
- negs r0, r0
- adds r6, r0, 0
-_080E08E2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080E0902
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r0, r6
- orrs r0, r5
- strb r0, [r1, 0x5]
-_080E0902:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080E08E2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0914: .4byte gSprites
- thumb_func_end sub_80E08CC
-
- thumb_func_start sub_80E0918
-sub_80E0918: @ 80E0918
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r6, _080E09B8 @ =gAnimBankAttacker
- ldrb r0, [r6]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- ldrb r0, [r6]
- adds r1, r4, 0
- bl sub_8076034
- ldr r0, _080E09BC @ =gSprites
- mov r9, r0
- ldr r0, _080E09C0 @ =gObjectBankIDs
- mov r8, r0
- ldrb r0, [r6]
- add r0, r8
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r7, 0x5
- negs r7, r7
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080E09A2
- ldrb r0, [r6]
- eors r0, r5
- movs r1, 0x1
- eors r4, r1
- adds r1, r4, 0
- bl sub_8076034
- ldrb r0, [r6]
- eors r0, r5
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
-_080E09A2:
- mov r0, r10
- bl DestroyAnimVisualTask
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E09B8: .4byte gAnimBankAttacker
-_080E09BC: .4byte gSprites
-_080E09C0: .4byte gObjectBankIDs
- thumb_func_end sub_80E0918
-
- thumb_func_start sub_80E09C4
-sub_80E09C4: @ 80E09C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _080E0A0C @ =gAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r5, 0
- bl sub_8076464
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080E0A00
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_080E0A00:
- adds r0, r6, 0
- bl DestroyAnimVisualTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A0C: .4byte gAnimBankAttacker
- thumb_func_end sub_80E09C4
-
- thumb_func_start sub_80E0A10
-sub_80E0A10: @ 80E0A10
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080E0A40 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080E0A44 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080E0A48 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A40: .4byte gBattleAnimArgs
-_080E0A44: .4byte sub_8078600
-_080E0A48: .4byte DestroyAnimSprite
- thumb_func_end sub_80E0A10
-
- thumb_func_start sub_80E0A4C
-sub_80E0A4C: @ 80E0A4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, _080E0B50 @ =gBattle_WIN0H
- strh r7, [r0]
- ldr r0, _080E0B54 @ =gBattle_WIN0V
- strh r7, [r0]
- ldr r1, _080E0B58 @ =REG_WININ
- ldr r2, _080E0B5C @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E0B60 @ =0x00003f3d
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0B64 @ =REG_BLDCNT
- ldr r2, _080E0B68 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E0B6C @ =0x00000c08
- adds r0, r3, 0
- strh r0, [r1]
- ldr r5, _080E0B70 @ =REG_BG1CNT
- ldrb r1, [r5]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r5]
- ldrb r1, [r5, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r5, 0x1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E0AC4
- ldrb r0, [r5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5]
-_080E0AC4:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080E0B40
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E0B40
- ldr r4, _080E0B74 @ =gAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E0AF4
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- bne _080E0B40
-_080E0AF4:
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0B40
- ldr r3, _080E0B78 @ =gSprites
- ldr r1, _080E0B7C @ =gObjectBankIDs
- ldrb r0, [r4]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r5]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5]
- movs r7, 0x1
-_080E0B40:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080E0B84
- ldr r0, _080E0B80 @ =gSharedMem + 0x19348
- ldrh r5, [r0]
- b _080E0BCC
- .align 2, 0
-_080E0B50: .4byte gBattle_WIN0H
-_080E0B54: .4byte gBattle_WIN0V
-_080E0B58: .4byte REG_WININ
-_080E0B5C: .4byte 0x00003f3f
-_080E0B60: .4byte 0x00003f3d
-_080E0B64: .4byte REG_BLDCNT
-_080E0B68: .4byte 0x00003f42
-_080E0B6C: .4byte 0x00000c08
-_080E0B70: .4byte REG_BG1CNT
-_080E0B74: .4byte gAnimBankAttacker
-_080E0B78: .4byte gSprites
-_080E0B7C: .4byte gObjectBankIDs
-_080E0B80: .4byte gSharedMem + 0x19348
-_080E0B84:
- ldr r4, _080E0BA4 @ =gAnimBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080E0BB0
- ldr r1, _080E0BA8 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E0BAC @ =gEnemyParty
- b _080E0BC0
- .align 2, 0
-_080E0BA4: .4byte gAnimBankAttacker
-_080E0BA8: .4byte gBattlePartyID
-_080E0BAC: .4byte gEnemyParty
-_080E0BB0:
- ldr r1, _080E0C58 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E0C5C @ =gPlayerParty
-_080E0BC0:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
-_080E0BCC:
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E0C60 @ =gAnimBankAttacker
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080E0C64 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080E0C68 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080E0C6C @ =gUnknown_08D1D574
- bl LZDecompressVram
- ldr r0, _080E0C70 @ =gUnknown_08D1D410
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080E0C74 @ =gUnknown_08D1D54C
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r2, _080E0C78 @ =gBattle_BG1_X
- ldr r0, _080E0C7C @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x60
- strh r0, [r2]
- ldr r2, _080E0C80 @ =gBattle_BG1_Y
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- ldr r2, _080E0C84 @ =gBattleAnimArgs
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E0C88
- adds r0, r1, 0
- movs r1, 0
- bl sub_8079108
- b _080E0C94
- .align 2, 0
-_080E0C58: .4byte gBattlePartyID
-_080E0C5C: .4byte gPlayerParty
-_080E0C60: .4byte gAnimBankAttacker
-_080E0C64: .4byte 0x040000d4
-_080E0C68: .4byte 0x85000400
-_080E0C6C: .4byte gUnknown_08D1D574
-_080E0C70: .4byte gUnknown_08D1D410
-_080E0C74: .4byte gUnknown_08D1D54C
-_080E0C78: .4byte gBattle_BG1_X
-_080E0C7C: .4byte gSprites
-_080E0C80: .4byte gBattle_BG1_Y
-_080E0C84: .4byte gBattleAnimArgs
-_080E0C88:
- lsls r0, r1, 4
- ldrh r3, [r2, 0x4]
- movs r1, 0x10
- movs r2, 0xB
- bl BlendPalette
-_080E0C94:
- ldr r1, _080E0CC4 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r2, _080E0CC8 @ =gBattleAnimArgs
- ldrh r1, [r2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x14]
- ldr r1, _080E0CCC @ =sub_80E0CD0
- str r1, [r0]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0CC4: .4byte gTasks
-_080E0CC8: .4byte gBattleAnimArgs
-_080E0CCC: .4byte sub_80E0CD0
- thumb_func_end sub_80E0A4C
-
- thumb_func_start sub_80E0CD0
-sub_80E0CD0: @ 80E0CD0
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080E0DF0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r2, _080E0DF4 @ =gBattle_BG1_X
- ldrh r3, [r2]
- subs r1, r3, 0x4
- strh r1, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x80
- bne _080E0DE8
- strh r5, [r4, 0x1C]
- adds r0, r3, 0
- adds r0, 0x7C
- strh r0, [r2]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080E0DE8
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E0DF8 @ =gBattle_WIN0H
- strh r5, [r0]
- ldr r0, _080E0DFC @ =gBattle_WIN0V
- strh r5, [r0]
- ldr r0, _080E0E00 @ =REG_WININ
- ldr r2, _080E0E04 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080E0D40
- ldr r2, _080E0E08 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E0D40:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E0E0C @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080E0E10 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080E0D84
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_8079108
-_080E0D84:
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _080E0E14 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080E0E18 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080E0DE2
- ldr r2, _080E0E1C @ =gObjectBankIDs
- ldr r0, _080E0E20 @ =gAnimBankAttacker
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E0DE2:
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080E0DE8:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0DF0: .4byte gTasks
-_080E0DF4: .4byte gBattle_BG1_X
-_080E0DF8: .4byte gBattle_WIN0H
-_080E0DFC: .4byte gBattle_WIN0V
-_080E0E00: .4byte REG_WININ
-_080E0E04: .4byte 0x00003f3f
-_080E0E08: .4byte REG_BG1CNT
-_080E0E0C: .4byte REG_BLDCNT
-_080E0E10: .4byte gSprites
-_080E0E14: .4byte 0x040000d4
-_080E0E18: .4byte 0x85000200
-_080E0E1C: .4byte gObjectBankIDs
-_080E0E20: .4byte gAnimBankAttacker
- thumb_func_end sub_80E0CD0
-
- thumb_func_start sub_80E0E24
-sub_80E0E24: @ 80E0E24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080E0E44 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0x7
- bhi _080E0E88
- lsls r0, r1, 2
- ldr r1, _080E0E48 @ =_080E0E4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E0E44: .4byte gBattleAnimArgs
-_080E0E48: .4byte _080E0E4C
- .align 2, 0
-_080E0E4C:
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E78
- .4byte _080E0E7C
- .4byte _080E0E80
- .4byte _080E0E84
-_080E0E6C:
- ldrb r0, [r2]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- b _080E0E8A
-_080E0E78:
- movs r4, 0
- b _080E0E90
-_080E0E7C:
- movs r4, 0x2
- b _080E0E90
-_080E0E80:
- movs r4, 0x1
- b _080E0E90
-_080E0E84:
- movs r4, 0x3
- b _080E0E90
-_080E0E88:
- movs r2, 0xFF
-_080E0E8A:
- movs r0, 0
- cmp r0, 0
- beq _080E0EB6
-_080E0E90:
- adds r0, r4, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080E0EB4
- ldr r0, _080E0EB0 @ =gObjectBankIDs
- adds r0, r4, r0
- ldrb r2, [r0]
- b _080E0EB6
- .align 2, 0
-_080E0EB0: .4byte gObjectBankIDs
-_080E0EB4:
- movs r2, 0xFF
-_080E0EB6:
- cmp r2, 0xFF
- beq _080E0ED2
- ldr r1, _080E0EE0 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- ldr r1, _080E0EE4 @ =gBattleAnimArgs
- ldrb r1, [r1, 0x2]
- bl sub_8079108
-_080E0ED2:
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0EE0: .4byte gSprites
-_080E0EE4: .4byte gBattleAnimArgs
- thumb_func_end sub_80E0E24
-
- thumb_func_start sub_80E0EE8
-sub_80E0EE8: @ 80E0EE8
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080E0F14 @ =gAnimMoveTurn
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _080E0EFC
- ldr r1, _080E0F18 @ =gBattleAnimArgs
- movs r0, 0
- strh r0, [r1, 0xE]
-_080E0EFC:
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080E0F08
- ldr r1, _080E0F18 @ =gBattleAnimArgs
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080E0F08:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080E0F14: .4byte gAnimMoveTurn
-_080E0F18: .4byte gBattleAnimArgs
- thumb_func_end sub_80E0EE8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/dragon.s b/asm/dragon.s
deleted file mode 100755
index 7c4ea0547..000000000
--- a/asm/dragon.s
+++ /dev/null
@@ -1,1214 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ dragon
-
- thumb_func_start sub_80DF5A0
-sub_80DF5A0: @ 80DF5A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DF5E8 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DF5F0
- ldr r2, _080DF5EC @ =gBattleAnimArgs
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r2, 0x8]
- adds r1, r2, 0
- b _080DF5FA
- .align 2, 0
-_080DF5E8: .4byte gAnimBankAttacker
-_080DF5EC: .4byte gBattleAnimArgs
-_080DF5F0:
- ldr r1, _080DF630 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080DF5FA:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080DF634 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- ldr r0, _080DF638 @ =sub_8078504
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF630: .4byte gBattleAnimArgs
-_080DF634: .4byte move_anim_8074EE0
-_080DF638: .4byte sub_8078504
- thumb_func_end sub_80DF5A0
-
- thumb_func_start sub_80DF63C
-sub_80DF63C: @ 80DF63C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8078650
- ldr r4, _080DF694 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080DF698 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DF6A0
- ldr r2, _080DF69C @ =gBattleAnimArgs
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x32]
- ldrh r1, [r2, 0x4]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- b _080DF6CA
- .align 2, 0
-_080DF694: .4byte gAnimBankTarget
-_080DF698: .4byte gAnimBankAttacker
-_080DF69C: .4byte gBattleAnimArgs
-_080DF6A0:
- ldr r1, _080DF6E4 @ =gBattleAnimArgs
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080DF6CA:
- ldr r0, _080DF6E4 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080DF6E8 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080DF6EC @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF6E4: .4byte gBattleAnimArgs
-_080DF6E8: .4byte sub_8078B34
-_080DF6EC: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF63C
-
- thumb_func_start sub_80DF6F0
-sub_80DF6F0: @ 80DF6F0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DF704 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DF70C
- ldr r4, _080DF708 @ =gAnimBankAttacker
- b _080DF70E
- .align 2, 0
-_080DF704: .4byte gBattleAnimArgs
-_080DF708: .4byte gAnimBankAttacker
-_080DF70C:
- ldr r4, _080DF750 @ =gAnimBankTarget
-_080DF70E:
- ldrb r0, [r4]
- movs r1, 0
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080DF754 @ =gBattleAnimArgs
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, _080DF758 @ =sub_8078600
- str r0, [r5, 0x1C]
- ldr r1, _080DF75C @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF750: .4byte gAnimBankTarget
-_080DF754: .4byte gBattleAnimArgs
-_080DF758: .4byte sub_8078600
-_080DF75C: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF6F0
-
- thumb_func_start sub_80DF760
-sub_80DF760: @ 80DF760
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DF788 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DF77A
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080DF77A:
- adds r0, r4, 0
- bl sub_80DF63C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF788: .4byte gAnimBankAttacker
- thumb_func_end sub_80DF760
-
- thumb_func_start sub_80DF78C
-sub_80DF78C: @ 80DF78C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r4, _080DF7E0 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x36]
- movs r0, 0x1
- strh r0, [r6, 0x38]
- ldr r0, _080DF7E4 @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r6, 0x3A]
- ldr r4, _080DF7E8 @ =gBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- lsls r7, r0, 16
- lsrs r5, r7, 16
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r5, r0
- bls _080DF7EC
- lsrs r0, r7, 17
- b _080DF7EE
- .align 2, 0
-_080DF7E0: .4byte gAnimBankAttacker
-_080DF7E4: .4byte gBattleAnimArgs
-_080DF7E8: .4byte gBankAttacker
-_080DF7EC:
- lsrs r0, r1, 17
-_080DF7EE:
- strh r0, [r6, 0x3C]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Cos
- strh r0, [r6, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- ldr r0, _080DF818 @ =sub_80DF81C
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF818: .4byte sub_80DF81C
- thumb_func_end sub_80DF78C
-
- thumb_func_start sub_80DF81C
-sub_80DF81C: @ 80DF81C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080DF82E
- cmp r5, 0x1
- beq _080DF89A
- b _080DF91E
-_080DF82E:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DF880
- strh r5, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF880
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080DF880
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080DF880:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080DF91E
- movs r0, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DF91E
-_080DF89A:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x95
- bgt _080DF8C2
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x95
- ble _080DF8C2
- movs r0, 0x96
- strh r0, [r4, 0x3C]
-_080DF8C2:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DF90A
- movs r0, 0
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF90A
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080DF90A
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080DF90A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DF91E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DF91E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DF81C
-
- thumb_func_start sub_80DF924
-sub_80DF924: @ 80DF924
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DF950 @ =gTasks
- adds r4, r1, r0
- ldr r0, _080DF954 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DF960
- ldr r0, _080DF958 @ =REG_BG1HOFS
- str r0, [sp]
- ldr r0, _080DF95C @ =gBattle_BG1_X
- b _080DF966
- .align 2, 0
-_080DF950: .4byte gTasks
-_080DF954: .4byte gAnimBankAttacker
-_080DF958: .4byte REG_BG1HOFS
-_080DF95C: .4byte gBattle_BG1_X
-_080DF960:
- ldr r0, _080DF9DC @ =REG_BG2HOFS
- str r0, [sp]
- ldr r0, _080DF9E0 @ =gBattle_BG2_X
-_080DF966:
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- ldr r0, _080DF9E4 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r5, [r0, 0x9]
- ldr r0, _080DF9E8 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0xE]
- adds r0, 0x20
- strh r0, [r4, 0x10]
- cmp r1, 0
- bge _080DF996
- strh r5, [r4, 0xE]
-_080DF996:
- ldrh r3, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bgt _080DF9C4
- ldr r5, _080DF9EC @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080DF9A8:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _080DF9A8
-_080DF9C4:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080DF9F0 @ =sub_80DF9F4
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF9DC: .4byte REG_BG2HOFS
-_080DF9E0: .4byte gBattle_BG2_X
-_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gAnimBankAttacker
-_080DF9EC: .4byte gUnknown_03004DE0
-_080DF9F0: .4byte sub_80DF9F4
- thumb_func_end sub_80DF924
-
- thumb_func_start sub_80DF9F4
-sub_80DF9F4: @ 80DF9F4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080DFA18 @ =gTasks
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _080DFAAA
- lsls r0, 2
- ldr r1, _080DFA1C @ =_080DFA20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DFA18: .4byte gTasks
-_080DFA1C: .4byte _080DFA20
- .align 2, 0
-_080DFA20:
- .4byte _080DFA34
- .4byte _080DFA56
- .4byte _080DFA66
- .4byte _080DFA92
- .4byte _080DFAA4
-_080DFA34:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DFA8A
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- adds r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DFA8A
- b _080DFA84
-_080DFA56:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080DFA8A
- b _080DFA84
-_080DFA66:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DFA8A
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- subs r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080DFA8A
-_080DFA84:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_080DFA8A:
- adds r0, r2, 0
- bl sub_80DFAB0
- b _080DFAAA
-_080DFA92:
- ldr r1, _080DFAA0 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080DFAAA
- .align 2, 0
-_080DFAA0: .4byte gUnknown_03004DC0
-_080DFAA4:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
-_080DFAAA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DF9F4
-
- thumb_func_start sub_80DFAB0
-sub_80DFAB0: @ 80DFAB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r3, [r5, 0x12]
- ldrh r4, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r4, r0
- bgt _080DFB06
- ldr r7, _080DFB1C @ =gUnknown_03004DE0
- mov r12, r7
- ldr r0, _080DFB20 @ =gSineTable
- mov r8, r0
- ldr r6, _080DFB24 @ =gUnknown_03004DC0
-_080DFACE:
- lsls r2, r4, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- lsls r0, r3, 1
- add r0, r8
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x14
- ldrsh r0, [r5, r7]
- muls r0, r1
- asrs r0, 7
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r2]
- adds r3, 0x8
- movs r0, 0xFF
- ands r3, r0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0x10
- ldrsh r0, [r5, r7]
- cmp r4, r0
- ble _080DFACE
-_080DFB06:
- ldrh r0, [r5, 0x12]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFB1C: .4byte gUnknown_03004DE0
-_080DFB20: .4byte gSineTable
-_080DFB24: .4byte gUnknown_03004DC0
- thumb_func_end sub_80DFAB0
-
- thumb_func_start sub_80DFB28
-sub_80DFB28: @ 80DFB28
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080DFBC8 @ =gBattleAnimArgs
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x5
- bl __divsi3
- adds r6, r0, 0
- ldr r1, _080DFBCC @ =gAnimBankAttacker
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r5, 0x8]
- adds r0, r3
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r4, 0x30]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- lsls r6, 16
- asrs r6, 16
- adds r1, r6, 0
- bl Sin
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- ldrh r2, [r5]
- adds r3, r2, 0
- muls r3, r1
- adds r1, r3, 0
- ldrh r3, [r4, 0x20]
- adds r1, r3
- strh r1, [r4, 0x20]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x34]
- ldr r0, _080DFBD0 @ =sub_80DFBD8
- str r0, [r4, 0x1C]
- adds r4, 0x2E
- ldr r2, _080DFBD4 @ =gUnknown_03000730
- movs r1, 0x6
-_080DFBB0:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080DFBB0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFBC8: .4byte gBattleAnimArgs
-_080DFBCC: .4byte gAnimBankAttacker
-_080DFBD0: .4byte sub_80DFBD8
-_080DFBD4: .4byte gUnknown_03000730
- thumb_func_end sub_80DFB28
-
- thumb_func_start sub_80DFBD8
-sub_80DFBD8: @ 80DFBD8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _080DFC1C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DFC1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFBD8
-
- thumb_func_start sub_80DFC24
-sub_80DFC24: @ 80DFC24
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080DFC58 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080DFC5C @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r1, 0x8]
- ldr r0, _080DFC60 @ =gAnimBankAttacker
- ldrb r0, [r0]
- movs r2, 0x10
- strh r2, [r1, 0xA]
- ldr r1, _080DFC64 @ =REG_BLDALPHA
- strh r2, [r1]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFC70
- ldr r1, _080DFC68 @ =REG_BLDCNT
- ldr r2, _080DFC6C @ =0x00003f42
- b _080DFC74
- .align 2, 0
-_080DFC58: .4byte gTasks
-_080DFC5C: .4byte gBattleAnimArgs
-_080DFC60: .4byte gAnimBankAttacker
-_080DFC64: .4byte REG_BLDALPHA
-_080DFC68: .4byte REG_BLDCNT
-_080DFC6C: .4byte 0x00003f42
-_080DFC70:
- ldr r1, _080DFC8C @ =REG_BLDCNT
- ldr r2, _080DFC90 @ =0x00003f44
-_080DFC74:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DFC94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080DFC98 @ =sub_80DFC9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFC8C: .4byte REG_BLDCNT
-_080DFC90: .4byte 0x00003f44
-_080DFC94: .4byte gTasks
-_080DFC98: .4byte sub_80DFC9C
- thumb_func_end sub_80DFC24
-
- thumb_func_start sub_80DFC9C
-sub_80DFC9C: @ 80DFC9C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080DFD04 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- ldrb r3, [r4, 0x8]
- cmp r0, r3
- bne _080DFD18
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r2, 8
- orrs r1, r0
- movs r3, 0
- strh r1, [r4, 0xA]
- ldr r0, _080DFD08 @ =REG_BLDALPHA
- strh r1, [r0]
- strh r3, [r4, 0xC]
- cmp r2, 0x10
- bne _080DFD1E
- ldr r2, _080DFD0C @ =gSprites
- ldr r1, _080DFD10 @ =gObjectBankIDs
- ldr r0, _080DFD14 @ =gAnimBankAttacker
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimVisualTask
- b _080DFD1E
- .align 2, 0
-_080DFD04: .4byte gTasks
-_080DFD08: .4byte REG_BLDALPHA
-_080DFD0C: .4byte gSprites
-_080DFD10: .4byte gObjectBankIDs
-_080DFD14: .4byte gAnimBankAttacker
-_080DFD18:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080DFD1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFC9C
-
- thumb_func_start sub_80DFD24
-sub_80DFD24: @ 80DFD24
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DFD48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080DFD4C @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r1, 0x8]
- movs r2, 0x80
- lsls r2, 5
- strh r2, [r1, 0xA]
- ldr r0, _080DFD50 @ =sub_80DFD58
- str r0, [r1]
- ldr r0, _080DFD54 @ =REG_BLDALPHA
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080DFD48: .4byte gTasks
-_080DFD4C: .4byte gBattleAnimArgs
-_080DFD50: .4byte sub_80DFD58
-_080DFD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DFD24
-
- thumb_func_start sub_80DFD58
-sub_80DFD58: @ 80DFD58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080DFDA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- lsrs r1, r0, 8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- ldrb r3, [r2, 0x8]
- cmp r0, r3
- bne _080DFDB4
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r3, 8
- orrs r1, r0
- movs r0, 0
- strh r1, [r2, 0xA]
- ldr r5, _080DFDAC @ =REG_BLDALPHA
- strh r1, [r5]
- strh r0, [r2, 0xC]
- cmp r3, 0
- bne _080DFDBA
- ldr r0, _080DFDB0 @ =REG_BLDCNT
- strh r3, [r0]
- strh r3, [r5]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080DFDBA
- .align 2, 0
-_080DFDA8: .4byte gTasks
-_080DFDAC: .4byte REG_BLDALPHA
-_080DFDB0: .4byte REG_BLDCNT
-_080DFDB4:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
-_080DFDBA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFD58
-
- thumb_func_start sub_80DFDC0
-sub_80DFDC0: @ 80DFDC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080DFDE8 @ =REG_BLDALPHA
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DFDEC @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFDF8
- ldr r1, _080DFDF0 @ =REG_BLDCNT
- ldr r2, _080DFDF4 @ =0x00003f42
- b _080DFDFC
- .align 2, 0
-_080DFDE8: .4byte REG_BLDALPHA
-_080DFDEC: .4byte gAnimBankAttacker
-_080DFDF0: .4byte REG_BLDCNT
-_080DFDF4: .4byte 0x00003f42
-_080DFDF8:
- ldr r1, _080DFE0C @ =REG_BLDCNT
- ldr r2, _080DFE10 @ =0x00003f44
-_080DFDFC:
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFE0C: .4byte REG_BLDCNT
-_080DFE10: .4byte 0x00003f44
- thumb_func_end sub_80DFDC0
-
- thumb_func_start sub_80DFE14
-sub_80DFE14: @ 80DFE14
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080DFE80 @ =gAnimBankTarget
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldr r5, _080DFE84 @ =gAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- movs r0, 0x7E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078A5C
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldr r0, _080DFE88 @ =0x0000ffd8
- strh r0, [r4, 0x3A]
- ldr r1, _080DFE8C @ =sub_80DFE90
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFE80: .4byte gAnimBankTarget
-_080DFE84: .4byte gAnimBankAttacker
-_080DFE88: .4byte 0x0000ffd8
-_080DFE8C: .4byte sub_80DFE90
- thumb_func_end sub_80DFE14
-
- thumb_func_start sub_80DFE90
-sub_80DFE90: @ 80DFE90
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r5, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r2, r5, r0
- strh r2, [r4, 0x34]
- ldrh r3, [r4, 0x32]
- ldrh r6, [r4, 0x36]
- adds r1, r3, r6
- strh r1, [r4, 0x36]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- movs r6, 0x3C
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _080DFED2
- adds r0, r2, r5
- strh r0, [r4, 0x34]
- adds r1, r3
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
-_080DFED2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r6, [r4, 0x26]
- adds r0, r6
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- cmp r0, 0x7F
- ble _080DFF02
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x14
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_080DFF02:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080DFF14
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DFF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFE90
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
deleted file mode 100644
index e08d71083..000000000
--- a/asm/easy_chat.s
+++ /dev/null
@@ -1,10732 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80E60D8
-sub_80E60D8: @ 80E60D8
- push {r4-r7,lr}
- movs r4, 0x3
- ldr r0, _080E60F4 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xD
- bls _080E60E8
- b _080E6284
-_080E60E8:
- lsls r0, r1, 2
- ldr r1, _080E60F8 @ =_080E60FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E60F4: .4byte gSpecialVar_0x8004
-_080E60F8: .4byte _080E60FC
- .align 2, 0
-_080E60FC:
- .4byte _080E6134
- .4byte _080E613C
- .4byte _080E6144
- .4byte _080E614C
- .4byte _080E6154
- .4byte _080E619C
- .4byte _080E616C
- .4byte _080E61BC
- .4byte _080E61E0
- .4byte _080E61FC
- .4byte _080E6200
- .4byte _080E6214
- .4byte _080E623C
- .4byte _080E6260
-_080E6134:
- ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C
- b _080E624C
- .align 2, 0
-_080E6138: .4byte gSaveBlock1 + 0x2B1C
-_080E613C:
- ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28
- b _080E6276
- .align 2, 0
-_080E6140: .4byte gSaveBlock1 + 0x2B28
-_080E6144:
- ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34
- b _080E624C
- .align 2, 0
-_080E6148: .4byte gSaveBlock1 + 0x2B34
-_080E614C:
- ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40
- b _080E6276
- .align 2, 0
-_080E6150: .4byte gSaveBlock1 + 0x2B40
-_080E6154:
- ldr r0, _080E6164 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0, r1
- b _080E624C
- .align 2, 0
-_080E6164: .4byte gSpecialVar_0x8005
-_080E6168: .4byte gSaveBlock1 + 0x2B4C
-_080E616C:
- ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- ldr r1, _080E6198 @ =sub_80546B8
- mov r12, r1
- adds r3, r0, 0
- adds r3, 0xE
- adds r5, r0, 0x2
- adds r6, r3, 0
-_080E617C:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080E617C
- adds r1, r6, 0
- b _080E627A
- .align 2, 0
-_080E6194: .4byte gSaveBlock1 + 0x2D94
-_080E6198: .4byte sub_80546B8
-_080E619C:
- ldr r0, _080E61B0 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C
- adds r1, r0, r1
- ldr r0, _080E61B8 @ =gSpecialVar_0x8006
- ldrb r4, [r0]
- b _080E6276
- .align 2, 0
-_080E61B0: .4byte gSpecialVar_0x8005
-_080E61B4: .4byte gSaveBlock1 + 0x273C
-_080E61B8: .4byte gSpecialVar_0x8006
-_080E61BC:
- ldr r0, _080E61D4 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754
- adds r1, r0
- ldr r0, _080E61DC @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- b _080E624A
- .align 2, 0
-_080E61D4: .4byte gSpecialVar_0x8005
-_080E61D8: .4byte gSaveBlock1 + 0x2754
-_080E61DC: .4byte gSpecialVar_0x8006
-_080E61E0:
- ldr r0, _080E61F4 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A
- adds r1, r0, r1
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E61F4: .4byte gSpecialVar_0x8005
-_080E61F8: .4byte gSaveBlock1 + 0x273A
-_080E61FC:
- movs r1, 0
- b _080E624C
-_080E6200:
- ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16
- ldr r2, _080E6210 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- b _080E624A
- .align 2, 0
-_080E620C: .4byte gSaveBlock1 + 0x2B16
-_080E6210: .4byte 0x0000ffff
-_080E6214:
- ldr r0, _080E6230 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C
- adds r1, r0
- ldr r0, _080E6238 @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E6230: .4byte gSpecialVar_0x8005
-_080E6234: .4byte gSaveBlock1 + 0x273C
-_080E6238: .4byte gSpecialVar_0x8006
-_080E623C:
- ldr r0, _080E6254 @ =gSpecialVar_0x8005
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750
- adds r1, r0, r1
-_080E624A:
- movs r4, 0x1
-_080E624C:
- ldr r0, _080E625C @ =sub_80546B8
- mov r12, r0
- b _080E627A
- .align 2, 0
-_080E6254: .4byte gSpecialVar_0x8005
-_080E6258: .4byte gSaveBlock1 + 0x2750
-_080E625C: .4byte sub_80546B8
-_080E6260:
- ldr r1, _080E628C @ =gSharedMem + 0x1000
- ldr r0, _080E6290 @ =0x00009c7c
- adds r2, r1, r0
- ldr r0, _080E6294 @ =0x0000ffff
- strh r0, [r2]
- ldr r0, _080E6298 @ =0x00009c7e
- adds r1, r0
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- adds r1, r2, 0
-_080E6276:
- ldr r2, _080E629C @ =sub_80546B8
- mov r12, r2
-_080E627A:
- ldrb r0, [r7]
- mov r2, r12
- adds r3, r4, 0
- bl sub_80E62A0
-_080E6284:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E628C: .4byte gSharedMem + 0x1000
-_080E6290: .4byte 0x00009c7c
-_080E6294: .4byte 0x0000ffff
-_080E6298: .4byte 0x00009c7e
-_080E629C: .4byte sub_80546B8
- thumb_func_end sub_80E60D8
-
- thumb_func_start sub_80E62A0
-sub_80E62A0: @ 80E62A0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080E62DC @ =gSharedMem + 0x1000
- str r2, [r4]
- str r1, [r4, 0x4]
- strb r0, [r4, 0x8]
- strb r3, [r4, 0xB]
- cmp r0, 0x9
- bne _080E62D0
- ldr r0, _080E62E0 @ =0x00009c7c
- adds r2, r4, r0
- str r2, [r4, 0x4]
- ldr r0, _080E62E4 @ =gSaveBlock1
- ldr r3, _080E62E8 @ =0x00002dd8
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2]
- ldr r1, _080E62EC @ =0x00002dda
- adds r0, r1
- ldrh r1, [r0]
- ldr r2, _080E62F0 @ =0x00009c7e
- adds r0, r4, r2
- strh r1, [r0]
-_080E62D0:
- ldr r0, _080E62F4 @ =sub_80E62F8
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E62DC: .4byte gSharedMem + 0x1000
-_080E62E0: .4byte 0x00009c7c
-_080E62E4: .4byte gSaveBlock1
-_080E62E8: .4byte 0x00002dd8
-_080E62EC: .4byte 0x00002dda
-_080E62F0: .4byte 0x00009c7e
-_080E62F4: .4byte sub_80E62F8
- thumb_func_end sub_80E62A0
-
- thumb_func_start sub_80E62F8
-sub_80E62F8: @ 80E62F8
- push {lr}
- sub sp, 0x4
- ldr r0, _080E6314 @ =gMain
- ldr r1, _080E6318 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080E6344
- lsls r0, 2
- ldr r1, _080E631C @ =_080E6320
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6314: .4byte gMain
-_080E6318: .4byte 0x0000043c
-_080E631C: .4byte _080E6320
- .align 2, 0
-_080E6320:
- .4byte _080E6344
- .4byte _080E6380
- .4byte _080E638C
- .4byte _080E63A8
- .4byte _080E63AE
- .4byte _080E63B4
- .4byte _080E63BE
- .4byte _080E63D8
- .4byte _080E63EA
-_080E6344:
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetSpriteData
- bl dp12_8087EA4
- bl remove_some_task
- bl sub_80EAD08
- ldr r2, _080E637C @ =gUnknown_083DB698
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80895F8
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- b _080E6402
- .align 2, 0
-_080E637C: .4byte gUnknown_083DB698
-_080E6380:
- ldr r0, _080E6388 @ =gWindowConfig_81E6DA8
- bl SetUpWindowConfig
- b _080E6402
- .align 2, 0
-_080E6388: .4byte gWindowConfig_81E6DA8
-_080E638C:
- ldr r0, _080E63A0 @ =gWindowConfig_81E6D54
- bl InitMenuWindow
- ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _080E6402
- .align 2, 0
-_080E63A0: .4byte gWindowConfig_81E6D54
-_080E63A4: .4byte gWindowConfig_81E6DA8
-_080E63A8:
- bl sub_80E6424
- b _080E6402
-_080E63AE:
- bl sub_80E8DD8
- b _080E6402
-_080E63B4:
- bl sub_80E8218
- bl sub_80E8CEC
- b _080E6402
-_080E63BE:
- bl sub_80E69F8
- ldr r0, _080E63D0 @ =sub_80E6AA8
- bl sub_80E682C
- ldr r0, _080E63D4 @ =sub_80E6A6C
- bl SetVBlankCallback
- b _080E6402
- .align 2, 0
-_080E63D0: .4byte sub_80E6AA8
-_080E63D4: .4byte sub_80E6A6C
-_080E63D8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080E6402
-_080E63EA:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E6414 @ =sub_80E6A88
- bl SetMainCallback2
- ldr r0, _080E6418 @ =0x00000805
- bl FlagSet
-_080E6402:
- ldr r1, _080E641C @ =gMain
- ldr r0, _080E6420 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080E6414: .4byte sub_80E6A88
-_080E6418: .4byte 0x00000805
-_080E641C: .4byte gMain
-_080E6420: .4byte 0x0000043c
- thumb_func_end sub_80E62F8
-
- thumb_func_start sub_80E6424
-sub_80E6424: @ 80E6424
- push {lr}
- ldr r2, _080E6444 @ =gSharedMem + 0x1000
- ldr r0, _080E6448 @ =gUnknown_083DB6A4
- ldrb r1, [r2, 0x8]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2, 0x9]
- ldrb r0, [r2, 0x9]
- adds r3, r2, 0
- cmp r0, 0x5
- bhi _080E6512
- lsls r0, 2
- ldr r1, _080E644C @ =_080E6450
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6444: .4byte gSharedMem + 0x1000
-_080E6448: .4byte gUnknown_083DB6A4
-_080E644C: .4byte _080E6450
- .align 2, 0
-_080E6450:
- .4byte _080E64A0
- .4byte _080E64B8
- .4byte _080E64DA
- .4byte _080E64F6
- .4byte _080E6468
- .4byte _080E6480
-_080E6468:
- movs r2, 0x4
- strb r2, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- movs r1, 0x2
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x5
- b _080E64D0
-_080E6480:
- movs r1, 0x4
- strb r1, [r3, 0xA]
- adds r2, r3, 0
- adds r2, 0x83
- movs r0, 0x1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x84
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- b _080E6510
-_080E64A0:
- movs r0, 0x6
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x84
- movs r2, 0x3
- strb r2, [r0]
- adds r1, 0x5
- b _080E64CE
-_080E64B8:
- movs r2, 0
- movs r0, 0x9
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x5
- strb r0, [r1]
- adds r1, 0x4
-_080E64CE:
- movs r0, 0x4
-_080E64D0:
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8A
- strh r2, [r0]
- b _080E6512
-_080E64DA:
- movs r1, 0x1
- strb r1, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- b _080E6510
-_080E64F6:
- movs r0, 0x2
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3
-_080E6510:
- strh r0, [r1]
-_080E6512:
- adds r1, r3, 0
- adds r1, 0x86
- movs r0, 0
- strb r0, [r1]
- subs r1, 0x1
- strb r0, [r1]
- adds r1, 0x2
- strb r0, [r1]
- subs r1, 0x61
- strb r0, [r1]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- movs r0, 0xDF
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80E6554
- bl sub_80EAECC
- bl sub_80EB040
- bl sub_80E7E50
- bl sub_80E6630
- bl sub_80E6690
- pop {r0}
- bx r0
- thumb_func_end sub_80E6424
-
- thumb_func_start sub_80E6554
-sub_80E6554: @ 80E6554
- push {r4-r7,lr}
- sub sp, 0x4
- movs r4, 0
- movs r7, 0
- ldr r0, _080E6564 @ =gSharedMem + 0x1000
- mov r12, r0
- b _080E656E
- .align 2, 0
-_080E6564: .4byte gSharedMem + 0x1000
-_080E6568:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080E656E:
- movs r5, 0
- lsls r3, r7, 1
- mov r6, r12
- adds r6, 0x2A
- adds r2, r3, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- beq _080E65A6
-_080E6586:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bhi _080E65A2
- adds r2, r5, r3
- adds r2, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- bne _080E6586
-_080E65A2:
- cmp r4, 0x11
- bne _080E6568
-_080E65A6:
- movs r0, 0x11
- mov r1, r12
- strh r0, [r1, 0x28]
- cmp r4, 0x15
- bhi _080E6612
- mov r6, r12
- adds r2, r6, 0
- adds r2, 0x78
-_080E65B6:
- lsls r0, r4, 24
- lsrs r0, 24
- str r2, [sp]
- bl sub_80EAD7C
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [sp]
- cmp r1, 0
- beq _080E65FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E65DC
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
-_080E65DC:
- lsls r0, r7, 1
- adds r0, r5, r0
- adds r1, r6, 0
- adds r1, 0x2A
- adds r0, r1
- strb r4, [r0]
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r6, 0x28]
- adds r0, 0x1
- strh r0, [r6, 0x28]
- mov r12, r6
- b _080E6608
-_080E65FC:
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- strb r1, [r0]
- ldr r0, _080E662C @ =gSharedMem + 0x1000
- mov r12, r0
-_080E6608:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x15
- bls _080E65B6
-_080E6612:
- mov r1, r12
- ldrh r0, [r1, 0x28]
- adds r0, 0x1
- asrs r0, 1
- movs r1, 0xDB
- lsls r1, 1
- add r1, r12
- strb r0, [r1]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E662C: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E6554
-
- thumb_func_start sub_80E6630
-sub_80E6630: @ 80E6630
- push {r4-r7,lr}
- movs r1, 0
- ldr r0, _080E6664 @ =gUnknown_083DB6B2
- mov r12, r0
-_080E6638:
- lsls r0, r1, 4
- mov r2, r12
- adds r5, r0, r2
- movs r3, 0
- ldrb r0, [r5]
- adds r7, r1, 0x1
- cmp r0, 0xFF
- beq _080E6680
- lsls r0, r1, 3
- subs r0, r1
- lsls r4, r0, 1
- ldr r6, _080E6668 @ =gSharedMem + 0x1040
-_080E6650:
- adds r0, r5, r3
- ldrb r1, [r0]
- adds r2, r1, 0
- cmp r2, 0
- beq _080E666C
- adds r0, r3, r4
- adds r0, r6
- adds r1, 0x46
- strb r1, [r0]
- b _080E6672
- .align 2, 0
-_080E6664: .4byte gUnknown_083DB6B2
-_080E6668: .4byte gSharedMem + 0x1040
-_080E666C:
- adds r0, r3, r4
- adds r0, r6
- strb r2, [r0]
-_080E6672:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E6650
-_080E6680:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080E6638
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E6630
-
- thumb_func_start sub_80E6690
-sub_80E6690: @ 80E6690
- push {r4-r6,lr}
- sub sp, 0x10
- mov r0, sp
- ldr r1, _080E66E0 @ =gUnknown_083DB7DC
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldr r1, [r1]
- str r1, [r0]
- movs r5, 0
- ldr r6, _080E66E4 @ =gUnknown_083DB7C0
-_080E66A4:
- ldr r0, _080E66E8 @ =gSharedMem + 0x1000
- ldrb r0, [r0, 0x8]
- lsls r0, 1
- adds r0, r5, r0
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E66EC @ =gUnknown_083DB6F4
- adds r4, r0, r1
- lsls r0, r5, 3
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4]
- bl StringCopy
- adds r3, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _080E66F0
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4, 0x4]
- bl StringCopy
- b _080E670A
- .align 2, 0
-_080E66E0: .4byte gUnknown_083DB7DC
-_080E66E4: .4byte gUnknown_083DB7C0
-_080E66E8: .4byte gSharedMem + 0x1000
-_080E66EC: .4byte gUnknown_083DB6F4
-_080E66F0:
- strb r0, [r3]
- adds r3, 0x1
- ldr r1, [r4, 0x4]
- adds r0, r3, 0
- bl StringCopy
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1]
-_080E670A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E66A4
- movs r5, 0
- ldr r3, _080E6758 @ =gSharedMem + 0x1000
- ldr r0, _080E675C @ =0x00009da4
- adds r2, r3, r0
- movs r1, 0
-_080E671E:
- adds r0, r5, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x23
- bls _080E671E
- ldr r1, _080E675C @ =0x00009da4
- adds r0, r3, r1
- adds r0, r5, r0
- movs r4, 0x1
- negs r4, r4
- adds r2, r4, 0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _080E6760 @ =0x00009f6e
- adds r3, r0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x11
- strb r0, [r3, 0x1]
- movs r0, 0xE0
- strb r0, [r3, 0x2]
- strb r2, [r3, 0x3]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6758: .4byte gSharedMem + 0x1000
-_080E675C: .4byte 0x00009da4
-_080E6760: .4byte 0x00009f6e
- thumb_func_end sub_80E6690
-
- thumb_func_start InitEasyChatPhrases
-InitEasyChatPhrases: @ 80E6764
- push {r4-r6,lr}
- movs r3, 0
- ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
- ldr r2, _080E6810 @ =gUnknown_083DB7EC
-_080E676C:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080E676C
- movs r3, 0
- ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28
- ldr r2, _080E6818 @ =gUnknown_083DB7F4
-_080E6786:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E6786
- movs r3, 0
- ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34
- ldr r0, _080E6820 @ =0x0000ffff
- adds r4, r0, 0
- adds r6, r5, 0
- adds r6, 0xC
-_080E67A6:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r2]
- orrs r0, r4
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E67A6
- movs r3, 0
- ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C
- ldr r0, _080E6820 @ =0x0000ffff
- adds r5, r0, 0
-_080E67CA:
- movs r2, 0
- lsls r0, r3, 3
- adds r0, r3
- lsls r4, r0, 2
-_080E67D2:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x8
- bls _080E67D2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080E67CA
- movs r3, 0
- ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C
- movs r1, 0
-_080E67F8:
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080E67F8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E680C: .4byte gSaveBlock1 + 0x2B1C
-_080E6810: .4byte gUnknown_083DB7EC
-_080E6814: .4byte gSaveBlock1 + 0x2B28
-_080E6818: .4byte gUnknown_083DB7F4
-_080E681C: .4byte gSaveBlock1 + 0x2B34
-_080E6820: .4byte 0x0000ffff
-_080E6824: .4byte gSaveBlock1 + 0x2B4C
-_080E6828: .4byte gSaveBlock1 + 0x2D8C
- thumb_func_end InitEasyChatPhrases
-
- thumb_func_start sub_80E682C
-sub_80E682C: @ 80E682C
- ldr r1, _080E6838 @ =gSharedMem + 0x1000
- str r0, [r1, 0x20]
- movs r0, 0
- strh r0, [r1, 0x24]
- bx lr
- .align 2, 0
-_080E6838: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E682C
-
- thumb_func_start sub_80E683C
-sub_80E683C: @ 80E683C
- push {r4,r5,lr}
- ldr r1, _080E6890 @ =gSharedMem + 0x1000
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0
- bne _080E6898
- movs r1, 0
- movs r0, 0xDB
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- bge _080E6876
- movs r0, 0xD5
- lsls r0, 1
- adds r5, r2, r0
- movs r4, 0x2
-_080E6864:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- blt _080E6864
-_080E6876:
- adds r0, r2, r1
- ldr r1, _080E6894 @ =0x000001a9
- adds r3, r0, r1
- ldrh r0, [r2, 0x28]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r3]
- cmp r0, 0
- bne _080E68B8
- movs r0, 0x2
- strb r0, [r3]
- b _080E68B8
- .align 2, 0
-_080E6890: .4byte gSharedMem + 0x1000
-_080E6894: .4byte 0x000001a9
-_080E6898:
- movs r3, 0xD5
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0x7
- strb r0, [r1]
- ldr r1, _080E68E0 @ =0x000001ab
- adds r3, r2, r1
- movs r1, 0x6
- strb r1, [r3]
- movs r3, 0xD6
- lsls r3, 1
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x1
- adds r1, r2, r3
- strb r0, [r1]
-_080E68B8:
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r3, _080E68E4 @ =0x000001a9
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0xC
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x2
- adds r1, r2, r3
- strb r0, [r1]
- bl sub_80E9A4C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E68E0: .4byte 0x000001ab
-_080E68E4: .4byte 0x000001a9
- thumb_func_end sub_80E683C
-
- thumb_func_start sub_80E68E8
-sub_80E68E8: @ 80E68E8
- push {r4-r6,lr}
- bl sub_80EB0B0
- ldr r3, _080E694C @ =gSharedMem + 0x1000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E695C
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E6950 @ =0x00004178
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E6954 @ =0x00009a28
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E693A
- ldr r3, _080E6958 @ =0x000099a6
- adds r4, r5, r3
- movs r3, 0x2
-_080E6928:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E6928
-_080E693A:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E6958 @ =0x000099a6
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E6950 @ =0x00004178
- b _080E69AC
- .align 2, 0
-_080E694C: .4byte gSharedMem + 0x1000
-_080E6950: .4byte 0x00004178
-_080E6954: .4byte 0x00009a28
-_080E6958: .4byte 0x000099a6
-_080E695C:
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E69E0 @ =0x00004142
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E69E4 @ =0x00009a28
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E699C
- ldr r3, _080E69E8 @ =0x000099a6
- adds r4, r5, r3
- movs r3, 0x2
-_080E698A:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E698A
-_080E699C:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E69E8 @ =0x000099a6
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E69E0 @ =0x00004142
-_080E69AC:
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0
- bne _080E69C0
- movs r0, 0x2
- strb r0, [r2]
-_080E69C0:
- ldr r1, _080E69EC @ =0x000099a4
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080E69F0 @ =0x000099a5
- adds r0, r5, r2
- strb r1, [r0]
- ldr r3, _080E69F4 @ =0x00009a29
- adds r0, r5, r3
- strb r1, [r0]
- bl sub_80E9A4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E69E0: .4byte 0x00004142
-_080E69E4: .4byte 0x00009a28
-_080E69E8: .4byte 0x000099a6
-_080E69EC: .4byte 0x000099a4
-_080E69F0: .4byte 0x000099a5
-_080E69F4: .4byte 0x00009a29
- thumb_func_end sub_80E68E8
-
- thumb_func_start sub_80E69F8
-sub_80E69F8: @ 80E69F8
- push {r4,lr}
- ldr r0, _080E6A10 @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0x8]
- adds r4, r0, 0
- cmp r1, 0xD
- bhi _080E6A50
- lsls r0, r1, 2
- ldr r1, _080E6A14 @ =_080E6A18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6A10: .4byte gSharedMem + 0x1000
-_080E6A14: .4byte _080E6A18
- .align 2, 0
-_080E6A18:
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
-_080E6A50:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- b _080E6A66
-_080E6A58:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- bl sub_80E8BF4
-_080E6A66:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E69F8
-
- thumb_func_start sub_80E6A6C
-sub_80E6A6C: @ 80E6A6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_80EAC5C
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80E6A6C
-
- thumb_func_start sub_80E6A88
-sub_80E6A88: @ 80E6A88
- push {lr}
- ldr r0, _080E6AA4 @ =gSharedMem + 0x1000
- ldr r0, [r0, 0x20]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl sub_80EAD08
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AA4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E6A88
-
- thumb_func_start sub_80E6AA8
-sub_80E6AA8: @ 80E6AA8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E6ABA
- ldr r0, _080E6AC0 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6ABA:
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AC0: .4byte sub_80E6AC4
- thumb_func_end sub_80E6AA8
-
- thumb_func_start sub_80E6AC4
-sub_80E6AC4: @ 80E6AC4
- push {lr}
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8398
- movs r0, 0
- bl sub_80E91D4
- ldr r0, _080E6AE0 @ =sub_80E6AE4
- bl sub_80E682C
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AE0: .4byte sub_80E6AE4
- thumb_func_end sub_80E6AC4
-
- thumb_func_start sub_80E6AE4
-sub_80E6AE4: @ 80E6AE4
- push {r4,r5,lr}
- bl sub_80E75D8
- ldr r4, _080E6B44 @ =gSharedMem + 0x1000
- adds r1, r4, 0
- adds r1, 0x87
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080E6AFE
- movs r0, 0x5
- bl PlaySE
-_080E6AFE:
- ldr r2, _080E6B48 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _080E6BA4
- movs r0, 0x5
- bl PlaySE
- adds r1, r4, 0
- adds r1, 0x86
- adds r0, r4, 0
- adds r0, 0x84
- ldrb r2, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E6B78
- adds r0, r4, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080E6B60
- cmp r0, 0x1
- bgt _080E6B4C
- cmp r0, 0
- beq _080E6B52
- b _080E6BA4
- .align 2, 0
-_080E6B44: .4byte gSharedMem + 0x1000
-_080E6B48: .4byte gMain
-_080E6B4C:
- cmp r0, 0x2
- beq _080E6B6C
- b _080E6BA4
-_080E6B52:
- ldr r0, _080E6B5C @ =sub_80E6BC0
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B5C: .4byte sub_80E6BC0
-_080E6B60:
- ldr r0, _080E6B68 @ =sub_80E6C84
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B68: .4byte sub_80E6C84
-_080E6B6C:
- ldr r0, _080E6B74 @ =sub_80E6D7C
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B74: .4byte sub_80E6D7C
-_080E6B78:
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x85
- adds r3, r0, 0
- muls r3, r2
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x27
- strb r0, [r1]
- bl sub_80E7574
- ldr r0, _080E6BA0 @ =sub_80E6F68
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6BA0: .4byte sub_80E6F68
-_080E6BA4:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6BB4
- ldr r0, _080E6BBC @ =sub_80E6C84
- bl sub_80E682C
-_080E6BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6BBC: .4byte sub_80E6C84
- thumb_func_end sub_80E6AE4
-
- thumb_func_start sub_80E6BC0
-sub_80E6BC0: @ 80E6BC0
- push {r4,lr}
- ldr r4, _080E6BD4 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6C12
- cmp r0, 0x1
- bgt _080E6BD8
- cmp r0, 0
- beq _080E6BE2
- b _080E6C76
- .align 2, 0
-_080E6BD4: .4byte gSharedMem + 0x1000
-_080E6BD8:
- cmp r0, 0x2
- beq _080E6C54
- cmp r0, 0x64
- beq _080E6C64
- b _080E6C76
-_080E6BE2:
- movs r0, 0x2
- bl sub_80E8398
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6BFA
- movs r0, 0x6
- bl sub_80E91D4
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6BFA:
- movs r0, 0x2
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- b _080E6C3E
-_080E6C12:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6C32
- cmp r1, 0
- bgt _080E6C2C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6C46
- b _080E6C76
-_080E6C2C:
- cmp r1, 0x1
- beq _080E6C46
- b _080E6C76
-_080E6C32:
- bl sub_80E7D6C
- bl sub_80E98C4
- bl sub_80E95A4
-_080E6C3E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6C46:
- ldr r1, _080E6C50 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6C76
- .align 2, 0
-_080E6C50: .4byte gSharedMem + 0x1000
-_080E6C54:
- bl sub_80E81FC
- ldr r0, _080E6C60 @ =sub_80E6AC4
- bl sub_80E682C
- b _080E6C76
- .align 2, 0
-_080E6C60: .4byte sub_80E6AC4
-_080E6C64:
- ldr r0, _080E6C7C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6C76
- ldr r0, _080E6C80 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6C7C: .4byte gMain
-_080E6C80: .4byte sub_80E6AC4
- thumb_func_end sub_80E6BC0
-
- thumb_func_start sub_80E6C84
-sub_80E6C84: @ 80E6C84
- push {r4,lr}
- ldr r4, _080E6C98 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6CF4
- cmp r0, 0x1
- bgt _080E6C9C
- cmp r0, 0
- beq _080E6CA6
- b _080E6D72
- .align 2, 0
-_080E6C98: .4byte gSharedMem + 0x1000
-_080E6C9C:
- cmp r0, 0x2
- beq _080E6D24
- cmp r0, 0xFF
- beq _080E6D64
- b _080E6D72
-_080E6CA6:
- movs r0, 0x2
- bl sub_80E8398
- movs r0, 0x3
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- ldrb r0, [r4, 0x8]
- cmp r0, 0x9
- beq _080E6CE8
- cmp r0, 0x4
- beq _080E6CE8
- cmp r0, 0x7
- beq _080E6CE8
- cmp r0, 0x8
- beq _080E6CE8
- cmp r0, 0xA
- beq _080E6CE8
- cmp r0, 0xB
- beq _080E6CE8
- cmp r0, 0xC
- beq _080E6CE8
- cmp r0, 0x5
- beq _080E6CE8
- cmp r0, 0xD
- bne _080E6D1C
-_080E6CE8:
- ldr r1, _080E6CF0 @ =gSharedMem + 0x1000
- movs r0, 0x2
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6CF0: .4byte gSharedMem + 0x1000
-_080E6CF4:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D06
- cmp r1, 0
- ble _080E6D34
- b _080E6D3E
-_080E6D06:
- movs r0, 0x4
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
-_080E6D1C:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6D72
-_080E6D24:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D44
- cmp r1, 0
- bgt _080E6D3E
-_080E6D34:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6D58
- b _080E6D72
-_080E6D3E:
- cmp r1, 0x1
- beq _080E6D58
- b _080E6D72
-_080E6D44:
- ldr r0, _080E6D50 @ =gSpecialVar_Result
- strh r1, [r0]
- ldr r0, _080E6D54 @ =sub_80E752C
- bl sub_80E682C
- b _080E6D72
- .align 2, 0
-_080E6D50: .4byte gSpecialVar_Result
-_080E6D54: .4byte sub_80E752C
-_080E6D58:
- ldr r1, _080E6D60 @ =gSharedMem + 0x1000
- movs r0, 0xFF
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6D60: .4byte gSharedMem + 0x1000
-_080E6D64:
- bl HandleDestroyMenuCursors
- bl sub_80E81FC
- ldr r0, _080E6D78 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6D72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6D78: .4byte sub_80E6AC4
- thumb_func_end sub_80E6C84
-
- thumb_func_start sub_80E6D7C
-sub_80E6D7C: @ 80E6D7C
- push {r4-r7,lr}
- ldr r5, _080E6D98 @ =gSharedMem + 0x1000
- ldrh r0, [r5, 0x24]
- cmp r0, 0xA
- bne _080E6D88
- b _080E6F06
-_080E6D88:
- cmp r0, 0xA
- bgt _080E6D9C
- cmp r0, 0
- beq _080E6DB6
- cmp r0, 0x1
- beq _080E6E3C
- b _080E6F5E
- .align 2, 0
-_080E6D98: .4byte gSharedMem + 0x1000
-_080E6D9C:
- cmp r0, 0x65
- bne _080E6DA2
- b _080E6F30
-_080E6DA2:
- cmp r0, 0x65
- bgt _080E6DAE
- cmp r0, 0x64
- bne _080E6DAC
- b _080E6F24
-_080E6DAC:
- b _080E6F5E
-_080E6DAE:
- cmp r0, 0x66
- bne _080E6DB4
- b _080E6F50
-_080E6DB4:
- b _080E6F5E
-_080E6DB6:
- movs r0, 0x2
- bl sub_80E8398
- bl sub_80E8054
- lsls r0, 24
- cmp r0, 0
- beq _080E6DCA
- movs r0, 0x5
- b _080E6DEE
-_080E6DCA:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6DFC
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6DDE
- movs r0, 0x8
- b _080E6DEE
-_080E6DDE:
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6DF8 @ =0x0000ffff
- cmp r0, r1
- beq _080E6DEC
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6DFC
-_080E6DEC:
- movs r0, 0x9
-_080E6DEE:
- bl sub_80E91D4
- movs r0, 0xA
- strh r0, [r5, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6DF8: .4byte 0x0000ffff
-_080E6DFC:
- ldr r0, _080E6E18 @ =gSharedMem + 0x1000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- bne _080E6E20
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6E20
- ldr r0, _080E6E1C @ =sub_80E6C84
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6E18: .4byte gSharedMem + 0x1000
-_080E6E1C: .4byte sub_80E6C84
-_080E6E20:
- movs r0, 0x1
- bl sub_80E91D4
- bl sub_80E9744
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- b _080E6F3C
-_080E6E3C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r6, r0, 24
- cmp r6, 0
- beq _080E6E5C
- cmp r6, 0
- bgt _080E6E56
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- beq _080E6EDC
- b _080E6F5E
-_080E6E56:
- cmp r6, 0x1
- beq _080E6EDC
- b _080E6F5E
-_080E6E5C:
- ldr r7, _080E6EC8 @ =gSpecialVar_Result
- bl sub_80E7FA8
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r0, 31
- strh r0, [r7]
- bl sub_80E7D9C
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _080E6E82
- ldr r4, _080E6ECC @ =gSpecialVar_0x8004
- bl sub_80E8094
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E82:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6E9C
- bl sub_80E81C0
- ldr r4, _080E6ECC @ =gSpecialVar_0x8004
- ldr r1, _080E6ED0 @ =0x00009c7c
- adds r0, r5, r1
- bl sub_80FA364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E9C:
- ldrb r0, [r5, 0x8]
- cmp r0, 0xD
- bne _080E6EBE
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6ED4 @ =0x0000ffff
- cmp r0, r1
- beq _080E6EB0
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6EB2
-_080E6EB0:
- strh r6, [r7]
-_080E6EB2:
- ldr r4, _080E6ECC @ =gSpecialVar_0x8004
- bl sub_80E810C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6EBE:
- ldr r0, _080E6ED8 @ =sub_80E752C
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6EC8: .4byte gSpecialVar_Result
-_080E6ECC: .4byte gSpecialVar_0x8004
-_080E6ED0: .4byte 0x00009c7c
-_080E6ED4: .4byte 0x0000ffff
-_080E6ED8: .4byte sub_80E752C
-_080E6EDC:
- bl HandleDestroyMenuCursors
- bl sub_80E81FC
- ldr r4, _080E6EFC @ =gSharedMem + 0x1000
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6F00
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6F00
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6EFC: .4byte gSharedMem + 0x1000
-_080E6F00:
- bl sub_80E95A4
- b _080E6F12
-_080E6F06:
- ldr r0, _080E6F1C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F12:
- ldr r0, _080E6F20 @ =sub_80E6AC4
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6F1C: .4byte gMain
-_080E6F20: .4byte sub_80E6AC4
-_080E6F24:
- movs r0, 0x7
- bl sub_80E91D4
- ldrh r0, [r5, 0x24]
- adds r0, 0x1
- strh r0, [r5, 0x24]
-_080E6F30:
- ldr r0, _080E6F48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F3C:
- ldr r1, _080E6F4C @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6F48: .4byte gMain
-_080E6F4C: .4byte gSharedMem + 0x1000
-_080E6F50:
- bl sub_80E7E50
- bl sub_80E95A4
- ldr r0, _080E6F64 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6F5E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6F64: .4byte sub_80E6AC4
- thumb_func_end sub_80E6D7C
-
- thumb_func_start sub_80E6F68
-sub_80E6F68: @ 80E6F68
- push {r4,lr}
- ldr r4, _080E6F78 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- cmp r0, 0
- beq _080E6F7C
- cmp r0, 0x1
- beq _080E6F9C
- b _080E6FBC
- .align 2, 0
-_080E6F78: .4byte gSharedMem + 0x1000
-_080E6F7C:
- movs r0, 0x1
- bl sub_80E8398
- movs r0, 0xA
- bl sub_80E91D4
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6FBC
-_080E6F9C:
- bl sub_80E9EA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6FBC
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E6FC4 @ =sub_80E6FC8
- bl sub_80E682C
-_080E6FBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6FC4: .4byte sub_80E6FC8
- thumb_func_end sub_80E6F68
-
- thumb_func_start sub_80E6FC8
-sub_80E6FC8: @ 80E6FC8
- push {r4,lr}
- bl sub_80E77C8
- adds r1, r0, 0
- ldr r4, _080E7000 @ =gSharedMem + 0x1000
- adds r0, r4, 0
- adds r0, 0x96
- strb r1, [r0]
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E700C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E7004 @ =sub_80E6FC8
- str r1, [r0]
- ldr r0, _080E7008 @ =sub_80E7458
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E7000: .4byte gSharedMem + 0x1000
-_080E7004: .4byte sub_80E6FC8
-_080E7008: .4byte sub_80E7458
-_080E700C:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E7018
- movs r0, 0x5
- bl PlaySE
-_080E7018:
- ldr r0, _080E7054 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E70E8
- ldr r2, _080E7058 @ =0x000001b7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7090
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- beq _080E7070
- cmp r0, 0x2
- bgt _080E705C
- cmp r0, 0x1
- beq _080E7062
- b _080E710A
- .align 2, 0
-_080E7054: .4byte gMain
-_080E7058: .4byte 0x000001b7
-_080E705C:
- cmp r0, 0x3
- beq _080E70F0
- b _080E710A
-_080E7062:
- ldr r0, _080E706C @ =sub_80E718C
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E706C: .4byte sub_80E718C
-_080E7070:
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- beq _080E710A
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- ldr r1, _080E708C @ =0x0000ffff
- bl sub_80E7F00
- bl sub_80E7574
- bl sub_80E95A4
- b _080E710A
- .align 2, 0
-_080E708C: .4byte 0x0000ffff
-_080E7090:
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E70CA
- ldr r2, _080E70DC @ =0x000001a9
- adds r0, r4, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r4, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 1
- ldr r2, _080E70E0 @ =0x00004142
- adds r1, r4, r2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080E710A
-_080E70CA:
- movs r0, 0x5
- bl PlaySE
- bl sub_80E7AD4
- ldr r0, _080E70E4 @ =sub_80E7218
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70DC: .4byte 0x000001a9
-_080E70E0: .4byte 0x00004142
-_080E70E4: .4byte sub_80E7218
-_080E70E8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E70FC
-_080E70F0:
- ldr r0, _080E70F8 @ =sub_80E7114
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70F8: .4byte sub_80E7114
-_080E70FC:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E710A
- ldr r0, _080E7110 @ =sub_80E718C
- bl sub_80E682C
-_080E710A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7110: .4byte sub_80E718C
- thumb_func_end sub_80E6FC8
-
- thumb_func_start sub_80E7114
-sub_80E7114: @ 80E7114
- push {lr}
- ldr r0, _080E712C @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E7182
- lsls r0, r1, 2
- ldr r1, _080E7130 @ =_080E7134
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E712C: .4byte gSharedMem + 0x1000
-_080E7130: .4byte _080E7134
- .align 2, 0
-_080E7134:
- .4byte _080E7148
- .4byte _080E715C
- .4byte _080E715C
- .4byte _080E7164
- .4byte _080E717C
-_080E7148:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8D8C
- b _080E716E
-_080E715C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E7182
-_080E7164:
- bl sub_80E9F50
- lsls r0, 24
- cmp r0, 0
- beq _080E7182
-_080E716E:
- ldr r1, _080E7178 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7182
- .align 2, 0
-_080E7178: .4byte gSharedMem + 0x1000
-_080E717C:
- ldr r0, _080E7188 @ =sub_80E6AC4
- bl sub_80E682C
-_080E7182:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7188: .4byte sub_80E6AC4
- thumb_func_end sub_80E7114
-
- thumb_func_start sub_80E718C
-sub_80E718C: @ 80E718C
- push {r4,lr}
- ldr r0, _080E71A4 @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r4, r0, 0
- cmp r1, 0x1
- beq _080E71C6
- cmp r1, 0x1
- bgt _080E71A8
- cmp r1, 0
- beq _080E71AE
- b _080E71EC
- .align 2, 0
-_080E71A4: .4byte gSharedMem + 0x1000
-_080E71A8:
- cmp r1, 0x8
- beq _080E71F4
- b _080E71EC
-_080E71AE:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- bl sub_80E8D54
- b _080E720E
-_080E71C6:
- bl sub_80E9FD4
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- movs r2, 0
- adds r1, r4, 0
- adds r1, 0x26
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E71DE
- movs r2, 0x1
-_080E71DE:
- strb r2, [r1]
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
-_080E71EC:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E720E
-_080E71F4:
- bl sub_80EA014
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E7214 @ =sub_80E6FC8
- bl sub_80E682C
-_080E720E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7214: .4byte sub_80E6FC8
- thumb_func_end sub_80E718C
-
- thumb_func_start sub_80E7218
-sub_80E7218: @ 80E7218
- push {r4,lr}
- ldr r4, _080E7230 @ =gSharedMem + 0x1000
- ldrh r0, [r4, 0x24]
- adds r1, r4, 0
- cmp r0, 0x9
- beq _080E7260
- cmp r0, 0x9
- bgt _080E7234
- cmp r0, 0x8
- beq _080E7244
- b _080E723C
- .align 2, 0
-_080E7230: .4byte gSharedMem + 0x1000
-_080E7234:
- cmp r0, 0xA
- beq _080E7276
- cmp r0, 0xB
- beq _080E7288
-_080E723C:
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7288
-_080E7244:
- movs r0, 0
- bl sub_80E8D8C
- bl sub_80E8504
- bl sub_80E9AD4
- bl sub_80E68E8
- bl sub_80E88F0
- bl sub_80E9E98
- b _080E726E
-_080E7260:
- bl sub_80EA050
- lsls r0, 24
- cmp r0, 0
- beq _080E7288
- bl sub_80E9C94
-_080E726E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7288
-_080E7276:
- movs r0, 0x1
- bl sub_80E87CC
- movs r0, 0x1
- bl sub_80E8958
- ldr r0, _080E7290 @ =sub_80E7294
- bl sub_80E682C
-_080E7288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7290: .4byte sub_80E7294
- thumb_func_end sub_80E7218
-
- thumb_func_start sub_80E7294
-sub_80E7294: @ 80E7294
- push {r4,lr}
- bl sub_80E7B40
- adds r1, r0, 0
- ldr r4, _080E72CC @ =gSharedMem + 0x1000
- ldr r2, _080E72D0 @ =0x000001b9
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, 0x7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E72DC
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E72D4 @ =sub_80E7294
- str r1, [r0]
- ldr r0, _080E72D8 @ =sub_80E7458
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E72CC: .4byte gSharedMem + 0x1000
-_080E72D0: .4byte 0x000001b9
-_080E72D4: .4byte sub_80E7294
-_080E72D8: .4byte sub_80E7458
-_080E72DC:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E72E8
- movs r0, 0x5
- bl PlaySE
-_080E72E8:
- ldr r0, _080E7304 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E730C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080E7308 @ =sub_80E7324
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E7304: .4byte gMain
-_080E7308: .4byte sub_80E7324
-_080E730C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E731A
- ldr r0, _080E7320 @ =sub_80E73D0
- bl sub_80E682C
-_080E731A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7320: .4byte sub_80E73D0
- thumb_func_end sub_80E7294
-
- thumb_func_start sub_80E7324
-sub_80E7324: @ 80E7324
- push {lr}
- ldr r0, _080E733C @ =gSharedMem + 0x1000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E73C6
- lsls r0, r1, 2
- ldr r1, _080E7340 @ =_080E7344
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E733C: .4byte gSharedMem + 0x1000
-_080E7340: .4byte _080E7344
- .align 2, 0
-_080E7344:
- .4byte _080E7358
- .4byte _080E737C
- .4byte _080E7384
- .4byte _080E738A
- .4byte _080E73A4
-_080E7358:
- bl sub_80E7DD0
- lsls r0, 24
- cmp r0, 0
- bne _080E7370
- ldr r0, _080E736C @ =sub_80E7294
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E736C: .4byte sub_80E7294
-_080E7370:
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E87CC
- b _080E7394
-_080E737C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E73C6
-_080E7384:
- bl sub_80E9E98
- b _080E7394
-_080E738A:
- bl sub_80EA184
- lsls r0, 24
- cmp r0, 0
- beq _080E73C6
-_080E7394:
- ldr r1, _080E73A0 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E73C6
- .align 2, 0
-_080E73A0: .4byte gSharedMem + 0x1000
-_080E73A4:
- ldrb r0, [r2, 0x8]
- cmp r0, 0x6
- bne _080E73C0
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E73C0
- ldr r0, _080E73BC @ =sub_80E6D7C
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E73BC: .4byte sub_80E6D7C
-_080E73C0:
- ldr r0, _080E73CC @ =sub_80E6AC4
- bl sub_80E682C
-_080E73C6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E73CC: .4byte sub_80E6AC4
- thumb_func_end sub_80E7324
-
- thumb_func_start sub_80E73D0
-sub_80E73D0: @ 80E73D0
- push {lr}
- ldr r0, _080E73E4 @ =gSharedMem + 0x1000
- ldrh r0, [r0, 0x24]
- cmp r0, 0x4
- bhi _080E744E
- lsls r0, 2
- ldr r1, _080E73E8 @ =_080E73EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E73E4: .4byte gSharedMem + 0x1000
-_080E73E8: .4byte _080E73EC
- .align 2, 0
-_080E73EC:
- .4byte _080E7400
- .4byte _080E740C
- .4byte _080E7416
- .4byte _080E742C
- .4byte _080E7444
-_080E7400:
- movs r0, 0
- bl sub_80E87CC
- bl sub_80E88F0
- b _080E7436
-_080E740C:
- bl sub_80E9AD4
- bl sub_80E9E98
- b _080E7436
-_080E7416:
- bl sub_80EA0E4
- lsls r0, 24
- cmp r0, 0
- beq _080E744E
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E9A14
- b _080E7436
-_080E742C:
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
-_080E7436:
- ldr r1, _080E7440 @ =gSharedMem + 0x1000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E744E
- .align 2, 0
-_080E7440: .4byte gSharedMem + 0x1000
-_080E7444:
- bl sub_80E9974
- ldr r0, _080E7454 @ =sub_80E6FC8
- bl sub_80E682C
-_080E744E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7454: .4byte sub_80E6FC8
- thumb_func_end sub_80E73D0
-
- thumb_func_start sub_80E7458
-sub_80E7458: @ 80E7458
- push {r4,r5,lr}
- ldr r4, _080E7468 @ =gSharedMem + 0x1000
- ldrh r5, [r4, 0x24]
- cmp r5, 0
- beq _080E746C
- cmp r5, 0x1
- beq _080E74A4
- b _080E7518
- .align 2, 0
-_080E7468: .4byte gSharedMem + 0x1000
-_080E746C:
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E7480 @ =sub_80E6FC8
- cmp r1, r0
- bne _080E7484
- bl sub_80E9D7C
- b _080E7488
- .align 2, 0
-_080E7480: .4byte sub_80E6FC8
-_080E7484:
- bl sub_80E9D00
-_080E7488:
- ldr r4, _080E74A0 @ =gSharedMem + 0x1000
- movs r2, 0xDF
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80E9E08
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7518
- .align 2, 0
-_080E74A0: .4byte gSharedMem + 0x1000
-_080E74A4:
- bl sub_80E9E54
- lsls r0, 24
- cmp r0, 0
- beq _080E7518
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E74DC @ =sub_80E6FC8
- cmp r1, r0
- bne _080E74E4
- bl sub_80E9D7C
- ldr r2, _080E74E0 @ =0x000001b5
- adds r1, r4, r2
- adds r2, 0xB
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7A98
- adds r0, r4, 0
- adds r0, 0x96
- b _080E74FE
- .align 2, 0
-_080E74DC: .4byte sub_80E6FC8
-_080E74E0: .4byte 0x000001b5
-_080E74E4:
- ldr r0, _080E7520 @ =0x00009a29
- adds r1, r4, r0
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7D30
- ldr r1, _080E7524 @ =0x000001b9
- adds r0, r4, r1
-_080E74FE:
- strb r5, [r0]
- ldr r1, _080E7528 @ =gSharedMem + 0x1000
- movs r0, 0xDF
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0x2
- strb r0, [r2]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- bl sub_80E682C
-_080E7518:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7520: .4byte 0x00009a29
-_080E7524: .4byte 0x000001b9
-_080E7528: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7458
-
- thumb_func_start sub_80E752C
-sub_80E752C: @ 80E752C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080E7540 @ =gSharedMem + 0x1000
- ldrh r1, [r4, 0x24]
- cmp r1, 0
- beq _080E7544
- cmp r1, 0x1
- beq _080E755C
- b _080E756C
- .align 2, 0
-_080E7540: .4byte gSharedMem + 0x1000
-_080E7544:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E756C
-_080E755C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E756C
- ldr r0, [r4]
- bl SetMainCallback2
-_080E756C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E752C
-
- thumb_func_start sub_80E7574
-sub_80E7574: @ 80E7574
- push {r4,r5,lr}
- ldr r4, _080E75B8 @ =gSharedMem + 0x1000
- ldrb r5, [r4, 0x8]
- cmp r5, 0x1
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r4, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- lsls r0, 1
- subs r1, 0x72
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- beq _080E75BC
- adds r0, r4, 0
- adds r0, 0x7D
- strb r5, [r0]
- adds r1, r4, 0
- b _080E75C6
- .align 2, 0
-_080E75B8: .4byte gSharedMem + 0x1000
-_080E75BC:
- ldr r1, _080E75D4 @ =gSharedMem + 0x1000
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0
- strb r0, [r2]
-_080E75C6:
- adds r1, 0x7D
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E75D4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7574
-
- thumb_func_start sub_80E75D8
-sub_80E75D8: @ 80E75D8
- push {r4-r6,lr}
- movs r4, 0
- ldr r2, _080E75FC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7604
- ldr r1, _080E7600 @ =gSharedMem + 0x1000
- adds r0, r1, 0
- adds r0, 0x84
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x86
- strb r0, [r2]
- adds r1, 0x85
- movs r0, 0x2
- b _080E768E
- .align 2, 0
-_080E75FC: .4byte gMain
-_080E7600: .4byte gSharedMem + 0x1000
-_080E7604:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E7630
- ldr r2, _080E762C @ =gSharedMem + 0x1000
- adds r1, r2, 0
- adds r1, 0x86
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E765C
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- strb r0, [r1]
- b _080E765C
- .align 2, 0
-_080E762C: .4byte gSharedMem + 0x1000
-_080E7630:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E7658
- ldr r0, _080E7684 @ =gSharedMem + 0x1000
- adds r3, r0, 0
- adds r3, 0x86
- ldrb r1, [r3]
- adds r1, 0x1
- strb r1, [r3]
- adds r0, 0x84
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- ble _080E7656
- strb r4, [r3]
-_080E7656:
- movs r4, 0x1
-_080E7658:
- cmp r4, 0
- beq _080E76EA
-_080E765C:
- ldr r2, _080E7684 @ =gSharedMem + 0x1000
- ldrb r3, [r2, 0x9]
- cmp r3, 0x2
- bne _080E7692
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7688
- adds r0, r2, 0
- adds r0, 0x85
- strb r3, [r0]
- b _080E77BC
- .align 2, 0
-_080E7684: .4byte gSharedMem + 0x1000
-_080E7688:
- adds r1, r2, 0
- adds r1, 0x85
- movs r0, 0
-_080E768E:
- strb r0, [r1]
- b _080E77BC
-_080E7692:
- movs r0, 0x85
- adds r0, r2
- mov r12, r0
- adds r4, r2, 0
- adds r4, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrb r3, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _080E76B0
- subs r0, r3, 0x1
- mov r1, r12
- strb r0, [r1]
-_080E76B0:
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r3, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- beq _080E77BC
- ldrb r0, [r4]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, 0
- mov r5, r12
- ldrb r5, [r5]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
- mov r6, r12
- strb r0, [r6]
- b _080E77BC
-_080E76EA:
- ldrh r2, [r2, 0x30]
- movs r0, 0x20
- ands r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080E7744
- ldr r2, _080E7728 @ =gSharedMem + 0x1000
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bge _080E77BC
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r4, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E772C
- movs r0, 0x2
- b _080E77BA
- .align 2, 0
-_080E7728: .4byte gSharedMem + 0x1000
-_080E772C:
- adds r0, r2, 0
- adds r0, 0x83
- ldrb r0, [r0]
- subs r1, r0, 0x1
- strb r1, [r3]
- adds r5, r4, 0
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0
- lsls r1, 24
- lsrs r0, r1, 24
- b _080E77B2
-_080E7744:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080E77C0
- ldr r2, _080E777C @ =gSharedMem + 0x1000
- adds r5, r2, 0
- adds r5, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- movs r1, 0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7780
- adds r1, r2, 0
- adds r1, 0x85
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- ble _080E77BC
- strb r4, [r1]
- b _080E77BC
- .align 2, 0
-_080E777C: .4byte gSharedMem + 0x1000
-_080E7780:
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r6, 0x83
- adds r6, r2
- mov r12, r6
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- blt _080E779E
- strb r4, [r3]
-_080E779E:
- ldrb r1, [r5]
- mov r4, r12
- ldrb r0, [r4]
- adds r5, r0, 0
- muls r5, r1
- adds r0, r5, 0
- ldrb r6, [r3]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
-_080E77B2:
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
-_080E77BA:
- strb r0, [r3]
-_080E77BC:
- movs r0, 0x1
- b _080E77C2
-_080E77C0:
- movs r0, 0
-_080E77C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E75D8
-
- thumb_func_start sub_80E77C8
-sub_80E77C8: @ 80E77C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r1, _080E780C @ =gSharedMem + 0x1000
- ldr r2, _080E7810 @ =0x000001b7
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r1, 0
- cmp r0, 0
- beq _080E783E
- ldr r1, _080E7814 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7818
- movs r4, 0xD4
- lsls r4, 1
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- ble _080E7806
- b _080E7948
-_080E7806:
- movs r0, 0x3
- strb r0, [r1]
- b _080E7948
- .align 2, 0
-_080E780C: .4byte gSharedMem + 0x1000
-_080E7810: .4byte 0x000001b7
-_080E7814: .4byte gMain
-_080E7818:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- bne _080E7822
- b _080E7950
-_080E7822:
- movs r5, 0xD4
- lsls r5, 1
- adds r1, r3, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080E7838
- b _080E7948
-_080E7838:
- movs r0, 0x1
- strb r0, [r1]
- b _080E7948
-_080E783E:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E789A
- movs r4, 0
- ldr r1, _080E7870 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7874
- movs r6, 0xD4
- lsls r6, 1
- adds r1, r3, r6
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E7944
- movs r0, 0x3
- strb r0, [r1]
- b _080E7944
- .align 2, 0
-_080E7870: .4byte gMain
-_080E7874:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E7894
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E7892
- strb r7, [r1]
-_080E7892:
- movs r4, 0x1
-_080E7894:
- cmp r4, 0
- beq _080E7950
- b _080E7944
-_080E789A:
- movs r4, 0
- movs r1, 0xE0
- lsls r1, 1
- adds r5, r3, r1
- strb r7, [r5]
- ldr r1, _080E78E0 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E78E8
- movs r2, 0xD4
- lsls r2, 1
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E78C4
- b _080E7A88
-_080E78C4:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E78E4 @ =0x000001b5
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7932
- movs r0, 0xFF
- strb r0, [r5]
- b _080E7932
- .align 2, 0
-_080E78E0: .4byte gMain
-_080E78E4: .4byte 0x000001b5
-_080E78E8:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E792E
- movs r0, 0xD4
- lsls r0, 1
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- movs r4, 0xDB
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E790E
- b _080E7A88
-_080E790E:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E794C @ =0x000001b5
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x3
- cmp r1, r0
- ble _080E792C
- movs r0, 0x1
- strb r0, [r5]
-_080E792C:
- movs r4, 0x1
-_080E792E:
- cmp r4, 0
- beq _080E7950
-_080E7932:
- movs r4, 0xE0
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7944
- b _080E7A88
-_080E7944:
- bl sub_80E7A98
-_080E7948:
- movs r0, 0x1
- b _080E7A8A
- .align 2, 0
-_080E794C: .4byte 0x000001b5
-_080E7950:
- ldrh r1, [r6, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _080E7992
- ldr r5, _080E7974 @ =0x000001a9
- adds r2, r3, r5
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080E7978
- subs r0, r1, 0x1
- strb r0, [r2]
- b _080E79E6
- .align 2, 0
-_080E7974: .4byte 0x000001a9
-_080E7978:
- movs r6, 0xD4
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r4, 0xD5
- lsls r4, 1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- b _080E79E6
-_080E7992:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E79E2
- ldr r5, _080E79D4 @ =0x000001b7
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E79CC
- ldr r0, _080E79D8 @ =0x000001a9
- adds r4, r3, r0
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD5
- lsls r2, 1
- adds r0, r3, r2
- adds r1, r0
- ldrb r5, [r4]
- movs r2, 0
- ldrsb r2, [r4, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E79DC
-_080E79CC:
- ldr r4, _080E79D8 @ =0x000001a9
- adds r0, r3, r4
- strb r6, [r0]
- b _080E79E0
- .align 2, 0
-_080E79D4: .4byte 0x000001b7
-_080E79D8: .4byte 0x000001a9
-_080E79DC:
- adds r0, r5, 0x1
- strb r0, [r4]
-_080E79E0:
- movs r7, 0x1
-_080E79E2:
- cmp r7, 0
- beq _080E7A88
-_080E79E6:
- adds r2, r3, 0
- ldr r5, _080E7A48 @ =0x000001b7
- adds r7, r2, r5
- ldrb r6, [r7]
- mov r9, r6
- movs r1, 0
- ldr r0, _080E7A4C @ =0x000001a9
- adds r0, r2
- mov r12, r0
- subs r5, 0xF
- adds r4, r2, r5
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r6, 0xD5
- lsls r6, 1
- adds r6, r2
- mov r8, r6
- add r0, r8
- mov r6, r12
- movs r5, 0
- ldrsb r5, [r6, r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E7A1C
- movs r1, 0x1
-_080E7A1C:
- strb r1, [r7]
- cmp r1, 0
- beq _080E7A58
- ldr r0, _080E7A50 @ =0x000001b5
- adds r1, r2, r0
- ldrb r0, [r4]
- ldrb r1, [r1]
- subs r0, r1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- beq _080E7A36
- b _080E7948
-_080E7A36:
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080E7A54 @ =0x000001ab
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r2, r12
- strb r0, [r2]
- b _080E7948
- .align 2, 0
-_080E7A48: .4byte 0x000001b7
-_080E7A4C: .4byte 0x000001a9
-_080E7A50: .4byte 0x000001b5
-_080E7A54: .4byte 0x000001ab
-_080E7A58:
- mov r6, r9
- cmp r6, 0
- bne _080E7A60
- b _080E7948
-_080E7A60:
- ldr r1, _080E7A84 @ =0x000001b5
- adds r0, r3, r1
- ldrb r0, [r0]
- ldrb r2, [r4]
- adds r0, r2
- strb r0, [r4]
- cmp r5, 0
- bne _080E7A72
- b _080E7948
-_080E7A72:
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r0, r8
- ldrb r0, [r0]
- subs r0, 0x1
- mov r4, r12
- strb r0, [r4]
- b _080E7948
- .align 2, 0
-_080E7A84: .4byte 0x000001b5
-_080E7A88:
- movs r0, 0
-_080E7A8A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E77C8
-
- thumb_func_start sub_80E7A98
-sub_80E7A98: @ 80E7A98
- push {lr}
- ldr r1, _080E7ACC @ =gSharedMem + 0x1000
- ldr r0, _080E7AD0 @ =0x000001a9
- adds r3, r1, r0
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0x2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r3, r1]
- ldrb r2, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080E7AC6
- subs r0, r2, 0x1
- strb r0, [r3]
-_080E7AC6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7ACC: .4byte gSharedMem + 0x1000
-_080E7AD0: .4byte 0x000001a9
- thumb_func_end sub_80E7A98
-
- thumb_func_start sub_80E7AD4
-sub_80E7AD4: @ 80E7AD4
- push {lr}
- ldr r3, _080E7B08 @ =gSharedMem + 0x1000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7B10
- ldr r1, _080E7B0C @ =0x000001a9
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x2A
- adds r1, r0
- ldrb r1, [r1]
- adds r2, 0x10
- b _080E7B34
- .align 2, 0
-_080E7B08: .4byte gSharedMem + 0x1000
-_080E7B0C: .4byte 0x000001a9
-_080E7B10:
- ldr r1, _080E7B3C @ =0x000001a9
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r1, 0x1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r3, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r1, [r2]
- movs r2, 0xDC
- lsls r2, 1
-_080E7B34:
- adds r0, r3, r2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B3C: .4byte 0x000001a9
- thumb_func_end sub_80E7AD4
-
- thumb_func_start sub_80E7B40
-sub_80E7B40: @ 80E7B40
- push {r4-r7,lr}
- movs r5, 0
- ldr r2, _080E7B8C @ =gSharedMem + 0x1000
- movs r0, 0xE0
- lsls r0, 1
- adds r6, r2, r0
- strb r5, [r6]
- ldr r1, _080E7B90 @ =gMain
- ldrh r4, [r1, 0x30]
- movs r0, 0x40
- ands r0, r4
- adds r3, r2, 0
- adds r7, r1, 0
- cmp r0, 0
- beq _080E7B9C
- ldr r2, _080E7B94 @ =0x000099a4
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E7B6E
- b _080E7D1A
-_080E7B6E:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E7B98 @ =0x00009a29
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7BF2
- movs r0, 0xFF
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7B8C: .4byte gSharedMem + 0x1000
-_080E7B90: .4byte gMain
-_080E7B94: .4byte 0x000099a4
-_080E7B98: .4byte 0x00009a29
-_080E7B9C:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _080E7BEE
- ldr r0, _080E7BE0 @ =0x000099a4
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r4, _080E7BE4 @ =0x00009a28
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E7BBE
- b _080E7D1A
-_080E7BBE:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E7BE8 @ =0x00009a29
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- cmp r1, r0
- blt _080E7BEC
- movs r0, 0x1
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7BE0: .4byte 0x000099a4
-_080E7BE4: .4byte 0x00009a28
-_080E7BE8: .4byte 0x00009a29
-_080E7BEC:
- movs r5, 0x1
-_080E7BEE:
- cmp r5, 0
- beq _080E7BFA
-_080E7BF2:
- bl sub_80E7D30
-_080E7BF6:
- movs r0, 0x1
- b _080E7D1C
-_080E7BFA:
- ldrh r1, [r7, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080E7C38
- ldr r4, _080E7C30 @ =0x000099a5
- adds r2, r3, r4
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bge _080E7BF6
- ldr r6, _080E7C34 @ =0x000099a4
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, 0x1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r2]
- b _080E7BF6
- .align 2, 0
-_080E7C30: .4byte 0x000099a5
-_080E7C34: .4byte 0x000099a4
-_080E7C38:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7C70
- ldr r6, _080E7C68 @ =0x000099a5
- adds r4, r3, r6
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r2, _080E7C6C @ =0x000099a4
- adds r1, r3, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r6, 0x1
- adds r1, r3, r6
- adds r2, r1
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r2, r1]
- cmp r0, r1
- blt _080E7BF6
- strb r5, [r4]
- b _080E7BF6
- .align 2, 0
-_080E7C68: .4byte 0x000099a5
-_080E7C6C: .4byte 0x000099a4
-_080E7C70:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7CC4
- ldr r1, _080E7CBC @ =0x00009a29
- adds r0, r3, r1
- ldrb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7CA2
- negs r0, r1
- movs r4, 0xE0
- lsls r4, 1
- adds r2, r3, r4
- strb r0, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E7CA2
- strb r1, [r2]
-_080E7CA2:
- ldr r6, _080E7CC0 @ =0x000099a4
- adds r1, r3, r6
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- ldrb r4, [r1]
- adds r0, r4
- strb r0, [r1]
- movs r6, 0xDF
- lsls r6, 1
- adds r1, r3, r6
- b _080E7D16
- .align 2, 0
-_080E7CBC: .4byte 0x00009a29
-_080E7CC0: .4byte 0x000099a4
-_080E7CC4:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E7D1A
- ldr r0, _080E7D24 @ =0x00009a29
- adds r4, r3, r0
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r6, _080E7D28 @ =0x00009a28
- adds r2, r3, r6
- movs r0, 0
- ldrsb r0, [r2, r0]
- subs r0, 0x4
- cmp r1, r0
- bge _080E7CFE
- ldrb r1, [r4]
- adds r1, 0x4
- ldrb r0, [r2]
- subs r0, r1
- movs r2, 0xE0
- lsls r2, 1
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _080E7CFE
- movs r0, 0x4
- strb r0, [r1]
-_080E7CFE:
- ldr r4, _080E7D2C @ =0x000099a4
- adds r1, r3, r4
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- movs r4, 0xDF
- lsls r4, 1
- adds r1, r3, r4
-_080E7D16:
- movs r0, 0x4
- strb r0, [r1]
-_080E7D1A:
- movs r0, 0
-_080E7D1C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7D24: .4byte 0x00009a29
-_080E7D28: .4byte 0x00009a28
-_080E7D2C: .4byte 0x000099a4
- thumb_func_end sub_80E7B40
-
- thumb_func_start sub_80E7D30
-sub_80E7D30: @ 80E7D30
- push {r4,lr}
- ldr r0, _080E7D60 @ =gSharedMem + 0x1000
- ldr r1, _080E7D64 @ =0x000099a5
- adds r4, r0, r1
- ldr r2, _080E7D68 @ =0x000099a4
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r2, 0x2
- adds r0, r2
- adds r1, r0
- movs r2, 0
- ldrsb r2, [r4, r2]
- ldrb r3, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- blt _080E7D5A
- subs r0, r3, 0x1
- strb r0, [r4]
-_080E7D5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D60: .4byte gSharedMem + 0x1000
-_080E7D64: .4byte 0x000099a5
-_080E7D68: .4byte 0x000099a4
- thumb_func_end sub_80E7D30
-
- thumb_func_start sub_80E7D6C
-sub_80E7D6C: @ 80E7D6C
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _080E7D94 @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0xA]
- cmp r4, r1
- bcs _080E7D8E
- adds r5, r0, 0
-_080E7D7A:
- adds r0, r4, 0
- ldr r1, _080E7D98 @ =0x0000ffff
- bl sub_80E7F00
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r5, 0xA]
- cmp r4, r0
- bcc _080E7D7A
-_080E7D8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D94: .4byte gSharedMem + 0x1000
-_080E7D98: .4byte 0x0000ffff
- thumb_func_end sub_80E7D6C
-
- thumb_func_start sub_80E7D9C
-sub_80E7D9C: @ 80E7D9C
- push {r4,r5,lr}
- movs r2, 0
- ldr r0, _080E7DCC @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0xA]
- cmp r2, r1
- bcs _080E7DC6
- adds r3, r0, 0
- ldr r4, [r3, 0x4]
- adds r5, r3, 0
- adds r5, 0xC
-_080E7DB0:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r5
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r3, 0xA]
- cmp r2, r0
- bcc _080E7DB0
-_080E7DC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7DCC: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7D9C
-
- thumb_func_start sub_80E7DD0
-sub_80E7DD0: @ 80E7DD0
- push {r4,lr}
- ldr r2, _080E7E28 @ =gSharedMem + 0x1000
- ldr r1, _080E7E2C @ =0x000099a5
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- ldr r3, _080E7E30 @ =0x000099a4
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r1, r0
- adds r3, 0x86
- adds r0, r2, r3
- adds r1, r0
- ldrh r4, [r1]
- adds r0, r2, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E7E34
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r2, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080E7E34
- adds r0, r4, 0
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bne _080E7E34
- movs r0, 0
- b _080E7E46
- .align 2, 0
-_080E7E28: .4byte gSharedMem + 0x1000
-_080E7E2C: .4byte 0x000099a5
-_080E7E30: .4byte 0x000099a4
-_080E7E34:
- ldr r0, _080E7E4C @ =gSharedMem + 0x1000
- adds r0, 0x27
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80E7F00
- bl sub_80E95A4
- movs r0, 0x1
-_080E7E46:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7E4C: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7DD0
-
- thumb_func_start sub_80E7E50
-sub_80E7E50: @ 80E7E50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r5, 0
- movs r2, 0
- ldr r1, _080E7EF0 @ =gSharedMem + 0x1000
- adds r3, r1, 0
- adds r3, 0x84
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r2, r0
- bge _080E7EDE
- mov r8, r1
- adds r0, r1, 0
- str r0, [sp]
-_080E7E74:
- mov r0, r8
- adds r0, 0x7E
- adds r0, r2, r0
- movs r1, 0
- strb r1, [r0]
- movs r3, 0
- ldr r6, _080E7EF4 @ =gSharedMem + 0x1083
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- cmp r3, r0
- bge _080E7ECE
- ldr r6, [sp]
- mov r12, r6
- movs r0, 0
- mov r10, r0
- ldr r1, _080E7EF4 @ =gSharedMem + 0x1083
- mov r9, r1
- ldr r7, _080E7EF8 @ =gSharedMem + 0x100C
- lsls r4, r2, 1
-_080E7E9E:
- lsls r1, r5, 1
- adds r2, r1, r7
- mov r6, r12
- ldr r0, [r6, 0x4]
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- adds r0, r3, r4
- mov r1, r12
- adds r1, 0x8C
- adds r0, r1
- mov r1, r10
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- mov r6, r9
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r3, r0
- blt _080E7E9E
-_080E7ECE:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r6, _080E7EFC @ =gSharedMem + 0x1084
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080E7E74
-_080E7EDE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7EF0: .4byte gSharedMem + 0x1000
-_080E7EF4: .4byte gSharedMem + 0x1083
-_080E7EF8: .4byte gSharedMem + 0x100C
-_080E7EFC: .4byte gSharedMem + 0x1084
- thumb_func_end sub_80E7E50
-
- thumb_func_start sub_80E7F00
-sub_80E7F00: @ 80E7F00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r7, _080E7F68 @ =gSharedMem + 0x1000
- adds r0, r7, 0
- adds r0, 0x83
- movs r4, 0
- ldrsb r4, [r0, r4]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, r6, 1
- adds r1, r7, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r9
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r4, 0x7
- bne _080E7F6C
- cmp r3, 0x7
- beq _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- subs r0, 0x1
- b _080E7F7A
- .align 2, 0
-_080E7F68: .4byte gSharedMem + 0x1000
-_080E7F6C:
- cmp r3, 0x7
- bne _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- adds r0, 0x1
-_080E7F7A:
- strb r0, [r1]
-_080E7F7C:
- movs r3, 0
- ldr r2, _080E7FA4 @ =gSharedMem + 0x1000
- lsls r0, r5, 1
- add r0, r8
- adds r1, r2, 0
- adds r1, 0x8C
- adds r0, r1
- strb r3, [r0]
- lsls r0, r6, 1
- adds r2, 0xC
- adds r0, r2
- mov r1, r9
- strh r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7FA4: .4byte gSharedMem + 0x1000
- thumb_func_end sub_80E7F00
-
- thumb_func_start sub_80E7FA8
-sub_80E7FA8: @ 80E7FA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _080E8040 @ =gSharedMem + 0x1000
- ldrb r1, [r0, 0xA]
- cmp r8, r1
- bcs _080E802E
- ldr r3, _080E8044 @ =0x00009e14
- adds r6, r0, r3
- ldr r1, _080E8048 @ =0x00009e41
- adds r1, r0
- mov r9, r1
-_080E7FC8:
- ldr r3, _080E804C @ =0xffff61ec
- adds r7, r6, r3
- ldr r0, [r7, 0x4]
- lsls r4, r5, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r1, _080E8050 @ =0xffff61f8
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0
- bl sub_80EB218
- adds r1, r6, 0
- mov r2, r9
- ldrb r0, [r1]
- adds r4, r5, 0x1
- ldrb r3, [r2]
- cmp r0, r3
- bne _080E8018
- adds r3, r7, 0
- cmp r0, 0xFF
- beq _080E8010
-_080E8000:
- adds r1, 0x1
- adds r2, 0x1
- ldrb r0, [r1]
- ldrb r5, [r2]
- cmp r0, r5
- bne _080E8018
- cmp r0, 0xFF
- bne _080E8000
-_080E8010:
- ldrb r0, [r1]
- ldrb r2, [r2]
- cmp r0, r2
- beq _080E8024
-_080E8018:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r3, _080E8040 @ =gSharedMem + 0x1000
-_080E8024:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- ldrb r3, [r3, 0xA]
- cmp r5, r3
- bcc _080E7FC8
-_080E802E:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E8040: .4byte gSharedMem + 0x1000
-_080E8044: .4byte 0x00009e14
-_080E8048: .4byte 0x00009e41
-_080E804C: .4byte 0xffff61ec
-_080E8050: .4byte 0xffff61f8
- thumb_func_end sub_80E7FA8
-
- thumb_func_start sub_80E8054
-sub_80E8054: @ 80E8054
- push {r4,lr}
- movs r1, 0
- ldr r2, _080E8078 @ =gSharedMem + 0x1000
- ldrb r0, [r2, 0xA]
- cmp r1, r0
- bcs _080E808A
- adds r4, r2, 0
- adds r4, 0xC
- ldr r3, _080E807C @ =0x0000ffff
- adds r2, r0, 0
-_080E8068:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _080E8080
- movs r0, 0
- b _080E808C
- .align 2, 0
-_080E8078: .4byte gSharedMem + 0x1000
-_080E807C: .4byte 0x0000ffff
-_080E8080:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080E8068
-_080E808A:
- movs r0, 0x1
-_080E808C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8054
-
- thumb_func_start sub_80E8094
-sub_80E8094: @ 80E8094
- push {r4-r7,lr}
- movs r5, 0
- ldr r6, _080E80C4 @ =gSharedMem + 0xAE14
- adds r7, r6, 0
- adds r7, 0x2D
-_080E809E:
- lsls r4, r5, 1
- ldr r1, _080E80C8 @ =0xffff61f8
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r0, _080E80CC @ =gMysteryEventPhrase
- adds r4, r0
- ldrh r1, [r4]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- adds r3, r6, 0
- adds r4, r7, 0
- b _080E80D8
- .align 2, 0
-_080E80C4: .4byte gSharedMem + 0xAE14
-_080E80C8: .4byte 0xffff61f8
-_080E80CC: .4byte gMysteryEventPhrase
-_080E80D0:
- adds r4, 0x1
- adds r3, 0x1
- cmp r2, r1
- bne _080E80F4
-_080E80D8:
- ldrb r2, [r3]
- adds r0, r2, 0
- cmp r0, 0xFF
- beq _080E80EE
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E80D0
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E80F4
-_080E80EE:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080E80F8
-_080E80F4:
- movs r0, 0
- b _080E8104
-_080E80F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E809E
- movs r0, 0x1
-_080E8104:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8094
-
- thumb_func_start sub_80E810C
-sub_80E810C: @ 80E810C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r6, _080E8198 @ =gSharedMem + 0xAE6E
- ldr r0, _080E819C @ =0xffff6192
- adds r0, r6
- mov r9, r0
- movs r1, 0
- mov r8, r1
- adds r7, r6, 0
- adds r7, 0x80
- ldr r2, _080E81A0 @ =gBerryMasterWifePhrases
- mov r10, r2
-_080E812C:
- mov r0, r9
- ldrh r1, [r0, 0xC]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- mov r1, r8
- strb r1, [r0]
- adds r0, 0x1
- mov r2, r9
- ldrh r1, [r2, 0xE]
- movs r2, 0
- bl sub_80EB218
- lsls r4, r5, 2
- mov r1, r10
- adds r0, r4, r1
- ldrh r1, [r0]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- mov r2, r8
- strb r2, [r0]
- adds r0, 0x1
- ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- adds r0, r6, 0
- adds r3, r7, 0
- adds r4, r5, 0x1
-_080E8170:
- ldrb r2, [r0]
- cmp r2, 0xFF
- beq _080E818A
- ldrb r1, [r3]
- cmp r1, 0xFF
- beq _080E8184
- adds r3, 0x1
- adds r0, 0x1
- cmp r2, r1
- beq _080E8170
-_080E8184:
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E81A8
-_080E818A:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E81A8
- lsls r0, r4, 24
- lsrs r0, 24
- b _080E81B2
- .align 2, 0
-_080E8198: .4byte gSharedMem + 0xAE6E
-_080E819C: .4byte 0xffff6192
-_080E81A0: .4byte gBerryMasterWifePhrases
-_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
-_080E81A8:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080E812C
- movs r0, 0
-_080E81B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E810C
-
- thumb_func_start sub_80E81C0
-sub_80E81C0: @ 80E81C0
- push {r4,lr}
- ldr r0, _080E81EC @ =gStringVar2
- ldr r4, _080E81F0 @ =gSharedMem + 0x1000
- ldr r2, _080E81F4 @ =0x00009c7c
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r2, 0
- bl sub_80EB218
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- ldr r1, _080E81F8 @ =0x00009c7e
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E81EC: .4byte gStringVar2
-_080E81F0: .4byte gSharedMem + 0x1000
-_080E81F4: .4byte 0x00009c7c
-_080E81F8: .4byte 0x00009c7e
- thumb_func_end sub_80E81C0
-
- thumb_func_start sub_80E81FC
-sub_80E81FC: @ 80E81FC
- push {lr}
- movs r0, 0x5
- bl PlaySE
- bl sub_80E95A4
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80E81FC
-
- thumb_func_start sub_80E8218
-sub_80E8218: @ 80E8218
- push {r4,r5,lr}
- sub sp, 0x40
- mov r1, sp
- ldr r0, _080E8260 @ =gSpriteSheets_Interview
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldr r0, [r0]
- str r0, [r1]
- add r4, sp, 0x28
- adds r1, r4, 0
- ldr r0, _080E8264 @ =gSpritePalettes_Interview
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- bl sub_80E8268
- bl sub_80E8818
- bl sub_80E8A7C
- add sp, 0x40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8260: .4byte gSpriteSheets_Interview
-_080E8264: .4byte gSpritePalettes_Interview
- thumb_func_end sub_80E8218
-
- thumb_func_start sub_80E8268
-sub_80E8268: @ 80E8268
- push {lr}
- ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E82B4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080E82B8 @ =gUnknown_083DB694
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x8
- movs r2, 0
- strh r0, [r1, 0x22]
- adds r0, r3, 0
- adds r0, 0x88
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x20]
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r0, r3, 0
- adds r0, 0x98
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E82B0: .4byte gSpriteTemplate_83DBBFC
-_080E82B4: .4byte gSprites
-_080E82B8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8268
-
- thumb_func_start sub_80E82BC
-sub_80E82BC: @ 80E82BC
- push {r4-r7,lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E838C
- ldr r0, _080E8334 @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x87
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _080E836C
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0
- movs r1, 0
- cmp r7, r4
- bcs _080E8316
- lsls r6, r5, 1
- adds r2, 0x8C
-_080E8300:
- adds r0, r1, r6
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bcc _080E8300
-_080E8316:
- mov r0, r12
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E8338
- movs r0, 0x60
- strh r0, [r3, 0x22]
- lsls r0, r4, 3
- subs r0, r4
- adds r0, 0x3
- b _080E8356
- .align 2, 0
-_080E8334: .4byte gUnknown_083DB694
-_080E8338:
- adds r1, r2, 0
- adds r1, 0x8A
- lsls r0, r5, 1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 3
- adds r0, 0x8
- strh r0, [r3, 0x22]
- adds r0, r2, 0
- adds r0, 0x88
- ldrh r0, [r0]
- adds r0, r7
- movs r1, 0xB
- muls r1, r4
- adds r0, r1
-_080E8356:
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r3, 0x20]
- movs r1, 0
- ldr r0, _080E8368 @ =0x0000fffa
- strh r0, [r3, 0x24]
- strh r1, [r3, 0x2E]
- b _080E838C
- .align 2, 0
-_080E8368: .4byte 0x0000fffa
-_080E836C:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E838C
- strh r1, [r3, 0x2E]
- ldrh r0, [r3, 0x24]
- adds r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E838C
- ldr r0, _080E8394 @ =0x0000fffa
- strh r0, [r3, 0x24]
-_080E838C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8394: .4byte 0x0000fffa
- thumb_func_end sub_80E82BC
-
- thumb_func_start sub_80E8398
-sub_80E8398: @ 80E8398
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- beq _080E83D4
- cmp r3, 0x1
- bgt _080E83AC
- cmp r3, 0
- beq _080E83B2
- b _080E8416
-_080E83AC:
- cmp r3, 0x2
- beq _080E83F8
- b _080E8416
-_080E83B2:
- ldr r0, _080E83D0 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0x98
- ldr r1, [r0]
- strh r3, [r1, 0x30]
- ldr r1, [r0]
- strh r3, [r1, 0x24]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83D0: .4byte gUnknown_083DB694
-_080E83D4:
- ldr r0, _080E83F4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0x98
- ldr r0, [r1]
- movs r2, 0
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r2, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83F4: .4byte gUnknown_083DB694
-_080E83F8:
- ldr r0, _080E841C @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0x98
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x1
- strh r0, [r2, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_080E8414:
- strb r0, [r1]
-_080E8416:
- pop {r0}
- bx r0
- .align 2, 0
-_080E841C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8398
-
- thumb_func_start sub_80E8420
-sub_80E8420: @ 80E8420
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E84E4 @ =gUnknown_083DB694
- ldr r7, [r1]
- adds r5, r7, 0
- adds r5, 0x9C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r4, _080E84E8 @ =gSprites
- adds r1, r4
- str r1, [r5]
- ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C
- str r0, [sp, 0x8]
- ldr r0, _080E84F0 @ =sub_80E872C
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r6, r7, 0
- adds r6, 0xA0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r6]
- ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C
- str r0, [sp, 0x8]
- ldr r0, _080E84F8 @ =sub_80E8760
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r2, r7, 0
- adds r2, 0xA4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r2]
- ldr r0, [r5]
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r0, [r6]
- strh r1, [r0, 0x2E]
- ldr r0, [r2]
- strh r1, [r0, 0x2E]
- movs r0, 0x1
- bl IndexOfSpritePaletteTag
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 20
- ldr r2, _080E84FC @ =0x00000101
- adds r0, r2
- strh r0, [r1, 0x34]
- bl sub_80E8534
- adds r1, r7, 0
- adds r1, 0x96
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080E8500 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E84E0: .4byte gSpriteTemplate_83DBCAC
-_080E84E4: .4byte gUnknown_083DB694
-_080E84E8: .4byte gSprites
-_080E84EC: .4byte gSpriteAnimTable_83DBC8C
-_080E84F0: .4byte sub_80E872C
-_080E84F4: .4byte gSpriteAnimTable_83DBC9C
-_080E84F8: .4byte sub_80E8760
-_080E84FC: .4byte 0x00000101
-_080E8500: .4byte REG_BLDCNT
- thumb_func_end sub_80E8420
-
- thumb_func_start sub_80E8504
-sub_80E8504: @ 80E8504
- push {r4,lr}
- ldr r0, _080E8530 @ =gUnknown_083DB694
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x9C
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA4
- ldr r0, [r0]
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8530: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8504
-
- thumb_func_start sub_80E8534
-sub_80E8534: @ 80E8534
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _080E8554 @ =gUnknown_083DB694
- ldr r3, [r1]
- ldr r2, _080E8558 @ =0x000001b7
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r1, 0
- cmp r0, 0
- beq _080E8560
- ldr r1, _080E855C @ =gUnknown_020388AC
- movs r0, 0x1
- b _080E8598
- .align 2, 0
-_080E8554: .4byte gUnknown_083DB694
-_080E8558: .4byte 0x000001b7
-_080E855C: .4byte gUnknown_020388AC
-_080E8560:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r2, [r0]
- cmp r2, 0
- bne _080E8578
- ldr r0, _080E8574 @ =gUnknown_020388AC
- strb r2, [r0]
- adds r7, r0, 0
- b _080E859C
- .align 2, 0
-_080E8574: .4byte gUnknown_020388AC
-_080E8578:
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _080E8594
- ldr r1, _080E8590 @ =gUnknown_020388AC
- movs r0, 0x2
- b _080E8598
- .align 2, 0
-_080E8590: .4byte gUnknown_020388AC
-_080E8594:
- ldr r1, _080E85F4 @ =gUnknown_020388AC
- movs r0, 0x3
-_080E8598:
- strb r0, [r1]
- adds r7, r1, 0
-_080E859C:
- ldr r2, [r4]
- adds r4, r2, 0
- adds r4, 0x9C
- ldr r1, [r4]
- ldrb r0, [r7]
- movs r3, 0
- mov r8, r3
- strh r0, [r1, 0x32]
- adds r5, r2, 0
- adds r5, 0xA0
- ldr r1, [r5]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- adds r6, r2, 0
- adds r6, 0xA4
- ldr r1, [r6]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- ldr r0, [r4]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r5]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r6]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0x8
- strh r1, [r0, 0x38]
- ldr r0, [r4]
- strh r1, [r0, 0x3A]
- ldr r0, [r4]
- mov r1, r8
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E85F4: .4byte gUnknown_020388AC
- thumb_func_end sub_80E8534
-
- thumb_func_start sub_80E85F8
-sub_80E85F8: @ 80E85F8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E8624
- ldr r1, _080E8620 @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r0, 0x8
- strh r0, [r5, 0x38]
- b _080E863A
- .align 2, 0
-_080E8620: .4byte gSineTable
-_080E8624:
- ldr r1, _080E8688 @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 21
- movs r0, 0x8
- subs r0, r1
- strh r0, [r5, 0x3A]
-_080E863A:
- ldrh r0, [r5, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldr r2, _080E868C @ =REG_BLDALPHA
- ldrh r0, [r5, 0x3A]
- lsls r0, 8
- ldrh r1, [r5, 0x38]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080E8690 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E871A
- bl sub_80E8534
- adds r1, r6, 0
- adds r1, 0x9C
- ldr r0, [r1]
- movs r2, 0x8
- strh r2, [r0, 0x38]
- ldr r0, [r1]
- strh r2, [r0, 0x3A]
- ldr r1, [r1]
- movs r0, 0
- strh r0, [r1, 0x30]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080E86C4
- cmp r0, 0x1
- bgt _080E8694
- cmp r0, 0
- beq _080E869E
- b _080E871A
- .align 2, 0
-_080E8688: .4byte gSineTable
-_080E868C: .4byte REG_BLDALPHA
-_080E8690: .4byte gUnknown_083DB694
-_080E8694:
- cmp r0, 0x2
- beq _080E86D6
- cmp r0, 0x3
- beq _080E86DE
- b _080E871A
-_080E869E:
- ldr r2, _080E86C0 @ =0x000001a9
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x20
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0xC
- b _080E870A
- .align 2, 0
-_080E86C0: .4byte 0x000001a9
-_080E86C4:
- movs r0, 0xD8
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _080E8714
-_080E86D6:
- movs r0, 0x97
- strh r0, [r5, 0x20]
- movs r0, 0x60
- b _080E8718
-_080E86DE:
- ldr r4, _080E8720 @ =gUnknown_083DBCC4
- ldr r2, _080E8724 @ =0x000001a9
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xD4
- lsls r0, 1
- adds r3, r6, r0
- movs r2, 0
- ldrsb r2, [r3, r2]
- lsls r0, r2, 3
- subs r0, r2
- adds r1, r0
- adds r1, r4
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 3
- adds r0, 0x1F
- strh r0, [r5, 0x20]
- movs r0, 0
- ldrsb r0, [r3, r0]
- ldr r2, _080E8728 @ =0x000001b5
-_080E870A:
- adds r1, r6, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
-_080E8714:
- lsls r0, 4
- adds r0, 0x60
-_080E8718:
- strh r0, [r5, 0x22]
-_080E871A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8720: .4byte gUnknown_083DBCC4
-_080E8724: .4byte 0x000001a9
-_080E8728: .4byte 0x000001b5
- thumb_func_end sub_80E85F8
-
- thumb_func_start sub_80E872C
-sub_80E872C: @ 80E872C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E875C @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8756
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E8756
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x20
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E8756:
- pop {r0}
- bx r0
- .align 2, 0
-_080E875C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E872C
-
- thumb_func_start sub_80E8760
-sub_80E8760: @ 80E8760
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E8780 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E879E
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080E8784
- cmp r0, 0x2
- beq _080E878E
- b _080E879E
- .align 2, 0
-_080E8780: .4byte gUnknown_083DB694
-_080E8784:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x40
- b _080E8796
-_080E878E:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x15
-_080E8796:
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E879E:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8760
-
- thumb_func_start sub_80E87A4
-sub_80E87A4: @ 80E87A4
- push {r4,lr}
- lsls r0, 24
- ldr r1, _080E87C8 @ =gUnknown_083DB694
- ldr r1, [r1]
- adds r2, r1, 0
- adds r2, 0xA8
- ldr r3, [r2]
- movs r4, 0
- cmp r0, 0
- bne _080E87BA
- movs r4, 0x1
-_080E87BA:
- movs r1, 0
- strh r4, [r3, 0x30]
- ldr r0, [r2]
- strh r1, [r0, 0x24]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E87C8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E87A4
-
- thumb_func_start sub_80E87CC
-sub_80E87CC: @ 80E87CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E8810 @ =gUnknown_083DB694
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0xA8
- ldr r0, [r0]
- movs r3, 0
- cmp r4, 0
- bne _080E87E6
- movs r3, 0x1
-_080E87E6:
- adds r2, r0, 0
- adds r2, 0x3E
- lsls r3, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- adds r0, r4, 0
- bl sub_80E87A4
- cmp r4, 0
- beq _080E880A
- ldr r0, _080E8814 @ =0x000001b9
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_080E880A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8810: .4byte gUnknown_083DB694
-_080E8814: .4byte 0x000001b9
- thumb_func_end sub_80E87CC
-
- thumb_func_start sub_80E8818
-sub_80E8818: @ 80E8818
- push {lr}
- ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E8854 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- ldr r0, _080E8858 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xA8
- str r1, [r0]
- ldr r0, _080E885C @ =sub_80E8860
- str r0, [r1, 0x1C]
- movs r0, 0
- bl sub_80E87CC
- pop {r0}
- bx r0
- .align 2, 0
-_080E8850: .4byte gSpriteTemplate_83DBBFC
-_080E8854: .4byte gSprites
-_080E8858: .4byte gUnknown_083DB694
-_080E885C: .4byte sub_80E8860
- thumb_func_end sub_80E8818
-
- thumb_func_start sub_80E8860
-sub_80E8860: @ 80E8860
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r4, [r2, r0]
- cmp r4, 0
- bne _080E88E4
- ldr r0, _080E88B0 @ =gUnknown_083DB694
- ldr r3, [r0]
- ldr r1, _080E88B4 @ =0x000001b9
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080E88C4
- ldr r5, _080E88B8 @ =0x000099a5
- adds r0, r3, r5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x2C
- strh r0, [r2, 0x20]
- ldr r1, _080E88BC @ =0x000099a4
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r5, 0x84
- adds r1, r3, r5
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
- lsls r0, 4
- adds r0, 0x60
- strh r0, [r2, 0x22]
- ldr r0, _080E88C0 @ =0x0000fffa
- strh r0, [r2, 0x24]
- strh r4, [r2, 0x2E]
- b _080E88E4
- .align 2, 0
-_080E88B0: .4byte gUnknown_083DB694
-_080E88B4: .4byte 0x000001b9
-_080E88B8: .4byte 0x000099a5
-_080E88BC: .4byte 0x000099a4
-_080E88C0: .4byte 0x0000fffa
-_080E88C4:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E88E4
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E88E4
- ldr r0, _080E88EC @ =0x0000fffa
- strh r0, [r2, 0x24]
-_080E88E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E88EC: .4byte 0x0000fffa
- thumb_func_end sub_80E8860
-
- thumb_func_start sub_80E88F0
-sub_80E88F0: @ 80E88F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r0, _080E8950 @ =gUnknown_083DB694
- mov r8, r0
- ldr r0, [r0]
- movs r6, 0x4
- movs r5, 0
- movs r1, 0xB4
- adds r1, r0
- mov r12, r1
- adds r7, r0, 0
- adds r7, 0xAC
-_080E890C:
- lsls r2, r4, 2
- adds r3, r7, r2
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r3]
- strh r5, [r0, 0x30]
- add r2, r12
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r2]
- strh r5, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E890C
- mov r1, r8
- ldr r0, [r1]
- ldr r1, _080E8954 @ =0x00009c70
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8950: .4byte gUnknown_083DB694
-_080E8954: .4byte 0x00009c70
- thumb_func_end sub_80E88F0
-
- thumb_func_start sub_80E8958
-sub_80E8958: @ 80E8958
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _080E89B4
- movs r0, 0x64
- mov r9, r0
- ldr r0, _080E8998 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r3, _080E899C @ =0x00009c6c
- adds r1, r2, r3
- ldr r3, _080E89A0 @ =0x000001b5
- adds r0, r2, r3
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E89A8
- movs r1, 0xDB
- lsls r1, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E89A4 @ =0x00009c71
- adds r1, r2, r3
- strb r0, [r1]
- b _080E8A00
- .align 2, 0
-_080E8998: .4byte gUnknown_083DB694
-_080E899C: .4byte 0x00009c6c
-_080E89A0: .4byte 0x000001b5
-_080E89A4: .4byte 0x00009c71
-_080E89A8:
- ldr r1, _080E89B0 @ =0x00009c71
- adds r0, r2, r1
- strb r7, [r0]
- b _080E8A00
- .align 2, 0
-_080E89B0: .4byte 0x00009c71
-_080E89B4:
- movs r3, 0x78
- mov r9, r3
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E8A68 @ =0x00009c6c
- adds r1, r2, r0
- ldr r3, _080E8A6C @ =0x00009a29
- adds r0, r2, r3
- str r0, [r1]
- ldr r1, _080E8A70 @ =0x00009a28
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E8A74 @ =0x00009c71
- adds r1, r2, r3
- strb r0, [r1]
- movs r4, 0
- adds r5, r2, 0
- adds r5, 0xB4
- movs r0, 0x5
- negs r0, r0
- mov r12, r0
- movs r6, 0x1
-_080E89E2:
- lsls r3, r4, 2
- adds r3, r5, r3
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- strh r6, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E89E2
-_080E8A00:
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r3, _080E8A74 @ =0x00009c71
- adds r1, r2, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E8A14
- movs r0, 0
- strb r0, [r1]
-_080E8A14:
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0xAC
- movs r0, 0x5
- negs r0, r0
- mov r8, r0
-_080E8A20:
- lsls r2, r4, 2
- adds r2, r6, r2
- ldr r0, [r2]
- mov r1, r9
- strh r1, [r0, 0x20]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r2]
- movs r5, 0x1
- strh r5, [r0, 0x30]
- ldr r0, [r2]
- adds r1, r7, 0
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E8A20
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E8A78 @ =0x00009c70
- adds r0, r1
- strb r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A64: .4byte gUnknown_083DB694
-_080E8A68: .4byte 0x00009c6c
-_080E8A6C: .4byte 0x00009a29
-_080E8A70: .4byte 0x00009a28
-_080E8A74: .4byte 0x00009c71
-_080E8A78: .4byte 0x00009c70
- thumb_func_end sub_80E8958
-
- thumb_func_start sub_80E8A7C
-sub_80E8A7C: @ 80E8A7C
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r5, 0
-_080E8A8E:
- lsls r2, r5, 3
- adds r2, r5
- lsls r2, 19
- movs r0, 0xA8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- mov r0, sp
- movs r1, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C @ =gUnknown_083DB694
- ldr r2, [r0]
- lsls r0, r5, 2
- adds r2, 0xAC
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70 @ =gSprites
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- adds r3, 0x3F
- movs r0, 0x1
- adds r2, r5, 0
- ands r2, r0
- lsls r2, 1
- ldrb r0, [r3]
- movs r4, 0x3
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8A8E
- mov r0, sp
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10
- str r0, [sp, 0x8]
- movs r5, 0
- movs r7, 0x3F
- movs r6, 0x40
-_080E8AF6:
- lsls r4, r5, 2
- adds r1, r4, r5
- lsls r1, 19
- movs r0, 0x8E
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r2, 0xB4
- adds r2, r4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70 @ =gSprites
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x1]
- ldr r3, [r2]
- ldrb r1, [r3, 0x3]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x3]
- ldr r0, [r2]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8AF6
- movs r0, 0
- bl sub_80E8958
- bl sub_80E88F0
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B68: .4byte gSpriteTemplate_83DBD18
-_080E8B6C: .4byte gUnknown_083DB694
-_080E8B70: .4byte gSprites
-_080E8B74: .4byte gSpriteAnimTable_83DBD10
- thumb_func_end sub_80E8A7C
-
- thumb_func_start sub_80E8B78
-sub_80E8B78: @ 80E8B78
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080E8BB0 @ =gUnknown_083DB694
- ldr r1, [r0]
- ldr r2, _080E8BB4 @ =0x00009c70
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _080E8BBC
- movs r4, 0
- ldr r2, _080E8BB8 @ =0x00009c6c
- adds r0, r1, r2
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E8BD6
- b _080E8BD4
- .align 2, 0
-_080E8BB0: .4byte gUnknown_083DB694
-_080E8BB4: .4byte 0x00009c70
-_080E8BB8: .4byte 0x00009c6c
-_080E8BBC:
- movs r4, 0
- ldr r2, _080E8BF0 @ =0x00009c6c
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x5
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E8BD6
-_080E8BD4:
- movs r4, 0x1
-_080E8BD6:
- adds r2, r3, 0
- adds r2, 0x3E
- lsls r3, r4, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E8BE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8BF0: .4byte 0x00009c6c
- thumb_func_end sub_80E8B78
-
- thumb_func_start sub_80E8BF4
-sub_80E8BF4: @ 80E8BF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r0, _080E8C28 @ =gUnknown_083DBD30
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- ldr r0, _080E8C2C @ =gUnknown_083DBD38
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- cmp r2, 0x2
- beq _080E8C20
- cmp r2, 0x5
- beq _080E8C30
-_080E8C20:
- movs r4, 0x40
- movs r5, 0x28
- b _080E8C34
- .align 2, 0
-_080E8C28: .4byte gUnknown_083DBD30
-_080E8C2C: .4byte gUnknown_083DBD38
-_080E8C30:
- movs r4, 0x24
- movs r5, 0x30
-_080E8C34:
- cmp r3, 0
- beq _080E8C3C
- cmp r3, 0x1
- beq _080E8C40
-_080E8C3C:
- movs r0, 0x43
- b _080E8C42
-_080E8C40:
- movs r0, 0x44
-_080E8C42:
- mov r8, r0
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- add r0, sp, 0xC
- bl LoadSpritePalette
- ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl CreateSprite
- ldr r0, _080E8CE0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x69
- cmp r0, 0
- bne _080E8C68
- movs r1, 0x64
-_080E8C68:
- ldr r7, _080E8CE4 @ =SpriteCallbackDummy
- adds r2, r4, 0
- subs r2, 0xC
- movs r6, 0
- str r6, [sp]
- adds r0, r1, 0
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8C9E
- ldr r1, _080E8CE8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x3
- bl StartSpriteAnim
-_080E8C9E:
- adds r2, r4, 0
- adds r2, 0xC
- str r6, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8CD0
- ldr r1, _080E8CE8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8CD0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8CDC: .4byte gSpriteTemplate_83DBD48
-_080E8CE0: .4byte gSaveBlock2
-_080E8CE4: .4byte SpriteCallbackDummy
-_080E8CE8: .4byte gSprites
- thumb_func_end sub_80E8BF4
-
- thumb_func_start sub_80E8CEC
-sub_80E8CEC: @ 80E8CEC
- push {lr}
- ldr r0, _080E8D24 @ =gUnknown_083DBD60
- bl LoadCompressedObjectPic
- ldr r0, _080E8D28 @ =gUnknown_083DBD68
- bl LoadSpritePalette
- ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4
- movs r1, 0xE0
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080E8D3C
- ldr r0, _080E8D30 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E8D34 @ =0x00009c74
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8D38 @ =gSprites
- adds r0, r1
- str r0, [r2]
- b _080E8D48
- .align 2, 0
-_080E8D24: .4byte gUnknown_083DBD60
-_080E8D28: .4byte gUnknown_083DBD68
-_080E8D2C: .4byte gSpriteTemplate_83DBDE4
-_080E8D30: .4byte gUnknown_083DB694
-_080E8D34: .4byte 0x00009c74
-_080E8D38: .4byte gSprites
-_080E8D3C:
- ldr r0, _080E8D4C @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E8D50 @ =0x00009c74
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_080E8D48:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8D4C: .4byte gUnknown_083DB694
-_080E8D50: .4byte 0x00009c74
- thumb_func_end sub_80E8CEC
-
- thumb_func_start sub_80E8D54
-sub_80E8D54: @ 80E8D54
- push {lr}
- ldr r0, _080E8D78 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r1, _080E8D7C @ =0x00009c74
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8D88
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8D80
- adds r0, r1, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _080E8D88
- .align 2, 0
-_080E8D78: .4byte gUnknown_083DB694
-_080E8D7C: .4byte 0x00009c74
-_080E8D80:
- adds r0, r1, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8D88:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D54
-
- thumb_func_start sub_80E8D8C
-sub_80E8D8C: @ 80E8D8C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080E8DB8 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r1, _080E8DBC @ =0x00009c74
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8DD2
- cmp r3, 0
- beq _080E8DCA
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8DC0
- adds r0, r1, 0
- movs r1, 0x3
- bl StartSpriteAnim
- b _080E8DD2
- .align 2, 0
-_080E8DB8: .4byte gUnknown_083DB694
-_080E8DBC: .4byte 0x00009c74
-_080E8DC0:
- adds r0, r1, 0
- movs r1, 0x4
- bl StartSpriteAnim
- b _080E8DD2
-_080E8DCA:
- adds r0, r1, 0
- movs r1, 0x5
- bl StartSpriteAnim
-_080E8DD2:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D8C
-
- thumb_func_start sub_80E8DD8
-sub_80E8DD8: @ 80E8DD8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- ldr r0, _080E8F2C @ =REG_BG0HOFS
- movs r6, 0
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- subs r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- ldr r1, _080E8F30 @ =REG_BG0CNT
- movs r2, 0x8B
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E8F34 @ =0x00000d09
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E8F38 @ =gUnknown_08E945D0
- ldr r1, _080E8F3C @ =gUnknown_083DB694
- ldr r1, [r1]
- mov r8, r1
- movs r4, 0xE4
- lsls r4, 1
- add r4, r8
- movs r5, 0xA0
- lsls r5, 2
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F40 @ =gUnknown_08E953D0
- movs r1, 0xD9
- lsls r1, 3
- add r1, r8
- bl LZ77UnCompWram
- ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx
- ldr r1, _080E8F48 @ =0x06008000
- bl LZ77UnCompVram
- ldr r1, _080E8F4C @ =0x06006800
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r1, _080E8F54 @ =REG_BG2CNT
- ldr r2, _080E8F58 @ =0x00000e02
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F5C @ =0x06007000
- movs r5, 0x80
- lsls r5, 4
- mov r0, sp
- strh r6, [r0]
- ldr r4, _080E8F60 @ =0x040000d4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r0, r5, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F64 @ =gUnknown_08E9AB00
- ldr r2, _080E8F68 @ =0x06006000
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _080E8F6C @ =0x80000020
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F70 @ =gUnknown_08E9AB60
- bl LZ77UnCompVram
- ldr r0, _080E8F74 @ =gUnknown_08E9AB40
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F78 @ =gUnknown_083DBDFC
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080E8F7C @ =REG_BG3CNT
- ldr r2, _080E8F80 @ =0x00000f0f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F84 @ =0x06007800
- movs r0, 0
- mov r9, r0
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r5, 2
- movs r0, 0x85
- lsls r0, 24
- orrs r5, r0
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F88 @ =gUnknown_083DBE40
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F8C @ =gPlttBufferUnfaded
- adds r1, r0, 0
- adds r1, 0x7E
- ldr r3, _080E8F90 @ =0x00007fff
- strh r3, [r1]
- subs r1, 0x1C
- ldr r2, _080E8F94 @ =0x00006f5b
- strh r2, [r1]
- adds r0, 0x70
- ldr r1, _080E8F98 @ =0x0000739c
- strh r1, [r0]
- ldr r0, _080E8F9C @ =gPlttBufferFaded
- adds r4, r0, 0
- adds r4, 0x7E
- strh r3, [r4]
- adds r3, r0, 0
- adds r3, 0x62
- strh r2, [r3]
- adds r0, 0x70
- strh r1, [r0]
- movs r1, 0xBC
- add r8, r1
- mov r2, r8
- strb r6, [r2]
- bl sub_80E8FA4
- bl sub_80E948C
- movs r0, 0xA
- bl sub_80E9198
- movs r0, 0
- bl sub_80E91D4
- bl sub_80E95A4
- ldr r0, _080E8FA0 @ =REG_BLDCNT
- mov r1, r9
- strh r1, [r0]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8F2C: .4byte REG_BG0HOFS
-_080E8F30: .4byte REG_BG0CNT
-_080E8F34: .4byte 0x00000d09
-_080E8F38: .4byte gUnknown_08E945D0
-_080E8F3C: .4byte gUnknown_083DB694
-_080E8F40: .4byte gUnknown_08E953D0
-_080E8F44: .4byte gMenuWordGroupFrame_Gfx
-_080E8F48: .4byte 0x06008000
-_080E8F4C: .4byte 0x06006800
-_080E8F50: .4byte gMenuWordGroupFrame1_Pal
-_080E8F54: .4byte REG_BG2CNT
-_080E8F58: .4byte 0x00000e02
-_080E8F5C: .4byte 0x06007000
-_080E8F60: .4byte 0x040000d4
-_080E8F64: .4byte gUnknown_08E9AB00
-_080E8F68: .4byte 0x06006000
-_080E8F6C: .4byte 0x80000020
-_080E8F70: .4byte gUnknown_08E9AB60
-_080E8F74: .4byte gUnknown_08E9AB40
-_080E8F78: .4byte gUnknown_083DBDFC
-_080E8F7C: .4byte REG_BG3CNT
-_080E8F80: .4byte 0x00000f0f
-_080E8F84: .4byte 0x06007800
-_080E8F88: .4byte gUnknown_083DBE40
-_080E8F8C: .4byte gPlttBufferUnfaded
-_080E8F90: .4byte 0x00007fff
-_080E8F94: .4byte 0x00006f5b
-_080E8F98: .4byte 0x0000739c
-_080E8F9C: .4byte gPlttBufferFaded
-_080E8FA0: .4byte REG_BLDCNT
- thumb_func_end sub_80E8DD8
-
- thumb_func_start sub_80E8FA4
-sub_80E8FA4: @ 80E8FA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r0, 0
- mov r9, r0
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x24]
- add r2, sp, 0xC
- mov r12, r2
-_080E8FBE:
- mov r3, r9
- lsls r1, r3, 1
- ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2
- adds r0, r1, r4
- ldrh r2, [r0]
- movs r0, 0x1F
- ands r0, r2
- lsls r0, 8
- str r0, [sp]
- ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8
- adds r1, r5
- ldrh r1, [r1]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0xC]
- lsls r2, 16
- lsrs r0, r2, 21
- movs r3, 0x1F
- ands r0, r3
- lsls r0, 8
- str r0, [sp, 0x4]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r3
- lsls r0, 8
- mov r4, r12
- str r0, [r4, 0x4]
- lsrs r2, 26
- ands r2, r3
- lsls r2, 8
- str r2, [sp, 0x8]
- lsrs r1, 26
- ands r1, r3
- lsls r1, 8
- str r1, [r4, 0x8]
- movs r3, 0
- mov r5, r9
- lsls r5, 3
- mov r10, r5
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x28]
- ldr r4, [sp, 0x24]
-_080E9016:
- lsls r0, r3, 2
- adds r2, r4, r0
- mov r5, r12
- adds r1, r5, r0
- add r0, sp
- ldr r1, [r1]
- ldr r0, [r0]
- subs r0, r1, r0
- cmp r0, 0
- bge _080E902C
- adds r0, 0x7
-_080E902C:
- asrs r0, 3
- str r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9016
- movs r4, 0
- ldr r0, _080E90FC @ =gUnknown_083DB694
- ldr r1, [r0]
- mov r0, r10
- add r0, r9
- lsls r0, 1
- mov r8, r0
- movs r5, 0x1F
- ldr r6, [sp, 0x24]
- ldr r0, _080E9100 @ =0x00009c34
- adds r7, r1, r0
-_080E9050:
- lsls r2, r4, 1
- add r2, r8
- adds r2, r7, r2
- ldr r1, [sp, 0x8]
- asrs r1, 8
- ands r1, r5
- lsls r1, 10
- ldr r0, [sp, 0x4]
- asrs r0, 8
- ands r0, r5
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp]
- asrs r0, 8
- ands r0, r5
- orrs r1, r0
- strh r1, [r2]
- movs r3, 0
- adds r4, 0x1
-_080E9076:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- adds r0, r6, r0
- ldr r1, [r2]
- ldr r0, [r0]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9076
- lsls r0, r4, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080E9050
- ldr r2, _080E90FC @ =gUnknown_083DB694
- ldr r3, [r2]
- mov r0, r10
- add r0, r9
- adds r0, r4
- lsls r0, 1
- ldr r4, _080E9100 @ =0x00009c34
- adds r2, r3, r4
- adds r2, r0
- mov r5, r12
- ldr r1, [r5, 0x8]
- asrs r1, 8
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 10
- ldr r0, [r5, 0x4]
- asrs r0, 8
- movs r4, 0x1F
- ands r0, r4
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp, 0xC]
- asrs r0, 8
- ands r0, r4
- orrs r1, r0
- strh r1, [r2]
- ldr r5, [sp, 0x28]
- lsls r0, r5, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x2
- bhi _080E90DA
- b _080E8FBE
-_080E90DA:
- ldr r0, _080E9104 @ =0x00009c32
- adds r1, r3, r0
- movs r0, 0
- strb r0, [r1]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2
-_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8
-_080E90FC: .4byte gUnknown_083DB694
-_080E9100: .4byte 0x00009c34
-_080E9104: .4byte 0x00009c32
- thumb_func_end sub_80E8FA4
-
- thumb_func_start sub_80E9108
-sub_80E9108: @ 80E9108
- push {r4-r7,lr}
- lsls r0, 24
- ldr r1, _080E9164 @ =gUnknown_083DB694
- ldr r2, [r1]
- ldr r3, _080E9168 @ =0x00009c32
- adds r1, r2, r3
- lsrs r0, 24
- ldrb r3, [r1]
- adds r0, r3
- strb r0, [r1]
- movs r4, 0
- ldr r0, _080E916C @ =gPlttBufferUnfaded
- mov r12, r0
- adds r6, r1, 0
- ldr r3, _080E9170 @ =0x00009c34
- adds r5, r2, r3
- ldr r7, _080E9174 @ =gPlttBufferFaded
-_080E912A:
- adds r2, r4, 0
- adds r2, 0x51
- lsls r2, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r0, [r6]
- lsls r0, 1
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r3]
- adds r2, r7
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _080E912A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9164: .4byte gUnknown_083DB694
-_080E9168: .4byte 0x00009c32
-_080E916C: .4byte gPlttBufferUnfaded
-_080E9170: .4byte 0x00009c34
-_080E9174: .4byte gPlttBufferFaded
- thumb_func_end sub_80E9108
-
- thumb_func_start sub_80E9178
-sub_80E9178: @ 80E9178
- push {lr}
- ldr r0, _080E9190 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E9194 @ =0x00009c32
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0
- bl sub_80E9108
- pop {r0}
- bx r0
- .align 2, 0
-_080E9190: .4byte gUnknown_083DB694
-_080E9194: .4byte 0x00009c32
- thumb_func_end sub_80E9178
-
- thumb_func_start sub_80E9198
-sub_80E9198: @ 80E9198
- ldr r1, _080E91A0 @ =gUnknown_03000740
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080E91A0: .4byte gUnknown_03000740
- thumb_func_end sub_80E9198
-
- thumb_func_start sub_80E91A4
-sub_80E91A4: @ 80E91A4
- ldr r0, _080E91AC @ =gUnknown_03000740
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080E91AC: .4byte gUnknown_03000740
- thumb_func_end sub_80E91A4
-
- thumb_func_start sub_80E91B0
-sub_80E91B0: @ 80E91B0
- push {lr}
- sub sp, 0x8
- lsls r2, 24
- lsls r1, 27
- lsrs r1, 24
- lsrs r2, 21
- lsls r3, 27
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- movs r3, 0xB0
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_80E91B0
-
- thumb_func_start sub_80E91D4
-sub_80E91D4: @ 80E91D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E91FC @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- cmp r4, 0xA
- bne _080E9200
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0xA
- bl sub_80E9198
- b _080E935C
- .align 2, 0
-_080E91FC: .4byte gWindowConfig_81E6DA8
-_080E9200:
- bl sub_80E91A4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _080E9218
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080E9218:
- adds r0, r4, 0
- bl sub_80E9198
- cmp r4, 0x9
- bls _080E9224
- b _080E935C
-_080E9224:
- lsls r0, r4, 2
- ldr r1, _080E9230 @ =_080E9234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9230: .4byte _080E9234
- .align 2, 0
-_080E9234:
- .4byte _080E925C
- .4byte _080E9284
- .4byte _080E92AC
- .4byte _080E92C4
- .4byte _080E92F0
- .4byte _080E9308
- .4byte _080E9310
- .4byte _080E9318
- .4byte _080E933C
- .4byte _080E9350
-_080E925C:
- ldr r0, _080E9278 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r1, _080E927C @ =0x00009c80
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9280 @ =0x00009cc9
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E9278: .4byte gUnknown_083DB694
-_080E927C: .4byte 0x00009c80
-_080E9280: .4byte 0x00009cc9
-_080E9284:
- ldr r0, _080E92A0 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r1, _080E92A4 @ =0x00009d12
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92A8 @ =0x00009d5b
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E92A0: .4byte gUnknown_083DB694
-_080E92A4: .4byte 0x00009d12
-_080E92A8: .4byte 0x00009d5b
-_080E92AC:
- ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2
- b _080E9326
- .align 2, 0
-_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
-_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
-_080E92C4:
- ldr r0, _080E92D8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- beq _080E92E0
- cmp r0, 0x9
- bne _080E92E8
- ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo
- b _080E933E
- .align 2, 0
-_080E92D8: .4byte gUnknown_083DB694
-_080E92DC: .4byte gOtherText_QuitGivingInfo
-_080E92E0:
- ldr r0, _080E92E4 @ =gOtherText_StopGivingMail
- b _080E933E
- .align 2, 0
-_080E92E4: .4byte gOtherText_StopGivingMail
-_080E92E8:
- ldr r0, _080E92EC @ =gOtherText_QuitEditing
- b _080E933E
- .align 2, 0
-_080E92EC: .4byte gOtherText_QuitEditing
-_080E92F0:
- ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2
- b _080E9326
- .align 2, 0
-_080E9300: .4byte gOtherText_EditedTextNoSavePage1
-_080E9304: .4byte gOtherText_EditedTextNoSavePage2
-_080E9308:
- ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord
- b _080E933E
- .align 2, 0
-_080E930C: .4byte gOtherText_EnterAPhraseOrWord
-_080E9310:
- ldr r0, _080E9314 @ =gOtherText_TextNoDelete
- b _080E933E
- .align 2, 0
-_080E9314: .4byte gOtherText_TextNoDelete
-_080E9318:
- ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored
-_080E9326:
- movs r1, 0x4
- movs r2, 0x11
- movs r3, 0x2
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E9334: .4byte gOtherText_OnlyOnePhrase
-_080E9338: .4byte gOtherText_OriginalSongRestored
-_080E933C:
- ldr r0, _080E934C @ =gOtherText_TrendyAlready
-_080E933E:
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E934C: .4byte gOtherText_TrendyAlready
-_080E9350:
- ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
-_080E935C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9364: .4byte gOtherText_CombineTwoPhrases
- thumb_func_end sub_80E91D4
-
- thumb_func_start sub_80E9368
-sub_80E9368: @ 80E9368
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080E93F8
- lsls r0, 2
- ldr r1, _080E937C @ =_080E9380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E937C: .4byte _080E9380
- .align 2, 0
-_080E9380:
- .4byte _080E93B8
- .4byte _080E93C0
- .4byte _080E93C8
- .4byte _080E93D0
- .4byte _080E93F8
- .4byte _080E93E8
- .4byte _080E93D8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E0
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93F0
-_080E93B8:
- ldr r4, _080E93BC @ =gOtherText_Profile
- b _080E93FA
- .align 2, 0
-_080E93BC: .4byte gOtherText_Profile
-_080E93C0:
- ldr r4, _080E93C4 @ =gOtherText_AtBattleStart
- b _080E93FA
- .align 2, 0
-_080E93C4: .4byte gOtherText_AtBattleStart
-_080E93C8:
- ldr r4, _080E93CC @ =gOtherText_UponWinningBattle
- b _080E93FA
- .align 2, 0
-_080E93CC: .4byte gOtherText_UponWinningBattle
-_080E93D0:
- ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle
- b _080E93FA
- .align 2, 0
-_080E93D4: .4byte gOtherText_UponLosingBattle
-_080E93D8:
- ldr r4, _080E93DC @ =gOtherText_TheBardsSong
- b _080E93FA
- .align 2, 0
-_080E93DC: .4byte gOtherText_TheBardsSong
-_080E93E0:
- ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening
- b _080E93FA
- .align 2, 0
-_080E93E4: .4byte gOtherText_WhatsHipHappening
-_080E93E8:
- ldr r4, _080E93EC @ =gOtherText_Interview
- b _080E93FA
- .align 2, 0
-_080E93EC: .4byte gOtherText_Interview
-_080E93F0:
- ldr r4, _080E93F4 @ =gOtherText_GoodSaying
- b _080E93FA
- .align 2, 0
-_080E93F4: .4byte gOtherText_GoodSaying
-_080E93F8:
- movs r4, 0
-_080E93FA:
- ldr r0, _080E943C @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E9440 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E9444 @ =0x00009f8e
- adds r5, r2, r0
- movs r3, 0xFC
- strb r3, [r5]
- adds r0, 0x1
- adds r1, r2, r0
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080E9448 @ =0x00009f90
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- cmp r4, 0
- beq _080E9450
- ldr r1, _080E944C @ =0x00009f91
- adds r0, r2, r1
- adds r1, r4, 0
- movs r2, 0xF0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- b _080E9476
- .align 2, 0
-_080E943C: .4byte gWindowConfig_81E6D8C
-_080E9440: .4byte gUnknown_083DB694
-_080E9444: .4byte 0x00009f8e
-_080E9448: .4byte 0x00009f90
-_080E944C: .4byte 0x00009f91
-_080E9450:
- ldr r0, _080E9484 @ =0x00009f91
- adds r1, r2, r0
- strb r3, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0
- bl MenuPrint
-_080E9476:
- ldr r0, _080E9488 @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9484: .4byte 0x00009f91
-_080E9488: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9368
-
- thumb_func_start sub_80E948C
-sub_80E948C: @ 80E948C
- push {lr}
- sub sp, 0x10
- ldr r0, _080E94A8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bls _080E949C
- b _080E9594
-_080E949C:
- lsls r0, 2
- ldr r1, _080E94AC @ =_080E94B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E94A8: .4byte gUnknown_083DB694
-_080E94AC: .4byte _080E94B0
- .align 2, 0
-_080E94B0:
- .4byte _080E9508
- .4byte _080E9530
- .4byte _080E9554
- .4byte _080E9578
- .4byte _080E94C8
- .4byte _080E94E8
-_080E94C8:
- ldr r0, _080E94E0 @ =0x06006800
- ldr r3, _080E94E4 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1A
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x6
- str r1, [sp, 0xC]
- movs r1, 0x3
- b _080E9568
- .align 2, 0
-_080E94E0: .4byte 0x06006800
-_080E94E4: .4byte gUnknown_08E94AD0
-_080E94E8:
- ldr r0, _080E9500 @ =0x06006800
- ldr r3, _080E9504 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- movs r1, 0xD
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0xE
- b _080E951E
- .align 2, 0
-_080E9500: .4byte 0x06006800
-_080E9504: .4byte gUnknown_08E94AD0
-_080E9508:
- ldr r0, _080E9528 @ =0x06006800
- ldr r3, _080E952C @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0x2
-_080E951E:
- movs r2, 0x2
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9528: .4byte 0x06006800
-_080E952C: .4byte gUnknown_08E94AD0
-_080E9530:
- ldr r0, _080E954C @ =0x06006800
- ldr r3, _080E9550 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0xA
- str r1, [sp, 0xC]
- movs r1, 0x2
- movs r2, 0
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E954C: .4byte 0x06006800
-_080E9550: .4byte gUnknown_08E94AD0
-_080E9554:
- ldr r0, _080E9570 @ =0x06006800
- ldr r3, _080E9574 @ =gUnknown_08E94AD0
- movs r2, 0xD
- str r2, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0xE
-_080E9568:
- movs r2, 0x3
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9570: .4byte 0x06006800
-_080E9574: .4byte gUnknown_08E94AD0
-_080E9578:
- ldr r0, _080E959C @ =0x06006800
- ldr r3, _080E95A0 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0x3
- movs r2, 0x2
- bl sub_809D104
-_080E9594:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080E959C: .4byte 0x06006800
-_080E95A0: .4byte gUnknown_08E94AD0
- thumb_func_end sub_80E948C
-
- thumb_func_start sub_80E95A4
-sub_80E95A4: @ 80E95A4
- push {lr}
- ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E95C4 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9612
- lsls r0, 2
- ldr r1, _080E95C8 @ =_080E95CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E95C0: .4byte gWindowConfig_81E6D8C
-_080E95C4: .4byte gUnknown_083DB694
-_080E95C8: .4byte _080E95CC
- .align 2, 0
-_080E95CC:
- .4byte _080E95F2
- .4byte _080E95F6
- .4byte _080E9600
- .4byte _080E960A
- .4byte _080E95E4
- .4byte _080E95EE
-_080E95E4:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E9620
- b _080E9612
-_080E95EE:
- movs r0, 0x2
- b _080E9602
-_080E95F2:
- movs r0, 0x3
- b _080E95F8
-_080E95F6:
- movs r0, 0
-_080E95F8:
- movs r1, 0x5
- bl sub_80E9620
- b _080E9612
-_080E9600:
- movs r0, 0x4
-_080E9602:
- movs r1, 0x11
- bl sub_80E9620
- b _080E9612
-_080E960A:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E9620
-_080E9612:
- ldr r0, _080E961C @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E961C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E95A4
-
- thumb_func_start sub_80E9620
-sub_80E9620: @ 80E9620
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r1, 0
- mov r10, r1
- lsrs r7, r0, 16
- mov r9, r1
- ldr r0, _080E9644 @ =gUnknown_083DB694
- ldr r0, [r0]
- b _080E971A
- .align 2, 0
-_080E9644: .4byte gUnknown_083DB694
-_080E9648:
- ldr r6, [sp, 0x14]
- movs r2, 0
- mov r8, r2
- adds r0, r7, 0x2
- str r0, [sp, 0x1C]
- mov r1, r9
- adds r1, 0x1
- str r1, [sp, 0x18]
- b _080E96E4
-_080E965A:
- mov r2, r10
- lsls r0, r2, 1
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _080E9690 @ =0x0000ffff
- cmp r0, r2
- bne _080E969C
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r0, _080E9694 @ =0x06007000
- adds r1, r6, 0
- adds r2, r7, 0
- ldr r3, _080E9698 @ =gUnknown_083DBE1C
- bl sub_8095C8C
- adds r0, r6, 0
- adds r0, 0xB
- b _080E96CC
- .align 2, 0
-_080E9690: .4byte 0x0000ffff
-_080E9694: .4byte 0x06007000
-_080E9698: .4byte gUnknown_083DBE1C
-_080E969C:
- ldr r0, _080E9738 @ =0x00009e14
- adds r4, r5, r0
- ldrh r1, [r1]
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_80EB218
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- mov r1, r9
- lsls r0, r1, 1
- add r0, r8
- adds r1, r5, 0
- adds r1, 0x8C
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xB
- ldrb r1, [r1]
- adds r0, r1
-_080E96CC:
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080E96E4:
- ldr r0, _080E973C @ =gUnknown_083DB694
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- bge _080E970A
- ldrb r2, [r5, 0xA]
- cmp r10, r2
- bcc _080E965A
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- ldr r0, _080E9740 @ =gUnknown_083DBEA8
- bl MenuPrint
-_080E970A:
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 16
- lsrs r7, r0, 16
- ldr r2, [sp, 0x18]
- lsls r0, r2, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, 0
-_080E971A:
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r9, r0
- blt _080E9648
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9738: .4byte 0x00009e14
-_080E973C: .4byte gUnknown_083DB694
-_080E9740: .4byte gUnknown_083DBEA8
- thumb_func_end sub_80E9620
-
- thumb_func_start sub_80E9744
-sub_80E9744: @ 80E9744
- push {lr}
- ldr r0, _080E9760 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E9764 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E97B2
- lsls r0, 2
- ldr r1, _080E9768 @ =_080E976C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9760: .4byte gWindowConfig_81E6D8C
-_080E9764: .4byte gUnknown_083DB694
-_080E9768: .4byte _080E976C
- .align 2, 0
-_080E976C:
- .4byte _080E9792
- .4byte _080E9796
- .4byte _080E97A0
- .4byte _080E97AA
- .4byte _080E9784
- .4byte _080E978E
-_080E9784:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E97C0
- b _080E97B2
-_080E978E:
- movs r0, 0x2
- b _080E97A2
-_080E9792:
- movs r0, 0x3
- b _080E9798
-_080E9796:
- movs r0, 0
-_080E9798:
- movs r1, 0x5
- bl sub_80E97C0
- b _080E97B2
-_080E97A0:
- movs r0, 0x4
-_080E97A2:
- movs r1, 0x11
- bl sub_80E97C0
- b _080E97B2
-_080E97AA:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E97C0
-_080E97B2:
- ldr r0, _080E97BC @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E97BC: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9744
-
- thumb_func_start sub_80E97C0
-sub_80E97C0: @ 80E97C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r7, 0
- movs r3, 0
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- ldr r0, [r1]
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r3, r0
- bge _080E98A6
-_080E97EA:
- ldr r1, [r1]
- ldr r0, _080E98BC @ =0x00009e6e
- adds r2, r1, r0
- movs r6, 0
- adds r0, r1, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r4, [sp]
- lsls r4, 24
- mov r8, r4
- lsls r4, r5, 24
- mov r9, r4
- adds r5, 0x2
- mov r10, r5
- adds r3, 0x1
- str r3, [sp, 0x4]
- cmp r6, r0
- bge _080E985E
- ldrb r1, [r1, 0xA]
- cmp r7, r1
- bcs _080E985E
- ldr r0, _080E98B8 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r5, _080E98C0 @ =0x0000ffff
-_080E981E:
- lsls r0, r7, 1
- adds r1, r4, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r5
- beq _080E983E
- adds r1, r0, 0
- adds r0, r2, 0
- movs r2, 0
- bl sub_80EB218
- adds r2, r0, 0
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
-_080E983E:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E985E
- ldrb r0, [r4, 0xA]
- cmp r7, r0
- bcc _080E981E
-_080E985E:
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- ldr r4, [r1]
- adds r0, r4, 0
- adds r0, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xB
- muls r1, r0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- lsls r1, 3
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _080E98BC @ =0x00009e6e
- adds r0, r4, r2
- mov r3, r8
- lsrs r1, r3, 24
- mov r3, r9
- lsrs r2, r3, 24
- bl MenuPrint
- mov r1, r10
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x4]
- lsls r0, r2, 24
- lsrs r3, r0, 24
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- adds r4, 0x84
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r3, r0
- blt _080E97EA
-_080E98A6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E98B8: .4byte gUnknown_083DB694
-_080E98BC: .4byte 0x00009e6e
-_080E98C0: .4byte 0x0000ffff
- thumb_func_end sub_80E97C0
-
- thumb_func_start sub_80E98C4
-sub_80E98C4: @ 80E98C4
- push {lr}
- ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E98E4 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9936
- lsls r0, 2
- ldr r1, _080E98E8 @ =_080E98EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E98E0: .4byte gWindowConfig_81E6D8C
-_080E98E4: .4byte gUnknown_083DB694
-_080E98E8: .4byte _080E98EC
- .align 2, 0
-_080E98EC:
- .4byte _080E990A
- .4byte _080E9910
- .4byte _080E9916
- .4byte _080E991A
- .4byte _080E9904
- .4byte _080E990A
-_080E9904:
- movs r1, 0x4
- movs r3, 0x2
- b _080E991E
-_080E990A:
- movs r1, 0x3
- movs r3, 0x2
- b _080E991E
-_080E9910:
- movs r1, 0x1
- movs r3, 0x3
- b _080E991E
-_080E9916:
- movs r1, 0x4
- b _080E991C
-_080E991A:
- movs r1, 0x3
-_080E991C:
- movs r3, 0x1
-_080E991E:
- lsls r3, 1
- adds r3, r1, r3
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- movs r2, 0x1B
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080E993C @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
-_080E9936:
- pop {r0}
- bx r0
- .align 2, 0
-_080E993C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E98C4
-
- thumb_func_start sub_80E9940
-sub_80E9940: @ 80E9940
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- movs r4, 0x7
- ands r4, r5
- lsls r3, r4, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0x2
- movs r2, 0x1F
- bl MenuFillWindowRectWithBlankTile
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80E9A7C
- lsls r4, 1
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_80E9A60
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9940
-
- thumb_func_start sub_80E9974
-sub_80E9974: @ 80E9974
- push {r4-r6,lr}
- ldr r0, _080E99C4 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- ldr r0, _080E99C8 @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E99D4
- ldr r1, _080E99CC @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r1, r0, 16
- lsrs r4, r1, 16
- adds r0, 0x4
- cmp r4, r0
- bge _080E9A08
- adds r5, r2, 0
- ldr r2, _080E99CC @ =0x000001b5
- adds r6, r5, r2
-_080E99A4:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E99D0 @ =0x00009dc9
- adds r0, r5, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, 0x4
- cmp r4, r0
- blt _080E99A4
- b _080E9A08
- .align 2, 0
-_080E99C4: .4byte gWindowConfig_81E6D54
-_080E99C8: .4byte gUnknown_083DB694
-_080E99CC: .4byte 0x000001b5
-_080E99D0: .4byte 0x00009dc9
-_080E99D4:
- bl sub_80E9AD4
- ldr r4, _080E9A10 @ =gUnknown_083DBEAC
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0
- bl sub_80E9A60
- adds r0, r4, 0
- adds r0, 0x20
- movs r1, 0x2
- movs r2, 0x2
- bl sub_80E9A60
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0x2
- movs r2, 0x4
- bl sub_80E9A60
- adds r4, 0x60
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x6
- bl sub_80E9A60
-_080E9A08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A10: .4byte gUnknown_083DBEAC
- thumb_func_end sub_80E9974
-
- thumb_func_start sub_80E9A14
-sub_80E9A14: @ 80E9A14
- push {lr}
- bl sub_80E9A4C
- ldr r0, _080E9A44 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E9A40
- movs r0, 0xDD
- lsls r0, 1
- adds r2, r1, r0
- ldr r3, _080E9A48 @ =0x000001b5
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
-_080E9A40:
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A44: .4byte gUnknown_083DB694
-_080E9A48: .4byte 0x000001b5
- thumb_func_end sub_80E9A14
-
- thumb_func_start sub_80E9A4C
-sub_80E9A4C: @ 80E9A4C
- ldr r0, _080E9A5C @ =gUnknown_083DB694
- ldr r0, [r0]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080E9A5C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A4C
-
- thumb_func_start sub_80E9A60
-sub_80E9A60: @ 80E9A60
- push {lr}
- lsls r2, 16
- movs r3, 0xF0
- lsls r3, 12
- ands r3, r2
- lsls r1, 24
- lsrs r1, 24
- lsrs r3, 16
- adds r2, r3, 0
- bl MenuPrint
- pop {r0}
- bx r0
- thumb_func_end sub_80E9A60
-
- thumb_func_start sub_80E9A7C
-sub_80E9A7C: @ 80E9A7C
- push {r4-r7,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r0, r7, 17
- lsrs r5, r0, 16
- movs r4, 0
- ldr r0, _080E9AD0 @ =gUnknown_083DB694
- ldr r6, [r0]
-_080E9A8E:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x58
- muls r0, r4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r1, r7, 1
- adds r1, r4, r1
- adds r0, r6, 0
- adds r0, 0x2A
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0xB
- bl sub_80EAD64
- adds r2, r0, 0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r6, 0x28]
- cmp r5, r0
- bcs _080E9ACA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E9A8E
-_080E9ACA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AD0: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A7C
-
- thumb_func_start sub_80E9AD4
-sub_80E9AD4: @ 80E9AD4
- push {r4,lr}
- ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- movs r4, 0
-_080E9ADE:
- adds r0, r4, 0
- bl sub_80E9C74
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080E9ADE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AF4: .4byte gWindowConfig_81E6D54
- thumb_func_end sub_80E9AD4
-
- thumb_func_start sub_80E9AF8
-sub_80E9AF8: @ 80E9AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- bl sub_80E9C74
- ldr r4, _080E9B7C @ =gUnknown_083DB694
- ldr r5, [r4]
- ldr r0, _080E9B80 @ =0x00009e14
- adds r0, r5
- mov r8, r0
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- ldr r2, _080E9B84 @ =0x00009e17
- adds r2, r5
- mov r8, r2
- adds r0, r5, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E9BF4
- movs r6, 0
- ldr r3, _080E9B88 @ =0x000099a6
- adds r0, r5, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- blt _080E9B4A
- b _080E9C52
-_080E9B4A:
- lsls r0, r7, 2
- mov r9, r0
- ldr r1, _080E9B8C @ =0x00009a2a
- adds r1, r5, r1
- str r1, [sp]
- lsls r2, r7, 17
- mov r10, r2
-_080E9B58:
- lsls r4, r6, 1
- mov r3, r9
- adds r0, r4, r3
- ldr r1, [sp]
- adds r0, r1, r0
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- adds r5, r4, 0
- cmp r0, 0x7
- bne _080E9B94
- ldr r0, _080E9B90 @ =gWindowConfig_81E6D70
- bl BasicInitMenuWindow
- b _080E9B9A
- .align 2, 0
-_080E9B7C: .4byte gUnknown_083DB694
-_080E9B80: .4byte 0x00009e14
-_080E9B84: .4byte 0x00009e17
-_080E9B88: .4byte 0x000099a6
-_080E9B8C: .4byte 0x00009a2a
-_080E9B90: .4byte gWindowConfig_81E6D70
-_080E9B94:
- ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
-_080E9B9A:
- ldr r2, _080E9BE4 @ =gUnknown_083DB694
- ldr r4, [r2]
- mov r3, r9
- adds r1, r5, r3
- ldr r2, _080E9BE8 @ =0x00009a2a
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- ldr r3, _080E9BEC @ =0x00009e14
- adds r0, r4, r3
- movs r1, 0xB
- muls r1, r6
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- mov r3, r10
- lsrs r2, r3, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080E9BF0 @ =0x000099a6
- adds r4, r0
- adds r4, r7
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r6, r0
- blt _080E9B58
- b _080E9C52
- .align 2, 0
-_080E9BE0: .4byte gWindowConfig_81E6D54
-_080E9BE4: .4byte gUnknown_083DB694
-_080E9BE8: .4byte 0x00009a2a
-_080E9BEC: .4byte 0x00009e14
-_080E9BF0: .4byte 0x000099a6
-_080E9BF4:
- ldr r0, _080E9C64 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- movs r6, 0
- ldr r1, _080E9C68 @ =0x000099a6
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E9C52
- adds r4, r5, 0
- adds r0, r4, r1
- adds r0, r7
- mov r9, r0
- lsls r5, r7, 17
-_080E9C16:
- lsls r1, r6, 1
- lsls r0, r7, 2
- adds r1, r0
- ldr r2, _080E9C6C @ =0x00009a2a
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- movs r0, 0xB
- adds r1, r6, 0
- muls r1, r0
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _080E9C70 @ =0x00009e14
- adds r0, r4, r3
- lsrs r2, r5, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r9
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r6, r0
- blt _080E9C16
-_080E9C52:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9C64: .4byte gWindowConfig_81E6D54
-_080E9C68: .4byte 0x000099a6
-_080E9C6C: .4byte 0x00009a2a
-_080E9C70: .4byte 0x00009e14
- thumb_func_end sub_80E9AF8
-
- thumb_func_start sub_80E9C74
-sub_80E9C74: @ 80E9C74
- push {lr}
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- lsls r3, r1, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0
- movs r2, 0x1D
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C74
-
- thumb_func_start sub_80E9C94
-sub_80E9C94: @ 80E9C94
- push {r4-r6,lr}
- ldr r0, _080E9CAC @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r2, _080E9CB0 @ =0x00009a28
- adds r1, r0, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x3
- bgt _080E9CB4
- lsls r0, 16
- lsrs r0, 16
- b _080E9CB6
- .align 2, 0
-_080E9CAC: .4byte gUnknown_083DB694
-_080E9CB0: .4byte 0x00009a28
-_080E9CB4:
- movs r0, 0x4
-_080E9CB6:
- adds r5, r0, 0
- movs r4, 0
- cmp r4, r5
- bcs _080E9CF4
- ldr r0, _080E9CE0 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E9CE4 @ =0x00009a29
- adds r6, r0, r1
-_080E9CC6:
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- bl sub_80E9AF8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _080E9CC6
- b _080E9CF4
- .align 2, 0
-_080E9CE0: .4byte gUnknown_083DB694
-_080E9CE4: .4byte 0x00009a29
-_080E9CE8:
- adds r0, r4, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_80E9C74
-_080E9CF4:
- cmp r4, 0x3
- bls _080E9CE8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C94
-
- thumb_func_start sub_80E9D00
-sub_80E9D00: @ 80E9D00
- push {r4-r6,lr}
- ldr r0, _080E9D28 @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- ble _080E9D30
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D2C @ =0x00009a29
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- b _080E9D46
- .align 2, 0
-_080E9D28: .4byte gUnknown_083DB694
-_080E9D2C: .4byte 0x00009a29
-_080E9D30:
- movs r0, 0
- ldrsb r0, [r1, r0]
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D74 @ =0x00009a29
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r4
-_080E9D46:
- lsls r0, 16
- lsrs r5, r0, 16
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080E9D78 @ =0x0000ffff
- cmp r4, r0
- beq _080E9D6E
- adds r6, r0, 0
-_080E9D58:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_80E9AF8
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r6
- bne _080E9D58
-_080E9D6E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9D74: .4byte 0x00009a29
-_080E9D78: .4byte 0x0000ffff
- thumb_func_end sub_80E9D00
-
- thumb_func_start sub_80E9D7C
-sub_80E9D7C: @ 80E9D7C
- push {r4-r7,lr}
- ldr r0, _080E9DAC @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- ldr r0, _080E9DB0 @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E9DB8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DB4 @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r6
- b _080E9DCC
- .align 2, 0
-_080E9DAC: .4byte gWindowConfig_81E6D54
-_080E9DB0: .4byte gUnknown_083DB694
-_080E9DB4: .4byte 0x000001b5
-_080E9DB8:
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DFC @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
-_080E9DCC:
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0
- cmp r5, r6
- bcs _080E9DF6
- ldr r0, _080E9E00 @ =gUnknown_083DB694
- ldr r7, [r0]
-_080E9DDA:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E9E04 @ =0x00009dc9
- adds r0, r7, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r6
- bcc _080E9DDA
-_080E9DF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9DFC: .4byte 0x000001b5
-_080E9E00: .4byte gUnknown_083DB694
-_080E9E04: .4byte 0x00009dc9
- thumb_func_end sub_80E9D7C
-
- thumb_func_start sub_80E9E08
-sub_80E9E08: @ 80E9E08
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E9E4C @ =gUnknown_083DB694
- ldr r3, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r3, r0
- movs r5, 0xE0
- lsls r5, 1
- adds r2, r3, r5
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 4
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7F
- ands r0, r1
- subs r5, 0x4
- adds r1, r3, r5
- strh r0, [r1]
- adds r1, r4, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bge _080E9E3E
- negs r1, r4
-_080E9E3E:
- ldr r2, _080E9E50 @ =0x000001bf
- adds r0, r3, r2
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9E4C: .4byte gUnknown_083DB694
-_080E9E50: .4byte 0x000001bf
- thumb_func_end sub_80E9E08
-
- thumb_func_start sub_80E9E54
-sub_80E9E54: @ 80E9E54
- push {r4,lr}
- ldr r0, _080E9E8C @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r3, r2, r0
- ldr r1, _080E9E90 @ =0x000001bf
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r4, [r3]
- adds r0, r4
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r3]
- movs r3, 0
- movs r4, 0xDE
- lsls r4, 1
- adds r1, r2, r4
- ldrh r1, [r1]
- cmp r0, r1
- bne _080E9E84
- movs r3, 0x1
-_080E9E84:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E9E8C: .4byte gUnknown_083DB694
-_080E9E90: .4byte 0x000001bf
- thumb_func_end sub_80E9E54
-
- thumb_func_start nullsub_23
-nullsub_23: @ 80E9E94
- bx lr
- thumb_func_end nullsub_23
-
- thumb_func_start sub_80E9E98
-sub_80E9E98: @ 80E9E98
- ldr r0, _080E9EA4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080E9EA4: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9E98
-
- thumb_func_start sub_80E9EA8
-sub_80E9EA8: @ 80E9EA8
- push {lr}
- ldr r1, _080E9EC4 @ =gUnknown_083DB694
- ldr r0, [r1]
- adds r0, 0xBE
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _080E9F48
- lsls r0, 2
- ldr r1, _080E9EC8 @ =_080E9ECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9EC4: .4byte gUnknown_083DB694
-_080E9EC8: .4byte _080E9ECC
- .align 2, 0
-_080E9ECC:
- .4byte _080E9EE4
- .4byte _080E9EF4
- .4byte _080E9F0C
- .4byte _080E9F24
- .4byte _080E9F38
- .4byte _080E9F44
-_080E9EE4:
- bl sub_80EA24C
- ldr r0, _080E9F08 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9EF4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA4A4
- ldr r0, _080E9F08 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F08: .4byte gUnknown_083DB694
-_080E9F0C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA704
- ldr r0, _080E9F20 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F20: .4byte gUnknown_083DB694
-_080E9F24:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- ldr r0, _080E9F34 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F34: .4byte gUnknown_083DB694
-_080E9F38:
- ldr r1, [r2]
-_080E9F3A:
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9F48
-_080E9F44:
- movs r0, 0x1
- b _080E9F4A
-_080E9F48:
- movs r0, 0
-_080E9F4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9EA8
-
- thumb_func_start sub_80E9F50
-sub_80E9F50: @ 80E9F50
- push {lr}
- ldr r0, _080E9F68 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x6
- bhi _080E9FCC
- lsls r0, 2
- ldr r1, _080E9F6C @ =_080E9F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9F68: .4byte gUnknown_083DB694
-_080E9F6C: .4byte _080E9F70
- .align 2, 0
-_080E9F70:
- .4byte _080E9F8C
- .4byte _080E9FAC
- .4byte _080E9F96
- .4byte _080E9FAC
- .4byte _080E9F9C
- .4byte _080E9FAC
- .4byte _080E9FC8
-_080E9F8C:
- bl nullsub_23
- bl sub_80EA764
- b _080E9FA0
-_080E9F96:
- bl sub_80EA5A0
- b _080E9FA0
-_080E9F9C:
- bl sub_80EA348
-_080E9FA0:
- ldr r0, _080E9FC4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9FAC:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9FCC
- ldr r0, _080E9FC4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9FCC
- .align 2, 0
-_080E9FC4: .4byte gUnknown_083DB694
-_080E9FC8:
- movs r0, 0x1
- b _080E9FCE
-_080E9FCC:
- movs r0, 0
-_080E9FCE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9F50
-
- thumb_func_start sub_80E9FD4
-sub_80E9FD4: @ 80E9FD4
- push {r4,lr}
- ldr r0, _080E9FEC @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080E9FF0
- cmp r0, 0x1
- beq _080E9FFE
- b _080EA00C
- .align 2, 0
-_080E9FEC: .4byte gUnknown_083DB694
-_080E9FF0:
- bl nullsub_23
- bl sub_80EA5A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080E9FFE:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA00C
- movs r0, 0x1
- b _080EA00E
-_080EA00C:
- movs r0, 0
-_080EA00E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E9FD4
-
- thumb_func_start sub_80EA014
-sub_80EA014: @ 80EA014
- push {r4,lr}
- ldr r0, _080EA02C @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EA030
- cmp r0, 0x1
- beq _080EA03A
- b _080EA048
- .align 2, 0
-_080EA02C: .4byte gUnknown_083DB694
-_080EA030:
- bl sub_80EA4A4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA03A:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA048
- movs r0, 0x1
- b _080EA04A
-_080EA048:
- movs r0, 0
-_080EA04A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA014
-
- thumb_func_start sub_80EA050
-sub_80EA050: @ 80EA050
- push {lr}
- ldr r0, _080EA068 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA0DC
- lsls r0, 2
- ldr r1, _080EA06C @ =_080EA070
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA068: .4byte gUnknown_083DB694
-_080EA06C: .4byte _080EA070
- .align 2, 0
-_080EA070:
- .4byte _080EA084
- .4byte _080EA08E
- .4byte _080EA09E
- .4byte _080EA0B4
- .4byte _080EA0D8
-_080EA084:
- bl nullsub_23
- bl sub_80EA764
- b _080EA0C4
-_080EA08E:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA7F4
- b _080EA0C4
-_080EA09E:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA8BC
- b _080EA0C4
-_080EA0B4:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
-_080EA0C4:
- ldr r0, _080EA0D4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA0DC
- .align 2, 0
-_080EA0D4: .4byte gUnknown_083DB694
-_080EA0D8:
- movs r0, 0x1
- b _080EA0DE
-_080EA0DC:
- movs r0, 0
-_080EA0DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA050
-
- thumb_func_start sub_80EA0E4
-sub_80EA0E4: @ 80EA0E4
- push {lr}
- ldr r0, _080EA0FC @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA17C
- lsls r0, 2
- ldr r1, _080EA100 @ =_080EA104
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA0FC: .4byte gUnknown_083DB694
-_080EA100: .4byte _080EA104
- .align 2, 0
-_080EA104:
- .4byte _080EA118
- .4byte _080EA128
- .4byte _080EA144
- .4byte _080EA15C
- .4byte _080EA178
-_080EA118:
- bl sub_80EA948
- ldr r0, _080EA140 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EA128:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EAA44
- b _080EA166
- .align 2, 0
-_080EA140: .4byte gUnknown_083DB694
-_080EA144:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EA704
- b _080EA166
-_080EA15C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
-_080EA166:
- ldr r0, _080EA174 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA17C
- .align 2, 0
-_080EA174: .4byte gUnknown_083DB694
-_080EA178:
- movs r0, 0x1
- b _080EA17E
-_080EA17C:
- movs r0, 0
-_080EA17E:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA0E4
-
- thumb_func_start sub_80EA184
-sub_80EA184: @ 80EA184
- push {r4,lr}
- ldr r0, _080EA1A0 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EA1B4
- cmp r0, 0x1
- bgt _080EA1A4
- cmp r0, 0
- beq _080EA1AA
- b _080EA1D8
- .align 2, 0
-_080EA1A0: .4byte gUnknown_083DB694
-_080EA1A4:
- cmp r0, 0x2
- beq _080EA1D0
- b _080EA1D8
-_080EA1AA:
- bl sub_80EAAD4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA1B4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA1D8
- ldr r0, _080EA1CC @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA1D8
- .align 2, 0
-_080EA1CC: .4byte gUnknown_083DB694
-_080EA1D0:
- bl sub_80E9178
- movs r0, 0x1
- b _080EA1DA
-_080EA1D8:
- movs r0, 0
-_080EA1DA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA184
-
- thumb_func_start sub_80EA1E0
-sub_80EA1E0: @ 80EA1E0
- push {r4-r6,lr}
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EA244
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EA228
- adds r5, r1, 0
- adds r6, r0, 0
-_080EA200:
- lsls r0, r4, 4
- adds r0, 0xC8
- adds r0, r5, r0
- bl sub_80EAC0C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- bl sub_80EAC48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EA200
-_080EA228:
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0xBC
- movs r0, 0x1
- strb r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080EA246
- .align 2, 0
-_080EA240: .4byte gUnknown_083DB694
-_080EA244:
- movs r0, 0x1
-_080EA246:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA1E0
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA340 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- ldr r1, _080EA344 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r6, 0x10
- str r6, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0x9
- mov r3, r8
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA340: .4byte gUnknown_083DB694
-_080EA344: .4byte 0x0000fffe
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA348
-sub_80EA348: @ 80EA348
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA49C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r5, 0xF
- str r5, [sp]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EA4A0 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0x2
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r5, 0x10
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r8
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0x2
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xE
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA49C: .4byte gUnknown_083DB694
-_080EA4A0: .4byte 0x0000fffe
- thumb_func_end sub_80EA348
-
- thumb_func_start sub_80EA4A4
-sub_80EA4A4: @ 80EA4A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA598 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r1, _080EA59C @ =0x0000ffff
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x10
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r6, 0x1
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA598: .4byte gUnknown_083DB694
-_080EA59C: .4byte 0x0000ffff
- thumb_func_end sub_80EA4A4
-
- thumb_func_start sub_80EA5A0
-sub_80EA5A0: @ 80EA5A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA6FC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EA700 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r1, r8
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x6
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6FC: .4byte gUnknown_083DB694
-_080EA700: .4byte 0x0000ffff
- thumb_func_end sub_80EA5A0
-
- thumb_func_start sub_80EA704
-sub_80EA704: @ 80EA704
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA75C @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r1, 0x14
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- ldr r3, _080EA760 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0xA
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xC2
- strh r5, [r0]
- adds r1, r6, 0
- adds r1, 0xC4
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA75C: .4byte gUnknown_083DB694
-_080EA760: .4byte 0x0000ffff
- thumb_func_end sub_80EA704
-
- thumb_func_start sub_80EA764
-sub_80EA764: @ 80EA764
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _080EA7EC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EA7F0 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1E
- movs r2, 0xC
- movs r3, 0x1F
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0xC
- adds r3, r5, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7EC: .4byte gUnknown_083DB694
-_080EA7F0: .4byte 0x0000ffff
- thumb_func_end sub_80EA764
-
- thumb_func_start sub_80EA7F4
-sub_80EA7F4: @ 80EA7F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r0, _080EA8B4 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x14
- movs r2, 0xA
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- ldr r3, _080EA8B8 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r2, r7
- mov r8, r2
- str r2, [sp, 0x4]
- movs r1, 0x19
- movs r2, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x3
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8B4: .4byte gUnknown_083DB694
-_080EA8B8: .4byte 0x0000ffff
- thumb_func_end sub_80EA7F4
-
- thumb_func_start sub_80EA8BC
-sub_80EA8BC: @ 80EA8BC
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA944 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA944: .4byte gUnknown_083DB694
- thumb_func_end sub_80EA8BC
-
- thumb_func_start sub_80EA948
-sub_80EA948: @ 80EA948
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EAA3C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EAA40 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x80
- adds r1, r7
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x5
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1A
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- movs r1, 0x1A
- movs r2, 0xA
- adds r3, r5, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x19
- movs r2, 0xA
- movs r3, 0x1A
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAA3C: .4byte gUnknown_083DB694
-_080EAA40: .4byte 0x0000ffff
- thumb_func_end sub_80EA948
-
- thumb_func_start sub_80EAA44
-sub_80EAA44: @ 80EAA44
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EAACC @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EAAD0 @ =0x0000ffff
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x17
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAACC: .4byte gUnknown_083DB694
-_080EAAD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAA44
-
- thumb_func_start sub_80EAAD4
-sub_80EAAD4: @ 80EAAD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EABCC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r1, 0xF
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r5, 0x1
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EABD0 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0
- movs r2, 0xF
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x68
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EABCC: .4byte gUnknown_083DB694
-_080EABD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAAD4
-
- thumb_func_start sub_80EABD4
-sub_80EABD4: @ 80EABD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r8, r7
- strh r1, [r0]
- strh r3, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r5, [r0, 0x6]
- strh r6, [r0, 0x8]
- strh r4, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r4, r8
- strh r4, [r0, 0xE]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD4
-
- thumb_func_start sub_80EAC0C
-sub_80EAC0C: @ 80EAC0C
- ldrh r1, [r0, 0x8]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0xA]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0xC]
- ldrh r2, [r0, 0x4]
- adds r1, r2
- strh r1, [r0, 0x4]
- ldrh r1, [r0, 0xE]
- ldrh r2, [r0, 0x6]
- adds r1, r2
- strh r1, [r0, 0x6]
- bx lr
- thumb_func_end sub_80EAC0C
-
- thumb_func_start sub_80EAC30
-sub_80EAC30: @ 80EAC30
- push {r4,r5,lr}
- ldr r4, [sp, 0xC]
- ldr r5, [sp, 0x10]
- strh r1, [r0]
- strh r2, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- str r5, [r0, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC30
-
- thumb_func_start sub_80EAC48
-sub_80EAC48: @ 80EAC48
- ldrh r1, [r0, 0x4]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0x6]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end sub_80EAC48
-
- thumb_func_start sub_80EAC5C
-sub_80EAC5C: @ 80EAC5C
- push {r4-r6,lr}
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EACAC
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EACA2
- adds r5, r1, 0
- adds r6, r0, 0
-_080EAC7C:
- lsls r1, r4, 4
- adds r1, 0xC8
- adds r1, r5, r1
- lsls r2, r4, 1
- adds r2, r4
- lsls r2, 2
- movs r0, 0xA4
- lsls r0, 1
- adds r2, r0
- adds r2, r5, r2
- ldr r0, _080EACB8 @ =0x06006800
- bl sub_80EACBC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EAC7C
-_080EACA2:
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBC
- movs r1, 0
- strb r1, [r0]
-_080EACAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EACB4: .4byte gUnknown_083DB694
-_080EACB8: .4byte 0x06006800
- thumb_func_end sub_80EAC5C
-
- thumb_func_start sub_80EACBC
-sub_80EACBC: @ 80EACBC
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- ldrh r2, [r3, 0x2]
- ldrh r0, [r3]
- subs r2, r0
- ldrh r0, [r3, 0x6]
- ldrh r1, [r3, 0x4]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r6, r2, 16
- cmp r6, 0
- ble _080EACFE
- lsls r5, r0, 16
- cmp r5, 0
- ble _080EACFE
- ldrh r1, [r3]
- ldrh r2, [r3, 0x4]
- ldr r3, [r4, 0x8]
- ldrh r0, [r4]
- str r0, [sp]
- ldrh r0, [r4, 0x2]
- str r0, [sp, 0x4]
- lsrs r0, r6, 16
- str r0, [sp, 0x8]
- lsrs r0, r5, 16
- str r0, [sp, 0xC]
- adds r0, r7, 0
- bl sub_809D104
-_080EACFE:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EACBC
-
- thumb_func_start sub_80EAD08
-sub_80EAD08: @ 80EAD08
- push {r4,r5,lr}
- ldr r0, _080EAD58 @ =gUnknown_03004DC0
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080EAD5C @ =gUnknown_03004DE0
- adds r4, r0, r1
- adds r4, 0xB0
- ldr r0, _080EAD60 @ =gUnknown_083DB694
- ldr r1, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- adds r2, r0, 0
- subs r2, 0x58
- movs r0, 0xFF
- ands r2, r0
- movs r3, 0
- movs r5, 0xFF
-_080EAD32:
- ldrh r0, [r1]
- adds r0, r3
- cmp r0, 0x80
- bne _080EAD42
- negs r0, r3
- adds r2, r0, 0
- subs r2, 0x58
- ands r2, r5
-_080EAD42:
- strh r2, [r4]
- adds r4, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080EAD32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD58: .4byte gUnknown_03004DC0
-_080EAD5C: .4byte gUnknown_03004DE0
-_080EAD60: .4byte gUnknown_083DB694
- thumb_func_end sub_80EAD08
-
- thumb_func_start sub_80EAD64
-sub_80EAD64: @ 80EAD64
- push {lr}
- lsls r1, 24
- ldr r2, _080EAD78 @ =gEasyChatGroupNames
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r1}
- bx r1
- .align 2, 0
-_080EAD78: .4byte gEasyChatGroupNames
- thumb_func_end sub_80EAD64
-
- thumb_func_start sub_80EAD7C
-sub_80EAD7C: @ 80EAD7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x14
- beq _080EADA2
- cmp r0, 0x14
- bgt _080EAD9C
- cmp r0, 0x11
- blt _080EADBA
- ldr r0, _080EAD98 @ =0x00000804
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EAD98: .4byte 0x00000804
-_080EAD9C:
- cmp r1, 0x15
- beq _080EADB0
- b _080EADBA
-_080EADA2:
- ldr r0, _080EADAC @ =0x00000806
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EADAC: .4byte 0x00000806
-_080EADB0:
- bl sub_80EB9C8
-_080EADB4:
- lsls r0, 24
- lsrs r0, 24
- b _080EADBC
-_080EADBA:
- movs r0, 0x1
-_080EADBC:
- pop {r1}
- bx r1
- thumb_func_end sub_80EAD7C
-
- thumb_func_start sub_80EADC0
-sub_80EADC0: @ 80EADC0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r2, 0x15
- bhi _080EAE82
- lsls r0, r2, 2
- ldr r1, _080EADD8 @ =_080EADDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EADD8: .4byte _080EADDC
- .align 2, 0
-_080EADDC:
- .4byte _080EAE50
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE34
- .4byte _080EAE78
-_080EAE34:
- ldr r0, _080EAE4C @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EAE70
- lsls r0, r3, 24
- lsrs r0, 24
- bl sub_80EB868
- b _080EAE7C
- .align 2, 0
-_080EAE4C: .4byte gUnknown_083DB694
-_080EAE50:
- adds r0, r3, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- b _080EAE7C
-_080EAE62:
- ldr r0, _080EAE74 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EAE82
-_080EAE70:
- movs r0, 0
- b _080EAE84
- .align 2, 0
-_080EAE74: .4byte gUnknown_083DB694
-_080EAE78:
- bl sub_80EB9C8
-_080EAE7C:
- lsls r0, 24
- lsrs r0, 24
- b _080EAE84
-_080EAE82:
- movs r0, 0x1
-_080EAE84:
- pop {r1}
- bx r1
- thumb_func_end sub_80EADC0
-
- thumb_func_start sub_80EAE88
-sub_80EAE88: @ 80EAE88
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080EAEA6
- cmp r4, 0x14
- beq _080EAEB2
- adds r0, r4, 0
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EAEBC
- movs r0, 0
- b _080EAEC2
-_080EAEA6:
- movs r0, 0
- bl GetHoennPokedexCount
- lsls r0, 16
- lsrs r0, 16
- b _080EAEC2
-_080EAEB2:
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r0, 24
- b _080EAEC2
-_080EAEBC:
- ldr r0, _080EAEC8 @ =gEasyChatGroupSizes
- adds r0, r4, r0
- ldrb r0, [r0]
-_080EAEC2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EAEC8: .4byte gEasyChatGroupSizes
- thumb_func_end sub_80EAE88
-
- thumb_func_start sub_80EAECC
-sub_80EAECC: @ 80EAECC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r8, r0
- ldr r1, _080EAF10 @ =gUnknown_083DB694
- ldr r0, [r1]
- ldr r3, _080EAF14 @ =0x00004142
- adds r3, r0, r3
- str r3, [sp, 0x4]
-_080EAEE6:
- ldr r1, _080EAF18 @ =gEasyChatWordsByLetter
- mov r7, r8
- lsls r2, r7, 1
- adds r0, r2, r1
- ldrh r4, [r0]
- mov r3, r8
- adds r3, 0x1
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x4]
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- mov r9, r0
- adds r6, r4, 0
- mov r10, r2
- str r3, [sp, 0x8]
- b _080EB00C
- .align 2, 0
-_080EAF10: .4byte gUnknown_083DB694
-_080EAF14: .4byte 0x00004142
-_080EAF18: .4byte gEasyChatWordsByLetter
-_080EAF1C:
- ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r4, r1, 0
- ldr r0, _080EAFB4 @ =0x0000feff
- cmp r1, r0
- bls _080EAFCC
- movs r0, 0xFF
- ands r1, r0
- movs r7, 0
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r3, _080EAFB8 @ =0x0000ffff
- cmp r5, r3
- beq _080EB00C
- mov r1, r8
- lsls r0, r1, 8
- subs r0, r1
- lsls r3, r0, 1
-_080EAF4E:
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized
- adds r1, r0
- ldrh r4, [r1]
- lsrs r0, r4, 9
- ldr r1, _080EAFBC @ =0x000001ff
- adds r2, r1, 0
- adds r1, r4, 0
- ands r1, r2
- str r3, [sp, 0xC]
- bl sub_80EADC0
- lsls r0, 24
- ldr r3, [sp, 0xC]
- cmp r0, 0
- beq _080EAFA2
- cmp r7, 0
- bne _080EAFA2
- ldr r7, _080EAFC0 @ =gUnknown_083DB694
- ldr r2, [r7]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 1
- adds r1, r3
- ldr r7, _080EAFC4 @ =0x00000b78
- adds r0, r2, r7
- adds r0, r1
- strh r4, [r0]
- ldr r0, _080EAFC8 @ =0x00004142
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- movs r7, 0x1
-_080EAFA2:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080EAFB8 @ =0x0000ffff
- cmp r5, r1
- bne _080EAF4E
- b _080EB00C
- .align 2, 0
-_080EAFB0: .4byte gEasyChatWordsAlphabetized
-_080EAFB4: .4byte 0x0000feff
-_080EAFB8: .4byte 0x0000ffff
-_080EAFBC: .4byte 0x000001ff
-_080EAFC0: .4byte gUnknown_083DB694
-_080EAFC4: .4byte 0x00000b78
-_080EAFC8: .4byte 0x00004142
-_080EAFCC:
- lsrs r0, r4, 9
- ldr r3, _080EB030 @ =0x000001ff
- adds r2, r3, 0
- adds r1, r4, 0
- ands r1, r2
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB00C
- ldr r7, _080EB034 @ =gUnknown_083DB694
- ldr r2, [r7]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r3, r8
- lsls r0, r3, 8
- subs r0, r3
- adds r0, r1
- lsls r0, 1
- ldr r7, _080EB038 @ =0x00000b78
- adds r1, r2, r7
- adds r1, r0
- strh r4, [r1]
- ldr r0, _080EB03C @ =0x00004142
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EB00C:
- ldr r1, [sp]
- cmp r6, r1
- bcc _080EAF1C
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x1A
- bhi _080EB020
- b _080EAEE6
-_080EB020:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB030: .4byte 0x000001ff
-_080EB034: .4byte gUnknown_083DB694
-_080EB038: .4byte 0x00000b78
-_080EB03C: .4byte 0x00004142
- thumb_func_end sub_80EAECC
-
- thumb_func_start sub_80EB040
-sub_80EB040: @ 80EB040
- push {r4-r6,lr}
- movs r3, 0
-_080EB044:
- adds r6, r3, 0x1
- cmp r3, 0
- beq _080EB094
- cmp r3, 0x15
- beq _080EB094
- cmp r3, 0x12
- beq _080EB094
- cmp r3, 0x13
- beq _080EB094
- ldr r0, _080EB0A4 @ =gEasyChatGroupWords
- lsls r1, r3, 2
- adds r1, r0
- ldr r2, [r1]
- movs r4, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _080EB094
- ldr r0, _080EB0A8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080EB0AC @ =0x000041a4
- adds r5, r0, r1
-_080EB06E:
- lsls r0, r4, 2
- lsls r1, r3, 10
- adds r0, r1
- adds r0, r5, r0
- str r2, [r0]
- ldrb r0, [r2]
- adds r1, r4, 0x1
- cmp r0, 0xFF
- beq _080EB088
-_080EB080:
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB080
-_080EB088:
- adds r2, 0x1
- lsls r0, r1, 16
- lsrs r4, r0, 16
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB06E
-_080EB094:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, 0x15
- bls _080EB044
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB0A4: .4byte gEasyChatGroupWords
-_080EB0A8: .4byte gUnknown_083DB694
-_080EB0AC: .4byte 0x000041a4
- thumb_func_end sub_80EB040
-
- thumb_func_start sub_80EB0B0
-sub_80EB0B0: @ 80EB0B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r3, _080EB184 @ =gUnknown_083DB694
- ldr r4, [r3]
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r5, [r0]
- cmp r5, 0
- bne _080EB19C
- movs r0, 0xDC
- lsls r0, 1
- adds r2, r4, r0
- ldrb r6, [r2]
- lsls r1, r6, 1
- ldr r7, _080EB188 @ =0x00004178
- adds r0, r4, r7
- adds r0, r1
- strh r5, [r0]
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r1, _080EB18C @ =gEasyChatGroupOrders
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp]
- movs r1, 0
- mov r8, r1
- ldr r1, _080EB190 @ =gEasyChatGroupSizes
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB0FE
- b _080EB1FA
-_080EB0FE:
- movs r2, 0xDC
- lsls r2, 1
- adds r2, r4, r2
- str r2, [sp, 0x4]
- lsls r5, r6, 24
- mov r10, r5
-_080EB10A:
- mov r1, r8
- lsls r0, r1, 1
- ldr r2, [sp]
- adds r5, r0, r2
- ldrh r1, [r5]
- mov r2, r10
- lsrs r0, r2, 24
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB16A
- ldr r0, _080EB184 @ =gUnknown_083DB694
- ldr r3, [r0]
- lsls r1, r7, 1
- mov r2, r9
- lsls r0, r2, 2
- adds r1, r0
- ldr r0, _080EB194 @ =0x00009a2a
- adds r4, r3, r0
- adds r4, r1
- movs r0, 0x7F
- ands r0, r6
- lsls r0, 9
- ldrh r1, [r5]
- ldr r5, _080EB198 @ =0x000001ff
- adds r2, r5, 0
- ands r1, r2
- orrs r0, r1
- strh r0, [r4]
- lsls r0, r6, 1
- ldr r1, _080EB188 @ =0x00004178
- adds r3, r1
- adds r3, r0
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _080EB16A
- movs r7, 0
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
-_080EB16A:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _080EB190 @ =gEasyChatGroupSizes
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB10A
- b _080EB1FA
- .align 2, 0
-_080EB184: .4byte gUnknown_083DB694
-_080EB188: .4byte 0x00004178
-_080EB18C: .4byte gEasyChatGroupOrders
-_080EB190: .4byte gEasyChatGroupSizes
-_080EB194: .4byte 0x00009a2a
-_080EB198: .4byte 0x000001ff
-_080EB19C:
- movs r5, 0xDC
- lsls r5, 1
- adds r0, r4, r5
- ldrb r2, [r0]
- movs r3, 0
- movs r6, 0
- movs r5, 0
- lsls r1, r2, 1
- ldr r7, _080EB20C @ =0x00004142
- adds r0, r4, r7
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r5, r0
- bcs _080EB1FA
- ldr r7, _080EB210 @ =0x00009a2a
- adds r7, r4
- mov r8, r7
- lsls r0, r2, 8
- subs r0, r2
- lsls r7, r0, 1
- ldr r0, _080EB214 @ =0x00000b78
- adds r2, r4, r0
- adds r4, r1, 0
-_080EB1CA:
- lsls r1, r3, 1
- lsls r0, r6, 2
- adds r1, r0
- add r1, r8
- lsls r0, r5, 1
- adds r0, r7
- adds r0, r2, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _080EB1EE
- movs r3, 0
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB1EE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r1, [r4]
- cmp r5, r1
- bcc _080EB1CA
-_080EB1FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB20C: .4byte 0x00004142
-_080EB210: .4byte 0x00009a2a
-_080EB214: .4byte 0x00000b78
- thumb_func_end sub_80EB0B0
-
- thumb_func_start sub_80EB218
-sub_80EB218: @ 80EB218
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r4, r6, 16
- adds r7, r4, 0
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB240
- ldr r1, _080EB23C @ =gOtherText_ThreeQuestions
- b _080EB2A2
- .align 2, 0
-_080EB23C: .4byte gOtherText_ThreeQuestions
-_080EB240:
- ldr r0, _080EB250 @ =0x0000ffff
- cmp r4, r0
- bne _080EB254
- adds r1, r5, 0
- movs r0, 0xFF
- strb r0, [r1]
- b _080EB2AA
- .align 2, 0
-_080EB250: .4byte 0x0000ffff
-_080EB254:
- lsrs r2, r6, 25
- ldr r1, _080EB268 @ =0x000001ff
- ands r1, r7
- cmp r2, 0x13
- bgt _080EB26C
- cmp r2, 0x12
- bge _080EB280
- cmp r2, 0
- beq _080EB270
- b _080EB290
- .align 2, 0
-_080EB268: .4byte 0x000001ff
-_080EB26C:
- cmp r2, 0x15
- bne _080EB290
-_080EB270:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB27C @ =gSpeciesNames
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB27C: .4byte gSpeciesNames
-_080EB280:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB28C @ =gMoveNames
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB28C: .4byte gMoveNames
-_080EB290:
- ldr r0, _080EB2CC @ =gUnknown_083DB694
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB2D0 @ =0x000041a4
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB2A2:
- adds r0, r5, 0
- bl StringCopy
- adds r1, r0, 0
-_080EB2AA:
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- mov r2, r8
- lsls r0, r2, 3
- strb r0, [r1, 0x2]
- adds r1, 0x3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB2CC: .4byte gUnknown_083DB694
-_080EB2D0: .4byte 0x000041a4
- thumb_func_end sub_80EB218
-
- thumb_func_start sub_80EB2D4
-sub_80EB2D4: @ 80EB2D4
- push {r4-r6,lr}
- lsls r5, r0, 16
- lsrs r4, r5, 16
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB2F8
- ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- b _080EB374
- .align 2, 0
-_080EB2F4: .4byte gOtherText_ThreeQuestions
-_080EB2F8:
- ldr r0, _080EB304 @ =0x0000ffff
- cmp r4, r0
- bne _080EB308
- movs r0, 0
- b _080EB374
- .align 2, 0
-_080EB304: .4byte 0x0000ffff
-_080EB308:
- lsrs r2, r5, 25
- ldr r1, _080EB31C @ =0x000001ff
- ands r1, r6
- cmp r2, 0x13
- bgt _080EB320
- cmp r2, 0x12
- bge _080EB334
- cmp r2, 0
- beq _080EB324
- b _080EB344
- .align 2, 0
-_080EB31C: .4byte 0x000001ff
-_080EB320:
- cmp r2, 0x15
- bne _080EB344
-_080EB324:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB330 @ =gSpeciesNames
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB330: .4byte gSpeciesNames
-_080EB334:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB340 @ =gMoveNames
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB340: .4byte gMoveNames
-_080EB344:
- ldr r0, _080EB35C @ =gUnknown_083DB694
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB360 @ =0x000041a4
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB356:
- movs r2, 0
- b _080EB36C
- .align 2, 0
-_080EB35C: .4byte gUnknown_083DB694
-_080EB360: .4byte 0x000041a4
-_080EB364:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB36C:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB364
- adds r0, r2, 0
-_080EB374:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB2D4
-
- thumb_func_start sub_80EB37C
-sub_80EB37C: @ 80EB37C
- push {r4,r5,lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB3A0 @ =0x0000ffff
- cmp r3, r0
- beq _080EB3EA
- lsrs r2, r1, 25
- ldr r5, _080EB3A4 @ =0x000001ff
- ands r5, r3
- cmp r2, 0x15
- bhi _080EB3F4
- cmp r2, 0x13
- bgt _080EB3A8
- cmp r2, 0x12
- bge _080EB3AC
- cmp r2, 0
- beq _080EB3AC
- b _080EB3E0
- .align 2, 0
-_080EB3A0: .4byte 0x0000ffff
-_080EB3A4: .4byte 0x000001ff
-_080EB3A8:
- cmp r2, 0x15
- bne _080EB3E0
-_080EB3AC:
- ldr r0, _080EB3D8 @ =gEasyChatGroupWords
- lsls r1, r2, 2
- adds r1, r0
- ldr r4, [r1]
- movs r3, 0
- ldr r0, _080EB3DC @ =gEasyChatGroupSizes
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080EB3F4
- adds r1, r0, 0
-_080EB3C2:
- lsls r0, r3, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r5, r0
- beq _080EB3EA
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _080EB3C2
- b _080EB3F4
- .align 2, 0
-_080EB3D8: .4byte gEasyChatGroupWords
-_080EB3DC: .4byte gEasyChatGroupSizes
-_080EB3E0:
- ldr r0, _080EB3F0 @ =gEasyChatGroupSizes
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080EB3F4
-_080EB3EA:
- movs r0, 0
- b _080EB3F6
- .align 2, 0
-_080EB3F0: .4byte gEasyChatGroupSizes
-_080EB3F4:
- movs r0, 0x1
-_080EB3F6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB37C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fight.s b/asm/fight.s
index d0d042113..e8e3299af 100755..100644
--- a/asm/fight.s
+++ b/asm/fight.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -1688,7 +1688,7 @@ _080D9CDE:
lsls r0, 24
cmp r0, 0
bne _080D9D14
- ldr r1, _080D9D10 @ =gUnknown_030041B0
+ ldr r1, _080D9D10 @ =gBattle_BG3_X
ldrh r0, [r4, 0x1A]
lsls r0, 16
asrs r0, 24
@@ -1699,9 +1699,9 @@ _080D9CDE:
b _080D9D24
.align 2, 0
_080D9D0C: .4byte gAnimBankTarget
-_080D9D10: .4byte gUnknown_030041B0
+_080D9D10: .4byte gBattle_BG3_X
_080D9D14:
- ldr r2, _080D9D64 @ =gUnknown_030041B0
+ ldr r2, _080D9D64 @ =gBattle_BG3_X
ldrh r1, [r4, 0x1A]
lsls r1, 16
asrs r1, 24
@@ -1710,7 +1710,7 @@ _080D9D14:
strh r0, [r2]
adds r7, r2, 0
_080D9D24:
- ldr r3, _080D9D68 @ =gUnknown_030041B8
+ ldr r3, _080D9D68 @ =gBattle_BG3_Y
ldrh r2, [r4, 0x1C]
lsls r0, r2, 16
asrs r0, 24
@@ -1741,8 +1741,8 @@ _080D9D5C:
pop {r0}
bx r0
.align 2, 0
-_080D9D64: .4byte gUnknown_030041B0
-_080D9D68: .4byte gUnknown_030041B8
+_080D9D64: .4byte gBattle_BG3_X
+_080D9D68: .4byte gBattle_BG3_Y
_080D9D6C: .4byte gBattleAnimArgs
thumb_func_end sub_80D9C80
diff --git a/asm/flying.s b/asm/flying.s
index 99cb11913..ce3fb050b 100755..100644
--- a/asm/flying.s
+++ b/asm/flying.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
diff --git a/asm/ghost.s b/asm/ghost.s
index 0db176d08..2934f6dbd 100755..100644
--- a/asm/ghost.s
+++ b/asm/ghost.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -1334,7 +1334,7 @@ _080DE584:
_080DE59C:
movs r2, 0x2
movs r3, 0x6
- bl sub_8089944
+ bl ScanlineEffect_InitWave
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x1C]
@@ -1507,7 +1507,7 @@ _080DE6E8:
beq _080DE740
b _080DE7AA
_080DE6EE:
- ldr r1, _080DE710 @ =gUnknown_03004DC0
+ ldr r1, _080DE710 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
@@ -1523,7 +1523,7 @@ _080DE6EE:
ldr r0, _080DE714 @ =0x0000fdff
b _080DE720
.align 2, 0
-_080DE710: .4byte gUnknown_03004DC0
+_080DE710: .4byte gScanlineEffect
_080DE714: .4byte 0x0000fdff
_080DE718:
movs r2, 0x80
diff --git a/asm/ground.s b/asm/ground.s
index fd4cecbfd..3d4b69a9f 100755..100644
--- a/asm/ground.s
+++ b/asm/ground.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -631,7 +631,7 @@ _080E13D6:
_080E13F8: .4byte gBattle_BG2_Y
_080E13FC: .4byte gSprites
_080E1400:
- ldr r1, _080E1410 @ =gUnknown_03004DC0
+ ldr r1, _080E1410 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080E1406:
@@ -640,7 +640,7 @@ _080E1406:
strh r0, [r4, 0x8]
b _080E1432
.align 2, 0
-_080E1410: .4byte gUnknown_03004DC0
+_080E1410: .4byte gScanlineEffect
_080E1414:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -925,7 +925,7 @@ _080E161C:
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080E1662
- ldr r1, _080E1658 @ =gUnknown_03004DC0
+ ldr r1, _080E1658 @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_080E164A:
@@ -935,7 +935,7 @@ _080E164A:
b _080E1662
.align 2, 0
_080E1654: .4byte gSprites
-_080E1658: .4byte gUnknown_03004DC0
+_080E1658: .4byte gScanlineEffect
_080E165C:
adds r0, r2, 0
bl DestroyAnimVisualTask
@@ -980,7 +980,7 @@ _080E169C:
asrs r4, r0, 16
cmp r2, r0
bge _080E16C8
- ldr r5, _080E1720 @ =gUnknown_03004DE0
+ ldr r5, _080E1720 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1003,7 +1003,7 @@ _080E16C8:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080E16F6
- ldr r4, _080E1720 @ =gUnknown_03004DE0
+ ldr r4, _080E1720 @ =gScanlineEffectRegBuffers
lsls r0, r3, 16
asrs r0, 16
adds r3, r0, 0
@@ -1035,7 +1035,7 @@ _080E16F6:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -1043,7 +1043,7 @@ _080E16F6:
.align 2, 0
_080E1718: .4byte gBattle_BG2_X
_080E171C: .4byte REG_BG2HOFS
-_080E1720: .4byte gUnknown_03004DE0
+_080E1720: .4byte gScanlineEffectRegBuffers
_080E1724: .4byte 0xa2600001
thumb_func_end sub_80E1668
@@ -1243,14 +1243,14 @@ _080E189C:
beq _080E18C8
cmp r0, 0x5
bne _080E1908
- ldr r0, _080E18C0 @ =gUnknown_030041B0
+ ldr r0, _080E18C0 @ =gBattle_BG3_X
ldrh r0, [r0]
strh r0, [r4, 0x22]
ldr r0, _080E18C4 @ =sub_80E1934
b _080E1926
.align 2, 0
_080E18BC: .4byte gAnimMovePower
-_080E18C0: .4byte gUnknown_030041B0
+_080E18C0: .4byte gBattle_BG3_X
_080E18C4: .4byte sub_80E1934
_080E18C8:
movs r0, 0
@@ -1351,16 +1351,16 @@ _080E1962:
ands r0, r1
cmp r0, 0
bne _080E198C
- ldr r1, _080E1988 @ =gUnknown_030041B0
+ ldr r1, _080E1988 @ =gBattle_BG3_X
ldrh r0, [r3, 0x26]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _080E1996
.align 2, 0
-_080E1988: .4byte gUnknown_030041B0
+_080E1988: .4byte gBattle_BG3_X
_080E198C:
- ldr r0, _080E19B4 @ =gUnknown_030041B0
+ ldr r0, _080E19B4 @ =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x26]
subs r1, r2
@@ -1382,7 +1382,7 @@ _080E1996:
strh r0, [r3, 0x24]
b _080E1A0C
.align 2, 0
-_080E19B4: .4byte gUnknown_030041B0
+_080E19B4: .4byte gBattle_BG3_X
_080E19B8:
ldrh r0, [r3, 0xA]
adds r0, 0x1
@@ -1397,16 +1397,16 @@ _080E19B8:
ands r1, r0
cmp r1, 0
bne _080E19E4
- ldr r1, _080E19E0 @ =gUnknown_030041B0
+ ldr r1, _080E19E0 @ =gBattle_BG3_X
ldrh r0, [r3, 0x24]
ldrh r2, [r3, 0x22]
adds r0, r2
strh r0, [r1]
b _080E19EE
.align 2, 0
-_080E19E0: .4byte gUnknown_030041B0
+_080E19E0: .4byte gBattle_BG3_X
_080E19E4:
- ldr r0, _080E1A14 @ =gUnknown_030041B0
+ ldr r0, _080E1A14 @ =gBattle_BG3_X
ldrh r1, [r3, 0x22]
ldrh r2, [r3, 0x24]
subs r1, r2
@@ -1433,9 +1433,9 @@ _080E1A0C:
strh r0, [r3, 0x8]
b _080E1A24
.align 2, 0
-_080E1A14: .4byte gUnknown_030041B0
+_080E1A14: .4byte gBattle_BG3_X
_080E1A18:
- ldr r1, _080E1A28 @ =gUnknown_030041B0
+ ldr r1, _080E1A28 @ =gBattle_BG3_X
ldrh r0, [r3, 0x22]
strh r0, [r1]
adds r0, r2, 0
@@ -1444,7 +1444,7 @@ _080E1A24:
pop {r0}
bx r0
.align 2, 0
-_080E1A28: .4byte gUnknown_030041B0
+_080E1A28: .4byte gBattle_BG3_X
thumb_func_end sub_80E1934
thumb_func_start sub_80E1A2C
@@ -1719,10 +1719,10 @@ _080E1BE2:
movs r0, 0xFF
ands r1, r0
strh r1, [r4, 0xC]
- ldr r2, _080E1C50 @ =gUnknown_030041B0
+ ldr r2, _080E1C50 @ =gBattle_BG3_X
ldrh r0, [r4, 0xA]
strh r0, [r2]
- ldr r0, _080E1C54 @ =gUnknown_030041B8
+ ldr r0, _080E1C54 @ =gBattle_BG3_Y
strh r1, [r0]
ldrh r0, [r6, 0x4]
strh r0, [r4, 0xE]
@@ -1736,8 +1736,8 @@ _080E1C40: .4byte gAnimBankAttacker
_080E1C44: .4byte sub_80E1C58
_080E1C48: .4byte gTasks
_080E1C4C: .4byte 0x000001ff
-_080E1C50: .4byte gUnknown_030041B0
-_080E1C54: .4byte gUnknown_030041B8
+_080E1C50: .4byte gBattle_BG3_X
+_080E1C54: .4byte gBattle_BG3_Y
thumb_func_end sub_80E1BB0
thumb_func_start sub_80E1C58
@@ -1757,10 +1757,10 @@ sub_80E1C58: @ 80E1C58
ldrsh r0, [r2, r4]
cmp r1, r0
bne _080E1C98
- ldr r0, _080E1C90 @ =gUnknown_030041B0
+ ldr r0, _080E1C90 @ =gBattle_BG3_X
movs r1, 0
strh r1, [r0]
- ldr r0, _080E1C94 @ =gUnknown_030041B8
+ ldr r0, _080E1C94 @ =gBattle_BG3_Y
strh r1, [r0]
adds r0, r3, 0
bl DestroyTask
@@ -1768,13 +1768,13 @@ sub_80E1C58: @ 80E1C58
.align 2, 0
_080E1C88: .4byte gTasks
_080E1C8C: .4byte gBattleAnimArgs
-_080E1C90: .4byte gUnknown_030041B0
-_080E1C94: .4byte gUnknown_030041B8
+_080E1C90: .4byte gBattle_BG3_X
+_080E1C94: .4byte gBattle_BG3_Y
_080E1C98:
- ldr r1, _080E1CAC @ =gUnknown_030041B0
+ ldr r1, _080E1CAC @ =gBattle_BG3_X
ldrh r0, [r2, 0xA]
strh r0, [r1]
- ldr r1, _080E1CB0 @ =gUnknown_030041B8
+ ldr r1, _080E1CB0 @ =gBattle_BG3_Y
ldrh r0, [r2, 0xC]
strh r0, [r1]
_080E1CA4:
@@ -1782,8 +1782,8 @@ _080E1CA4:
pop {r0}
bx r0
.align 2, 0
-_080E1CAC: .4byte gUnknown_030041B0
-_080E1CB0: .4byte gUnknown_030041B8
+_080E1CAC: .4byte gBattle_BG3_X
+_080E1CB0: .4byte gBattle_BG3_Y
thumb_func_end sub_80E1C58
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/ice.s b/asm/ice.s
index 1fad057ed..032da59c3 100755..100644
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -2701,7 +2701,7 @@ sub_80D8BA8: @ 80D8BA8
ldrh r0, [r4, 0x2]
lsls r0, 20
lsrs r0, 24
- bl GetBankByPlayerAI
+ bl GetBankByIdentity
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
diff --git a/asm/m4a_3.s b/asm/m4a_3.s
index a842ae925..82b6a2467 100644
--- a/asm/m4a_3.s
+++ b/asm/m4a_3.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/gba_constants.inc"
.include "constants/m4a_constants.inc"
diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s
new file mode 100644
index 000000000..21092fe4b
--- /dev/null
+++ b/asm/nakamura_debug_menu.s
@@ -0,0 +1,4686 @@
+.if DEBUG
+
+ .include "constants/gba_constants.inc"
+ .include "include/macros.inc"
+
+ .text
+
+ thumb_func_start debug_sub_815F1B8
+debug_sub_815F1B8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0xe
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._1 @ _843E3DC
+ mov r0, #0x10
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0xf
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ add sp, sp, #0x8
+ pop {r0}
+ bx r0
+._2:
+ .align 2, 0
+._1:
+ .word _843E3DC
+
+ thumb_func_end debug_sub_815F1B8
+
+ thumb_func_start InitNakamuraDebugMenu
+InitNakamuraDebugMenu:
+ push {lr}
+ bl debug_sub_815F1B8
+ ldr r1, ._3 @ gMenuCallback
+ ldr r0, ._3 + 4 @ debug_sub_815F214
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._4:
+ .align 2, 0
+._3:
+ .word gMenuCallback
+ .word debug_sub_815F214+1
+
+ thumb_func_end InitNakamuraDebugMenu
+
+ thumb_func_start debug_sub_815F214
+debug_sub_815F214:
+ push {r4, lr}
+ ldr r4, ._9 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._5 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ bl Menu_MoveCursor
+._5:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._6 @cond_branch
+ mov r0, #0x1
+ bl Menu_MoveCursor
+._6:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._7 @cond_branch
+ ldr r4, ._9 + 4 @ _843E3DC
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x15
+ add r4, r4, #0x4
+ add r0, r0, r4
+ ldr r4, [r0]
+ bl Menu_DestroyCursor
+ bl _call_via_r4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._12
+._10:
+ .align 2, 0
+._9:
+ .word gMain
+ .word _843E3DC
+._7:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._11 @cond_branch
+ mov r0, #0x0
+ b ._12
+._11:
+ bl CloseMenu
+ mov r0, #0x1
+._12:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815F214
+
+ thumb_func_start debug_sub_815F284
+debug_sub_815F284:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, ._14 @ gPaletteFade
+ ldrb r1, [r0, #0x7]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._13 @cond_branch
+ bl debug_sub_81381B4
+ mov r0, #0x5
+ mov r1, #0x0
+ bl OpenPartyMenu
+ add r0, r4, #0
+ bl DestroyTask
+._13:
+ pop {r4}
+ pop {r0}
+ bx r0
+._15:
+ .align 2, 0
+._14:
+ .word gPaletteFade
+
+ thumb_func_end debug_sub_815F284
+
+ thumb_func_start debug_sub_815F2B4
+debug_sub_815F2B4:
+ push {lr}
+ add sp, sp, #0xfffffffc
+ bl CloseMenu
+ bl Menu_EraseScreen
+ ldr r1, ._16 @ gMain
+ ldr r0, ._16 + 4 @ sub_805469C
+ str r0, [r1, #0x8]
+ ldr r0, ._16 + 8 @ debug_sub_815F284
+ mov r1, #0x0
+ bl CreateTask
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ mov r0, #0x1
+ add sp, sp, #0x4
+ pop {r1}
+ bx r1
+._17:
+ .align 2, 0
+._16:
+ .word gMain
+ .word sub_805469C+1
+ .word debug_sub_815F284+1
+
+ thumb_func_end debug_sub_815F2B4
+
+ thumb_func_start debug_sub_815F2F4
+debug_sub_815F2F4:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xfffffffc
+ bl CloseMenu
+ mov r7, #0x1
+._34:
+ lsl r1, r7, #0x2
+ add r0, r1, r7
+ lsl r2, r0, #0x5
+ ldr r3, ._24 @ gSaveBlock1
+ add r0, r2, r3
+ ldr r5, ._24 + 4 @ 0x1a08
+ add r0, r0, r5
+ ldrb r0, [r0]
+ mov r9, r1
+ add r1, r7, #1
+ str r1, [sp]
+ cmp r0, #0
+ beq ._18 @cond_branch
+ b ._19
+._18:
+ mov r5, #0x0
+ ldr r6, ._24 + 8 @ gSaveBlock2
+ add r4, r7, #0
+ sub r4, r4, #0x46
+ ldr r3, ._24 + 12 @ gSaveBlock1
+._21:
+ add r1, r5, r2
+ add r1, r1, r3
+ add r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xff
+ beq ._20 @cond_branch
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x6
+ bls ._21 @cond_branch
+._20:
+ cmp r5, #0x7
+ bne ._22 @cond_branch
+ add r0, r2, #6
+ b ._23
+._25:
+ .align 2, 0
+._24:
+ .word gSaveBlock1
+ .word 0x1a08
+ .word gSaveBlock2
+ .word gSaveBlock1+0x1a0a
+._22:
+ add r0, r5, r2
+._23:
+ add r0, r0, r3
+ strb r4, [r0]
+ ldr r1, ._35 @ gSaveBlock1
+ ldr r2, ._35 + 4 @ 0x1a08
+ add r2, r2, r1
+ mov sl, r2
+ mov r3, r9
+ add r0, r3, r7
+ lsl r6, r0, #0x5
+ add r1, r6, r1
+ ldr r5, ._35 + 4 @ 0x1a08
+ add r5, r5, r1
+ mov r8, r5
+._30:
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x4b
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0xe
+ ldr r1, ._35 + 8 @ _843E424
+ add r0, r0, r1
+ ldrb r0, [r0]
+ mov r2, r8
+ strb r0, [r2]
+ mov r5, #0x0
+ cmp r5, r7
+ bcs ._28 @cond_branch
+ mov r3, sl
+ ldrb r3, [r3]
+ cmp r0, r3
+ beq ._28 @cond_branch
+ ldr r4, ._35 @ gSaveBlock1
+ add r0, r6, r4
+ ldr r2, ._35 + 4 @ 0x1a08
+ add r3, r0, r2
+._29:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r7
+ bcs ._28 @cond_branch
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x5
+ add r0, r0, r4
+ add r0, r0, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne ._29 @cond_branch
+._28:
+ cmp r5, r7
+ bne ._30 @cond_branch
+ bl Random
+ mov r5, r9
+ add r4, r5, r7
+ lsl r4, r4, #0x5
+ ldr r1, ._35 @ gSaveBlock1
+ add r3, r4, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1
+ ldr r2, ._35 + 12 @ 0x1a09
+ add r3, r3, r2
+ and r0, r0, r1
+ lsl r0, r0, #0x4
+ ldrb r1, [r3]
+ mov r5, #0x11
+ neg r5, r5
+ add r2, r5, #0
+ and r1, r1, r2
+ orr r1, r1, r0
+ strb r1, [r3]
+ mov r5, #0x0
+ ldr r6, ._35 + 16 @ gSaveBlock1
+._31:
+ bl Random
+ add r1, r5, r4
+ add r1, r1, r6
+ strb r0, [r1]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x3
+ bls ._31 @cond_branch
+ mov r5, #0x0
+ mov r1, r9
+ add r0, r1, r7
+ lsl r4, r0, #0x5
+ ldr r3, ._35 + 20 @ gSaveBlock1
+ mov r2, #0x0
+ add r6, r3, #0
+ add r6, r6, #0x10
+._32:
+ add r1, r5, r4
+ add r0, r1, r3
+ strb r2, [r0]
+ add r1, r1, r6
+ strb r2, [r1]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0xf
+ bls ._32 @cond_branch
+ add r0, r7, #0
+ bl unref_sub_80BCD7C
+._19:
+ ldr r2, [sp]
+ lsl r0, r2, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #0x13
+ bhi ._33 @cond_branch
+ b ._34
+._33:
+ mov r0, #0x1
+ add sp, sp, #0x4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._36:
+ .align 2, 0
+._35:
+ .word gSaveBlock1
+ .word 0x1a08
+ .word _843E424
+ .word 0x1a09
+ .word gSaveBlock1+0x1a11
+ .word gSaveBlock1+0x1a1a
+
+ thumb_func_end debug_sub_815F2F4
+
+ thumb_func_start debug_sub_815F470
+debug_sub_815F470:
+ push {r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov ip, r2
+ ldr r2, ._39 @ gSaveBlock1
+ ldr r0, ._39 + 4 @ _nakamuraData0
+ ldrb r1, [r0]
+ lsl r0, r1, #0x2
+ add r0, r0, r1
+ lsl r0, r0, #0x5
+ add r0, r0, r2
+ ldr r1, ._39 + 8 @ 0x1a08
+ add r0, r0, r1
+ ldrb r4, [r0]
+ mov r2, #0x0
+ ldr r3, ._39 + 12 @ _843E424
+ add r5, r3, #0
+._41:
+ lsl r1, r2, #0x2
+ add r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne ._37 @cond_branch
+ add r0, r1, #1
+ add r0, r0, r3
+ ldrb r0, [r0]
+ strb r0, [r6]
+ add r0, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0]
+ strb r0, [r7]
+ add r0, r1, #3
+ add r0, r0, r3
+ ldrb r0, [r0]
+ mov r1, ip
+ strb r0, [r1]
+ b ._38
+._40:
+ .align 2, 0
+._39:
+ .word gSaveBlock1
+ .word _nakamuraData0
+ .word 0x1a08
+ .word _843E424
+._37:
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x4a
+ bls ._41 @cond_branch
+._38:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_815F470
+
+ thumb_func_start debug_sub_815F4D8
+debug_sub_815F4D8:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xfffffffc
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0xa
+ bl Menu_BlankWindowRect
+ ldr r6, ._43 @ gStringVar1
+ ldr r7, ._43 + 4 @ _nakamuraData0
+ ldrb r1, [r7]
+ add r0, r6, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r2, ._43 + 8 @ gSaveBlock1
+ ldrb r1, [r7]
+ lsl r0, r1, #0x2
+ add r0, r0, r1
+ lsl r0, r0, #0x5
+ add r0, r0, r2
+ ldr r1, ._43 + 12 @ 0x1a08
+ add r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._42 @cond_branch
+ mov r4, sp
+ add r4, r4, #0x1
+ mov r5, sp
+ add r5, r5, #0x2
+ mov r0, sp
+ add r1, r4, #0
+ add r2, r5, #0
+ bl debug_sub_815F470
+ ldrb r1, [r7]
+ add r0, r6, #0
+ bl sub_80BC190
+ add r0, r6, #0
+ mov r1, #0x1
+ mov r2, #0x3
+ bl Menu_PrintText
+ ldr r0, ._43 + 16 @ Str_843E550
+ mov r1, #0x1
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, sp
+ ldrb r1, [r0]
+ add r0, r6, #0
+ mov r2, #0x0
+ mov r3, #0x3
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x2
+ mov r2, #0x5
+ bl Menu_PrintText
+ ldr r0, ._43 + 20 @ Str_843E552
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldrb r1, [r4]
+ add r0, r6, #0
+ mov r2, #0x0
+ mov r3, #0x3
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x3
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r0, ._43 + 24 @ Str_843E554
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintText
+ ldrb r1, [r5]
+ add r0, r6, #0
+ mov r2, #0x0
+ mov r3, #0x3
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x3
+ mov r2, #0x9
+ bl Menu_PrintText
+._42:
+ add sp, sp, #0x4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._44:
+ .align 2, 0
+._43:
+ .word gStringVar1
+ .word _nakamuraData0
+ .word gSaveBlock1
+ .word 0x1a08
+ .word Str_843E550
+ .word Str_843E552
+ .word Str_843E554
+
+ thumb_func_end debug_sub_815F4D8
+
+ thumb_func_start debug_sub_815F5C4
+debug_sub_815F5C4:
+ push {lr}
+ ldr r0, ._48 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, #0
+ beq ._45 @cond_branch
+ ldr r1, ._48 + 4 @ _nakamuraData0
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._46 @cond_branch
+ mov r0, #0x13
+ b ._50
+._49:
+ .align 2, 0
+._48:
+ .word gMain
+ .word _nakamuraData0
+._46:
+ sub r0, r0, #0x1
+ b ._50
+._45:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._51 @cond_branch
+ ldr r1, ._54 @ _nakamuraData0
+ ldrb r0, [r1]
+ cmp r0, #0x13
+ bne ._52 @cond_branch
+ strb r2, [r1]
+ b ._53
+._55:
+ .align 2, 0
+._54:
+ .word _nakamuraData0
+._52:
+ add r0, r0, #0x1
+._50:
+ strb r0, [r1]
+._53:
+ bl debug_sub_815F4D8
+ mov r0, #0x0
+ b ._58
+._51:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._57 @cond_branch
+ mov r0, #0x0
+ b ._58
+._57:
+ bl CloseMenu
+ mov r0, #0x1
+._58:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815F5C4
+
+ thumb_func_start debug_sub_815F62C
+debug_sub_815F62C:
+ push {lr}
+ ldr r1, ._59 @ _nakamuraData0
+ mov r0, #0x0
+ strb r0, [r1]
+ ldr r1, ._59 + 4 @ gMenuCallback
+ ldr r0, ._59 + 8 @ debug_sub_815F5C4
+ str r0, [r1]
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xb
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ bl debug_sub_815F4D8
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._60:
+ .align 2, 0
+._59:
+ .word _nakamuraData0
+ .word gMenuCallback
+ .word debug_sub_815F5C4+1
+
+ thumb_func_end debug_sub_815F62C
+
+ thumb_func_start debug_sub_815F668
+debug_sub_815F668:
+ push {r4, r5, r6, lr}
+ ldr r0, ._61 @ _nakamuraData0
+ ldrb r0, [r0]
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x5
+ ldr r0, ._61 + 4 @ gSaveBlock1
+ add r1, r1, r0
+ ldrb r4, [r1, #0x3]
+ lsl r4, r4, #0x18
+ ldrb r0, [r1, #0x2]
+ lsl r0, r0, #0x10
+ orr r4, r4, r0
+ ldrb r0, [r1, #0x1]
+ lsl r0, r0, #0x8
+ orr r4, r4, r0
+ ldrb r0, [r1]
+ orr r4, r4, r0
+ ldr r5, ._61 + 8 @ gStringVar1
+ ldr r6, ._61 + 12 @ 0x186a0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl __udivsi3
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0x2
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r5, #0
+ mov r1, #0x2
+ mov r2, #0x7
+ bl Menu_PrintText
+ add r0, r4, #0
+ add r1, r6, #0
+ bl __umodsi3
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0x2
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r5, #0
+ mov r1, #0x7
+ mov r2, #0x7
+ bl Menu_PrintText
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._62:
+ .align 2, 0
+._61:
+ .word _nakamuraData0
+ .word gSaveBlock1+0x1a11
+ .word gStringVar1
+ .word 0x186a0
+
+ thumb_func_end debug_sub_815F668
+
+ thumb_func_start debug_sub_815F6E4
+debug_sub_815F6E4:
+ push {r4, lr}
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0xb
+ mov r3, #0x4
+ bl Menu_BlankWindowRect
+ ldr r4, ._63 @ gStringVar1
+ ldr r0, ._63 + 4 @ _nakamuraData0
+ ldrb r0, [r0]
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x5
+ ldr r0, ._63 + 8 @ gSaveBlock1
+ add r1, r1, r0
+ add r0, r4, #0
+ mov r2, #0x7
+ bl StringCopyN
+ mov r1, #0xff
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x2
+ mov r2, #0x3
+ bl Menu_PrintText
+ pop {r4}
+ pop {r0}
+ bx r0
+._64:
+ .align 2, 0
+._63:
+ .word gStringVar1
+ .word _nakamuraData0
+ .word gSaveBlock1+0x1a0a
+
+ thumb_func_end debug_sub_815F6E4
+
+ thumb_func_start debug_sub_815F72C
+debug_sub_815F72C:
+ push {r4, r5, lr}
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0xb
+ mov r3, #0xa
+ bl Menu_BlankWindowRect
+ ldr r4, ._66 @ gStringVar1
+ ldr r5, ._66 + 4 @ _nakamuraData0
+ ldrb r1, [r5]
+ add r0, r4, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r2, ._66 + 8 @ gSaveBlock1
+ ldrb r1, [r5]
+ lsl r0, r1, #0x2
+ add r0, r0, r1
+ lsl r0, r0, #0x5
+ add r0, r0, r2
+ ldr r1, ._66 + 12 @ 0x1a08
+ add r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._65 @cond_branch
+ bl debug_sub_815F6E4
+ bl debug_sub_815F668
+._65:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._67:
+ .align 2, 0
+._66:
+ .word gStringVar1
+ .word _nakamuraData0
+ .word gSaveBlock1
+ .word 0x1a08
+
+ thumb_func_end debug_sub_815F72C
+
+ thumb_func_start debug_sub_815F788
+debug_sub_815F788:
+ push {lr}
+ mov r0, #0x2
+ mov r1, #0x5
+ mov r2, #0xb
+ mov r3, #0x6
+ bl Menu_BlankWindowRect
+ ldr r0, ._68 @ Str_843E574
+ ldr r1, ._68 + 4 @ _nakamuraData2
+ ldrb r1, [r1]
+ add r1, r1, #0x2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #0x5
+ bl Menu_PrintText
+ pop {r0}
+ bx r0
+._69:
+ .align 2, 0
+._68:
+ .word Str_843E574
+ .word _nakamuraData2
+
+ thumb_func_end debug_sub_815F788
+
+ thumb_func_start debug_sub_815F7B4
+debug_sub_815F7B4:
+ push {lr}
+ ldr r0, ._72 @ _nakamuraData1
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._70 @cond_branch
+ mov r0, #0xb
+ mov r1, #0x1
+ mov r2, #0xb
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ b ._71
+._73:
+ .align 2, 0
+._72:
+ .word _nakamuraData1
+._70:
+ ldr r0, ._74 @ _nakamuraData3
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1
+ ldr r1, ._74 + 4 @ Str_843E576
+ add r0, r0, r1
+ mov r1, #0xb
+ mov r2, #0x1
+ bl Menu_PrintText
+._71:
+ pop {r0}
+ bx r0
+._75:
+ .align 2, 0
+._74:
+ .word _nakamuraData3
+ .word Str_843E576
+
+ thumb_func_end debug_sub_815F7B4
+
+ thumb_func_start debug_sub_815F7F0
+debug_sub_815F7F0:
+ push {r4, r5, lr}
+ ldr r1, ._78 @ _nakamuraData0
+ ldrb r2, [r1]
+ lsl r1, r2, #0x2
+ add r1, r1, r2
+ lsl r1, r1, #0x5
+ ldr r2, ._78 + 4 @ gSaveBlock1
+ add r3, r1, r2
+ ldrb r1, [r3, #0x3]
+ lsl r2, r1, #0x18
+ ldrb r1, [r3, #0x2]
+ lsl r1, r1, #0x10
+ orr r2, r2, r1
+ ldrb r1, [r3, #0x1]
+ lsl r1, r1, #0x8
+ orr r2, r2, r1
+ ldrb r1, [r3]
+ orr r2, r2, r1
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r4, #0x9
+ ldr r0, ._78 + 8 @ _nakamuraData2
+ ldrb r0, [r0]
+ cmp r4, r0
+ ble ._76 @cond_branch
+ add r5, r0, #0
+._77:
+ lsl r0, r1, #0x2
+ add r0, r0, r1
+ lsl r1, r0, #0x1
+ lsl r0, r4, #0x18
+ mov r4, #0xff
+ lsl r4, r4, #0x18
+ add r0, r0, r4
+ lsr r4, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, r5
+ bgt ._77 @cond_branch
+._76:
+ add r2, r2, r1
+ lsr r0, r2, #0x18
+ strb r0, [r3, #0x3]
+ mov r0, #0xff
+ lsl r0, r0, #0x10
+ and r0, r0, r2
+ lsr r0, r0, #0x10
+ strb r0, [r3, #0x2]
+ mov r0, #0xff
+ lsl r0, r0, #0x8
+ and r0, r0, r2
+ lsr r0, r0, #0x8
+ strb r0, [r3, #0x1]
+ strb r2, [r3]
+ bl debug_sub_815F668
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._79:
+ .align 2, 0
+._78:
+ .word _nakamuraData0
+ .word gSaveBlock1+0x1a11
+ .word _nakamuraData2
+
+ thumb_func_end debug_sub_815F7F0
+
+ thumb_func_start debug_sub_815F86C
+debug_sub_815F86C:
+ push {r4, r5, r6, lr}
+ lsl r0, r0, #0x18
+ ldr r1, ._84 @ _nakamuraData0
+ ldrb r2, [r1]
+ lsl r1, r2, #0x2
+ add r1, r1, r2
+ lsl r1, r1, #0x5
+ ldr r2, ._84 + 4 @ gSaveBlock1
+ add r5, r1, r2
+ mov r2, #0x0
+ mov r3, #0x0
+ lsr r6, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, #0x64
+ bne ._80 @cond_branch
+ ldr r0, ._84 + 8 @ _nakamuraData2
+ ldrb r1, [r0]
+ cmp r1, #0x6
+ bhi ._100 @cond_branch
+ mov r2, #0xff
+._82:
+ add r0, r5, r1
+ strb r2, [r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x6
+ bls ._82 @cond_branch
+ b ._100
+._85:
+ .align 2, 0
+._84:
+ .word _nakamuraData0
+ .word gSaveBlock1+0x1a0a
+ .word _nakamuraData2
+._80:
+ ldr r0, ._87 @ _nakamuraData3
+ ldrb r0, [r0]
+ cmp r0, #0x4
+ bhi ._98 @cond_branch
+ lsl r0, r0, #0x2
+ ldr r1, ._87 + 4 @
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+._88:
+ .align 2, 0
+._87:
+ .word _nakamuraData3
+ .word ._89
+._89:
+ .word ._90
+ .word ._91
+ .word ._92
+ .word ._93
+ .word ._94
+._90:
+ mov r3, #0x1
+ mov r2, #0x50
+ b ._98
+._91:
+ mov r3, #0x51
+ mov r2, #0xa0
+ b ._98
+._92:
+ mov r3, #0xbb
+ mov r2, #0xd4
+ b ._98
+._93:
+ mov r3, #0xd5
+ mov r2, #0xee
+ b ._98
+._94:
+ mov r3, #0xa1
+ mov r2, #0xaa
+._98:
+ ldr r4, ._101 @ _nakamuraData2
+ ldrb r1, [r4]
+ add r1, r5, r1
+ ldrb r0, [r1]
+ add r0, r0, r6
+ strb r0, [r1]
+ ldrb r0, [r4]
+ add r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, r3
+ bcs ._99 @cond_branch
+ strb r2, [r1]
+._99:
+ ldrb r0, [r4]
+ add r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, r2
+ bls ._100 @cond_branch
+ strb r3, [r1]
+._100:
+ bl debug_sub_815F6E4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._102:
+ .align 2, 0
+._101:
+ .word _nakamuraData2
+
+ thumb_func_end debug_sub_815F86C
+
+ thumb_func_start debug_sub_815F930
+debug_sub_815F930:
+ push {r4, r5, lr}
+ ldr r0, ._107 @ _nakamuraData1
+ ldrb r2, [r0]
+ mov r4, #0xa
+ cmp r2, #0
+ bne ._103 @cond_branch
+ mov r4, #0x7
+._103:
+ ldr r5, ._107 + 4 @ gMain
+ ldrh r1, [r5, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._104 @cond_branch
+ cmp r2, #0
+ beq ._105 @cond_branch
+ mov r0, #0x1
+ bl debug_sub_815F7F0
+ b ._136
+._108:
+ .align 2, 0
+._107:
+ .word _nakamuraData1
+ .word gMain
+._105:
+ mov r0, #0x1
+ b ._113
+._104:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._110 @cond_branch
+ cmp r2, #0
+ beq ._111 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ bl debug_sub_815F7F0
+ b ._136
+._111:
+ mov r0, #0x1
+ neg r0, r0
+ b ._113
+._110:
+ mov r0, #0x20
+ and r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ cmp r3, #0
+ beq ._114 @cond_branch
+ ldr r1, ._117 @ _nakamuraData2
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._115 @cond_branch
+ sub r0, r4, #1
+ b ._116
+._118:
+ .align 2, 0
+._117:
+ .word _nakamuraData2
+._115:
+ sub r0, r0, #0x1
+._116:
+ strb r0, [r1]
+._125:
+ bl debug_sub_815F788
+ b ._136
+._114:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._120 @cond_branch
+ ldr r2, ._123 @ _nakamuraData2
+ ldrb r1, [r2]
+ sub r0, r4, #1
+ cmp r1, r0
+ bne ._121 @cond_branch
+ strb r3, [r2]
+ b ._125
+._124:
+ .align 2, 0
+._123:
+ .word _nakamuraData2
+._121:
+ add r0, r1, #1
+ strb r0, [r2]
+ b ._125
+._120:
+ ldrh r1, [r5, #0x2e]
+ mov r0, #0x4
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._126 @cond_branch
+ cmp r2, #0
+ bne ._127 @cond_branch
+ ldr r4, ._129 @ _nakamuraData3
+ ldrb r0, [r4]
+ add r0, r0, #0x1
+ mov r1, #0x5
+ bl __modsi3
+ strb r0, [r4]
+._127:
+ bl debug_sub_815F7B4
+ b ._136
+._130:
+ .align 2, 0
+._129:
+ .word _nakamuraData3
+._126:
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._131 @cond_branch
+ mov r0, #0x2
+ mov r1, #0x5
+ mov r2, #0xb
+ mov r3, #0x6
+ bl Menu_BlankWindowRect
+ mov r0, #0xb
+ mov r1, #0x1
+ mov r2, #0xb
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ ldr r1, ._133 @ gMenuCallback
+ ldr r0, ._133 + 4 @ debug_sub_815FA38
+ str r0, [r1]
+ b ._136
+._134:
+ .align 2, 0
+._133:
+ .word gMenuCallback
+ .word debug_sub_815FA38+1
+._131:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._136 @cond_branch
+ cmp r2, #0
+ bne ._136 @cond_branch
+ mov r0, #0x64
+._113:
+ bl debug_sub_815F86C
+._136:
+ mov r0, #0x0
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815F930
+
+ thumb_func_start debug_sub_815FA38
+debug_sub_815FA38:
+ push {r4, lr}
+ ldr r0, ._139 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._137 @cond_branch
+ mov r0, #0x2
+ neg r0, r0
+ b ._138
+._140:
+ .align 2, 0
+._139:
+ .word gMain
+._137:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._141 @cond_branch
+ mov r0, #0x2
+._138:
+ bl Menu_MoveCursor
+._161:
+ mov r0, #0x0
+ b ._142
+._141:
+ mov r0, #0x20
+ and r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, #0
+ beq ._143 @cond_branch
+ ldr r1, ._146 @ _nakamuraData0
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._144 @cond_branch
+ mov r0, #0x13
+ b ._148
+._147:
+ .align 2, 0
+._146:
+ .word _nakamuraData0
+._144:
+ sub r0, r0, #0x1
+ b ._148
+._143:
+ mov r0, #0x10
+ and r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0
+ beq ._149 @cond_branch
+ ldr r1, ._152 @ _nakamuraData0
+ ldrb r0, [r1]
+ cmp r0, #0x13
+ bne ._150 @cond_branch
+ strb r2, [r1]
+ b ._151
+._153:
+ .align 2, 0
+._152:
+ .word _nakamuraData0
+._150:
+ add r0, r0, #0x1
+._148:
+ strb r0, [r1]
+._151:
+ bl debug_sub_815F72C
+ b ._161
+._149:
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._155 @cond_branch
+ ldr r1, ._159 @ _nakamuraData0
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._161 @cond_branch
+ ldr r2, ._159 + 4 @ gSaveBlock1
+ add r1, r0, #0
+ lsl r0, r1, #0x2
+ add r0, r0, r1
+ lsl r0, r0, #0x5
+ add r0, r0, r2
+ ldr r1, ._159 + 8 @ 0x1a08
+ add r0, r0, r1
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._161 @cond_branch
+ bl Menu_GetCursorPos
+ ldr r1, ._159 + 12 @ _nakamuraData1
+ strb r0, [r1]
+ ldr r0, ._159 + 16 @ _nakamuraData2
+ strb r4, [r0]
+ bl debug_sub_815F788
+ bl debug_sub_815F7B4
+ ldr r1, ._159 + 20 @ gMenuCallback
+ ldr r0, ._159 + 24 @ debug_sub_815F930
+ str r0, [r1]
+ b ._161
+._160:
+ .align 2, 0
+._159:
+ .word _nakamuraData0
+ .word gSaveBlock1
+ .word 0x1a08
+ .word _nakamuraData1
+ .word _nakamuraData2
+ .word gMenuCallback
+ .word debug_sub_815F930+1
+._155:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._161 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+._142:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815FA38
+
+ thumb_func_start debug_sub_815FB1C
+debug_sub_815FB1C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ ldr r0, ._162 @ _nakamuraData0
+ mov r1, #0x0
+ strb r1, [r0]
+ ldr r0, ._162 + 4 @ _nakamuraData3
+ strb r1, [r0]
+ ldr r1, ._162 + 8 @ gMenuCallback
+ ldr r0, ._162 + 12 @ debug_sub_815FA38
+ str r0, [r1]
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xc
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ bl debug_sub_815F72C
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x3
+ bl InitMenu
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._163:
+ .align 2, 0
+._162:
+ .word _nakamuraData0
+ .word _nakamuraData3
+ .word gMenuCallback
+ .word debug_sub_815FA38+1
+
+ thumb_func_end debug_sub_815FB1C
+
+ thumb_func_start debug_sub_815FB78
+debug_sub_815FB78:
+ push {lr}
+ ldr r0, ._166 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._164 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ b ._165
+._167:
+ .align 2, 0
+._166:
+ .word gMain
+._164:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._168 @cond_branch
+ mov r0, #0x1
+._165:
+ bl Menu_MoveCursor
+ mov r0, #0x0
+ b ._177
+._168:
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._170 @cond_branch
+ bl CloseMenu
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0
+ beq ._171 @cond_branch
+ cmp r0, #0x1
+ beq ._172 @cond_branch
+ b ._175
+._171:
+ bl debug_sub_814A714
+ b ._175
+._172:
+ bl ClearRoamerData
+ bl ClearRoamerLocationData
+ b ._175
+._170:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._176 @cond_branch
+ mov r0, #0x0
+ b ._177
+._176:
+ bl CloseMenu
+._175:
+ mov r0, #0x1
+._177:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815FB78
+
+ thumb_func_start debug_sub_815FBE8
+debug_sub_815FBE8:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ ldr r1, ._178 @ gMenuCallback
+ ldr r0, ._178 + 4 @ debug_sub_815FB78
+ str r0, [r1]
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ ldr r4, ._178 + 8 @ gStringVar1
+ add r0, r4, #0
+ bl debug_sub_814A73C
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xb
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ add r0, r4, #0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._178 + 12 @ Str_843E580
+ mov r1, #0x2
+ mov r2, #0x3
+ bl Menu_PrintText
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x3
+ bl InitMenu
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._179:
+ .align 2, 0
+._178:
+ .word gMenuCallback
+ .word debug_sub_815FB78+1
+ .word gStringVar1
+ .word Str_843E580
+
+ thumb_func_end debug_sub_815FBE8
+
+ thumb_func_start debug_sub_815FC54
+debug_sub_815FC54:
+ push {r4, r5, r6, r7, lr}
+ mov r3, #0x0
+ ldr r7, ._181 @ gSaveBlock1
+ mov r6, #0xe8
+ lsl r6, r6, #0x3
+ ldr r5, ._181 + 4 @ 0x3e7
+ ldr r4, ._181 + 8 @ 0x742
+._180:
+ lsl r1, r3, #0x2
+ add r1, r1, r7
+ add r2, r3, #0
+ add r2, r2, #0x85
+ add r0, r1, r6
+ strh r2, [r0]
+ add r1, r1, r4
+ strh r5, [r1]
+ add r0, r3, #1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ cmp r3, #0x2a
+ bls ._180 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._182:
+ .align 2, 0
+._181:
+ .word gSaveBlock1
+ .word 0x3e7
+ .word 0x742
+
+ thumb_func_end debug_sub_815FC54
+
+ thumb_func_start debug_sub_815FC94
+debug_sub_815FC94:
+ push {lr}
+ bl ClearDecorationInventories
+ bl debug_sub_814A3A8
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815FC94
+
+ thumb_func_start debug_sub_815FCB4
+debug_sub_815FCB4:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ mov r7, #0x0
+ ldr r5, ._188 @ gMapHeader
+ ldr r0, [r5]
+ ldr r0, [r0, #0x4]
+ mov r1, #0x3
+ bl __divsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r0, #0
+ mul r1, r1, r4
+ lsl r1, r1, #0x10
+ lsr r6, r1, #0x10
+ add r0, r6, r0
+ mov r9, r5
+ cmp r6, r0
+ bge ._183 @cond_branch
+ mov r8, r0
+._187:
+ mov r4, #0x0
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r0, [r0]
+ add r5, r6, #1
+ cmp r4, r0
+ bge ._184 @cond_branch
+ ldr r0, ._188 @ gMapHeader
+ mov r9, r0
+._186:
+ add r0, r4, #7
+ add r1, r6, #7
+ bl MapGridGetMetatileBehaviorAt
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl sub_805759C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bne ._185 @cond_branch
+ add r0, r7, #1
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+._185:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, ._188 @ gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r4, r0
+ blt ._186 @cond_branch
+._184:
+ lsl r0, r5, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, r8
+ blt ._187 @cond_branch
+._183:
+ add r0, r7, #0
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._189:
+ .align 2, 0
+._188:
+ .word gMapHeader
+
+ thumb_func_end debug_sub_815FCB4
+
+ thumb_func_start debug_sub_815FD40
+debug_sub_815FD40:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xfffffffc
+ mov r6, #0x0
+ mov r4, sp
+ add r4, r4, #0x2
+ mov r0, sp
+ add r1, r4, #0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r1, sp
+ mov r0, sp
+ ldrh r0, [r0]
+ sub r0, r0, #0x7
+ strh r0, [r1]
+ ldrh r0, [r4]
+ sub r0, r0, #0x7
+ strh r0, [r4]
+ mov r5, #0x0
+ ldr r1, ._192 @ gMapHeader
+ ldr r0, [r1]
+ ldr r0, [r0, #0x4]
+ add r7, r4, #0
+ cmp r6, r0
+ bge ._190 @cond_branch
+._199:
+ mov r4, #0x0
+ ldr r0, [r1]
+ b ._191
+._193:
+ .align 2, 0
+._192:
+ .word gMapHeader
+._198:
+ add r0, r4, #7
+ add r1, r5, #7
+ bl MapGridGetMetatileBehaviorAt
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl sub_805759C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bne ._196 @cond_branch
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ mov r0, sp
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, r4
+ bne ._196 @cond_branch
+ mov r1, #0x0
+ ldsh r0, [r7, r1]
+ cmp r0, r5
+ bne ._196 @cond_branch
+ add r0, r6, #0
+ b ._197
+._196:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, ._200 @ gMapHeader
+ ldr r0, [r0]
+._191:
+ ldr r0, [r0]
+ cmp r4, r0
+ blt ._198 @cond_branch
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r1, ._200 @ gMapHeader
+ ldr r0, [r1]
+ ldr r0, [r0, #0x4]
+ cmp r5, r0
+ blt ._199 @cond_branch
+._190:
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+._197:
+ add sp, sp, #0x4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._201:
+ .align 2, 0
+._200:
+ .word gMapHeader
+
+ thumb_func_end debug_sub_815FD40
+
+ thumb_func_start debug_sub_815FDE4
+debug_sub_815FDE4:
+ push {lr}
+ ldr r0, ._205 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._202 @cond_branch
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._203 @cond_branch
+._202:
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl CloseMenu
+ mov r0, #0x1
+ b ._204
+._206:
+ .align 2, 0
+._205:
+ .word gMain
+._203:
+ mov r0, #0x0
+._204:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_815FDE4
+
+ thumb_func_start debug_sub_815FE1C
+debug_sub_815FE1C:
+ push {r4, r5, r6, r7, lr}
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x10
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._210 @ Str_843E58D
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r6, ._210 + 4 @ gStringVar1
+ mov r0, #0x0
+ bl debug_sub_815FCB4
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x5
+ mov r2, #0x3
+ bl Menu_PrintText
+ mov r0, #0x1
+ bl debug_sub_815FCB4
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x5
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0x2
+ bl debug_sub_815FCB4
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0x5
+ mov r2, #0x7
+ bl Menu_PrintText
+ mov r0, #0x0
+ bl debug_sub_8092344
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0x3
+ bl Menu_PrintText
+ mov r0, #0x1
+ bl debug_sub_8092344
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0x2
+ bl debug_sub_8092344
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r0, ._210 + 8 @ gSaveBlock1
+ ldr r1, ._210 + 12 @ 0x2dd6
+ add r0, r0, r1
+ ldrh r0, [r0]
+ bl FeebasSeedRng
+ mov r0, #0x0
+ bl debug_sub_815FCB4
+ add r4, r0, #0
+ mov r0, #0x1
+ bl debug_sub_815FCB4
+ add r5, r0, #0
+ mov r0, #0x2
+ bl debug_sub_815FCB4
+ add r4, r4, r5
+ add r0, r0, r4
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ mov r5, #0x0
+._209:
+ bl FeebasRandom
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r7, #0
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0
+ bne ._207 @cond_branch
+ add r1, r7, #0
+._207:
+ sub r0, r1, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x2
+ bls ._208 @cond_branch
+ add r0, r6, #0
+ mov r2, #0x1
+ mov r3, #0x4
+ bl ConvertIntToDecimalStringN
+ add r0, r5, #0
+ mov r1, #0x3
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r4, r0, #0x2
+ add r4, r4, r0
+ add r4, r4, #0x2
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r5, #0
+ mov r1, #0x3
+ bl __udivsi3
+ add r2, r0, #0
+ lsl r2, r2, #0x19
+ mov r0, #0xb0
+ lsl r0, r0, #0x14
+ add r2, r2, r0
+ lsr r2, r2, #0x18
+ add r0, r6, #0
+ add r1, r4, #0
+ bl Menu_PrintText
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+._208:
+ cmp r5, #0x6
+ bne ._209 @cond_branch
+ ldr r4, ._210 + 4 @ gStringVar1
+ bl debug_sub_815FD40
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r4, #0
+ mov r2, #0x1
+ mov r3, #0x4
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x2
+ mov r2, #0x11
+ bl Menu_PrintText
+ ldr r1, ._210 + 16 @ gMenuCallback
+ ldr r0, ._210 + 20 @ debug_sub_815FDE4
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._211:
+ .align 2, 0
+._210:
+ .word Str_843E58D
+ .word gStringVar1
+ .word gSaveBlock1
+ .word 0x2dd6
+ .word gMenuCallback
+ .word debug_sub_815FDE4+1
+
+ thumb_func_end debug_sub_815FE1C
+
+ thumb_func_start debug_sub_815FFDC
+debug_sub_815FFDC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ mov r0, #0xe
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0xe
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._214 @ Str_843E5D4
+ mov r1, #0x1
+ mov r2, #0xf
+ bl Menu_PrintText
+ mov r5, #0x0
+ ldr r0, ._214 + 4 @ _nakamuraStatic0
+ mov r8, r0
+._216:
+ mov r0, #0x64
+ add r1, r5, #0
+ mul r1, r1, r0
+ ldr r0, ._214 + 8 @ gPlayerParty
+ add r6, r1, r0
+ add r0, r6, #0
+ mov r1, #0xb
+ bl GetMonData
+ lsl r1, r5, #0x2
+ mov r2, r8
+ add r4, r1, r2
+ strh r0, [r4]
+ lsl r0, r0, #0x10
+ add r7, r1, #0
+ cmp r0, #0
+ beq ._212 @cond_branch
+ add r0, r6, #0
+ mov r1, #0x38
+ bl GetMonData
+ strb r0, [r4, #0x2]
+ add r0, r5, #0
+ bl debug_sub_816009C
+ add r0, r5, #0
+ bl debug_sub_81600D0
+ add r0, r5, #0
+ bl debug_sub_816013C
+ b ._213
+._215:
+ .align 2, 0
+._214:
+ .word Str_843E5D4
+ .word _nakamuraStatic0
+ .word gPlayerParty
+._212:
+ mov r0, #0x1
+ strb r0, [r4, #0x2]
+._213:
+ mov r0, r8
+ add r1, r7, r0
+ mov r0, #0x0
+ strb r0, [r1, #0x3]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x5
+ bls ._216 @cond_branch
+ ldr r1, ._217 @ _nakamuraData4
+ mov r0, #0x0
+ strb r0, [r1]
+ mov r0, #0xf
+ mov r1, #0x1
+ mov r2, #0xff
+ bl PrintTriangleCursorWithPalette
+ ldr r1, ._217 + 4 @ gMenuCallback
+ ldr r0, ._217 + 8 @ debug_sub_8160498
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._218:
+ .align 2, 0
+._217:
+ .word _nakamuraData4
+ .word gMenuCallback
+ .word debug_sub_8160498+1
+
+ thumb_func_end debug_sub_815FFDC
+
+ thumb_func_start debug_sub_816009C
+debug_sub_816009C:
+ push {lr}
+ add r2, r0, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ ldr r1, ._219 @ _nakamuraStatic0
+ lsl r0, r2, #0x2
+ add r0, r0, r1
+ mov r3, #0x0
+ ldsh r1, [r0, r3]
+ mov r0, #0xb
+ mul r0, r0, r1
+ ldr r1, ._219 + 4 @ gSpeciesNames
+ add r0, r0, r1
+ lsl r2, r2, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r1, #0x10
+ bl Menu_PrintText
+ pop {r0}
+ bx r0
+._220:
+ .align 2, 0
+._219:
+ .word _nakamuraStatic0
+ .word gSpeciesNames
+
+ thumb_func_end debug_sub_816009C
+
+ thumb_func_start debug_sub_81600D0
+debug_sub_81600D0:
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r5, r4, #0
+ ldr r1, ._223 @ Str_843E5F0
+ mov r0, sp
+ mov r2, #0x2
+ bl memcpy
+ mov r0, #0x64
+ mul r0, r0, r4
+ ldr r1, ._223 + 4 @ gPlayerParty
+ add r0, r0, r1
+ bl GetMonGender
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0
+ bne ._221 @cond_branch
+ ldr r0, ._223 + 8 @ gOtherText_MaleSymbol2
+ b ._222
+._224:
+ .align 2, 0
+._223:
+ .word Str_843E5F0
+ .word gPlayerParty
+ .word gOtherText_MaleSymbol2
+._221:
+ cmp r0, #0xfe
+ bne ._225 @cond_branch
+ ldr r0, ._227 @ gOtherText_FemaleSymbolAndLv
+._222:
+ lsl r2, r4, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r1, #0x17
+ bl Menu_PrintText
+ b ._226
+._228:
+ .align 2, 0
+._227:
+ .word gOtherText_FemaleSymbolAndLv
+._225:
+ lsl r2, r5, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r0, sp
+ mov r1, #0x17
+ bl Menu_PrintText
+._226:
+ add sp, sp, #0x4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_81600D0
+
+ thumb_func_start debug_sub_816013C
+debug_sub_816013C:
+ push {r4, r5, lr}
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r5, ._229 @ gStringVar1
+ ldr r1, ._229 + 4 @ _nakamuraStatic0
+ lsl r0, r4, #0x2
+ add r0, r0, r1
+ mov r1, #0x2
+ ldrsb r1, [r0, r1]
+ add r0, r5, #0
+ mov r2, #0x1
+ mov r3, #0x3
+ bl ConvertIntToDecimalStringN
+ lsl r4, r4, #0x1
+ add r4, r4, #0x1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r4, #0
+ bl Menu_PrintText
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._230:
+ .align 2, 0
+._229:
+ .word gStringVar1
+ .word _nakamuraStatic0
+
+ thumb_func_end debug_sub_816013C
+
+ thumb_func_start debug_sub_816017C
+debug_sub_816017C:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ lsl r3, r4, #0x1
+ add r1, r3, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r3, r3, #0x2
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ mov r0, #0x10
+ mov r2, #0x1c
+ bl Menu_BlankWindowRect
+ ldr r1, ._232 @ _nakamuraStatic0
+ lsl r0, r4, #0x2
+ add r0, r0, r1
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, #0
+ beq ._231 @cond_branch
+ add r0, r4, #0
+ bl debug_sub_816009C
+ add r0, r4, #0
+ bl debug_sub_81600D0
+ add r0, r4, #0
+ bl debug_sub_816013C
+._231:
+ mov r0, #0x5
+ bl debug_sub_81603B8
+ pop {r4}
+ pop {r0}
+ bx r0
+._233:
+ .align 2, 0
+._232:
+ .word _nakamuraStatic0
+
+ thumb_func_end debug_sub_816017C
+
+ thumb_func_start debug_sub_81601C8
+debug_sub_81601C8:
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffff0
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r1, ._239 @ _nakamuraStatic0
+ lsl r0, r5, #0x2
+ add r2, r0, r1
+ mov r4, #0x0
+ ldsh r0, [r2, r4]
+ cmp r0, #0
+ bne ._236 @cond_branch
+ ldrb r0, [r2, #0x3]
+ cmp r0, #0
+ bne ._236 @cond_branch
+ cmp r3, #0x1
+ bne ._236 @cond_branch
+ mov r0, #0x8a
+ lsl r0, r0, #0x1
+ strh r0, [r2]
+._236:
+ lsl r0, r5, #0x2
+ add r4, r0, r1
+ lsl r0, r3, #0x18
+ asr r0, r0, #0x18
+ ldrh r1, [r4]
+ add r2, r0, r1
+ mov r3, #0x0
+ strh r2, [r4]
+ lsl r1, r2, #0x10
+ mov r0, #0xcd
+ lsl r0, r0, #0x11
+ cmp r1, r0
+ ble ._237 @cond_branch
+ ldr r1, ._239 + 4 @ 0xfffffe65
+ add r0, r2, r1
+ strh r0, [r4]
+._237:
+ ldrh r1, [r4]
+ mov r2, #0x0
+ ldsh r0, [r4, r2]
+ cmp r0, #0
+ bge ._238 @cond_branch
+ ldr r2, ._239 + 8 @ 0x19b
+ add r0, r1, r2
+ strh r0, [r4]
+._238:
+ mov r0, #0x64
+ mul r0, r0, r5
+ ldr r1, ._239 + 12 @ gPlayerParty
+ add r0, r0, r1
+ ldrh r1, [r4]
+ ldrb r2, [r4, #0x2]
+ str r3, [sp]
+ str r3, [sp, #0x4]
+ str r3, [sp, #0x8]
+ str r3, [sp, #0xc]
+ mov r3, #0x20
+ bl CreateMon
+ mov r0, #0x1
+ strb r0, [r4, #0x3]
+ add sp, sp, #0x10
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._240:
+ .align 2, 0
+._239:
+ .word _nakamuraStatic0
+ .word 0xfffffe65
+ .word 0x19b
+ .word gPlayerParty
+
+ thumb_func_end debug_sub_81601C8
+
+ thumb_func_start debug_sub_8160258
+debug_sub_8160258:
+ push {lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r1, ._242 @ _nakamuraStatic0
+ lsl r0, r2, #0x2
+ add r0, r0, r1
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, #0
+ beq ._241 @cond_branch
+ add r0, r2, #0
+ bl debug_sub_816062C
+._241:
+ pop {r0}
+ bx r0
+._243:
+ .align 2, 0
+._242:
+ .word _nakamuraStatic0
+
+ thumb_func_end debug_sub_8160258
+
+ thumb_func_start debug_sub_816027C
+debug_sub_816027C:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r4, r0, #0
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ ldr r1, ._247 @ _nakamuraStatic0
+ lsl r0, r4, #0x2
+ add r3, r0, r1
+ mov r1, #0x0
+ ldsh r0, [r3, r1]
+ cmp r0, #0
+ beq ._244 @cond_branch
+ lsl r0, r2, #0x18
+ asr r0, r0, #0x18
+ ldrb r1, [r3, #0x2]
+ add r0, r0, r1
+ strb r0, [r3, #0x2]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, #0x64
+ ble ._245 @cond_branch
+ mov r0, #0x1
+ strb r0, [r3, #0x2]
+._245:
+ mov r0, #0x2
+ ldrsb r0, [r3, r0]
+ cmp r0, #0
+ bgt ._246 @cond_branch
+ mov r0, #0x64
+ strb r0, [r3, #0x2]
+._246:
+ mov r0, #0x64
+ mul r4, r4, r0
+ ldr r0, ._247 + 4 @ gPlayerParty
+ add r4, r4, r0
+ ldr r2, ._247 + 8 @ gBaseStats
+ mov r0, #0x0
+ ldsh r1, [r3, r0]
+ lsl r0, r1, #0x3
+ sub r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r2
+ ldrb r1, [r0, #0x13]
+ mov r0, #0xca
+ lsl r0, r0, #0x1
+ add r2, r1, #0
+ mul r2, r2, r0
+ mov r0, #0x2
+ ldrsb r0, [r3, r0]
+ lsl r0, r0, #0x2
+ ldr r1, ._247 + 12 @ gExperienceTables
+ add r0, r0, r1
+ add r2, r2, r0
+ add r0, r4, #0
+ mov r1, #0x19
+ bl SetMonData
+ add r0, r4, #0
+ bl debug_sub_803F55C
+._244:
+ pop {r4}
+ pop {r0}
+ bx r0
+._248:
+ .align 2, 0
+._247:
+ .word _nakamuraStatic0
+ .word gPlayerParty
+ .word gBaseStats
+ .word gExperienceTables
+
+ thumb_func_end debug_sub_816027C
+
+ thumb_func_start debug_sub_8160308
+debug_sub_8160308:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ add sp, sp, #0xffffff8c
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ mov r2, #0x0
+._252:
+ add r1, r2, #1
+ lsl r0, r1, #0x18
+ lsr r5, r0, #0x18
+ mov r8, r1
+ cmp r5, #0x5
+ bhi ._249 @cond_branch
+ mov r0, #0x64
+ mov r9, r0
+ mov r0, r9
+ mul r0, r0, r2
+ ldr r7, ._254 @ gPlayerParty
+ add r6, r0, r7
+._251:
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0x0
+ bl GetMonData
+ cmp r0, #0
+ bne ._250 @cond_branch
+ add r0, sp, #0x10
+ add r1, r6, #0
+ mov r2, #0x64
+ bl memcpy
+ mov r4, r9
+ mul r4, r4, r5
+ add r4, r4, r7
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #0x64
+ bl memcpy
+ add r0, r4, #0
+ add r1, sp, #0x10
+ mov r2, #0x64
+ bl memcpy
+._250:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x5
+ bls ._251 @cond_branch
+._249:
+ mov r1, r8
+ lsl r0, r1, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x4
+ bls ._252 @cond_branch
+ bl CalculatePlayerPartyCount
+ ldr r4, ._254 + 4 @ gPlayerPartyCount
+ ldrb r1, [r4]
+ cmp r1, #0
+ bne ._253 @cond_branch
+ ldr r0, ._254 @ gPlayerParty
+ str r1, [sp]
+ str r1, [sp, #0x4]
+ str r1, [sp, #0x8]
+ str r1, [sp, #0xc]
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0x20
+ bl CreateMon
+ mov r0, #0x1
+ strb r0, [r4]
+._253:
+ add sp, sp, #0x74
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._255:
+ .align 2, 0
+._254:
+ .word gPlayerParty
+ .word gPlayerPartyCount
+
+ thumb_func_end debug_sub_8160308
+
+ thumb_func_start debug_sub_81603B8
+debug_sub_81603B8:
+ push {r4, r5, r6, r7, lr}
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ mov r0, #0x5
+ bl PlaySE
+ ldr r7, ._259 @ _nakamuraData4
+ ldrb r4, [r7]
+ add r0, r4, #0
+ mov r1, #0x6
+ bl __udivsi3
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, ._259 + 4 @ _843E5D1
+ add r0, r5, r0
+ ldrb r2, [r0]
+ lsl r3, r4, #0x1
+ add r1, r3, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r3, r3, #0x2
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ add r0, r2, #0
+ bl Menu_BlankWindowRect
+ cmp r6, #0
+ bne ._256 @cond_branch
+ cmp r4, #0
+ beq ._257 @cond_branch
+ ldrb r0, [r7]
+ sub r0, r0, #0x1
+ b ._258
+._260:
+ .align 2, 0
+._259:
+ .word _nakamuraData4
+ .word _843E5D1
+._257:
+ lsl r0, r5, #0x1
+ add r0, r0, r5
+ lsl r0, r0, #0x1
+ add r0, r0, #0x5
+._258:
+ strb r0, [r7]
+._256:
+ ldr r1, ._264 @ _nakamuraData4
+ cmp r6, #0x1
+ bne ._261 @cond_branch
+ cmp r4, #0x5
+ beq ._262 @cond_branch
+ ldrb r0, [r1]
+ add r0, r0, #0x1
+ b ._263
+._265:
+ .align 2, 0
+._264:
+ .word _nakamuraData4
+._262:
+ lsl r0, r5, #0x1
+ add r0, r0, r5
+ lsl r0, r0, #0x1
+._263:
+ strb r0, [r1]
+._261:
+ cmp r6, #0x2
+ bne ._266 @cond_branch
+ cmp r5, #0
+ beq ._267 @cond_branch
+ ldrb r0, [r1]
+ sub r0, r0, #0x6
+ b ._268
+._267:
+ add r0, r4, #0
+ add r0, r0, #0xc
+._268:
+ strb r0, [r1]
+._266:
+ cmp r6, #0x3
+ bne ._271 @cond_branch
+ cmp r5, #0x2
+ beq ._270 @cond_branch
+ ldrb r0, [r1]
+ add r0, r0, #0x6
+ strb r0, [r1]
+ b ._271
+._270:
+ strb r4, [r1]
+._271:
+ ldrb r4, [r1]
+ add r0, r4, #0
+ mov r1, #0x6
+ bl __udivsi3
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0
+ mov r1, #0x6
+ bl __umodsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ ldr r0, ._272 @ _843E5D1
+ add r0, r5, r0
+ ldrb r0, [r0]
+ lsr r1, r1, #0x17
+ add r1, r1, #0x1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #0xff
+ bl PrintTriangleCursorWithPalette
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._273:
+ .align 2, 0
+._272:
+ .word _843E5D1
+
+ thumb_func_end debug_sub_81603B8
+
+ thumb_func_start debug_sub_8160498
+debug_sub_8160498:
+ push {r4, lr}
+ ldr r1, ._276 @ gMain
+ ldrh r2, [r1, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._274 @cond_branch
+ mov r0, #0x0
+ b ._281
+._277:
+ .align 2, 0
+._276:
+ .word gMain
+._274:
+ mov r0, #0x80
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._278 @cond_branch
+ mov r0, #0x1
+ b ._281
+._278:
+ mov r0, #0x20
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._280 @cond_branch
+ mov r0, #0x2
+ b ._281
+._280:
+ mov r0, #0x10
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._282 @cond_branch
+ mov r0, #0x3
+._281:
+ bl debug_sub_81603B8
+ mov r0, #0x0
+ b ._311
+._282:
+ ldrh r1, [r1, #0x30]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._284 @cond_branch
+ ldr r4, ._289 @ _nakamuraData4
+ ldrb r0, [r4]
+ cmp r0, #0x5
+ bhi ._285 @cond_branch
+ mov r1, #0x1
+ bl debug_sub_81601C8
+._285:
+ ldrb r0, [r4]
+ sub r0, r0, #0x6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi ._286 @cond_branch
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl debug_sub_8160258
+._286:
+ ldrb r0, [r4]
+ sub r0, r0, #0xc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi ._306 @cond_branch
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ b ._300
+._290:
+ .align 2, 0
+._289:
+ .word _nakamuraData4
+._284:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._291 @cond_branch
+ ldr r4, ._294 @ _nakamuraData4
+ ldrb r0, [r4]
+ cmp r0, #0x5
+ bhi ._304 @cond_branch
+ mov r1, #0x1
+ neg r1, r1
+ b ._293
+._295:
+ .align 2, 0
+._294:
+ .word _nakamuraData4
+._291:
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._296 @cond_branch
+ ldr r4, ._301 @ _nakamuraData4
+ ldrb r0, [r4]
+ cmp r0, #0x5
+ bhi ._297 @cond_branch
+ mov r1, #0xa
+ bl debug_sub_81601C8
+._297:
+ ldrb r0, [r4]
+ sub r0, r0, #0x6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi ._298 @cond_branch
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl debug_sub_8160258
+._298:
+ ldrb r0, [r4]
+ sub r0, r0, #0xc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi ._306 @cond_branch
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ b ._300
+._302:
+ .align 2, 0
+._301:
+ .word _nakamuraData4
+._296:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._303 @cond_branch
+ ldr r4, ._308 @ _nakamuraData4
+ ldrb r0, [r4]
+ cmp r0, #0x5
+ bhi ._304 @cond_branch
+ mov r1, #0xa
+ neg r1, r1
+._293:
+ bl debug_sub_81601C8
+._304:
+ ldrb r0, [r4]
+ sub r0, r0, #0x6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi ._305 @cond_branch
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl debug_sub_8160258
+._305:
+ ldrb r0, [r4]
+ sub r0, r0, #0xc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x5
+ bhi ._306 @cond_branch
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ neg r1, r1
+._300:
+ bl debug_sub_816027C
+._306:
+ ldrb r0, [r4]
+ mov r1, #0x6
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl debug_sub_816017C
+ mov r0, #0x0
+ b ._311
+._309:
+ .align 2, 0
+._308:
+ .word _nakamuraData4
+._303:
+ mov r0, #0x8
+ and r0, r0, r2
+ cmp r0, #0
+ bne ._310 @cond_branch
+ mov r0, #0x0
+ b ._311
+._310:
+ bl debug_sub_8160308
+ bl CloseMenu
+ mov r0, #0x1
+._311:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8160498
+
+ thumb_func_start debug_sub_816062C
+debug_sub_816062C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ add sp, sp, #0xfffffff0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r8, r0
+ mov r0, #0x64
+ mov r4, r8
+ mul r4, r4, r0
+ ldr r0, ._316 @ gPlayerParty
+ add r4, r4, r0
+ add r0, r4, #0
+ mov r1, #0xb
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ add r0, r4, #0
+ bl GetMonGender
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r1, ._316 + 4 @ gBaseStats
+ lsl r0, r7, #0x3
+ sub r0, r0, r7
+ lsl r0, r0, #0x2
+ add r0, r0, r1
+ ldrb r6, [r0, #0x10]
+ cmp r6, #0
+ beq ._313 @cond_branch
+ cmp r6, #0xfe
+ beq ._313 @cond_branch
+ cmp r6, #0xff
+ bne ._314 @cond_branch
+._313:
+ mov r0, #0x64
+ mov r1, r8
+ mul r1, r1, r0
+ add r0, r1, #0
+ ldr r1, ._316 @ gPlayerParty
+ add r0, r0, r1
+ bl GetMonGender
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._320
+._317:
+ .align 2, 0
+._316:
+ .word gPlayerParty
+ .word gBaseStats
+._314:
+ cmp r2, #0
+ beq ._318 @cond_branch
+ cmp r2, #0xfe
+ beq ._319 @cond_branch
+ mov r0, #0x0
+ b ._320
+._318:
+ mov r6, #0xfe
+ b ._321
+._319:
+ mov r6, #0x0
+._321:
+ mov r0, r8
+ lsl r0, r0, #0x2
+ mov r9, r0
+._322:
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl Random
+ lsl r0, r0, #0x10
+ orr r5, r5, r0
+ add r0, r7, #0
+ add r1, r5, #0
+ bl GetGenderFromSpeciesAndPersonality
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, r6
+ bne ._322 @cond_branch
+ mov r0, #0x64
+ mov r4, r8
+ mul r4, r4, r0
+ ldr r0, ._323 @ gPlayerParty
+ add r4, r4, r0
+ add r0, r4, #0
+ mov r1, #0x42
+ bl GetMonData
+ ldr r0, ._323 + 4 @ _nakamuraStatic0
+ add r0, r0, r9
+ ldrh r1, [r0]
+ ldrb r2, [r0, #0x2]
+ mov r0, #0x1
+ str r0, [sp]
+ str r5, [sp, #0x4]
+ mov r0, #0x0
+ str r0, [sp, #0x8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ mov r3, #0x20
+ bl CreateMon
+ add r0, r6, #0
+._320:
+ add sp, sp, #0x10
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._324:
+ .align 2, 0
+._323:
+ .word gPlayerParty
+ .word _nakamuraStatic0
+
+ thumb_func_end debug_sub_816062C
+
+ thumb_func_start debug_sub_8160714
+debug_sub_8160714:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ add sp, sp, #0xfffffff0
+ add r6, r0, #0
+ mov r9, r1
+ mov r7, #0x0
+ mov r0, #0x0
+ mov r8, r0
+ mov r2, #0x0
+ mov r5, #0x0
+._329:
+ add r4, r5, #1
+ lsl r1, r4, #0x18
+ lsr r1, r1, #0x18
+ mov r0, r9
+ str r2, [sp, #0xc]
+ bl GetPokeblockData
+ add r1, r0, #0
+ lsl r0, r5, #0x1
+ add r0, r0, sp
+ strh r1, [r0]
+ ldr r2, [sp, #0xc]
+ cmp r5, #0x5
+ beq ._328 @cond_branch
+ lsl r0, r1, #0x10
+ asr r1, r0, #0x10
+ cmp r1, #0
+ ble ._326 @cond_branch
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._326:
+ cmp r1, #0
+ bge ._327 @cond_branch
+ mov r0, r8
+ add r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r8, r0
+._327:
+ cmp r1, #0
+ bne ._328 @cond_branch
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+._328:
+ lsl r0, r4, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x5
+ bls ._329 @cond_branch
+ mov r0, sp
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, #0x31
+ bgt ._333 @cond_branch
+ mov r0, sp
+ ldrh r0, [r0, #0x2]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ cmp r0, #0x31
+ bgt ._333 @cond_branch
+ mov r0, sp
+ mov r4, #0x4
+ ldsh r0, [r0, r4]
+ cmp r0, #0x31
+ bgt ._333 @cond_branch
+ mov r0, sp
+ mov r1, #0x6
+ ldsh r0, [r0, r1]
+ cmp r0, #0x31
+ bgt ._333 @cond_branch
+ mov r0, sp
+ mov r4, #0x8
+ ldsh r0, [r0, r4]
+ cmp r0, #0x31
+ ble ._334 @cond_branch
+._333:
+ ldr r1, ._336 @ ContestStatsText_GoldPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0xe
+ b ._400
+._337:
+ .align 2, 0
+._336:
+ .word ContestStatsText_GoldPokeBlock
+._334:
+ cmp r7, #0x4
+ bne ._338 @cond_branch
+ ldr r1, ._340 @ ContestStatsText_WhitePokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0xd
+ b ._400
+._341:
+ .align 2, 0
+._340:
+ .word ContestStatsText_WhitePokeBlock
+._338:
+ mov r3, #0x0
+ mov r5, #0x0
+._343:
+ lsl r0, r5, #0x1
+ add r0, r0, sp
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, #0x2
+ bne ._342 @cond_branch
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+._342:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x4
+ bls ._343 @cond_branch
+ cmp r3, #0x3
+ beq ._345 @cond_branch
+ cmp r2, #0x5
+ beq ._345 @cond_branch
+ mov r4, r8
+ cmp r4, #0x4
+ bne ._346 @cond_branch
+._345:
+ ldr r1, ._348 @ ContestStatsText_BlackPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0xc
+ b ._400
+._349:
+ .align 2, 0
+._348:
+ .word ContestStatsText_BlackPokeBlock
+._346:
+ cmp r7, #0x3
+ bne ._350 @cond_branch
+ ldr r1, ._352 @ ContestStatsText_GrayPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0xb
+ b ._400
+._353:
+ .align 2, 0
+._352:
+ .word ContestStatsText_GrayPokeBlock
+._350:
+ cmp r7, #0x2
+ beq ._354 @cond_branch
+ mov r0, r8
+ cmp r0, #0x2
+ bne ._377 @cond_branch
+._354:
+ mov r3, #0x6
+ mov r2, #0x0
+ mov r5, #0x0
+._359:
+ lsl r0, r5, #0x1
+ add r0, r0, sp
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, #0
+ beq ._358 @cond_branch
+ cmp r3, #0x6
+ bne ._357 @cond_branch
+ add r3, r5, #0
+ b ._358
+._357:
+ add r2, r5, #0
+._358:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x4
+ bls ._359 @cond_branch
+ lsl r0, r3, #0x1
+ mov r4, sp
+ add r1, r4, r0
+ lsl r0, r2, #0x1
+ add r0, r0, sp
+ mov r4, #0x0
+ ldsh r1, [r1, r4]
+ mov r4, #0x0
+ ldsh r0, [r0, r4]
+ cmp r1, r0
+ blt ._360 @cond_branch
+ add r2, r3, #0
+._360:
+ cmp r2, #0
+ bne ._361 @cond_branch
+ ldr r1, ._363 @ ContestStatsText_PurplePokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x6
+ b ._400
+._364:
+ .align 2, 0
+._363:
+ .word ContestStatsText_PurplePokeBlock
+._361:
+ cmp r2, #0x1
+ bne ._365 @cond_branch
+ ldr r1, ._367 @ ContestStatsText_IndigoPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x7
+ b ._400
+._368:
+ .align 2, 0
+._367:
+ .word ContestStatsText_IndigoPokeBlock
+._365:
+ cmp r2, #0x2
+ bne ._369 @cond_branch
+ ldr r1, ._371 @ ContestStatsText_BrownPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x8
+ b ._400
+._372:
+ .align 2, 0
+._371:
+ .word ContestStatsText_BrownPokeBlock
+._369:
+ cmp r2, #0x3
+ bne ._373 @cond_branch
+ ldr r1, ._375 @ ContestStatsText_LiteBluePokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x9
+ b ._400
+._376:
+ .align 2, 0
+._375:
+ .word ContestStatsText_LiteBluePokeBlock
+._373:
+ cmp r2, #0x4
+ bne ._377 @cond_branch
+ ldr r1, ._379 @ ContestStatsText_OlivePokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0xa
+ b ._400
+._380:
+ .align 2, 0
+._379:
+ .word ContestStatsText_OlivePokeBlock
+._377:
+ cmp r7, #0x1
+ beq ._381 @cond_branch
+ mov r0, r8
+ cmp r0, #0x1
+ bne ._399 @cond_branch
+._381:
+ mov r0, sp
+ mov r1, #0x0
+ ldsh r0, [r0, r1]
+ cmp r0, #0
+ beq ._383 @cond_branch
+ ldr r1, ._385 @ ContestStatsText_RedPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x1
+ b ._400
+._386:
+ .align 2, 0
+._385:
+ .word ContestStatsText_RedPokeBlock
+._383:
+ mov r0, sp
+ ldrh r0, [r0, #0x2]
+ cmp r0, #0
+ beq ._387 @cond_branch
+ ldr r1, ._389 @ ContestStatsText_BluePokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x2
+ b ._400
+._390:
+ .align 2, 0
+._389:
+ .word ContestStatsText_BluePokeBlock
+._387:
+ mov r0, sp
+ mov r4, #0x4
+ ldsh r0, [r0, r4]
+ cmp r0, #0
+ beq ._391 @cond_branch
+ ldr r1, ._393 @ ContestStatsText_PinkPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x3
+ b ._400
+._394:
+ .align 2, 0
+._393:
+ .word ContestStatsText_PinkPokeBlock
+._391:
+ mov r0, sp
+ mov r1, #0x6
+ ldsh r0, [r0, r1]
+ cmp r0, #0
+ beq ._395 @cond_branch
+ ldr r1, ._397 @ ContestStatsText_GreenPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x4
+ b ._400
+._398:
+ .align 2, 0
+._397:
+ .word ContestStatsText_GreenPokeBlock
+._395:
+ mov r0, sp
+ mov r4, #0x8
+ ldsh r0, [r0, r4]
+ cmp r0, #0
+ beq ._399 @cond_branch
+ ldr r1, ._401 @ ContestStatsText_YellowPokeBlock
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x5
+ b ._400
+._402:
+ .align 2, 0
+._401:
+ .word ContestStatsText_YellowPokeBlock
+._399:
+ ldr r1, ._403 @ gOtherText_FiveQuestions
+ add r0, r6, #0
+ bl StringCopy
+ mov r0, #0x0
+._400:
+ add sp, sp, #0x10
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._404:
+ .align 2, 0
+._403:
+ .word gOtherText_FiveQuestions
+
+ thumb_func_end debug_sub_8160714
+
+ thumb_func_start debug_sub_816097C
+debug_sub_816097C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add r7, r0, #0
+ lsl r1, r1, #0x10
+ lsr r5, r1, #0x10
+ mov r6, #0x0
+ mov r1, #0x0
+._405:
+ add r0, r7, r6
+ strb r1, [r0]
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x3
+ bls ._405 @cond_branch
+ mov r0, #0xff
+ strb r0, [r7, #0x4]
+ lsl r0, r5, #0x10
+ asr r0, r0, #0x10
+ cmp r0, #0
+ bne ._406 @cond_branch
+ mov r0, #0xa1
+ strb r0, [r7, #0x3]
+ b ._414
+._406:
+ cmp r0, #0
+ ble ._408 @cond_branch
+ mov r4, #0x64
+ mov r0, #0x0
+ mov r8, r0
+ mov r6, #0x0
+._412:
+ lsl r5, r5, #0x10
+ asr r0, r5, #0x10
+ lsl r4, r4, #0x10
+ asr r1, r4, #0x10
+ bl __divsi3
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r1, r8
+ cmp r1, #0
+ bne ._410 @cond_branch
+ cmp r6, #0x2
+ beq ._410 @cond_branch
+ cmp r2, #0
+ beq ._411 @cond_branch
+._410:
+ add r1, r6, r7
+ add r0, r2, #0
+ sub r0, r0, #0x5f
+ strb r0, [r1, #0x1]
+ mov r0, #0x1
+ mov r8, r0
+._411:
+ asr r0, r5, #0x10
+ asr r4, r4, #0x10
+ add r1, r4, #0
+ bl __modsi3
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0
+ mov r1, #0xa
+ bl __divsi3
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bls ._412 @cond_branch
+ b ._414
+._408:
+ cmp r0, #0
+ bge ._414 @cond_branch
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ mov r4, #0x64
+ mov r1, #0x0
+ mov r8, r1
+ mov r6, #0x0
+._419:
+ lsl r5, r5, #0x10
+ asr r0, r5, #0x10
+ lsl r4, r4, #0x10
+ asr r1, r4, #0x10
+ bl __divsi3
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ mov r1, r8
+ lsl r0, r1, #0x10
+ add r3, r0, #0
+ cmp r3, #0
+ bne ._416 @cond_branch
+ cmp r6, #0x2
+ beq ._416 @cond_branch
+ cmp r2, #0
+ beq ._417 @cond_branch
+._416:
+ add r1, r6, r7
+ add r0, r2, #0
+ sub r0, r0, #0x5f
+ strb r0, [r1, #0x1]
+ cmp r3, #0
+ bne ._418 @cond_branch
+ mov r0, #0xae
+ strb r0, [r1]
+._418:
+ mov r0, #0x1
+ mov r8, r0
+._417:
+ asr r0, r5, #0x10
+ asr r4, r4, #0x10
+ add r1, r4, #0
+ bl __modsi3
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0
+ mov r1, #0xa
+ bl __divsi3
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bls ._419 @cond_branch
+._414:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_816097C
+
+ thumb_func_start debug_sub_8160A80
+debug_sub_8160A80:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r2, r0, #0
+ ldr r1, ._422 @ _nakamuraStatic18
+ cmp r0, #0
+ bne ._420 @cond_branch
+ ldr r4, ._422 + 4 @ gStringVar1
+ ldrb r1, [r1, #0x1]
+ add r0, r4, #0
+ bl debug_sub_816097C
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0x3
+ bl Menu_PrintText
+ b ._440
+._423:
+ .align 2, 0
+._422:
+ .word _nakamuraStatic18
+ .word gStringVar1
+._420:
+ cmp r0, #0x1
+ bne ._424 @cond_branch
+ ldr r4, ._426 @ gStringVar1
+ ldrb r1, [r1, #0x2]
+ add r0, r4, #0
+ bl debug_sub_816097C
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0x5
+ bl Menu_PrintText
+ b ._440
+._427:
+ .align 2, 0
+._426:
+ .word gStringVar1
+._424:
+ cmp r0, #0x2
+ bne ._428 @cond_branch
+ ldr r4, ._430 @ gStringVar1
+ ldrb r1, [r1, #0x3]
+ add r0, r4, #0
+ bl debug_sub_816097C
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0x7
+ bl Menu_PrintText
+ b ._440
+._431:
+ .align 2, 0
+._430:
+ .word gStringVar1
+._428:
+ cmp r0, #0x3
+ bne ._432 @cond_branch
+ ldr r4, ._434 @ gStringVar1
+ ldrb r1, [r1, #0x4]
+ add r0, r4, #0
+ bl debug_sub_816097C
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0x9
+ bl Menu_PrintText
+ b ._440
+._435:
+ .align 2, 0
+._434:
+ .word gStringVar1
+._432:
+ cmp r0, #0x4
+ bne ._436 @cond_branch
+ ldr r4, ._438 @ gStringVar1
+ ldrb r1, [r1, #0x5]
+ add r0, r4, #0
+ bl debug_sub_816097C
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0xb
+ bl Menu_PrintText
+ b ._440
+._439:
+ .align 2, 0
+._438:
+ .word gStringVar1
+._436:
+ cmp r2, #0x5
+ bne ._440 @cond_branch
+ ldr r4, ._441 @ gStringVar1
+ ldrb r1, [r1, #0x6]
+ add r0, r4, #0
+ bl debug_sub_816097C
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0xd
+ bl Menu_PrintText
+._440:
+ pop {r4}
+ pop {r0}
+ bx r0
+._442:
+ .align 2, 0
+._441:
+ .word gStringVar1
+
+ thumb_func_end debug_sub_8160A80
+
+ thumb_func_start debug_sub_8160B50
+debug_sub_8160B50:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r3, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r4, r1, #0
+ ldr r2, ._445 @ _nakamuraStatic18
+ cmp r0, #0
+ bne ._443 @cond_branch
+ ldrb r0, [r2, #0x1]
+ add r0, r0, r1
+ strb r0, [r2, #0x1]
+ b ._455
+._446:
+ .align 2, 0
+._445:
+ .word _nakamuraStatic18
+._443:
+ cmp r0, #0x1
+ bne ._447 @cond_branch
+ ldrb r0, [r2, #0x2]
+ add r0, r0, r1
+ strb r0, [r2, #0x2]
+ b ._455
+._447:
+ cmp r0, #0x2
+ bne ._449 @cond_branch
+ ldrb r0, [r2, #0x3]
+ add r0, r0, r1
+ strb r0, [r2, #0x3]
+ b ._455
+._449:
+ cmp r0, #0x3
+ bne ._451 @cond_branch
+ ldrb r0, [r2, #0x4]
+ add r0, r0, r1
+ strb r0, [r2, #0x4]
+ b ._455
+._451:
+ cmp r0, #0x4
+ bne ._453 @cond_branch
+ ldrb r0, [r2, #0x5]
+ add r0, r0, r1
+ strb r0, [r2, #0x5]
+ b ._455
+._453:
+ cmp r3, #0x5
+ bne ._455 @cond_branch
+ ldrb r0, [r2, #0x6]
+ add r0, r0, r4
+ strb r0, [r2, #0x6]
+._455:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_8160B50
+
+ thumb_func_start debug_sub_8160BB0
+debug_sub_8160BB0:
+ push {r4, r5, lr}
+ ldr r5, ._456 @ gStringVar1
+ ldr r4, ._456 + 4 @ _nakamuraStatic18
+ add r0, r5, #0
+ add r1, r4, #0
+ bl debug_sub_8160714
+ strb r0, [r4]
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x8
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._457:
+ .align 2, 0
+._456:
+ .word gStringVar1
+ .word _nakamuraStatic18
+
+ thumb_func_end debug_sub_8160BB0
+
+ thumb_func_start debug_sub_8160BE4
+debug_sub_8160BE4:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xc
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ bl debug_sub_8160BB0
+ ldr r0, ._459 @ gContestStatsText_Spicy
+ mov r1, #0x2
+ mov r2, #0x3
+ bl Menu_PrintText
+ ldr r0, ._459 + 4 @ gContestStatsText_Dry
+ mov r1, #0x2
+ mov r2, #0x5
+ bl Menu_PrintText
+ ldr r0, ._459 + 8 @ gContestStatsText_Sweet
+ mov r1, #0x2
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r0, ._459 + 12 @ gContestStatsText_Bitter
+ mov r1, #0x2
+ mov r2, #0x9
+ bl Menu_PrintText
+ ldr r0, ._459 + 16 @ gContestStatsText_Sour
+ mov r1, #0x2
+ mov r2, #0xb
+ bl Menu_PrintText
+ ldr r0, ._459 + 20 @ gContestStatsText_Tasty
+ mov r1, #0x2
+ mov r2, #0xd
+ bl Menu_PrintText
+ mov r4, #0x0
+._458:
+ add r0, r4, #0
+ bl debug_sub_8160A80
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x5
+ bls ._458 @cond_branch
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x6
+ bl InitMenu
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+._460:
+ .align 2, 0
+._459:
+ .word gContestStatsText_Spicy
+ .word gContestStatsText_Dry
+ .word gContestStatsText_Sweet
+ .word gContestStatsText_Bitter
+ .word gContestStatsText_Sour
+ .word gContestStatsText_Tasty
+
+ thumb_func_end debug_sub_8160BE4
+
+ thumb_func_start debug_sub_8160C7C
+debug_sub_8160C7C:
+ push {r4, lr}
+ ldr r2, ._469 @ _nakamuraStatic18
+ mov r1, #0x0
+ ldrb r0, [r2]
+ cmp r0, #0xc
+ bne ._467 @cond_branch
+ ldrb r0, [r2, #0x1]
+ cmp r0, #0x2
+ bne ._462 @cond_branch
+ mov r1, #0x1
+._462:
+ ldrb r0, [r2, #0x3]
+ cmp r0, #0x2
+ bne ._463 @cond_branch
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+._463:
+ ldrb r0, [r2, #0x4]
+ cmp r0, #0x2
+ bne ._464 @cond_branch
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+._464:
+ ldrb r0, [r2, #0x2]
+ cmp r0, #0x2
+ bne ._465 @cond_branch
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+._465:
+ ldrb r0, [r2, #0x5]
+ cmp r0, #0x2
+ bne ._466 @cond_branch
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+._466:
+ cmp r1, #0x3
+ beq ._467 @cond_branch
+ mov r0, #0x2
+ strb r0, [r2, #0x1]
+ strb r0, [r2, #0x3]
+ strb r0, [r2, #0x4]
+._467:
+ add r0, r2, #0
+ bl sub_810CA34
+ bl debug_sub_8160BB0
+ mov r4, #0x0
+._468:
+ add r0, r4, #0
+ bl debug_sub_8160A80
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x5
+ bls ._468 @cond_branch
+ pop {r4}
+ pop {r0}
+ bx r0
+._470:
+ .align 2, 0
+._469:
+ .word _nakamuraStatic18
+
+ thumb_func_end debug_sub_8160C7C
+
+ thumb_func_start debug_sub_8160CF4
+debug_sub_8160CF4:
+ push {lr}
+ ldr r2, ._473 @ gMain
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._471 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ b ._472
+._474:
+ .align 2, 0
+._473:
+ .word gMain
+._471:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._475 @cond_branch
+ mov r0, #0x1
+._472:
+ bl Menu_MoveCursor
+ mov r0, #0x0
+ b ._484
+._475:
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._477 @cond_branch
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ neg r1, r1
+ b ._478
+._477:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._479 @cond_branch
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+._478:
+ bl debug_sub_8160B50
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl debug_sub_8160A80
+ bl debug_sub_8160BB0
+ mov r0, #0x0
+ b ._484
+._479:
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._481 @cond_branch
+ bl debug_sub_8160C7C
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x0
+ b ._484
+._481:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._483 @cond_branch
+ mov r0, #0x0
+ b ._484
+._483:
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl CloseMenu
+ mov r0, #0x1
+._484:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8160CF4
+
+ thumb_func_start debug_sub_8160D98
+debug_sub_8160D98:
+ push {lr}
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl debug_sub_8160BE4
+ ldr r1, ._485 @ gMenuCallback
+ ldr r0, ._485 + 4 @ debug_sub_8160CF4
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._486:
+ .align 2, 0
+._485:
+ .word gMenuCallback
+ .word debug_sub_8160CF4+1
+
+ thumb_func_end debug_sub_8160D98
+
+ thumb_func_start debug_sub_8160DC0
+debug_sub_8160DC0:
+ push {lr}
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x16
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._487 @ gOtherText_Slash
+ mov r1, #0xb
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._487 + 4 @ Str_843E5F2
+ mov r1, #0x2
+ mov r2, #0x3
+ bl Menu_PrintText
+ ldr r0, ._487 + 8 @ Str_843E5FB
+ mov r1, #0x2
+ mov r2, #0x5
+ bl Menu_PrintText
+ ldr r0, ._487 + 12 @ Str_843E606
+ mov r1, #0x2
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r0, ._487 + 16 @ Str_843E611
+ mov r1, #0x2
+ mov r2, #0x9
+ bl Menu_PrintText
+ ldr r0, ._487 + 20 @ Str_843E61C
+ mov r1, #0x2
+ mov r2, #0xb
+ bl Menu_PrintText
+ ldr r0, ._487 + 24 @ Str_843E627
+ mov r1, #0x2
+ mov r2, #0xd
+ bl Menu_PrintText
+ ldr r0, ._487 + 28 @ Str_843E637
+ mov r1, #0x2
+ mov r2, #0xf
+ bl Menu_PrintText
+ ldr r0, ._487 + 32 @ Str_843E632
+ mov r1, #0x2
+ mov r2, #0x11
+ bl Menu_PrintText
+ pop {r0}
+ bx r0
+._488:
+ .align 2, 0
+._487:
+ .word gOtherText_Slash
+ .word Str_843E5F2
+ .word Str_843E5FB
+ .word Str_843E606
+ .word Str_843E611
+ .word Str_843E61C
+ .word Str_843E627
+ .word Str_843E637
+ .word Str_843E632
+
+ thumb_func_end debug_sub_8160DC0
+
+ thumb_func_start debug_sub_8160E50
+debug_sub_8160E50:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0xa
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ ldr r5, ._489 @ gStringVar1
+ add r0, r6, #0
+ mov r1, #0x2
+ add r2, r5, #0
+ bl GetMonData
+ add r0, r5, #0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r0, #0xc
+ mov r1, #0x1
+ mov r2, #0x15
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ add r0, r6, #0
+ mov r1, #0xb
+ bl GetMonData
+ mov r1, #0xb
+ mul r0, r0, r1
+ ldr r1, ._489 + 4 @ gSpeciesNames
+ add r0, r0, r1
+ mov r1, #0xc
+ mov r2, #0x1
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x1a
+ bl GetMonData
+ add r4, r0, #0
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0x3
+ mov r2, #0x11
+ mov r3, #0x4
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0x3
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x1b
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r4, r4, r1
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0x5
+ mov r2, #0x11
+ mov r3, #0x6
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0x5
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x1c
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r4, r4, r1
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0x7
+ mov r2, #0x11
+ mov r3, #0x8
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0x7
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x1d
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r4, r4, r1
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0x9
+ mov r2, #0x11
+ mov r3, #0xa
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0x9
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x1e
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r4, r4, r1
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0xb
+ mov r2, #0x11
+ mov r3, #0xc
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0xb
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x1f
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r4, r4, r1
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0xd
+ mov r2, #0x11
+ mov r3, #0xe
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0xd
+ bl Menu_PrintText
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0xf
+ mov r2, #0x11
+ mov r3, #0x10
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0xf
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x20
+ bl GetMonData
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, #0xd
+ mov r1, #0x11
+ mov r2, #0x11
+ mov r3, #0x12
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0x11
+ bl Menu_PrintText
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._490:
+ .align 2, 0
+._489:
+ .word gStringVar1
+ .word gSpeciesNames
+
+ thumb_func_end debug_sub_8160E50
+
+ thumb_func_start debug_sub_8161028
+debug_sub_8161028:
+ push {r4, r5, r6, lr}
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ bne ._491 @cond_branch
+ ldr r0, ._496 @ _nakamuraData5
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne ._492 @cond_branch
+ mov r5, #0x5
+._494:
+ lsl r0, r5, #0x10
+ asr r4, r0, #0x10
+ mov r0, #0x64
+ mul r0, r0, r4
+ ldr r1, ._496 + 4 @ gPlayerParty
+ add r0, r0, r1
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ bne ._493 @cond_branch
+ sub r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r0, #0
+ bge ._494 @cond_branch
+._492:
+ ldr r1, ._496 @ _nakamuraData5
+ ldrb r0, [r1]
+ add r0, r0, r6
+ strb r0, [r1]
+ b ._506
+._497:
+ .align 2, 0
+._496:
+ .word _nakamuraData5
+ .word gPlayerParty
+._491:
+ cmp r1, #0x1
+ bne ._506 @cond_branch
+ ldr r4, ._501 @ _nakamuraData5
+ ldrb r0, [r4]
+ add r0, r0, r6
+ strb r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x6
+ bne ._499 @cond_branch
+ mov r0, #0x0
+ b ._500
+._502:
+ .align 2, 0
+._501:
+ .word _nakamuraData5
+._493:
+ ldr r0, ._504 @ _nakamuraData5
+ strb r5, [r0]
+ b ._506
+._505:
+ .align 2, 0
+._504:
+ .word _nakamuraData5
+._499:
+ ldrb r1, [r4]
+ mov r0, #0x64
+ mul r0, r0, r1
+ ldr r1, ._507 @ gPlayerParty
+ add r0, r0, r1
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ bne ._506 @cond_branch
+._500:
+ strb r0, [r4]
+._506:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._508:
+ .align 2, 0
+._507:
+ .word gPlayerParty
+
+ thumb_func_end debug_sub_8161028
+
+ thumb_func_start debug_sub_81610BC
+debug_sub_81610BC:
+ push {lr}
+ ldr r0, ._511 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._509 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ b ._510
+._512:
+ .align 2, 0
+._511:
+ .word gMain
+._509:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._513 @cond_branch
+ mov r0, #0x1
+._510:
+ bl debug_sub_8161028
+ ldr r0, ._515 @ _nakamuraData5
+ ldrb r1, [r0]
+ mov r0, #0x64
+ mul r0, r0, r1
+ ldr r1, ._515 + 4 @ gPlayerParty
+ add r0, r0, r1
+ bl debug_sub_8160E50
+ mov r0, #0x0
+ b ._518
+._516:
+ .align 2, 0
+._515:
+ .word _nakamuraData5
+ .word gPlayerParty
+._513:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._517 @cond_branch
+ mov r0, #0x0
+ b ._518
+._517:
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl CloseMenu
+ mov r0, #0x1
+._518:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_81610BC
+
+ thumb_func_start DebugMenu_EffortValues
+DebugMenu_EffortValues:
+ push {lr}
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ ldr r1, ._519 @ _nakamuraData5
+ mov r0, #0x0
+ strb r0, [r1]
+ bl debug_sub_8160DC0
+ ldr r0, ._519 + 4 @ gPlayerParty
+ bl debug_sub_8160E50
+ ldr r1, ._519 + 8 @ gMenuCallback
+ ldr r0, ._519 + 12 @ debug_sub_81610BC
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._520:
+ .align 2, 0
+._519:
+ .word _nakamuraData5
+ .word gPlayerParty
+ .word gMenuCallback
+ .word debug_sub_81610BC+1
+
+ thumb_func_end DebugMenu_EffortValues
+
+ thumb_func_start debug_sub_8161160
+debug_sub_8161160:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ mov r7, #0x0
+ ldr r2, ._523 @ _nakamuraData6
+ ldr r1, ._523 + 4 @ _nakamuraData8
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bhi ._521 @cond_branch
+ add r6, r0, #0
+ ldrh r5, [r1]
+ b ._522
+._524:
+ .align 2, 0
+._523:
+ .word _nakamuraData6
+ .word _nakamuraData8
+._521:
+ ldrh r6, [r1]
+ ldrh r5, [r2]
+._522:
+ mov r4, #0x0
+ ldr r0, ._529 @ _nakamuraDataA
+ ldrh r0, [r0]
+ cmp r4, r0
+ bcs ._525 @cond_branch
+ ldr r0, ._529 + 4 @ _nakamuraDataC
+ mov r8, r0
+._528:
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, r8
+ ldrh r1, [r2]
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, r6
+ bcc ._527 @cond_branch
+ cmp r0, r5
+ bhi ._527 @cond_branch
+ add r0, r7, #1
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+._527:
+ add r4, r4, #0x1
+ ldr r0, ._529 @ _nakamuraDataA
+ ldrh r0, [r0]
+ cmp r4, r0
+ bcc ._528 @cond_branch
+._525:
+ add r0, r7, #0
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._530:
+ .align 2, 0
+._529:
+ .word _nakamuraDataA
+ .word _nakamuraDataC
+
+ thumb_func_end debug_sub_8161160
+
+ thumb_func_start debug_sub_81611D8
+debug_sub_81611D8:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xf
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._531 @ Str_843E642
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._531 + 4 @ Str_843E647
+ mov r1, #0x2
+ mov r2, #0x3
+ bl Menu_PrintText
+ ldr r0, ._531 + 8 @ Str_843E65A
+ mov r1, #0x2
+ mov r2, #0x5
+ bl Menu_PrintText
+ ldr r0, ._531 + 12 @ Str_843E64C
+ mov r1, #0x2
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r0, ._531 + 16 @ Str_843E651
+ mov r1, #0x2
+ mov r2, #0x9
+ bl Menu_PrintText
+ ldr r0, ._531 + 20 @ Str_843E655
+ mov r1, #0xd
+ mov r2, #0x9
+ bl Menu_PrintText
+ ldr r4, ._531 + 24 @ Str_843E658
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0x1
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0x3
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0x5
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0x7
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0x9
+ bl Menu_PrintText
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x4
+ bl InitMenu
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+._532:
+ .align 2, 0
+._531:
+ .word Str_843E642
+ .word Str_843E647
+ .word Str_843E65A
+ .word Str_843E64C
+ .word Str_843E651
+ .word Str_843E655
+ .word Str_843E658
+
+ thumb_func_end debug_sub_81611D8
+
+ thumb_func_start debug_sub_8161290
+debug_sub_8161290:
+ push {r4, lr}
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ ldr r4, ._533 @ gStringVar1
+ add r0, r4, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x8
+ mov r2, #0x9
+ bl Menu_PrintText
+ pop {r4}
+ pop {r0}
+ bx r0
+._534:
+ .align 2, 0
+._533:
+ .word gStringVar1
+
+ thumb_func_end debug_sub_8161290
+
+ thumb_func_start debug_sub_81612B8
+debug_sub_81612B8:
+ push {r4, r5, lr}
+ add r4, r2, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ ldrh r2, [r0]
+ add r1, r1, r2
+ strh r1, [r0]
+ ldr r5, ._535 @ gStringVar1
+ ldrh r1, [r0]
+ add r0, r5, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r5, #0
+ mov r1, #0x8
+ add r2, r4, #0
+ bl Menu_PrintText
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._536:
+ .align 2, 0
+._535:
+ .word gStringVar1
+
+ thumb_func_end debug_sub_81612B8
+
+ thumb_func_start debug_sub_81612EC
+debug_sub_81612EC:
+ push {r4, r5, lr}
+ ldr r2, ._540 @ gMain
+ ldrh r1, [r2, #0x2c]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ mov r5, #0x1
+ cmp r0, #0
+ beq ._537 @cond_branch
+ mov r5, #0x64
+._537:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._538 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ b ._539
+._541:
+ .align 2, 0
+._540:
+ .word gMain
+._538:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._542 @cond_branch
+ mov r0, #0x1
+._539:
+ bl Menu_MoveCursor
+._565:
+ mov r0, #0x0
+ b ._543
+._542:
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._544 @cond_branch
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ cmp r4, #0
+ bne ._545 @cond_branch
+ ldr r0, ._550 @ _nakamuraData6
+ neg r1, r5
+ mov r2, #0x1
+ bl debug_sub_81612B8
+._545:
+ cmp r4, #0x1
+ bne ._546 @cond_branch
+ ldr r0, ._550 + 4 @ _nakamuraData8
+ neg r1, r5
+ mov r2, #0x3
+ bl debug_sub_81612B8
+._546:
+ cmp r4, #0x2
+ bne ._547 @cond_branch
+ ldr r0, ._550 + 8 @ _nakamuraDataC
+ neg r1, r5
+ mov r2, #0x5
+ bl debug_sub_81612B8
+._547:
+ cmp r4, #0x3
+ bne ._565 @cond_branch
+ ldr r0, ._550 + 12 @ _nakamuraDataA
+ neg r1, r5
+ mov r2, #0x7
+ bl debug_sub_81612B8
+ b ._565
+._551:
+ .align 2, 0
+._550:
+ .word _nakamuraData6
+ .word _nakamuraData8
+ .word _nakamuraDataC
+ .word _nakamuraDataA
+._544:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._552 @cond_branch
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ cmp r4, #0
+ bne ._553 @cond_branch
+ ldr r0, ._558 @ _nakamuraData6
+ add r1, r5, #0
+ mov r2, #0x1
+ bl debug_sub_81612B8
+._553:
+ cmp r4, #0x1
+ bne ._554 @cond_branch
+ ldr r0, ._558 + 4 @ _nakamuraData8
+ add r1, r5, #0
+ mov r2, #0x3
+ bl debug_sub_81612B8
+._554:
+ cmp r4, #0x2
+ bne ._555 @cond_branch
+ ldr r0, ._558 + 8 @ _nakamuraDataC
+ add r1, r5, #0
+ mov r2, #0x5
+ bl debug_sub_81612B8
+._555:
+ cmp r4, #0x3
+ bne ._565 @cond_branch
+ ldr r0, ._558 + 12 @ _nakamuraDataA
+ add r1, r5, #0
+ mov r2, #0x7
+ bl debug_sub_81612B8
+ b ._565
+._559:
+ .align 2, 0
+._558:
+ .word _nakamuraData6
+ .word _nakamuraData8
+ .word _nakamuraDataC
+ .word _nakamuraDataA
+._552:
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._560 @cond_branch
+ ldr r0, ._563 @ _nakamuraDataC
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq ._565 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ bl debug_sub_8161160
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl debug_sub_8161290
+ b ._565
+._564:
+ .align 2, 0
+._563:
+ .word _nakamuraDataC
+._560:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._565 @cond_branch
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl CloseMenu
+ mov r0, #0x1
+._543:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_81612EC
+
+ thumb_func_start DebugMenu_RandomNumberTest
+DebugMenu_RandomNumberTest:
+ push {lr}
+ ldr r0, ._566 @ _nakamuraData6
+ mov r1, #0x0
+ strh r1, [r0]
+ ldr r0, ._566 + 4 @ _nakamuraData8
+ strh r1, [r0]
+ ldr r0, ._566 + 8 @ _nakamuraDataC
+ strh r1, [r0]
+ ldr r0, ._566 + 12 @ _nakamuraDataA
+ strh r1, [r0]
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_EraseWindowRect
+ bl debug_sub_81611D8
+ ldr r1, ._566 + 16 @ gMenuCallback
+ ldr r0, ._566 + 20 @ debug_sub_81612EC
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._567:
+ .align 2, 0
+._566:
+ .word _nakamuraData6
+ .word _nakamuraData8
+ .word _nakamuraDataC
+ .word _nakamuraDataA
+ .word gMenuCallback
+ .word debug_sub_81612EC+1
+
+ thumb_func_end DebugMenu_RandomNumberTest
+
+ .align 2, 0
+
+.endif
diff --git a/asm/nohara_debug_menu.s b/asm/nohara_debug_menu.s
new file mode 100644
index 000000000..003f34798
--- /dev/null
+++ b/asm/nohara_debug_menu.s
@@ -0,0 +1,2198 @@
+.if DEBUG
+
+ .include "constants/gba_constants.inc"
+ .include "include/macros.inc"
+
+ .text
+
+ thumb_func_start InitNoharaDebugMenu
+InitNoharaDebugMenu:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x13
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._1 @ gUnknown_Debug_083C4938
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x12
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._1 + 4 @ gMenuCallback
+ ldr r0, ._1 + 8 @ debug_sub_808F414
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._2:
+ .align 2, 0
+._1:
+ .word gUnknown_Debug_083C4938
+ .word gMenuCallback
+ .word debug_sub_808F414+1
+
+ thumb_func_end InitNoharaDebugMenu
+
+ thumb_func_start debug_sub_808F414
+debug_sub_808F414:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._3 @cond_branch
+ add r0, r0, #0x1
+ cmp r1, r0
+ beq ._4 @cond_branch
+ ldr r2, ._6 @ gMenuCallback
+ ldr r0, ._6 + 4 @ gUnknown_Debug_083C4938
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+._3:
+ mov r0, #0x0
+ b ._5
+._7:
+ .align 2, 0
+._6:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C4938
+._4:
+ bl CloseMenu
+ mov r0, #0x1
+._5:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808F414
+
+ thumb_func_start NoharaDebugMenu_TV
+NoharaDebugMenu_TV:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ ldr r1, ._8 @ gDebug_03000726
+ mov r0, #0x0
+ strb r0, [r1]
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xa
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._8 + 4 @ gUnknown_Debug_083C4B8C
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x9
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._8 + 8 @ gMenuCallback
+ ldr r0, ._8 + 12 @ debug_sub_808F4AC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._9:
+ .align 2, 0
+._8:
+ .word gDebug_03000726
+ .word gUnknown_Debug_083C4B8C
+ .word gMenuCallback
+ .word debug_sub_808F4AC+1
+
+ thumb_func_end NoharaDebugMenu_TV
+
+ thumb_func_start debug_sub_808F4AC
+debug_sub_808F4AC:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._10 @cond_branch
+ add r0, r0, #0x1
+ cmp r1, r0
+ beq ._11 @cond_branch
+ ldr r2, ._13 @ gMenuCallback
+ ldr r0, ._13 + 4 @ gUnknown_Debug_083C4B8C
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+._10:
+ mov r0, #0x0
+ b ._12
+._14:
+ .align 2, 0
+._13:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C4B8C
+._11:
+ bl CloseMenu
+ mov r0, #0x1
+._12:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808F4AC
+
+ thumb_func_start debug_sub_808F4EC
+debug_sub_808F4EC:
+ push {lr}
+ bl debug_sub_808F6BC
+ ldr r0, ._15 @ gUnknown_Debug_083C4980
+ bl sub_8071F40
+ mov r0, #0x3
+ mov r1, #0x3
+ mov r2, #0x1
+ bl DisplayYesNoMenu
+ ldr r1, ._15 + 4 @ gMenuCallback
+ ldr r0, ._15 + 8 @ debug_sub_808F648
+ str r0, [r1]
+ pop {r0}
+ bx r0
+._16:
+ .align 2, 0
+._15:
+ .word gUnknown_Debug_083C4980
+ .word gMenuCallback
+ .word debug_sub_808F648+1
+
+ thumb_func_end debug_sub_808F4EC
+
+ thumb_func_start debug_sub_808F518
+debug_sub_808F518:
+ push {r4, lr}
+ mov r2, #0x0
+ ldr r4, ._20 @ gSaveBlock1
+ ldr r3, ._20 + 4 @ 0x2738
+._19:
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ lsl r0, r0, #0x2
+ add r1, r0, r4
+ add r0, r1, r3
+ ldrb r0, [r0]
+ sub r0, r0, #0x15
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x13
+ bhi ._18 @cond_branch
+ ldr r0, ._20 + 8 @ 0x2739
+ add r1, r1, r0
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._18 @cond_branch
+ mov r0, #0x1
+ strb r0, [r1]
+._18:
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x17
+ bls ._19 @cond_branch
+ pop {r4}
+ pop {r0}
+ bx r0
+._21:
+ .align 2, 0
+._20:
+ .word gSaveBlock1
+ .word 0x2738
+ .word 0x2739
+
+ thumb_func_end debug_sub_808F518
+
+ thumb_func_start debug_sub_808F560
+debug_sub_808F560:
+ push {r4, lr}
+ mov r1, #0x0
+ ldr r4, ._23 @ gSaveBlock1
+ ldr r3, ._23 + 4 @ 0x2739
+ mov r2, #0x0
+._22:
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r4
+ add r0, r0, r3
+ strb r2, [r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x17
+ bls ._22 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+._24:
+ .align 2, 0
+._23:
+ .word gSaveBlock1
+ .word 0x2739
+
+ thumb_func_end debug_sub_808F560
+
+ thumb_func_start debug_sub_808F594
+debug_sub_808F594:
+ push {r4, r5, r6, lr}
+ mov r2, #0x0
+ ldr r6, ._27 @ gSaveBlock1
+ ldr r5, ._27 + 4 @ 0x2738
+ ldr r4, ._27 + 8 @ 0x2739
+ mov r3, #0x1
+._26:
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ lsl r0, r0, #0x2
+ add r1, r0, r6
+ add r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._25 @cond_branch
+ add r0, r1, r4
+ strb r3, [r0]
+._25:
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x17
+ bls ._26 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._28:
+ .align 2, 0
+._27:
+ .word gSaveBlock1
+ .word 0x2738
+ .word 0x2739
+
+ thumb_func_end debug_sub_808F594
+
+ thumb_func_start debug_sub_808F5D8
+debug_sub_808F5D8:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ mov r4, #0x0
+ ldr r6, ._30 @ gStringVar1
+ ldr r7, ._30 + 4 @ gUnknown_Debug_083C4BD4
+ add r0, r7, #1
+ mov r8, r0
+._29:
+ ldr r5, ._30 + 8 @ gSpecialVar_0x8004
+ strh r4, [r5]
+ bl GetSlotMachineId
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r6, #0
+ mov r2, #0x0
+ mov r3, #0x1
+ bl ConvertIntToDecimalStringN
+ lsl r0, r4, #0x1
+ add r0, r0, r4
+ lsl r0, r0, #0x2
+ add r1, r0, r7
+ ldrb r1, [r1]
+ add r0, r0, r8
+ ldrb r2, [r0]
+ add r0, r6, #0
+ bl Menu_PrintText
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xb
+ bls ._29 @cond_branch
+ mov r0, #0x0
+ strh r0, [r5]
+ ldr r1, ._30 + 12 @ gMenuCallback
+ ldr r0, ._30 + 16 @ debug_sub_8090278
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._31:
+ .align 2, 0
+._30:
+ .word gStringVar1
+ .word gUnknown_Debug_083C4BD4
+ .word gSpecialVar_0x8004
+ .word gMenuCallback
+ .word debug_sub_8090278+1
+
+ thumb_func_end debug_sub_808F5D8
+
+ thumb_func_start debug_sub_808F648
+debug_sub_808F648:
+ push {lr}
+ ldr r0, ._35 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._32 @cond_branch
+ mov r0, #0xa
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_EraseWindowRect
+ ldr r0, ._35 + 4 @ gDebug_03000726
+ ldrb r1, [r0]
+ mov r2, #0x1
+ eor r1, r1, r2
+ strb r1, [r0]
+ cmp r1, #0
+ beq ._33 @cond_branch
+ bl debug_sub_808F7B4
+ b ._40
+._36:
+ .align 2, 0
+._35:
+ .word gMain
+ .word gDebug_03000726
+._33:
+ bl debug_sub_808F6BC
+ b ._40
+._32:
+ bl Menu_ProcessInputNoWrap_
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._43 @cond_branch
+ cmp r1, r0
+ bgt ._39 @cond_branch
+ sub r0, r0, #0x1
+ cmp r1, r0
+ beq ._40 @cond_branch
+ b ._43
+._39:
+ cmp r1, #0
+ beq ._42 @cond_branch
+ b ._43
+._40:
+ mov r0, #0x0
+ b ._44
+._42:
+ bl debug_sub_808F518
+._43:
+ bl CloseMenu
+ mov r0, #0x1
+._44:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808F648
+
+ thumb_func_start debug_sub_808F6BC
+debug_sub_808F6BC:
+ push {r4, r5, r6, lr}
+ mov r4, #0x0
+ ldr r5, ._48 @ gStringVar1
+ ldr r6, ._48 + 4 @ gSaveBlock1
+._45:
+ lsl r0, r4, #0x3
+ add r0, r0, r4
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldr r1, ._48 + 8 @ 0x2738
+ add r0, r0, r1
+ ldrb r1, [r0]
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ lsl r1, r4, #0x19
+ mov r0, #0xa0
+ lsl r0, r0, #0x14
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x0
+ bl Menu_PrintText
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ bls ._45 @cond_branch
+ mov r4, #0x5
+ ldr r5, ._48 @ gStringVar1
+ ldr r6, ._48 + 4 @ gSaveBlock1
+._50:
+ lsl r0, r4, #0x3
+ add r0, r0, r4
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldr r1, ._48 + 8 @ 0x2738
+ add r0, r0, r1
+ ldrb r1, [r0]
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ cmp r4, #0xe
+ bhi ._46 @cond_branch
+ lsl r1, r4, #0x19
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x3
+ bl Menu_PrintText
+ b ._47
+._49:
+ .align 2, 0
+._48:
+ .word gStringVar1
+ .word gSaveBlock1
+ .word 0x2738
+._46:
+ lsl r1, r4, #0x19
+ mov r0, #0xec
+ lsl r0, r0, #0x18
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x6
+ bl Menu_PrintText
+._47:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x17
+ bls ._50 @cond_branch
+ mov r4, #0x0
+ ldr r5, ._53 @ gStringVar1
+._55:
+ ldr r0, ._53 + 4 @ gSaveBlock1
+ lsl r1, r4, #0x2
+ add r1, r1, r0
+ ldr r0, ._53 + 8 @ 0x2abc
+ add r1, r1, r0
+ ldrb r1, [r1]
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ cmp r4, #0x7
+ bhi ._51 @cond_branch
+ lsl r1, r4, #0x19
+ mov r0, #0xa0
+ lsl r0, r0, #0x14
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x9
+ bl Menu_PrintText
+ b ._52
+._54:
+ .align 2, 0
+._53:
+ .word gStringVar1
+ .word gSaveBlock1
+ .word 0x2abc
+._51:
+ lsl r1, r4, #0x19
+ mov r0, #0xfa
+ lsl r0, r0, #0x18
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0xc
+ bl Menu_PrintText
+._52:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xf
+ bls ._55 @cond_branch
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808F6BC
+
+ thumb_func_start debug_sub_808F7B4
+debug_sub_808F7B4:
+ push {r4, r5, r6, lr}
+ mov r4, #0x0
+ ldr r5, ._59 @ gStringVar1
+ ldr r6, ._59 + 4 @ gSaveBlock1
+._56:
+ lsl r0, r4, #0x3
+ add r0, r0, r4
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldr r1, ._59 + 8 @ 0x2739
+ add r0, r0, r1
+ ldrb r1, [r0]
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ lsl r1, r4, #0x19
+ mov r0, #0xa0
+ lsl r0, r0, #0x14
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x0
+ bl Menu_PrintText
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ bls ._56 @cond_branch
+ mov r4, #0x5
+ ldr r5, ._59 @ gStringVar1
+ ldr r6, ._59 + 4 @ gSaveBlock1
+._61:
+ lsl r0, r4, #0x3
+ add r0, r0, r4
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldr r1, ._59 + 8 @ 0x2739
+ add r0, r0, r1
+ ldrb r1, [r0]
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ cmp r4, #0xe
+ bhi ._57 @cond_branch
+ lsl r1, r4, #0x19
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x3
+ bl Menu_PrintText
+ b ._58
+._60:
+ .align 2, 0
+._59:
+ .word gStringVar1
+ .word gSaveBlock1
+ .word 0x2739
+._57:
+ lsl r1, r4, #0x19
+ mov r0, #0xec
+ lsl r0, r0, #0x18
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x6
+ bl Menu_PrintText
+._58:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x17
+ bls ._61 @cond_branch
+ mov r4, #0x0
+ ldr r5, ._64 @ gStringVar1
+._66:
+ ldr r0, ._64 + 4 @ gSaveBlock1
+ lsl r1, r4, #0x2
+ add r1, r1, r0
+ ldr r0, ._64 + 8 @ 0x2abd
+ add r1, r1, r0
+ ldrb r1, [r1]
+ add r0, r5, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ cmp r4, #0x7
+ bhi ._62 @cond_branch
+ lsl r1, r4, #0x19
+ mov r0, #0xa0
+ lsl r0, r0, #0x14
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0x9
+ bl Menu_PrintText
+ b ._63
+._65:
+ .align 2, 0
+._64:
+ .word gStringVar1
+ .word gSaveBlock1
+ .word 0x2abd
+._62:
+ lsl r1, r4, #0x19
+ mov r0, #0xfa
+ lsl r0, r0, #0x18
+ add r1, r1, r0
+ lsr r1, r1, #0x18
+ add r0, r5, #0
+ mov r2, #0xc
+ bl Menu_PrintText
+._63:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xf
+ bls ._66 @cond_branch
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808F7B4
+
+ thumb_func_start debug_sub_808F8AC
+debug_sub_808F8AC:
+ push {lr}
+ ldr r0, ._67 @ 0x832
+ bl FlagSet
+ ldr r0, ._67 + 4 @ 0x818
+ bl FlagSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._68:
+ .align 2, 0
+._67:
+ .word 0x832
+ .word 0x818
+
+ thumb_func_end debug_sub_808F8AC
+
+ thumb_func_start debug_sub_808F8CC
+debug_sub_808F8CC:
+ push {r4, lr}
+ ldr r1, ._69 @ gDebug_03000724
+ mov r0, #0x0
+ strb r0, [r1]
+ ldr r0, ._69 + 4 @ gUnknown_Debug_083C49CA
+ bl sub_8071F40
+ mov r0, #0xd
+ mov r1, #0x6
+ mov r2, #0x1a
+ mov r3, #0x8
+ bl Menu_BlankWindowRect
+ ldr r0, ._69 + 8 @ gUnknown_Debug_083C4ABD
+ ldr r0, [r0]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl Menu_PrintText
+ mov r0, #0x16
+ mov r1, #0x1
+ mov r2, #0x18
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ ldr r4, ._69 + 12 @ gStringVar1
+ add r0, r4, #0
+ mov r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x17
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r1, ._69 + 16 @ gMenuCallback
+ ldr r0, ._69 + 20 @ debug_sub_808F93C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+._70:
+ .align 2, 0
+._69:
+ .word gDebug_03000724
+ .word gUnknown_Debug_083C49CA
+ .word gUnknown_Debug_083C4ABD+0xf
+ .word gStringVar1
+ .word gMenuCallback
+ .word debug_sub_808F93C+1
+
+ thumb_func_end debug_sub_808F8CC
+
+ thumb_func_start debug_sub_808F93C
+debug_sub_808F93C:
+ push {r4, lr}
+ mov r2, #0x0
+ ldr r0, ._83 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._71 @cond_branch
+ ldr r1, ._83 + 4 @ gDebug_03000725
+ ldrb r0, [r1]
+ add r0, r0, #0x1
+ strb r0, [r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x18
+ bne ._72 @cond_branch
+ strb r2, [r1]
+._72:
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._71:
+ ldr r0, ._83 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._73 @cond_branch
+ ldr r1, ._83 + 4 @ gDebug_03000725
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._74 @cond_branch
+ mov r0, #0x18
+ strb r0, [r1]
+._74:
+ ldrb r0, [r1]
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._73:
+ ldr r0, ._83 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._75 @cond_branch
+ ldr r1, ._83 + 8 @ gDebug_03000724
+ ldrb r0, [r1]
+ add r0, r0, #0x1
+ strb r0, [r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xc
+ bne ._76 @cond_branch
+ mov r0, #0x0
+ strb r0, [r1]
+._76:
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._75:
+ ldr r0, ._83 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._77 @cond_branch
+ ldr r1, ._83 + 8 @ gDebug_03000724
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._78 @cond_branch
+ mov r0, #0xc
+ strb r0, [r1]
+._78:
+ ldrb r0, [r1]
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._77:
+ cmp r2, #0
+ beq ._79 @cond_branch
+ mov r0, #0xd
+ mov r1, #0x6
+ mov r2, #0x1a
+ mov r3, #0x8
+ bl Menu_BlankWindowRect
+ ldr r1, ._83 + 12 @ gUnknown_Debug_083C4ABD
+ ldr r0, ._83 + 8 @ gDebug_03000724
+ ldrb r0, [r0]
+ lsl r0, r0, #0x2
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl Menu_PrintText
+ mov r0, #0x16
+ mov r1, #0x1
+ mov r2, #0x18
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ ldr r4, ._83 + 16 @ gStringVar1
+ ldr r0, ._83 + 4 @ gDebug_03000725
+ ldrb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x17
+ mov r2, #0x1
+ bl Menu_PrintText
+._79:
+ ldr r4, ._83 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._80 @cond_branch
+ mov r0, #0x15
+ bl PlaySE
+ ldr r0, ._83 + 4 @ gDebug_03000725
+ ldrb r0, [r0]
+ ldr r2, ._83 + 20 @ gUnknown_Debug_083C4ABD
+ ldr r1, ._83 + 8 @ gDebug_03000724
+ ldrb r1, [r1]
+ add r1, r1, r2
+ ldrb r1, [r1]
+ bl debug_sub_808FA88
+._80:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._81 @cond_branch
+ mov r0, #0x0
+ b ._82
+._84:
+ .align 2, 0
+._83:
+ .word gMain
+ .word gDebug_03000725
+ .word gDebug_03000724
+ .word gUnknown_Debug_083C4ABD+0xf
+ .word gStringVar1
+ .word gUnknown_Debug_083C4ABD
+._81:
+ ldr r0, ._85 @ gSaveBlock1
+ bl sub_80BF588
+ bl CloseMenu
+ mov r0, #0x1
+._82:
+ pop {r4}
+ pop {r1}
+ bx r1
+._86:
+ .align 2, 0
+._85:
+ .word gSaveBlock1+0x2738
+
+ thumb_func_end debug_sub_808F93C
+
+ thumb_func_start debug_sub_808FA88
+debug_sub_808FA88:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ add sp, sp, #0xffffffcc
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r7, r1, #0x18
+ bl GetLeadMonIndex
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r9, r0
+ ldr r3, ._92 @ gSaveBlock1
+ lsl r4, r6, #0x3
+ add r2, r4, r6
+ lsl r2, r2, #0x2
+ add r0, r2, r3
+ ldr r5, ._92 + 4 @ 0x2738
+ add r1, r0, r5
+ strb r7, [r1]
+ ldr r1, ._92 + 8 @ 0x2739
+ add r0, r0, r1
+ mov r1, #0x1
+ strb r1, [r0]
+ mov r1, #0x0
+ ldr r0, ._92 + 12 @ 0x273a
+ add r5, r3, r0
+ mov r3, #0x1
+._87:
+ add r0, r1, r2
+ add r0, r0, r5
+ strb r3, [r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x21
+ bls ._87 @cond_branch
+ add r0, r7, #0
+ bl GetTVChannelByShowType
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r0, #0
+ cmp r0, #0x3
+ beq ._88 @cond_branch
+ cmp r0, #0x3
+ bgt ._89 @cond_branch
+ cmp r0, #0x2
+ beq ._90 @cond_branch
+ b ._95
+._93:
+ .align 2, 0
+._92:
+ .word gSaveBlock1
+ .word 0x2738
+ .word 0x2739
+ .word 0x273a
+._89:
+ cmp r1, #0x4
+ bne ._95 @cond_branch
+._90:
+ add r0, r4, r6
+ lsl r0, r0, #0x2
+ ldr r1, ._96 @ gSaveBlock1
+ add r0, r0, r1
+ bl sub_80BE160
+ b ._95
+._97:
+ .align 2, 0
+._96:
+ .word gSaveBlock1+0x2738
+._88:
+ add r0, r4, r6
+ lsl r0, r0, #0x2
+ ldr r1, ._100 @ gSaveBlock1
+ add r0, r0, r1
+ bl sub_80BE138
+._95:
+ sub r0, r7, #1
+ cmp r0, #0x28
+ bls ._98 @cond_branch
+ b ._173
+._98:
+ lsl r0, r0, #0x2
+ ldr r1, ._100 + 4 @
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+._101:
+ .align 2, 0
+._100:
+ .word gSaveBlock1+0x2738
+ .word ._102
+._102:
+ .word ._104
+ .word ._104
+ .word ._105
+ .word ._173
+ .word ._107
+ .word ._108
+ .word ._109
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._123
+ .word ._124
+ .word ._125
+ .word ._126
+ .word ._127
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._173
+ .word ._143
+._104:
+ add r0, r4, r6
+ lsl r0, r0, #0x2
+ ldr r1, ._145 @ gSaveBlock1
+ add r4, r0, r1
+ mov r2, #0x1
+ strh r2, [r4, #0x2]
+ add r1, r1, #0x10
+ add r0, r0, r1
+ ldr r1, ._145 + 4 @ gSaveBlock2
+ bl StringCopy
+ mov r0, #0x5
+ strb r0, [r4, #0x18]
+ b ._173
+._146:
+ .align 2, 0
+._145:
+ .word gSaveBlock1+0x2738
+ .word gSaveBlock2
+._105:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r6, ._148 @ gSaveBlock1
+ add r1, r4, r6
+ mov r8, r1
+ mov r0, #0x1
+ strh r0, [r1, #0x2]
+ add r0, r6, #5
+ add r0, r4, r0
+ ldr r1, ._148 + 4 @ gSaveBlock2
+ bl StringCopy
+ mov r0, #0x64
+ mov r5, r9
+ mul r5, r5, r0
+ ldr r0, ._148 + 8 @ gPlayerParty
+ add r5, r5, r0
+ add r6, r6, #0x10
+ add r4, r4, r6
+ add r0, r5, #0
+ mov r1, #0x2
+ add r2, r4, #0
+ bl GetMonData
+ mov r0, #0x5
+ mov r1, r8
+ strb r0, [r1, #0xd]
+ add r0, r5, #0
+ mov r1, #0x3
+ bl GetMonData
+ mov r5, r8
+ strb r0, [r5, #0xe]
+ b ._173
+._149:
+ .align 2, 0
+._148:
+ .word gSaveBlock1+0x2738
+ .word gSaveBlock2
+ .word gPlayerParty
+._107:
+ mov r0, #0x64
+ mov r1, r9
+ mul r1, r1, r0
+ mov r8, r1
+ ldr r0, ._151 @ gPlayerParty
+ add r8, r8, r0
+ mov r0, r8
+ mov r1, #0xb
+ bl GetMonData
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r5, ._151 + 4 @ gSaveBlock1
+ add r6, r4, r5
+ strh r0, [r6, #0x2]
+ mov r0, #0x1
+ strh r0, [r6, #0x1c]
+ add r0, r5, #0
+ add r0, r0, #0xf
+ add r0, r4, r0
+ ldr r1, ._151 + 8 @ gSaveBlock2
+ bl StringCopy
+ add r5, r5, #0x4
+ add r4, r4, r5
+ mov r0, r8
+ mov r1, #0x2
+ add r2, r4, #0
+ bl GetMonData
+ mov r0, #0x5
+ strb r0, [r6, #0x1e]
+ mov r0, r8
+ mov r1, #0x3
+ bl GetMonData
+ strb r0, [r6, #0x1f]
+ b ._173
+._152:
+ .align 2, 0
+._151:
+ .word gPlayerParty
+ .word gSaveBlock1+0x2738
+ .word gSaveBlock2
+._108:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r6, ._154 @ gSaveBlock1
+ add r5, r4, r6
+ mov r8, r5
+ mov r0, #0x1
+ strh r0, [r5, #0x2]
+ add r0, r6, #0
+ add r0, r0, #0x16
+ add r0, r4, r0
+ ldr r1, ._154 + 4 @ gSaveBlock2
+ bl StringCopy
+ mov r0, #0x64
+ mov r5, r9
+ mul r5, r5, r0
+ ldr r0, ._154 + 8 @ gPlayerParty
+ add r5, r5, r0
+ add r6, r6, #0x8
+ add r4, r4, r6
+ add r0, r5, #0
+ mov r1, #0x2
+ add r2, r4, #0
+ bl GetMonData
+ mov r0, #0x5
+ mov r1, r8
+ strb r0, [r1, #0x1e]
+ add r0, r5, #0
+ mov r1, #0x3
+ bl GetMonData
+ mov r5, r8
+ strb r0, [r5, #0x1f]
+ b ._173
+._155:
+ .align 2, 0
+._154:
+ .word gSaveBlock1+0x2738
+ .word gSaveBlock2
+ .word gPlayerParty
+._109:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r5, ._157 @ gSaveBlock1
+ add r6, r4, r5
+ mov r0, #0x1
+ strh r0, [r6, #0xa]
+ strh r0, [r6, #0x14]
+ add r0, r5, #2
+ add r0, r4, r0
+ ldr r1, ._157 + 4 @ gSaveBlock2
+ mov r8, r1
+ bl StringCopy
+ add r5, r5, #0xc
+ add r4, r4, r5
+ add r0, r4, #0
+ mov r1, r8
+ bl StringCopy
+ mov r0, #0x5
+ strb r0, [r6, #0x1d]
+ b ._173
+._158:
+ .align 2, 0
+._157:
+ .word gSaveBlock1+0x2738
+ .word gSaveBlock2
+._143:
+ add r0, r4, r6
+ lsl r0, r0, #0x2
+ ldr r1, ._160 @ gSaveBlock1
+ add r0, r0, r1
+ mov r1, #0x1
+ strh r1, [r0, #0xc]
+ strh r1, [r0, #0x16]
+ b ._173
+._161:
+ .align 2, 0
+._160:
+ .word gSaveBlock1+0x2738
+._123:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r0, ._163 @ gSaveBlock1
+ add r4, r4, r0
+ ldr r1, ._163 + 4 @ gUnknown_Debug_083C4C64
+ mov r0, sp
+ mov r2, #0x8
+ bl memcpy
+ add r5, sp, #0x8
+ ldr r1, ._163 + 8 @ gUnknown_Debug_083C4C6C
+ add r0, r5, #0
+ mov r2, #0xb
+ bl memcpy
+ mov r0, #0xff
+ strb r0, [r4, #0x12]
+ add r0, r4, #0
+ add r0, r0, #0x13
+ mov r1, sp
+ bl StringCopy
+ add r0, r4, #4
+ add r1, r5, #0
+ bl StringCopy
+ mov r0, #0xc
+ strb r0, [r4, #0xf]
+ mov r0, #0x28
+ strh r0, [r4, #0x10]
+ mov r0, #0x5
+ strb r0, [r4, #0x2]
+ strb r0, [r4, #0x3]
+ b ._173
+._164:
+ .align 2, 0
+._163:
+ .word gSaveBlock1+0x2738
+ .word gUnknown_Debug_083C4C64
+ .word gUnknown_Debug_083C4C6C
+._124:
+ add r0, r4, r6
+ lsl r0, r0, #0x2
+ ldr r1, ._168 @ gSaveBlock1
+ add r5, r0, r1
+ add r4, sp, #0x14
+ ldr r1, ._168 + 4 @ gUnknown_Debug_083C4C64
+ add r0, r4, #0
+ mov r2, #0x8
+ bl memcpy
+ add r1, r4, #0
+ mov r3, #0xfe
+ mov r2, #0x2
+ add r0, r5, #0
+ add r0, r0, #0x10
+._165:
+ strh r3, [r0]
+ sub r0, r0, #0x2
+ sub r2, r2, #0x1
+ cmp r2, #0
+ bge ._165 @cond_branch
+ mov r0, #0x1
+ strb r0, [r5, #0x2]
+ mov r0, #0x28
+ strb r0, [r5, #0x12]
+ add r0, r5, #0
+ add r0, r0, #0x13
+ add r3, r5, #6
+ mov r6, #0x1e
+ add r2, r5, #0
+ add r2, r2, #0xa
+._166:
+ strh r6, [r2]
+ sub r2, r2, #0x2
+ cmp r2, r3
+ bge ._166 @cond_branch
+ bl StringCopy
+ mov r0, #0x5
+ strb r0, [r5, #0x3]
+ b ._173
+._169:
+ .align 2, 0
+._168:
+ .word gSaveBlock1+0x2738
+ .word gUnknown_Debug_083C4C64
+._125:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r0, ._171 @ gSaveBlock1
+ add r4, r4, r0
+ add r5, sp, #0x1c
+ ldr r1, ._171 + 4 @ gUnknown_Debug_083C4C64
+ add r0, r5, #0
+ mov r2, #0x8
+ bl memcpy
+ mov r0, #0x28
+ strh r0, [r4, #0xc]
+ strh r0, [r4, #0xe]
+ mov r0, #0x3
+ strb r0, [r4, #0x12]
+ mov r0, #0xff
+ strb r0, [r4, #0x10]
+ mov r0, #0x1
+ strb r0, [r4, #0x11]
+ add r0, r4, #0
+ add r0, r0, #0x13
+ add r1, r5, #0
+ bl StringCopy
+ mov r0, #0x5
+ strb r0, [r4, #0x2]
+ b ._173
+._172:
+ .align 2, 0
+._171:
+ .word gSaveBlock1+0x2738
+ .word gUnknown_Debug_083C4C64
+._126:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r0, ._174 @ gSaveBlock1
+ add r4, r4, r0
+ add r5, sp, #0x24
+ ldr r1, ._174 + 4 @ gUnknown_Debug_083C4C64
+ add r0, r5, #0
+ mov r2, #0x8
+ bl memcpy
+ mov r0, #0xff
+ strb r0, [r4, #0x2]
+ mov r0, #0x0
+ strb r0, [r4, #0x3]
+ mov r0, #0x28
+ strh r0, [r4, #0x4]
+ add r0, r4, #0
+ add r0, r0, #0x13
+ add r1, r5, #0
+ bl StringCopy
+ mov r0, #0x5
+ strb r0, [r4, #0x6]
+ b ._173
+._175:
+ .align 2, 0
+._174:
+ .word gSaveBlock1+0x2738
+ .word gUnknown_Debug_083C4C64
+._127:
+ add r4, r4, r6
+ lsl r4, r4, #0x2
+ ldr r0, ._176 @ gSaveBlock1
+ add r4, r4, r0
+ add r5, sp, #0x2c
+ ldr r1, ._176 + 4 @ gUnknown_Debug_083C4C64
+ add r0, r5, #0
+ mov r2, #0x8
+ bl memcpy
+ ldr r0, ._176 + 8 @ 0xffff
+ strh r0, [r4, #0x2]
+ mov r0, #0x1
+ neg r0, r0
+ strh r0, [r4, #0x6]
+ mov r0, #0x28
+ strh r0, [r4, #0x4]
+ strh r0, [r4, #0x8]
+ mov r0, #0x3
+ strb r0, [r4, #0xa]
+ add r0, r4, #0
+ add r0, r0, #0x13
+ add r1, r5, #0
+ bl StringCopy
+ mov r0, #0x5
+ strb r0, [r4, #0xb]
+._173:
+ add sp, sp, #0x34
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._177:
+ .align 2, 0
+._176:
+ .word gSaveBlock1+0x2738
+ .word gUnknown_Debug_083C4C64
+ .word 0xffff
+
+ thumb_func_end debug_sub_808FA88
+
+ thumb_func_start debug_sub_808FEBC
+debug_sub_808FEBC:
+ push {lr}
+ bl ClearTVShowData
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808FEBC
+
+ thumb_func_start debug_sub_808FECC
+debug_sub_808FECC:
+ push {r4, lr}
+ ldr r1, ._178 @ gDebug_03000724
+ mov r0, #0x0
+ strb r0, [r1]
+ ldr r0, ._178 + 4 @ gUnknown_Debug_083C49CA
+ bl sub_8071F40
+ mov r0, #0xd
+ mov r1, #0x6
+ mov r2, #0x17
+ mov r3, #0x8
+ bl Menu_BlankWindowRect
+ ldr r0, ._178 + 8 @ gUnknown_Debug_083C4B20
+ ldr r0, [r0]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl Menu_PrintText
+ mov r0, #0x16
+ mov r1, #0x1
+ mov r2, #0x18
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ ldr r4, ._178 + 12 @ gStringVar1
+ add r0, r4, #0
+ mov r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x17
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r1, ._178 + 16 @ gMenuCallback
+ ldr r0, ._178 + 20 @ debug_sub_808FF3C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+._179:
+ .align 2, 0
+._178:
+ .word gDebug_03000724
+ .word gUnknown_Debug_083C49CA
+ .word gUnknown_Debug_083C4B20+0x4
+ .word gStringVar1
+ .word gMenuCallback
+ .word debug_sub_808FF3C+1
+
+ thumb_func_end debug_sub_808FECC
+
+ thumb_func_start debug_sub_808FF3C
+debug_sub_808FF3C:
+ push {r4, lr}
+ mov r2, #0x0
+ ldr r0, ._192 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._180 @cond_branch
+ ldr r1, ._192 + 4 @ gDebug_03000725
+ ldrb r0, [r1]
+ add r0, r0, #0x1
+ strb r0, [r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x10
+ bne ._181 @cond_branch
+ strb r2, [r1]
+._181:
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._180:
+ ldr r0, ._192 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._182 @cond_branch
+ ldr r1, ._192 + 4 @ gDebug_03000725
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._183 @cond_branch
+ mov r0, #0x10
+ strb r0, [r1]
+._183:
+ ldrb r0, [r1]
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._182:
+ ldr r0, ._192 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._184 @cond_branch
+ ldr r1, ._192 + 8 @ gDebug_03000724
+ ldrb r0, [r1]
+ add r0, r0, #0x1
+ strb r0, [r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x3
+ bne ._185 @cond_branch
+ mov r0, #0x0
+ strb r0, [r1]
+._185:
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._184:
+ ldr r0, ._192 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._186 @cond_branch
+ ldr r1, ._192 + 8 @ gDebug_03000724
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._187 @cond_branch
+ mov r0, #0x3
+ strb r0, [r1]
+._187:
+ ldrb r0, [r1]
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ mov r0, #0x5
+ bl PlaySE
+ mov r2, #0x1
+._186:
+ cmp r2, #0
+ beq ._188 @cond_branch
+ mov r0, #0xd
+ mov r1, #0x6
+ mov r2, #0x17
+ mov r3, #0x8
+ bl Menu_BlankWindowRect
+ ldr r1, ._192 + 12 @ gUnknown_Debug_083C4B20
+ ldr r0, ._192 + 8 @ gDebug_03000724
+ ldrb r0, [r0]
+ lsl r0, r0, #0x2
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl Menu_PrintText
+ mov r0, #0x16
+ mov r1, #0x1
+ mov r2, #0x18
+ mov r3, #0x2
+ bl Menu_BlankWindowRect
+ ldr r4, ._192 + 16 @ gStringVar1
+ ldr r0, ._192 + 4 @ gDebug_03000725
+ ldrb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x17
+ mov r2, #0x1
+ bl Menu_PrintText
+._188:
+ ldr r4, ._192 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._189 @cond_branch
+ mov r0, #0x15
+ bl PlaySE
+ ldr r0, ._192 + 4 @ gDebug_03000725
+ ldrb r0, [r0]
+ ldr r2, ._192 + 20 @ gUnknown_Debug_083C4B20
+ ldr r1, ._192 + 8 @ gDebug_03000724
+ ldrb r1, [r1]
+ add r1, r1, r2
+ ldrb r1, [r1]
+ bl debug_sub_8090080
+._189:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._190 @cond_branch
+ mov r0, #0x0
+ b ._191
+._193:
+ .align 2, 0
+._192:
+ .word gMain
+ .word gDebug_03000725
+ .word gDebug_03000724
+ .word gUnknown_Debug_083C4B20+0x4
+ .word gStringVar1
+ .word gUnknown_Debug_083C4B20
+._190:
+ bl sub_80BEC40
+ bl CloseMenu
+ mov r0, #0x1
+._191:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808FF3C
+
+ thumb_func_start debug_sub_8090080
+debug_sub_8090080:
+ lsl r0, r0, #0x18
+ ldr r2, ._194 @ gSaveBlock1
+ lsr r0, r0, #0x16
+ add r0, r0, r2
+ ldr r3, ._194 + 4 @ 0x2abc
+ add r2, r0, r3
+ strb r1, [r2]
+ ldr r1, ._194 + 8 @ 0x2abd
+ add r2, r0, r1
+ mov r1, #0x1
+ strb r1, [r2]
+ add r3, r3, #0x2
+ add r0, r0, r3
+ mov r1, #0x4
+ strh r1, [r0]
+ bx lr
+._195:
+ .align 2, 0
+._194:
+ .word gSaveBlock1
+ .word 0x2abc
+ .word 0x2abd
+
+ thumb_func_end debug_sub_8090080
+
+ thumb_func_start debug_sub_80900AC
+debug_sub_80900AC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ mov r7, #0x0
+ mov r5, #0x0
+ ldr r0, ._202 @ gSaveBlock1
+ mov r8, r0
+._198:
+ lsl r0, r5, #0x3
+ add r0, r0, r5
+ lsl r0, r0, #0x2
+ mov r1, r8
+ add r6, r0, r1
+ ldr r1, ._202 + 4 @ 0x2738
+ add r0, r6, r1
+ ldrb r4, [r0]
+ cmp r4, #0
+ bne ._196 @cond_branch
+ cmp r7, #0xc
+ bne ._197 @cond_branch
+ mov r7, #0x0
+._197:
+ ldr r0, ._202 + 8 @ gUnknown_Debug_083C4ABD
+ add r0, r7, r0
+ ldrb r1, [r0]
+ add r0, r5, #0
+ bl debug_sub_808FA88
+ ldr r1, ._202 + 12 @ 0x2739
+ add r0, r6, r1
+ strb r4, [r0]
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._196:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x17
+ bls ._198 @cond_branch
+ mov r7, #0x0
+ mov r5, #0x0
+._201:
+ ldr r0, ._202 @ gSaveBlock1
+ lsl r1, r5, #0x2
+ add r1, r1, r0
+ ldr r0, ._202 + 16 @ 0x2abc
+ add r1, r1, r0
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._199 @cond_branch
+ cmp r7, #0x3
+ bne ._200 @cond_branch
+ mov r7, #0x0
+._200:
+ ldr r0, ._202 + 20 @ gUnknown_Debug_083C4B20
+ add r0, r7, r0
+ ldrb r1, [r0]
+ add r0, r5, #0
+ bl debug_sub_8090080
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._199:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0xf
+ bls ._201 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._203:
+ .align 2, 0
+._202:
+ .word gSaveBlock1
+ .word 0x2738
+ .word gUnknown_Debug_083C4ABD
+ .word 0x2739
+ .word 0x2abc
+ .word gUnknown_Debug_083C4B20
+
+ thumb_func_end debug_sub_80900AC
+
+ thumb_func_start NoharaDebugMenu_Fan
+NoharaDebugMenu_Fan:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xb
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._204 @ gUnknown_Debug_083C4D28
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._204 + 4 @ gMenuCallback
+ ldr r0, ._204 + 8 @ debug_sub_80901A4
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._205:
+ .align 2, 0
+._204:
+ .word gUnknown_Debug_083C4D28
+ .word gMenuCallback
+ .word debug_sub_80901A4+1
+
+ thumb_func_end NoharaDebugMenu_Fan
+
+ thumb_func_start debug_sub_80901A4
+debug_sub_80901A4:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._206 @cond_branch
+ add r0, r0, #0x1
+ cmp r1, r0
+ beq ._207 @cond_branch
+ ldr r2, ._209 @ gMenuCallback
+ ldr r0, ._209 + 4 @ gUnknown_Debug_083C4D28
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+._206:
+ mov r0, #0x0
+ b ._208
+._210:
+ .align 2, 0
+._209:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C4D28
+._207:
+ bl CloseMenu
+ mov r0, #0x1
+._208:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_80901A4
+
+ thumb_func_start debug_sub_80901E4
+debug_sub_80901E4:
+ push {lr}
+ bl ResetFanClub
+ bl sub_810FAA0
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_80901E4
+
+ thumb_func_start debug_sub_80901F8
+debug_sub_80901F8:
+ push {lr}
+ bl sub_810FB9C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._211 @ gUnknown_Debug_083C4CA8
+ ldr r1, ._211 + 4 @ gUnknown_083F8408
+ add r0, r0, r1
+ ldrb r0, [r0]
+ sub r0, r0, #0x8
+ lsl r0, r0, #0x2
+ add r0, r0, r2
+ ldr r0, [r0]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r1, ._211 + 8 @ gMenuCallback
+ ldr r0, ._211 + 12 @ debug_sub_8090278
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._212:
+ .align 2, 0
+._211:
+ .word gUnknown_Debug_083C4CA8
+ .word gUnknown_083F8408
+ .word gMenuCallback
+ .word debug_sub_8090278+1
+
+ thumb_func_end debug_sub_80901F8
+
+ thumb_func_start debug_sub_8090238
+debug_sub_8090238:
+ push {lr}
+ bl sub_810FC18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._213 @ gUnknown_Debug_083C4CA8
+ ldr r1, ._213 + 4 @ gUnknown_083F8410
+ add r0, r0, r1
+ ldrb r0, [r0]
+ sub r0, r0, #0x8
+ lsl r0, r0, #0x2
+ add r0, r0, r2
+ ldr r0, [r0]
+ mov r1, #0xe
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r1, ._213 + 8 @ gMenuCallback
+ ldr r0, ._213 + 12 @ debug_sub_8090278
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._214:
+ .align 2, 0
+._213:
+ .word gUnknown_Debug_083C4CA8
+ .word gUnknown_083F8410
+ .word gMenuCallback
+ .word debug_sub_8090278+1
+
+ thumb_func_end debug_sub_8090238
+
+ thumb_func_start debug_sub_8090278
+debug_sub_8090278:
+ push {lr}
+ ldr r0, ._217 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._215 @cond_branch
+ mov r0, #0x0
+ b ._216
+._218:
+ .align 2, 0
+._217:
+ .word gMain
+._215:
+ bl CloseMenu
+ mov r0, #0x1
+._216:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090278
+
+ thumb_func_start debug_sub_809029C
+debug_sub_809029C:
+ push {r4, lr}
+ ldr r4, ._219 @ gStringVar1
+ ldr r0, ._219 + 4 @ gSaveBlock1
+ ldr r1, ._219 + 8 @ 0x13c2
+ add r0, r0, r1
+ ldrh r0, [r0]
+ mov r1, #0x7f
+ and r1, r1, r0
+ add r0, r4, #0
+ mov r2, #0x0
+ mov r3, #0x2
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x10
+ mov r2, #0x7
+ bl Menu_PrintText
+ ldr r1, ._219 + 12 @ gMenuCallback
+ ldr r0, ._219 + 16 @ debug_sub_8090278
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r4}
+ pop {r1}
+ bx r1
+._220:
+ .align 2, 0
+._219:
+ .word gStringVar1
+ .word gSaveBlock1
+ .word 0x13c2
+ .word gMenuCallback
+ .word debug_sub_8090278+1
+
+ thumb_func_end debug_sub_809029C
+
+ thumb_func_start debug_sub_80902E4
+debug_sub_80902E4:
+ push {lr}
+ ldr r1, ._221 @ gSaveBlock2
+ ldrh r0, [r1, #0xe]
+ add r0, r0, #0x6
+ strh r0, [r1, #0xe]
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._222:
+ .align 2, 0
+._221:
+ .word gSaveBlock2
+
+ thumb_func_end debug_sub_80902E4
+
+ thumb_func_start debug_sub_80902FC
+debug_sub_80902FC:
+ push {lr}
+ mov r0, #0x0
+ bl sub_810FB10
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_80902FC
+
+ thumb_func_start debug_sub_8090310
+debug_sub_8090310:
+ push {lr}
+ mov r0, #0x1
+ bl sub_810FB10
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090310
+
+ thumb_func_start debug_sub_8090324
+debug_sub_8090324:
+ push {lr}
+ mov r0, #0x2
+ bl sub_810FB10
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090324
+
+ thumb_func_start debug_sub_8090338
+debug_sub_8090338:
+ push {lr}
+ mov r0, #0x3
+ bl sub_810FB10
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090338
+
+ thumb_func_start NoharaDebugMenu_BattleVSDad
+NoharaDebugMenu_BattleVSDad:
+ push {lr}
+ ldr r0, ._223 @ 0x4085
+ mov r1, #0x6
+ bl VarSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._224:
+ .align 2, 0
+._223:
+ .word 0x4085
+
+ thumb_func_end NoharaDebugMenu_BattleVSDad
+
+ thumb_func_start NoharaDebugMenu_DadAfterBattle
+NoharaDebugMenu_DadAfterBattle:
+ push {lr}
+ ldr r0, ._225 @ 0x4085
+ mov r1, #0x7
+ bl VarSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._226:
+ .align 2, 0
+._225:
+ .word 0x4085
+
+ thumb_func_end NoharaDebugMenu_DadAfterBattle
+
+ thumb_func_start NoharaDebugMenu_SootopolisCity
+NoharaDebugMenu_SootopolisCity:
+ push {lr}
+ mov r0, #0x81
+ bl FlagSet
+ mov r0, #0x71
+ bl FlagSet
+ ldr r0, ._227 @ 0x32f
+ bl FlagClear
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._228:
+ .align 2, 0
+._227:
+ .word 0x32f
+
+ thumb_func_end NoharaDebugMenu_SootopolisCity
+
+ thumb_func_start NoharaDebugMenu_Embark
+NoharaDebugMenu_Embark:
+ push {lr}
+ ldr r0, ._229 @ 0x2e3
+ bl FlagClear
+ ldr r0, ._229 + 4 @ 0x4090
+ mov r1, #0x1
+ bl VarSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._230:
+ .align 2, 0
+._229:
+ .word 0x2e3
+ .word 0x4090
+
+ thumb_func_end NoharaDebugMenu_Embark
+
+ thumb_func_start NoharaDebugMenu_Yes9999
+NoharaDebugMenu_Yes9999:
+ push {lr}
+ ldr r0, ._231 @ 0x4048
+ ldr r1, ._231 + 4 @ 0x270f
+ bl VarSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._232:
+ .align 2, 0
+._231:
+ .word 0x4048
+ .word 0x270f
+
+ thumb_func_end NoharaDebugMenu_Yes9999
+
+ thumb_func_start NoharaDebugMenu_LegendsFlagOn
+NoharaDebugMenu_LegendsFlagOn:
+ push {lr}
+ mov r0, #0xe4
+ bl FlagSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end NoharaDebugMenu_LegendsFlagOn
+
+ thumb_func_start NoharaDebugMenu_AddNumWinningStreaks
+NoharaDebugMenu_AddNumWinningStreaks:
+ push {lr}
+ ldr r0, ._235 @ gSaveBlock2
+ ldr r1, ._235 + 4 @ 0x572
+ add r2, r0, r1
+ ldrh r1, [r2]
+ cmp r1, #0x31
+ bhi ._233 @cond_branch
+ mov r0, #0x32
+ b ._244
+._236:
+ .align 2, 0
+._235:
+ .word gSaveBlock2
+ .word 0x572
+._233:
+ cmp r1, #0x63
+ bhi ._237 @cond_branch
+ mov r0, #0x64
+ b ._244
+._237:
+ ldr r0, ._241 @ 0x3e7
+ cmp r1, r0
+ bhi ._239 @cond_branch
+ add r0, r0, #0x1
+ b ._244
+._242:
+ .align 2, 0
+._241:
+ .word 0x3e7
+._239:
+ ldr r0, ._245 @ 0x1387
+ cmp r1, r0
+ bhi ._243 @cond_branch
+ ldr r0, ._245 + 4 @ 0x2706
+ b ._244
+._246:
+ .align 2, 0
+._245:
+ .word 0x1387
+ .word 0x2706
+._243:
+ ldr r0, ._248 @ 0x2705
+ cmp r1, r0
+ bhi ._247 @cond_branch
+ add r0, r0, #0xa
+._244:
+ strh r0, [r2]
+._247:
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._249:
+ .align 2, 0
+._248:
+ .word 0x2705
+
+ thumb_func_end NoharaDebugMenu_AddNumWinningStreaks
+
+ .align 2, 0
+
+.endif
diff --git a/asm/normal.s b/asm/normal.s
index a800b348a..fffbc3870 100755..100644
--- a/asm/normal.s
+++ b/asm/normal.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -1103,15 +1103,15 @@ _080E24F0:
beq _080E2508
b _080E2518
_080E24F6:
- ldr r1, _080E24FC @ =gUnknown_030041B0
+ ldr r1, _080E24FC @ =gBattle_BG3_X
b _080E250A
.align 2, 0
-_080E24FC: .4byte gUnknown_030041B0
+_080E24FC: .4byte gBattle_BG3_X
_080E2500:
- ldr r1, _080E2504 @ =gUnknown_030041B8
+ ldr r1, _080E2504 @ =gBattle_BG3_Y
b _080E250A
.align 2, 0
-_080E2504: .4byte gUnknown_030041B8
+_080E2504: .4byte gBattle_BG3_Y
_080E2508:
ldr r1, _080E2514 @ =gSpriteCoordOffsetX
_080E250A:
@@ -1359,10 +1359,10 @@ sub_80E26BC: @ 80E26BC
strh r1, [r2, 0xE]
ldrh r1, [r3, 0x6]
strh r1, [r2, 0x18]
- ldr r4, _080E2704 @ =gUnknown_030041B0
+ ldr r4, _080E2704 @ =gBattle_BG3_X
ldrh r1, [r3]
strh r1, [r4]
- ldr r4, _080E2708 @ =gUnknown_030041B8
+ ldr r4, _080E2708 @ =gBattle_BG3_Y
ldrh r1, [r3, 0x2]
strh r1, [r4]
ldr r1, _080E270C @ =sub_80E2710
@@ -1374,8 +1374,8 @@ sub_80E26BC: @ 80E26BC
.align 2, 0
_080E26FC: .4byte gTasks
_080E2700: .4byte gBattleAnimArgs
-_080E2704: .4byte gUnknown_030041B0
-_080E2708: .4byte gUnknown_030041B8
+_080E2704: .4byte gBattle_BG3_X
+_080E2708: .4byte gBattle_BG3_Y
_080E270C: .4byte sub_80E2710
thumb_func_end sub_80E26BC
@@ -1395,7 +1395,7 @@ sub_80E2710: @ 80E2710
mov r12, r1
cmp r0, 0
bne _080E2796
- ldr r0, _080E2744 @ =gUnknown_030041B0
+ ldr r0, _080E2744 @ =gBattle_BG3_X
ldrh r2, [r0]
movs r7, 0x8
ldrsh r1, [r3, r7]
@@ -1407,12 +1407,12 @@ sub_80E2710: @ 80E2710
b _080E274A
.align 2, 0
_080E2740: .4byte gTasks
-_080E2744: .4byte gUnknown_030041B0
+_080E2744: .4byte gBattle_BG3_X
_080E2748:
ldrh r0, [r3, 0x8]
_080E274A:
strh r0, [r6]
- ldr r2, _080E2768 @ =gUnknown_030041B8
+ ldr r2, _080E2768 @ =gBattle_BG3_Y
ldrh r3, [r2]
lsls r1, r5, 2
adds r0, r1, r5
@@ -1426,7 +1426,7 @@ _080E274A:
movs r0, 0
b _080E2770
.align 2, 0
-_080E2768: .4byte gUnknown_030041B8
+_080E2768: .4byte gBattle_BG3_Y
_080E276C:
ldrh r0, [r4, 0xA]
negs r0, r0
@@ -3905,13 +3905,13 @@ sub_80E3AD0: @ 80E3AD0
ldrh r7, [r1, 0x1E]
adds r2, r7
strh r2, [r1, 0x1E]
- ldr r6, _080E3B40 @ =gUnknown_030041B0
+ ldr r6, _080E3B40 @ =gBattle_BG3_X
lsls r0, r3, 16
asrs r0, 24
ldrh r4, [r6]
adds r0, r4
strh r0, [r6]
- ldr r4, _080E3B44 @ =gUnknown_030041B8
+ ldr r4, _080E3B44 @ =gBattle_BG3_Y
lsls r0, r2, 16
asrs r0, 24
ldrh r7, [r4]
@@ -3942,8 +3942,8 @@ _080E3B36:
bx r0
.align 2, 0
_080E3B3C: .4byte gTasks
-_080E3B40: .4byte gUnknown_030041B0
-_080E3B44: .4byte gUnknown_030041B8
+_080E3B40: .4byte gBattle_BG3_X
+_080E3B44: .4byte gBattle_BG3_Y
_080E3B48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3AD0
diff --git a/asm/pc_screen_effect.s b/asm/pc_screen_effect.s
index 665978d19..9d36df66c 100755..100644
--- a/asm/pc_screen_effect.s
+++ b/asm/pc_screen_effect.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
diff --git a/asm/poison.s b/asm/poison.s
deleted file mode 100755
index 234348df2..000000000
--- a/asm/poison.s
+++ /dev/null
@@ -1,364 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ poison
-
- thumb_func_start sub_80D9D70
-sub_80D9D70: @ 80D9D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9DC4 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D9D86
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080D9D86:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r4, _080D9DC8 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080D9DCC @ =0x0000ffe2
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080D9DD0 @ =sub_80D9DD4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9DC4: .4byte gBattleAnimArgs
-_080D9DC8: .4byte gAnimBankTarget
-_080D9DCC: .4byte 0x0000ffe2
-_080D9DD0: .4byte sub_80D9DD4
- thumb_func_end sub_80D9D70
-
- thumb_func_start sub_80D9DD4
-sub_80D9DD4: @ 80D9DD4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D9DE8
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080D9DE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9DD4
-
- thumb_func_start sub_80D9DF0
-sub_80D9DF0: @ 80D9DF0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r5, _080D9E64 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D9E08
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080D9E08:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D9E68 @ =gAnimBankTarget
- ldrb r0, [r0]
- mov r6, sp
- adds r6, 0x2
- movs r1, 0x1
- mov r2, sp
- adds r3, r6, 0
- bl sub_807A3FC
- ldr r0, _080D9E6C @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D9E36
- ldrh r0, [r5, 0x8]
- negs r0, r0
- strh r0, [r5, 0x8]
-_080D9E36:
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- mov r1, sp
- ldrh r0, [r5, 0x8]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r6, [r6]
- adds r0, r6
- strh r0, [r4, 0x36]
- ldr r0, _080D9E70 @ =0x0000ffe2
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080D9E74 @ =sub_80D9E78
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9E64: .4byte gBattleAnimArgs
-_080D9E68: .4byte gAnimBankTarget
-_080D9E6C: .4byte gAnimBankAttacker
-_080D9E70: .4byte 0x0000ffe2
-_080D9E74: .4byte sub_80D9E78
- thumb_func_end sub_80D9DF0
-
- thumb_func_start sub_80D9E78
-sub_80D9E78: @ 80D9E78
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D9E8C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080D9E8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9E78
-
- thumb_func_start sub_80D9E94
-sub_80D9E94: @ 80D9E94
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9EE0 @ =gBattleAnimArgs
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078A5C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x38]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x3A]
- ldr r0, _080D9EE4 @ =sub_80D9EE8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9EE0: .4byte gBattleAnimArgs
-_080D9EE4: .4byte sub_80D9EE8
- thumb_func_end sub_80D9E94
-
- thumb_func_start sub_80D9EE8
-sub_80D9EE8: @ 80D9EE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078394
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- subs r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D9F0E
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080D9F0E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9EE8
-
- thumb_func_start sub_80D9F14
-sub_80D9F14: @ 80D9F14
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D9F74 @ =gAnimBankTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D9F78 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D9F40
- ldr r1, _080D9F7C @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080D9F40:
- ldr r0, _080D9F7C @ =gBattleAnimArgs
- ldrh r2, [r0]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- ldrh r3, [r0, 0x8]
- strh r3, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- adds r2, r0
- strh r2, [r4, 0x32]
- adds r1, r3
- strh r1, [r4, 0x36]
- ldr r0, _080D9F80 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080D9F84 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9F74: .4byte gAnimBankTarget
-_080D9F78: .4byte gAnimBankAttacker
-_080D9F7C: .4byte gBattleAnimArgs
-_080D9F80: .4byte sub_8078B34
-_080D9F84: .4byte DestroyAnimSprite
- thumb_func_end sub_80D9F14
-
- thumb_func_start sub_80D9F88
-sub_80D9F88: @ 80D9F88
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9FA0 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D9FA4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D9FDA
- .align 2, 0
-_080D9FA0: .4byte gBattleAnimArgs
-_080D9FA4:
- ldr r0, _080D9FE4 @ =gAnimBankTarget
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D9FE8 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080D9FCA
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D9FCA:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D9FDA:
- ldr r0, _080D9FEC @ =sub_80D9FF0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9FE4: .4byte gAnimBankTarget
-_080D9FE8: .4byte gAnimBankAttacker
-_080D9FEC: .4byte sub_80D9FF0
- thumb_func_end sub_80D9F88
-
- thumb_func_start sub_80D9FF0
-sub_80D9FF0: @ 80D9FF0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DA02C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DA02C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9FF0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s
index fd5555524..779a5a0ed 100644
--- a/asm/pokedex_area_screen.s
+++ b/asm/pokedex_area_screen.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s
index 5eea28b99..00f8cfe14 100644
--- a/asm/pokedex_cry_screen.s
+++ b/asm/pokedex_cry_screen.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
deleted file mode 100644
index 822c4c566..000000000
--- a/asm/pokemon_item_effect.s
+++ /dev/null
@@ -1,1969 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ExecuteTableBasedItemEffect_
-ExecuteTableBasedItemEffect_: @ 803E18C
- push {r4,lr}
- sub sp, 0x4
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- str r4, [sp]
- bl sub_803E1B0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ExecuteTableBasedItemEffect_
-
- thumb_func_start sub_803E1B0
-sub_803E1B0: @ 803E1B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- mov r8, r0
- ldr r0, [sp, 0x5C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- movs r0, 0x1
- str r0, [sp, 0x1C]
- movs r1, 0x6
- str r1, [sp, 0x24]
- movs r2, 0
- str r2, [sp, 0x2C]
- movs r3, 0x4
- str r3, [sp, 0x34]
- mov r0, r8
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0803E240
- ldr r0, _0803E21C @ =gMain
- ldr r4, _0803E220 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E22C
- ldr r2, _0803E224 @ =gEnigmaBerries
- ldr r0, _0803E228 @ =gBankInMenu
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- b _0803E248
- .align 2, 0
-_0803E21C: .4byte gMain
-_0803E220: .4byte 0x0000043d
-_0803E224: .4byte gEnigmaBerries
-_0803E228: .4byte gBankInMenu
-_0803E22C:
- ldr r0, _0803E238 @ =gSaveBlock1
- ldr r5, _0803E23C @ =0x00003688
- adds r0, r5
- ldrb r0, [r0]
- b _0803E248
- .align 2, 0
-_0803E238: .4byte gSaveBlock1
-_0803E23C: .4byte 0x00003688
-_0803E240:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0803E248:
- str r0, [sp, 0x30]
- ldr r1, _0803E2A4 @ =gStringBank
- ldr r0, _0803E2A8 @ =gBankInMenu
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _0803E2AC @ =gMain
- ldr r1, _0803E2B0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803E2E8
- ldr r0, _0803E2B4 @ =gActiveBank
- strb r2, [r0]
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x18]
- ldr r0, _0803E2B8 @ =gNoOfAllBanks
- ldr r4, [sp, 0x8]
- subs r4, 0xD
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- ldr r2, _0803E2BC @ =gBattlePartyID
- lsls r0, r1, 1
- adds r0, r2
- ldrh r3, [r0]
- ldr r5, [sp, 0xC]
- lsls r0, r5, 16
- lsrs r1, r0, 16
- adds r5, r0, 0
- cmp r3, r1
- bne _0803E2C0
- ldr r0, [sp, 0x18]
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2A4: .4byte gStringBank
-_0803E2A8: .4byte gBankInMenu
-_0803E2AC: .4byte gMain
-_0803E2B0: .4byte 0x0000043d
-_0803E2B4: .4byte gActiveBank
-_0803E2B8: .4byte gNoOfAllBanks
-_0803E2BC: .4byte gBattlePartyID
-_0803E2C0:
- ldr r1, [sp, 0x18]
- adds r1, 0x2
- str r1, [sp, 0x18]
- ldr r0, _0803E2E4 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r1, r0
- bge _0803E2F4
- lsls r0, r1, 1
- adds r0, r2
- ldrh r1, [r0]
- lsrs r0, r5, 16
- cmp r1, r0
- bne _0803E2C0
- ldr r2, [sp, 0x18]
- lsls r0, r2, 24
- lsrs r0, 24
- str r0, [sp, 0x34]
- b _0803E2F4
- .align 2, 0
-_0803E2E4: .4byte gNoOfAllBanks
-_0803E2E8:
- ldr r0, _0803E310 @ =gActiveBank
- strb r1, [r0]
- movs r3, 0x4
- str r3, [sp, 0x34]
- ldr r4, [sp, 0x8]
- subs r4, 0xD
-_0803E2F4:
- lsls r0, r4, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bhi _0803E36C
- ldr r1, _0803E314 @ =gItemEffectTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0803E318
- ldr r4, [sp, 0x8]
- cmp r4, 0xAF
- beq _0803E31E
- b _0803E36C
- .align 2, 0
-_0803E310: .4byte gActiveBank
-_0803E314: .4byte gItemEffectTable
-_0803E318:
- ldr r5, [sp, 0x8]
- cmp r5, 0xAF
- bne _0803E372
-_0803E31E:
- ldr r0, _0803E340 @ =gMain
- ldr r1, _0803E344 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E350
- ldr r0, _0803E348 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803E34C @ =gUnknown_02024DF8
- adds r0, r1
- b _0803E372
- .align 2, 0
-_0803E340: .4byte gMain
-_0803E344: .4byte 0x0000043d
-_0803E348: .4byte gActiveBank
-_0803E34C: .4byte gUnknown_02024DF8
-_0803E350:
- ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676
- str r2, [sp, 0x20]
- b _0803E374
- .align 2, 0
-_0803E358: .4byte gSaveBlock1 + 0x3676
-_0803E35C:
- mov r0, r8
- movs r2, 0
- ldr r3, [sp, 0xC]
- bl BeginEvolutionScene
- movs r0, 0
- bl _0803F15C
-_0803E36C:
- movs r0, 0x1
- bl _0803F15C
-_0803E372:
- str r0, [sp, 0x20]
-_0803E374:
- movs r3, 0
- str r3, [sp, 0x18]
-_0803E378:
- ldr r4, [sp, 0x18]
- cmp r4, 0x5
- bls _0803E382
- bl _0803F14C
-_0803E382:
- lsls r0, r4, 2
- ldr r1, _0803E38C @ =_0803E390
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E38C: .4byte _0803E390
- .align 2, 0
-_0803E390:
- .4byte _0803E3A8
- .4byte _0803E474
- .4byte _0803E508
- .4byte _0803E59C
- .4byte _0803E77C
- .4byte _0803EE1E
-_0803E3A8:
- ldr r5, [sp, 0x20]
- ldr r0, [sp, 0x18]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E460 @ =gMain
- ldr r1, _0803E464 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E3F0
- ldr r1, _0803E468 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- beq _0803E3F0
- ldr r0, _0803E46C @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803E3F0:
- ldrb r1, [r6]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _0803E41E
- ldr r1, _0803E468 @ =gBattleMons
- ldr r0, _0803E470 @ =gActiveBank
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0803E41E
- orrs r1, r3
- str r1, [r2]
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E41E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E42C
- bl _0803F14C
-_0803E42C:
- ldr r6, _0803E468 @ =gBattleMons
- ldr r5, _0803E470 @ =gActiveBank
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E446
- bl _0803F14C
-_0803E446:
- adds r0, r2, r3
- strb r0, [r1, 0x19]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- bgt _0803E45A
- b _0803E74E
-_0803E45A:
- movs r0, 0xC
- strb r0, [r1, 0x19]
- b _0803E74E
- .align 2, 0
-_0803E460: .4byte gMain
-_0803E464: .4byte 0x0000043d
-_0803E468: .4byte gBattleMons
-_0803E46C: .4byte 0xfff0ffff
-_0803E470: .4byte gActiveBank
-_0803E474:
- ldr r0, [sp, 0x20]
- ldr r1, [sp, 0x18]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E4BA
- ldr r7, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gActiveBank
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1A]
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E4BA
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1A]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1A
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4B6
- movs r0, 0xC
- strb r0, [r1, 0x1A]
-_0803E4B6:
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E4BA:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E4C8
- bl _0803F14C
-_0803E4C8:
- ldr r6, _0803E500 @ =gBattleMons
- ldr r5, _0803E504 @ =gActiveBank
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E4E2
- bl _0803F14C
-_0803E4E2:
- adds r0, r2, r3
- strb r0, [r1, 0x1B]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1B
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E4F8
- movs r0, 0xC
- strb r0, [r1, 0x1B]
-_0803E4F8:
- movs r3, 0
- str r3, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E500: .4byte gBattleMons
-_0803E504: .4byte gActiveBank
-_0803E508:
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x18]
- adds r2, r4, r5
- ldrb r1, [r2]
- movs r0, 0xF0
- ands r0, r1
- lsls r3, r0, 24
- adds r6, r2, 0
- cmp r3, 0
- beq _0803E54E
- ldr r7, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gActiveBank
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r7
- ldrb r2, [r1, 0x1E]
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0803E54E
- lsrs r0, r3, 28
- adds r0, r2, r0
- strb r0, [r1, 0x1E]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r7
- movs r0, 0x1E
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E54A
- movs r0, 0xC
- strb r0, [r1, 0x1E]
-_0803E54A:
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E54E:
- ldrb r0, [r6]
- movs r3, 0xF
- ands r3, r0
- cmp r3, 0
- bne _0803E55C
- bl _0803F14C
-_0803E55C:
- ldr r6, _0803E594 @ =gBattleMons
- ldr r5, _0803E598 @ =gActiveBank
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0, r6
- ldrb r2, [r1, 0x1C]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0803E576
- bl _0803F14C
-_0803E576:
- adds r0, r2, r3
- strb r0, [r1, 0x1C]
- ldrb r0, [r5]
- muls r0, r4
- adds r1, r0, r6
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0803E58C
- movs r0, 0xC
- strb r0, [r1, 0x1C]
-_0803E58C:
- movs r1, 0
- str r1, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E594: .4byte gBattleMons
-_0803E598: .4byte gActiveBank
-_0803E59C:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x80
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _0803E5E4
- ldr r5, _0803E758 @ =gSideTimer
- ldr r4, _0803E75C @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0803E5E4
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x5
- strb r0, [r1, 0x2]
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E5E4:
- ldrb r1, [r6]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803E646
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- cmp r0, 0x64
- beq _0803E646
- ldr r5, _0803E760 @ =gExperienceTables
- mov r0, r8
- movs r1, 0x38
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0803E764 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r5
- ldr r0, [r4]
- str r0, [sp]
- mov r0, r8
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E646:
- ldrb r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803E682
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x7
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E682
- ldr r1, [sp, 0x34]
- cmp r1, 0x4
- beq _0803E67E
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x34]
- adds r2, r3, 0
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0803E76C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
-_0803E67E:
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E682:
- ldrb r1, [r6]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0803E6A2
- ldr r2, _0803E770 @ =0x00000f88
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6A2
- movs r5, 0
- str r5, [sp, 0x1C]
-_0803E6A2:
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803E6C2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x10
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6C2
- movs r0, 0
- str r0, [sp, 0x1C]
-_0803E6C2:
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803E6E2
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x20
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E6E2
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803E6E2:
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803E702
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x40
- ldr r3, [sp, 0x34]
- bl HealStatusConditions
- lsls r0, 24
- cmp r0, 0
- bne _0803E702
- movs r2, 0
- str r2, [sp, 0x1C]
-_0803E702:
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803E710
- bl _0803F14C
-_0803E710:
- ldr r0, _0803E774 @ =gMain
- ldr r3, _0803E778 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0803E724
- bl _0803F14C
-_0803E724:
- ldr r4, [sp, 0x34]
- cmp r4, 0x4
- bne _0803E72E
- bl _0803F14C
-_0803E72E:
- ldr r1, _0803E768 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0803E746
- bl _0803F14C
-_0803E746:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
-_0803E74E:
- movs r5, 0
- str r5, [sp, 0x1C]
- bl _0803F14C
- .align 2, 0
-_0803E758: .4byte gSideTimer
-_0803E75C: .4byte gActiveBank
-_0803E760: .4byte gExperienceTables
-_0803E764: .4byte gBaseStats
-_0803E768: .4byte gBattleMons
-_0803E76C: .4byte 0xf7ffffff
-_0803E770: .4byte 0x00000f88
-_0803E774: .4byte gMain
-_0803E778: .4byte 0x0000043d
-_0803E77C:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x18]
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r10, r0
- movs r0, 0x20
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- beq _0803E854
- movs r0, 0xDF
- ands r3, r0
- mov r10, r3
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E880 @ =gUnknown_08208238
- ldr r4, [sp, 0x10]
- adds r1, r4, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r4, 1
- lsrs r0, r1
- str r0, [sp]
- adds r5, r4, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- ldr r0, [sp]
- cmp r0, 0x2
- bhi _0803E854
- ldr r0, [sp, 0x28]
- cmp r0, 0x4
- bls _0803E854
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803E884 @ =gUnknown_08208240
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x28]
- subs r0, r3
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
-_0803E854:
- movs r5, 0
- str r5, [sp, 0x28]
- mov r0, r10
- cmp r0, 0
- bne _0803E862
- bl _0803F14C
-_0803E862:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803E86E
- b _0803EE0A
-_0803E86E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803E876
- b _0803EE0A
-_0803E876:
- lsls r0, r2, 2
- ldr r1, _0803E888 @ =_0803E88C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803E880: .4byte gUnknown_08208238
-_0803E884: .4byte gUnknown_08208240
-_0803E888: .4byte _0803E88C
- .align 2, 0
-_0803E88C:
- .4byte _0803E8AC
- .4byte _0803E8AC
- .4byte _0803E934
- .4byte _0803EB5C
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EE0A
- .4byte _0803EDF4
-_0803E8AC:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803E8EC @ =0x000001fd
- cmp r5, r0
- bls _0803E8BE
- b _0803E36C
-_0803E8BE:
- ldr r0, _0803E8F0 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- cmp r1, 0x63
- bls _0803E8D8
- b _0803EE0A
-_0803E8D8:
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803E8F4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803E8F6
- .align 2, 0
-_0803E8EC: .4byte 0x000001fd
-_0803E8F0: .4byte gUnknown_082082F2
-_0803E8F4:
- adds r4, r0, 0
-_0803E8F6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803E904
- adds r0, r4, r0
- subs r4, r0, r1
-_0803E904:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803E930 @ =gUnknown_082082F2
- ldr r3, [sp, 0x28]
- adds r0, r3, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803E930: .4byte gUnknown_082082F2
-_0803E934:
- movs r0, 0x10
- mov r5, r10
- ands r0, r5
- cmp r0, 0
- beq _0803E9F4
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0803E954
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803E954:
- ldr r0, _0803E99C @ =gMain
- ldr r1, _0803E9A0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EA0A
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803E9B4
- ldr r2, _0803E9A4 @ =gAbsentBankFlags
- ldr r1, _0803E9A8 @ =gBitTable
- ldr r3, [sp, 0x34]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0803E9AC @ =gBattlePartyID
- lsls r0, r3, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [sp, 0x34]
- bl CopyPlayerPartyMonToBattleData
- ldr r0, _0803E9B0 @ =gActiveBank
- ldrb r0, [r0]
- b _0803E9CC
- .align 2, 0
-_0803E99C: .4byte gMain
-_0803E9A0: .4byte 0x0000043d
-_0803E9A4: .4byte gAbsentBankFlags
-_0803E9A8: .4byte gBitTable
-_0803E9AC: .4byte gBattlePartyID
-_0803E9B0: .4byte gActiveBank
-_0803E9B4:
- ldr r3, _0803E9E4 @ =gAbsentBankFlags
- ldr r1, _0803E9E8 @ =gBitTable
- ldr r2, _0803E9EC @ =gActiveBank
- ldrb r0, [r2]
- eors r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r3]
- bics r0, r1
- strb r0, [r3]
- ldrb r0, [r2]
-_0803E9CC:
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EA0A
- ldr r1, _0803E9F0 @ =gBattleResults
- ldrb r0, [r1, 0x4]
- cmp r0, 0xFE
- bhi _0803EA0A
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0803EA0A
- .align 2, 0
-_0803E9E4: .4byte gAbsentBankFlags
-_0803E9E8: .4byte gBitTable
-_0803E9EC: .4byte gActiveBank
-_0803E9F0: .4byte gBattleResults
-_0803E9F4:
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- bne _0803EA0A
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- b _0803EC9E
-_0803EA0A:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r4, [sp, 0x20]
- adds r1, r4, r1
- ldrb r1, [r1]
- str r1, [sp]
- adds r0, r1, 0
- cmp r0, 0xFE
- beq _0803EA4C
- cmp r0, 0xFE
- bhi _0803EA2C
- cmp r0, 0xFD
- beq _0803EA62
- b _0803EA6C
-_0803EA2C:
- cmp r1, 0xFF
- bne _0803EA6C
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- subs r4, r0
- str r4, [sp]
- b _0803EA6C
-_0803EA4C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- lsrs r0, 1
- str r0, [sp]
- cmp r0, 0
- bne _0803EA6C
- movs r0, 0x1
- b _0803EA6A
-_0803EA62:
- ldr r0, _0803EB24 @ =gSharedMem
- ldr r5, _0803EB28 @ =0x000160fa
- adds r0, r5
- ldrb r0, [r0]
-_0803EA6A:
- str r0, [sp]
-_0803EA6C:
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _0803EB4C
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0803EB40
- mov r0, r8
- movs r1, 0x39
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EAB8
- mov r0, r8
- movs r1, 0x3A
- movs r2, 0
- bl GetMonData
- str r0, [sp]
-_0803EAB8:
- mov r0, r8
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EB2C @ =gMain
- ldr r1, _0803EB30 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EB48
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EB48
- ldr r1, _0803EB34 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldr r1, [sp]
- strh r1, [r0, 0x28]
- movs r0, 0x10
- mov r3, r10
- ands r0, r3
- cmp r0, 0
- bne _0803EB48
- ldr r4, _0803EB38 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0803EB48
- ldr r1, _0803EB3C @ =gBattleResults
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFE
- bhi _0803EB08
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0803EB08:
- ldrb r5, [r4]
- add r0, sp, 0x34
- ldrb r0, [r0]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl EmitGetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- strb r5, [r4]
- b _0803EB48
- .align 2, 0
-_0803EB24: .4byte gSharedMem
-_0803EB28: .4byte 0x000160fa
-_0803EB2C: .4byte gMain
-_0803EB30: .4byte 0x0000043d
-_0803EB34: .4byte gBattleMons
-_0803EB38: .4byte gActiveBank
-_0803EB3C: .4byte gBattleResults
-_0803EB40:
- ldr r1, _0803EB58 @ =gBattleMoveDamage
- ldr r0, [sp]
- negs r0, r0
- str r0, [r1]
-_0803EB48:
- movs r1, 0
- str r1, [sp, 0x1C]
-_0803EB4C:
- movs r0, 0xEF
- mov r2, r10
- ands r2, r0
- mov r10, r2
- b _0803EE0A
- .align 2, 0
-_0803EB58: .4byte gBattleMoveDamage
-_0803EB5C:
- movs r7, 0x2
- mov r0, r10
- ands r0, r7
- cmp r0, 0
- beq _0803EB68
- b _0803ECB8
-_0803EB68:
- movs r5, 0
- ldr r3, [sp, 0x24]
- adds r3, 0x1
- str r3, [sp, 0x38]
-_0803EB70:
- movs r4, 0x11
- adds r4, r5
- mov r9, r4
- mov r0, r8
- mov r1, r9
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- adds r7, r5, 0
- adds r7, 0xD
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r5, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- beq _0803EC92
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x24]
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r0, r1, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803EC28
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803EC28:
- mov r0, r8
- mov r1, r9
- mov r2, sp
- bl SetMonData
- ldr r0, _0803ECA4 @ =gMain
- ldr r4, _0803ECA8 @ =0x0000043d
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803EC8E
- ldr r0, [sp, 0x34]
- cmp r0, 0x4
- beq _0803EC8E
- ldr r4, _0803ECAC @ =gBattleMons
- movs r0, 0x58
- ldr r1, [sp, 0x34]
- adds r3, r1, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- ldr r1, _0803ECB0 @ =gDisableStructs
- ldr r2, [sp, 0x34]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803ECB4 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EC8E
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EC8E:
- movs r3, 0
- str r3, [sp, 0x1C]
-_0803EC92:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _0803EC9A
- b _0803EB70
-_0803EC9A:
- ldr r4, [sp, 0x38]
- lsls r0, r4, 24
-_0803EC9E:
- lsrs r0, 24
- str r0, [sp, 0x24]
- b _0803EE0A
- .align 2, 0
-_0803ECA4: .4byte gMain
-_0803ECA8: .4byte 0x0000043d
-_0803ECAC: .4byte gBattleMons
-_0803ECB0: .4byte gDisableStructs
-_0803ECB4: .4byte gBitTable
-_0803ECB8:
- ldr r6, [sp, 0x10]
- adds r6, 0x11
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r5, [sp, 0x10]
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp]
- cmp r2, r0
- bne _0803ED00
- b _0803EE0A
-_0803ED00:
- ldr r1, [sp, 0x24]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- adds r1, r0, r1
- ldrb r0, [r1]
- adds r0, r2, r0
- str r0, [sp]
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r1, r0
- bls _0803ED74
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_0803ED74:
- mov r0, r8
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- ldr r0, _0803EDE0 @ =gMain
- ldr r1, _0803EDE4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803EDD8
- ldr r2, [sp, 0x34]
- cmp r2, 0x4
- beq _0803EDD8
- ldr r4, _0803EDE8 @ =gBattleMons
- movs r0, 0x58
- adds r3, r2, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0803EDD8
- ldr r1, _0803EDEC @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0803EDF0 @ =gBitTable
- ldr r5, [sp, 0x10]
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803EDD8
- adds r0, r5, r3
- adds r1, r4, 0
- adds r1, 0x24
- adds r0, r1
- ldr r1, [sp]
- strb r1, [r0]
-_0803EDD8:
- movs r0, 0
- str r0, [sp, 0x1C]
- b _0803EE0A
- .align 2, 0
-_0803EDE0: .4byte gMain
-_0803EDE4: .4byte 0x0000043d
-_0803EDE8: .4byte gBattleMons
-_0803EDEC: .4byte gDisableStructs
-_0803EDF0: .4byte gBitTable
-_0803EDF4:
- mov r0, r8
- movs r1, 0x2
- ldr r2, [sp, 0x8]
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0803EE0A
- bl _0803E35C
-_0803EE0A:
- ldr r1, [sp, 0x28]
- adds r1, 0x1
- str r1, [sp, 0x28]
- mov r2, r10
- lsrs r2, 1
- mov r10, r2
- cmp r2, 0
- beq _0803EE1C
- b _0803E862
-_0803EE1C:
- b _0803F14C
-_0803EE1E:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x18]
- adds r0, r3, r4
- ldrb r0, [r0]
- mov r10, r0
- movs r5, 0
- str r5, [sp, 0x28]
- cmp r0, 0
- bne _0803EE32
- b _0803F14C
-_0803EE32:
- movs r0, 0x1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- bne _0803EE3E
- b _0803F13A
-_0803EE3E:
- ldr r2, [sp, 0x28]
- cmp r2, 0x7
- bls _0803EE46
- b _0803F13A
-_0803EE46:
- lsls r0, r2, 2
- ldr r1, _0803EE50 @ =_0803EE54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803EE50: .4byte _0803EE54
- .align 2, 0
-_0803EE54:
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EE74
- .4byte _0803EEF8
- .4byte _0803EFCC
- .4byte _0803F026
- .4byte _0803F07C
-_0803EE74:
- mov r0, r8
- bl GetMonEVCount
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803EEBC @ =0x000001fd
- cmp r5, r0
- bls _0803EE88
- bl _0803E36C
-_0803EE88:
- ldr r0, _0803EEC0 @ =gUnknown_082082F2
- ldr r4, [sp, 0x28]
- adds r4, 0x2
- adds r0, r4, r0
- ldrb r1, [r0]
- mov r0, r8
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- str r1, [sp]
- adds r2, r4, 0
- cmp r1, 0x63
- bls _0803EEA6
- b _0803F13A
-_0803EEA6:
- ldr r3, [sp, 0x20]
- ldr r4, [sp, 0x24]
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x64
- bls _0803EEC4
- adds r0, 0x64
- subs r4, r0, r1
- b _0803EEC6
- .align 2, 0
-_0803EEBC: .4byte 0x000001fd
-_0803EEC0: .4byte gUnknown_082082F2
-_0803EEC4:
- adds r4, r0, 0
-_0803EEC6:
- adds r1, r5, r4
- movs r0, 0xFF
- lsls r0, 1
- cmp r1, r0
- bls _0803EED4
- adds r0, r4, r0
- subs r4, r0, r1
-_0803EED4:
- ldr r0, [sp]
- adds r0, r4
- str r0, [sp]
- ldr r0, _0803EEF4 @ =gUnknown_082082F2
- adds r0, r2, r0
- ldrb r1, [r0]
- mov r0, r8
- mov r2, sp
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- movs r5, 0
- str r5, [sp, 0x1C]
- b _0803F130
- .align 2, 0
-_0803EEF4: .4byte gUnknown_082082F2
-_0803EEF8:
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- ldr r1, _0803EFC0 @ =gUnknown_08208238
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- ldrb r1, [r1]
- ands r0, r1
- lsls r1, r2, 1
- lsrs r0, r1
- str r0, [sp]
- cmp r0, 0x2
- bls _0803EF18
- b _0803F13A
-_0803EF18:
- adds r5, r2, 0
- adds r5, 0xD
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- movs r1, 0x15
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r1, _0803EFC4 @ =gUnknown_0820823C
- ldr r3, [sp, 0x10]
- adds r1, r3, r1
- ldrb r2, [r1]
- ands r2, r0
- str r2, [sp]
- ldr r0, _0803EFC8 @ =gUnknown_08208240
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r2, r0
- str r2, [sp]
- mov r0, r8
- movs r1, 0x15
- mov r2, sp
- bl SetMonData
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [sp, 0x10]
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r0, 24
- subs r0, r4
- str r0, [sp]
- ldr r4, [sp, 0x10]
- adds r4, 0x11
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- bl GetMonData
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- movs r4, 0
- str r4, [sp, 0x1C]
- b _0803F13A
- .align 2, 0
-_0803EFC0: .4byte gUnknown_08208238
-_0803EFC4: .4byte gUnknown_0820823C
-_0803EFC8: .4byte gUnknown_08208240
-_0803EFCC:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803EFDC
- b _0803F130
-_0803EFDC:
- ldr r5, [sp, 0x1C]
- cmp r5, 0
- beq _0803EFE4
- b _0803F130
-_0803EFE4:
- ldr r0, [sp, 0x2C]
- cmp r0, 0
- beq _0803EFEC
- b _0803F130
-_0803EFEC:
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- str r5, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r4, r3, 24
- asrs r1, r4, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r5, r0
- str r0, [sp, 0x4]
- adds r2, r4, 0
- b _0803F0DC
-_0803F026:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0x63
- bls _0803F130
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bhi _0803F130
- ldr r2, [sp, 0x1C]
- cmp r2, 0
- bne _0803F130
- ldr r3, [sp, 0x2C]
- cmp r3, 0
- bne _0803F130
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- adds r0, r4, r5
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r0, [sp, 0x2C]
- lsls r5, r0, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F076
- ldr r2, [sp, 0x30]
- cmp r2, 0x1B
- beq _0803F0BE
-_0803F076:
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 24
- b _0803F0D4
-_0803F07C:
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- cmp r0, 0xC7
- bls _0803F130
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- bne _0803F130
- ldr r5, [sp, 0x2C]
- cmp r5, 0
- bne _0803F130
- ldr r1, [sp, 0x20]
- ldr r2, [sp, 0x24]
- adds r0, r1, r2
- ldrb r0, [r0]
- str r0, [sp, 0x2C]
- mov r0, r8
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x2C]
- lsls r5, r3, 24
- asrs r1, r5, 24
- cmp r1, 0
- ble _0803F0D0
- ldr r0, [sp, 0x30]
- cmp r0, 0x1B
- bne _0803F0D0
-_0803F0BE:
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- adds r0, r4, r0
- str r0, [sp, 0x4]
- adds r2, r5, 0
- b _0803F0DC
-_0803F0D0:
- ldr r1, [sp, 0x2C]
- lsls r2, r1, 24
-_0803F0D4:
- asrs r1, r2, 24
- ldr r0, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
-_0803F0DC:
- cmp r2, 0
- ble _0803F112
- mov r0, r8
- movs r1, 0x26
- movs r2, 0
- bl GetMonData
- cmp r0, 0xB
- bne _0803F0F4
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F0F4:
- mov r0, r8
- movs r1, 0x23
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- bl sav1_map_get_name
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0803F112
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
-_0803F112:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _0803F11C
- movs r0, 0
- str r0, [sp, 0x4]
-_0803F11C:
- ldr r0, [sp, 0x4]
- cmp r0, 0xFF
- ble _0803F126
- movs r0, 0xFF
- str r0, [sp, 0x4]
-_0803F126:
- add r2, sp, 0x4
- mov r0, r8
- movs r1, 0x20
- bl SetMonData
-_0803F130:
- ldr r0, [sp, 0x24]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
-_0803F13A:
- ldr r2, [sp, 0x28]
- adds r2, 0x1
- str r2, [sp, 0x28]
- mov r3, r10
- lsrs r3, 1
- mov r10, r3
- cmp r3, 0
- beq _0803F14C
- b _0803EE32
-_0803F14C:
- ldr r4, [sp, 0x18]
- adds r4, 0x1
- str r4, [sp, 0x18]
- cmp r4, 0x5
- bgt _0803F15A
- bl _0803E378
-_0803F15A:
- ldr r0, [sp, 0x1C]
-_0803F15C:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803E1B0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 69c6d9e4f..cee93a9e4 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1,13656 +1,15 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
.text
- thumb_func_start sub_8095ADC
-sub_8095ADC: @ 8095ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- movs r5, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_08095AF0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B20 @ =gPokemonStorage + 0x4
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095B0C
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095B0C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095AF0
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095B20: .4byte gPokemonStorage + 0x4
- thumb_func_end sub_8095ADC
-
- thumb_func_start sub_8095B24
-sub_8095B24: @ 8095B24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r5, r0, 5
-_08095B36:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _08095B54 @ =gPokemonStorage + 0x4
- adds r0, r1
- adds r0, r5, r0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095B58
- lsls r0, r4, 16
- asrs r0, 16
- b _08095B66
- .align 2, 0
-_08095B54: .4byte gPokemonStorage + 0x4
-_08095B58:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _08095B36
- movs r0, 0x1
- negs r0, r0
-_08095B66:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B24
-
- thumb_func_start GetNumValidDaycarePartyMons
-GetNumValidDaycarePartyMons: @ 8095B6C
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
-_08095B72:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095BB0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095B9A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095B9A
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095B9A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095B72
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08095BB0: .4byte gPlayerParty
- thumb_func_end GetNumValidDaycarePartyMons
-
- thumb_func_start CountAlivePartyMonsExceptOne
-CountAlivePartyMonsExceptOne: @ 8095BB4
- push {r4-r7,lr}
- lsls r0, 24
- movs r5, 0
- movs r6, 0
- lsrs r7, r0, 24
-_08095BBE:
- cmp r5, r7
- beq _08095BF6
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08095C0C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08095BF6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08095BF6
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08095BF6:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08095BBE
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C0C: .4byte gPlayerParty
- thumb_func_end CountAlivePartyMonsExceptOne
-
- thumb_func_start CountAlivePartyMonsExceptSelectedOne
-CountAlivePartyMonsExceptSelectedOne: @ 8095C10
- push {lr}
- ldr r0, _08095C24 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl CountAlivePartyMonsExceptOne
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08095C24: .4byte gSpecialVar_0x8004
- thumb_func_end CountAlivePartyMonsExceptSelectedOne
-
- thumb_func_start StorageSystemGetPartySize
-StorageSystemGetPartySize: @ 8095C28
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08095C2E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08095C5C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08095C46
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08095C46:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x5
- bls _08095C2E
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08095C5C: .4byte gPlayerParty
- thumb_func_end StorageSystemGetPartySize
-
- thumb_func_start unref_sub_8095C60
-unref_sub_8095C60: @ 8095C60
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl StringCopy
- adds r1, r0, 0
- adds r5, r4
- cmp r1, r5
- bcs _08095C7E
- movs r0, 0
-_08095C76:
- strb r0, [r1]
- adds r1, 0x1
- cmp r1, r5
- bcc _08095C76
-_08095C7E:
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8095C60
-
- thumb_func_start sub_8095C8C
-sub_8095C8C: @ 8095C8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r7, r3, 0
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- ldr r0, [sp, 0x24]
- mov r9, r0
- ldr r0, [sp, 0x28]
- ldr r3, [sp, 0x2C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r0, r9
- lsls r0, 17
- mov r9, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r6, r2
- adds r0, r4, 0
- muls r0, r3
- adds r0, r5
- lsls r0, 1
- adds r7, r0
- movs r4, 0
- cmp r4, r8
- bcs _08095CFC
- mov r0, r9
- lsrs r0, 1
- mov r9, r0
- lsls r5, r3, 1
-_08095CE2:
- adds r0, r7, 0
- adds r1, r6, 0
- mov r3, r9
- lsrs r2, r3, 16
- bl CpuSet
- adds r6, 0x40
- adds r7, r5
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _08095CE2
-_08095CFC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8095C8C
-
- thumb_func_start unref_sub_8095D08
-unref_sub_8095D08: @ 8095D08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsrs r2, 11
- adds r2, r1
- lsls r2, 1
- adds r4, r2
- lsls r3, 17
- lsrs r0, r3, 16
- str r0, [sp, 0x4]
- movs r0, 0
- cmp r0, r10
- bcs _08095DB2
- movs r6, 0x80
- lsls r6, 5
- mov r5, sp
- ldr r7, _08095D74 @ =0x040000d4
- lsrs r3, 17
- mov r9, r3
- mov r1, r9
- movs r2, 0x81
- lsls r2, 24
- orrs r1, r2
- mov r9, r1
-_08095D4E:
- adds r3, r4, 0
- ldr r2, [sp, 0x4]
- movs r1, 0x40
- adds r1, r4
- mov r8, r1
- adds r0, 0x1
- mov r12, r0
- cmp r2, r6
- bhi _08095D78
- movs r0, 0
- strh r0, [r5]
- mov r2, sp
- str r2, [r7]
- str r4, [r7, 0x4]
- mov r0, r9
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _08095DA6
- .align 2, 0
-_08095D74: .4byte 0x040000d4
-_08095D78:
- movs r4, 0
- strh r4, [r5]
- ldr r1, _08095DC4 @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- ldr r0, _08095DC8 @ =0x81000800
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r6
- subs r2, r6
- cmp r2, r6
- bhi _08095D78
- strh r4, [r5]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r2, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_08095DA6:
- mov r4, r8
- mov r1, r12
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r10
- bcc _08095D4E
-_08095DB2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08095DC4: .4byte 0x040000d4
-_08095DC8: .4byte 0x81000800
- thumb_func_end unref_sub_8095D08
-
- thumb_func_start StorageSystemGetNextMonIndex
-StorageSystemGetNextMonIndex: @ 8095DCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r0, r3, 24
- cmp r0, 0
- beq _08095DE8
- cmp r0, 0x2
- bne _08095DEC
-_08095DE8:
- movs r2, 0x1
- b _08095DEE
-_08095DEC:
- ldr r2, _08095E38 @ =0x0000ffff
-_08095DEE:
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08095E44
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E10:
- asrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- add r0, r8
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _08095E3C
- asrs r0, r6, 16
- adds r0, r4, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E10
- b _08095E90
- .align 2, 0
-_08095E38: .4byte 0x0000ffff
-_08095E3C:
- adds r0, r4, 0
- b _08095E94
-_08095E40:
- adds r0, r5, 0
- b _08095E94
-_08095E44:
- lsls r0, r1, 24
- asrs r0, 24
- lsls r2, 16
- asrs r1, r2, 16
- adds r1, r0
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r2, 0
- cmp r1, 0
- blt _08095E90
- cmp r1, r7
- bgt _08095E90
-_08095E5C:
- asrs r5, r0, 16
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E80
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- beq _08095E40
-_08095E80:
- asrs r0, r6, 16
- adds r0, r5, r0
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08095E90
- cmp r2, r7
- ble _08095E5C
-_08095E90:
- movs r0, 0x1
- negs r0, r0
-_08095E94:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end StorageSystemGetNextMonIndex
-
- thumb_func_start StorageSystemClearMessageWindow
-StorageSystemClearMessageWindow: @ 8095EA0
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end StorageSystemClearMessageWindow
-
- thumb_func_start Task_PokemonStorageSystem
-Task_PokemonStorageSystem: @ 8095EB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08095ED8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08095ECE
- b _080960F4
-_08095ECE:
- lsls r0, 2
- ldr r1, _08095EDC @ =_08095EE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08095ED8: .4byte gTasks
-_08095EDC: .4byte _08095EE0
- .align 2, 0
-_08095EE0:
- .4byte _08095EF4
- .4byte _08095F1C
- .4byte _08095F30
- .4byte _08096042
- .4byte _080960DC
-_08095EF4:
- ldrb r0, [r4, 0xA]
- bl StorageSystemCreatePrimaryMenu
- bl MenuDisplayMessageBox
- ldr r1, _08095F18 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _08095F28
- .align 2, 0
-_08095F18: .4byte gUnknown_083B600C
-_08095F1C:
- bl sub_807D770
- lsls r0, 24
- cmp r0, 0
- bne _08095F28
- b _080960F4
-_08095F28:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080960F4
-_08095F30:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08095FC8
- cmp r1, r0
- bgt _08095F52
- subs r0, 0x1
- cmp r1, r0
- beq _08095F58
- b _08095FE8
-_08095F52:
- cmp r1, 0x3
- beq _08095FC8
- b _08095FE8
-_08095F58:
- ldrh r3, [r4, 0xA]
- strh r3, [r4, 0xE]
- ldr r2, _08095FC0 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08095F76
- subs r0, r3, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bge _08095F76
- movs r0, 0x3
- strh r0, [r4, 0xE]
-_08095F76:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08095F92
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08095F92
- movs r0, 0
- strh r0, [r4, 0xE]
-_08095F92:
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _08095FA2
- b _080960F4
-_08095FA2:
- strh r2, [r4, 0xA]
- bl StorageSystemClearMessageWindow
- ldr r0, _08095FC4 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- b _080960F4
- .align 2, 0
-_08095FC0: .4byte gMain
-_08095FC4: .4byte gUnknown_083B600C
-_08095FC8:
- bl HandleDestroyMenuCursors
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080960F4
-_08095FE8:
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _08096008
- bl StorageSystemGetPartySize
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08096008
- bl StorageSystemClearMessageWindow
- ldr r0, _08096004 @ =gPCText_PartyFull2
- b _08096022
- .align 2, 0
-_08096004: .4byte gPCText_PartyFull2
-_08096008:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08096034
- bl StorageSystemGetPartySize
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08096034
- bl StorageSystemClearMessageWindow
- ldr r0, _08096030 @ =gPCText_OnlyOne
-_08096022:
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x3
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_08096030: .4byte gPCText_OnlyOne
-_08096034:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- movs r0, 0x4
- strh r0, [r4, 0x8]
- b _080960F4
-_08096042:
- ldr r0, _08096088 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080960B8
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08096090
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0809606A
- strh r3, [r4, 0xA]
-_0809606A:
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- bl StorageSystemClearMessageWindow
- ldr r1, _0809608C @ =gUnknown_083B600C
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- b _080960C2
- .align 2, 0
-_08096088: .4byte gMain
-_0809608C: .4byte gUnknown_083B600C
-_08096090:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080960F4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080960A8
- strh r2, [r4, 0xA]
-_080960A8:
- movs r0, 0x1
- bl MoveMenuCursor
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
-_080960B8:
- bl StorageSystemClearMessageWindow
- ldr r1, _080960D8 @ =gUnknown_083B600C
- movs r2, 0xA
- ldrsh r0, [r4, r2]
-_080960C2:
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080960F4
- .align 2, 0
-_080960D8: .4byte gUnknown_083B600C
-_080960DC:
- ldr r0, _080960FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080960F4
- ldrb r0, [r4, 0xC]
- bl task_intro_29
- adds r0, r5, 0
- bl DestroyTask
-_080960F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080960FC: .4byte gPaletteFade
- thumb_func_end Task_PokemonStorageSystem
-
- thumb_func_start ShowPokemonStorageSystem
-ShowPokemonStorageSystem: @ 8096100
- push {lr}
- ldr r0, _08096128 @ =Task_PokemonStorageSystem
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809612C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08096128: .4byte Task_PokemonStorageSystem
-_0809612C: .4byte gTasks
- thumb_func_end ShowPokemonStorageSystem
-
- thumb_func_start sub_8096130
-sub_8096130: @ 8096130
- push {lr}
- ldr r0, _0809615C @ =Task_PokemonStorageSystem
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096160 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _08096164 @ =gUnknown_02038474
- ldrb r0, [r0]
- strh r0, [r1, 0xA]
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0809615C: .4byte Task_PokemonStorageSystem
-_08096160: .4byte gTasks
-_08096164: .4byte gUnknown_02038474
- thumb_func_end sub_8096130
-
- thumb_func_start StorageSystemCreatePrimaryMenu
-StorageSystemCreatePrimaryMenu: @ 8096168
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xD
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080961A4 @ =gUnknown_083B600C
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xC
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080961A4: .4byte gUnknown_083B600C
- thumb_func_end StorageSystemCreatePrimaryMenu
-
- thumb_func_start sub_80961A8
-sub_80961A8: @ 80961A8
- push {lr}
- ldr r1, _080961C4 @ =gUnknown_02038474
- ldr r0, _080961C8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- strb r0, [r1]
- ldr r1, _080961CC @ =gFieldCallback
- ldr r0, _080961D0 @ =sub_8096130
- str r0, [r1]
- ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080961C4: .4byte gUnknown_02038474
-_080961C8: .4byte gUnknown_083B6DB4
-_080961CC: .4byte gFieldCallback
-_080961D0: .4byte sub_8096130
-_080961D4: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80961A8
-
- thumb_func_start ResetPokemonStorageSystem
-ResetPokemonStorageSystem: @ 80961D8
- push {r4-r7,lr}
- ldr r1, _08096258 @ =gPokemonStorage
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- adds r7, r1, 0x4
-_080961E4:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_080961F0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r0, r7
- adds r0, r6, r0
- bl ZeroBoxMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080961F0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _080961E4
- movs r5, 0
-_08096214:
- lsls r0, r5, 3
- adds r0, r5
- ldr r6, _0809625C @ =gPokemonStorage + 0x8344
- adds r0, r6
- ldr r1, _08096260 @ =gPCText_BOX
- bl StringCopy
- adds r4, r5, 0x1
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0xD
- bls _08096214
- movs r5, 0
- adds r3, r6, 0
- adds r3, 0x7E
- movs r2, 0x3
-_0809623E:
- adds r0, r5, r3
- adds r1, r5, 0
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0809623E
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096258: .4byte gPokemonStorage
-_0809625C: .4byte gPokemonStorage + 0x8344
-_08096260: .4byte gPCText_BOX
- thumb_func_end ResetPokemonStorageSystem
-
- thumb_func_start sub_8096264
-sub_8096264: @ 8096264
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x20
- mov r8, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r9, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _080962F4 @ =gBoxSelectionPopupPalette
- str r0, [sp, 0x18]
- ldr r1, _080962F8 @ =0xffff0000
- add r5, sp, 0x18
- ldr r0, [r5, 0x4]
- ands r0, r1
- orrs r0, r6
- str r0, [r5, 0x4]
- mov r1, sp
- ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x4]
- strh r4, [r1, 0x6]
- ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles
- str r0, [sp, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- strh r0, [r1, 0xC]
- adds r0, r4, 0x1
- strh r0, [r1, 0xE]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- bl LoadSpritePalette
- mov r0, sp
- bl LoadSpriteSheets
- ldr r0, _08096304 @ =gUnknown_02038478
- mov r1, r8
- str r1, [r0]
- movs r0, 0x90
- lsls r0, 2
- add r0, r8
- strh r4, [r0]
- ldr r0, _08096308 @ =0x00000242
- add r0, r8
- strh r6, [r0]
- ldr r0, _0809630C @ =0x0000023e
- add r8, r0
- mov r0, r9
- mov r1, r8
- strb r0, [r1]
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080962F4: .4byte gBoxSelectionPopupPalette
-_080962F8: .4byte 0xffff0000
-_080962FC: .4byte gBoxSelectionPopupCenterTiles
-_08096300: .4byte gBoxSelectionPopupSidesTiles
-_08096304: .4byte gUnknown_02038478
-_08096308: .4byte 0x00000242
-_0809630C: .4byte 0x0000023e
- thumb_func_end sub_8096264
-
- thumb_func_start sub_8096310
-sub_8096310: @ 8096310
- push {r4,r5,lr}
- ldr r4, _08096344 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r1, _08096348 @ =0x00000242
- adds r0, r1
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r5
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, r5
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096344: .4byte gUnknown_02038478
-_08096348: .4byte 0x00000242
- thumb_func_end sub_8096310
-
- thumb_func_start sub_809634C
-sub_809634C: @ 809634C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80963D0
- pop {r0}
- bx r0
- thumb_func_end sub_809634C
-
- thumb_func_start sub_809635C
-sub_809635C: @ 809635C
- push {lr}
- bl sub_809658C
- pop {r0}
- bx r0
- thumb_func_end sub_809635C
-
- thumb_func_start sub_8096368
-sub_8096368: @ 8096368
- push {lr}
- ldr r0, _08096380 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08096384
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC9
- b _080963CC
- .align 2, 0
-_08096380: .4byte gMain
-_08096384:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080963A4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080963A0 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- b _080963CC
- .align 2, 0
-_080963A0: .4byte gUnknown_02038478
-_080963A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080963B8
- movs r0, 0x5
- bl PlaySE
- bl sub_809662C
- b _080963CA
-_080963B8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080963CA
- movs r0, 0x5
- bl PlaySE
- bl sub_80965F8
-_080963CA:
- movs r0, 0xC8
-_080963CC:
- pop {r1}
- bx r1
- thumb_func_end sub_8096368
-
- thumb_func_start sub_80963D0
-sub_80963D0: @ 80963D0
- push {r4-r6,lr}
- sub sp, 0x3C
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x34]
- str r1, [sp, 0x38]
- movs r1, 0xC0
- lsls r1, 24
- ldr r0, [sp, 0x34]
- orrs r0, r1
- str r0, [sp, 0x34]
- ldr r1, _08096564 @ =0xffff0fff
- add r4, sp, 0x34
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r4, 0x4]
- add r1, sp, 0x1C
- movs r2, 0
- strh r2, [r1]
- mov r0, sp
- adds r0, 0x1E
- strh r2, [r0]
- str r4, [sp, 0x20]
- ldr r0, _08096568 @ =gDummySpriteAnimTable
- str r0, [sp, 0x24]
- str r2, [sp, 0x28]
- ldr r0, _0809656C @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x2C]
- ldr r0, _08096570 @ =SpriteCallbackDummy
- str r0, [sp, 0x30]
- add r0, sp, 0x4
- movs r2, 0x18
- bl memcpy
- ldr r6, _08096574 @ =gUnknown_02038478
- ldr r0, [r6]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- strb r5, [r0]
- add r2, sp, 0x4
- ldr r1, [r6]
- movs r5, 0x90
- lsls r5, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _08096578 @ =0x00000242
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r2, 0x2]
- adds r0, r2, 0
- movs r1, 0xA0
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r0, r1
- str r0, [r3]
- ldrb r2, [r4, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r4, 0x3]
- add r1, sp, 0x4
- adds r3, r5
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08096580 @ =gSpriteAnimTable_83B604C
- str r0, [sp, 0xC]
- movs r4, 0
-_08096488:
- ldr r0, [r6]
- ldr r1, _08096584 @ =0x0000023e
- adds r0, r1
- ldrb r3, [r0]
- add r0, sp, 0x4
- movs r1, 0x7C
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [r6]
- lsls r3, r4, 2
- adds r2, 0x4
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809657C @ =gSprites
- adds r1, r0, r1
- str r1, [r2]
- movs r5, 0
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _080964C2
- movs r0, 0xC4
- strh r0, [r1, 0x20]
- movs r5, 0x2
-_080964C2:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080964E6
- ldr r1, [r6]
- adds r1, 0x4
- adds r1, r3
- ldr r2, [r1]
- movs r0, 0x70
- strh r0, [r2, 0x22]
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080964E6:
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r3
- ldr r0, [r0]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08096488
- movs r4, 0
- ldr r5, _08096574 @ =gUnknown_02038478
-_08096504:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 19
- movs r3, 0xF8
- lsls r3, 15
- adds r0, r3
- lsrs r0, 16
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r1, [r5]
- ldr r3, _08096584 @ =0x0000023e
- adds r1, r3
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0x58
- movs r3, 0
- bl sub_809A9A0
- adds r2, r0, 0
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x20
- adds r0, r1
- str r2, [r0]
- cmp r2, 0
- beq _0809654C
- movs r1, 0x1
- cmp r4, 0
- bne _08096544
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_08096544:
- strh r1, [r2, 0x2E]
- ldr r1, [r0]
- ldr r0, _08096588 @ =sub_8096784
- str r0, [r1, 0x1C]
-_0809654C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08096504
- bl sub_809665C
- add sp, 0x3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096564: .4byte 0xffff0fff
-_08096568: .4byte gDummySpriteAnimTable
-_0809656C: .4byte gDummySpriteAffineAnimTable
-_08096570: .4byte SpriteCallbackDummy
-_08096574: .4byte gUnknown_02038478
-_08096578: .4byte 0x00000242
-_0809657C: .4byte gSprites
-_08096580: .4byte gSpriteAnimTable_83B604C
-_08096584: .4byte 0x0000023e
-_08096588: .4byte sub_8096784
- thumb_func_end sub_80963D0
-
- thumb_func_start sub_809658C
-sub_809658C: @ 809658C
- push {r4-r6,lr}
- ldr r4, _080965F4 @ =gUnknown_02038478
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080965A2
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080965A2:
- movs r5, 0
- adds r6, r4, 0
-_080965A6:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0x4
- adds r0, r4
- ldr r0, [r0]
- cmp r0, 0
- beq _080965C2
- bl DestroySprite
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080965C2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080965A6
- movs r5, 0
-_080965CE:
- ldr r0, _080965F4 @ =gUnknown_02038478
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x20
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080965E2
- bl DestroySprite
-_080965E2:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080965CE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F4: .4byte gUnknown_02038478
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965F8
-sub_80965F8: @ 80965F8
- push {lr}
- ldr r2, _08096628 @ =gUnknown_02038478
- ldr r1, [r2]
- movs r0, 0x8F
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bls _0809661E
- ldr r0, [r2]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_0809661E:
- bl sub_809665C
- pop {r0}
- bx r0
- .align 2, 0
-_08096628: .4byte gUnknown_02038478
- thumb_func_end sub_80965F8
-
- thumb_func_start sub_809662C
-sub_809662C: @ 809662C
- push {lr}
- ldr r0, _08096644 @ =gUnknown_02038478
- ldr r2, [r0]
- movs r1, 0x8F
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096648
- subs r1, r0, 0x1
- b _0809664A
- .align 2, 0
-_08096644: .4byte gUnknown_02038478
-_08096648:
- movs r1, 0xD
-_0809664A:
- movs r3, 0x8F
- lsls r3, 2
- adds r0, r2, r3
- strb r1, [r0]
- bl sub_809665C
- pop {r0}
- bx r0
- thumb_func_end sub_809662C
-
- thumb_func_start sub_809665C
-sub_809665C: @ 809665C
- push {r4-r7,lr}
- ldr r5, _080966B4 @ =gUnknown_02038478
- ldr r0, [r5]
- movs r4, 0x8F
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8095ADC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080966B8 @ =gStringVar1
- movs r6, 0xFC
- strb r6, [r2]
- movs r0, 0x4
- strb r0, [r2, 0x1]
- movs r0, 0xF
- strb r0, [r2, 0x2]
- movs r0, 0x1
- strb r0, [r2, 0x3]
- movs r0, 0xE
- strb r0, [r2, 0x4]
- adds r2, 0x5
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- ldr r0, _080966BC @ =gPokemonStorage + 0x8344
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFE
- strb r0, [r2]
- strb r6, [r2, 0x1]
- movs r0, 0x11
- strb r0, [r2, 0x2]
- cmp r7, 0x9
- bhi _080966C0
- movs r0, 0x28
- b _080966C2
- .align 2, 0
-_080966B4: .4byte gUnknown_02038478
-_080966B8: .4byte gStringVar1
-_080966BC: .4byte gPokemonStorage + 0x8344
-_080966C0:
- movs r0, 0x22
-_080966C2:
- strb r0, [r2, 0x3]
- adds r2, 0x4
- adds r0, r2, 0
- adds r1, r7, 0
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- movs r0, 0xA4
- strb r0, [r2, 0x1]
- movs r0, 0xA1
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080966F0 @ =gStringVar1
- movs r1, 0
- movs r2, 0x1
- bl sub_80966F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080966F0: .4byte gStringVar1
- thumb_func_end sub_809665C
-
- thumb_func_start sub_80966F4
-sub_80966F4: @ 80966F4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08096764 @ =gUnknown_02038478
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- bl GetSpriteTileStartByTag
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 11
- lsls r4, 8
- ldr r2, _08096768 @ =0x06010000
- adds r4, r2
- adds r6, r4
- lsls r5, 5
- adds r6, r5
- ldr r0, _0809676C @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- ldr r2, _08096770 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08096774 @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- ldr r0, _08096778 @ =0x81000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809677C @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- mov r2, r8
- bl sub_8004E3C
- str r5, [r4]
- str r6, [r4, 0x4]
- ldr r0, _08096780 @ =0x80000200
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096764: .4byte gUnknown_02038478
-_08096768: .4byte 0x06010000
-_0809676C: .4byte gUnknown_083B6DB8
-_08096770: .4byte 0x00001111
-_08096774: .4byte 0x040000d4
-_08096778: .4byte 0x81000200
-_0809677C: .4byte gWindowConfig_81E6D38
-_08096780: .4byte 0x80000200
- thumb_func_end sub_80966F4
-
- thumb_func_start sub_8096784
-sub_8096784: @ 8096784
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080967B4
- strh r2, [r1, 0x30]
- ldrh r0, [r1, 0x2E]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080967B4
- strh r2, [r1, 0x32]
- strh r2, [r1, 0x24]
-_080967B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8096784
-
- thumb_func_start task_intro_29
-task_intro_29: @ 80967B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080967D0 @ =gUnknown_0203847D
- strb r0, [r1]
- ldr r1, _080967D4 @ =gSharedMem
- strb r0, [r1, 0x5]
- ldr r0, _080967D8 @ =sub_8096884
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080967D0: .4byte gUnknown_0203847D
-_080967D4: .4byte gSharedMem
-_080967D8: .4byte sub_8096884
- thumb_func_end task_intro_29
-
- thumb_func_start sub_80967DC
-sub_80967DC: @ 80967DC
- ldr r0, _08096800 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08096800: .4byte REG_BG0HOFS
- thumb_func_end sub_80967DC
-
- thumb_func_start sub_8096804
-sub_8096804: @ 8096804
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r1, _0809683C @ =gReservedSpriteTileCount
- movs r2, 0xA0
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08096840 @ =gSharedMem + 0x20
- adds r1, r0, 0
- adds r1, 0x8
- movs r2, 0x8
- bl sub_809CFDC
- ldr r1, _08096844 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809683C: .4byte gReservedSpriteTileCount
-_08096840: .4byte gSharedMem + 0x20
-_08096844: .4byte gKeyRepeatStartDelay
- thumb_func_end sub_8096804
-
- thumb_func_start sub_8096848
-sub_8096848: @ 8096848
- push {lr}
- bl sub_809B0D4
- ldr r2, _08096868 @ =gUnknown_0203847C
- movs r1, 0
- ldr r0, _0809686C @ =gSharedMem
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809685C
- movs r1, 0x1
-_0809685C:
- strb r1, [r2]
- ldr r1, _08096870 @ =gUnknown_0203847E
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08096868: .4byte gUnknown_0203847C
-_0809686C: .4byte gSharedMem
-_08096870: .4byte gUnknown_0203847E
- thumb_func_end sub_8096848
-
- thumb_func_start sub_8096874
-sub_8096874: @ 8096874
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_8096874
-
- thumb_func_start sub_8096884
-sub_8096884: @ 8096884
- push {lr}
- ldr r0, _080968A0 @ =gMain
- ldr r1, _080968A4 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _08096894
- b _08096986
-_08096894:
- lsls r0, 2
- ldr r1, _080968A8 @ =_080968AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080968A0: .4byte gMain
-_080968A4: .4byte 0x0000043c
-_080968A8: .4byte _080968AC
- .align 2, 0
-_080968AC:
- .4byte _080968D4
- .4byte _080968E8
- .4byte _080968F4
- .4byte _08096904
- .4byte _0809690E
- .4byte _08096918
- .4byte _0809691E
- .4byte _08096924
- .4byte _0809692A
- .4byte _08096964
-_080968D4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl sub_8096804
- b _0809697A
-_080968E8:
- ldr r0, _080968F0 @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _0809697A
- .align 2, 0
-_080968F0: .4byte gWindowConfig_81E6D00
-_080968F4:
- ldr r0, _08096900 @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _0809697A
- .align 2, 0
-_08096900: .4byte gWindowConfig_81E6D00
-_08096904:
- bl sub_80967DC
- bl sub_8096848
- b _0809697A
-_0809690E:
- bl sub_8098B48
- bl sub_809AA24
- b _0809697A
-_08096918:
- bl sub_8097DE0
- b _0809697A
-_0809691E:
- bl sub_8097E70
- b _0809697A
-_08096924:
- bl sub_8098400
- b _0809697A
-_0809692A:
- ldr r0, _08096950 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096954 @ =gSharedMem
- ldr r1, _08096958 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _0809695C @ =0x000012be
- adds r2, r1
- ldr r1, _08096960 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _0809697A
- .align 2, 0
-_08096950: .4byte gPokemonStorage
-_08096954: .4byte gSharedMem
-_08096958: .4byte 0x000012bc
-_0809695C: .4byte 0x000012be
-_08096960: .4byte 0x0000dacb
-_08096964:
- bl sub_8096874
- ldr r0, _0809698C @ =sub_8096BF0
- bl sub_8096BE0
- ldr r0, _08096990 @ =sub_8096B38
- bl SetMainCallback2
- ldr r0, _08096994 @ =sub_8096AFC
- bl SetVBlankCallback
-_0809697A:
- ldr r1, _08096998 @ =gMain
- ldr r0, _0809699C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096986:
- pop {r0}
- bx r0
- .align 2, 0
-_0809698C: .4byte sub_8096BF0
-_08096990: .4byte sub_8096B38
-_08096994: .4byte sub_8096AFC
-_08096998: .4byte gMain
-_0809699C: .4byte 0x0000043c
- thumb_func_end sub_8096884
-
- thumb_func_start sub_80969A0
-sub_80969A0: @ 80969A0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080969BC @ =gMain
- ldr r1, _080969C0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _080969B2
- b _08096AE4
-_080969B2:
- lsls r0, 2
- ldr r1, _080969C4 @ =_080969C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080969BC: .4byte gMain
-_080969C0: .4byte 0x0000043c
-_080969C4: .4byte _080969C8
- .align 2, 0
-_080969C8:
- .4byte _080969F4
- .4byte _08096A34
- .4byte _08096A40
- .4byte _08096A50
- .4byte _08096A56
- .4byte _08096A60
- .4byte _08096A66
- .4byte _08096A6C
- .4byte _08096A72
- .4byte _08096AAC
- .4byte _08096AC8
-_080969F4:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08096A28 @ =gSharedMem
- ldr r0, _08096A2C @ =gUnknown_0203847D
- ldrb r0, [r0]
- strb r0, [r1, 0x5]
- bl sub_8096804
- ldr r4, _08096A30 @ =gUnknown_0203847F
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _08096A1A
- bl sub_809BBC0
-_08096A1A:
- ldrb r0, [r4]
- cmp r0, 0
- bne _08096AD8
- bl sub_809BD14
- b _08096AD8
- .align 2, 0
-_08096A28: .4byte gSharedMem
-_08096A2C: .4byte gUnknown_0203847D
-_08096A30: .4byte gUnknown_0203847F
-_08096A34:
- ldr r0, _08096A3C @ =gWindowConfig_81E6D00
- bl SetUpWindowConfig
- b _08096AD8
- .align 2, 0
-_08096A3C: .4byte gWindowConfig_81E6D00
-_08096A40:
- ldr r0, _08096A4C @ =gWindowConfig_81E6D00
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _08096AD8
- .align 2, 0
-_08096A4C: .4byte gWindowConfig_81E6D00
-_08096A50:
- bl sub_80967DC
- b _08096AD8
-_08096A56:
- bl sub_8098B48
- bl sub_809AA98
- b _08096AD8
-_08096A60:
- bl sub_8097DE0
- b _08096AD8
-_08096A66:
- bl sub_8097E70
- b _08096AD8
-_08096A6C:
- bl sub_8098400
- b _08096AD8
-_08096A72:
- ldr r0, _08096A98 @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_8099BF8
- ldr r2, _08096A9C @ =gSharedMem
- ldr r1, _08096AA0 @ =0x000012bc
- adds r0, r2, r1
- movs r1, 0xA
- strh r1, [r0]
- ldr r1, _08096AA4 @ =0x000012be
- adds r2, r1
- ldr r1, _08096AA8 @ =0x0000dacb
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- b _08096AD8
- .align 2, 0
-_08096A98: .4byte gPokemonStorage
-_08096A9C: .4byte gSharedMem
-_08096AA0: .4byte 0x000012bc
-_08096AA4: .4byte 0x000012be
-_08096AA8: .4byte 0x0000dacb
-_08096AAC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08096AC4 @ =sub_8096AFC
- bl SetVBlankCallback
- b _08096AD8
- .align 2, 0
-_08096AC4: .4byte sub_8096AFC
-_08096AC8:
- bl sub_8096874
- ldr r0, _08096AEC @ =sub_8096C68
- bl sub_8096BE0
- ldr r0, _08096AF0 @ =sub_8096B38
- bl SetMainCallback2
-_08096AD8:
- ldr r1, _08096AF4 @ =gMain
- ldr r0, _08096AF8 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08096AE4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096AEC: .4byte sub_8096C68
-_08096AF0: .4byte sub_8096B38
-_08096AF4: .4byte gMain
-_08096AF8: .4byte 0x0000043c
- thumb_func_end sub_80969A0
-
- thumb_func_start sub_8096AFC
-sub_8096AFC: @ 8096AFC
- push {lr}
- ldr r2, _08096B2C @ =REG_BG2HOFS
- ldr r1, _08096B30 @ =gSharedMem
- ldr r3, _08096B34 @ =0x000008b4
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x4
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_809CFF0
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B2C: .4byte REG_BG2HOFS
-_08096B30: .4byte gSharedMem
-_08096B34: .4byte 0x000008b4
- thumb_func_end sub_8096AFC
-
- thumb_func_start sub_8096B38
-sub_8096B38: @ 8096B38
- push {lr}
- ldr r0, _08096B58 @ =gSharedMem
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8097E44
- bl sub_8098734
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_08096B58: .4byte gSharedMem
- thumb_func_end sub_8096B38
-
- thumb_func_start sub_8096B5C
-sub_8096B5C: @ 8096B5C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08096B70 @ =gSharedMem
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08096B74
- cmp r0, 0x1
- beq _08096BAC
- b _08096BCC
- .align 2, 0
-_08096B70: .4byte gSharedMem
-_08096B74:
- ldr r1, _08096B98 @ =0x00002690
- adds r0, r4, r1
- ldr r0, [r0]
- ldr r2, _08096B9C @ =0x0000268d
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r3, _08096BA0 @ =0x0000268c
- adds r2, r4, r3
- ldrb r2, [r2]
- ldr r3, _08096BA4 @ =sub_80969A0
- ldr r5, _08096BA8 @ =0x0000268e
- adds r4, r5
- ldrb r4, [r4]
- str r4, [sp]
- bl ShowPokemonSummaryScreen
- b _08096BCC
- .align 2, 0
-_08096B98: .4byte 0x00002690
-_08096B9C: .4byte 0x0000268d
-_08096BA0: .4byte 0x0000268c
-_08096BA4: .4byte sub_80969A0
-_08096BA8: .4byte 0x0000268e
-_08096BAC:
- ldr r0, _08096BD4 @ =gPokemonStorage
- ldrb r2, [r0]
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _08096BD8 @ =0x00008344
- adds r0, r2
- adds r1, r0
- movs r0, 0
- str r0, [sp]
- ldr r0, _08096BDC @ =sub_80969A0
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
-_08096BCC:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096BD4: .4byte gPokemonStorage
-_08096BD8: .4byte 0x00008344
-_08096BDC: .4byte sub_80969A0
- thumb_func_end sub_8096B5C
-
- thumb_func_start sub_8096BE0
-sub_8096BE0: @ 8096BE0
- ldr r1, _08096BEC @ =gSharedMem
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08096BEC: .4byte gSharedMem
- thumb_func_end sub_8096BE0
-
- thumb_func_start sub_8096BF0
-sub_8096BF0: @ 8096BF0
- push {r4,lr}
- ldr r4, _08096C04 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _08096C16
- cmp r0, 0x1
- bgt _08096C08
- cmp r0, 0
- beq _08096C0E
- b _08096C5C
- .align 2, 0
-_08096C04: .4byte gSharedMem
-_08096C08:
- cmp r0, 0x2
- beq _08096C4C
- b _08096C5C
-_08096C0E:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- b _08096C38
-_08096C16:
- movs r0, 0x2
- bl PlaySE
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08096C48 @ =0x0000dad0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5CD4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
-_08096C38:
- movs r2, 0
- bl BlendPalettes
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096C5C
- .align 2, 0
-_08096C48: .4byte 0x0000dad0
-_08096C4C:
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08096C5C
- ldr r0, _08096C64 @ =sub_8096C84
- bl sub_8096BE0
-_08096C5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C64: .4byte sub_8096C84
- thumb_func_end sub_8096BF0
-
- thumb_func_start sub_8096C68
-sub_8096C68: @ 8096C68
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08096C7A
- ldr r0, _08096C80 @ =sub_8096C84
- bl sub_8096BE0
-_08096C7A:
- pop {r0}
- bx r0
- .align 2, 0
-_08096C80: .4byte sub_8096C84
- thumb_func_end sub_8096C68
-
- thumb_func_start sub_8096C84
-sub_8096C84: @ 8096C84
- push {r4,lr}
- ldr r0, _08096C9C @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _08096C90
- b _08096FBA
-_08096C90:
- lsls r0, 2
- ldr r1, _08096CA0 @ =_08096CA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096C9C: .4byte gSharedMem
-_08096CA0: .4byte _08096CA4
- .align 2, 0
-_08096CA4:
- .4byte _08096CC0
- .4byte _08096EE0
- .4byte _08096F1C
- .4byte _08096F60
- .4byte _08096F80
- .4byte _08096F8A
- .4byte _08096FA4
-_08096CC0:
- bl sub_809CA40
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0xF
- bls _08096CD0
- b _08096FBA
-_08096CD0:
- lsls r0, 2
- ldr r1, _08096CDC @ =_08096CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096CDC: .4byte _08096CE0
- .align 2, 0
-_08096CE0:
- .4byte _08096D20
- .4byte _08096FBA
- .4byte _08096FBA
- .4byte _08096D94
- .4byte _08096D34
- .4byte _08096D5C
- .4byte _08096DAC
- .4byte _08096DC0
- .4byte _08096DD4
- .4byte _08096DFC
- .4byte _08096E30
- .4byte _08096EB8
- .4byte _08096E70
- .4byte _08096E8C
- .4byte _08096ECC
- .4byte _08096DA0
-_08096D20:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08096D30 @ =gSharedMem
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D30: .4byte gSharedMem
-_08096D34:
- ldr r4, _08096D48 @ =gSharedMem
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D4C
- movs r0, 0x10
- bl sub_8098898
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096D48: .4byte gSharedMem
-_08096D4C:
- bl sub_809B0D4
- ldr r0, _08096D58 @ =sub_8096FC8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D58: .4byte sub_8096FC8
-_08096D5C:
- ldr r4, _08096D88 @ =gSharedMem
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- beq _08096D66
- b _08096FBA
-_08096D66:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08096D80
- ldr r1, _08096D8C @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- bne _08096E4C
-_08096D80:
- ldr r0, _08096D90 @ =sub_8097004
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D88: .4byte gSharedMem
-_08096D8C: .4byte 0x000011f2
-_08096D90: .4byte sub_8097004
-_08096D94:
- ldr r0, _08096D9C @ =sub_8097BA0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096D9C: .4byte sub_8097BA0
-_08096DA0:
- ldr r0, _08096DA8 @ =sub_8097CC0
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DA8: .4byte sub_8097CC0
-_08096DAC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DBC @ =sub_809789C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DBC: .4byte sub_809789C
-_08096DC0:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096DD0 @ =sub_8097078
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096DD0: .4byte sub_8097078
-_08096DD4:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096DF0 @ =gSharedMem
- ldr r0, _08096DF4 @ =gPokemonStorage
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r2, _08096DF8 @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0xD
- ble _08096E18
- movs r0, 0
- b _08096E16
- .align 2, 0
-_08096DF0: .4byte gSharedMem
-_08096DF4: .4byte gPokemonStorage
-_08096DF8: .4byte 0x000008b2
-_08096DFC:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08096E24 @ =gSharedMem
- ldr r0, _08096E28 @ =gPokemonStorage
- ldrb r0, [r0]
- subs r0, 0x1
- ldr r2, _08096E2C @ =0x000008b2
- adds r1, r4, r2
- strh r0, [r1]
- cmp r0, 0
- bge _08096E18
- movs r0, 0xD
-_08096E16:
- strh r0, [r1]
-_08096E18:
- ldrb r0, [r1]
- bl sub_8099C70
- movs r0, 0x2
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E24: .4byte gSharedMem
-_08096E28: .4byte gPokemonStorage
-_08096E2C: .4byte 0x000008b2
-_08096E30:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- ldr r4, _08096E54 @ =gSharedMem
- ldr r1, _08096E58 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _08096E5C
-_08096E4C:
- movs r0, 0x5
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096E54: .4byte gSharedMem
-_08096E58: .4byte 0x000011f2
-_08096E5C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E6C @ =sub_809746C
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E6C: .4byte sub_809746C
-_08096E70:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _08096E96
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096E88 @ =sub_80972A8
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096E88: .4byte sub_80972A8
-_08096E8C:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- bne _08096EA4
-_08096E96:
- ldr r1, _08096EA0 @ =gSharedMem
- movs r0, 0x4
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096EA0: .4byte gSharedMem
-_08096EA4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EB4 @ =c3_0808DC50
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EB4: .4byte c3_0808DC50
-_08096EB8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EC8 @ =sub_8097390
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EC8: .4byte sub_8097390
-_08096ECC:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08096EDC @ =sub_80972FC
- bl sub_8096BE0
- b _08096FBA
- .align 2, 0
-_08096EDC: .4byte sub_80972FC
-_08096EE0:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- bl sub_809BF48
- lsls r0, 24
- cmp r0, 0
- beq _08096EFA
- bl sub_80986E8
- b _08096EFE
-_08096EFA:
- bl sub_8098710
-_08096EFE:
- ldr r4, _08096F14 @ =gSharedMem
- ldr r2, _08096F18 @ =0x000011f6
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096F0E
- bl BoxSetMosaic
-_08096F0E:
- movs r0, 0
- strb r0, [r4, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F14: .4byte gSharedMem
-_08096F18: .4byte 0x000011f6
-_08096F1C:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08096FBA
- ldr r1, _08096F50 @ =gPokemonStorage
- ldr r0, _08096F54 @ =gSharedMem
- ldr r2, _08096F58 @ =0x000008b2
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08096F5C @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096F70
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- bne _08096F70
- bl sub_809B440
- bl BoxSetMosaic
- b _08096F70
- .align 2, 0
-_08096F50: .4byte gPokemonStorage
-_08096F54: .4byte gSharedMem
-_08096F58: .4byte 0x000008b2
-_08096F5C: .4byte gUnknown_0203847C
-_08096F60:
- ldr r0, _08096F78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
-_08096F70:
- ldr r1, _08096F7C @ =gSharedMem
- movs r0, 0
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096F78: .4byte gMain
-_08096F7C: .4byte gSharedMem
-_08096F80:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08096F92
-_08096F8A:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08096F92:
- bl sub_8098898
- ldr r1, _08096FA0 @ =gSharedMem
- movs r0, 0x6
- strb r0, [r1, 0x4]
- b _08096FBA
- .align 2, 0
-_08096FA0: .4byte gSharedMem
-_08096FA4:
- ldr r0, _08096FC0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08096FBA
- bl sub_8098A5C
- ldr r0, _08096FC4 @ =sub_8096C84
- bl sub_8096BE0
-_08096FBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096FC0: .4byte gMain
-_08096FC4: .4byte sub_8096C84
- thumb_func_end sub_8096C84
-
- thumb_func_start sub_8096FC8
-sub_8096FC8: @ 8096FC8
- push {r4,lr}
- ldr r4, _08096FD8 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08096FDC
- cmp r0, 0x1
- beq _08096FE8
- b _08096FF8
- .align 2, 0
-_08096FD8: .4byte gSharedMem
-_08096FDC:
- bl sub_809880C
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08096FF8
-_08096FE8:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08096FF8
- ldr r0, _08097000 @ =sub_8096C84
- bl sub_8096BE0
-_08096FF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097000: .4byte sub_8096C84
- thumb_func_end sub_8096FC8
-
- thumb_func_start sub_8097004
-sub_8097004: @ 8097004
- push {r4,lr}
- ldr r4, _08097018 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0x1
- beq _0809702E
- cmp r0, 0x1
- bgt _0809701C
- cmp r0, 0
- beq _08097022
- b _0809706A
- .align 2, 0
-_08097018: .4byte gSharedMem
-_0809701C:
- cmp r0, 0x2
- beq _0809704C
- b _0809706A
-_08097022:
- movs r0, 0x5
- bl PlaySE
- bl add_to_c3_somehow
- b _08097044
-_0809702E:
- bl sub_80985CC
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- bl sub_809B0F4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809B0C0
-_08097044:
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809706A
-_0809704C:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _0809706A
- ldr r1, _08097070 @ =0x000011f6
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097064
- bl BoxSetMosaic
-_08097064:
- ldr r0, _08097074 @ =sub_8096C84
- bl sub_8096BE0
-_0809706A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097070: .4byte 0x000011f6
-_08097074: .4byte sub_8096C84
- thumb_func_end sub_8097004
-
- thumb_func_start sub_8097078
-sub_8097078: @ 8097078
- push {r4,lr}
- ldr r0, _08097090 @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bls _08097084
- b _0809729A
-_08097084:
- lsls r0, 2
- ldr r1, _08097094 @ =_08097098
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097090: .4byte gSharedMem
-_08097094: .4byte _08097098
- .align 2, 0
-_08097098:
- .4byte _080970B0
- .4byte _080970C8
- .4byte _08097258
- .4byte _0809726C
- .4byte _08097262
- .4byte _08097284
-_080970B0:
- movs r0, 0x4
- bl sub_8098898
- bl sub_809CE84
- ldr r1, _080970C4 @ =gSharedMem
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080970C4: .4byte gSharedMem
-_080970C8:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bls _080970D8
- b _0809729A
-_080970D8:
- lsls r0, 2
- ldr r1, _080970E4 @ =_080970E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080970E4: .4byte _080970E8
- .align 2, 0
-_080970E8:
- .4byte _08097110
- .4byte _08097110
- .4byte _08097190
- .4byte _08097178
- .4byte _08097120
- .4byte _08097158
- .4byte _08097140
- .4byte _08097230
- .4byte _080971CC
- .4byte _08097244
-_08097110:
- bl sub_8098A5C
- ldr r0, _0809711C @ =sub_8096C84
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809711C: .4byte sub_8096C84
-_08097120:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809713C @ =sub_80972A8
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809713C: .4byte sub_80972A8
-_08097140:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097154 @ =sub_80972FC
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097154: .4byte sub_80972FC
-_08097158:
- bl sub_809BEBC
- lsls r0, 24
- cmp r0, 0
- beq _080971D6
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097174 @ =c3_0808DC50
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097174: .4byte c3_0808DC50
-_08097178:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _0809718C @ =sub_8097390
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809718C: .4byte sub_8097390
-_08097190:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- bne _080971D6
- ldr r4, _080971C0 @ =gSharedMem
- ldr r1, _080971C4 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- bne _08097210
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _080971C8 @ =sub_809746C
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_080971C0: .4byte gSharedMem
-_080971C4: .4byte 0x000011f2
-_080971C8: .4byte sub_809746C
-_080971CC:
- bl sub_809BE80
- lsls r0, 24
- cmp r0, 0
- beq _080971E4
-_080971D6:
- ldr r1, _080971E0 @ =gSharedMem
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_080971E0: .4byte gSharedMem
-_080971E4:
- ldr r4, _080971F8 @ =gSharedMem
- ldr r1, _080971FC @ =0x000011f9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097200
- movs r0, 0x4
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_080971F8: .4byte gSharedMem
-_080971FC: .4byte 0x000011f9
-_08097200:
- ldr r1, _08097218 @ =0x000011f2
- adds r0, r4, r1
- ldrh r0, [r0]
- bl ItemIsMail
- lsls r0, 24
- cmp r0, 0
- beq _0809721C
-_08097210:
- movs r0, 0x3
- strb r0, [r4, 0x4]
- b _0809729A
- .align 2, 0
-_08097218: .4byte 0x000011f2
-_0809721C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809722C @ =sub_8097594
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_0809722C: .4byte sub_8097594
-_08097230:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097240 @ =sub_8097788
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097240: .4byte sub_8097788
-_08097244:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08097254 @ =sub_80977E4
- bl sub_8096BE0
- b _0809729A
- .align 2, 0
-_08097254: .4byte sub_80977E4
-_08097258:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xD
- b _08097274
-_08097262:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x11
- b _08097274
-_0809726C:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x16
-_08097274:
- bl sub_8098898
- ldr r1, _08097280 @ =gSharedMem
- movs r0, 0x5
- strb r0, [r1, 0x4]
- b _0809729A
- .align 2, 0
-_08097280: .4byte gSharedMem
-_08097284:
- ldr r0, _080972A0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _0809729A
- bl sub_8098A5C
- ldr r0, _080972A4 @ =sub_8096C84
- bl sub_8096BE0
-_0809729A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972A0: .4byte gMain
-_080972A4: .4byte sub_8096C84
- thumb_func_end sub_8097078
-
- thumb_func_start sub_80972A8
-sub_80972A8: @ 80972A8
- push {r4,lr}
- ldr r4, _080972B8 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080972BC
- cmp r0, 0x1
- beq _080972CA
- b _080972F2
- .align 2, 0
-_080972B8: .4byte gSharedMem
-_080972BC:
- movs r0, 0
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _080972F2
-_080972CA:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _080972F2
- ldr r0, _080972E4 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080972EC
- ldr r0, _080972E8 @ =sub_8097858
- bl sub_8096BE0
- b _080972F2
- .align 2, 0
-_080972E4: .4byte gUnknown_0203847C
-_080972E8: .4byte sub_8097858
-_080972EC:
- ldr r0, _080972F8 @ =sub_8096C84
- bl sub_8096BE0
-_080972F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080972F8: .4byte sub_8096C84
- thumb_func_end sub_80972A8
-
- thumb_func_start sub_80972FC
-sub_80972FC: @ 80972FC
- push {r4,lr}
- ldr r4, _0809730C @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097310
- cmp r0, 0x1
- beq _0809731E
- b _08097346
- .align 2, 0
-_0809730C: .4byte gSharedMem
-_08097310:
- movs r0, 0x1
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097346
-_0809731E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097346
- ldr r0, _08097338 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097340
- ldr r0, _0809733C @ =sub_8097858
- bl sub_8096BE0
- b _08097346
- .align 2, 0
-_08097338: .4byte gUnknown_0203847C
-_0809733C: .4byte sub_8097858
-_08097340:
- ldr r0, _0809734C @ =sub_8096C84
- bl sub_8096BE0
-_08097346:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809734C: .4byte sub_8096C84
- thumb_func_end sub_80972FC
-
- thumb_func_start c3_0808DC50
-c3_0808DC50: @ 8097350
- push {r4,lr}
- ldr r4, _08097360 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08097364
- cmp r0, 0x1
- beq _08097372
- b _08097386
- .align 2, 0
-_08097360: .4byte gSharedMem
-_08097364:
- movs r0, 0x2
- bl sub_809B100
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097386
-_08097372:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097386
- bl BoxSetMosaic
- ldr r0, _0809738C @ =sub_8096C84
- bl sub_8096BE0
-_08097386:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809738C: .4byte sub_8096C84
- thumb_func_end c3_0808DC50
-
- thumb_func_start sub_8097390
-sub_8097390: @ 8097390
- push {lr}
- ldr r0, _080973A4 @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0x5
- bhi _08097462
- lsls r0, 2
- ldr r1, _080973A8 @ =_080973AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080973A4: .4byte gSharedMem
-_080973A8: .4byte _080973AC
- .align 2, 0
-_080973AC:
- .4byte _080973C4
- .4byte _080973FC
- .4byte _0809741C
- .4byte _0809742C
- .4byte _0809743E
- .4byte _0809745C
-_080973C4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080973E4
- movs r0, 0xE
- bl sub_8098898
- ldr r1, _080973E0 @ =gSharedMem
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973E0: .4byte gSharedMem
-_080973E4:
- bl sub_809B0E0
- movs r0, 0
- bl sub_809B100
- ldr r1, _080973F8 @ =gSharedMem
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_080973F8: .4byte gSharedMem
-_080973FC:
- ldr r0, _08097414 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097462
- bl sub_8098A5C
- ldr r0, _08097418 @ =sub_8096C84
- bl sub_8096BE0
- b _08097462
- .align 2, 0
-_08097414: .4byte gMain
-_08097418: .4byte sub_8096C84
-_0809741C:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_809880C
- b _0809744C
-_0809742C:
- bl sub_8098830
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- movs r0, 0x1
- bl sub_809B100
- b _0809744C
-_0809743E:
- bl sub_809B130
- lsls r0, 24
- cmp r0, 0
- bne _08097462
- bl sub_80987DC
-_0809744C:
- ldr r1, _08097458 @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097462
- .align 2, 0
-_08097458: .4byte gSharedMem
-_0809745C:
- ldr r0, _08097468 @ =sub_8097004
- bl sub_8096BE0
-_08097462:
- pop {r0}
- bx r0
- .align 2, 0
-_08097468: .4byte sub_8097004
- thumb_func_end sub_8097390
-
- thumb_func_start sub_809746C
-sub_809746C: @ 809746C
- push {r4,lr}
- ldr r0, _08097484 @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0x4
- bls _08097478
- b _08097584
-_08097478:
- lsls r0, 2
- ldr r1, _08097488 @ =_0809748C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097484: .4byte gSharedMem
-_08097488: .4byte _0809748C
- .align 2, 0
-_0809748C:
- .4byte _080974A0
- .4byte _080974D8
- .4byte _08097534
- .4byte _08097548
- .4byte _0809756C
-_080974A0:
- movs r0, 0x6
- bl sub_8098898
- ldr r4, _080974C8 @ =gSharedMem + 0x2370
- ldr r2, _080974CC @ =0x0000daca
- adds r0, r4, 0
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _080974D0 @ =gUnknown_0203847E
- ldrb r0, [r0]
- bl sub_809634C
- ldr r0, _080974D4 @ =0xffffdc90
- adds r4, r0
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097584
- .align 2, 0
-_080974C8: .4byte gSharedMem + 0x2370
-_080974CC: .4byte 0x0000daca
-_080974D0: .4byte gUnknown_0203847E
-_080974D4: .4byte 0xffffdc90
-_080974D8:
- bl sub_8096368
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC8
- beq _08097584
- cmp r4, 0xC9
- bne _080974F6
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- b _0809755E
-_080974F6:
- adds r0, r4, 0
- bl sub_809B62C
- lsls r0, 24
- cmp r0, 0
- beq _08097518
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- ldr r1, _08097514 @ =gSharedMem
- movs r0, 0x2
- b _08097522
- .align 2, 0
-_08097514: .4byte gSharedMem
-_08097518:
- movs r0, 0x8
- bl sub_8098898
- ldr r1, _0809752C @ =gSharedMem
- movs r0, 0x4
-_08097522:
- strb r0, [r1, 0x4]
- ldr r0, _08097530 @ =gUnknown_0203847E
- strb r4, [r0]
- b _08097584
- .align 2, 0
-_0809752C: .4byte gSharedMem
-_08097530: .4byte gUnknown_0203847E
-_08097534:
- bl party_compaction
- bl sub_8099310
- ldr r1, _08097544 @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- b _08097582
- .align 2, 0
-_08097544: .4byte gSharedMem
-_08097548:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097584
- bl sub_809B6BC
- bl BoxSetMosaic
- bl sub_80987DC
-_0809755E:
- ldr r0, _08097568 @ =sub_8096C84
- bl sub_8096BE0
- b _08097584
- .align 2, 0
-_08097568: .4byte sub_8096C84
-_0809756C:
- ldr r0, _0809758C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08097584
- movs r0, 0x6
- bl sub_8098898
- ldr r1, _08097590 @ =gSharedMem
- movs r0, 0x1
-_08097582:
- strb r0, [r1, 0x4]
-_08097584:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809758C: .4byte gMain
-_08097590: .4byte gSharedMem
- thumb_func_end sub_809746C
-
- thumb_func_start sub_8097594
-sub_8097594: @ 8097594
- push {r4,lr}
- ldr r0, _080975AC @ =gSharedMem
- ldrb r0, [r0, 0x4]
- cmp r0, 0xD
- bls _080975A0
- b _0809777A
-_080975A0:
- lsls r0, 2
- ldr r1, _080975B0 @ =_080975B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080975AC: .4byte gSharedMem
-_080975B0: .4byte _080975B4
- .align 2, 0
-_080975B4:
- .4byte _080975EC
- .4byte _08097600
- .4byte _0809763A
- .4byte _0809766E
- .4byte _0809767A
- .4byte _08097690
- .4byte _080976C8
- .4byte _080976E0
- .4byte _080976EC
- .4byte _080976F0
- .4byte _08097704
- .4byte _08097720
- .4byte _08097732
- .4byte _08097764
-_080975EC:
- movs r0, 0x9
- bl sub_8098898
- movs r0, 0x1
- bl sub_8098A38
- ldr r1, _0809761C @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
-_08097600:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0809762C
- cmp r1, 0
- bgt _08097620
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097626
- b _0809777A
- .align 2, 0
-_0809761C: .4byte gSharedMem
-_08097620:
- cmp r1, 0x1
- beq _08097626
- b _0809777A
-_08097626:
- bl sub_8098A5C
- b _080976E0
-_0809762C:
- bl sub_8098A5C
- bl sub_809B7D4
- bl sub_809B6DC
- b _08097744
-_0809763A:
- bl sub_809B960
- bl sub_809B734
- lsls r0, 24
- cmp r0, 0
- beq _0809764A
- b _0809777A
-_0809764A:
- ldr r4, _08097650 @ =gSharedMem
- b _0809765A
- .align 2, 0
-_08097650: .4byte gSharedMem
-_08097654:
- cmp r0, 0
- bne _0809765A
- b _08097758
-_0809765A:
- bl sub_809B960
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _08097654
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809777A
-_0809766E:
- bl sub_809B760
- bl sub_809801C
- movs r0, 0xA
- b _08097740
-_0809767A:
- ldr r0, _0809768C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08097688
- b _0809777A
-_08097688:
- movs r0, 0xB
- b _08097740
- .align 2, 0
-_0809768C: .4byte gMain
-_08097690:
- ldr r0, _080976B4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _080976B8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080976BC
- bl party_compaction
- bl sub_8099310
- b _08097744
- .align 2, 0
-_080976B4: .4byte gMain
-_080976B8: .4byte gUnknown_0203847C
-_080976BC:
- ldr r1, _080976C4 @ =gSharedMem
- movs r0, 0x7
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_080976C4: .4byte gSharedMem
-_080976C8:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B440
- bl BoxSetMosaic
- bl sub_80987DC
- b _08097744
-_080976E0:
- ldr r0, _080976E8 @ =sub_8096C84
- bl sub_8096BE0
- b _0809777A
- .align 2, 0
-_080976E8: .4byte sub_8096C84
-_080976EC:
- movs r0, 0xA
- b _08097740
-_080976F0:
- ldr r0, _08097700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x15
- b _08097740
- .align 2, 0
-_08097700: .4byte gMain
-_08097704:
- ldr r0, _0809771C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- bl sub_8099958
- b _08097744
- .align 2, 0
-_0809771C: .4byte gMain
-_08097720:
- bl sub_8099990
- lsls r0, 24
- cmp r0, 0
- bne _0809777A
- bl sub_809B7AC
- movs r0, 0x13
- b _08097740
-_08097732:
- ldr r0, _08097750 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- movs r0, 0x14
-_08097740:
- bl sub_8098898
-_08097744:
- ldr r1, _08097754 @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097750: .4byte gMain
-_08097754: .4byte gSharedMem
-_08097758:
- ldr r1, _08097760 @ =gSharedMem
- movs r0, 0x8
- strb r0, [r1, 0x4]
- b _0809777A
- .align 2, 0
-_08097760: .4byte gSharedMem
-_08097764:
- ldr r0, _08097780 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0809777A
- bl sub_8098A5C
- ldr r0, _08097784 @ =sub_8096C84
- bl sub_8096BE0
-_0809777A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097780: .4byte gMain
-_08097784: .4byte sub_8096C84
- thumb_func_end sub_8097594
-
- thumb_func_start sub_8097788
-sub_8097788: @ 8097788
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0809779C @ =gSharedMem
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _080977A0
- cmp r4, 0x1
- beq _080977BC
- b _080977D4
- .align 2, 0
-_0809779C: .4byte gSharedMem
-_080977A0:
- bl sub_809BC18
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _080977D4
-_080977BC:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080977D4
- ldr r0, _080977DC @ =gUnknown_0203847F
- strb r1, [r0]
- strb r1, [r5, 0x6]
- ldr r0, _080977E0 @ =sub_8096B5C
- bl SetMainCallback2
-_080977D4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080977DC: .4byte gUnknown_0203847F
-_080977E0: .4byte sub_8096B5C
- thumb_func_end sub_8097788
-
- thumb_func_start sub_80977E4
-sub_80977E4: @ 80977E4
- push {r4,lr}
- ldr r4, _080977F4 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080977F8
- cmp r0, 0x1
- beq _08097824
- b _0809784C
- .align 2, 0
-_080977F4: .4byte gSharedMem
-_080977F8:
- movs r0, 0xC
- bl sub_8098898
- ldr r0, _08097820 @ =0x000011f7
- adds r2, r4, r0
- ldrb r1, [r2]
- movs r3, 0x96
- lsls r3, 5
- adds r0, r4, r3
- strb r1, [r0]
- ldrb r0, [r2]
- movs r1, 0xB0
- movs r2, 0x10
- bl sub_80F7418
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _0809784C
- .align 2, 0
-_08097820: .4byte 0x000011f7
-_08097824:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _0809784C
- bl sub_80F7470
- bl sub_8098A5C
- movs r1, 0x96
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_809BDD8
- bl sub_809801C
- ldr r0, _08097854 @ =sub_8096C84
- bl sub_8096BE0
-_0809784C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097854: .4byte sub_8096C84
- thumb_func_end sub_80977E4
-
- thumb_func_start sub_8097858
-sub_8097858: @ 8097858
- push {r4,lr}
- ldr r4, _08097868 @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _0809786C
- cmp r0, 0x1
- beq _0809787C
- b _08097890
- .align 2, 0
-_08097868: .4byte gSharedMem
-_0809786C:
- bl party_compaction
- bl sub_8099310
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097890
-_0809787C:
- bl sub_8099374
- lsls r0, 24
- cmp r0, 0
- bne _08097890
- bl sub_80987DC
- ldr r0, _08097898 @ =sub_8096C84
- bl sub_8096BE0
-_08097890:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097898: .4byte sub_8096C84
- thumb_func_end sub_8097858
-
- thumb_func_start sub_809789C
-sub_809789C: @ 809789C
- push {r4,lr}
- ldr r4, _080978AC @ =gSharedMem
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080978B0
- cmp r0, 0x1
- beq _080978C2
- b _08097968
- .align 2, 0
-_080978AC: .4byte gSharedMem
-_080978B0:
- movs r0, 0x1
- bl sub_8098898
- bl sub_809CE84
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097968
-_080978C2:
- bl sub_809CF30
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bhi _08097968
- lsls r0, 2
- ldr r1, _080978DC @ =_080978E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080978DC: .4byte _080978E0
- .align 2, 0
-_080978E0:
- .4byte _08097914
- .4byte _08097914
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097968
- .4byte _08097958
- .4byte _08097940
- .4byte _0809792C
-_08097914:
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _08097928 @ =sub_8096C84
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097928: .4byte sub_8096C84
-_0809792C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0809793C @ =sub_8097B44
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_0809793C: .4byte sub_8097B44
-_08097940:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097954 @ =sub_8097974
- bl sub_8096BE0
- b _08097968
- .align 2, 0
-_08097954: .4byte sub_8097974
-_08097958:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldr r0, _08097970 @ =sub_8097A64
- bl sub_8096BE0
-_08097968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097970: .4byte sub_8097A64
- thumb_func_end sub_809789C
-
- thumb_func_start sub_8097974
-sub_8097974: @ 8097974
- push {r4,r5,lr}
- ldr r5, _08097988 @ =gSharedMem
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _080979A2
- cmp r0, 0x1
- bgt _0809798C
- cmp r0, 0
- beq _08097996
- b _08097A5A
- .align 2, 0
-_08097988: .4byte gSharedMem
-_0809798C:
- cmp r0, 0x2
- beq _080979FC
- cmp r0, 0x3
- beq _08097A44
- b _08097A5A
-_08097996:
- bl sub_8098A80
- movs r0, 0x2
- bl sub_8098898
- b _08097A3C
-_080979A2:
- bl sub_809CF30
- ldr r1, _080979CC @ =0x00000d5e
- adds r4, r5, r1
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080979D4
- movs r0, 0x1
- bl sub_809A860
- bl sub_8098A5C
- ldr r0, _080979D0 @ =sub_8096C84
- bl sub_8096BE0
- b _08097A5A
- .align 2, 0
-_080979CC: .4byte 0x00000d5e
-_080979D0: .4byte sub_8096C84
-_080979D4:
- cmp r0, r1
- blt _08097A5A
- cmp r0, 0xF
- bgt _08097A5A
- cmp r0, 0xC
- blt _08097A5A
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- subs r0, 0xC
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8098AA8
- movs r0, 0x3
- bl sub_8098898
- b _08097A3C
-_080979FC:
- bl sub_809CF30
- movs r1, 0xD6
- lsls r1, 4
- adds r4, r5, r1
- strh r0, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08097A5A
- adds r0, 0x1
- cmp r1, r0
- bne _08097A24
- bl sub_8098A5C
- movs r0, 0
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A24:
- movs r0, 0x5
- bl PlaySE
- bl sub_8098A5C
- ldrh r0, [r4]
- subs r0, 0x10
- strh r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8099DCC
-_08097A3C:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097A5A
-_08097A44:
- bl sub_8099E08
- lsls r0, 24
- cmp r0, 0
- bne _08097A5A
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097A60 @ =sub_8096C84
- bl sub_8096BE0
-_08097A5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097A60: .4byte sub_8096C84
- thumb_func_end sub_8097974
-
- thumb_func_start sub_8097A64
-sub_8097A64: @ 8097A64
- push {r4,r5,lr}
- ldr r5, _08097A78 @ =gSharedMem
- ldrb r0, [r5, 0x4]
- cmp r0, 0x1
- beq _08097AB0
- cmp r0, 0x1
- bgt _08097A7C
- cmp r0, 0
- beq _08097A86
- b _08097B32
- .align 2, 0
-_08097A78: .4byte gSharedMem
-_08097A7C:
- cmp r0, 0x2
- beq _08097B00
- cmp r0, 0x3
- beq _08097B18
- b _08097B32
-_08097A86:
- movs r0, 0x5
- bl sub_8098898
- ldr r1, _08097AA4 @ =0x00002370
- adds r0, r5, r1
- ldr r2, _08097AA8 @ =0x0000daca
- movs r1, 0x7
- movs r3, 0x3
- bl sub_8096264
- ldr r0, _08097AAC @ =gPokemonStorage
- ldrb r0, [r0]
- bl sub_809634C
- b _08097B0A
- .align 2, 0
-_08097AA4: .4byte 0x00002370
-_08097AA8: .4byte 0x0000daca
-_08097AAC: .4byte gPokemonStorage
-_08097AB0:
- bl sub_8096368
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08097AF4 @ =0x000008b2
- adds r4, r5, r2
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- beq _08097B32
- bl sub_8098A5C
- bl sub_809635C
- bl sub_8096310
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0xC9
- beq _08097AE4
- adds r1, r0, 0
- ldr r0, _08097AF8 @ =gPokemonStorage
- ldrb r0, [r0]
- cmp r1, r0
- bne _08097B0A
-_08097AE4:
- movs r0, 0x1
- bl sub_809A860
- ldr r0, _08097AFC @ =sub_8096C84
- bl sub_8096BE0
- b _08097B32
- .align 2, 0
-_08097AF4: .4byte 0x000008b2
-_08097AF8: .4byte gPokemonStorage
-_08097AFC: .4byte sub_8096C84
-_08097B00:
- ldr r1, _08097B14 @ =0x000008b2
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_8099C70
-_08097B0A:
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B32
- .align 2, 0
-_08097B14: .4byte 0x000008b2
-_08097B18:
- bl sub_8099D34
- lsls r0, 24
- cmp r0, 0
- bne _08097B32
- ldr r1, _08097B38 @ =gPokemonStorage
- ldr r2, _08097B3C @ =0x000008b2
- adds r0, r5, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, _08097B40 @ =sub_8096C84
- bl sub_8096BE0
-_08097B32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B38: .4byte gPokemonStorage
-_08097B3C: .4byte 0x000008b2
-_08097B40: .4byte sub_8096C84
- thumb_func_end sub_8097A64
-
- thumb_func_start sub_8097B44
-sub_8097B44: @ 8097B44
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08097B58 @ =gSharedMem
- ldrb r4, [r5, 0x4]
- cmp r4, 0
- beq _08097B5C
- cmp r4, 0x1
- beq _08097B78
- b _08097B8E
- .align 2, 0
-_08097B58: .4byte gSharedMem
-_08097B5C:
- bl sub_809BB90
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5, 0x4]
- adds r0, 0x1
- strb r0, [r5, 0x4]
- b _08097B8E
-_08097B78:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08097B8E
- ldr r0, _08097B98 @ =gUnknown_0203847F
- strb r4, [r0]
- strb r4, [r5, 0x6]
- ldr r0, _08097B9C @ =sub_8096B5C
- bl SetMainCallback2
-_08097B8E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097B98: .4byte gUnknown_0203847F
-_08097B9C: .4byte sub_8096B5C
- thumb_func_end sub_8097B44
-
- thumb_func_start sub_8097BA0
-sub_8097BA0: @ 8097BA0
- push {r4,lr}
- ldr r0, _08097BB8 @ =gSharedMem
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097BAE
- b _08097CB0
-_08097BAE:
- lsls r0, r1, 2
- ldr r1, _08097BBC @ =_08097BC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097BB8: .4byte gSharedMem
-_08097BBC: .4byte _08097BC0
- .align 2, 0
-_08097BC0:
- .4byte _08097BD4
- .4byte _08097C18
- .4byte _08097C2C
- .4byte _08097C74
- .4byte _08097C98
-_08097BD4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097BF8
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097BF4 @ =gSharedMem
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097BF4: .4byte gSharedMem
-_08097BF8:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097C14 @ =gSharedMem
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C14: .4byte gSharedMem
-_08097C18:
- ldr r0, _08097C28 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097CB0
- b _08097C4A
- .align 2, 0
-_08097C28: .4byte gMain
-_08097C2C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097C5C
- cmp r1, 0
- bgt _08097C46
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097C4A
- b _08097CB0
-_08097C46:
- cmp r1, 0x1
- bne _08097CB0
-_08097C4A:
- bl sub_8098A5C
- ldr r0, _08097C58 @ =sub_8096C84
- bl sub_8096BE0
- b _08097CB0
- .align 2, 0
-_08097C58: .4byte sub_8096C84
-_08097C5C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097C70 @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C70: .4byte gSharedMem
-_08097C74:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097C94 @ =0x0000dad0
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097CB0
- .align 2, 0
-_08097C94: .4byte 0x0000dad0
-_08097C98:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097CB0
- bl CalculatePlayerPartyCount
- ldr r1, _08097CB8 @ =gPlayerPartyCount
- strb r0, [r1]
- ldr r0, _08097CBC @ =sub_80961A8
- bl SetMainCallback2
-_08097CB0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CB8: .4byte gPlayerPartyCount
-_08097CBC: .4byte sub_80961A8
- thumb_func_end sub_8097BA0
-
- thumb_func_start sub_8097CC0
-sub_8097CC0: @ 8097CC0
- push {r4,lr}
- ldr r0, _08097CD8 @ =gSharedMem
- ldrb r1, [r0, 0x4]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _08097CCE
- b _08097DD0
-_08097CCE:
- lsls r0, r1, 2
- ldr r1, _08097CDC @ =_08097CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097CD8: .4byte gSharedMem
-_08097CDC: .4byte _08097CE0
- .align 2, 0
-_08097CE0:
- .4byte _08097CF4
- .4byte _08097D38
- .4byte _08097D4C
- .4byte _08097D94
- .4byte _08097DB8
-_08097CF4:
- bl sub_809BF20
- lsls r0, 24
- cmp r0, 0
- beq _08097D18
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xF
- bl sub_8098898
- ldr r1, _08097D14 @ =gSharedMem
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D14: .4byte gSharedMem
-_08097D18:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x12
- bl sub_8098898
- movs r0, 0
- bl sub_8098A38
- ldr r1, _08097D34 @ =gSharedMem
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D34: .4byte gSharedMem
-_08097D38:
- ldr r0, _08097D48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF3
- ands r0, r1
- cmp r0, 0
- beq _08097DD0
- b _08097D6C
- .align 2, 0
-_08097D48: .4byte gMain
-_08097D4C:
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _08097D6C
- cmp r1, 0
- bgt _08097D66
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08097D7C
- b _08097DD0
-_08097D66:
- cmp r1, 0x1
- beq _08097D7C
- b _08097DD0
-_08097D6C:
- bl sub_8098A5C
- ldr r0, _08097D78 @ =sub_8096C84
- bl sub_8096BE0
- b _08097DD0
- .align 2, 0
-_08097D78: .4byte sub_8096C84
-_08097D7C:
- movs r0, 0x3
- bl PlaySE
- bl sub_8098A5C
- ldr r1, _08097D90 @ =gSharedMem
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08097DD0
- .align 2, 0
-_08097D90: .4byte gSharedMem
-_08097D94:
- movs r1, 0
- movs r0, 0xE
- strh r0, [r4, 0xC]
- ldr r0, _08097DB4 @ =0x0000dad0
- strh r0, [r4, 0xE]
- movs r0, 0x14
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80C5E38
- ldrb r0, [r4, 0x4]
- adds r0, 0x1
- strb r0, [r4, 0x4]
- b _08097DD0
- .align 2, 0
-_08097DB4: .4byte 0x0000dad0
-_08097DB8:
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08097DD0
- bl CalculatePlayerPartyCount
- ldr r1, _08097DD8 @ =gPlayerPartyCount
- strb r0, [r1]
- ldr r0, _08097DDC @ =sub_80961A8
- bl SetMainCallback2
-_08097DD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097DD8: .4byte gPlayerPartyCount
-_08097DDC: .4byte sub_80961A8
- thumb_func_end sub_8097CC0
-
- thumb_func_start sub_8097DE0
-sub_8097DE0: @ 8097DE0
- push {lr}
- ldr r1, _08097E1C @ =gSharedMem
- movs r0, 0
- strb r0, [r1, 0x7]
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- ldr r1, _08097E20 @ =REG_BG3CNT
- ldr r2, _08097E24 @ =0x00001e0f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile
- ldr r2, _08097E2C @ =0x0600e000
- ldr r0, _08097E30 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08097E34 @ =0x80000010
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap
- ldr r1, _08097E3C @ =0x0600f000
- bl LZ77UnCompVram
- ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette
- movs r1, 0xD0
- movs r2, 0x10
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08097E1C: .4byte gSharedMem
-_08097E20: .4byte REG_BG3CNT
-_08097E24: .4byte 0x00001e0f
-_08097E28: .4byte gPokemonStorageScrollingBGTile
-_08097E2C: .4byte 0x0600e000
-_08097E30: .4byte 0x040000d4
-_08097E34: .4byte 0x80000010
-_08097E38: .4byte gPokemonStorageScrollingBGTilemap
-_08097E3C: .4byte 0x0600f000
-_08097E40: .4byte gPokemonStorageScrollingBGPalette
- thumb_func_end sub_8097DE0
-
- thumb_func_start sub_8097E44
-sub_8097E44: @ 8097E44
- push {lr}
- ldr r1, _08097E6C @ =gSharedMem
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08097E66
- movs r0, 0
- strb r0, [r1, 0x7]
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08097E66:
- pop {r0}
- bx r0
- .align 2, 0
-_08097E6C: .4byte gSharedMem
- thumb_func_end sub_8097E44
-
- thumb_func_start sub_8097E70
-sub_8097E70: @ 8097E70
- push {r4,lr}
- sub sp, 0x10
- ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx
- ldr r1, _08097F30 @ =0x06005000
- bl LZ77UnCompVram
- ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap
- ldr r4, _08097F38 @ =gUnknown_02039760
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _08097F3C @ =0x06007800
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- movs r1, 0x14
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0
- adds r3, r4, 0
- bl sub_809D034
- ldr r0, _08097F40 @ =gPSSMenu1_Pal
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F44 @ =gPSSMenu2_Pal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F48 @ =gUnknown_083B6D74
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08097F4C @ =gUnknown_083B6D94
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2
- adds r0, r4, 0
- movs r1, 0xF1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xF2
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0xF3
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x16
- movs r1, 0xF4
- movs r2, 0x4
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x12
- movs r1, 0xF6
- movs r2, 0x4
- bl LoadPalette
- adds r4, 0x2
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _08097F54 @ =gWaveformSpritePalette
- bl LoadSpritePalette
- bl sub_80980D4
- bl sub_8097F58
- bl sub_8097FB8
- bl sub_809801C
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097F2C: .4byte gPSSMenuHeader_Gfx
-_08097F30: .4byte 0x06005000
-_08097F34: .4byte gPSSMenuHeader_Tilemap
-_08097F38: .4byte gUnknown_02039760
-_08097F3C: .4byte 0x06007800
-_08097F40: .4byte gPSSMenu1_Pal
-_08097F44: .4byte gPSSMenu2_Pal
-_08097F48: .4byte gUnknown_083B6D74
-_08097F4C: .4byte gUnknown_083B6D94
-_08097F50: .4byte gUnknownPalette_81E6692+0x2
-_08097F54: .4byte gWaveformSpritePalette
- thumb_func_end sub_8097E70
-
- thumb_func_start sub_8097F58
-sub_8097F58: @ 8097F58
- push {r4,lr}
- ldr r1, _08097FA4 @ =0x0000dace
- movs r0, 0xD
- movs r2, 0
- bl sub_80F7940
- ldr r4, _08097FA8 @ =gSharedMem
- ldr r1, _08097FAC @ =0x000012ac
- adds r3, r4, r1
- str r0, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- movs r0, 0x28
- strh r0, [r1, 0x20]
- ldr r1, [r3]
- movs r0, 0x95
- strh r0, [r1, 0x22]
- movs r0, 0xD
- bl GetSpriteTileStartByTag
- ldr r1, _08097FB0 @ =0x000012b8
- adds r4, r1
- lsls r0, 16
- lsrs r0, 11
- ldr r1, _08097FB4 @ =0x06010000
- adds r0, r1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08097FA4: .4byte 0x0000dace
-_08097FA8: .4byte gSharedMem
-_08097FAC: .4byte 0x000012ac
-_08097FB0: .4byte 0x000012b8
-_08097FB4: .4byte 0x06010000
- thumb_func_end sub_8097F58
-
- thumb_func_start sub_8097FB8
-sub_8097FB8: @ 8097FB8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0809800C @ =gWaveformSpriteSheet
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- movs r4, 0
- ldr r5, _08098010 @ =gSharedMem + 0x12B0
-_08097FD0:
- lsls r1, r4, 6
- subs r1, r4
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC
- movs r2, 0x9
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r4, 2
- adds r2, r5
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08098018 @ =gSprites
- adds r1, r0
- str r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08097FD0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809800C: .4byte gWaveformSpriteSheet
-_08098010: .4byte gSharedMem + 0x12B0
-_08098014: .4byte gSpriteTemplate_83B6EFC
-_08098018: .4byte gSprites
- thumb_func_end sub_8097FB8
-
- thumb_func_start sub_809801C
-sub_809801C: @ 809801C
- push {lr}
- ldr r1, _0809803C @ =gSharedMem
- ldr r2, _08098040 @ =0x000011f0
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- bl sub_80981F0
- bl sub_80982B4
- bl sub_8098350
- pop {r0}
- bx r0
- .align 2, 0
-_0809803C: .4byte gSharedMem
-_08098040: .4byte 0x000011f0
- thumb_func_end sub_809801C
-
- thumb_func_start BoxSetMosaic
-BoxSetMosaic: @ 8098044
- push {lr}
- bl sub_809801C
- ldr r0, _08098084 @ =gSharedMem
- movs r1, 0x9C
- lsls r1, 6
- adds r3, r0, r1
- ldr r2, [r3]
- cmp r2, 0
- beq _08098080
- ldrb r0, [r2, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r1, [r3]
- movs r0, 0xA
- strh r0, [r1, 0x2E]
- ldr r1, [r3]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, [r3]
- ldr r0, _08098088 @ =sub_8098090
- str r0, [r1, 0x1C]
- ldr r2, _0809808C @ =REG_MOSAIC
- ldr r0, [r3]
- ldrh r0, [r0, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
-_08098080:
- pop {r0}
- bx r0
- .align 2, 0
-_08098084: .4byte gSharedMem
-_08098088: .4byte sub_8098090
-_0809808C: .4byte REG_MOSAIC
- thumb_func_end BoxSetMosaic
-
- thumb_func_start sub_8098090
-sub_8098090: @ 8098090
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bge _080980A6
- movs r0, 0
- strh r0, [r3, 0x2E]
-_080980A6:
- ldr r2, _080980CC @ =REG_MOSAIC
- ldrh r0, [r3, 0x2E]
- lsls r1, r0, 12
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080980C8
- ldrb r0, [r3, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x1]
- ldr r0, _080980D0 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_080980C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080980CC: .4byte REG_MOSAIC
-_080980D0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098090
-
- thumb_func_start sub_80980D4
-sub_80980D4: @ 80980D4
- push {r4,r5,lr}
- sub sp, 0x28
- ldr r0, _08098150 @ =gUnknown_083B6DCC
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _08098154 @ =gUnknown_083B6DD4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r1, 0
- add r5, sp, 0x18
- ldr r4, _0809815C @ =gSharedMem + 0x2784
- movs r3, 0
- ldr r2, _08098160 @ =0x000007ff
-_08098102:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08098102
- movs r1, 0
- ldr r3, _08098164 @ =gSharedMem + 0x2704
- movs r2, 0
-_08098116:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08098116
- ldr r0, _08098168 @ =gSharedMem
- movs r1, 0x9C
- lsls r1, 6
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- adds r0, r5, 0
- bl LoadSpriteSheet
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080981C4
- add r0, sp, 0x20
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _080981C4
- b _080981B0
- .align 2, 0
-_08098150: .4byte gUnknown_083B6DCC
-_08098154: .4byte gUnknown_083B6DD4
-_08098158: .4byte gSpriteTemplate_83B6DDC
-_0809815C: .4byte gSharedMem + 0x2784
-_08098160: .4byte 0x000007ff
-_08098164: .4byte gSharedMem + 0x2704
-_08098168: .4byte gSharedMem
-_0809816C:
- ldr r2, _0809819C @ =gSharedMem
- movs r0, 0x9C
- lsls r0, 6
- adds r3, r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080981A0 @ =gSprites
- adds r0, r1
- str r0, [r3]
- lsls r0, r4, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- ldr r3, _080981A4 @ =0x000026fa
- adds r1, r2, r3
- strh r0, [r1]
- ldr r4, _080981A8 @ =0x000026fc
- adds r2, r4
- lsls r0, r5, 5
- ldr r1, _080981AC @ =0x06010000
- adds r0, r1
- str r0, [r2]
- b _080981C4
- .align 2, 0
-_0809819C: .4byte gSharedMem
-_080981A0: .4byte gSprites
-_080981A4: .4byte 0x000026fa
-_080981A8: .4byte 0x000026fc
-_080981AC: .4byte 0x06010000
-_080981B0:
- mov r0, sp
- movs r1, 0x28
- movs r2, 0x30
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _0809816C
-_080981C4:
- ldr r0, _080981E8 @ =gSharedMem
- movs r2, 0x9C
- lsls r2, 6
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _080981DE
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- ldr r0, _080981EC @ =0x0000dac7
- bl FreeSpritePaletteByTag
-_080981DE:
- add sp, 0x28
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080981E8: .4byte gSharedMem
-_080981EC: .4byte 0x0000dac7
- thumb_func_end sub_80980D4
-
- thumb_func_start sub_80981F0
-sub_80981F0: @ 80981F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r6, _08098274 @ =gSharedMem
- movs r0, 0x9C
- lsls r0, 6
- adds r0, r6
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080982A6
- cmp r4, 0
- beq _0809829C
- lsls r0, r4, 3
- ldr r1, _08098278 @ =gMonFrontPicTable
- adds r0, r1
- ldr r2, _0809827C @ =gMonFrontPicCoords
- lsls r1, r4, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r2, _08098280 @ =0x00004784
- adds r3, r6, r2
- ldr r2, _08098284 @ =0x00002784
- adds r5, r6, r2
- str r5, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r2, 0x1
- bl HandleLoadSpecialPokePic
- ldr r1, _08098288 @ =0x000011e8
- adds r0, r6, r1
- ldr r0, [r0]
- ldr r2, _0809828C @ =0x00002704
- adds r4, r6, r2
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r1, _08098290 @ =0x000026fc
- adds r0, r6, r1
- ldr r1, [r0]
- ldr r2, _08098294 @ =0x04000200
- adds r0, r5, 0
- bl CpuSet
- ldr r2, _08098298 @ =0x000026fa
- adds r0, r6, r2
- ldrh r1, [r0]
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- mov r0, r8
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _080982A6
- .align 2, 0
-_08098274: .4byte gSharedMem
-_08098278: .4byte gMonFrontPicTable
-_0809827C: .4byte gMonFrontPicCoords
-_08098280: .4byte 0x00004784
-_08098284: .4byte 0x00002784
-_08098288: .4byte 0x000011e8
-_0809828C: .4byte 0x00002704
-_08098290: .4byte 0x000026fc
-_08098294: .4byte 0x04000200
-_08098298: .4byte 0x000026fa
-_0809829C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080982A6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80981F0
-
- thumb_func_start sub_80982B4
-sub_80982B4: @ 80982B4
- push {r4,lr}
- ldr r4, _080982E4 @ =gSharedMem
- ldr r1, _080982E8 @ =0x000011f0
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080982F4
- ldr r2, _080982EC @ =0x000011f7
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r2, 0xC1
- adds r1, r4, r2
- ldr r1, [r1]
- bl sub_80F7A10
- ldr r1, _080982F0 @ =0x000012ac
- adds r0, r4, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _08098302
- .align 2, 0
-_080982E4: .4byte gSharedMem
-_080982E8: .4byte 0x000011f0
-_080982EC: .4byte 0x000011f7
-_080982F0: .4byte 0x000012ac
-_080982F4:
- ldr r2, _08098348 @ =0x000012ac
- adds r0, r4, r2
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_08098302:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x11
- bl MenuZeroFillWindowRect
- ldr r4, _0809834C @ =gSharedMem + 0x127A
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x10
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x6B
- movs r1, 0x1
- movs r2, 0xB
- bl MenuPrint
- adds r0, r4, 0
- subs r0, 0x46
- movs r1, 0
- movs r2, 0xD
- bl MenuPrint
- subs r4, 0x21
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08098348: .4byte 0x000012ac
-_0809834C: .4byte gSharedMem + 0x127A
- thumb_func_end sub_80982B4
-
- thumb_func_start sub_8098350
-sub_8098350: @ 8098350
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, _080983A0 @ =gSharedMem
- ldr r1, _080983A4 @ =0x000011f0
- adds r0, r5, r1
- ldrh r2, [r0]
- cmp r2, 0
- beq _080983B4
- ldr r0, _080983A8 @ =0x06007800
- ldr r3, _080983AC @ =gUnknown_02039760
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r0, _080983B0 @ =0x000012b0
- adds r5, r0
-_08098382:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08098382
- b _080983EC
- .align 2, 0
-_080983A0: .4byte gSharedMem
-_080983A4: .4byte 0x000011f0
-_080983A8: .4byte 0x06007800
-_080983AC: .4byte gUnknown_02039760
-_080983B0: .4byte 0x000012b0
-_080983B4:
- ldr r0, _080983F4 @ =0x06007800
- ldr r3, _080983F8 @ =gUnknown_02039760
- movs r1, 0xA
- str r1, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- bl sub_809D034
- movs r4, 0
- ldr r1, _080983FC @ =0x000012b0
- adds r5, r1
-_080983D4:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r1, r4, 25
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080983D4
-_080983EC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080983F4: .4byte 0x06007800
-_080983F8: .4byte gUnknown_02039760
-_080983FC: .4byte 0x000012b0
- thumb_func_end sub_8098350
-
- thumb_func_start sub_8098400
-sub_8098400: @ 8098400
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _0809847C @ =REG_BG1CNT
- ldr r2, _08098480 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08098484 @ =gPSSMenuMisc_Gfx
- ldr r1, _08098488 @ =0x06006800
- bl LZ77UnCompVram
- ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap
- ldr r5, _08098490 @ =gSharedMem + 0xA8
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08098494 @ =gPSSMenu3_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08098498 @ =gPSSMenu4_Pal
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _0809849C @ =0x06007800
- add r1, sp, 0x10
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080984A0 @ =0x040000d4
- str r1, [r0]
- str r4, [r0, 0x4]
- ldr r1, _080984A4 @ =0x81000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8098780
- ldr r0, _080984A8 @ =gUnknown_0203847C
- ldrb r0, [r0]
- cmp r0, 0
- beq _080984AC
- movs r0, 0x1
- bl sub_8098690
- movs r0, 0x1
- bl sub_8099200
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x16
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- b _080984CC
- .align 2, 0
-_0809847C: .4byte REG_BG1CNT
-_08098480: .4byte 0x00000f01
-_08098484: .4byte gPSSMenuMisc_Gfx
-_08098488: .4byte 0x06006800
-_0809848C: .4byte gPSSMenuMisc_Tilemap
-_08098490: .4byte gSharedMem + 0xA8
-_08098494: .4byte gPSSMenu3_Pal
-_08098498: .4byte gPSSMenu4_Pal
-_0809849C: .4byte 0x06007800
-_080984A0: .4byte 0x040000d4
-_080984A4: .4byte 0x81000400
-_080984A8: .4byte gUnknown_0203847C
-_080984AC:
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0xC
- str r0, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0
- adds r3, r5, 0
- bl sub_809D034
- movs r0, 0x1
- bl sub_8098690
-_080984CC:
- ldr r0, _080984E0 @ =gSharedMem
- ldr r1, _080984E4 @ =0x000008af
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080984E0: .4byte gSharedMem
-_080984E4: .4byte 0x000008af
- thumb_func_end sub_8098400
-
- thumb_func_start sub_80984E8
-sub_80984E8: @ 80984E8
- push {lr}
- ldr r1, _08098510 @ =gSharedMem
- ldr r0, _08098514 @ =0x000008a8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x14
- strh r0, [r2]
- ldr r0, _08098518 @ =0x000008aa
- adds r2, r1, r0
- movs r0, 0x2
- strh r0, [r2]
- ldr r0, _0809851C @ =0x000008ad
- adds r1, r0
- strb r3, [r1]
- movs r0, 0
- bl sub_8099200
- pop {r0}
- bx r0
- .align 2, 0
-_08098510: .4byte gSharedMem
-_08098514: .4byte 0x000008a8
-_08098518: .4byte 0x000008aa
-_0809851C: .4byte 0x000008ad
- thumb_func_end sub_80984E8
-
- thumb_func_start sub_8098520
-sub_8098520: @ 8098520
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r3, _08098578 @ =gSharedMem
- ldr r0, _0809857C @ =0x000008ad
- adds r5, r3, r0
- ldrb r0, [r5]
- cmp r0, 0x14
- beq _08098592
- ldr r0, _08098580 @ =0x000008a8
- adds r1, r3, r0
- ldrh r0, [r1]
- subs r0, 0x1
- movs r4, 0
- strh r0, [r1]
- ldr r0, _08098584 @ =0x000008aa
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ldr r0, _08098588 @ =0x06007800
- adds r3, 0xA8
- str r4, [sp]
- ldrh r1, [r1]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- ldrh r1, [r2]
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- movs r0, 0x8
- bl sub_80994A8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _0809858C
- movs r0, 0x1
- b _08098594
- .align 2, 0
-_08098578: .4byte gSharedMem
-_0809857C: .4byte 0x000008ad
-_08098580: .4byte 0x000008a8
-_08098584: .4byte 0x000008aa
-_08098588: .4byte 0x06007800
-_0809858C:
- ldr r1, _0809859C @ =gUnknown_0203847C
- movs r0, 0x1
- strb r0, [r1]
-_08098592:
- movs r0, 0
-_08098594:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0809859C: .4byte gUnknown_0203847C
- thumb_func_end sub_8098520
-
- thumb_func_start add_to_c3_somehow
-add_to_c3_somehow: @ 80985A0
- ldr r1, _080985BC @ =gSharedMem
- ldr r0, _080985C0 @ =0x000008a8
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- ldr r0, _080985C4 @ =0x000008aa
- adds r2, r1, r0
- movs r0, 0x16
- strh r0, [r2]
- ldr r0, _080985C8 @ =0x000008ad
- adds r1, r0
- strb r3, [r1]
- bx lr
- .align 2, 0
-_080985BC: .4byte gSharedMem
-_080985C0: .4byte 0x000008a8
-_080985C4: .4byte 0x000008aa
-_080985C8: .4byte 0x000008ad
- thumb_func_end add_to_c3_somehow
-
- thumb_func_start sub_80985CC
-sub_80985CC: @ 80985CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r3, _08098640 @ =gSharedMem
- ldr r0, _08098644 @ =0x000008ad
- adds r6, r3, r0
- ldrb r0, [r6]
- cmp r0, 0x14
- beq _0809867A
- ldr r2, _08098648 @ =0x000008a8
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- movs r2, 0
- mov r9, r2
- strh r0, [r1]
- ldr r0, _0809864C @ =0x000008aa
- adds r4, r3, r0
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldr r5, _08098650 @ =0x06007800
- adds r3, 0xA8
- mov r8, r3
- str r2, [sp]
- ldrh r0, [r1]
- str r0, [sp, 0x4]
- movs r7, 0xC
- str r7, [sp, 0x8]
- ldrh r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- bl sub_809D034
- ldrh r2, [r4]
- movs r4, 0x1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0xA
- movs r3, 0xC
- bl sub_809D16C
- movs r0, 0x8
- negs r0, r0
- bl sub_80994A8
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- beq _08098654
- movs r0, 0x1
- b _0809867C
- .align 2, 0
-_08098640: .4byte gSharedMem
-_08098644: .4byte 0x000008ad
-_08098648: .4byte 0x000008a8
-_0809864C: .4byte 0x000008aa
-_08098650: .4byte 0x06007800
-_08098654:
- ldr r0, _0809868C @ =gUnknown_0203847C
- movs r1, 0
- strb r1, [r0]
- bl sub_809954C
- bl party_compaction
- str r7, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x15
- movs r2, 0
- mov r3, r8
- bl sub_809D034
-_0809867A:
- movs r0, 0
-_0809867C:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809868C: .4byte gUnknown_0203847C
- thumb_func_end sub_80985CC
-
- thumb_func_start sub_8098690
-sub_8098690: @ 8098690
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- cmp r0, 0
- beq _080986C0
- ldr r0, _080986B8 @ =0x06007800
- ldr r3, _080986BC @ =gSharedMem + 0xA8
- movs r1, 0xC
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
- b _080986DA
- .align 2, 0
-_080986B8: .4byte 0x06007800
-_080986BC: .4byte gSharedMem + 0xA8
-_080986C0:
- ldr r0, _080986E0 @ =0x06007800
- ldr r3, _080986E4 @ =gSharedMem + 0xA8
- movs r1, 0xC
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r1, 0x15
- movs r2, 0
- bl sub_809D034
-_080986DA:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080986E0: .4byte 0x06007800
-_080986E4: .4byte gSharedMem + 0xA8
- thumb_func_end sub_8098690
-
- thumb_func_start sub_80986E8
-sub_80986E8: @ 80986E8
- ldr r1, _08098704 @ =gSharedMem
- ldr r2, _08098708 @ =0x000008af
- adds r0, r1, r2
- movs r3, 0x1
- strb r3, [r0]
- movs r0, 0x8B
- lsls r0, 4
- adds r2, r1, r0
- movs r0, 0x1E
- strb r0, [r2]
- ldr r2, _0809870C @ =0x000008b1
- adds r1, r2
- strb r3, [r1]
- bx lr
- .align 2, 0
-_08098704: .4byte gSharedMem
-_08098708: .4byte 0x000008af
-_0809870C: .4byte 0x000008b1
- thumb_func_end sub_80986E8
-
- thumb_func_start sub_8098710
-sub_8098710: @ 8098710
- push {lr}
- ldr r0, _0809872C @ =gSharedMem
- ldr r2, _08098730 @ =0x000008af
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08098728
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8098690
-_08098728:
- pop {r0}
- bx r0
- .align 2, 0
-_0809872C: .4byte gSharedMem
-_08098730: .4byte 0x000008af
- thumb_func_end sub_8098710
-
- thumb_func_start sub_8098734
-sub_8098734: @ 8098734
- push {lr}
- ldr r2, _08098774 @ =gSharedMem
- ldr r1, _08098778 @ =0x000008af
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098770
- movs r0, 0x8B
- lsls r0, 4
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bls _08098770
- movs r0, 0
- strb r0, [r1]
- movs r3, 0
- ldr r0, _0809877C @ =0x000008b1
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08098768
- movs r3, 0x1
-_08098768:
- strb r3, [r1]
- ldrb r0, [r1]
- bl sub_8098690
-_08098770:
- pop {r0}
- bx r0
- .align 2, 0
-_08098774: .4byte gSharedMem
-_08098778: .4byte 0x000008af
-_0809877C: .4byte 0x000008b1
- thumb_func_end sub_8098734
-
- thumb_func_start sub_8098780
-sub_8098780: @ 8098780
- push {r4-r6,lr}
- sub sp, 0x10
- movs r4, 0x1
- ldr r6, _080987D4 @ =gSharedMem + 0xA8
- movs r5, 0x80
- lsls r5, 9
-_0809878C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080987D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080987A0
- movs r0, 0x1
-_080987A0:
- movs r1, 0x10
- cmp r0, 0
- beq _080987A8
- movs r1, 0xC
-_080987A8:
- lsrs r2, r5, 16
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x7
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0xC0
- lsls r0, 10
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x5
- ble _0809878C
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080987D4: .4byte gSharedMem + 0xA8
-_080987D8: .4byte gPlayerParty
- thumb_func_end sub_8098780
-
- thumb_func_start sub_80987DC
-sub_80987DC: @ 80987DC
- push {lr}
- sub sp, 0x10
- bl sub_8098780
- ldr r0, _08098804 @ =0x06007800
- ldr r3, _08098808 @ =gSharedMem + 0xA8
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xC
- str r1, [sp, 0x8]
- movs r1, 0x16
- str r1, [sp, 0xC]
- movs r1, 0xA
- movs r2, 0
- bl sub_809D034
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_08098804: .4byte 0x06007800
-_08098808: .4byte gSharedMem + 0xA8
- thumb_func_end sub_80987DC
-
- thumb_func_start sub_809880C
-sub_809880C: @ 809880C
- push {lr}
- ldr r0, _08098828 @ =gSharedMem
- ldr r1, _0809882C @ =0x000008ae
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x6
- bl PlaySE
- bl sub_80984E8
- pop {r0}
- bx r0
- .align 2, 0
-_08098828: .4byte gSharedMem
-_0809882C: .4byte 0x000008ae
- thumb_func_end sub_809880C
-
- thumb_func_start sub_8098830
-sub_8098830: @ 8098830
- push {r4,r5,lr}
- ldr r5, _08098848 @ =gSharedMem
- ldr r0, _0809884C @ =0x000008ae
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08098866
- cmp r0, 0x1
- bgt _08098850
- cmp r0, 0
- beq _08098856
- b _08098890
- .align 2, 0
-_08098848: .4byte gSharedMem
-_0809884C: .4byte 0x000008ae
-_08098850:
- cmp r0, 0x2
- beq _0809888C
- b _08098890
-_08098856:
- bl sub_8098520
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- bl sub_809B068
- b _0809887E
-_08098866:
- bl sub_809AC00
- lsls r0, 24
- cmp r0, 0
- bne _08098890
- ldr r1, _08098888 @ =0x000011f6
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809887E
- bl BoxSetMosaic
-_0809887E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08098890
- .align 2, 0
-_08098888: .4byte 0x000011f6
-_0809888C:
- movs r0, 0
- b _08098892
-_08098890:
- movs r0, 0x1
-_08098892:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8098830
-
-.section .text_8098A38
-
- thumb_func_start sub_8098A38
-sub_8098A38: @ 8098A38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0
- bl DisplayYesNoMenu
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8098A38
-
- thumb_func_start sub_8098A5C
-sub_8098A5C: @ 8098A5C
- push {lr}
- bl HandleDestroyMenuCursors
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_8098A5C
-
- thumb_func_start sub_8098A80
-sub_8098A80: @ 8098A80
- push {lr}
- bl sub_809CDCC
- movs r0, 0xC
- bl sub_809CDEC
- movs r0, 0xD
- bl sub_809CDEC
- movs r0, 0xE
- bl sub_809CDEC
- movs r0, 0xF
- bl sub_809CDEC
- bl sub_809CE84
- pop {r0}
- bx r0
- thumb_func_end sub_8098A80
-
- thumb_func_start sub_8098AA8
-sub_8098AA8: @ 8098AA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_809CDCC
- cmp r4, 0x1
- beq _08098AE6
- cmp r4, 0x1
- bgt _08098AC2
- cmp r4, 0
- beq _08098ACC
- b _08098B32
-_08098AC2:
- cmp r5, 0x2
- beq _08098B00
- cmp r5, 0x3
- beq _08098B1A
- b _08098B32
-_08098ACC:
- movs r0, 0x10
- bl sub_809CDEC
- movs r0, 0x11
- bl sub_809CDEC
- movs r0, 0x12
- bl sub_809CDEC
- movs r0, 0x13
- bl sub_809CDEC
- b _08098B32
-_08098AE6:
- movs r0, 0x14
- bl sub_809CDEC
- movs r0, 0x15
- bl sub_809CDEC
- movs r0, 0x16
- bl sub_809CDEC
- movs r0, 0x17
- bl sub_809CDEC
- b _08098B32
-_08098B00:
- movs r0, 0x18
- bl sub_809CDEC
- movs r0, 0x19
- bl sub_809CDEC
- movs r0, 0x1A
- bl sub_809CDEC
- movs r0, 0x1B
- bl sub_809CDEC
- b _08098B32
-_08098B1A:
- movs r0, 0x1C
- bl sub_809CDEC
- movs r0, 0x1D
- bl sub_809CDEC
- movs r0, 0x1E
- bl sub_809CDEC
- movs r0, 0x1F
- bl sub_809CDEC
-_08098B32:
- bl sub_809CE84
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8098AA8
-
- thumb_func_start get_preferred_box
-get_preferred_box: @ 8098B3C
- ldr r0, _08098B44 @ =gPokemonStorage
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08098B44: .4byte gPokemonStorage
- thumb_func_end get_preferred_box
-
- thumb_func_start sub_8098B48
-sub_8098B48: @ 8098B48
- push {r4,r5,lr}
- bl sub_809D51C
- movs r2, 0
- ldr r1, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r1]
- ldr r4, _08098BDC @ =0x000010d0
- adds r3, r0, r4
- movs r4, 0
- adds r5, r1, 0
-_08098B5C:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B5C
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r3, r0, r1
- movs r1, 0
-_08098B7A:
- lsls r0, r2, 1
- adds r0, r3, r0
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x27
- bls _08098B7A
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r4, _08098BE0 @ =0x00001038
- adds r3, r0, r4
- movs r1, 0
-_08098B96:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _08098B96
- movs r2, 0
- ldr r0, _08098BD8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098BE4 @ =0x00001050
- adds r3, r0, r1
- movs r1, 0
-_08098BB2:
- lsls r0, r2, 2
- adds r0, r3, r0
- str r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098BB2
- ldr r0, [r5]
- ldr r2, _08098BE8 @ =0x00001034
- adds r1, r0, r2
- movs r2, 0
- str r2, [r1]
- ldr r4, _08098BEC @ =0x00000d5c
- adds r0, r4
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08098BD8: .4byte gUnknown_083B6DB4
-_08098BDC: .4byte 0x000010d0
-_08098BE0: .4byte 0x00001038
-_08098BE4: .4byte 0x00001050
-_08098BE8: .4byte 0x00001034
-_08098BEC: .4byte 0x00000d5c
- thumb_func_end sub_8098B48
-
- thumb_func_start sub_8098BF0
-sub_8098BF0: @ 8098BF0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _08098C38 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _08098C3C @ =0x000025b4
- adds r4, r5, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x7
- str r1, [sp, 0x4]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_8099AFC
- ldr r1, _08098C40 @ =0x00001034
- adds r5, r1
- str r0, [r5]
- ldr r1, _08098C44 @ =sub_80999C4
- str r1, [r0, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098C38: .4byte gUnknown_083B6DB4
-_08098C3C: .4byte 0x000025b4
-_08098C40: .4byte 0x00001034
-_08098C44: .4byte sub_80999C4
- thumb_func_end sub_8098BF0
-
- thumb_func_start sub_8098C48
-sub_8098C48: @ 8098C48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _08098CCC @ =gPokemonStorage + 0x4
- adds r6, r0, r1
- movs r0, 0
- mov r8, r0
- movs r7, 0
-_08098C6A:
- movs r5, 0
- adds r1, r7, 0x1
- mov r9, r1
-_08098C70:
- adds r0, r6, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08098CD8
- adds r0, r6, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 19
- movs r3, 0xC8
- lsls r3, 15
- adds r2, r3
- asrs r2, 16
- lsls r3, r7, 1
- adds r3, r7
- lsls r3, 19
- movs r0, 0xB0
- lsls r0, 14
- adds r3, r0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r5
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- asrs r3, 16
- bl sub_8099AFC
- ldr r1, _08098CD0 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- mov r3, r8
- lsls r2, r3, 2
- ldr r3, _08098CD4 @ =0x00001050
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- b _08098CE8
- .align 2, 0
-_08098CCC: .4byte gPokemonStorage + 0x4
-_08098CD0: .4byte gUnknown_083B6DB4
-_08098CD4: .4byte 0x00001050
-_08098CD8:
- ldr r0, _08098D18 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08098D1C @ =0x00001050
- adds r0, r3
- adds r0, r1
- str r4, [r0]
-_08098CE8:
- adds r6, 0x50
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08098C70
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _08098C6A
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098D18: .4byte gUnknown_083B6DB4
-_08098D1C: .4byte 0x00001050
- thumb_func_end sub_8098C48
-
- thumb_func_start sub_8098D20
-sub_8098D20: @ 8098D20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r2, r1, 4
- subs r2, r1
- lsls r2, 5
- lsls r0, r4, 2
- mov r9, r0
- adds r0, r4
- lsls r0, 4
- ldr r1, _08098DD4 @ =gPokemonStorage + 0x4
- adds r0, r1
- adds r7, r2, r0
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _08098DC4
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- adds r6, r0, 0
- lsls r0, r6, 24
- lsrs r0, 24
- lsls r5, r0, 1
- adds r5, r0
- lsls r5, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r5, r1
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 19
- movs r2, 0xB0
- lsls r2, 14
- adds r4, r2
- lsrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_8099AFC
- ldr r1, _08098DD8 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _08098DDC @ =0x00001050
- adds r1, r2
- add r1, r9
- str r0, [r1]
-_08098DC4:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098DD4: .4byte gPokemonStorage + 0x4
-_08098DD8: .4byte gUnknown_083B6DB4
-_08098DDC: .4byte 0x00001050
- thumb_func_end sub_8098D20
-
- thumb_func_start sub_8098DE0
-sub_8098DE0: @ 8098DE0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- ldr r0, _08098E18 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098E1C @ =0x00001050
- adds r3, r0, r1
- movs r6, 0x1
- ldr r5, _08098E20 @ =sub_8098E68
-_08098DF4:
- lsls r0, r2, 2
- adds r1, r3, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _08098E08
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- strh r6, [r0, 0x36]
- ldr r0, [r1]
- str r5, [r0, 0x1C]
-_08098E08:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1D
- bls _08098DF4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098E18: .4byte gUnknown_083B6DB4
-_08098E1C: .4byte 0x00001050
-_08098E20: .4byte sub_8098E68
- thumb_func_end sub_8098DE0
-
- thumb_func_start sub_8098E24
-sub_8098E24: @ 8098E24
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E40
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- b _08098E56
-_08098E40:
- ldr r0, _08098E5C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _08098E60 @ =0x00001178
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrh r0, [r2, 0x34]
- strh r0, [r2, 0x20]
- ldr r0, _08098E64 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08098E56:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E5C: .4byte gUnknown_083B6DB4
-_08098E60: .4byte 0x00001178
-_08098E64: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E24
-
- thumb_func_start sub_8098E68
-sub_8098E68: @ 8098E68
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x36]
- movs r3, 0x36
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08098E7C
- subs r0, r1, 0x1
- strh r0, [r2, 0x36]
- b _08098E98
-_08098E7C:
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x38]
- subs r0, 0x45
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB6
- bls _08098E98
- ldr r0, _08098E9C @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08098E98:
- pop {r0}
- bx r0
- .align 2, 0
-_08098E9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8098E68
-
- thumb_func_start sub_8098EA0
-sub_8098EA0: @ 8098EA0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r0, _08098ED8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08098EDC @ =0x00001050
- adds r7, r0, r1
-_08098EB0:
- lsls r0, r5, 2
- adds r4, r7, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _08098EC2
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08098EC2:
- adds r0, r5, 0x6
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _08098EB0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08098ED8: .4byte gUnknown_083B6DB4
-_08098EDC: .4byte 0x00001050
- thumb_func_end sub_8098EA0
-
- thumb_func_start sub_8098EE0
-sub_8098EE0: @ 8098EE0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x8]
- lsls r2, 16
- movs r0, 0x2C
- str r0, [sp, 0x10]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 19
- movs r1, 0xC8
- lsls r1, 15
- adds r0, r1
- lsrs r0, 16
- mov r10, r0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsrs r3, r2, 16
- str r3, [sp, 0xC]
- asrs r2, 16
- adds r1, r0, 0
- muls r1, r2
- mov r4, r10
- subs r1, r4, r1
- movs r0, 0x12
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x14]
- mov r9, r0
- ldr r0, _08098FF8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _08098FFC @ =0x0000117d
- adds r2, r0
- mov r8, r2
- ldr r3, _08099000 @ =0x00001050
- adds r3, r0, r3
- str r3, [sp, 0x20]
- lsls r1, 16
- str r1, [sp, 0x1C]
-_08098F42:
- mov r4, r8
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r7, r6, 2
- adds r1, r7, r6
- lsls r1, 4
- ldr r2, _08099004 @ =gPokemonStorage + 0x4
- adds r4, r1, r2
- adds r0, r4
- movs r1, 0x41
- bl GetBoxMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08098FC8
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r0, r4
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldr r2, [sp, 0x10]
- lsls r3, r2, 16
- asrs r3, 16
- movs r0, 0x2
- str r0, [sp]
- ldr r4, [sp, 0x18]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- ldr r4, [sp, 0x1C]
- asrs r2, r4, 16
- bl sub_8099AFC
- ldr r2, [sp, 0x20]
- adds r1, r2, r7
- str r0, [r1]
- cmp r0, 0
- beq _08098FC8
- mov r3, sp
- ldrh r3, [r3, 0x8]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- mov r4, sp
- ldrh r4, [r4, 0xC]
- strh r4, [r0, 0x32]
- ldr r0, [r1]
- mov r2, r10
- strh r2, [r0, 0x34]
- ldr r1, [r1]
- ldr r0, _08099008 @ =sub_8098E24
- str r0, [r1, 0x1C]
- ldr r0, [sp, 0x14]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
-_08098FC8:
- adds r0, r6, 0x6
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x10]
- adds r0, 0x18
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x4
- bls _08098F42
- ldr r0, [sp, 0x14]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08098FF8: .4byte gUnknown_083B6DB4
-_08098FFC: .4byte 0x0000117d
-_08099000: .4byte 0x00001050
-_08099004: .4byte gPokemonStorage + 0x4
-_08099008: .4byte sub_8098E24
- thumb_func_end sub_8098EE0
-
- thumb_func_start sub_809900C
-sub_809900C: @ 809900C
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _08099058 @ =gUnknown_083B6DB4
- ldr r5, [r4]
- ldr r3, _0809905C @ =0x0000117c
- adds r2, r5, r3
- movs r3, 0
- strb r3, [r2]
- ldr r6, _08099060 @ =0x0000117d
- adds r2, r5, r6
- strb r0, [r2]
- ldr r2, _08099064 @ =0x0000117b
- adds r0, r5, r2
- strb r1, [r0]
- subs r6, 0xB
- adds r2, r5, r6
- movs r0, 0x20
- strh r0, [r2]
- lsls r1, 24
- asrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- negs r0, r0
- adds r6, 0x4
- adds r2, r5, r6
- strh r0, [r2]
- ldr r2, _08099068 @ =0x00001178
- adds r0, r5, r2
- strh r3, [r0]
- cmp r1, 0
- ble _08099070
- ldr r3, _0809906C @ =0x0000117a
- adds r1, r5, r3
- movs r0, 0
- b _08099076
- .align 2, 0
-_08099058: .4byte gUnknown_083B6DB4
-_0809905C: .4byte 0x0000117c
-_08099060: .4byte 0x0000117d
-_08099064: .4byte 0x0000117b
-_08099068: .4byte 0x00001178
-_0809906C: .4byte 0x0000117a
-_08099070:
- ldr r6, _080990A0 @ =0x0000117a
- adds r1, r5, r6
- movs r0, 0x5
-_08099076:
- strb r0, [r1]
- ldr r2, [r4]
- ldr r1, _080990A0 @ =0x0000117a
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x64
- ldr r3, _080990A4 @ =0x00001174
- adds r1, r2, r3
- strh r0, [r1]
- ldr r6, _080990A8 @ =0x00001176
- adds r2, r6
- movs r1, 0
- ldrsh r0, [r2, r1]
- bl sub_8098DE0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080990A0: .4byte 0x0000117a
-_080990A4: .4byte 0x00001174
-_080990A8: .4byte 0x00001176
- thumb_func_end sub_809900C
-
- thumb_func_start sub_80990AC
-sub_80990AC: @ 80990AC
- push {r4-r6,lr}
- ldr r0, _080990D4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _080990D8 @ =0x00001172
- adds r3, r4, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _080990C0
- subs r0, 0x1
- strh r0, [r3]
-_080990C0:
- ldr r1, _080990DC @ =0x0000117c
- adds r6, r4, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08099138
- cmp r0, 0x1
- bgt _080990E0
- cmp r0, 0
- beq _080990E8
- b _080991F0
- .align 2, 0
-_080990D4: .4byte gUnknown_083B6DB4
-_080990D8: .4byte 0x00001172
-_080990DC: .4byte 0x0000117c
-_080990E0:
- cmp r0, 0x2
- bne _080990E6
- b _080991E0
-_080990E6:
- b _080991F0
-_080990E8:
- ldr r2, _0809912C @ =0x00001174
- adds r5, r4, r2
- ldr r3, _08099130 @ =0x00001176
- adds r0, r4, r3
- ldrh r0, [r0]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBA
- bhi _08099104
- b _080991F8
-_08099104:
- adds r2, 0x6
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_8098EA0
- ldr r3, _08099134 @ =0x0000117b
- adds r0, r4, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _080991F8
- .align 2, 0
-_0809912C: .4byte 0x00001174
-_08099130: .4byte 0x00001176
-_08099134: .4byte 0x0000117b
-_08099138:
- ldr r2, _08099194 @ =0x00001174
- adds r1, r4, r2
- ldr r5, _08099198 @ =0x00001176
- adds r2, r4, r5
- ldrh r0, [r2]
- ldrh r5, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, _0809919C @ =0x0000117a
- adds r5, r4, r0
- ldrb r0, [r5]
- ldrh r1, [r3]
- movs r3, 0
- ldrsh r2, [r2, r3]
- bl sub_8098EE0
- ldr r2, _080991A0 @ =0x00001178
- adds r1, r4, r2
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r1]
- adds r0, r3
- strh r0, [r1]
- ldr r1, _080991A4 @ =0x0000117b
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r1, 0
- ble _08099178
- ldrb r0, [r5]
- cmp r0, 0x5
- beq _08099182
-_08099178:
- cmp r1, 0
- bge _080991B0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080991B0
-_08099182:
- ldr r0, _080991A8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _080991AC @ =0x0000117c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080991F8
- .align 2, 0
-_08099194: .4byte 0x00001174
-_08099198: .4byte 0x00001176
-_0809919C: .4byte 0x0000117a
-_080991A0: .4byte 0x00001178
-_080991A4: .4byte 0x0000117b
-_080991A8: .4byte gUnknown_083B6DB4
-_080991AC: .4byte 0x0000117c
-_080991B0:
- ldr r0, _080991D0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r5, _080991D4 @ =0x0000117a
- adds r3, r1, r5
- ldr r2, _080991D8 @ =0x0000117b
- adds r0, r1, r2
- ldrb r0, [r0]
- ldrb r5, [r3]
- adds r0, r5
- movs r2, 0
- strb r0, [r3]
- ldr r0, _080991DC @ =0x0000117c
- adds r1, r0
- strb r2, [r1]
- b _080991F8
- .align 2, 0
-_080991D0: .4byte gUnknown_083B6DB4
-_080991D4: .4byte 0x0000117a
-_080991D8: .4byte 0x0000117b
-_080991DC: .4byte 0x0000117c
-_080991E0:
- ldr r1, _080991F4 @ =0x00001178
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080991F8
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080991F0:
- movs r0, 0
- b _080991FA
- .align 2, 0
-_080991F4: .4byte 0x00001178
-_080991F8:
- movs r0, 0x1
-_080991FA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80990AC
-
- thumb_func_start sub_8099200
-sub_8099200: @ 8099200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080992A0 @ =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x68
- movs r3, 0x40
- bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _080992A8 @ =0x00001038
- adds r1, r2
- str r0, [r1]
- movs r7, 0x1
- movs r6, 0x1
-_08099246:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080992A0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080992AC
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- subs r0, r6, 0x1
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 19
- movs r0, 0x80
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0x98
- bl sub_8099AFC
- ldr r1, _080992A4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- lsls r2, r6, 2
- ldr r3, _080992A8 @ =0x00001038
- adds r1, r3
- adds r1, r2
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080992BA
- .align 2, 0
-_080992A0: .4byte gPlayerParty
-_080992A4: .4byte gUnknown_083B6DB4
-_080992A8: .4byte 0x00001038
-_080992AC:
- ldr r0, _08099308 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0809930C @ =0x00001038
- adds r0, r2
- adds r0, r1
- str r5, [r0]
-_080992BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _08099246
- mov r3, r8
- cmp r3, 0
- bne _080992FA
- movs r6, 0
- cmp r6, r7
- bcs _080992FA
- ldr r0, _08099308 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809930C @ =0x00001038
- adds r3, r0, r1
- movs r4, 0x4
-_080992DA:
- lsls r1, r6, 2
- adds r1, r3, r1
- ldr r2, [r1]
- ldrh r0, [r2, 0x22]
- subs r0, 0xA0
- strh r0, [r2, 0x22]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080992DA
-_080992FA:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099308: .4byte gUnknown_083B6DB4
-_0809930C: .4byte 0x00001038
- thumb_func_end sub_8099200
-
- thumb_func_start sub_8099310
-sub_8099310: @ 8099310
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08099368 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809936C @ =0x00001171
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- movs r6, 0
- mov r8, r2
- ldr r7, _0809936C @ =0x00001171
- add r7, r8
-_0809932C:
- lsls r1, r5, 2
- ldr r0, _08099370 @ =0x00001038
- add r0, r8
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099354
- cmp r5, r6
- beq _0809934E
- adds r1, r6, 0
- bl sub_8099388
- movs r0, 0
- str r0, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_0809934E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_08099354:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809932C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099368: .4byte gUnknown_083B6DB4
-_0809936C: .4byte 0x00001171
-_08099370: .4byte 0x00001038
- thumb_func_end sub_8099310
-
- thumb_func_start sub_8099374
-sub_8099374: @ 8099374
- ldr r0, _08099380 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099384 @ =0x00001171
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08099380: .4byte gUnknown_083B6DB4
-_08099384: .4byte 0x00001171
- thumb_func_end sub_8099374
-
- thumb_func_start sub_8099388
-sub_8099388: @ 8099388
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- strh r1, [r2, 0x30]
- cmp r1, 0
- bne _0809939C
- movs r3, 0x68
- movs r4, 0x40
- b _080993AE
-_0809939C:
- movs r3, 0x98
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 19
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
-_080993AE:
- ldrh r0, [r2, 0x20]
- lsls r0, 3
- strh r0, [r2, 0x32]
- ldrh r0, [r2, 0x22]
- lsls r0, 3
- strh r0, [r2, 0x34]
- lsls r1, r3, 3
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- subs r0, r1, r0
- cmp r0, 0
- bge _080993C8
- adds r0, 0x7
-_080993C8:
- asrs r0, 3
- strh r0, [r2, 0x36]
- lsls r0, r4, 16
- asrs r0, 13
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- subs r0, r1
- cmp r0, 0
- bge _080993DC
- adds r0, 0x7
-_080993DC:
- asrs r0, 3
- strh r0, [r2, 0x38]
- movs r0, 0x8
- strh r0, [r2, 0x3A]
- ldr r0, _080993F0 @ =sub_80993F4
- str r0, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080993F0: .4byte sub_80993F4
- thumb_func_end sub_8099388
-
- thumb_func_start sub_80993F4
-sub_80993F4: @ 80993F4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08099424
- ldrh r0, [r3, 0x36]
- ldrh r4, [r3, 0x32]
- adds r0, r4
- strh r0, [r3, 0x32]
- ldrh r1, [r3, 0x38]
- ldrh r4, [r3, 0x34]
- adds r1, r4
- strh r1, [r3, 0x34]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r3, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r3, 0x22]
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08099468
-_08099424:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08099434
- movs r0, 0x68
- strh r0, [r3, 0x20]
- movs r0, 0x40
- b _08099446
-_08099434:
- movs r0, 0x98
- strh r0, [r3, 0x20]
- movs r4, 0x30
- ldrsh r1, [r3, r4]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x10
-_08099446:
- strh r0, [r3, 0x22]
- ldr r0, _08099470 @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
- ldr r0, _08099474 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 2
- ldr r4, _08099478 @ =0x00001038
- adds r0, r2, r4
- adds r0, r1
- str r3, [r0]
- ldr r0, _0809947C @ =0x00001171
- adds r2, r0
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
-_08099468:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099470: .4byte SpriteCallbackDummy
-_08099474: .4byte gUnknown_083B6DB4
-_08099478: .4byte 0x00001038
-_0809947C: .4byte 0x00001171
- thumb_func_end sub_80993F4
-
- thumb_func_start sub_8099480
-sub_8099480: @ 8099480
- push {r4,lr}
- ldr r0, _080994A0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _080994A4 @ =0x00001034
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _08099498
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_08099498:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080994A0: .4byte gUnknown_083B6DB4
-_080994A4: .4byte 0x00001034
- thumb_func_end sub_8099480
-
- thumb_func_start sub_80994A8
-sub_80994A8: @ 80994A8
- push {r4-r6,lr}
- movs r3, 0
- ldr r1, _080994FC @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _08099500 @ =0x00001038
- adds r5, r1, r2
- lsls r0, 16
- asrs r4, r0, 16
- movs r6, 0x5
- negs r6, r6
-_080994BC:
- lsls r0, r3, 2
- adds r2, r5, r0
- ldr r1, [r2]
- cmp r1, 0
- beq _0809950E
- ldrh r0, [r1, 0x22]
- adds r0, r4, r0
- strh r0, [r1, 0x22]
- ldr r2, [r2]
- ldrh r1, [r2, 0x26]
- ldrh r0, [r2, 0x22]
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0xC0
- bls _08099504
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809950E
- .align 2, 0
-_080994FC: .4byte gUnknown_083B6DB4
-_08099500: .4byte 0x00001038
-_08099504:
- adds r2, 0x3E
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r2]
-_0809950E:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080994BC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80994A8
-
- thumb_func_start sub_8099520
-sub_8099520: @ 8099520
- push {r4,lr}
- lsls r0, 24
- ldr r1, _08099544 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- lsrs r0, 22
- ldr r2, _08099548 @ =0x00001038
- adds r1, r2
- adds r4, r1, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809953E
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809953E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099544: .4byte gUnknown_083B6DB4
-_08099548: .4byte 0x00001038
- thumb_func_end sub_8099520
-
- thumb_func_start sub_809954C
-sub_809954C: @ 809954C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _0809957C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099580 @ =0x00001038
- adds r6, r0, r1
-_08099558:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _0809956A
- bl sub_8099BE0
- movs r0, 0
- str r0, [r4]
-_0809956A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08099558
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809957C: .4byte gUnknown_083B6DB4
-_08099580: .4byte 0x00001038
- thumb_func_end sub_809954C
-
- thumb_func_start sub_8099584
-sub_8099584: @ 8099584
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- cmp r4, 0
- bne _080995B4
- ldr r3, _080995AC @ =gUnknown_083B6DB4
- ldr r0, [r3]
- ldr r5, _080995B0 @ =0x00001034
- adds r2, r0, r5
- lsls r1, 2
- adds r5, 0x4
- adds r0, r5
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r4, [r0]
- b _080995D0
- .align 2, 0
-_080995AC: .4byte gUnknown_083B6DB4
-_080995B0: .4byte 0x00001034
-_080995B4:
- cmp r4, 0x1
- bne _080995F4
- ldr r3, _080995FC @ =gUnknown_083B6DB4
- ldr r0, [r3]
- ldr r1, _08099600 @ =0x00001034
- adds r2, r0, r1
- lsls r1, r5, 2
- ldr r4, _08099604 @ =0x00001050
- adds r0, r4
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- movs r1, 0
- str r1, [r0]
-_080995D0:
- ldr r2, [r3]
- ldr r5, _08099600 @ =0x00001034
- adds r2, r5
- ldr r1, [r2]
- ldr r0, _08099608 @ =sub_80999C4
- str r0, [r1, 0x1C]
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080995F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080995FC: .4byte gUnknown_083B6DB4
-_08099600: .4byte 0x00001034
-_08099604: .4byte 0x00001050
-_08099608: .4byte sub_80999C4
- thumb_func_end sub_8099584
-
- thumb_func_start sub_809960C
-sub_809960C: @ 809960C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r0, 0xE
- bne _08099654
- ldr r4, _08099648 @ =gUnknown_083B6DB4
- ldr r0, [r4]
- lsls r1, r6, 2
- ldr r2, _0809964C @ =0x00001038
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _08099650 @ =0x00001034
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r3]
- adds r0, 0x43
- movs r1, 0xB
- strb r1, [r0]
- b _0809968A
- .align 2, 0
-_08099648: .4byte gUnknown_083B6DB4
-_0809964C: .4byte 0x00001038
-_08099650: .4byte 0x00001034
-_08099654:
- ldr r5, _080996A0 @ =gUnknown_083B6DB4
- ldr r0, [r5]
- lsls r1, r6, 2
- ldr r2, _080996A4 @ =0x00001050
- adds r3, r0, r2
- adds r3, r1
- ldr r1, _080996A8 @ =0x00001034
- adds r0, r1
- ldr r2, [r0]
- str r2, [r3]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r4, [r3]
- adds r0, r6, 0
- movs r1, 0x6
- bl __umodsi3
- movs r1, 0x12
- subs r1, r0
- adds r4, 0x43
- strb r1, [r4]
- adds r4, r5, 0
-_0809968A:
- ldr r1, [r4]
- ldr r2, _080996A8 @ =0x00001034
- adds r1, r2
- ldr r2, [r1]
- ldr r0, _080996AC @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080996A0: .4byte gUnknown_083B6DB4
-_080996A4: .4byte 0x00001050
-_080996A8: .4byte 0x00001034
-_080996AC: .4byte SpriteCallbackDummy
- thumb_func_end sub_809960C
-
- thumb_func_start sub_80996B0
-sub_80996B0: @ 80996B0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0xE
- bne _080996D8
- ldr r3, _080996CC @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _080996D0 @ =0x000010c8
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _080996D4 @ =0x00001038
- b _080996E4
- .align 2, 0
-_080996CC: .4byte gUnknown_083B6DB4
-_080996D0: .4byte 0x000010c8
-_080996D4: .4byte 0x00001038
-_080996D8:
- ldr r3, _08099704 @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099708 @ =0x000010c8
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _0809970C @ =0x00001050
-_080996E4:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- ldr r1, [r3]
- ldr r2, _08099710 @ =0x00001034
- adds r0, r1, r2
- ldr r2, [r0]
- ldr r0, _08099714 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
- ldr r4, _08099718 @ =0x00001170
- adds r1, r4
- movs r0, 0
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099704: .4byte gUnknown_083B6DB4
-_08099708: .4byte 0x000010c8
-_0809970C: .4byte 0x00001050
-_08099710: .4byte 0x00001034
-_08099714: .4byte SpriteCallbackDummy
-_08099718: .4byte 0x00001170
- thumb_func_end sub_80996B0
-
- thumb_func_start sub_809971C
-sub_809971C: @ 809971C
- push {r4-r7,lr}
- ldr r0, _08099730 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _08099734 @ =0x00001170
- adds r7, r2, r0
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _08099738
- movs r0, 0
- b _08099800
- .align 2, 0
-_08099730: .4byte gUnknown_083B6DB4
-_08099734: .4byte 0x00001170
-_08099738:
- adds r0, 0x1
- strb r0, [r7]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809975E
- ldr r1, _08099808 @ =0x000010c8
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- ldr r4, _0809980C @ =0x00001034
- adds r0, r2, r4
- ldr r1, [r0]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
-_0809975E:
- ldr r0, _08099808 @ =0x000010c8
- adds r5, r2, r0
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r3, _08099810 @ =gSineTable
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _08099778
- adds r0, 0xF
-_08099778:
- asrs r0, 4
- strh r0, [r1, 0x24]
- ldr r0, _0809980C @ =0x00001034
- adds r6, r2, r0
- ldr r1, [r6]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _08099792
- adds r0, 0xF
-_08099792:
- asrs r0, 4
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r7]
- cmp r0, 0x8
- bne _080997DE
- ldr r4, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldr r2, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r2, 0x43
- strb r0, [r2]
- ldr r0, [r5]
- ldr r2, [r0]
- ldrb r0, [r2, 0x5]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r2, 0x5]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0x7
- strb r1, [r0]
-_080997DE:
- ldrb r0, [r7]
- cmp r0, 0x10
- bne _080997FE
- ldr r1, [r6]
- ldr r0, [r5]
- ldr r0, [r0]
- str r0, [r6]
- ldr r0, [r5]
- str r1, [r0]
- ldr r1, [r6]
- ldr r0, _08099814 @ =sub_80999C4
- str r0, [r1, 0x1C]
- ldr r0, [r5]
- ldr r1, [r0]
- ldr r0, _08099818 @ =SpriteCallbackDummy
- str r0, [r1, 0x1C]
-_080997FE:
- movs r0, 0x1
-_08099800:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08099808: .4byte 0x000010c8
-_0809980C: .4byte 0x00001034
-_08099810: .4byte gSineTable
-_08099814: .4byte sub_80999C4
-_08099818: .4byte SpriteCallbackDummy
- thumb_func_end sub_809971C
-
- thumb_func_start sub_809981C
-sub_809981C: @ 809981C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r0, 0x1
- beq _08099858
- cmp r0, 0x1
- bgt _08099836
- cmp r0, 0
- beq _0809983C
- b _080998C0
-_08099836:
- cmp r2, 0x2
- beq _0809987C
- b _080998C0
-_0809983C:
- ldr r3, _0809984C @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099850 @ =0x000010cc
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099854 @ =0x00001038
- b _08099864
- .align 2, 0
-_0809984C: .4byte gUnknown_083B6DB4
-_08099850: .4byte 0x000010cc
-_08099854: .4byte 0x00001038
-_08099858:
- ldr r3, _08099870 @ =gUnknown_083B6DB4
- ldr r1, [r3]
- ldr r0, _08099874 @ =0x000010cc
- adds r2, r1, r0
- lsls r0, r4, 2
- ldr r4, _08099878 @ =0x00001050
-_08099864:
- adds r0, r4
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0
- b _0809988A
- .align 2, 0
-_08099870: .4byte gUnknown_083B6DB4
-_08099874: .4byte 0x000010cc
-_08099878: .4byte 0x00001050
-_0809987C:
- ldr r0, _080998C8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r3, _080998CC @ =0x000010cc
- adds r2, r1, r3
- ldr r4, _080998D0 @ =0x00001034
- adds r1, r4
- str r1, [r2]
-_0809988A:
- ldr r0, [r0]
- ldr r1, _080998CC @ =0x000010cc
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _080998C0
- bl InitSpriteAffineAnim
- ldr r0, [r4]
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, [r4]
- ldr r1, [r0]
- ldr r0, _080998D4 @ =gSpriteAffineAnimTable_83B6F5C
- str r0, [r1, 0x10]
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAffineAnim
-_080998C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080998C8: .4byte gUnknown_083B6DB4
-_080998CC: .4byte 0x000010cc
-_080998D0: .4byte 0x00001034
-_080998D4: .4byte gSpriteAffineAnimTable_83B6F5C
- thumb_func_end sub_809981C
-
- thumb_func_start sub_80998D8
-sub_80998D8: @ 80998D8
- push {lr}
- ldr r0, _080998FC @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099900 @ =0x000010cc
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- cmp r1, 0
- beq _080998F8
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _08099904
-_080998F8:
- movs r0, 0
- b _0809991A
- .align 2, 0
-_080998FC: .4byte gUnknown_083B6DB4
-_08099900: .4byte 0x000010cc
-_08099904:
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08099918
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r3]
-_08099918:
- movs r0, 0x1
-_0809991A:
- pop {r1}
- bx r1
- thumb_func_end sub_80998D8
-
- thumb_func_start sub_8099920
-sub_8099920: @ 8099920
- push {r4,lr}
- ldr r0, _08099950 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099954 @ =0x000010cc
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0809994A
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- ldr r0, [r0]
- bl sub_8099BE0
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_0809994A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099950: .4byte gUnknown_083B6DB4
-_08099954: .4byte 0x000010cc
- thumb_func_end sub_8099920
-
- thumb_func_start sub_8099958
-sub_8099958: @ 8099958
- push {lr}
- ldr r0, _08099988 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809998C @ =0x000010cc
- adds r3, r0, r1
- ldr r0, [r3]
- ldr r0, [r0]
- cmp r0, 0
- beq _08099982
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08099982:
- pop {r0}
- bx r0
- .align 2, 0
-_08099988: .4byte gUnknown_083B6DB4
-_0809998C: .4byte 0x000010cc
- thumb_func_end sub_8099958
-
- thumb_func_start sub_8099990
-sub_8099990: @ 8099990
- push {lr}
- ldr r0, _080999A4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _080999A8 @ =0x000010cc
- adds r2, r0, r1
- ldr r0, [r2]
- cmp r0, 0
- bne _080999AC
- movs r0, 0
- b _080999C0
- .align 2, 0
-_080999A4: .4byte gUnknown_083B6DB4
-_080999A8: .4byte 0x000010cc
-_080999AC:
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080999BE
- movs r0, 0
- str r0, [r2]
-_080999BE:
- movs r0, 0x1
-_080999C0:
- pop {r1}
- bx r1
- thumb_func_end sub_8099990
-
- thumb_func_start sub_80999C4
-sub_80999C4: @ 80999C4
- ldr r1, _080999E4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- movs r2, 0x8E
- lsls r2, 5
- adds r1, r2
- ldr r2, [r1]
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0x20]
- ldr r2, [r1]
- ldrh r1, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r1, r2
- adds r1, 0x4
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080999E4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_80999C4
-
- thumb_func_start sub_80999E8
-sub_80999E8: @ 80999E8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _08099A58 @ =gUnknown_083B6DB4
- ldr r0, [r1]
- movs r2, 0x89
- lsls r2, 5
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, r3
- beq _08099A20
- adds r6, r2, 0
- movs r5, 0x89
- lsls r5, 5
-_08099A08:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A20
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08099A08
-_08099A20:
- cmp r4, 0x28
- bne _08099A60
- movs r4, 0
- ldr r0, [r2]
- movs r5, 0x89
- lsls r5, 5
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08099A4E
- adds r6, r2, 0
-_08099A36:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x27
- bhi _08099A4E
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08099A36
-_08099A4E:
- cmp r4, 0x28
- bne _08099A60
- ldr r0, _08099A5C @ =0x0000ffff
- b _08099A94
- .align 2, 0
-_08099A58: .4byte gUnknown_083B6DB4
-_08099A5C: .4byte 0x0000ffff
-_08099A60:
- ldr r1, [r2]
- lsls r2, r4, 1
- movs r5, 0x89
- lsls r5, 5
- adds r0, r1, r5
- adds r0, r2
- strh r3, [r0]
- ldr r0, _08099A9C @ =0x000010d0
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r4, 20
- lsrs r4, 16
- ldr r1, _08099AA0 @ =gMonIconTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r4, 5
- ldr r2, _08099AA4 @ =0x06010000
- adds r1, r2
- ldr r2, _08099AA8 @ =0x04000080
- bl CpuSet
- adds r0, r4, 0
-_08099A94:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08099A9C: .4byte 0x000010d0
-_08099AA0: .4byte gMonIconTable
-_08099AA4: .4byte 0x06010000
-_08099AA8: .4byte 0x04000080
- thumb_func_end sub_80999E8
-
- thumb_func_start sub_8099AAC
-sub_8099AAC: @ 8099AAC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0
- ldr r0, _08099AE4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x89
- lsls r1, 5
- adds r5, r0, r1
- subs r1, 0x50
- adds r4, r0, r1
- ldr r0, _08099AE8 @ =0x0000ffff
- adds r7, r0, 0
-_08099AC6:
- lsls r1, r3, 1
- adds r2, r5, r1
- ldrh r0, [r2]
- cmp r0, r6
- bne _08099AEC
- adds r1, r4, r1
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ands r0, r7
- cmp r0, 0
- bne _08099AF6
- strh r0, [r2]
- b _08099AF6
- .align 2, 0
-_08099AE4: .4byte gUnknown_083B6DB4
-_08099AE8: .4byte 0x0000ffff
-_08099AEC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x27
- bls _08099AC6
-_08099AF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099AAC
-
- thumb_func_start sub_8099AFC
-sub_8099AFC: @ 8099AFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x18]
- lsls r3, 16
- lsrs r3, 16
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r9, r5
- mov r2, sp
- ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldm r0!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- adds r0, r6, 0
- bl mon_icon_convert_unown_species_id
- mov r10, r0
- mov r6, r10
- mov r2, sp
- ldr r1, _08099BB0 @ =gMonIconPaletteIndices
- adds r1, r6, r1
- ldr r3, _08099BB4 @ =0x0000dac0
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- strh r0, [r2, 0x2]
- adds r0, r6, 0
- bl sub_80999E8
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- ldr r0, _08099BB8 @ =0x0000ffff
- cmp r5, r0
- beq _08099BCE
- ldr r7, [sp, 0x18]
- lsls r1, r7, 16
- asrs r1, 16
- mov r0, r8
- lsls r2, r0, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r9
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08099BC8
- ldr r1, _08099BBC @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldr r2, _08099BC0 @ =0x000003ff
- ands r2, r5
- ldrh r3, [r0, 0x4]
- ldr r1, _08099BC4 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- movs r1, 0x3
- ands r4, r1
- lsls r3, r4, 2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r3
- strb r1, [r0, 0x5]
- mov r1, r10
- strh r1, [r0, 0x2E]
- b _08099BD0
- .align 2, 0
-_08099BAC: .4byte gSpriteTemplate_83B6F14
-_08099BB0: .4byte gMonIconPaletteIndices
-_08099BB4: .4byte 0x0000dac0
-_08099BB8: .4byte 0x0000ffff
-_08099BBC: .4byte gSprites
-_08099BC0: .4byte 0x000003ff
-_08099BC4: .4byte 0xfffffc00
-_08099BC8:
- adds r0, r6, 0
- bl sub_8099AAC
-_08099BCE:
- movs r0, 0
-_08099BD0:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8099AFC
-
- thumb_func_start sub_8099BE0
-sub_8099BE0: @ 8099BE0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- bl sub_8099AAC
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8099BE0
-
- thumb_func_start sub_8099BF8
-sub_8099BF8: @ 8099BF8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08099C50 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099C54 @ =0x000008ba
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r2, _08099C58 @ =0x000008b4
- adds r0, r2
- strh r1, [r0]
- str r1, [sp]
- ldr r1, _08099C5C @ =0x040000d4
- mov r0, sp
- str r0, [r1]
- ldr r0, _08099C60 @ =0x0600d000
- str r0, [r1, 0x4]
- ldr r0, _08099C64 @ =0x85000400
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8099EB0
- adds r0, r4, 0
- bl sub_809A23C
- bl sub_809A6DC
- adds r0, r4, 0
- bl sub_8098C48
- ldr r1, _08099C68 @ =REG_BG2CNT
- ldr r2, _08099C6C @ =0x00005a0a
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099C50: .4byte gUnknown_083B6DB4
-_08099C54: .4byte 0x000008ba
-_08099C58: .4byte 0x000008b4
-_08099C5C: .4byte 0x040000d4
-_08099C60: .4byte 0x0600d000
-_08099C64: .4byte 0x85000400
-_08099C68: .4byte REG_BG2CNT
-_08099C6C: .4byte 0x00005a0a
- thumb_func_end sub_8099BF8
-
- thumb_func_start sub_8099C70
-sub_8099C70: @ 8099C70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- bl sub_8099D90
- lsls r0, 24
- asrs r4, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8099EB0
- ldr r0, _08099D10 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 1
- ldr r3, _08099D14 @ =0x000008b6
- adds r1, r2, r3
- strh r0, [r1]
- ldr r0, _08099D18 @ =0x000008b8
- adds r1, r2, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, _08099D1C @ =0x000008bb
- adds r0, r2, r1
- strb r5, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CAE
- movs r1, 0x5
-_08099CAE:
- ldr r3, _08099D20 @ =0x000008bc
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D24 @ =0x000008be
- adds r0, r2, r1
- strh r4, [r0]
- movs r1, 0x38
- cmp r4, 0
- ble _08099CC6
- movs r3, 0x84
- lsls r3, 1
- adds r1, r3, 0
-_08099CC6:
- movs r3, 0x8C
- lsls r3, 4
- adds r0, r2, r3
- strh r1, [r0]
- movs r1, 0
- cmp r4, 0
- bgt _08099CD6
- movs r1, 0x5
-_08099CD6:
- ldr r3, _08099D28 @ =0x000008c2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _08099D2C @ =0x000008c4
- adds r0, r2, r1
- strh r4, [r0]
- adds r3, 0x4
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08099D30 @ =0x000008c8
- adds r1, r2, r0
- movs r0, 0x2
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809900C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809A3D0
- adds r0, r4, 0
- bl sub_809A774
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08099D10: .4byte gUnknown_083B6DB4
-_08099D14: .4byte 0x000008b6
-_08099D18: .4byte 0x000008b8
-_08099D1C: .4byte 0x000008bb
-_08099D20: .4byte 0x000008bc
-_08099D24: .4byte 0x000008be
-_08099D28: .4byte 0x000008c2
-_08099D2C: .4byte 0x000008c4
-_08099D30: .4byte 0x000008c8
- thumb_func_end sub_8099C70
-
- thumb_func_start sub_8099D34
-sub_8099D34: @ 8099D34
- push {r4,lr}
- bl sub_80990AC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08099D78 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _08099D7C @ =0x000008b8
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08099D88
- ldr r4, _08099D80 @ =0x000008b4
- adds r2, r1, r4
- adds r4, 0x2
- adds r0, r1, r4
- ldrh r0, [r0]
- ldrh r1, [r2]
- adds r0, r1
- ldr r1, _08099D84 @ =0x000001ff
- ands r0, r1
- strh r0, [r2]
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _08099D74
- bl sub_809A598
- bl sub_809A810
-_08099D74:
- movs r0, 0x1
- b _08099D8A
- .align 2, 0
-_08099D78: .4byte gUnknown_083B6DB4
-_08099D7C: .4byte 0x000008b8
-_08099D80: .4byte 0x000008b4
-_08099D84: .4byte 0x000001ff
-_08099D88:
- adds r0, r2, 0
-_08099D8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D34
-
- thumb_func_start sub_8099D90
-sub_8099D90: @ 8099D90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- cmp r1, r4
- beq _08099DBA
-_08099DA4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xD
- bls _08099DB0
- movs r1, 0
-_08099DB0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r1, r4
- bne _08099DA4
-_08099DBA:
- movs r0, 0x1
- negs r0, r0
- cmp r2, 0x6
- bhi _08099DC4
- movs r0, 0x1
-_08099DC4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8099D90
-
- thumb_func_start sub_8099DCC
-sub_8099DCC: @ 8099DCC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08099DF8 @ =gPokemonStorage
- ldr r2, _08099DFC @ =0x000083c2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- strb r4, [r0]
- ldr r0, _08099E00 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _08099E04 @ =0x00001032
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08099DF8: .4byte gPokemonStorage
-_08099DFC: .4byte 0x000083c2
-_08099E00: .4byte gUnknown_083B6DB4
-_08099E04: .4byte 0x00001032
- thumb_func_end sub_8099DCC
-
- thumb_func_start sub_8099E08
-sub_8099E08: @ 8099E08
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08099E24 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _08099E28 @ =0x00001032
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08099E54
- cmp r0, 0x1
- bgt _08099E2C
- cmp r0, 0
- beq _08099E36
- b _08099EA6
- .align 2, 0
-_08099E24: .4byte gUnknown_083B6DB4
-_08099E28: .4byte 0x00001032
-_08099E2C:
- cmp r0, 0x2
- beq _08099E90
- cmp r0, 0x3
- beq _08099EA2
- b _08099EA6
-_08099E36:
- ldr r1, _08099E4C @ =0x00000d08
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E50 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E4C: .4byte 0x00000d08
-_08099E50: .4byte 0x0000ffff
-_08099E54:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8099EB0
- bl sub_809A654
- ldr r1, _08099E88 @ =0x00000d08
- adds r0, r5, r1
- ldr r0, [r0]
- ldr r1, _08099E8C @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08099E9A
- .align 2, 0
-_08099E88: .4byte 0x00000d08
-_08099E8C: .4byte 0x0000ffff
-_08099E90:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08099EA6
-_08099E9A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08099EA6
-_08099EA2:
- movs r0, 0
- b _08099EA8
-_08099EA6:
- movs r0, 0x1
-_08099EA8:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8099E08
-
- thumb_func_start sub_8099EB0
-sub_8099EB0: @ 8099EB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r1, 0
- beq _08099ED8
- ldr r0, _08099F38 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r2, 0
- ldr r3, _08099F3C @ =0x000008ba
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _08099ED0
- movs r2, 0x1
-_08099ED0:
- strb r2, [r1]
- ldr r0, _08099F40 @ =0x0600d000
- bl sub_809A14C
-_08099ED8:
- ldr r0, _08099F44 @ =gPokemonStorage
- ldr r1, _08099F48 @ =0x000083c2
- adds r0, r1
- adds r0, r4, r0
- ldrb r4, [r0]
- lsls r4, 4
- ldr r0, _08099F4C @ =gWallpaperTable
- adds r4, r0
- ldr r0, [r4, 0xC]
- ldr r1, _08099F38 @ =gUnknown_083B6DB4
- ldr r5, [r1]
- ldr r2, _08099F3C @ =0x000008ba
- adds r6, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 20
- movs r3, 0x80
- lsls r3, 15
- adds r1, r3
- lsrs r1, 16
- movs r2, 0x60
- bl LoadPalette
- ldr r0, [r4, 0x8]
- ldr r1, _08099F50 @ =0x00000d62
- adds r5, r1
- adds r1, r5, 0
- bl LZ77UnCompWram
- ldr r0, _08099F40 @ =0x0600d000
- lsls r2, r7, 24
- asrs r2, 24
- ldrb r3, [r6]
- adds r1, r5, 0
- bl sub_8099F58
- ldr r0, [r4]
- ldrb r1, [r6]
- lsls r1, 13
- ldr r2, _08099F54 @ =0x06008000
- adds r1, r2
- bl LZ77UnCompVram
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08099F38: .4byte gUnknown_083B6DB4
-_08099F3C: .4byte 0x000008ba
-_08099F40: .4byte 0x0600d000
-_08099F44: .4byte gPokemonStorage
-_08099F48: .4byte 0x000083c2
-_08099F4C: .4byte gWallpaperTable
-_08099F50: .4byte 0x00000d62
-_08099F54: .4byte 0x06008000
- thumb_func_end sub_8099EB0
-
- thumb_func_start sub_8099F58
-sub_8099F58: @ 8099F58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r9, r0
- adds r5, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r3, 8
- str r0, [sp]
- lsls r0, r3, 1
- adds r0, r3
- adds r0, 0x4
- lsls r0, 28
- lsrs r0, 16
- str r0, [sp, 0x4]
- ldr r0, _08099FB8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _08099FBC @ =0x000008b4
- adds r0, r1
- ldrh r1, [r0]
- lsrs r1, 3
- adds r1, 0xA
- lsrs r0, r2, 24
- mov r8, r0
- asrs r2, 24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- movs r0, 0x3F
- ands r1, r0
- str r1, [sp, 0x8]
- adds r2, r1, 0
- cmp r2, 0xC
- bgt _08099FC0
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- adds r0, 0x80
- mov r1, r9
- adds r4, r1, r0
- movs r7, 0
- b _0809A020
- .align 2, 0
-_08099FB8: .4byte gUnknown_083B6DB4
-_08099FBC: .4byte 0x000008b4
-_08099FC0:
- cmp r2, 0x1F
- bgt _08099FE6
- movs r0, 0x20
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- adds r0, 0x80
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0x88
- lsls r7, 4
- add r7, r9
- b _0809A020
-_08099FE6:
- cmp r2, 0x2C
- bgt _08099FFE
- movs r6, 0x14
- movs r3, 0
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- movs r7, 0
- b _0809A020
-_08099FFE:
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- movs r1, 0x14
- lsrs r6, r0, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r0, r2, 1
- movs r1, 0x84
- lsls r1, 4
- adds r0, r1
- mov r2, r9
- adds r4, r2, r0
- mov r7, r9
- adds r7, 0x80
-_0809A020:
- movs r1, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x14]
- lsls r0, r6, 16
- asrs r0, 16
- mov r8, r0
- lsls r3, 16
- str r3, [sp, 0xC]
- asrs r2, r3, 16
- str r2, [sp, 0x10]
-_0809A036:
- movs r3, 0
- adds r0, r4, 0
- adds r0, 0x40
- str r0, [sp, 0x18]
- adds r2, r7, 0
- adds r2, 0x40
- str r2, [sp, 0x1C]
- adds r1, 0x1
- mov r10, r1
- cmp r3, r8
- bge _0809A07A
- ldr r0, _0809A0D4 @ =0x00000fff
- mov r12, r0
- movs r6, 0xF0
- lsls r6, 8
-_0809A054:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r4
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r8
- blt _0809A054
-_0809A07A:
- movs r3, 0
- ldr r0, [sp, 0x10]
- cmp r3, r0
- bge _0809A0B4
- ldr r1, _0809A0D4 @ =0x00000fff
- mov r12, r1
- movs r6, 0xF0
- lsls r6, 8
- ldr r2, [sp, 0xC]
- asrs r4, r2, 16
-_0809A08E:
- ldrh r2, [r5]
- mov r0, r12
- ands r0, r2
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, r6, 0
- ands r1, r2
- ldr r2, [sp, 0x4]
- adds r1, r2, r1
- orrs r1, r0
- lsls r0, r3, 1
- adds r0, r7
- strh r1, [r0]
- adds r5, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _0809A08E
-_0809A0B4:
- ldr r4, [sp, 0x18]
- ldr r7, [sp, 0x1C]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A036
- ldr r0, [sp, 0x14]
- asrs r2, r0, 24
- cmp r2, 0
- beq _0809A13A
- cmp r2, 0
- ble _0809A0D8
- ldr r1, [sp, 0x8]
- adds r1, 0x14
- b _0809A0DC
- .align 2, 0
-_0809A0D4: .4byte 0x00000fff
-_0809A0D8:
- ldr r1, [sp, 0x8]
- subs r1, 0x4
-_0809A0DC:
- movs r0, 0x3F
- ands r1, r0
- adds r4, r1, 0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A0EE
- lsls r0, 1
- adds r0, 0x80
- b _0809A0F6
-_0809A0EE:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A0F6:
- mov r1, r9
- adds r2, r1, r0
- movs r3, 0
- movs r6, 0
-_0809A0FE:
- movs r1, 0
- adds r5, r3, 0x1
- lsls r3, r4, 16
-_0809A104:
- strh r6, [r2]
- adds r2, 0x40
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x11
- bls _0809A104
- asrs r0, r3, 16
- adds r4, r0, 0x1
- movs r0, 0x3F
- ands r4, r0
- adds r0, r4, 0
- cmp r0, 0x1F
- bgt _0809A126
- lsls r0, 1
- adds r0, 0x80
- b _0809A12E
-_0809A126:
- lsls r0, 1
- movs r2, 0x84
- lsls r2, 4
- adds r0, r2
-_0809A12E:
- mov r1, r9
- adds r2, r1, r0
- lsls r0, r5, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _0809A0FE
-_0809A13A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8099F58
-
- thumb_func_start sub_809A14C
-sub_809A14C: @ 809A14C
- push {r4-r6,lr}
- adds r2, r0, 0
- ldr r0, _0809A174 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A178 @ =0x000008b4
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 3
- adds r3, r0, 0
- adds r3, 0x1E
- movs r0, 0x3F
- ands r3, r0
- adds r0, r3, 0
- cmp r0, 0x1F
- bgt _0809A17C
- lsls r0, 1
- movs r6, 0x98
- lsls r6, 3
- adds r0, r6
- b _0809A184
- .align 2, 0
-_0809A174: .4byte gUnknown_083B6DB4
-_0809A178: .4byte 0x000008b4
-_0809A17C:
- lsls r0, 1
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r1
-_0809A184:
- adds r2, r0
- movs r0, 0
- movs r5, 0
- movs r4, 0x3F
-_0809A18C:
- strh r5, [r2]
- adds r2, 0x2
- adds r3, 0x1
- ands r3, r4
- adds r1, r3, 0
- cmp r1, 0
- bne _0809A19E
- ldr r6, _0809A1B8 @ =0xfffff7c0
- adds r2, r6
-_0809A19E:
- cmp r1, 0x20
- bne _0809A1A8
- movs r1, 0xF8
- lsls r1, 3
- adds r2, r1
-_0809A1A8:
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2B
- bls _0809A18C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A1B8: .4byte 0xfffff7c0
- thumb_func_end sub_809A14C
-
- thumb_func_start sub_809A1BC
-sub_809A1BC: @ 809A1BC
- push {r4-r6,lr}
- sub sp, 0x8
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _0809A228 @ =gUnknown_083B6DB8
- ldr r5, [r0]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0809A22C @ =0x040000d4
- str r1, [r4]
- str r5, [r4, 0x4]
- movs r6, 0x80
- lsls r6, 1
- ldr r0, _0809A230 @ =0x81000100
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0809A234 @ =gWindowConfig_81E6D38
- adds r1, r5, 0
- str r3, [sp, 0x4]
- bl sub_8004E3C
- str r5, [r4]
- ldr r3, [sp, 0x4]
- str r3, [r4, 0x4]
- ldr r1, _0809A238 @ =0x80000040
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, r6
- str r0, [r4]
- adds r0, r3, 0
- adds r0, 0x80
- str r0, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r5, 0
- adds r0, 0x80
- str r0, [r4]
- adds r6, r3, r6
- str r6, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- adds r5, r0
- str r5, [r4]
- adds r3, r0
- str r3, [r4, 0x4]
- str r1, [r4, 0x8]
- ldr r0, [r4, 0x8]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A228: .4byte gUnknown_083B6DB8
-_0809A22C: .4byte 0x040000d4
-_0809A230: .4byte 0x81000100
-_0809A234: .4byte gWindowConfig_81E6D38
-_0809A238: .4byte 0x80000040
- thumb_func_end sub_809A1BC
-
- thumb_func_start sub_809A23C
-sub_809A23C: @ 809A23C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r1, _0809A388 @ =0x000008ca
- adds r7, r5, r1
- str r7, [sp, 0x18]
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0x20]
- ldr r0, _0809A38C @ =0x00030200
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r3, _0809A390 @ =0x00000ccc
- adds r0, r5, r3
- str r0, [sp]
- ldr r4, _0809A394 @ =0x0000dac8
- strh r4, [r1, 0x4]
- str r0, [sp, 0x8]
- ldr r6, _0809A398 @ =0xffffdac9
- strh r6, [r1, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- movs r2, 0x8
- bl memset
- ldr r0, _0809A39C @ =gPokemonStorage
- mov r9, r0
- ldr r0, _0809A3A0 @ =0x000083c2
- add r0, r9
- add r0, r8
- ldrb r1, [r0]
- ldr r2, _0809A3A4 @ =gUnknown_083BB0A8
- lsls r1, 2
- adds r0, r1, r2
- ldrh r3, [r0]
- ldr r6, _0809A3A8 @ =0x00000ce8
- adds r0, r5, r6
- strh r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _0809A3AC @ =0x00000cea
- adds r0, r5, r2
- strh r1, [r0]
- mov r0, sp
- bl LoadSpritePalettes
- ldr r3, _0809A3B0 @ =0x00000d08
- adds r6, r5, r3
- movs r0, 0xFC
- lsls r0, 2
- str r0, [r6]
- adds r0, r4, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- movs r2, 0x87
- lsls r2, 1
- mov r10, r2
- add r1, r10
- ldr r3, _0809A3B4 @ =0x00000cec
- adds r2, r5, r3
- strh r1, [r2]
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- ldr r0, [r6]
- orrs r0, r1
- str r0, [r6]
- ldr r0, _0809A3B8 @ =0x0000dac9
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- add r1, r10
- ldr r2, _0809A3BC @ =0x00000cee
- adds r5, r2
- strh r1, [r5]
- lsls r4, r0
- ldr r0, [r6]
- orrs r0, r4
- str r0, [r6]
- mov r3, r8
- lsls r4, r3, 3
- add r4, r8
- ldr r6, _0809A3C0 @ =0x00008344
- add r9, r6
- add r4, r9
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_809A1BC
- ldr r0, [sp, 0x20]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- movs r4, 0
- lsls r0, 16
- asrs r6, r0, 16
-_0809A328:
- lsls r1, r4, 5
- adds r1, r6, r1
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0809A384 @ =gUnknown_083B6DB4
- ldr r5, [r0]
- lsls r0, r4, 2
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r5, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A3C8 @ =gSprites
- adds r0, r1
- str r0, [r2]
- lsls r1, r4, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _0809A328
- ldr r6, _0809A3CC @ =0x00000cca
- adds r1, r5, r6
- movs r0, 0
- strb r0, [r1]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A384: .4byte gUnknown_083B6DB4
-_0809A388: .4byte 0x000008ca
-_0809A38C: .4byte 0x00030200
-_0809A390: .4byte 0x00000ccc
-_0809A394: .4byte 0x0000dac8
-_0809A398: .4byte 0xffffdac9
-_0809A39C: .4byte gPokemonStorage
-_0809A3A0: .4byte 0x000083c2
-_0809A3A4: .4byte gUnknown_083BB0A8
-_0809A3A8: .4byte 0x00000ce8
-_0809A3AC: .4byte 0x00000cea
-_0809A3B0: .4byte 0x00000d08
-_0809A3B4: .4byte 0x00000cec
-_0809A3B8: .4byte 0x0000dac9
-_0809A3BC: .4byte 0x00000cee
-_0809A3C0: .4byte 0x00008344
-_0809A3C4: .4byte gSpriteTemplate_83BB2B8
-_0809A3C8: .4byte gSprites
-_0809A3CC: .4byte 0x00000cca
- thumb_func_end sub_809A23C
-
- thumb_func_start sub_809A3D0
-sub_809A3D0: @ 809A3D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x28]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r3, _0809A43C @ =gUnknown_083B6DB4
- ldr r5, [r3]
- ldr r1, _0809A440 @ =0x000008ca
- adds r0, r5, r1
- str r0, [sp, 0x18]
- add r2, sp, 0x18
- ldr r4, _0809A444 @ =0x0000ffff
- mov r9, r4
- movs r6, 0xC0
- lsls r6, 10
- mov r8, r6
- ldr r0, _0809A448 @ =0x00030200
- str r0, [r2, 0x4]
- mov r1, sp
- ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- movs r1, 0
- ldr r7, _0809A450 @ =0x00000cca
- adds r4, r5, r7
- ldrb r0, [r4]
- adds r6, r2, 0
- cmp r0, 0
- bne _0809A41E
- movs r1, 0x1
-_0809A41E:
- strb r1, [r4]
- cmp r1, 0
- bne _0809A458
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- mov r4, r8
- orrs r0, r4
- str r0, [r6, 0x4]
- ldr r7, _0809A454 @ =0x00000cec
- adds r0, r5, r7
- ldrh r0, [r0]
- mov r8, r0
- b _0809A478
- .align 2, 0
-_0809A43C: .4byte gUnknown_083B6DB4
-_0809A440: .4byte 0x000008ca
-_0809A444: .4byte 0x0000ffff
-_0809A448: .4byte 0x00030200
-_0809A44C: .4byte gSpriteTemplate_83BB2B8
-_0809A450: .4byte 0x00000cca
-_0809A454: .4byte 0x00000cec
-_0809A458:
- ldr r0, [r6, 0x4]
- mov r1, r9
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- orrs r0, r1
- str r0, [r6, 0x4]
- ldr r4, _0809A570 @ =0x00000cec
- adds r0, r5, r4
- ldrh r0, [r0]
- mov r8, r0
- mov r1, sp
- movs r0, 0x4
- strh r0, [r1]
- ldr r0, _0809A574 @ =0x0000dac9
- strh r0, [r1, 0x2]
-_0809A478:
- ldr r0, [r3]
- ldr r7, _0809A578 @ =0x000008ca
- adds r0, r7
- ldr r1, [sp, 0x28]
- lsls r5, r1, 3
- adds r5, r1
- ldr r4, _0809A57C @ =gPokemonStorage + 0x8344
- adds r5, r4
- adds r1, r5, 0
- bl sub_809A1BC
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r4, 0x7E
- ldr r3, [sp, 0x28]
- adds r4, r3, r4
- ldrb r0, [r4]
- lsls r0, 2
- ldr r1, _0809A580 @ =gUnknown_083BB0A8
- adds r0, r1
- mov r1, r8
- movs r2, 0x4
- bl LoadPalette
- adds r0, r5, 0
- bl sub_8072CA4
- lsls r0, 24
- lsrs r0, 24
- bl sub_809A6D0
- lsls r0, 16
- mov r4, r10
- lsls r2, r4, 24
- asrs r2, 24
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 6
- lsrs r6, r0, 16
- str r6, [sp, 0x20]
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x24]
- movs r7, 0
- negs r2, r2
- mov r9, r2
- movs r0, 0x1
- mov r10, r0
-_0809A4DE:
- lsls r1, r7, 5
- mov r8, r1
- ldr r3, [sp, 0x24]
- lsls r1, r3, 16
- asrs r1, 16
- add r1, r8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x1C
- movs r3, 0x17
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A584 @ =gUnknown_083B6DB4
- ldr r4, [r1]
- lsls r6, r7, 2
- ldr r1, _0809A588 @ =0x00000cf8
- adds r2, r4, r1
- adds r2, r6
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0809A58C @ =gSprites
- adds r1, r0
- str r1, [r2]
- mov r3, r9
- lsls r5, r3, 1
- add r5, r9
- lsls r5, 1
- strh r5, [r1, 0x2E]
- ldr r1, [r2]
- ldr r3, [sp, 0x20]
- lsls r0, r3, 16
- asrs r0, 16
- add r0, r8
- strh r0, [r1, 0x30]
- ldr r0, [r2]
- mov r1, r10
- strh r1, [r0, 0x32]
- ldr r0, [r2]
- ldr r1, _0809A590 @ =sub_809A5E8
- str r1, [r0, 0x1C]
- lsls r1, r7, 24
- lsrs r1, 24
- bl StartSpriteAnim
- movs r3, 0xCF
- lsls r3, 4
- adds r4, r3
- adds r4, r6
- ldr r0, [r4]
- strh r5, [r0, 0x2E]
- ldr r0, [r4]
- mov r6, r10
- strh r6, [r0, 0x30]
- ldr r1, [r4]
- ldr r0, _0809A594 @ =sub_809A61C
- str r0, [r1, 0x1C]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _0809A4DE
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A570: .4byte 0x00000cec
-_0809A574: .4byte 0x0000dac9
-_0809A578: .4byte 0x000008ca
-_0809A57C: .4byte gPokemonStorage + 0x8344
-_0809A580: .4byte gUnknown_083BB0A8
-_0809A584: .4byte gUnknown_083B6DB4
-_0809A588: .4byte 0x00000cf8
-_0809A58C: .4byte gSprites
-_0809A590: .4byte sub_809A5E8
-_0809A594: .4byte sub_809A61C
- thumb_func_end sub_809A3D0
-
- thumb_func_start sub_809A598
-sub_809A598: @ 809A598
- push {lr}
- ldr r0, _0809A5B0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A5B4 @ =0x00000cca
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A5B8
- movs r0, 0x4
- bl FreeSpriteTilesByTag
- b _0809A5BE
- .align 2, 0
-_0809A5B0: .4byte gUnknown_083B6DB4
-_0809A5B4: .4byte 0x00000cca
-_0809A5B8:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
-_0809A5BE:
- ldr r0, _0809A5E0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0xCF
- lsls r3, 4
- adds r2, r0, r3
- adds r3, 0x8
- adds r1, r0, r3
- ldr r1, [r1]
- str r1, [r2]
- ldr r2, _0809A5E4 @ =0x00000cf4
- adds r1, r0, r2
- adds r3, 0x4
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0809A5E0: .4byte gUnknown_083B6DB4
-_0809A5E4: .4byte 0x00000cf4
- thumb_func_end sub_809A598
-
- thumb_func_start sub_809A5E8
-sub_809A5E8: @ 809A5E8
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x32]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A5FC
- subs r0, r1, 0x1
- strh r0, [r2, 0x32]
- b _0809A614
-_0809A5FC:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _0809A614
- ldr r0, _0809A618 @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_0809A614:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A618: .4byte SpriteCallbackDummy
- thumb_func_end sub_809A5E8
-
- thumb_func_start sub_809A61C
-sub_809A61C: @ 809A61C
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0809A630
- subs r0, r1, 0x1
- strh r0, [r2, 0x30]
- b _0809A64E
-_0809A630:
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x32]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC0
- bls _0809A64E
- adds r0, r2, 0
- bl DestroySprite
-_0809A64E:
- pop {r0}
- bx r0
- thumb_func_end sub_809A61C
-
- thumb_func_start sub_809A654
-sub_809A654: @ 809A654
- push {lr}
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809A690 @ =gPokemonStorage
- ldr r2, _0809A694 @ =0x000083c2
- adds r1, r2
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0809A698 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809A69C @ =0x00000cca
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809A6A8
- lsls r0, r1, 2
- ldr r1, _0809A6A0 @ =gUnknown_083BB0A8
- adds r0, r1
- adds r3, 0x22
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6A4 @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
- b _0809A6C0
- .align 2, 0
-_0809A690: .4byte gPokemonStorage
-_0809A694: .4byte 0x000083c2
-_0809A698: .4byte gUnknown_083B6DB4
-_0809A69C: .4byte 0x00000cca
-_0809A6A0: .4byte gUnknown_083BB0A8
-_0809A6A4: .4byte gPlttBufferUnfaded
-_0809A6A8:
- lsls r0, r1, 2
- ldr r1, _0809A6C4 @ =gUnknown_083BB0A8
- adds r0, r1
- ldr r3, _0809A6C8 @ =0x00000cee
- adds r1, r2, r3
- ldrh r1, [r1]
- lsls r1, 1
- ldr r2, _0809A6CC @ =gPlttBufferUnfaded
- adds r1, r2
- movs r2, 0x2
- bl CpuSet
-_0809A6C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A6C4: .4byte gUnknown_083BB0A8
-_0809A6C8: .4byte 0x00000cee
-_0809A6CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_809A654
-
- thumb_func_start sub_809A6D0
-sub_809A6D0: @ 809A6D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- movs r0, 0xB0
- subs r0, r1
- bx lr
- thumb_func_end sub_809A6D0
-
- thumb_func_start sub_809A6DC
-sub_809A6DC: @ 809A6DC
- push {r4,r5,lr}
- ldr r0, _0809A760 @ =gUnknown_083BB288
- bl LoadSpriteSheet
- ldr r0, _0809A764 @ =gUnknown_083BB290
- bl LoadSpritePalette
- movs r5, 0
-_0809A6EC:
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0
- movs r2, 0x1C
- movs r3, 0x15
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0809A73E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809A76C @ =gSprites
- adds r4, r0, r1
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x1
- cmp r5, 0
- bne _0809A72C
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_0809A72C:
- strh r0, [r4, 0x34]
- ldr r0, _0809A770 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- lsls r1, r5, 2
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- str r4, [r0]
-_0809A73E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _0809A6EC
- bl sub_809BF2C
- lsls r0, 24
- cmp r0, 0
- beq _0809A758
- movs r0, 0x1
- bl sub_809A860
-_0809A758:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A760: .4byte gUnknown_083BB288
-_0809A764: .4byte gUnknown_083BB290
-_0809A768: .4byte gSpriteTemplate_83BB2F0
-_0809A76C: .4byte gSprites
-_0809A770: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A6DC
-
- thumb_func_start sub_809A774
-sub_809A774: @ 809A774
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0
- ldr r7, _0809A7C4 @ =gUnknown_083B6DB4
- ldr r0, [r7]
- movs r1, 0xD0
- lsls r1, 4
- adds r3, r0, r1
- movs r5, 0
- movs r4, 0x2
-_0809A78A:
- lsls r1, r2, 2
- adds r1, r3, r1
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r0, [r1]
- strh r4, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A78A
- lsls r0, r6, 24
- cmp r0, 0
- bge _0809A7CC
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, _0809A7C8 @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0x48
- b _0809A7E8
- .align 2, 0
-_0809A7C4: .4byte gUnknown_083B6DB4
-_0809A7C8: .4byte 0x00000d04
-_0809A7CC:
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r3, r1, r2
- ldr r2, [r3]
- movs r0, 0x5
- strh r0, [r2, 0x30]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x1D
- strh r0, [r2, 0x30]
- ldr r0, [r3]
- movs r2, 0xF8
-_0809A7E8:
- strh r2, [r0, 0x32]
- ldr r0, [r1]
- strh r2, [r0, 0x32]
- ldr r1, [r7]
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r1, r2
- ldr r2, [r0]
- movs r0, 0
- strh r0, [r2, 0x3C]
- ldr r0, _0809A80C @ =0x00000d04
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A80C: .4byte 0x00000d04
- thumb_func_end sub_809A774
-
- thumb_func_start sub_809A810
-sub_809A810: @ 809A810
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _0809A85C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r5, 0
- movs r6, 0x5
- negs r6, r6
-_0809A824:
- lsls r1, r3, 2
- adds r1, r4, r1
- ldr r2, [r1]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 3
- adds r0, 0x5C
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- strh r5, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _0809A824
- movs r0, 0x1
- bl sub_809A860
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A85C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A810
-
- thumb_func_start sub_809A860
-sub_809A860: @ 809A860
- push {r4,r5,lr}
- lsls r0, 24
- cmp r0, 0
- beq _0809A89C
- movs r2, 0
- ldr r0, _0809A898 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0xD0
- lsls r1, 4
- adds r4, r0, r1
- movs r3, 0
- movs r5, 0x1
-_0809A878:
- lsls r1, r2, 2
- adds r1, r4, r1
- ldr r0, [r1]
- strh r5, [r0, 0x2E]
- ldr r0, [r1]
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x32]
- ldr r0, [r1]
- strh r3, [r0, 0x36]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A878
- b _0809A8BC
- .align 2, 0
-_0809A898: .4byte gUnknown_083B6DB4
-_0809A89C:
- movs r2, 0
- ldr r0, _0809A8C4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r3, 0xD0
- lsls r3, 4
- adds r1, r0, r3
- movs r3, 0
-_0809A8AA:
- lsls r0, r2, 2
- adds r0, r1, r0
- ldr r0, [r0]
- strh r3, [r0, 0x2E]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _0809A8AA
-_0809A8BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809A8C4: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809A860
-
- thumb_func_start sub_809A8C8
-sub_809A8C8: @ 809A8C8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _0809A994
- lsls r0, 2
- ldr r1, _0809A8E0 @ =_0809A8E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809A8E0: .4byte _0809A8E4
- .align 2, 0
-_0809A8E4:
- .4byte _0809A8F8
- .4byte _0809A8FE
- .4byte _0809A92C
- .4byte _0809A932
- .4byte _0809A984
-_0809A8F8:
- movs r0, 0
- strh r0, [r2, 0x24]
- b _0809A994
-_0809A8FE:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0809A994
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x24]
- adds r0, r3
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0809A994
- strh r1, [r2, 0x32]
- strh r1, [r2, 0x24]
- b _0809A994
-_0809A92C:
- movs r0, 0x3
- strh r0, [r2, 0x2E]
- b _0809A994
-_0809A932:
- ldr r0, _0809A97C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809A980 @ =0x000008b6
- adds r1, r0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2, 0x20]
- subs r0, 0x49
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAE
- bls _0809A958
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0809A958:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _0809A994
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x4
- strh r0, [r2, 0x2E]
- b _0809A994
- .align 2, 0
-_0809A97C: .4byte gUnknown_083B6DB4
-_0809A980: .4byte 0x000008b6
-_0809A984:
- ldr r0, _0809A998 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809A99C @ =0x000008b6
- adds r0, r1
- ldrh r1, [r2, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x20]
-_0809A994:
- pop {r0}
- bx r0
- .align 2, 0
-_0809A998: .4byte gUnknown_083B6DB4
-_0809A99C: .4byte 0x000008b6
- thumb_func_end sub_809A8C8
-
- thumb_func_start sub_809A9A0
-sub_809A9A0: @ 809A9A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0809AA18
- movs r1, 0x1
- ands r1, r7
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _0809AA10 @ =gSprites
- adds r6, r4, r5
- adds r0, r6, 0
- bl StartSpriteAnim
- movs r0, 0x3
- mov r1, r8
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0809AA14 @ =SpriteCallbackDummy
- str r0, [r4]
- adds r0, r6, 0
- b _0809AA1A
- .align 2, 0
-_0809AA0C: .4byte gSpriteTemplate_83BB2F0
-_0809AA10: .4byte gSprites
-_0809AA14: .4byte SpriteCallbackDummy
-_0809AA18:
- movs r0, 0
-_0809AA1A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809A9A0
-
- thumb_func_start sub_809AA24
-sub_809AA24: @ 809AA24
- push {lr}
- ldr r0, _0809AA38 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- cmp r1, 0x1
- beq _0809AA40
- ldr r1, _0809AA3C @ =gUnknown_020384E4
- movs r0, 0
- strb r0, [r1]
- b _0809AA44
- .align 2, 0
-_0809AA38: .4byte gUnknown_083B6DB4
-_0809AA3C: .4byte gUnknown_020384E4
-_0809AA40:
- ldr r0, _0809AA78 @ =gUnknown_020384E4
- strb r1, [r0]
-_0809AA44:
- ldr r0, _0809AA7C @ =gUnknown_020384E5
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0809AA80 @ =gUnknown_020384E6
- strb r1, [r0]
- ldr r0, _0809AA84 @ =gUnknown_020384E7
- strb r1, [r0]
- ldr r0, _0809AA88 @ =gUnknown_020384E8
- strb r1, [r0]
- ldr r0, _0809AA8C @ =gUnknown_020384E9
- strb r1, [r0]
- bl sub_809B0D4
- bl sub_809CC04
- ldr r0, _0809AA90 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809AA94 @ =0x000011e2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809AA78: .4byte gUnknown_020384E4
-_0809AA7C: .4byte gUnknown_020384E5
-_0809AA80: .4byte gUnknown_020384E6
-_0809AA84: .4byte gUnknown_020384E7
-_0809AA88: .4byte gUnknown_020384E8
-_0809AA8C: .4byte gUnknown_020384E9
-_0809AA90: .4byte gUnknown_083B6DB4
-_0809AA94: .4byte 0x000011e2
- thumb_func_end sub_809AA24
-
- thumb_func_start sub_809AA98
-sub_809AA98: @ 809AA98
- push {lr}
- bl sub_809CC04
- bl sub_809C028
- ldr r0, _0809AAC0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809AAC4 @ =0x000011e2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0809AAC8 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809AABA
- bl sub_8098BF0
-_0809AABA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809AAC0: .4byte gUnknown_083B6DB4
-_0809AAC4: .4byte 0x000011e2
-_0809AAC8: .4byte gUnknown_020384E6
- thumb_func_end sub_809AA98
-
- thumb_func_start sub_809AACC
-sub_809AACC: @ 809AACC
- push {r4-r6,lr}
- adds r4, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0x4
- bhi _0809AB84
- lsls r0, 2
- ldr r1, _0809AAE8 @ =_0809AAEC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809AAE8: .4byte _0809AAEC
- .align 2, 0
-_0809AAEC:
- .4byte _0809AB00
- .4byte _0809AB2E
- .4byte _0809AB56
- .4byte _0809AB5E
- .4byte _0809AB7C
-_0809AB00:
- adds r0, r5, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x64
- strh r1, [r4]
- adds r0, r5, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x20
- strh r1, [r6]
- b _0809AB84
-_0809AB2E:
- cmp r5, 0
- bne _0809AB3A
- movs r0, 0x68
- strh r0, [r4]
- movs r0, 0x34
- b _0809AB82
-_0809AB3A:
- cmp r5, 0x6
- bne _0809AB46
- movs r0, 0x98
- strh r0, [r4]
- movs r0, 0x84
- b _0809AB82
-_0809AB46:
- movs r0, 0x98
- strh r0, [r4]
- subs r1, r5, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- b _0809AB82
-_0809AB56:
- movs r0, 0xA2
- strh r0, [r4]
- movs r0, 0xC
- b _0809AB82
-_0809AB5E:
- ldr r0, _0809AB78 @ =gUnknown_020384E6
- ldrb r0, [r0]
- movs r1, 0xE
- cmp r0, 0
- beq _0809AB6A
- movs r1, 0x8
-_0809AB6A:
- strh r1, [r6]
- movs r0, 0x58
- muls r0, r5
- adds r0, 0x78
- strh r0, [r4]
- b _0809AB84
- .align 2, 0
-_0809AB78: .4byte gUnknown_020384E6
-_0809AB7C:
- movs r0, 0xA0
- strh r0, [r4]
- movs r0, 0x60
-_0809AB82:
- strh r0, [r6]
-_0809AB84:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809AACC
-
- thumb_func_start sub_809AB8C
-sub_809AB8C: @ 809AB8C
- push {lr}
- ldr r0, _0809ABB4 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809ABC0
- cmp r0, 0x1
- bne _0809ABF8
- ldr r0, _0809ABB8 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809ABBC @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- b _0809ABEA
- .align 2, 0
-_0809ABB4: .4byte gUnknown_020384E4
-_0809ABB8: .4byte gUnknown_020384E5
-_0809ABBC: .4byte gPlayerParty
-_0809ABC0:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809ABF0 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809ABF4 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
-_0809ABEA:
- lsls r0, 16
- lsrs r0, 16
- b _0809ABFA
- .align 2, 0
-_0809ABF0: .4byte gUnknown_020384E5
-_0809ABF4: .4byte gPokemonStorage + 0x4
-_0809ABF8:
- movs r0, 0
-_0809ABFA:
- pop {r1}
- bx r1
- thumb_func_end sub_809AB8C
-
- thumb_func_start sub_809AC00
-sub_809AC00: @ 809AC00
- push {r4-r6,lr}
- ldr r0, _0809AC14 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809AC18 @ =0x000011dc
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0809AC1C
- movs r0, 0
- b _0809AD2C
- .align 2, 0
-_0809AC14: .4byte gUnknown_083B6DB4
-_0809AC18: .4byte 0x000011dc
-_0809AC1C:
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _0809AD0C
- ldr r1, _0809ACF4 @ =0x000011c8
- adds r3, r4, r1
- ldr r2, _0809ACF8 @ =0x000011d0
- adds r1, r4, r2
- ldr r0, [r3]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r3]
- ldr r6, _0809ACFC @ =0x000011cc
- adds r2, r4, r6
- ldr r0, _0809AD00 @ =0x000011d4
- adds r1, r4, r0
- ldr r0, [r2]
- ldr r1, [r1]
- adds r0, r1
- str r0, [r2]
- movs r1, 0x8E
- lsls r1, 5
- adds r5, r4, r1
- ldr r1, [r5]
- ldr r0, [r3]
- asrs r0, 8
- strh r0, [r1, 0x20]
- ldr r1, [r5]
- ldr r0, [r2]
- asrs r0, 8
- strh r0, [r1, 0x22]
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x80
- lsls r3, 1
- cmp r0, r3
- ble _0809AC78
- ldr r6, _0809AD04 @ =0xffffff00
- adds r0, r2, r6
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x40
- strh r0, [r1, 0x20]
-_0809AC78:
- ldr r1, [r5]
- ldrh r2, [r1, 0x20]
- movs r6, 0x20
- ldrsh r0, [r1, r6]
- cmp r0, 0x3F
- bgt _0809AC90
- movs r0, 0x40
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- subs r0, r3, r0
- strh r0, [r1, 0x20]
-_0809AC90:
- ldr r1, [r5]
- ldrh r2, [r1, 0x22]
- movs r3, 0x22
- ldrsh r0, [r1, r3]
- cmp r0, 0xB0
- ble _0809ACA8
- adds r0, r2, 0
- subs r0, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r0, 0x10
- strh r0, [r1, 0x22]
-_0809ACA8:
- ldr r2, [r5]
- ldrh r3, [r2, 0x22]
- movs r6, 0x22
- ldrsh r0, [r2, r6]
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _0809ACC4
- subs r0, r1, r3
- movs r1, 0xB0
- lsls r0, 16
- asrs r0, 16
- subs r1, r0
- strh r1, [r2, 0x22]
-_0809ACC4:
- ldr r0, _0809AD08 @ =0x000011e3
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809AD2A
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0809AD2A
- ldr r2, [r5]
- adds r2, 0x3F
- ldrb r3, [r2]
- lsrs r1, r3, 1
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _0809AD2A
- .align 2, 0
-_0809ACF4: .4byte 0x000011c8
-_0809ACF8: .4byte 0x000011d0
-_0809ACFC: .4byte 0x000011cc
-_0809AD00: .4byte 0x000011d4
-_0809AD04: .4byte 0xffffff00
-_0809AD08: .4byte 0x000011e3
-_0809AD0C:
- movs r1, 0x8E
- lsls r1, 5
- adds r2, r4, r1
- ldr r1, [r2]
- ldr r3, _0809AD34 @ =0x000011d8
- adds r0, r4, r3
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, [r2]
- ldr r6, _0809AD38 @ =0x000011da
- adds r0, r4, r6
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- bl sub_809AFB8
-_0809AD2A:
- movs r0, 0x1
-_0809AD2C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809AD34: .4byte 0x000011d8
-_0809AD38: .4byte 0x000011da
- thumb_func_end sub_809AC00
-
- thumb_func_start sub_809AD3C
-sub_809AD3C: @ 809AD3C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r6, sp
- adds r6, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- adds r3, r6, 0
- bl sub_809AACC
- ldr r0, _0809AD88 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- movs r2, 0x8F
- lsls r2, 5
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0809AD8C @ =0x000011e1
- adds r0, r1, r3
- strb r5, [r0]
- mov r0, sp
- ldrh r2, [r0]
- subs r3, 0x9
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r6]
- ldr r2, _0809AD90 @ =0x000011da
- adds r1, r2
- strh r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AD88: .4byte gUnknown_083B6DB4
-_0809AD8C: .4byte 0x000011e1
-_0809AD90: .4byte 0x000011da
- thumb_func_end sub_809AD3C
-
- thumb_func_start sub_809AD94
-sub_809AD94: @ 809AD94
- push {r4-r7,lr}
- ldr r0, _0809ADB0 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809ADB4 @ =0x000011de
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r4, r0, 0
- cmp r1, 0
- beq _0809ADBC
- ldr r0, _0809ADB8 @ =0x000011dc
- adds r1, r2, r0
- movs r0, 0xC
- b _0809ADC2
- .align 2, 0
-_0809ADB0: .4byte gUnknown_083B6DB4
-_0809ADB4: .4byte 0x000011de
-_0809ADB8: .4byte 0x000011dc
-_0809ADBC:
- ldr r3, _0809AE04 @ =0x000011dc
- adds r1, r2, r3
- movs r0, 0x6
-_0809ADC2:
- strh r0, [r1]
- ldr r2, [r4]
- ldr r0, _0809AE08 @ =0x000011e3
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809ADDA
- ldr r3, _0809AE04 @ =0x000011dc
- adds r0, r2, r3
- ldrh r0, [r0]
- lsrs r0, 1
- strb r0, [r1]
-_0809ADDA:
- ldr r1, _0809AE0C @ =0x000011de
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE14
- cmp r1, 0x1
- beq _0809AE30
- ldr r3, _0809AE10 @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- b _0809AE46
- .align 2, 0
-_0809AE04: .4byte 0x000011dc
-_0809AE08: .4byte 0x000011e3
-_0809AE0C: .4byte 0x000011de
-_0809AE10: .4byte 0x000011da
-_0809AE14:
- ldr r3, _0809AE2C @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AE46
- .align 2, 0
-_0809AE2C: .4byte 0x000011da
-_0809AE30:
- ldr r3, _0809AE74 @ =0x000011da
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x22
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AE46:
- subs r7, r1, r0
- ldr r2, [r4]
- ldr r3, _0809AE78 @ =0x000011df
- adds r0, r2, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809AE80
- cmp r1, 0x1
- beq _0809AE9C
- ldr r1, _0809AE7C @ =0x000011d8
- adds r0, r2, r1
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- b _0809AEB2
- .align 2, 0
-_0809AE74: .4byte 0x000011da
-_0809AE78: .4byte 0x000011df
-_0809AE7C: .4byte 0x000011d8
-_0809AE80:
- ldr r3, _0809AE98 @ =0x000011d8
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r0, 0xC0
- b _0809AEB2
- .align 2, 0
-_0809AE98: .4byte 0x000011d8
-_0809AE9C:
- ldr r3, _0809AF00 @ =0x000011d8
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x8E
- lsls r3, 5
- adds r0, r2, r3
- ldr r0, [r0]
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- subs r0, 0xC0
-_0809AEB2:
- subs r0, r1, r0
- lsls r7, 8
- lsls r0, 8
- ldr r4, [r4]
- ldr r3, _0809AF04 @ =0x000011d0
- adds r6, r4, r3
- ldr r1, _0809AF08 @ =0x000011dc
- adds r5, r4, r1
- ldrh r1, [r5]
- bl __divsi3
- str r0, [r6]
- ldr r2, _0809AF0C @ =0x000011d4
- adds r6, r4, r2
- ldrh r1, [r5]
- adds r0, r7, 0
- bl __divsi3
- str r0, [r6]
- ldr r3, _0809AF10 @ =0x000011c8
- adds r2, r4, r3
- movs r0, 0x8E
- lsls r0, 5
- adds r1, r4, r0
- ldr r0, [r1]
- movs r3, 0x20
- ldrsh r0, [r0, r3]
- lsls r0, 8
- str r0, [r2]
- ldr r0, _0809AF14 @ =0x000011cc
- adds r4, r0
- ldr r0, [r1]
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- lsls r0, 8
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AF00: .4byte 0x000011d8
-_0809AF04: .4byte 0x000011d0
-_0809AF08: .4byte 0x000011dc
-_0809AF0C: .4byte 0x000011d4
-_0809AF10: .4byte 0x000011c8
-_0809AF14: .4byte 0x000011cc
- thumb_func_end sub_809AD94
-
- thumb_func_start sub_809AF18
-sub_809AF18: @ 809AF18
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_809AD3C
- bl sub_809AD94
- ldr r0, _0809AFA4 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AF46
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
-_0809AF46:
- cmp r4, 0x1
- bne _0809AF70
- ldr r0, _0809AFAC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809AF70
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r2, _0809AFB0 @ =0x000011e2
- adds r1, r0, r2
- strb r4, [r1]
- ldr r1, _0809AFB4 @ =0x000011c4
- adds r0, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
-_0809AF70:
- cmp r4, 0
- beq _0809AF9E
- cmp r4, 0
- blt _0809AF9E
- cmp r4, 0x3
- bgt _0809AF9E
- ldr r0, _0809AFA8 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809AFB4 @ =0x000011c4
- adds r2, r0
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r2, [r2]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
-_0809AF9E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809AFA4: .4byte gUnknown_020384E6
-_0809AFA8: .4byte gUnknown_083B6DB4
-_0809AFAC: .4byte gUnknown_020384E4
-_0809AFB0: .4byte 0x000011e2
-_0809AFB4: .4byte 0x000011c4
- thumb_func_end sub_809AF18
-
- thumb_func_start sub_809AFB8
-sub_809AFB8: @ 809AFB8
- push {r4,r5,lr}
- ldr r5, _0809B000 @ =gUnknown_020384E4
- ldr r0, _0809B004 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- movs r1, 0x8F
- lsls r1, 5
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _0809B008 @ =gUnknown_020384E5
- ldr r2, _0809B00C @ =0x000011e1
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0809B010 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809AFEA
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809AFEA:
- bl sub_809BF74
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0x1
- beq _0809B020
- cmp r0, 0x1
- bgt _0809B014
- cmp r0, 0
- beq _0809B034
- b _0809B05E
- .align 2, 0
-_0809B000: .4byte gUnknown_020384E4
-_0809B004: .4byte gUnknown_083B6DB4
-_0809B008: .4byte gUnknown_020384E5
-_0809B00C: .4byte 0x000011e1
-_0809B010: .4byte gUnknown_020384E6
-_0809B014:
- cmp r0, 0x2
- bne _0809B05E
- movs r0, 0x1
- bl sub_809A860
- b _0809B05E
-_0809B020:
- ldr r2, _0809B030 @ =0x000011c4
- adds r0, r4, r2
- ldr r0, [r0]
- adds r0, 0x43
- movs r1, 0xC
- strb r1, [r0]
- b _0809B05E
- .align 2, 0
-_0809B030: .4byte 0x000011c4
-_0809B034:
- ldr r0, _0809B064 @ =0x000011c4
- adds r2, r4, r0
- ldr r3, [r2]
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r2]
- adds r0, 0x43
- movs r1, 0x14
- strb r1, [r0]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_0809B05E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B064: .4byte 0x000011c4
- thumb_func_end sub_809AFB8
-
- thumb_func_start sub_809B068
-sub_809B068: @ 809B068
- push {lr}
- ldr r0, _0809B078 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809B07C
- movs r3, 0
- b _0809B08A
- .align 2, 0
-_0809B078: .4byte gUnknown_020384E6
-_0809B07C:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _0809B08A
- movs r3, 0x5
-_0809B08A:
- ldr r0, _0809B0B8 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r2, r1
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809B0AA
- ldr r0, _0809B0BC @ =0x000011e3
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_0809B0AA:
- movs r0, 0x1
- adds r1, r3, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- .align 2, 0
-_0809B0B8: .4byte gUnknown_083B6DB4
-_0809B0BC: .4byte 0x000011e3
- thumb_func_end sub_809B068
-
- thumb_func_start sub_809B0C0
-sub_809B0C0: @ 809B0C0
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_809AF18
- pop {r0}
- bx r0
- thumb_func_end sub_809B0C0
-
- thumb_func_start sub_809B0D4
-sub_809B0D4: @ 809B0D4
- ldr r1, _0809B0DC @ =gUnknown_020384EA
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B0DC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0D4
-
- thumb_func_start sub_809B0E0
-sub_809B0E0: @ 809B0E0
- ldr r0, _0809B0EC @ =gUnknown_020384EA
- ldr r1, _0809B0F0 @ =gUnknown_020384E5
- ldrb r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0809B0EC: .4byte gUnknown_020384EA
-_0809B0F0: .4byte gUnknown_020384E5
- thumb_func_end sub_809B0E0
-
- thumb_func_start sub_809B0F4
-sub_809B0F4: @ 809B0F4
- ldr r0, _0809B0FC @ =gUnknown_020384EA
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809B0FC: .4byte gUnknown_020384EA
- thumb_func_end sub_809B0F4
-
- thumb_func_start sub_809B100
-sub_809B100: @ 809B100
- lsls r0, 24
- ldr r1, _0809B120 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B124 @ =0x000012a4
- adds r3, r1, r2
- ldr r2, _0809B128 @ =gUnknown_083BBBC8
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0809B12C @ =0x000012a8
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0809B120: .4byte gUnknown_083B6DB4
-_0809B124: .4byte 0x000012a4
-_0809B128: .4byte gUnknown_083BBBC8
-_0809B12C: .4byte 0x000012a8
- thumb_func_end sub_809B100
-
- thumb_func_start sub_809B130
-sub_809B130: @ 809B130
- push {lr}
- ldr r0, _0809B148 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B14C @ =0x000012a4
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0809B148: .4byte gUnknown_083B6DB4
-_0809B14C: .4byte 0x000012a4
- thumb_func_end sub_809B130
-
- thumb_func_start sub_809B150
-sub_809B150: @ 809B150
- push {r4,r5,lr}
- ldr r0, _0809B16C @ =gUnknown_083B6DB4
- ldr r5, [r0]
- ldr r0, _0809B170 @ =0x000012a8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _0809B1A0
- cmp r0, 0x1
- bgt _0809B174
- cmp r0, 0
- beq _0809B17E
- b _0809B1CE
- .align 2, 0
-_0809B16C: .4byte gUnknown_083B6DB4
-_0809B170: .4byte 0x000012a8
-_0809B174:
- cmp r0, 0x2
- beq _0809B1BE
- cmp r0, 0x3
- beq _0809B186
- b _0809B1CE
-_0809B17E:
- ldr r0, _0809B18C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B190
-_0809B186:
- movs r0, 0
- b _0809B1D0
- .align 2, 0
-_0809B18C: .4byte gUnknown_020384E6
-_0809B190:
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- b _0809B1C8
-_0809B1A0:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- bl sub_809B384
- b _0809B1C8
-_0809B1BE:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B1CE
-_0809B1C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_0809B1CE:
- movs r0, 0x1
-_0809B1D0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B150
-
- thumb_func_start sub_809B1D8
-sub_809B1D8: @ 809B1D8
- push {r4,r5,lr}
- ldr r0, _0809B1F4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B1F8 @ =0x000012a8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B220
- cmp r0, 0x1
- bgt _0809B1FC
- cmp r0, 0
- beq _0809B202
- b _0809B244
- .align 2, 0
-_0809B1F4: .4byte gUnknown_083B6DB4
-_0809B1F8: .4byte 0x000012a8
-_0809B1FC:
- cmp r0, 0x2
- beq _0809B240
- b _0809B244
-_0809B202:
- bl sub_809B324
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- bl sub_809B3E0
- b _0809B238
-_0809B220:
- bl sub_809B358
- lsls r0, 24
- cmp r0, 0
- bne _0809B244
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
-_0809B238:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B244
-_0809B240:
- movs r0, 0
- b _0809B246
-_0809B244:
- movs r0, 0x1
-_0809B246:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B1D8
-
- thumb_func_start sub_809B24C
-sub_809B24C: @ 809B24C
- push {r4,r5,lr}
- ldr r0, _0809B268 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B26C @ =0x000012a8
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0809B2E0
- cmp r0, 0x1
- bgt _0809B270
- cmp r0, 0
- beq _0809B276
- b _0809B31C
- .align 2, 0
-_0809B268: .4byte gUnknown_083B6DB4
-_0809B26C: .4byte 0x000012a8
-_0809B270:
- cmp r0, 0x2
- beq _0809B318
- b _0809B31C
-_0809B276:
- ldr r0, _0809B290 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B298
- cmp r0, 0x1
- bne _0809B318
- ldr r2, _0809B294 @ =0x000012a9
- adds r1, r4, r2
- movs r0, 0xE
- b _0809B2A0
- .align 2, 0
-_0809B290: .4byte gUnknown_020384E4
-_0809B294: .4byte 0x000012a9
-_0809B298:
- bl get_preferred_box
- ldr r2, _0809B2D0 @ =0x000012a9
- adds r1, r4, r2
-_0809B2A0:
- strb r0, [r1]
- ldr r0, _0809B2D4 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0809B2D0 @ =0x000012a9
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B2D8 @ =gUnknown_020384E5
- ldrb r1, [r1]
- bl sub_80996B0
- ldr r0, _0809B2DC @ =0x000012a8
- adds r4, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0809B31C
- .align 2, 0
-_0809B2D0: .4byte 0x000012a9
-_0809B2D4: .4byte gUnknown_083B6DB4
-_0809B2D8: .4byte gUnknown_020384E5
-_0809B2DC: .4byte 0x000012a8
-_0809B2E0:
- bl sub_809971C
- lsls r0, 24
- cmp r0, 0
- bne _0809B31C
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
- ldr r2, _0809B310 @ =0x000012a9
- adds r0, r4, r2
- ldrb r0, [r0]
- ldr r1, _0809B314 @ =gUnknown_020384E5
- ldrb r1, [r1]
- bl diegohint1
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0809B31C
- .align 2, 0
-_0809B310: .4byte 0x000012a9
-_0809B314: .4byte gUnknown_020384E5
-_0809B318:
- movs r0, 0
- b _0809B31E
-_0809B31C:
- movs r0, 0x1
-_0809B31E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809B24C
-
- thumb_func_start sub_809B324
-sub_809B324: @ 809B324
- push {lr}
- ldr r0, _0809B348 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B33E
- cmp r0, 0x8
- beq _0809B34C
-_0809B33E:
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _0809B350
- .align 2, 0
-_0809B348: .4byte gUnknown_083B6DB4
-_0809B34C:
- movs r0, 0
- b _0809B352
-_0809B350:
- movs r0, 0x1
-_0809B352:
- pop {r1}
- bx r1
- thumb_func_end sub_809B324
-
- thumb_func_start sub_809B358
-sub_809B358: @ 809B358
- push {lr}
- ldr r0, _0809B378 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809B37C
- ldrh r0, [r1, 0x26]
- subs r0, 0x1
- strh r0, [r1, 0x26]
- movs r0, 0x1
- b _0809B37E
- .align 2, 0
-_0809B378: .4byte gUnknown_083B6DB4
-_0809B37C:
- movs r0, 0
-_0809B37E:
- pop {r1}
- bx r1
- thumb_func_end sub_809B358
-
- thumb_func_start sub_809B384
-sub_809B384: @ 809B384
- push {r4,lr}
- ldr r0, _0809B3AC @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B3B4
- cmp r0, 0x1
- bne _0809B3D2
- ldr r4, _0809B3B0 @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0
- bl sub_8099584
- b _0809B3CC
- .align 2, 0
-_0809B3AC: .4byte gUnknown_020384E4
-_0809B3B0: .4byte gUnknown_020384E5
-_0809B3B4:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0809B3D8 @ =gUnknown_020384E5
- ldrb r1, [r4]
- bl sub_809B44C
- ldrb r1, [r4]
- movs r0, 0x1
- bl sub_8099584
-_0809B3CC:
- ldr r1, _0809B3DC @ =gUnknown_020384E6
- movs r0, 0x1
- strb r0, [r1]
-_0809B3D2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B3D8: .4byte gUnknown_020384E5
-_0809B3DC: .4byte gUnknown_020384E6
- thumb_func_end sub_809B384
-
- thumb_func_start sub_809B3E0
-sub_809B3E0: @ 809B3E0
- push {r4,r5,lr}
- ldr r0, _0809B408 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _0809B410
- cmp r0, 0x1
- bne _0809B432
- ldr r4, _0809B40C @ =gUnknown_020384E5
- ldrb r1, [r4]
- movs r0, 0xE
- bl diegohint2
- ldrb r1, [r4]
- movs r0, 0xE
- bl sub_809960C
- b _0809B42C
- .align 2, 0
-_0809B408: .4byte gUnknown_020384E4
-_0809B40C: .4byte gUnknown_020384E5
-_0809B410:
- bl get_preferred_box
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0809B438 @ =gUnknown_020384E5
- ldrb r1, [r5]
- adds r0, r4, 0
- bl diegohint2
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_809960C
-_0809B42C:
- ldr r1, _0809B43C @ =gUnknown_020384E6
- movs r0, 0
- strb r0, [r1]
-_0809B432:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B438: .4byte gUnknown_020384E5
-_0809B43C: .4byte gUnknown_020384E6
- thumb_func_end sub_809B3E0
-
- thumb_func_start sub_809B440
-sub_809B440: @ 809B440
- push {lr}
- bl sub_809BF74
- pop {r0}
- bx r0
- thumb_func_end sub_809B440
-
- thumb_func_start sub_809B44C
-sub_809B44C: @ 809B44C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0xE
- bne _0809B488
- ldr r0, _0809B478 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B47C @ =0x000025b4
- adds r0, r1
- ldr r3, _0809B480 @ =gPlayerParty
- ldr r1, _0809B484 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- b _0809B4AA
- .align 2, 0
-_0809B478: .4byte gUnknown_083B6DB4
-_0809B47C: .4byte 0x000025b4
-_0809B480: .4byte gPlayerParty
-_0809B484: .4byte gUnknown_020384E5
-_0809B488:
- lsls r1, r4, 2
- adds r1, r4
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 4
- ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B4C4 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B4C8 @ =0x000025b4
- adds r1, r2
- bl sub_803B4B4
-_0809B4AA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_809B548
- ldr r0, _0809B4CC @ =gUnknown_020384E7
- strb r4, [r0]
- ldr r0, _0809B4D0 @ =gUnknown_020384E8
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B4C0: .4byte gPokemonStorage + 0x4
-_0809B4C4: .4byte gUnknown_083B6DB4
-_0809B4C8: .4byte 0x000025b4
-_0809B4CC: .4byte gUnknown_020384E7
-_0809B4D0: .4byte gUnknown_020384E8
- thumb_func_end sub_809B44C
-
- thumb_func_start diegohint2
-diegohint2: @ 809B4D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r6, 0xE
- bne _0809B508
- ldr r1, _0809B4FC @ =gPlayerParty
- movs r0, 0x64
- muls r0, r5
- adds r0, r1
- ldr r1, _0809B500 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B504 @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B536
- .align 2, 0
-_0809B4FC: .4byte gPlayerParty
-_0809B500: .4byte gUnknown_083B6DB4
-_0809B504: .4byte 0x000025b4
-_0809B508:
- ldr r0, _0809B53C @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r0, _0809B540 @ =0x000025b4
- adds r4, r0
- adds r0, r4, 0
- bl BoxMonRestorePP
- ldr r3, _0809B544 @ =gPokemonStorage
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- lsls r2, r6, 2
- adds r2, r6
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 5
- adds r0, r1
- adds r0, r3
- adds r0, 0x4
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
-_0809B536:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B53C: .4byte gUnknown_083B6DB4
-_0809B540: .4byte 0x000025b4
-_0809B544: .4byte gPokemonStorage
- thumb_func_end diegohint2
-
- thumb_func_start sub_809B548
-sub_809B548: @ 809B548
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r0, 0xE
- bne _0809B568
- movs r0, 0x64
- muls r0, r2
- ldr r1, _0809B564 @ =gPlayerParty
- adds r0, r1
- bl ZeroMonData
- b _0809B582
- .align 2, 0
-_0809B564: .4byte gPlayerParty
-_0809B568:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809B588 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- bl ZeroBoxMonData
-_0809B582:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B588: .4byte gPokemonStorage + 0x4
- thumb_func_end sub_809B548
-
- thumb_func_start diegohint1
-diegohint1: @ 809B58C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r5, 0xE
- bne _0809B5C0
- ldr r0, _0809B5B4 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B5B8 @ =0x00002618
- adds r0, r1
- ldr r2, _0809B5BC @ =gPlayerParty
- movs r1, 0x64
- muls r1, r6
- adds r1, r2
- movs r2, 0x64
- bl memcpy
- b _0809B5E2
- .align 2, 0
-_0809B5B4: .4byte gUnknown_083B6DB4
-_0809B5B8: .4byte 0x00002618
-_0809B5BC: .4byte gPlayerParty
-_0809B5C0:
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 4
- ldr r2, _0809B614 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B618 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- bl sub_803B4B4
-_0809B5E2:
- adds r0, r5, 0
- adds r1, r6, 0
- bl diegohint2
- ldr r0, _0809B618 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809B620 @ =0x000025b4
- adds r4, r1, r0
- ldr r2, _0809B61C @ =0x00002618
- adds r1, r2
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0
- bl sub_809C04C
- ldr r0, _0809B624 @ =gUnknown_020384E7
- strb r5, [r0]
- ldr r0, _0809B628 @ =gUnknown_020384E8
- strb r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B614: .4byte gPokemonStorage + 0x4
-_0809B618: .4byte gUnknown_083B6DB4
-_0809B61C: .4byte 0x00002618
-_0809B620: .4byte 0x000025b4
-_0809B624: .4byte gUnknown_020384E7
-_0809B628: .4byte gUnknown_020384E8
- thumb_func_end diegohint1
-
- thumb_func_start sub_809B62C
-sub_809B62C: @ 809B62C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_8095B24
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0809B64A
- movs r0, 0
- b _0809B6AC
-_0809B64A:
- ldr r5, _0809B668 @ =gUnknown_020384E6
- ldrb r0, [r5]
- cmp r0, 0
- beq _0809B66C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- bl sub_8099480
- movs r0, 0
- strb r0, [r5]
- b _0809B686
- .align 2, 0
-_0809B668: .4byte gUnknown_020384E6
-_0809B66C:
- ldr r5, _0809B6B4 @ =gUnknown_020384E5
- ldrb r1, [r5]
- movs r0, 0xE
- bl sub_809B44C
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r6, 0
- bl diegohint2
- ldrb r0, [r5]
- bl sub_8099520
-_0809B686:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0809B698
- lsrs r0, r4, 24
- bl sub_8098D20
-_0809B698:
- ldr r0, _0809B6B8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x1
-_0809B6AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809B6B4: .4byte gUnknown_020384E5
-_0809B6B8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B62C
-
- thumb_func_start sub_809B6BC
-sub_809B6BC: @ 809B6BC
- push {lr}
- ldr r0, _0809B6D8 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B6D8: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B6BC
-
- thumb_func_start sub_809B6DC
-sub_809B6DC: @ 809B6DC
- push {lr}
- ldr r0, _0809B6EC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B6F0
- movs r2, 0x2
- b _0809B700
- .align 2, 0
-_0809B6EC: .4byte gUnknown_020384E6
-_0809B6F0:
- ldr r0, _0809B720 @ =gUnknown_020384E4
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0x1
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r2, r0, 31
-_0809B700:
- ldr r0, _0809B724 @ =gUnknown_020384E5
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809981C
- ldr r0, _0809B728 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809B72C @ =0x000026e4
- adds r0, r1, r2
- ldr r2, _0809B730 @ =0x000011fa
- adds r1, r2
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_0809B720: .4byte gUnknown_020384E4
-_0809B724: .4byte gUnknown_020384E5
-_0809B728: .4byte gUnknown_083B6DB4
-_0809B72C: .4byte 0x000026e4
-_0809B730: .4byte 0x000011fa
- thumb_func_end sub_809B6DC
-
- thumb_func_start sub_809B734
-sub_809B734: @ 809B734
- push {lr}
- bl sub_80998D8
- lsls r0, 24
- cmp r0, 0
- beq _0809B744
- movs r0, 0x1
- b _0809B758
-_0809B744:
- ldr r0, _0809B75C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0
-_0809B758:
- pop {r1}
- bx r1
- .align 2, 0
-_0809B75C: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B734
-
- thumb_func_start sub_809B760
-sub_809B760: @ 809B760
- push {lr}
- bl sub_8099920
- ldr r1, _0809B774 @ =gUnknown_020384E6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809B778
- movs r0, 0
- strb r0, [r1]
- b _0809B79E
- .align 2, 0
-_0809B774: .4byte gUnknown_020384E6
-_0809B778:
- ldr r0, _0809B788 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B78C
- movs r2, 0xE
- b _0809B794
- .align 2, 0
-_0809B788: .4byte gUnknown_020384E4
-_0809B78C:
- bl get_preferred_box
- lsls r0, 24
- lsrs r2, r0, 24
-_0809B794:
- ldr r0, _0809B7A8 @ =gUnknown_020384E5
- ldrb r1, [r0]
- adds r0, r2, 0
- bl sub_809B548
-_0809B79E:
- bl sub_809BF74
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7A8: .4byte gUnknown_020384E5
- thumb_func_end sub_809B760
-
- thumb_func_start sub_809B7AC
-sub_809B7AC: @ 809B7AC
- push {lr}
- ldr r0, _0809B7CC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B7C8
- ldr r0, _0809B7D0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- movs r1, 0x8E
- lsls r1, 5
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x3
- bl StartSpriteAnim
-_0809B7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_0809B7CC: .4byte gUnknown_020384E6
-_0809B7D0: .4byte gUnknown_083B6DB4
- thumb_func_end sub_809B7AC
-
- thumb_func_start sub_809B7D4
-sub_809B7D4: @ 809B7D4
- push {r4-r6,lr}
- ldr r0, _0809B804 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809B81C
- ldr r0, _0809B808 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r1, _0809B80C @ =0x00002618
- adds r0, r4, r1
- ldr r2, _0809B810 @ =0x000025b4
- adds r1, r4, r2
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B814 @ =0x00002682
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0809B818 @ =0x00002683
- adds r4, r1
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4]
- b _0809B8A6
- .align 2, 0
-_0809B804: .4byte gUnknown_020384E6
-_0809B808: .4byte gUnknown_083B6DB4
-_0809B80C: .4byte 0x00002618
-_0809B810: .4byte 0x000025b4
-_0809B814: .4byte 0x00002682
-_0809B818: .4byte 0x00002683
-_0809B81C:
- ldr r0, _0809B84C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809B864
- ldr r0, _0809B850 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809B854 @ =0x00002618
- adds r0, r4, r2
- ldr r3, _0809B858 @ =gPlayerParty
- ldr r1, _0809B85C @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- movs r1, 0x64
- muls r1, r2
- adds r1, r3
- movs r2, 0x64
- bl memcpy
- ldr r0, _0809B860 @ =0x00002682
- adds r4, r0
- movs r0, 0xE
- b _0809B896
- .align 2, 0
-_0809B84C: .4byte gUnknown_020384E4
-_0809B850: .4byte gUnknown_083B6DB4
-_0809B854: .4byte 0x00002618
-_0809B858: .4byte gPlayerParty
-_0809B85C: .4byte gUnknown_020384E5
-_0809B860: .4byte 0x00002682
-_0809B864:
- ldr r5, _0809B8FC @ =gPokemonStorage
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809B900 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r2, r5, 0x4
- adds r1, r2
- adds r0, r1
- ldr r1, _0809B904 @ =gUnknown_083B6DB4
- ldr r4, [r1]
- ldr r2, _0809B908 @ =0x00002618
- adds r1, r4, r2
- bl sub_803B4B4
- ldrb r0, [r5]
- ldr r1, _0809B90C @ =0x00002682
- adds r4, r1
-_0809B896:
- strb r0, [r4]
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B900 @ =gUnknown_020384E5
- ldrb r1, [r1]
- ldr r2, _0809B910 @ =0x00002683
- adds r0, r2
- strb r1, [r0]
-_0809B8A6:
- ldr r0, _0809B904 @ =gUnknown_083B6DB4
- ldr r6, [r0]
- ldr r0, _0809B914 @ =0x0000267e
- adds r4, r6, r0
- movs r0, 0
- strb r0, [r4]
- ldr r1, _0809B918 @ =0x0000267f
- adds r5, r6, r1
- strb r0, [r5]
- ldr r0, _0809B91C @ =0x00002686
- adds r2, r6, r0
- movs r0, 0x39
- strh r0, [r2]
- ldr r0, _0809B920 @ =0x00002688
- adds r1, r6, r0
- ldr r0, _0809B924 @ =0x00000123
- strh r0, [r1]
- ldr r0, _0809B928 @ =0x0000268a
- adds r1, r6, r0
- ldr r0, _0809B92C @ =0x00000163
- strh r0, [r1]
- ldr r1, _0809B908 @ =0x00002618
- adds r0, r6, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- movs r2, 0x1
- ands r1, r2
- strb r1, [r4]
- lsrs r0, 17
- movs r1, 0x1
- ands r0, r1
- strb r0, [r5]
- ldrh r0, [r4]
- cmp r0, 0
- beq _0809B934
- ldr r2, _0809B930 @ =0x0000267d
- adds r1, r6, r2
- movs r0, 0
- strb r0, [r1]
- b _0809B940
- .align 2, 0
-_0809B8FC: .4byte gPokemonStorage
-_0809B900: .4byte gUnknown_020384E5
-_0809B904: .4byte gUnknown_083B6DB4
-_0809B908: .4byte 0x00002618
-_0809B90C: .4byte 0x00002682
-_0809B910: .4byte 0x00002683
-_0809B914: .4byte 0x0000267e
-_0809B918: .4byte 0x0000267f
-_0809B91C: .4byte 0x00002686
-_0809B920: .4byte 0x00002688
-_0809B924: .4byte 0x00000123
-_0809B928: .4byte 0x0000268a
-_0809B92C: .4byte 0x00000163
-_0809B930: .4byte 0x0000267d
-_0809B934:
- ldr r2, _0809B954 @ =0x0000267d
- adds r0, r6, r2
- strb r1, [r0]
- subs r2, 0x1
- adds r0, r6, r2
- strb r1, [r0]
-_0809B940:
- ldr r0, _0809B958 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809B95C @ =0x00002684
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809B954: .4byte 0x0000267d
-_0809B958: .4byte gUnknown_083B6DB4
-_0809B95C: .4byte 0x00002684
- thumb_func_end sub_809B7D4
-
- thumb_func_start sub_809B960
-sub_809B960: @ 809B960
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809B988 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r3, _0809B98C @ =0x0000267d
- adds r1, r2, r3
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _0809B994
- ldr r7, _0809B990 @ =0x0000267c
- adds r0, r2, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _0809BB5C
- .align 2, 0
-_0809B988: .4byte gUnknown_083B6DB4
-_0809B98C: .4byte 0x0000267d
-_0809B990: .4byte 0x0000267c
-_0809B994:
- ldr r1, _0809B9A4 @ =0x00002684
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809B9A8
- cmp r0, 0x1
- beq _0809BA84
- b _0809BB58
- .align 2, 0
-_0809B9A4: .4byte 0x00002684
-_0809B9A8:
- movs r5, 0
- movs r6, 0
-_0809B9AC:
- mov r2, r12
- ldr r4, [r2]
- ldr r3, _0809BA28 @ =0x00002682
- adds r0, r4, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xE
- bne _0809B9CC
- ldr r7, _0809BA2C @ =0x00002683
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r5
- beq _0809BA02
-_0809B9CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0809BA30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0809BA34 @ =0x00002686
- adds r2, r4, r1
- movs r1, 0x50
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809B9F0
- ldr r2, _0809BA38 @ =0x0000267e
- adds r0, r4, r2
- strb r6, [r0]
-_0809B9F0:
- movs r0, 0x2
- ands r3, r0
- ldr r7, _0809BA3C @ =gUnknown_083B6DB4
- mov r12, r7
- cmp r3, 0
- beq _0809BA02
- ldr r1, _0809BA40 @ =0x0000267f
- adds r0, r4, r1
- strb r6, [r0]
-_0809BA02:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809B9AC
- mov r3, r12
- ldr r2, [r3]
- ldr r7, _0809BA38 @ =0x0000267e
- adds r0, r2, r7
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BA4C
- ldr r1, _0809BA44 @ =0x0000267d
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r3, _0809BA48 @ =0x0000267c
- b _0809BB54
- .align 2, 0
-_0809BA28: .4byte 0x00002682
-_0809BA2C: .4byte 0x00002683
-_0809BA30: .4byte gPlayerParty
-_0809BA34: .4byte 0x00002686
-_0809BA38: .4byte 0x0000267e
-_0809BA3C: .4byte gUnknown_083B6DB4
-_0809BA40: .4byte 0x0000267f
-_0809BA44: .4byte 0x0000267d
-_0809BA48: .4byte 0x0000267c
-_0809BA4C:
- movs r7, 0x9A
- lsls r7, 6
- adds r0, r2, r7
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BA68 @ =0x00002681
- adds r0, r2, r3
- strb r1, [r0]
- adds r7, 0x4
- adds r1, r2, r7
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0809BB58
- .align 2, 0
-_0809BA68: .4byte 0x00002681
-_0809BA6C:
- ldr r1, _0809BA7C @ =0x0000267d
- adds r0, r2, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r7, _0809BA80 @ =0x0000267c
- adds r0, r2, r7
- strb r3, [r0]
- b _0809BB3C
- .align 2, 0
-_0809BA7C: .4byte 0x0000267d
-_0809BA80: .4byte 0x0000267c
-_0809BA84:
- movs r5, 0
- mov r9, r12
- adds r4, r2, 0
- movs r0, 0x9A
- lsls r0, 6
- adds r6, r4, r0
- ldr r1, _0809BB6C @ =0x0000267f
- adds r1, r4
- mov r8, r1
- ldr r2, _0809BB70 @ =0x0000ffff
- mov r10, r2
-_0809BA9A:
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r3, _0809BB74 @ =0x00002681
- adds r1, r4, r3
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BB78 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- movs r1, 0x50
- ldr r7, _0809BB7C @ =0x00002686
- adds r2, r4, r7
- bl GetBoxMonData
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0809BB00
- ldr r1, _0809BB80 @ =0x00002682
- adds r0, r4, r1
- ldrh r0, [r0]
- ldrh r2, [r6]
- mov r1, r10
- ands r1, r0
- mov r0, r10
- ands r0, r2
- cmp r1, r0
- beq _0809BB00
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0809BAF2
- ldr r2, _0809BB84 @ =0x0000267e
- adds r1, r4, r2
- movs r0, 0
- strb r0, [r1]
-_0809BAF2:
- movs r0, 0x2
- ands r3, r0
- cmp r3, 0
- beq _0809BB00
- movs r0, 0
- mov r3, r8
- strb r0, [r3]
-_0809BB00:
- mov r7, r9
- ldr r2, [r7]
- ldr r0, _0809BB74 @ =0x00002681
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- ldr r7, _0809BB88 @ =gUnknown_083B6DB4
- mov r12, r7
- cmp r0, 0x1D
- ble _0809BB32
- strb r3, [r1]
- movs r0, 0x9A
- lsls r0, 6
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xD
- bgt _0809BA6C
-_0809BB32:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _0809BA9A
-_0809BB3C:
- mov r1, r12
- ldr r2, [r1]
- ldr r3, _0809BB84 @ =0x0000267e
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _0809BB58
- ldr r7, _0809BB8C @ =0x0000267d
- adds r0, r2, r7
- movs r1, 0x1
- strb r1, [r0]
- subs r3, 0x2
-_0809BB54:
- adds r0, r2, r3
- strb r1, [r0]
-_0809BB58:
- movs r0, 0x1
- negs r0, r0
-_0809BB5C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BB6C: .4byte 0x0000267f
-_0809BB70: .4byte 0x0000ffff
-_0809BB74: .4byte 0x00002681
-_0809BB78: .4byte gPokemonStorage + 0x4
-_0809BB7C: .4byte 0x00002686
-_0809BB80: .4byte 0x00002682
-_0809BB84: .4byte 0x0000267e
-_0809BB88: .4byte gUnknown_083B6DB4
-_0809BB8C: .4byte 0x0000267d
- thumb_func_end sub_809B960
-
- thumb_func_start sub_809BB90
-sub_809BB90: @ 809BB90
- push {lr}
- ldr r0, _0809BBB0 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BBAA
- ldr r0, _0809BBB4 @ =gUnknown_02038480
- ldr r1, _0809BBB8 @ =gUnknown_083B6DB4
- ldr r1, [r1]
- ldr r2, _0809BBBC @ =0x000025b4
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_0809BBAA:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BBB0: .4byte gUnknown_020384E6
-_0809BBB4: .4byte gUnknown_02038480
-_0809BBB8: .4byte gUnknown_083B6DB4
-_0809BBBC: .4byte 0x000025b4
- thumb_func_end sub_809BB90
-
- thumb_func_start sub_809BBC0
-sub_809BBC0: @ 809BBC0
- push {lr}
- ldr r0, _0809BBE4 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BC08
- ldr r0, _0809BBE8 @ =gUnknown_020384E7
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0809BBF8
- ldr r0, _0809BBEC @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809BBF0 @ =0x000025b4
- adds r0, r1
- ldr r1, _0809BBF4 @ =gUnknown_02038480
- movs r2, 0x64
- bl memcpy
- b _0809BC08
- .align 2, 0
-_0809BBE4: .4byte gUnknown_020384E6
-_0809BBE8: .4byte gUnknown_020384E7
-_0809BBEC: .4byte gUnknown_083B6DB4
-_0809BBF0: .4byte 0x000025b4
-_0809BBF4: .4byte gUnknown_02038480
-_0809BBF8:
- ldr r0, _0809BC0C @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldr r1, _0809BC10 @ =0x000025b4
- adds r0, r1
- ldr r1, _0809BC14 @ =gUnknown_02038480
- movs r2, 0x50
- bl memcpy
-_0809BC08:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BC0C: .4byte gUnknown_083B6DB4
-_0809BC10: .4byte 0x000025b4
-_0809BC14: .4byte gUnknown_02038480
- thumb_func_end sub_809BBC0
-
- thumb_func_start sub_809BC18
-sub_809BC18: @ 809BC18
- push {r4,r5,lr}
- ldr r0, _0809BC48 @ =gUnknown_020384E6
- ldrb r5, [r0]
- cmp r5, 0
- beq _0809BC64
- bl sub_809BB90
- ldr r0, _0809BC4C @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r0, _0809BC50 @ =0x00002690
- adds r1, r2, r0
- ldr r0, _0809BC54 @ =gUnknown_02038480
- str r0, [r1]
- ldr r1, _0809BC58 @ =0x0000268d
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809BC5C @ =0x0000268c
- adds r0, r2, r3
- strb r1, [r0]
- ldr r0, _0809BC60 @ =0x0000268e
- adds r2, r0
- strb r1, [r2]
- b _0809BCF2
- .align 2, 0
-_0809BC48: .4byte gUnknown_020384E6
-_0809BC4C: .4byte gUnknown_083B6DB4
-_0809BC50: .4byte 0x00002690
-_0809BC54: .4byte gUnknown_02038480
-_0809BC58: .4byte 0x0000268d
-_0809BC5C: .4byte 0x0000268c
-_0809BC60: .4byte 0x0000268e
-_0809BC64:
- ldr r0, _0809BC9C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BCBC
- ldr r0, _0809BCA0 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809BCA4 @ =0x00002690
- adds r1, r4, r2
- ldr r0, _0809BCA8 @ =gPlayerParty
- str r0, [r1]
- ldr r0, _0809BCAC @ =gUnknown_020384E5
- ldrb r1, [r0]
- ldr r3, _0809BCB0 @ =0x0000268d
- adds r0, r4, r3
- strb r1, [r0]
- bl StorageSystemGetPartySize
- subs r0, 0x1
- ldr r2, _0809BCB4 @ =0x0000268c
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _0809BCB8 @ =0x0000268e
- adds r4, r3
- strb r5, [r4]
- b _0809BCF2
- .align 2, 0
-_0809BC9C: .4byte gUnknown_020384E4
-_0809BCA0: .4byte gUnknown_083B6DB4
-_0809BCA4: .4byte 0x00002690
-_0809BCA8: .4byte gPlayerParty
-_0809BCAC: .4byte gUnknown_020384E5
-_0809BCB0: .4byte 0x0000268d
-_0809BCB4: .4byte 0x0000268c
-_0809BCB8: .4byte 0x0000268e
-_0809BCBC:
- ldr r0, _0809BCF8 @ =gUnknown_083B6DB4
- ldr r3, [r0]
- ldr r0, _0809BCFC @ =0x00002690
- adds r4, r3, r0
- ldr r2, _0809BD00 @ =gPokemonStorage
- ldrb r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- adds r2, 0x4
- adds r0, r2
- str r0, [r4]
- ldr r0, _0809BD04 @ =gUnknown_020384E5
- ldrb r1, [r0]
- ldr r2, _0809BD08 @ =0x0000268d
- adds r0, r3, r2
- strb r1, [r0]
- ldr r0, _0809BD0C @ =0x0000268c
- adds r1, r3, r0
- movs r0, 0x1D
- strb r0, [r1]
- ldr r1, _0809BD10 @ =0x0000268e
- adds r3, r1
- movs r0, 0x5
- strb r0, [r3]
-_0809BCF2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BCF8: .4byte gUnknown_083B6DB4
-_0809BCFC: .4byte 0x00002690
-_0809BD00: .4byte gPokemonStorage
-_0809BD04: .4byte gUnknown_020384E5
-_0809BD08: .4byte 0x0000268d
-_0809BD0C: .4byte 0x0000268c
-_0809BD10: .4byte 0x0000268e
- thumb_func_end sub_809BC18
-
- thumb_func_start sub_809BD14
-sub_809BD14: @ 809BD14
- push {lr}
- ldr r0, _0809BD24 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BD28
- bl sub_809BBC0
- b _0809BD30
- .align 2, 0
-_0809BD24: .4byte gUnknown_020384E6
-_0809BD28:
- ldr r0, _0809BD34 @ =gUnknown_020384E5
- ldr r1, _0809BD38 @ =gSharedMem + 0x18000
- ldrb r1, [r1, 0x9]
- strb r1, [r0]
-_0809BD30:
- pop {r0}
- bx r0
- .align 2, 0
-_0809BD34: .4byte gUnknown_020384E5
-_0809BD38: .4byte gSharedMem + 0x18000
- thumb_func_end sub_809BD14
-
- thumb_func_start party_compaction
-party_compaction: @ 809BD3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _0809BD88 @ =0x0000ffff
- movs r6, 0
- movs r5, 0
- movs r0, 0x64
- mov r9, r0
- ldr r1, _0809BD8C @ =gPlayerParty
- mov r8, r1
- subs r0, 0x65
- mov r10, r0
-_0809BD58:
- mov r0, r9
- muls r0, r6
- mov r1, r8
- adds r4, r0, r1
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- cmp r0, 0
- beq _0809BD90
- cmp r6, r5
- beq _0809BD80
- mov r0, r9
- muls r0, r5
- add r0, r8
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_0809BD80:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0809BD9A
- .align 2, 0
-_0809BD88: .4byte 0x0000ffff
-_0809BD8C: .4byte gPlayerParty
-_0809BD90:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r10
- bne _0809BD9A
- adds r7, r6, 0
-_0809BD9A:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _0809BD58
- lsls r7, 16
- cmp r5, 0x5
- bhi _0809BDC2
- movs r6, 0x64
- ldr r4, _0809BDD4 @ =gPlayerParty
-_0809BDAE:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- bl ZeroMonData
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _0809BDAE
-_0809BDC2:
- asrs r0, r7, 16
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809BDD4: .4byte gPlayerParty
- thumb_func_end party_compaction
-
- thumb_func_start sub_809BDD8
-sub_809BDD8: @ 809BDD8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- ldr r1, _0809BE04 @ =gUnknown_083B6DB4
- ldr r2, [r1]
- ldr r3, _0809BE08 @ =0x000011f7
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _0809BE0C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BE14
- ldr r1, _0809BE10 @ =0x000025b4
- adds r0, r2, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- b _0809BE68
- .align 2, 0
-_0809BE04: .4byte gUnknown_083B6DB4
-_0809BE08: .4byte 0x000011f7
-_0809BE0C: .4byte gUnknown_020384E6
-_0809BE10: .4byte 0x000025b4
-_0809BE14:
- ldr r4, _0809BE70 @ =gUnknown_020384E4
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x1
- bne _0809BE34
- ldr r0, _0809BE74 @ =gUnknown_020384E5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BE78 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
-_0809BE34:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _0809BE68
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809BE74 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809BE7C @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetBoxMonData
-_0809BE68:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809BE70: .4byte gUnknown_020384E4
-_0809BE74: .4byte gUnknown_020384E5
-_0809BE78: .4byte gPlayerParty
-_0809BE7C: .4byte gPokemonStorage + 0x4
- thumb_func_end sub_809BDD8
-
- thumb_func_start sub_809BE80
-sub_809BE80: @ 809BE80
- push {lr}
- ldr r0, _0809BEA8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEB4
- ldr r0, _0809BEAC @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BEB4
- ldr r0, _0809BEB0 @ =gUnknown_020384E5
- ldrb r0, [r0]
- bl CountAlivePartyMonsExceptOne
- lsls r0, 24
- cmp r0, 0
- bne _0809BEB4
- movs r0, 0x1
- b _0809BEB6
- .align 2, 0
-_0809BEA8: .4byte gUnknown_020384E4
-_0809BEAC: .4byte gUnknown_020384E6
-_0809BEB0: .4byte gUnknown_020384E5
-_0809BEB4:
- movs r0, 0
-_0809BEB6:
- pop {r1}
- bx r1
- thumb_func_end sub_809BE80
-
- thumb_func_start sub_809BEBC
-sub_809BEBC: @ 809BEBC
- push {lr}
- ldr r0, _0809BF00 @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809BF18
- ldr r0, _0809BF04 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BEFC
- ldr r0, _0809BF08 @ =gUnknown_020384E5
- ldrb r0, [r0]
- bl CountAlivePartyMonsExceptOne
- lsls r0, 24
- cmp r0, 0
- bne _0809BEFC
- ldr r0, _0809BF0C @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r2, _0809BF10 @ =0x000011f9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809BF18
- ldr r2, _0809BF14 @ =0x000025b4
- adds r0, r1, r2
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0809BF18
-_0809BEFC:
- movs r0, 0x1
- b _0809BF1A
- .align 2, 0
-_0809BF00: .4byte gUnknown_020384E6
-_0809BF04: .4byte gUnknown_020384E4
-_0809BF08: .4byte gUnknown_020384E5
-_0809BF0C: .4byte gUnknown_083B6DB4
-_0809BF10: .4byte 0x000011f9
-_0809BF14: .4byte 0x000025b4
-_0809BF18:
- movs r0, 0
-_0809BF1A:
- pop {r1}
- bx r1
- thumb_func_end sub_809BEBC
-
- thumb_func_start sub_809BF20
-sub_809BF20: @ 809BF20
- ldr r0, _0809BF28 @ =gUnknown_020384E6
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0809BF28: .4byte gUnknown_020384E6
- thumb_func_end sub_809BF20
-
- thumb_func_start sub_809BF2C
-sub_809BF2C: @ 809BF2C
- push {lr}
- movs r1, 0
- ldr r0, _0809BF44 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _0809BF3E
- movs r1, 0x1
-_0809BF3E:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF44: .4byte gUnknown_020384E4
- thumb_func_end sub_809BF2C
-
- thumb_func_start sub_809BF48
-sub_809BF48: @ 809BF48
- push {lr}
- movs r1, 0
- ldr r0, _0809BF6C @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _0809BF66
- ldr r0, _0809BF70 @ =gUnknown_020384E5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0809BF66
- movs r1, 0x1
-_0809BF66:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809BF6C: .4byte gUnknown_020384E4
-_0809BF70: .4byte gUnknown_020384E5
- thumb_func_end sub_809BF48
-
- thumb_func_start sub_809BF74
-sub_809BF74: @ 809BF74
- push {r4,lr}
- ldr r0, _0809BFA8 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _0809BFAC @ =gUnknown_020384E6
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809BF86
- movs r2, 0x1
-_0809BF86:
- ldr r4, _0809BFB0 @ =0x000011f6
- adds r0, r1, r4
- strb r2, [r0]
- ldrb r0, [r3]
- cmp r0, 0
- bne _0809C018
- ldr r0, _0809BFB4 @ =gUnknown_020384E4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _0809BFBE
- cmp r0, 0x1
- bgt _0809BFB8
- cmp r0, 0
- beq _0809BFEE
- b _0809C018
- .align 2, 0
-_0809BFA8: .4byte gUnknown_083B6DB4
-_0809BFAC: .4byte gUnknown_020384E6
-_0809BFB0: .4byte 0x000011f6
-_0809BFB4: .4byte gUnknown_020384E4
-_0809BFB8:
- cmp r0, 0x3
- bgt _0809C018
- b _0809BFE4
-_0809BFBE:
- ldr r1, _0809BFDC @ =gUnknown_020384E5
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0809BFE4
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0809BFE0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_809C04C
- b _0809C018
- .align 2, 0
-_0809BFDC: .4byte gUnknown_020384E5
-_0809BFE0: .4byte gPlayerParty
-_0809BFE4:
- movs r0, 0
- movs r1, 0x2
- bl sub_809C04C
- b _0809C018
-_0809BFEE:
- bl get_preferred_box
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, _0809C020 @ =gUnknown_020384E5
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _0809C024 @ =gPokemonStorage + 0x4
- adds r1, r2
- adds r0, r1
- movs r1, 0x1
- bl sub_809C04C
-_0809C018:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C020: .4byte gUnknown_020384E5
-_0809C024: .4byte gPokemonStorage + 0x4
- thumb_func_end sub_809BF74
-
- thumb_func_start sub_809C028
-sub_809C028: @ 809C028
- push {lr}
- ldr r0, _0809C03C @ =gUnknown_020384E6
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C044
- ldr r0, _0809C040 @ =gUnknown_02038480
- movs r1, 0
- bl sub_809C04C
- b _0809C048
- .align 2, 0
-_0809C03C: .4byte gUnknown_020384E6
-_0809C040: .4byte gUnknown_02038480
-_0809C044:
- bl sub_809BF74
-_0809C048:
- pop {r0}
- bx r0
- thumb_func_end sub_809C028
-
- thumb_func_start sub_809C04C
-sub_809C04C: @ 809C04C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- str r0, [sp]
- ldr r0, _0809C0FC @ =gUnknown_083B6DB4
- ldr r6, [r0]
- ldr r2, _0809C100 @ =0x000011f2
- adds r2, r6
- mov r8, r2
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r2]
- cmp r1, 0
- bne _0809C120
- adds r0, r7, 0
- movs r1, 0x41
- bl GetMonData
- ldr r2, _0809C104 @ =0x000011f0
- adds r1, r6, r2
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _0809C08C
- b _0809C1EC
-_0809C08C:
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- ldr r2, _0809C108 @ =0x000011f9
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C10C @ =0x000011fa
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- ldr r2, _0809C110 @ =0x000011f8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetMonData
- ldr r2, _0809C114 @ =0x000011f7
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r2, _0809C118 @ =0x000011ec
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl GetMonSpritePal
- ldr r2, _0809C11C @ =0x000011e8
- adds r1, r6, r2
- str r0, [r1]
- adds r0, r7, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- b _0809C1B2
- .align 2, 0
-_0809C0FC: .4byte gUnknown_083B6DB4
-_0809C100: .4byte 0x000011f2
-_0809C104: .4byte 0x000011f0
-_0809C108: .4byte 0x000011f9
-_0809C10C: .4byte 0x000011fa
-_0809C110: .4byte 0x000011f8
-_0809C114: .4byte 0x000011f7
-_0809C118: .4byte 0x000011ec
-_0809C11C: .4byte 0x000011e8
-_0809C120:
- cmp r1, 0x1
- bne _0809C1D4
- adds r0, r7, 0
- movs r1, 0x41
- bl GetBoxMonData
- ldr r2, _0809C1B8 @ =0x000011f0
- adds r5, r6, r2
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- beq _0809C1EC
- adds r0, r7, 0
- movs r1, 0x1
- bl GetBoxMonData
- mov r9, r0
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetBoxMonData
- ldr r2, _0809C1BC @ =0x000011f9
- adds r1, r6, r2
- strb r0, [r1]
- ldr r0, _0809C1C0 @ =0x000011fa
- adds r4, r6, r0
- adds r0, r7, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetBoxMonData
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r7, 0
- bl GetLevelFromBoxMonExp
- ldr r2, _0809C1C4 @ =0x000011f8
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0x8
- bl GetBoxMonData
- ldr r2, _0809C1C8 @ =0x000011f7
- adds r1, r6, r2
- strb r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetBoxMonData
- adds r2, r0, 0
- ldr r0, _0809C1CC @ =0x000011ec
- adds r4, r6, r0
- str r2, [r4]
- ldrh r0, [r5]
- mov r1, r9
- bl GetMonSpritePalFromOtIdPersonality
- ldr r2, _0809C1D0 @ =0x000011e8
- adds r1, r6, r2
- str r0, [r1]
- ldrh r0, [r5]
- ldr r1, [r4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0xC
- bl GetBoxMonData
-_0809C1B2:
- mov r1, r8
- strh r0, [r1]
- b _0809C1DE
- .align 2, 0
-_0809C1B8: .4byte 0x000011f0
-_0809C1BC: .4byte 0x000011f9
-_0809C1C0: .4byte 0x000011fa
-_0809C1C4: .4byte 0x000011f8
-_0809C1C8: .4byte 0x000011f7
-_0809C1CC: .4byte 0x000011ec
-_0809C1D0: .4byte 0x000011e8
-_0809C1D4:
- ldr r2, _0809C220 @ =0x000011f0
- adds r0, r6, r2
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0]
-_0809C1DE:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809C220 @ =0x000011f0
- adds r0, r4, r2
- ldrh r1, [r0]
- cmp r1, 0
- bne _0809C23C
-_0809C1EC:
- ldr r0, _0809C224 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C228 @ =0x000011fa
- adds r2, r1, r0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r0, _0809C22C @ =0x0000120f
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C230 @ =0x00001234
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r0, _0809C234 @ =0x00001259
- adds r2, r1, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2]
- ldr r2, _0809C238 @ =0x0000127a
- adds r1, r2
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C220: .4byte 0x000011f0
-_0809C224: .4byte gUnknown_083B6DB4
-_0809C228: .4byte 0x000011fa
-_0809C22C: .4byte 0x0000120f
-_0809C230: .4byte 0x00001234
-_0809C234: .4byte 0x00001259
-_0809C238: .4byte 0x0000127a
-_0809C23C:
- ldr r2, _0809C28C @ =0x000011f9
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809C2A4
- ldr r0, _0809C290 @ =0x0000120f
- adds r7, r4, r0
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x4
- strb r0, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r1, _0809C294 @ =0x00001214
- adds r7, r4, r1
- adds r2, 0x1
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C298 @ =0x00001234
- adds r1, r4, r0
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, _0809C29C @ =0x00001259
- adds r1, r4, r2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- ldr r0, _0809C2A0 @ =0x0000127a
- adds r1, r4, r0
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- b _0809C43E
- .align 2, 0
-_0809C28C: .4byte 0x000011f9
-_0809C290: .4byte 0x0000120f
-_0809C294: .4byte 0x00001214
-_0809C298: .4byte 0x00001234
-_0809C29C: .4byte 0x00001259
-_0809C2A0: .4byte 0x0000127a
-_0809C2A4:
- cmp r1, 0x20
- beq _0809C2AC
- cmp r1, 0x1D
- bne _0809C2B0
-_0809C2AC:
- movs r1, 0xFF
- str r1, [sp]
-_0809C2B0:
- ldr r0, _0809C388 @ =gUnknown_083B6DB4
- ldr r4, [r0]
- ldr r2, _0809C38C @ =0x0000120f
- adds r7, r4, r2
- movs r0, 0xFC
- mov r9, r0
- strb r0, [r7]
- movs r1, 0x4
- mov r8, r1
- strb r1, [r7, 0x1]
- movs r2, 0xF
- strb r2, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r6, 0x1
- strb r6, [r7, 0x4]
- ldr r1, _0809C390 @ =0x00001214
- adds r7, r4, r1
- ldr r2, _0809C394 @ =0x000011fa
- adds r1, r4, r2
- adds r0, r7, 0
- bl StringCopy
- ldr r0, _0809C398 @ =0x00001234
- adds r7, r4, r0
- mov r1, r9
- strb r1, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- movs r0, 0x13
- mov r10, r0
- strb r0, [r7, 0x6]
- movs r1, 0x7
- strb r1, [r7, 0x7]
- movs r0, 0xBA
- strb r0, [r7, 0x8]
- ldr r2, _0809C39C @ =0x0000123d
- adds r7, r4, r2
- ldr r1, _0809C3A0 @ =0x000011f0
- adds r0, r4, r1
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _0809C3A4 @ =gSpeciesNames
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- mov r2, r9
- strb r2, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- movs r0, 0x50
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r1, _0809C3A8 @ =0x00001259
- adds r7, r4, r1
- strb r2, [r7]
- mov r2, r8
- strb r2, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r1, 0
- strb r1, [r7, 0x3]
- strb r6, [r7, 0x4]
- mov r2, r9
- strb r2, [r7, 0x5]
- mov r0, r10
- strb r0, [r7, 0x6]
- movs r6, 0x8
- strb r6, [r7, 0x7]
- ldr r1, _0809C3AC @ =0x00001261
- adds r7, r4, r1
- movs r0, 0x34
- strb r0, [r7]
- ldr r2, _0809C3B0 @ =0x00001262
- adds r7, r4, r2
- ldr r0, _0809C3B4 @ =0x000011f8
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r7, 0
- movs r2, 0x22
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- mov r1, r9
- strb r1, [r7]
- movs r0, 0x11
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- adds r7, 0x3
- ldr r2, [sp]
- cmp r2, 0
- beq _0809C3B8
- cmp r2, 0xFE
- beq _0809C3D0
- b _0809C3EA
- .align 2, 0
-_0809C388: .4byte gUnknown_083B6DB4
-_0809C38C: .4byte 0x0000120f
-_0809C390: .4byte 0x00001214
-_0809C394: .4byte 0x000011fa
-_0809C398: .4byte 0x00001234
-_0809C39C: .4byte 0x0000123d
-_0809C3A0: .4byte 0x000011f0
-_0809C3A4: .4byte gSpeciesNames
-_0809C3A8: .4byte 0x00001259
-_0809C3AC: .4byte 0x00001261
-_0809C3B0: .4byte 0x00001262
-_0809C3B4: .4byte 0x000011f8
-_0809C3B8:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- strb r1, [r7, 0x2]
- mov r2, sp
- ldrb r2, [r2]
- strb r2, [r7, 0x3]
- movs r0, 0x5
- strb r0, [r7, 0x4]
- movs r0, 0xB5
- b _0809C3E6
-_0809C3D0:
- mov r0, r9
- strb r0, [r7]
- mov r1, r8
- strb r1, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- movs r2, 0
- strb r2, [r7, 0x3]
- movs r0, 0x7
- strb r0, [r7, 0x4]
- movs r0, 0xB6
-_0809C3E6:
- strb r0, [r7, 0x5]
- adds r7, 0x6
-_0809C3EA:
- movs r5, 0xFF
- strb r5, [r7]
- ldr r0, _0809C450 @ =gUnknown_083B6DB4
- ldr r2, [r0]
- ldr r1, _0809C454 @ =0x0000127a
- adds r7, r2, r1
- ldr r0, _0809C458 @ =0x000011f2
- adds r3, r2, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _0809C43C
- movs r4, 0xFC
- strb r4, [r7]
- movs r1, 0x4
- strb r1, [r7, 0x1]
- movs r0, 0xF
- strb r0, [r7, 0x2]
- movs r0, 0
- strb r0, [r7, 0x3]
- movs r0, 0x1
- strb r0, [r7, 0x4]
- ldr r0, _0809C45C @ =0x0000127f
- adds r7, r2, r0
- strb r4, [r7]
- movs r0, 0x6
- strb r0, [r7, 0x1]
- strb r1, [r7, 0x2]
- ldr r1, _0809C460 @ =0x00001282
- adds r7, r2, r1
- ldrh r0, [r3]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x7
- strb r0, [r7, 0x1]
- adds r7, 0x2
-_0809C43C:
- strb r5, [r7]
-_0809C43E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809C450: .4byte gUnknown_083B6DB4
-_0809C454: .4byte 0x0000127a
-_0809C458: .4byte 0x000011f2
-_0809C45C: .4byte 0x0000127f
-_0809C460: .4byte 0x00001282
- thumb_func_end sub_809C04C
-
- thumb_func_start sub_809C464
-sub_809C464: @ 809C464
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0809C4D8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r8, r0
- ldr r2, _0809C4DC @ =gUnknown_020384E5
- ldrb r4, [r2]
- ldr r0, _0809C4E0 @ =gUnknown_083B6DB4
- ldr r1, [r0]
- ldr r0, _0809C4E4 @ =0x000011de
- adds r7, r1, r0
- movs r0, 0
- strb r0, [r7]
- ldr r3, _0809C4E8 @ =0x000011df
- adds r5, r1, r3
- strb r0, [r5]
- adds r3, 0x4
- adds r6, r1, r3
- strb r0, [r6]
- ldr r0, _0809C4EC @ =gMain
- mov r12, r0
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _0809C4A0
- b _0809C62A
-_0809C4A0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809C4F0
- movs r1, 0x1
- mov r9, r1
- lsls r0, r4, 24
- movs r3, 0xC0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x1D
- bgt _0809C4BE
- b _0809C648
-_0809C4BE:
- movs r1, 0x3
- mov r8, r1
- subs r0, 0x1E
- lsls r0, 24
- asrs r0, 24
- bl __divsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r3, r9
- strb r3, [r7]
- strb r3, [r6]
- b _0809C648
- .align 2, 0
-_0809C4D8: .4byte gUnknown_020384E4
-_0809C4DC: .4byte gUnknown_020384E5
-_0809C4E0: .4byte gUnknown_083B6DB4
-_0809C4E4: .4byte 0x000011de
-_0809C4E8: .4byte 0x000011df
-_0809C4EC: .4byte gMain
-_0809C4F0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809C524
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 24
- cmp r0, 0
- beq _0809C514
- lsls r0, r4, 24
- movs r1, 0xFF
- lsls r1, 24
- b _0809C63C
-_0809C514:
- movs r0, 0xFF
- strb r0, [r5]
- lsls r0, r4, 24
- movs r3, 0xA0
- lsls r3, 19
- adds r0, r3
- lsrs r4, r0, 24
- b _0809C648
-_0809C524:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C554
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, 0x1
- movs r1, 0x6
- bl __modsi3
- cmp r0, 0
- beq _0809C548
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- b _0809C63C
-_0809C548:
- mov r3, r9
- strb r3, [r5]
- lsls r0, r4, 24
- movs r1, 0xFB
- lsls r1, 24
- b _0809C63C
-_0809C554:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0809C56A
- movs r0, 0x1
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
- b _0809C646
-_0809C56A:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C5D4
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C5D4
- ldr r0, _0809C588 @ =gUnknown_020384E9
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C58C
- movs r0, 0x8
- b _0809C658
- .align 2, 0
-_0809C588: .4byte gUnknown_020384E9
-_0809C58C:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C5D4
- lsls r0, 2
- ldr r1, _0809C5A8 @ =_0809C5AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C5A8: .4byte _0809C5AC
- .align 2, 0
-_0809C5AC:
- .4byte _0809C5C0
- .4byte _0809C5C4
- .4byte _0809C5C8
- .4byte _0809C5CC
- .4byte _0809C5D0
-_0809C5C0:
- movs r0, 0xB
- b _0809C658
-_0809C5C4:
- movs r0, 0xC
- b _0809C658
-_0809C5C8:
- movs r0, 0xD
- b _0809C658
-_0809C5CC:
- movs r0, 0xE
- b _0809C658
-_0809C5D0:
- movs r0, 0xF
- b _0809C658
-_0809C5D4:
- ldr r2, _0809C5E4 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C5E8
- movs r0, 0x10
- b _0809C658
- .align 2, 0
-_0809C5E4: .4byte gMain
-_0809C5E8:
- ldr r0, _0809C600 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809C612
- ldrh r1, [r2, 0x2C]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0809C604
- movs r0, 0xA
- b _0809C658
- .align 2, 0
-_0809C600: .4byte gSaveBlock2
-_0809C604:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0809C612
- movs r0, 0x9
- b _0809C658
-_0809C612:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C624
- bl sub_809CD88
- movs r0, 0
- b _0809C658
-_0809C624:
- movs r3, 0
- mov r9, r3
- b _0809C656
-_0809C62A:
- movs r0, 0x1
- mov r9, r0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x5
- ble _0809C642
- lsls r0, r4, 24
- movs r1, 0xFA
- lsls r1, 24
-_0809C63C:
- adds r0, r1
- lsrs r4, r0, 24
- b _0809C648
-_0809C642:
- movs r3, 0x2
- mov r8, r3
-_0809C646:
- movs r4, 0
-_0809C648:
- mov r0, r9
- cmp r0, 0
- beq _0809C656
- mov r0, r8
- adds r1, r4, 0
- bl sub_809AF18
-_0809C656:
- mov r0, r9
-_0809C658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C464
-
- thumb_func_start sub_809C664
-sub_809C664: @ 809C664
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0809C6D8 @ =gUnknown_020384E4
- ldrb r0, [r0]
- mov r10, r0
- ldr r7, _0809C6DC @ =gUnknown_020384E5
- ldrb r4, [r7]
- ldr r2, _0809C6E0 @ =gUnknown_083B6DB4
- ldr r5, [r2]
- ldr r1, _0809C6E4 @ =0x000011df
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0809C6E8 @ =0x000011de
- adds r0, r5, r3
- strb r1, [r0]
- adds r3, 0x5
- adds r0, r5, r3
- strb r1, [r0]
- mov r9, r1
- mov r8, r1
- ldr r1, _0809C6EC @ =gMain
- ldrh r3, [r1, 0x30]
- movs r0, 0x40
- ands r0, r3
- adds r6, r7, 0
- mov r12, r2
- adds r2, r1, 0
- cmp r0, 0
- beq _0809C6A8
- b _0809C81C
-_0809C6A8:
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809C6F0
- lsls r0, r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r4, r0, 24
- asrs r0, 24
- cmp r0, 0x6
- ble _0809C6C2
- movs r4, 0
-_0809C6C2:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- bne _0809C6D0
- b _0809C83C
-_0809C6D0:
- movs r2, 0x1
- mov r8, r2
- b _0809C842
- .align 2, 0
-_0809C6D8: .4byte gUnknown_020384E4
-_0809C6DC: .4byte gUnknown_020384E5
-_0809C6E0: .4byte gUnknown_083B6DB4
-_0809C6E4: .4byte 0x000011df
-_0809C6E8: .4byte 0x000011de
-_0809C6EC: .4byte gMain
-_0809C6F0:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0809C714
- ldrb r1, [r6]
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- beq _0809C714
- movs r3, 0x1
- mov r8, r3
- ldr r2, _0809C710 @ =0x000011e2
- adds r0, r5, r2
- strb r1, [r0]
- movs r4, 0
- b _0809C83C
- .align 2, 0
-_0809C710: .4byte 0x000011e2
-_0809C714:
- ldrh r1, [r2, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C748
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0
- bne _0809C73C
- movs r3, 0x1
- mov r8, r3
- mov r1, r12
- ldr r0, [r1]
- ldr r2, _0809C738 @ =0x000011e2
- adds r0, r2
- ldrb r4, [r0]
- b _0809C83C
- .align 2, 0
-_0809C738: .4byte 0x000011e2
-_0809C73C:
- movs r3, 0x6
- mov r8, r3
- movs r0, 0
- mov r10, r0
- movs r4, 0
- b _0809C83C
-_0809C748:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C7D0
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x6
- bne _0809C76E
- mov r1, r12
- ldr r0, [r1]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C768
- movs r0, 0x4
- b _0809C84C
-_0809C768:
- movs r2, 0x1
- mov r9, r2
- b _0809C7D0
-_0809C76E:
- bl sub_809CAB0
- lsls r0, 24
- cmp r0, 0
- beq _0809C7D0
- ldr r0, _0809C784 @ =gUnknown_020384E9
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809C788
- movs r0, 0x8
- b _0809C84C
- .align 2, 0
-_0809C784: .4byte gUnknown_020384E9
-_0809C788:
- movs r0, 0
- bl sub_809CE4C
- subs r0, 0x1
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _0809C7D0
- lsls r0, 2
- ldr r1, _0809C7A4 @ =_0809C7A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809C7A4: .4byte _0809C7A8
- .align 2, 0
-_0809C7A8:
- .4byte _0809C7BC
- .4byte _0809C7C0
- .4byte _0809C7C4
- .4byte _0809C7C8
- .4byte _0809C7CC
-_0809C7BC:
- movs r0, 0xB
- b _0809C84C
-_0809C7C0:
- movs r0, 0xC
- b _0809C84C
-_0809C7C4:
- movs r0, 0xD
- b _0809C84C
-_0809C7C8:
- movs r0, 0xE
- b _0809C84C
-_0809C7CC:
- movs r0, 0xF
- b _0809C84C
-_0809C7D0:
- ldr r2, _0809C7EC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C7F8
- ldr r0, _0809C7F0 @ =gUnknown_083B6DB4
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0809C7F4
- movs r0, 0x10
- b _0809C84C
- .align 2, 0
-_0809C7EC: .4byte gMain
-_0809C7F0: .4byte gUnknown_083B6DB4
-_0809C7F4:
- movs r3, 0x1
- mov r9, r3
-_0809C7F8:
- mov r0, r9
- cmp r0, 0
- beq _0809C80A
- movs r1, 0x6
- mov r8, r1
- movs r2, 0
- mov r10, r2
- movs r4, 0
- b _0809C83C
-_0809C80A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C83C
- bl sub_809CD88
- movs r0, 0
- b _0809C84C
-_0809C81C:
- lsls r0, r4, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r0, r3
- lsrs r4, r0, 24
- cmp r0, 0
- bge _0809C82C
- movs r4, 0x6
-_0809C82C:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r7, r1]
- cmp r0, r1
- beq _0809C83C
- movs r0, 0x1
- mov r8, r0
-_0809C83C:
- mov r1, r8
- cmp r1, 0
- beq _0809C84A
-_0809C842:
- mov r0, r10
- adds r1, r4, 0
- bl sub_809AF18
-_0809C84A:
- mov r0, r8
-_0809C84C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C664
-
thumb_func_start sub_809C85C
+@ u8 sub_809C85C(void)
sub_809C85C: @ 809C85C
push {r4-r6,lr}
- ldr r0, _0809C894 @ =gUnknown_083B6DB4
+ ldr r0, _0809C894 @ =gPokemonStorageSystemPtr
ldr r2, [r0]
ldr r1, _0809C898 @ =0x000011df
adds r0, r2, r1
@@ -13677,7 +36,7 @@ sub_809C85C: @ 809C85C
movs r5, 0x2
b _0809C922
.align 2, 0
-_0809C894: .4byte gUnknown_083B6DB4
+_0809C894: .4byte gPokemonStorageSystemPtr
_0809C898: .4byte 0x000011df
_0809C89C: .4byte 0x000011de
_0809C8A0: .4byte 0x000011e3
@@ -13771,6 +130,7 @@ _0809C93E:
thumb_func_end sub_809C85C
thumb_func_start sub_809C944
+@ u8 sub_809C944(void)
sub_809C944: @ 809C944
push {r4-r7,lr}
ldr r0, _0809C988 @ =gUnknown_020384E4
@@ -13778,7 +138,7 @@ sub_809C944: @ 809C944
mov r12, r0
ldr r7, _0809C98C @ =gUnknown_020384E5
ldrb r3, [r7]
- ldr r0, _0809C990 @ =gUnknown_083B6DB4
+ ldr r0, _0809C990 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r0, _0809C994 @ =0x000011df
adds r5, r1, r0
@@ -13808,7 +168,7 @@ sub_809C944: @ 809C944
.align 2, 0
_0809C988: .4byte gUnknown_020384E4
_0809C98C: .4byte gUnknown_020384E5
-_0809C990: .4byte gUnknown_083B6DB4
+_0809C990: .4byte gPokemonStorageSystemPtr
_0809C994: .4byte 0x000011df
_0809C998: .4byte 0x000011de
_0809C99C: .4byte gMain
@@ -13963,6 +323,149 @@ sub_809CA8C: @ 809CA8C
bx r0
thumb_func_end sub_809CA8C
+.if DEBUG
+ thumb_func_start debug_sub_80AA40C
+debug_sub_80AA40C:
+.syntax divided
+ push {lr}
+ bl sub_809AB8C
+ lsl r0, r0, #0x10
+ cmp r0, #0
+ beq ._2084 @cond_branch
+ bl sub_809CDCC
+ mov r0, #0x20
+ bl sub_809CDEC
+ mov r0, #0x6
+ bl sub_809CDEC
+ mov r0, #0x1
+ b ._2085
+._2084:
+ mov r0, #0x0
+._2085:
+ pop {r1}
+ bx r1
+.syntax unified
+ thumb_func_end debug_sub_80AA40C
+.endif
+
+.if DEBUG
+ thumb_func_start sub_809CAB0
+sub_809CAB0:
+.syntax divided
+ push {lr}
+ ldr r0, ._2088 @ unk_2038790
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._2086 @cond_branch
+ bl debug_sub_80AA40C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._2110
+._2089:
+ .align 2, 0
+._2088:
+ .word unk_2038790
+._2086:
+ bl sub_809CDCC
+ bl sub_809AB8C
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, ._2094 @ gPokemonStorageSystemPtr
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x5]
+ cmp r0, #0x1
+ beq ._2090 @cond_branch
+ cmp r0, #0x1
+ bgt ._2091 @cond_branch
+ cmp r0, #0
+ beq ._2092 @cond_branch
+ b ._2108
+._2095:
+ .align 2, 0
+._2094:
+ .word gPokemonStorageSystemPtr
+._2091:
+ cmp r0, #0x2
+ beq ._2096 @cond_branch
+ b ._2108
+._2090:
+ cmp r1, #0
+ beq ._2108 @cond_branch
+ mov r0, #0x1
+ bl sub_809CDEC
+ b ._2109
+._2092:
+ cmp r1, #0
+ beq ._2108 @cond_branch
+ mov r0, #0x2
+ bl sub_809CDEC
+ b ._2109
+._2096:
+ ldr r0, ._2105 @ gUnknown_020384E6
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._2102 @cond_branch
+ cmp r1, #0
+ beq ._2103 @cond_branch
+ mov r0, #0x4
+ bl sub_809CDEC
+ b ._2109
+._2106:
+ .align 2, 0
+._2105:
+ .word gUnknown_020384E6
+._2103:
+ mov r0, #0x5
+ bl sub_809CDEC
+ b ._2109
+._2102:
+ cmp r1, #0
+ beq ._2108 @cond_branch
+ mov r0, #0x3
+ bl sub_809CDEC
+ b ._2109
+._2108:
+ mov r0, #0x0
+ b ._2110
+._2109:
+ mov r0, #0x6
+ bl sub_809CDEC
+ ldr r0, ._2114 @ gPokemonStorageSystemPtr
+ ldr r0, [r0]
+ ldrb r0, [r0, #0x5]
+ cmp r0, #0x2
+ bne ._2113 @cond_branch
+ ldr r0, ._2114 + 4 @ gUnknown_020384E4
+ ldrb r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, #0
+ bne ._2112 @cond_branch
+ mov r0, #0x2
+ bl sub_809CDEC
+ b ._2113
+._2115:
+ .align 2, 0
+._2114:
+ .word gPokemonStorageSystemPtr
+ .word gUnknown_020384E4
+._2112:
+ mov r0, #0x1
+ bl sub_809CDEC
+._2113:
+ mov r0, #0x8
+ bl sub_809CDEC
+ mov r0, #0x7
+ bl sub_809CDEC
+ mov r0, #0x0
+ bl sub_809CDEC
+ mov r0, #0x1
+._2110:
+ pop {r1}
+ bx r1
+.syntax unified
+ thumb_func_end sub_809CAB0
+.else
thumb_func_start sub_809CAB0
sub_809CAB0: @ 809CAB0
push {lr}
@@ -13970,7 +473,7 @@ sub_809CAB0: @ 809CAB0
bl sub_809AB8C
lsls r0, 16
lsrs r1, r0, 16
- ldr r0, _0809CAD4 @ =gUnknown_083B6DB4
+ ldr r0, _0809CAD4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0x1
@@ -13981,7 +484,7 @@ sub_809CAB0: @ 809CAB0
beq _0809CAEA
b _0809CB24
.align 2, 0
-_0809CAD4: .4byte gUnknown_083B6DB4
+_0809CAD4: .4byte gPokemonStorageSystemPtr
_0809CAD8:
cmp r0, 0x2
beq _0809CAF6
@@ -14026,7 +529,7 @@ _0809CB24:
_0809CB28:
movs r0, 0x6
bl sub_809CDEC
- ldr r0, _0809CB4C @ =gUnknown_083B6DB4
+ ldr r0, _0809CB4C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0x2
@@ -14041,7 +544,7 @@ _0809CB28:
bl sub_809CDEC
b _0809CB5A
.align 2, 0
-_0809CB4C: .4byte gUnknown_083B6DB4
+_0809CB4C: .4byte gPokemonStorageSystemPtr
_0809CB50: .4byte gUnknown_020384E4
_0809CB54:
movs r0, 0x1
@@ -14058,10 +561,11 @@ _0809CB6E:
pop {r1}
bx r1
thumb_func_end sub_809CAB0
+.endif
thumb_func_start sub_809CB74
sub_809CB74: @ 809CB74
- ldr r1, _0809CB90 @ =gUnknown_083B6DB4
+ ldr r1, _0809CB90 @ =gPokemonStorageSystemPtr
ldr r1, [r1]
movs r2, 0x8E
lsls r2, 5
@@ -14075,7 +579,7 @@ sub_809CB74: @ 809CB74
strh r1, [r0, 0x22]
bx lr
.align 2, 0
-_0809CB90: .4byte gUnknown_083B6DB4
+_0809CB90: .4byte gPokemonStorageSystemPtr
thumb_func_end sub_809CB74
thumb_func_start unref_sub_809CB94
@@ -14157,7 +661,7 @@ sub_809CC04: @ 809CC04
bl LoadSpritePalettes
ldr r0, _0809CCB8 @ =0x0000dac6
bl IndexOfSpritePaletteTag
- ldr r1, _0809CCBC @ =gUnknown_083B6DB4
+ ldr r1, _0809CCBC @ =gPokemonStorageSystemPtr
ldr r6, [r1]
ldr r4, _0809CCC0 @ =0x000011e4
adds r7, r6, r4
@@ -14219,7 +723,7 @@ sub_809CC04: @ 809CC04
_0809CCB0: .4byte gHandCursorSpriteSheets
_0809CCB4: .4byte gHandCursorSpritePalettes
_0809CCB8: .4byte 0x0000dac6
-_0809CCBC: .4byte gUnknown_083B6DB4
+_0809CCBC: .4byte gPokemonStorageSystemPtr
_0809CCC0: .4byte 0x000011e4
_0809CCC4: .4byte 0x0000dad1
_0809CCC8: .4byte 0x000011e5
@@ -14259,7 +763,7 @@ _0809CD08:
lsrs r2, r0, 24
cmp r2, 0x40
beq _0809CD6C
- ldr r0, _0809CD5C @ =gUnknown_083B6DB4
+ ldr r0, _0809CD5C @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r1, _0809CD60 @ =0x000011c4
adds r4, r0, r1
@@ -14291,12 +795,12 @@ _0809CD08:
b _0809CD78
.align 2, 0
_0809CD58: .4byte gSpriteTemplate_83BBC88
-_0809CD5C: .4byte gUnknown_083B6DB4
+_0809CD5C: .4byte gPokemonStorageSystemPtr
_0809CD60: .4byte 0x000011c4
_0809CD64: .4byte gSprites
_0809CD68: .4byte gUnknown_020384E4
_0809CD6C:
- ldr r0, _0809CD80 @ =gUnknown_083B6DB4
+ ldr r0, _0809CD80 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _0809CD84 @ =0x000011c4
adds r0, r2
@@ -14308,7 +812,7 @@ _0809CD78:
pop {r0}
bx r0
.align 2, 0
-_0809CD80: .4byte gUnknown_083B6DB4
+_0809CD80: .4byte gPokemonStorageSystemPtr
_0809CD84: .4byte 0x000011c4
thumb_func_end sub_809CC04
@@ -14323,7 +827,7 @@ sub_809CD88: @ 809CD88
movs r1, 0x1
_0809CD96:
strb r1, [r2]
- ldr r0, _0809CDC4 @ =gUnknown_083B6DB4
+ ldr r0, _0809CDC4 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
movs r3, 0x8E
lsls r3, 5
@@ -14344,13 +848,15 @@ _0809CD96:
bx r0
.align 2, 0
_0809CDC0: .4byte gUnknown_020384E9
-_0809CDC4: .4byte gUnknown_083B6DB4
+_0809CDC4: .4byte gPokemonStorageSystemPtr
_0809CDC8: .4byte 0x000011e4
thumb_func_end sub_809CD88
+// file boundary here
+
thumb_func_start sub_809CDCC
sub_809CDCC: @ 809CDCC
- ldr r0, _0809CDE0 @ =gUnknown_083B6DB4
+ ldr r0, _0809CDE0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
ldr r2, _0809CDE4 @ =0x000011b8
adds r1, r0, r2
@@ -14361,7 +867,7 @@ sub_809CDCC: @ 809CDCC
strb r2, [r0]
bx lr
.align 2, 0
-_0809CDE0: .4byte gUnknown_083B6DB4
+_0809CDE0: .4byte gPokemonStorageSystemPtr
_0809CDE4: .4byte 0x000011b8
_0809CDE8: .4byte 0x000011b9
thumb_func_end sub_809CDCC
@@ -14371,7 +877,7 @@ sub_809CDEC: @ 809CDEC
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r0, _0809CE3C @ =gUnknown_083B6DB4
+ ldr r0, _0809CE3C @ =gPokemonStorageSystemPtr
ldr r5, [r0]
ldr r0, _0809CE40 @ =0x000011b8
adds r4, r5, r0
@@ -14410,7 +916,7 @@ _0809CE36:
pop {r0}
bx r0
.align 2, 0
-_0809CE3C: .4byte gUnknown_083B6DB4
+_0809CE3C: .4byte gPokemonStorageSystemPtr
_0809CE40: .4byte 0x000011b8
_0809CE44: .4byte gUnknown_083BBCA0
_0809CE48: .4byte 0x000011b9
@@ -14421,7 +927,7 @@ sub_809CE4C: @ 809CE4C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _0809CE70 @ =gUnknown_083B6DB4
+ ldr r0, _0809CE70 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r3, _0809CE74 @ =0x000011b8
adds r0, r1, r3
@@ -14436,7 +942,7 @@ sub_809CE4C: @ 809CE4C
ldrsb r0, [r1, r0]
b _0809CE80
.align 2, 0
-_0809CE70: .4byte gUnknown_083B6DB4
+_0809CE70: .4byte gPokemonStorageSystemPtr
_0809CE74: .4byte 0x000011b8
_0809CE78: .4byte 0x00001184
_0809CE7C:
@@ -14455,7 +961,7 @@ sub_809CE84: @ 809CE84
mov r4, r8
push {r4-r6}
sub sp, 0x8
- ldr r0, _0809CF20 @ =gUnknown_083B6DB4
+ ldr r0, _0809CF20 @ =gPokemonStorageSystemPtr
ldr r4, [r0]
ldr r0, _0809CF24 @ =0x000011b8
adds r0, r4
@@ -14483,7 +989,7 @@ sub_809CE84: @ 809CE84
ldrb r1, [r6]
movs r2, 0x1D
movs r3, 0xF
- bl MenuDrawTextWindow
+ bl Menu_DrawStdWindowFrame
ldrb r0, [r5]
adds r0, 0x1
lsls r0, 24
@@ -14498,7 +1004,7 @@ sub_809CE84: @ 809CE84
lsls r3, 5
adds r4, r3
adds r3, r4, 0
- bl PrintMenuItems
+ bl Menu_PrintItems
ldrb r1, [r5]
adds r1, 0x1
lsls r1, 24
@@ -14525,7 +1031,7 @@ sub_809CE84: @ 809CE84
pop {r0}
bx r0
.align 2, 0
-_0809CF20: .4byte gUnknown_083B6DB4
+_0809CF20: .4byte gPokemonStorageSystemPtr
_0809CF24: .4byte 0x000011b8
_0809CF28: .4byte 0x000011bc
_0809CF2C: .4byte 0x000011b9
@@ -14559,7 +1065,7 @@ _0809CF52:
bl PlaySE
movs r0, 0x1
negs r0, r0
- bl MoveMenuCursor
+ bl Menu_MoveCursor
b _0809CF8E
.align 2, 0
_0809CF6C: .4byte gMain
@@ -14571,10 +1077,10 @@ _0809CF70:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
- bl MoveMenuCursor
+ bl Menu_MoveCursor
b _0809CF8E
_0809CF86:
- bl GetMenuCursorPos
+ bl Menu_GetCursorPos
lsls r0, 24
lsrs r5, r0, 24
_0809CF8E:
@@ -14582,8 +1088,8 @@ _0809CF8E:
negs r0, r0
cmp r5, r0
beq _0809CFB2
- bl HandleDestroyMenuCursors
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ bl Menu_DestroyCursor
+ ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr
ldr r1, [r0]
ldr r2, _0809CFD4 @ =0x000011ba
adds r0, r1, r2
@@ -14593,11 +1099,11 @@ _0809CF8E:
ldrb r1, [r1]
movs r2, 0x1D
movs r3, 0xF
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
_0809CFB2:
cmp r5, 0
blt _0809CFC4
- ldr r0, _0809CFD0 @ =gUnknown_083B6DB4
+ ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr
ldr r0, [r0]
lsls r1, r5, 3
ldr r2, _0809CFD8 @ =0x00001184
@@ -14611,7 +1117,7 @@ _0809CFC4:
pop {r1}
bx r1
.align 2, 0
-_0809CFD0: .4byte gUnknown_083B6DB4
+_0809CFD0: .4byte gPokemonStorageSystemPtr
_0809CFD4: .4byte 0x000011ba
_0809CFD8: .4byte 0x00001184
thumb_func_end sub_809CF30
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 83ceed00f..ca65b2e06 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -229,7 +229,7 @@ _080F07E0:
lsrs r1, 16
bl sub_80F445C
_080F07F4:
- ldr r0, _080F0814 @ =gWindowConfig_81E710C
+ ldr r0, _080F0814 @ =gWindowTemplate_81E710C
bl BasicInitMenuWindow
ldr r0, _080F0818 @ =gUnknown_083DFEC4
ldr r0, [r0]
@@ -237,13 +237,13 @@ _080F07F4:
adds r0, r1
movs r1, 0x1
movs r2, 0x6
- bl MenuPrint
+ bl Menu_PrintText
_080F080A:
pop {r0}
bx r0
.align 2, 0
_080F0810: .4byte 0x00008788
-_080F0814: .4byte gWindowConfig_81E710C
+_080F0814: .4byte gWindowTemplate_81E710C
_080F0818: .4byte gUnknown_083DFEC4
thumb_func_end ShowMapNamePopUpWindow
@@ -252,7 +252,7 @@ sub_80F081C: @ 80F081C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080F0838 @ =gWindowConfig_81E710C
+ ldr r0, _080F0838 @ =gWindowTemplate_81E710C
bl BasicInitMenuWindow
cmp r5, 0x4
bhi _080F08C6
@@ -262,7 +262,7 @@ sub_80F081C: @ 80F081C
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080F0838: .4byte gWindowConfig_81E710C
+_080F0838: .4byte gWindowTemplate_81E710C
_080F083C: .4byte _080F0840
.align 2, 0
_080F0840:
@@ -342,17 +342,17 @@ _080F08E0: .4byte 0x0001869f
thumb_func_start sub_80F08E4
sub_80F08E4: @ 80F08E4
push {lr}
- ldr r0, _080F08FC @ =gWindowConfig_81E710C
+ ldr r0, _080F08FC @ =gWindowTemplate_81E710C
bl BasicInitMenuWindow
movs r0, 0
movs r1, 0x9
movs r2, 0xB
movs r3, 0x10
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
pop {r0}
bx r0
.align 2, 0
-_080F08FC: .4byte gWindowConfig_81E710C
+_080F08FC: .4byte gWindowTemplate_81E710C
thumb_func_end sub_80F08E4
thumb_func_start sub_80F0900
@@ -376,7 +376,7 @@ sub_80F0900: @ 80F0900
movs r1, 0x1
movs r2, 0x1F
movs r3, 0xF
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
_080F092A:
ldrh r0, [r5]
lsrs r2, r4, 16
@@ -527,13 +527,13 @@ _080F0A40:
adds r0, r4, 0
adds r1, r3, 0
bl sub_80F4428
- ldr r0, _080F0A70 @ =gWindowConfig_81E70D4
+ ldr r0, _080F0A70 @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
lsls r2, r5, 24
lsrs r2, 24
adds r0, r4, 0
movs r1, 0xD
- bl MenuPrint
+ bl Menu_PrintText
pop {r4,r5}
pop {r0}
bx r0
@@ -541,7 +541,7 @@ _080F0A40:
_080F0A64: .4byte gUnknown_083DFEC4
_080F0A68: .4byte 0x000087c8
_080F0A6C: .4byte 0x00008788
-_080F0A70: .4byte gWindowConfig_81E70D4
+_080F0A70: .4byte gWindowTemplate_81E70D4
thumb_func_end sub_80F0A24
thumb_func_start sub_80F0A74
@@ -561,13 +561,13 @@ sub_80F0A74: @ 80F0A74
bl sub_80F700C
movs r0, 0x1F
ands r7, r0
- ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4
+ ldr r0, _080F0AE4 @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
lsls r2, r7, 3
adds r0, r4, 0
movs r1, 0x61
movs r3, 0
- bl MenuPrint_PixelCoords
+ bl Menu_PrintTextPixelCoords
ldr r1, _080F0AE8 @ =0x0000d158
adds r0, r5, r1
ldrh r0, [r0]
@@ -597,7 +597,7 @@ sub_80F0A74: @ 80F0A74
.align 2, 0
_080F0ADC: .4byte gUnknown_083DFEC4
_080F0AE0: .4byte 0x00008788
-_080F0AE4: .4byte gWindowConfig_81E70D4
+_080F0AE4: .4byte gWindowTemplate_81E70D4
_080F0AE8: .4byte 0x0000d158
_080F0AEC: .4byte 0x0000ceed
_080F0AF0: .4byte 0x0600f000
@@ -688,13 +688,13 @@ _080F0B60:
ldrsh r0, [r0, r1]
cmp r2, r0
beq _080F0BAA
- ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4
+ ldr r0, _080F0BC8 @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
adds r1, r4, 0
adds r3, r1, 0x1
movs r0, 0xC
movs r2, 0x1F
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
_080F0BAA:
ldrh r0, [r6]
cmp r0, 0
@@ -709,9 +709,9 @@ _080F0BB4:
_080F0BBC: .4byte 0x00000306
_080F0BC0: .4byte 0x00008778
_080F0BC4: .4byte 0x0000876c
-_080F0BC8: .4byte gWindowConfig_81E70D4
+_080F0BC8: .4byte gWindowTemplate_81E70D4
_080F0BCC:
- ldr r0, _080F0C10 @ =gWindowConfig_81E70D4
+ ldr r0, _080F0C10 @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
ldr r1, _080F0C14 @ =0x00008778
adds r0, r5, r1
@@ -726,7 +726,7 @@ _080F0BE2:
movs r0, 0xC
adds r1, r4, 0
movs r2, 0x1F
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
adds r4, 0x2
movs r0, 0x1F
ands r4, r0
@@ -745,7 +745,7 @@ _080F0BE2:
movs r0, 0
b _080F0C22
.align 2, 0
-_080F0C10: .4byte gWindowConfig_81E70D4
+_080F0C10: .4byte gWindowTemplate_81E70D4
_080F0C14: .4byte 0x00008778
_080F0C18: .4byte gUnknown_083DFEC4
_080F0C1C: .4byte 0x0000d15c
@@ -804,7 +804,7 @@ _080F0C64:
bls _080F0CD0
movs r0, 0
strh r0, [r1]
- ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4
+ ldr r0, _080F0CC4 @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
ldr r0, _080F0CC8 @ =0x00008770
adds r1, r4, r0
@@ -835,7 +835,7 @@ _080F0C64:
.align 2, 0
_080F0CBC: .4byte 0x00000306
_080F0CC0: .4byte 0x0000ffff
-_080F0CC4: .4byte gWindowConfig_81E70D4
+_080F0CC4: .4byte gWindowTemplate_81E70D4
_080F0CC8: .4byte 0x00008770
_080F0CCC: .4byte 0x00008778
_080F0CD0:
@@ -942,7 +942,7 @@ _080F0D78:
_080F0D8C:
movs r0, 0
strh r0, [r1]
- ldr r0, _080F0DBC @ =gWindowConfig_81E70D4
+ ldr r0, _080F0DBC @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
ldr r0, _080F0DC0 @ =0x00008778
adds r1, r4, r0
@@ -962,7 +962,7 @@ _080F0D8C:
mov pc, r0
.align 2, 0
_080F0DB8: .4byte 0x00000306
-_080F0DBC: .4byte gWindowConfig_81E70D4
+_080F0DBC: .4byte gWindowTemplate_81E70D4
_080F0DC0: .4byte 0x00008778
_080F0DC4: .4byte _080F0DC8
.align 2, 0
@@ -1032,7 +1032,7 @@ _080F0E42:
_080F0E54:
movs r1, 0x61
movs r3, 0
- bl MenuPrint_PixelCoords
+ bl Menu_PrintTextPixelCoords
b _080F0EA0
.align 2, 0
_080F0E60: .4byte gUnknown_083DFEC4
@@ -1054,7 +1054,7 @@ _080F0E6C:
adds r0, r4, 0
movs r1, 0x61
movs r3, 0
- bl MenuPrint_PixelCoords
+ bl Menu_PrintTextPixelCoords
b _080F0D6C
.align 2, 0
_080F0E94: .4byte gUnknown_083DFEC4
@@ -1141,13 +1141,13 @@ _080F0F10:
adds r4, r0
movs r0, 0x1F
ands r4, r0
- ldr r0, _080F0F60 @ =gWindowConfig_81E70D4
+ ldr r0, _080F0F60 @ =gWindowTemplate_81E70D4
bl BasicInitMenuWindow
adds r3, r4, 0x1
movs r0, 0xC
adds r1, r4, 0
movs r2, 0x1F
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
@@ -1160,7 +1160,7 @@ _080F0F52:
.align 2, 0
_080F0F58: .4byte 0x00000306
_080F0F5C: .4byte 0x00008778
-_080F0F60: .4byte gWindowConfig_81E70D4
+_080F0F60: .4byte gWindowTemplate_81E70D4
thumb_func_end sub_80F0EF4
thumb_func_start sub_80F0F64
@@ -1260,7 +1260,7 @@ sub_80F0FFC: @ 80F0FFC
adds r0, r5, 0
movs r2, 0
bl GetMapSectionName
- ldr r0, _080F1054 @ =gWindowConfig_81E710C
+ ldr r0, _080F1054 @ =gWindowTemplate_81E710C
bl BasicInitMenuWindow
adds r0, r5, 0
bl sub_80F19DC
@@ -1274,7 +1274,7 @@ sub_80F0FFC: @ 80F0FFC
adds r0, r4, 0
movs r1, 0
movs r2, 0x5
- bl MenuPrint
+ bl Menu_PrintText
pop {r4,r5}
pop {r0}
bx r0
@@ -1282,7 +1282,7 @@ sub_80F0FFC: @ 80F0FFC
_080F1048: .4byte gUnknown_083DFEC4
_080F104C: .4byte 0x00008788
_080F1050: .4byte 0x0000ceea
-_080F1054: .4byte gWindowConfig_81E710C
+_080F1054: .4byte gWindowTemplate_81E710C
_080F1058: .4byte 0x0000d138
thumb_func_end sub_80F0FFC
@@ -1357,17 +1357,17 @@ _080F10E8:
_080F10FC: .4byte gUnknown_083DFEC4
_080F1100: .4byte 0x0000d162
_080F1104:
- ldr r0, _080F110C @ =gWindowConfig_81E70B8
- bl SetUpWindowConfig
+ ldr r0, _080F110C @ =gWindowTemplate_81E70B8
+ bl Text_LoadWindowTemplate
b _080F1218
.align 2, 0
-_080F110C: .4byte gWindowConfig_81E70B8
+_080F110C: .4byte gWindowTemplate_81E70B8
_080F1110:
- ldr r0, _080F1118 @ =gWindowConfig_81E70B8
+ ldr r0, _080F1118 @ =gWindowTemplate_81E70B8
bl MultistepInitMenuWindowBegin
b _080F1218
.align 2, 0
-_080F1118: .4byte gWindowConfig_81E70B8
+_080F1118: .4byte gWindowTemplate_81E70B8
_080F111C:
bl MultistepInitMenuWindowContinue
cmp r0, 0
@@ -1376,7 +1376,7 @@ _080F111C:
_080F1126:
b _080F1226
_080F1128:
- bl MenuZeroFillScreen
+ bl Menu_EraseScreen
b _080F1218
_080F112E:
bl sub_80F1614
@@ -1761,7 +1761,7 @@ sub_80F1438: @ 80F1438
adds r0, r4, r1
movs r1, 0xD
movs r2, 0x1
- bl MenuPrint
+ bl Menu_PrintText
ldr r0, _080F1478 @ =0x00008788
adds r5, r4, r0
ldr r1, _080F147C @ =0x0000876e
@@ -1775,7 +1775,7 @@ sub_80F1438: @ 80F1438
adds r0, r5, 0
movs r1, 0x1
movs r2, 0x5
- bl MenuPrint
+ bl Menu_PrintText
pop {r4,r5}
pop {r0}
bx r0
@@ -1793,7 +1793,7 @@ sub_80F1480: @ 80F1480
movs r1, 0xD
movs r2, 0x1B
movs r3, 0x10
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
pop {r0}
bx r0
thumb_func_end sub_80F1480
@@ -1914,11 +1914,11 @@ _080F158A:
adds r0, r6, 0
movs r1, 0xC
movs r2, 0xD
- bl MenuPrint
+ bl Menu_PrintText
adds r0, r7, 0
movs r1, 0xC
movs r2, 0xF
- bl MenuPrint
+ bl Menu_PrintText
pop {r4-r7}
pop {r0}
bx r0
@@ -1933,7 +1933,7 @@ sub_80F15A8: @ 80F15A8
movs r1, 0xD
movs r2, 0x1B
movs r3, 0x10
- bl MenuZeroFillWindowRect
+ bl Menu_EraseWindowRect
ldr r0, _080F1600 @ =gUnknown_083DFEC4
ldr r4, [r0]
ldr r0, _080F1604 @ =0x00008788
@@ -1964,7 +1964,7 @@ sub_80F15A8: @ 80F15A8
adds r0, r5, 0
movs r1, 0xC
movs r2, 0xD
- bl MenuPrint
+ bl Menu_PrintText
pop {r4,r5}
pop {r0}
bx r0
@@ -2422,7 +2422,7 @@ _080F19B8:
movs r1, 0x1
movs r2, 0x70
movs r3, 0x1
- bl MenuPrint_PixelCoords
+ bl Menu_PrintTextPixelCoords
pop {r4,r5}
pop {r0}
bx r0
@@ -2502,7 +2502,7 @@ _080F1A46:
movs r0, 0xE
movs r2, 0x1C
movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
+ bl Menu_BlankWindowRect
movs r0, 0
strb r0, [r5]
_080F1A60:
@@ -7663,9 +7663,9 @@ sub_80F4194: @ 80F4194
str r1, [r4, 0x4]
str r3, [r4, 0x8]
ldr r0, [r4, 0x8]
- ldr r0, _080F42B4 @ =gWindowConfig_81E70F0
+ ldr r0, _080F42B4 @ =gWindowTemplate_81E70F0
adds r1, r6, 0
- bl sub_8004E3C
+ bl Text_InitWindow8004E3C
movs r3, 0x88
lsls r3, 2
adds r1, r6, r3
@@ -7779,7 +7779,7 @@ _080F42A4: .4byte gUnknown_083DFEC8
_080F42A8: .4byte 0x00001111
_080F42AC: .4byte 0x040000d4
_080F42B0: .4byte 0x81000140
-_080F42B4: .4byte gWindowConfig_81E70F0
+_080F42B4: .4byte gWindowTemplate_81E70F0
_080F42B8: .4byte 0x81000030
_080F42BC: .4byte 0x0fffffff
_080F42C0: .4byte 0x80000040
@@ -10956,8 +10956,8 @@ sub_80F5B50: @ 80F5B50
_080F5B68: .4byte gUnknown_083DFEC4
_080F5B6C: .4byte 0x00009345
_080F5B70:
- bl dp12_8087EA4
- ldr r0, _080F5BA8 @ =gUnknown_03004DE0
+ bl ScanlineEffect_Clear
+ ldr r0, _080F5BA8 @ =gScanlineEffectRegBuffers
movs r2, 0xEF
movs r3, 0xF4
lsls r3, 3
@@ -10984,7 +10984,7 @@ _080F5B82:
movs r0, 0x1
b _080F5BCE
.align 2, 0
-_080F5BA8: .4byte gUnknown_03004DE0
+_080F5BA8: .4byte gScanlineEffectRegBuffers
_080F5BAC: .4byte gUnknown_083DFEC4
_080F5BB0: .4byte 0x00009345
_080F5BB4:
@@ -10995,7 +10995,7 @@ _080F5BB4:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -11013,14 +11013,14 @@ _080F5BD8: .4byte gUnknown_083E4990
thumb_func_start sub_80F5BDC
sub_80F5BDC: @ 80F5BDC
push {lr}
- ldr r1, _080F5BEC @ =gUnknown_03004DC0
+ ldr r1, _080F5BEC @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
- bl sub_8089668
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
-_080F5BEC: .4byte gUnknown_03004DC0
+_080F5BEC: .4byte gScanlineEffect
thumb_func_end sub_80F5BDC
thumb_func_start sub_80F5BF0
@@ -11045,7 +11045,7 @@ sub_80F5BF0: @ 80F5BF0
adds r0, r4, 0
bl sub_80F5A1C
movs r6, 0
- ldr r1, _080F5CC4 @ =gUnknown_03004DE0
+ ldr r1, _080F5CC4 @ =gScanlineEffectRegBuffers
mov r12, r1
movs r0, 0xF0
lsls r0, 3
@@ -11128,7 +11128,7 @@ _080F5CA6:
_080F5CB8: .4byte gUnknown_083DFEC4
_080F5CBC: .4byte 0x00009344
_080F5CC0: .4byte 0x0000911c
-_080F5CC4: .4byte gUnknown_03004DE0
+_080F5CC4: .4byte gScanlineEffectRegBuffers
_080F5CC8: .4byte 0x0000ffff
_080F5CCC: .4byte 0x00009130
_080F5CD0: .4byte 0x00009132
@@ -11164,7 +11164,7 @@ sub_80F5CDC: @ 80F5CDC
lsls r0, 17
lsrs r5, r0, 16
movs r7, 0
- ldr r1, _080F5DBC @ =gUnknown_03004DE0
+ ldr r1, _080F5DBC @ =gScanlineEffectRegBuffers
mov r12, r1
movs r4, 0xF0
lsls r4, 3
@@ -11248,7 +11248,7 @@ _080F5DA0:
_080F5DB0: .4byte gUnknown_083DFEC4
_080F5DB4: .4byte 0x00009344
_080F5DB8: .4byte 0x0000911c
-_080F5DBC: .4byte gUnknown_03004DE0
+_080F5DBC: .4byte gScanlineEffectRegBuffers
_080F5DC0: .4byte 0x0000ffff
_080F5DC4: .4byte 0x00009130
_080F5DC8: .4byte 0x00009132
diff --git a/asm/psychic.s b/asm/psychic.s
deleted file mode 100755
index 7a6000335..000000000
--- a/asm/psychic.s
+++ /dev/null
@@ -1,2183 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ psychic
-
- thumb_func_start sub_80DB74C
-sub_80DB74C: @ 80DB74C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, _080DB804 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DB768
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DB77E
-_080DB768:
- ldrb r1, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r1, r6, 0
- adds r1, 0x43
- movs r0, 0xC8
- strb r0, [r1]
-_080DB77E:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DB7DA
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DB7BC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8076034
-_080DB7BC:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r7
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DB7DA
- movs r0, 0x1
- eors r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8076034
-_080DB7DA:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DB810
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080DB810
- ldr r0, _080DB804 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DB808
- movs r0, 0x48
- strh r0, [r6, 0x20]
- movs r0, 0x50
- b _080DB84A
- .align 2, 0
-_080DB804: .4byte gAnimBankAttacker
-_080DB808:
- movs r0, 0xB0
- strh r0, [r6, 0x20]
- movs r0, 0x28
- b _080DB84A
-_080DB810:
- ldr r5, _080DB880 @ =gAnimBankAttacker
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DB826
- ldr r1, _080DB884 @ =gBattleAnimArgs
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DB826:
- ldrb r0, [r5]
- movs r1, 0
- bl GetBankPosition
- lsls r0, 24
- ldr r4, _080DB884 @ =gBattleAnimArgs
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
-_080DB84A:
- strh r0, [r6, 0x22]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DB85C
- ldrh r0, [r6, 0x22]
- adds r0, 0x9
- strh r0, [r6, 0x22]
-_080DB85C:
- ldr r0, _080DB884 @ =gBattleAnimArgs
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x2E]
- ldr r1, _080DB888 @ =sub_80DB88C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB880: .4byte gAnimBankAttacker
-_080DB884: .4byte gBattleAnimArgs
-_080DB888: .4byte sub_80DB88C
- thumb_func_end sub_80DB74C
-
- thumb_func_start sub_80DB88C
-sub_80DB88C: @ 80DB88C
- push {lr}
- adds r3, r0, 0
- ldr r2, _080DB8B0 @ =REG_BLDALPHA
- ldrh r1, [r3, 0x34]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0xD
- bne _080DB8B8
- ldr r0, _080DB8B4 @ =sub_80DB8C0
- str r0, [r3, 0x1C]
- b _080DB8BC
- .align 2, 0
-_080DB8B0: .4byte REG_BLDALPHA
-_080DB8B4: .4byte sub_80DB8C0
-_080DB8B8:
- adds r0, r1, 0x1
- strh r0, [r3, 0x34]
-_080DB8BC:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB88C
-
- thumb_func_start sub_80DB8C0
-sub_80DB8C0: @ 80DB8C0
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080DB91E
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r4, [r3, 0x2E]
- ldr r1, _080DB924 @ =gPlttBufferFaded
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- movs r5, 0x8
- adds r6, r1, 0
- adds r1, r4, 0x7
- lsls r0, r4, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- lsls r1, 1
- adds r1, r6
-_080DB8F6:
- ldrh r0, [r1]
- strh r0, [r2]
- subs r1, 0x2
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bgt _080DB8F6
- adds r0, r4, 0x1
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080DB91E
- ldr r0, _080DB928 @ =sub_80DB92C
- str r0, [r3, 0x1C]
-_080DB91E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB924: .4byte gPlttBufferFaded
-_080DB928: .4byte sub_80DB92C
- thumb_func_end sub_80DB8C0
-
- thumb_func_start sub_80DB92C
-sub_80DB92C: @ 80DB92C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r2, _080DB9D4 @ =REG_BLDALPHA
- ldrh r1, [r5, 0x34]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DB9CC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DB9BC
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DB98E
- ldr r2, _080DB9D8 @ =gSprites
- ldr r0, _080DB9DC @ =gObjectBankIDs
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080DB98E:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r6
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DB9BC
- ldr r2, _080DB9D8 @ =gSprites
- ldr r0, _080DB9DC @ =gObjectBankIDs
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080DB9BC:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DB9E0 @ =sub_80DB9E4
- str r0, [r5, 0x1C]
-_080DB9CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB9D4: .4byte REG_BLDALPHA
-_080DB9D8: .4byte gSprites
-_080DB9DC: .4byte gObjectBankIDs
-_080DB9E0: .4byte sub_80DB9E4
- thumb_func_end sub_80DB92C
-
- thumb_func_start sub_80DB9E4
-sub_80DB9E4: @ 80DB9E4
- push {r4-r6,lr}
- adds r6, r0, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DBA3C
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DBA22
- adds r0, r5, 0
- bl sub_8076464
-_080DBA22:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- cmp r0, 0
- beq _080DBA3C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_080DBA3C:
- ldr r0, _080DBA48 @ =DestroyAnimSprite
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBA48: .4byte DestroyAnimSprite
- thumb_func_end sub_80DB9E4
-
- thumb_func_start sub_80DBA4C
-sub_80DBA4C: @ 80DBA4C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DBAD8
- ldr r5, _080DBA98 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- movs r6, 0
- cmp r0, 0
- bne _080DBA66
- movs r6, 0x1
-_080DBA66:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DBAAE
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080DBAAE
- ldr r0, _080DBA9C @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080DBAA0
- ldrh r0, [r5]
- movs r1, 0x48
- subs r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x50
- strh r0, [r4, 0x22]
- b _080DBAD0
- .align 2, 0
-_080DBA98: .4byte gBattleAnimArgs
-_080DBA9C: .4byte gAnimBankAttacker
-_080DBAA0:
- ldrh r0, [r5]
- adds r0, 0xB0
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x28
- strh r0, [r4, 0x22]
- b _080DBAD0
-_080DBAAE:
- ldr r0, _080DBAC4 @ =gBattleAnimArgs
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DBAC8
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80787B0
- b _080DBAD0
- .align 2, 0
-_080DBAC4: .4byte gBattleAnimArgs
-_080DBAC8:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8078764
-_080DBAD0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DBAEC
-_080DBAD8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _080DBAEC
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080DBAEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBA4C
-
- thumb_func_start sub_80DBAF4
-sub_80DBAF4: @ 80DBAF4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DBB3C @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DBB44
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xA
- strh r0, [r5, 0x22]
- ldr r0, _080DBB40 @ =0x0000ffff
- b _080DBB52
- .align 2, 0
-_080DBB3C: .4byte gAnimBankAttacker
-_080DBB40: .4byte 0x0000ffff
-_080DBB44:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- subs r0, 0xA
- strh r0, [r5, 0x22]
- movs r0, 0x1
-_080DBB52:
- strh r0, [r5, 0x30]
- ldr r1, _080DBB68 @ =DestroyAnimSprite
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- ldr r0, _080DBB6C @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBB68: .4byte DestroyAnimSprite
-_080DBB6C: .4byte sub_8078600
- thumb_func_end sub_80DBAF4
-
- thumb_func_start sub_80DBB70
-sub_80DBB70: @ 80DBB70
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080DBBF4 @ =gAnimBankAttacker
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r4, r1, 16
- ldrb r0, [r6]
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- negs r1, r1
- lsls r1, 16
- lsrs r7, r1, 16
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DBBB6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080DBBB6:
- ldrb r0, [r6]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080DBBE2
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_080DBBE2:
- ldr r1, _080DBBF8 @ =sub_80DBC00
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- ldr r0, _080DBBFC @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBBF4: .4byte gAnimBankAttacker
-_080DBBF8: .4byte sub_80DBC00
-_080DBBFC: .4byte sub_8078600
- thumb_func_end sub_80DBB70
-
- thumb_func_start sub_80DBC00
-sub_80DBC00: @ 80DBC00
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080DBC2C @ =gUnknown_083DA888
- str r0, [r4, 0x10]
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldr r0, _080DBC30 @ =sub_80DBC34
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBC2C: .4byte gUnknown_083DA888
-_080DBC30: .4byte sub_80DBC34
- thumb_func_end sub_80DBC00
-
- thumb_func_start sub_80DBC34
-sub_80DBC34: @ 80DBC34
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBC46
- cmp r0, 0x1
- beq _080DBC74
- b _080DBC8C
-_080DBC46:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DBC8C
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x12
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DBC8C
-_080DBC74:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DBC8C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DBC8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBC34
-
- thumb_func_start sub_80DBC94
-sub_80DBC94: @ 80DBC94
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080DBCC4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080DBCC8 @ =gUnknown_083DA8A4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080DBCCC @ =sub_80DBCD0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCC4: .4byte gTasks
-_080DBCC8: .4byte gUnknown_083DA8A4
-_080DBCCC: .4byte sub_80DBCD0
- thumb_func_end sub_80DBC94
-
- thumb_func_start sub_80DBCD0
-sub_80DBCD0: @ 80DBCD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DBCF8 @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080DBCF0
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080DBCF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCF8: .4byte gTasks
- thumb_func_end sub_80DBCD0
-
- thumb_func_start sub_80DBCFC
-sub_80DBCFC: @ 80DBCFC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DBD48 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- ldr r0, _080DBD4C @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _080DBD30
- movs r1, 0x4
-_080DBD30:
- strh r1, [r4, 0xE]
- ldrb r1, [r4, 0x8]
- ldr r2, _080DBD50 @ =gUnknown_083DA8C4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080DBD54 @ =sub_80DBD58
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBD48: .4byte gTasks
-_080DBD4C: .4byte gAnimBankAttacker
-_080DBD50: .4byte gUnknown_083DA8C4
-_080DBD54: .4byte sub_80DBD58
- thumb_func_end sub_80DBCFC
-
- thumb_func_start sub_80DBD58
-sub_80DBD58: @ 80DBD58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DBD78 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBD7C
- cmp r0, 0x1
- beq _080DBD98
- b _080DBDF6
- .align 2, 0
-_080DBD78: .4byte gTasks
-_080DBD7C:
- adds r0, r4, 0
- bl sub_807992C
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080DBDF6
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080DBDF6
-_080DBD98:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBDC0
- ldr r2, _080DBDBC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080DBDF6
- .align 2, 0
-_080DBDBC: .4byte gSprites
-_080DBDC0:
- ldr r3, _080DBDFC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- 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]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080DBDF6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBDFC: .4byte gSprites
- thumb_func_end sub_80DBD58
-
- thumb_func_start sub_80DBE00
-sub_80DBE00: @ 80DBE00
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DBE84 @ =gTasks
- adds r5, r1, r0
- movs r0, 0
- movs r7, 0x10
- strh r7, [r5, 0xE]
- strh r0, [r5, 0x10]
- ldr r4, _080DBE88 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, r6
- bcs _080DBE6A
- adds r1, r6, 0
-_080DBE6A:
- strh r1, [r5, 0x20]
- ldr r1, _080DBE8C @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DBE90 @ =REG_BLDALPHA
- strh r7, [r0]
- ldr r0, _080DBE94 @ =sub_80DBE98
- str r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBE84: .4byte gTasks
-_080DBE88: .4byte gAnimBankAttacker
-_080DBE8C: .4byte REG_BLDCNT
-_080DBE90: .4byte REG_BLDALPHA
-_080DBE94: .4byte sub_80DBE98
- thumb_func_end sub_80DBE00
-
- thumb_func_start sub_80DBE98
-sub_80DBE98: @ 80DBE98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DBEBC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080DBF98
- cmp r1, 0x1
- bgt _080DBEC0
- cmp r1, 0
- beq _080DBECE
- b _080DC014
- .align 2, 0
-_080DBEBC: .4byte gTasks
-_080DBEC0:
- cmp r1, 0x2
- bne _080DBEC6
- b _080DBFF4
-_080DBEC6:
- cmp r1, 0x3
- bne _080DBECC
- b _080DC004
-_080DBECC:
- b _080DC014
-_080DBECE:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bgt _080DBEDE
- b _080DC014
-_080DBEDE:
- strh r1, [r4, 0xA]
- ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- adds r1, 0x8
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- strh r2, [r0]
- cmp r2, 0x40
- beq _080DBF82
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DBF3C
- cmp r0, 0x1
- bgt _080DBF20
- cmp r0, 0
- beq _080DBF2A
- b _080DBF82
- .align 2, 0
-_080DBF1C: .4byte gSpriteTemplate_83DA8DC
-_080DBF20:
- cmp r0, 0x2
- beq _080DBF54
- cmp r0, 0x3
- beq _080DBF6C
- b _080DBF82
-_080DBF2A:
- ldr r0, _080DBF38 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- b _080DBF7A
- .align 2, 0
-_080DBF38: .4byte gSprites
-_080DBF3C:
- ldr r0, _080DBF50 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- b _080DBF80
- .align 2, 0
-_080DBF50: .4byte gSprites
-_080DBF54:
- ldr r1, _080DBF68 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x26]
- b _080DBF82
- .align 2, 0
-_080DBF68: .4byte gSprites
-_080DBF6C:
- ldr r0, _080DBF94 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080DBF7A:
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080DBF80:
- strh r0, [r1, 0x26]
-_080DBF82:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DC014
- b _080DBFF4
- .align 2, 0
-_080DBF94: .4byte gSprites
-_080DBF98:
- ldrh r0, [r4, 0xA]
- ands r1, r0
- cmp r1, 0
- beq _080DBFA8
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080DBFAE
-_080DBFA8:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_080DBFAE:
- ldr r2, _080DBFFC @ =REG_BLDALPHA
- ldrh r0, [r4, 0x10]
- lsls r0, 8
- ldrh r1, [r4, 0xE]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _080DC014
- movs r5, 0x8
- adds r6, r4, 0
- adds r6, 0x8
-_080DBFCE:
- lsls r0, r5, 1
- adds r1, r6, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x40
- beq _080DBFEA
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC000 @ =gSprites
- adds r0, r1
- bl DestroySprite
-_080DBFEA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xC
- bls _080DBFCE
-_080DBFF4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DC014
- .align 2, 0
-_080DBFFC: .4byte REG_BLDALPHA
-_080DC000: .4byte gSprites
-_080DC004:
- ldr r0, _080DC01C @ =REG_BLDALPHA
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DC014:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC01C: .4byte REG_BLDALPHA
- thumb_func_end sub_80DBE98
-
- thumb_func_start sub_80DC020
-sub_80DC020: @ 80DC020
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080DC04A
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080DC04A:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080DC05C
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DC05C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC020
-
- thumb_func_start sub_80DC068
-sub_80DC068: @ 80DC068
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080DC0A4 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080DC094
- ldr r4, _080DC0A8 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DC094:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080DC0AC @ =sub_80DC020
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC0A4: .4byte gBattleAnimArgs
-_080DC0A8: .4byte gAnimBankAttacker
-_080DC0AC: .4byte sub_80DC020
- thumb_func_end sub_80DC068
-
- thumb_func_start sub_80DC0B0
-sub_80DC0B0: @ 80DC0B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DC10C @ =gTasks
- adds r5, r1, r0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DC154
- ldr r0, _080DC110 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080DC120
- ldr r0, _080DC114 @ =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, _080DC118 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC11C @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080DC1DE
- .align 2, 0
-_080DC10C: .4byte gTasks
-_080DC110: .4byte gBattleAnimArgs
-_080DC114: .4byte 0x0000fff6
-_080DC118: .4byte gAnimBankTarget
-_080DC11C: .4byte gAnimBankAttacker
-_080DC120:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC14C @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC150 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- b _080DC1D2
- .align 2, 0
-_080DC14C: .4byte gAnimBankAttacker
-_080DC150: .4byte gAnimBankTarget
-_080DC154:
- ldr r0, _080DC198 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080DC1A8
- ldr r0, _080DC19C @ =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1A0 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC1A4 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080DC1DE
- .align 2, 0
-_080DC198: .4byte gBattleAnimArgs
-_080DC19C: .4byte 0x0000fff6
-_080DC1A0: .4byte gAnimBankTarget
-_080DC1A4: .4byte gAnimBankAttacker
-_080DC1A8:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0 @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC1F4 @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
-_080DC1D2:
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
-_080DC1DE:
- strh r0, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0xA]
- ldr r0, _080DC1F8 @ =sub_80DC1FC
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC1F0: .4byte gAnimBankAttacker
-_080DC1F4: .4byte gAnimBankTarget
-_080DC1F8: .4byte sub_80DC1FC
- thumb_func_end sub_80DC0B0
-
- thumb_func_start sub_80DC1FC
-sub_80DC1FC: @ 80DC1FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DC21C @ =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _080DC220
- cmp r1, 0x1
- beq _080DC294
- b _080DC2A8
- .align 2, 0
-_080DC21C: .4byte gTasks
-_080DC220:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080DC2A8
- strh r1, [r5, 0xA]
- ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- movs r3, 0x20
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DC274
- ldr r0, _080DC290 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x22]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x36]
- ldrh r0, [r5, 0x1C]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldrb r0, [r5, 0xC]
- movs r1, 0x3
- ands r1, r0
- adds r0, r4, 0
- bl StartSpriteAffineAnim
-_080DC274:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080DC2A8
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080DC2A8
- .align 2, 0
-_080DC28C: .4byte gSpriteTemplate_83DA9AC
-_080DC290: .4byte gSprites
-_080DC294:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080DC2A8
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DC2A8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC1FC
-
- thumb_func_start sub_80DC2B0
-sub_80DC2B0: @ 80DC2B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DC2CE
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080DC2CE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC2B0
-
- thumb_func_start sub_80DC2D4
-sub_80DC2D4: @ 80DC2D4
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DC30C @ =gTasks
- adds r4, r1, r0
- ldr r0, _080DC310 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- subs r0, 0x20
- strh r0, [r4, 0x24]
- ldr r0, _080DC314 @ =gBattleAnimArgs
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x1
- beq _080DC32A
- cmp r0, 0x1
- bgt _080DC318
- cmp r0, 0
- beq _080DC31E
- b _080DC346
- .align 2, 0
-_080DC30C: .4byte gTasks
-_080DC310: .4byte gAnimBankTarget
-_080DC314: .4byte gBattleAnimArgs
-_080DC318:
- cmp r0, 0x2
- beq _080DC336
- b _080DC346
-_080DC31E:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080DC33E
-_080DC32A:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- b _080DC33E
-_080DC336:
- movs r0, 0x4
- strh r0, [r4, 0x1E]
- strh r0, [r4, 0x20]
- movs r0, 0
-_080DC33E:
- strh r0, [r4, 0x22]
- adds r0, r1, 0
- adds r0, 0x20
- strh r0, [r4, 0x26]
-_080DC346:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080DC352
- movs r0, 0
- strh r0, [r4, 0x24]
-_080DC352:
- ldr r0, _080DC36C @ =gAnimBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DC378
- ldr r0, _080DC370 @ =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC374 @ =REG_BG1HOFS
- b _080DC380
- .align 2, 0
-_080DC36C: .4byte gAnimBankTarget
-_080DC370: .4byte gBattle_BG1_X
-_080DC374: .4byte REG_BG1HOFS
-_080DC378:
- ldr r0, _080DC3E0 @ =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC3E4 @ =REG_BG2HOFS
-_080DC380:
- str r0, [sp]
- ldrh r1, [r4, 0x24]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- bgt _080DC3BA
- ldr r5, _080DC3E8 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080DC39A:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1C]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- ble _080DC39A
-_080DC3BA:
- ldr r0, _080DC3EC @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080DC3F0 @ =sub_80DC3F4
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC3E0: .4byte gBattle_BG2_X
-_080DC3E4: .4byte REG_BG2HOFS
-_080DC3E8: .4byte gUnknown_03004DE0
-_080DC3EC: .4byte 0xa2600001
-_080DC3F0: .4byte sub_80DC3F4
- thumb_func_end sub_80DC2D4
-
- thumb_func_start sub_80DC3F4
-sub_80DC3F4: @ 80DC3F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DC41C @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DC4CE
- cmp r0, 0x1
- bgt _080DC420
- cmp r0, 0
- beq _080DC426
- b _080DC4E6
- .align 2, 0
-_080DC41C: .4byte gTasks
-_080DC420:
- cmp r0, 0x2
- beq _080DC4E0
- b _080DC4E6
-_080DC426:
- ldrh r3, [r5, 0x22]
- ldrh r4, [r5, 0x24]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bgt _080DC4BE
- ldr r0, _080DC470 @ =gSineTable
- mov r9, r0
- movs r7, 0x3
- ldr r1, _080DC474 @ =gUnknown_03004DE0
- mov r12, r1
- movs r2, 0xF0
- lsls r2, 3
- add r2, r12
- mov r8, r2
-_080DC448:
- lsls r2, r3, 16
- asrs r0, r2, 15
- add r0, r9
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r3, 0x20
- ldrsh r1, [r5, r3]
- asrs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r3, r0, 16
- adds r6, r2, 0
- cmp r3, 0
- ble _080DC478
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- adds r0, r3, r0
- b _080DC484
- .align 2, 0
-_080DC470: .4byte gSineTable
-_080DC474: .4byte gUnknown_03004DE0
-_080DC478:
- cmp r3, 0
- bge _080DC488
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- subs r0, r3, r0
-_080DC484:
- lsls r0, 16
- lsrs r1, r0, 16
-_080DC488:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- mov r0, r12
- adds r4, r3, r0
- ldrh r0, [r5, 0x1C]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1, r0
- strh r0, [r4]
- add r3, r8
- ldrh r0, [r5, 0x1C]
- adds r1, r0
- strh r1, [r3]
- asrs r0, r6, 16
- ldrh r1, [r5, 0x1E]
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r2, r0
- ble _080DC448
-_080DC4BE:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _080DC4E6
- b _080DC4D4
-_080DC4CE:
- ldr r1, _080DC4DC @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080DC4D4:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080DC4E6
- .align 2, 0
-_080DC4DC: .4byte gUnknown_03004DC0
-_080DC4E0:
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DC4E6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC3F4
-
- thumb_func_start sub_80DC4F4
-sub_80DC4F4: @ 80DC4F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DC528 @ =gTasks
- adds r7, r0, r1
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r5
- adds r6, r5, 0
- cmp r6, 0xFF
- bne _080DC52C
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- b _080DC5D6
- .align 2, 0
-_080DC528: .4byte gTasks
-_080DC52C:
- ldr r1, _080DC550 @ =gBattleAnimArgs
- ldrb r0, [r1]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r0, 16
- cmp r0, 0
- bge _080DC554
- adds r0, r5, 0
- bl FreeOamMatrix
- mov r0, r8
- bl DestroyAnimVisualTask
- b _080DC5D6
- .align 2, 0
-_080DC550: .4byte gBattleAnimArgs
-_080DC554:
- ldr r2, _080DC5E4 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r2, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, _080DC5E8 @ =SpriteCallbackDummy
- str r1, [r0]
- adds r4, r2
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- ldr r1, _080DC5EC @ =gBattleAnimArgs
- ldrb r0, [r1]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r0, r10
- strh r0, [r7, 0x24]
- mov r1, r9
- strh r1, [r7, 0x26]
- ldr r0, _080DC5F0 @ =sub_80DC5F4
- str r0, [r7]
-_080DC5D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC5E4: .4byte gSprites
-_080DC5E8: .4byte SpriteCallbackDummy
-_080DC5EC: .4byte gBattleAnimArgs
-_080DC5F0: .4byte sub_80DC5F4
- thumb_func_end sub_80DC4F4
-
- thumb_func_start sub_80DC5F4
-sub_80DC5F4: @ 80DC5F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DC618 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DC678
- cmp r0, 0x1
- bgt _080DC61C
- cmp r0, 0
- beq _080DC626
- b _080DC6F8
- .align 2, 0
-_080DC618: .4byte gTasks
-_080DC61C:
- cmp r0, 0x2
- beq _080DC6C8
- cmp r0, 0x3
- beq _080DC6E8
- b _080DC6F8
-_080DC626:
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080DC674 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8079AB8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x30
- bne _080DC6F8
- b _080DC6DA
- .align 2, 0
-_080DC674: .4byte gSineTable
-_080DC678:
- ldrh r0, [r4, 0xA]
- subs r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080DC6C4 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8079AB8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DC6F8
- b _080DC6DA
- .align 2, 0
-_080DC6C4: .4byte gSineTable
-_080DC6C8:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC6E4 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_080DC6DA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DC6F8
- .align 2, 0
-_080DC6E4: .4byte gSprites
-_080DC6E8:
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl FreeOamMatrix
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080DC6F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC5F4
-
- thumb_func_start sub_80DC700
-sub_80DC700: @ 80DC700
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DC778
- cmp r0, 0x1
- bgt _080DC716
- cmp r0, 0
- beq _080DC720
- b _080DC818
-_080DC716:
- cmp r0, 0x2
- beq _080DC7AA
- cmp r0, 0x3
- beq _080DC808
- b _080DC818
-_080DC720:
- ldr r4, _080DC76C @ =gAnimBankAttacker
- ldrb r0, [r4]
- movs r1, 0
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DC74E
- ldrh r0, [r5, 0x22]
- adds r0, 0xC
- strh r0, [r5, 0x22]
-_080DC74E:
- movs r0, 0x8
- strh r0, [r5, 0x30]
- ldr r1, _080DC770 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DC774 @ =REG_BLDALPHA
- ldrh r1, [r5, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- b _080DC7A2
- .align 2, 0
-_080DC76C: .4byte gAnimBankAttacker
-_080DC770: .4byte REG_BLDCNT
-_080DC774: .4byte REG_BLDALPHA
-_080DC778:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DC818
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_080DC7A2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DC818
-_080DC7AA:
- ldrh r0, [r5, 0x32]
- adds r1, r0, 0x1
- strh r1, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DC7E8
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r1, 0x1
- strh r1, [r5, 0x30]
- ldr r2, _080DC804 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DC7E8
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080DC7E8:
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r0, 0
- ldrh r1, [r5, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r5, 0x26]
- subs r0, r1
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r5, 0x34]
- b _080DC818
- .align 2, 0
-_080DC804: .4byte REG_BLDALPHA
-_080DC808:
- ldr r0, _080DC820 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl DestroyAnimSprite
-_080DC818:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC820: .4byte REG_BLDCNT
- thumb_func_end sub_80DC700
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rock.s b/asm/rock.s
deleted file mode 100755
index 923c842be..000000000
--- a/asm/rock.s
+++ /dev/null
@@ -1,1643 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ rock
-
- thumb_func_start sub_80DCE9C
-sub_80DCE9C: @ 80DCE9C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080DCF08 @ =gBattleAnimArgs
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080DCEBC
- ldr r0, _080DCF0C @ =gAnimBankTarget
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
-_080DCEBC:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r4, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xE
- strh r0, [r5, 0x22]
- ldrb r1, [r6, 0x2]
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- strh r4, [r5, 0x2E]
- strh r4, [r5, 0x30]
- movs r0, 0x4
- strh r0, [r5, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, _080DCF10 @ =0x0000ffba
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x38]
- ldr r1, _080DCF14 @ =sub_80DCF1C
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- ldr r1, _080DCF18 @ =sub_8078278
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCF08: .4byte gBattleAnimArgs
-_080DCF0C: .4byte gAnimBankTarget
-_080DCF10: .4byte 0x0000ffba
-_080DCF14: .4byte sub_80DCF1C
-_080DCF18: .4byte sub_8078278
- thumb_func_end sub_80DCE9C
-
- thumb_func_start sub_80DCF1C
-sub_80DCF1C: @ 80DCF1C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x20]
- adds r0, r1, r2
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x4
- strh r0, [r4, 0x32]
- movs r0, 0x20
- strh r0, [r4, 0x34]
- ldr r0, _080DCF54 @ =0x0000ffe8
- strh r0, [r4, 0x36]
- ldr r1, _080DCF58 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl StoreSpriteCallbackInData
- ldr r1, _080DCF5C @ =sub_8078278
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCF54: .4byte 0x0000ffe8
-_080DCF58: .4byte move_anim_8074EE0
-_080DCF5C: .4byte sub_8078278
- thumb_func_end sub_80DCF1C
-
- thumb_func_start sub_80DCF60
-sub_80DCF60: @ 80DCF60
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DCF88 @ =gBattleAnimArgs
- ldrb r1, [r4, 0xA]
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- ldr r0, _080DCF8C @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DCF90
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080DCF96
- .align 2, 0
-_080DCF88: .4byte gBattleAnimArgs
-_080DCF8C: .4byte gAnimBankAttacker
-_080DCF90:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080DCF96:
- strh r0, [r5, 0x20]
- ldr r3, _080DCFD8 @ =gBattleAnimArgs
- ldrh r2, [r3, 0x2]
- ldrh r0, [r5, 0x22]
- adds r2, r0
- movs r4, 0
- strh r2, [r5, 0x22]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldrh r0, [r3, 0x6]
- adds r2, r0
- strh r2, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078A5C
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _080DCFDC @ =sub_8078394
- str r0, [r5, 0x1C]
- ldr r1, _080DCFE0 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl StoreSpriteCallbackInData
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCFD8: .4byte gBattleAnimArgs
-_080DCFDC: .4byte sub_8078394
-_080DCFE0: .4byte move_anim_8074EE0
- thumb_func_end sub_80DCF60
-
- thumb_func_start sub_80DCFE4
-sub_80DCFE4: @ 80DCFE4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DCFFC @ =gBattleAnimArgs
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DD000
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080DD008
- .align 2, 0
-_080DCFFC: .4byte gBattleAnimArgs
-_080DD000:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080DD008:
- ldr r1, _080DD024 @ =gBattleAnimArgs
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080DD028 @ =sub_80DD02C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD024: .4byte gBattleAnimArgs
-_080DD028: .4byte sub_80DD02C
- thumb_func_end sub_80DCFE4
-
- thumb_func_start sub_80DD02C
-sub_80DD02C: @ 80DD02C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DD072
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DD072:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD02C
-
- thumb_func_start do_boulder_dust
-do_boulder_dust: @ 80DD078
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _080DD154 @ =REG_BLDCNT
- ldr r2, _080DD158 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080DD15C @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DD0C4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080DD0C4:
- ldr r0, _080DD160 @ =gBattle_BG1_X
- strh r5, [r0]
- ldr r0, _080DD164 @ =gBattle_BG1_Y
- strh r5, [r0]
- ldr r0, _080DD168 @ =REG_BG1HOFS
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r2, _080DD16C @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080DD170 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew
- bl LZDecompressVram
- ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080DD120
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080DD120:
- ldr r0, _080DD180 @ =gBattleAnimArgs
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080DD13A
- ldr r0, _080DD184 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DD13A
- movs r5, 0x1
-_080DD13A:
- ldr r0, _080DD188 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x8]
- ldr r0, _080DD18C @ =sub_80DD190
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD154: .4byte REG_BLDCNT
-_080DD158: .4byte 0x00003f42
-_080DD15C: .4byte REG_BG1CNT
-_080DD160: .4byte gBattle_BG1_X
-_080DD164: .4byte gBattle_BG1_Y
-_080DD168: .4byte REG_BG1HOFS
-_080DD16C: .4byte 0x040000d4
-_080DD170: .4byte 0x85000400
-_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
-_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
-_080DD17C: .4byte gBattleAnimSpritePalette_261
-_080DD180: .4byte gBattleAnimArgs
-_080DD184: .4byte gAnimBankAttacker
-_080DD188: .4byte gTasks
-_080DD18C: .4byte sub_80DD190
- thumb_func_end do_boulder_dust
-
- thumb_func_start sub_80DD190
-sub_80DD190: @ 80DD190
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080DD1C0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0
- bne _080DD1CC
- ldr r1, _080DD1C4 @ =gBattle_BG1_X
- ldr r5, _080DD1C8 @ =0x0000fffa
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- b _080DD1D2
- .align 2, 0
-_080DD1C0: .4byte gTasks
-_080DD1C4: .4byte gBattle_BG1_X
-_080DD1C8: .4byte 0x0000fffa
-_080DD1CC:
- ldr r1, _080DD204 @ =gBattle_BG1_X
- ldrh r0, [r1]
- adds r0, 0x6
-_080DD1D2:
- strh r0, [r1]
- adds r4, r1, 0
- ldr r1, _080DD208 @ =gBattle_BG1_Y
- ldr r5, _080DD20C @ =0x0000ffff
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r3
- movs r5, 0x20
- ldrsh r0, [r0, r5]
- mov r8, r2
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080DD1F8
- b _080DD37C
-_080DD1F8:
- lsls r0, 2
- ldr r1, _080DD210 @ =_080DD214
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD204: .4byte gBattle_BG1_X
-_080DD208: .4byte gBattle_BG1_Y
-_080DD20C: .4byte 0x0000ffff
-_080DD210: .4byte _080DD214
- .align 2, 0
-_080DD214:
- .4byte _080DD228
- .4byte _080DD270
- .4byte _080DD292
- .4byte _080DD2D4
- .4byte _080DD358
-_080DD228:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080DD242
- b _080DD37C
-_080DD242:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080DD26C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r0, [r3, r2]
- cmp r0, 0x7
- beq _080DD260
- b _080DD37C
-_080DD260:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080DD37C
- .align 2, 0
-_080DD26C: .4byte REG_BLDALPHA
-_080DD270:
- mov r5, r8
- adds r0, r5, r7
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080DD37C
- movs r0, 0x7
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080DD37C
-_080DD292:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080DD37C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080DD2D0 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080DD37C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080DD37C
- .align 2, 0
-_080DD2D0: .4byte REG_BLDALPHA
-_080DD2D4:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _080DD38C @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r9, r5
- ldr r0, _080DD390 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r10, r0
-_080DD2F6:
- str r6, [sp, 0xC]
- mov r0, r9
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080DD2F6
- str r6, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r10
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080DD38C @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080DD394 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080DD344
- ldr r2, _080DD398 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080DD344:
- ldr r0, _080DD39C @ =gTasks
- mov r5, r8
- adds r1, r5, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r4, _080DD3A0 @ =gBattle_BG1_X
- ldr r2, _080DD3A4 @ =gBattle_BG1_Y
-_080DD358:
- movs r1, 0
- strh r1, [r4]
- strh r1, [r2]
- ldr r0, _080DD3A8 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080DD398 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080DD37C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD38C: .4byte 0x040000d4
-_080DD390: .4byte 0x85000400
-_080DD394: .4byte 0x85000200
-_080DD398: .4byte REG_BG1CNT
-_080DD39C: .4byte gTasks
-_080DD3A0: .4byte gBattle_BG1_X
-_080DD3A4: .4byte gBattle_BG1_Y
-_080DD3A8: .4byte REG_BLDCNT
- thumb_func_end sub_80DD190
-
- thumb_func_start sub_80DD3AC
-sub_80DD3AC: @ 80DD3AC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DD428
- ldr r4, _080DD3F0 @ =gBattleAnimArgs
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DD3F8
- ldr r0, _080DD3F4 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080DD3F8
- movs r0, 0x98
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- subs r0, 0x40
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _080DD3FC
- .align 2, 0
-_080DD3F0: .4byte gBattleAnimArgs
-_080DD3F4: .4byte gAnimBankAttacker
-_080DD3F8:
- ldr r0, _080DD41C @ =0x0000ffc0
- strh r0, [r5, 0x20]
-_080DD3FC:
- ldr r4, _080DD420 @ =gBattleAnimArgs
- ldrh r0, [r4]
- strh r0, [r5, 0x22]
- ldr r1, _080DD424 @ =gUnknown_083DAD10
- adds r0, r5, 0
- bl SetSubspriteTables
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DD484
- .align 2, 0
-_080DD41C: .4byte 0x0000ffc0
-_080DD420: .4byte gBattleAnimArgs
-_080DD424: .4byte gUnknown_083DAD10
-_080DD428:
- ldrh r1, [r5, 0x30]
- ldrh r3, [r5, 0x34]
- adds r1, r3
- ldrh r2, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r2, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r3, [r5, 0x24]
- adds r0, r3
- strh r0, [r5, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r3, [r5, 0x26]
- adds r0, r3
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x34]
- ands r2, r0
- strh r2, [r5, 0x36]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DD46E
- movs r2, 0x20
- ldrsh r0, [r5, r2]
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- adds r0, r1
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- ble _080DD484
- b _080DD480
-_080DD46E:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DD484
-_080DD480:
- ldr r0, _080DD48C @ =DestroyAnimSprite
- str r0, [r5, 0x1C]
-_080DD484:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD48C: .4byte DestroyAnimSprite
- thumb_func_end sub_80DD3AC
-
- thumb_func_start sub_80DD490
-sub_80DD490: @ 80DD490
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD4C8 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, _080DD4CC @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080DD4D0 @ =DestroyAnimSprite
- adds r0, r4, 0
- bl StoreSpriteCallbackInData
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD4C8: .4byte gBattleAnimArgs
-_080DD4CC: .4byte sub_8078B34
-_080DD4D0: .4byte DestroyAnimSprite
- thumb_func_end sub_80DD490
-
- thumb_func_start sub_80DD4D4
-sub_80DD4D4: @ 80DD4D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DD554 @ =gTasks
- adds r6, r1, r0
- ldr r5, _080DD558 @ =gAnimBankAttacker
- ldrb r0, [r5]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- ldr r4, _080DD55C @ =gAnimBankTarget
- ldrb r0, [r4]
- movs r1, 0x2
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xC0
- lsls r2, 13
- adds r0, r2
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080DD544
- mov r8, r7
-_080DD544:
- bl sub_80DD8BC
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080DD560
- movs r0, 0x20
- b _080DD566
- .align 2, 0
-_080DD554: .4byte gTasks
-_080DD558: .4byte gAnimBankAttacker
-_080DD55C: .4byte gAnimBankTarget
-_080DD560:
- lsls r1, r5, 3
- movs r0, 0x30
- subs r0, r1
-_080DD566:
- strh r0, [r6, 0x18]
- movs r4, 0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0x1E]
- strh r4, [r6, 0x1A]
- movs r0, 0x1
- strh r0, [r6, 0x20]
- movs r1, 0x18
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _080DD57E
- adds r0, 0x7
-_080DD57E:
- asrs r0, 3
- subs r0, 0x1
- strh r0, [r6, 0x1C]
- mov r2, r9
- lsls r0, r2, 3
- strh r0, [r6, 0xC]
- lsls r0, r7, 3
- strh r0, [r6, 0xE]
- mov r1, r10
- subs r0, r1, r2
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x10]
- mov r1, r8
- subs r0, r1, r7
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x12]
- strh r4, [r6, 0x14]
- strh r4, [r6, 0x16]
- movs r0, 0x40
- negs r0, r0
- bl BattleAnimAdjustPanning
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 8
- lsrs r4, 16
- movs r0, 0x3F
- bl BattleAnimAdjustPanning
- lsls r0, 24
- strh r4, [r6, 0x22]
- asrs r0, 24
- lsls r4, 16
- asrs r4, 16
- subs r0, r4
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x24]
- strh r5, [r6, 0xA]
- movs r0, 0
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- ldr r0, _080DD600 @ =sub_80DD604
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD600: .4byte sub_80DD604
- thumb_func_end sub_80DD4D4
-
- thumb_func_start sub_80DD604
-sub_80DD604: @ 80DD604
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DD628 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080DD61E
- b _080DD76C
-_080DD61E:
- lsls r0, 2
- ldr r1, _080DD62C @ =_080DD630
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD628: .4byte gTasks
-_080DD62C: .4byte _080DD630
- .align 2, 0
-_080DD630:
- .4byte _080DD644
- .4byte _080DD6A8
- .4byte _080DD6B0
- .4byte _080DD70C
- .4byte _080DD75E
-_080DD644:
- ldrh r2, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- subs r2, r0
- strh r2, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- ldr r3, _080DD6A4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- lsls r2, 16
- asrs r2, 19
- strh r2, [r0, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080DD694
- movs r0, 0x14
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DD694:
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA2
- bl PlaySE12WithPanning
- b _080DD76C
- .align 2, 0
-_080DD6A4: .4byte gSprites
-_080DD6A8:
- ldrh r0, [r4, 0x1E]
- subs r0, 0x1
- strh r0, [r4, 0x1E]
- b _080DD750
-_080DD6B0:
- ldrh r0, [r4, 0x1A]
- subs r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _080DD6D0
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0x14]
- adds r0, r2
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- b _080DD6DA
-_080DD6D0:
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DD6DA:
- ldr r2, _080DD708 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- b _080DD76C
- .align 2, 0
-_080DD708: .4byte gSprites
-_080DD70C:
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080DD74A
- movs r0, 0
- strh r0, [r4, 0x1A]
- adds r0, r4, 0
- bl sub_80DD774
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xAF
- bl PlaySE12WithPanning
-_080DD74A:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
-_080DD750:
- lsls r0, 16
- cmp r0, 0
- bne _080DD76C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DD76C
-_080DD75E:
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DD76C
- adds r0, r2, 0
- bl DestroyAnimVisualTask
-_080DD76C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD604
-
- thumb_func_start sub_80DD774
-sub_80DD774: @ 80DD774
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _080DD864
- lsls r0, 2
- ldr r1, _080DD790 @ =_080DD794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD790: .4byte _080DD794
- .align 2, 0
-_080DD794:
- .4byte _080DD7A8
- .4byte _080DD7B4
- .4byte _080DD7B4
- .4byte _080DD7C0
- .4byte _080DD7CC
-_080DD7A8:
- ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78
- movs r5, 0
- b _080DD7D0
- .align 2, 0
-_080DD7B0: .4byte gSpriteTemplate_83DAD78
-_080DD7B4:
- ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90
- movs r5, 0x50
- b _080DD7D0
- .align 2, 0
-_080DD7BC: .4byte gSpriteTemplate_83DAD90
-_080DD7C0:
- ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90
- movs r5, 0x40
- b _080DD7D0
- .align 2, 0
-_080DD7C8: .4byte gSpriteTemplate_83DAD90
-_080DD7CC:
- ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90
- movs r5, 0x30
-_080DD7D0:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0xE]
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- lsls r0, 2
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r0, r3, 0
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DD85C
- ldr r1, _080DD870 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x2E]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r2, r6, r2
- movs r6, 0xA
- ldrsh r3, [r4, r6]
- lsls r1, r3, 1
- adds r1, r3
- adds r2, r1
- strh r2, [r0, 0x32]
- strh r7, [r0, 0x36]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r2, 1
- movs r3, 0x10
- negs r3, r3
- adds r1, r3, 0
- subs r1, r2
- strh r1, [r0, 0x38]
- ldrh r3, [r0, 0x4]
- lsls r2, r3, 22
- lsrs r2, 22
- adds r2, r5
- ldr r5, _080DD874 @ =0x000003ff
- adds r1, r5, 0
- ands r2, r1
- ldr r1, _080DD878 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- bl sub_80786EC
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
-_080DD85C:
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- negs r0, r0
- strh r0, [r4, 0x20]
-_080DD864:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD86C: .4byte gSpriteTemplate_83DAD90
-_080DD870: .4byte gSprites
-_080DD874: .4byte 0x000003ff
-_080DD878: .4byte 0xfffffc00
- thumb_func_end sub_80DD774
-
- thumb_func_start sub_80DD87C
-sub_80DD87C: @ 80DD87C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DD8AE
- ldr r0, _080DD8B4 @ =sub_80DD604
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080DD8A8
- ldr r0, _080DD8B8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- subs r0, 0x1
- strh r0, [r1, 0x1E]
-_080DD8A8:
- adds r0, r4, 0
- bl DestroySprite
-_080DD8AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD8B4: .4byte sub_80DD604
-_080DD8B8: .4byte gTasks
- thumb_func_end sub_80DD87C
-
- thumb_func_start sub_80DD8BC
-sub_80DD8BC: @ 80DD8BC
- push {lr}
- ldr r0, _080DD8E4 @ =gAnimDisableStructPtr
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080DD8DE
- movs r1, 0x1
-_080DD8DE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080DD8E4: .4byte gAnimDisableStructPtr
- thumb_func_end sub_80DD8BC
-
- thumb_func_start sub_80DD8E8
-sub_80DD8E8: @ 80DD8E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD920 @ =gBattleAnimArgs
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- ldrh r1, [r5, 0x4]
- subs r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DD924 @ =sub_80DD928
- str r0, [r4, 0x1C]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD920: .4byte gBattleAnimArgs
-_080DD924: .4byte sub_80DD928
- thumb_func_end sub_80DD8E8
-
- thumb_func_start sub_80DD928
-sub_80DD928: @ 80DD928
- push {lr}
- adds r2, r0, 0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x34]
- movs r3, 0x34
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080DD960
- ldrh r3, [r2, 0x32]
- adds r0, r1, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r1, r0
- strh r1, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r1, 16
- cmp r1, 0
- ble _080DD972
- movs r0, 0
- strh r0, [r2, 0x34]
- b _080DD972
-_080DD960:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080DD972
- adds r0, r2, 0
- bl DestroyAnimSprite
-_080DD972:
- pop {r0}
- bx r0
- thumb_func_end sub_80DD928
-
- thumb_func_start sub_80DD978
-sub_80DD978: @ 80DD978
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DD9A0 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DD994
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080DD994:
- adds r0, r4, 0
- bl sub_807941C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD9A0: .4byte gAnimBankAttacker
- thumb_func_end sub_80DD978
-
- thumb_func_start sub_80DD9A4
-sub_80DD9A4: @ 80DD9A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD9F0 @ =gAnimBankTarget
- ldrb r0, [r5]
- movs r1, 0
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetBankPosition
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DD9F4 @ =gBattleAnimArgs
- ldrh r3, [r2]
- ldrh r5, [r4, 0x20]
- adds r1, r3, r5
- strh r1, [r4, 0x20]
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r3, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x38]
- ldrb r1, [r2, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080DD9F8 @ =sub_80DD9FC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD9F0: .4byte gAnimBankTarget
-_080DD9F4: .4byte gBattleAnimArgs
-_080DD9F8: .4byte sub_80DD9FC
- thumb_func_end sub_80DD9A4
-
- thumb_func_start sub_80DD9FC
-sub_80DD9FC: @ 80DD9FC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- ldrh r1, [r4, 0x24]
- adds r1, r0
- strh r1, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- subs r1, r0
- strh r1, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8C
- ble _080DDA46
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080DDA46:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD9FC
-
- thumb_func_start sub_80DDA4C
-sub_80DDA4C: @ 80DDA4C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080DDA84 @ =gAnimMoveDmg
- ldr r0, [r2]
- cmp r0, 0x20
- bgt _080DDA60
- ldr r1, _080DDA88 @ =gBattleAnimArgs
- movs r0, 0
- strh r0, [r1, 0xE]
-_080DDA60:
- ldr r2, [r2]
- adds r0, r2, 0
- subs r0, 0x21
- cmp r0, 0x20
- bhi _080DDA70
- ldr r1, _080DDA88 @ =gBattleAnimArgs
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080DDA70:
- cmp r2, 0x41
- ble _080DDA7A
- ldr r1, _080DDA88 @ =gBattleAnimArgs
- movs r0, 0x2
- strh r0, [r1, 0xE]
-_080DDA7A:
- adds r0, r3, 0
- bl DestroyAnimVisualTask
- pop {r0}
- bx r0
- .align 2, 0
-_080DDA84: .4byte gAnimMoveDmg
-_080DDA88: .4byte gBattleAnimArgs
- thumb_func_end sub_80DDA4C
-
- thumb_func_start sub_80DDA8C
-sub_80DDA8C: @ 80DDA8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080DDAE8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DDAAE
- movs r0, 0
- bl sub_80789D4
- movs r0, 0xC8
- strh r0, [r5, 0xA]
-_080DDAAE:
- ldr r4, _080DDAEC @ =gUnknown_030041B8
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- ldrh r0, [r5, 0xA]
- subs r0, 0x3
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _080DDADA
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r6, 0
- bl DestroyAnimVisualTask
-_080DDADA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDAE8: .4byte gTasks
-_080DDAEC: .4byte gUnknown_030041B8
- thumb_func_end sub_80DDA8C
-
- thumb_func_start sub_80DDAF0
-sub_80DDAF0: @ 80DDAF0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDB5C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDB1C
- movs r0, 0
- bl sub_80789D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080DDB60 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
-_080DDB1C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x50
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0xA]
- ldr r6, _080DDB60 @ =gUnknown_030041B8
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0x4
- bl Cos
- ldrh r4, [r4, 0xC]
- adds r0, r4
- strh r0, [r6]
- ldr r0, _080DDB64 @ =gBattleAnimArgs
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- ldr r0, _080DDB68 @ =0x00000fff
- cmp r1, r0
- bne _080DDB54
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r5, 0
- bl DestroyAnimVisualTask
-_080DDB54:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDB5C: .4byte gTasks
-_080DDB60: .4byte gUnknown_030041B8
-_080DDB64: .4byte gBattleAnimArgs
-_080DDB68: .4byte 0x00000fff
- thumb_func_end sub_80DDAF0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette.s b/asm/roulette.s
deleted file mode 100644
index 04b3ac9b8..000000000
--- a/asm/roulette.s
+++ /dev/null
@@ -1,9658 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81150FC
-sub_81150FC: @ 81150FC
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08115120 @ =gSharedMem + 0x19000
- adds r1, r0, 0
- adds r1, 0xB8
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811511C
- adds r0, r1, 0
- bl task_tutorial_controls_fadein
-_0811511C:
- pop {r0}
- bx r0
- .align 2, 0
-_08115120: .4byte gSharedMem + 0x19000
- thumb_func_end sub_81150FC
-
- thumb_func_start sub_8115124
-sub_8115124: @ 8115124
- push {r4,lr}
- sub sp, 0x4
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8117434
- ldr r2, _08115188 @ =REG_BG1HOFS
- ldr r3, _0811518C @ =gSharedMem + 0x19000
- ldrh r1, [r3, 0x26]
- movs r4, 0x80
- lsls r4, 2
- adds r0, r4, 0
- subs r0, r1
- strh r0, [r2]
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- beq _08115154
- ldr r1, _08115190 @ =REG_BLDALPHA
- ldrh r0, [r3, 0x34]
- strh r0, [r1]
-_08115154:
- movs r1, 0x2A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08115170
- ldr r1, _08115194 @ =0x040000d4
- ldr r0, _08115198 @ =gBGTilemapBuffers + 0x800 + 0x1C0
- str r0, [r1]
- ldr r0, _0811519C @ =0x060021c0
- str r0, [r1, 0x4]
- ldr r0, _081151A0 @ =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- strh r0, [r3, 0x2A]
-_08115170:
- movs r2, 0x28
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _081151A4
- cmp r0, 0x1
- ble _0811521A
- cmp r0, 0x2
- beq _081151D4
- cmp r0, 0xFF
- beq _081151F8
- b _0811521A
- .align 2, 0
-_08115188: .4byte REG_BG1HOFS
-_0811518C: .4byte gSharedMem + 0x19000
-_08115190: .4byte REG_BLDALPHA
-_08115194: .4byte 0x040000d4
-_08115198: .4byte gBGTilemapBuffers + 0x800 + 0x1C0
-_0811519C: .4byte 0x060021c0
-_081151A0: .4byte 0x800001a0
-_081151A4:
- ldr r1, _081151C4 @ =REG_BG0CNT
- movs r4, 0xF8
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xCC
- ldr r0, _081151C8 @ =gBGTilemapBuffers + 0x1000 + 0x1C0
- str r0, [r1]
- ldr r0, _081151CC @ =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, _081151D0 @ =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0x2
- b _08115218
- .align 2, 0
-_081151C4: .4byte REG_BG0CNT
-_081151C8: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0
-_081151CC: .4byte 0x0600f9c0
-_081151D0: .4byte 0x800001a0
-_081151D4:
- ldr r1, _081151E8 @ =0x040000d4
- ldr r0, _081151EC @ =gBGTilemapBuffers + 0x1000 + 0x1C0
- str r0, [r1]
- ldr r0, _081151F0 @ =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, _081151F4 @ =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _0811521A
- .align 2, 0
-_081151E8: .4byte 0x040000d4
-_081151EC: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0
-_081151F0: .4byte 0x0600f9c0
-_081151F4: .4byte 0x800001a0
-_081151F8:
- ldr r1, _08115224 @ =REG_BG0CNT
- ldr r2, _08115228 @ =0x00001f08
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0811522C @ =0x040000d4
- mov r4, sp
- str r4, [r1]
- ldr r0, _08115230 @ =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, _08115234 @ =0x810001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
-_08115218:
- strh r0, [r3, 0x28]
-_0811521A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115224: .4byte REG_BG0CNT
-_08115228: .4byte 0x00001f08
-_0811522C: .4byte 0x040000d4
-_08115230: .4byte 0x0600f9c0
-_08115234: .4byte 0x810001a0
- thumb_func_end sub_8115124
-
- thumb_func_start sub_8115238
-sub_8115238: @ 8115238
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _081152C0 @ =gUnknown_083F8EC4
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r5, _081152C4 @ =gSharedMem + 0x19000
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0
- bl memset
- ldr r0, _081152C8 @ =gSpecialVar_0x8004
- ldrh r2, [r0]
- movs r0, 0x1
- ands r0, r2
- ldrb r1, [r5, 0x4]
- movs r3, 0x4
- negs r3, r3
- ands r3, r1
- orrs r3, r0
- strb r3, [r5, 0x4]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08115276
- movs r0, 0x80
- orrs r3, r0
- strb r3, [r5, 0x4]
-_08115276:
- ldr r3, _081152CC @ =gUnknown_083F8DF4
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x3]
- adds r4, r5, 0
- adds r4, 0x22
- strb r0, [r4]
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x4]
- adds r3, r5, 0
- adds r3, 0x23
- strb r0, [r3]
- ldr r0, _081152D0 @ =gUnknown_083F8DF0
- lsrs r1, 30
- lsls r2, 24
- lsrs r2, 31
- lsls r2, 1
- adds r1, r2
- adds r1, r0
- ldrb r2, [r1]
- strb r2, [r5, 0x19]
- ldrb r1, [r5, 0x1A]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x1A]
- cmp r2, 0x1
- bne _081152DC
- ldr r4, _081152D4 @ =gPlttBufferUnfaded
- ldr r3, _081152D8 @ =gPlttBufferFaded
- mov r0, sp
- ldrh r2, [r0]
- b _081152E4
- .align 2, 0
-_081152C0: .4byte gUnknown_083F8EC4
-_081152C4: .4byte gSharedMem + 0x19000
-_081152C8: .4byte gSpecialVar_0x8004
-_081152CC: .4byte gUnknown_083F8DF4
-_081152D0: .4byte gUnknown_083F8DF0
-_081152D4: .4byte gPlttBufferUnfaded
-_081152D8: .4byte gPlttBufferFaded
-_081152DC:
- ldr r4, _08115348 @ =gPlttBufferUnfaded
- ldr r3, _0811534C @ =gPlttBufferFaded
- mov r0, sp
- ldrh r2, [r0, 0x2]
-_081152E4:
- adds r0, r3, 0
- adds r0, 0xA2
- strh r2, [r0]
- ldr r1, _08115350 @ =0x0000ffff
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r3]
- ands r0, r1
- adds r2, r4, 0
- adds r2, 0xA2
- strh r0, [r2]
- ands r0, r1
- strh r0, [r4]
- ldr r0, _08115354 @ =gSharedMem + 0x190B8
- bl sub_8124918
- movs r4, 0
- ldr r5, _08115358 @ =gUnknown_083F8E34
-_08115308:
- lsls r2, r4, 3
- adds r2, r5
- ldr r0, _08115354 @ =gSharedMem + 0x190B8
- adds r1, r4, 0
- bl sub_812492C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC
- bls _08115308
- movs r4, 0
- ldr r5, _0811535C @ =gSharedMem + 0x19000
-_08115322:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08115360 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- beq _08115364
- adds r0, 0x2
- cmp r1, r0
- bne _0811536C
- ldrb r0, [r5, 0x2]
- movs r1, 0x1
- b _08115368
- .align 2, 0
-_08115348: .4byte gPlttBufferUnfaded
-_0811534C: .4byte gPlttBufferFaded
-_08115350: .4byte 0x0000ffff
-_08115354: .4byte gSharedMem + 0x190B8
-_08115358: .4byte gUnknown_083F8E34
-_0811535C: .4byte gSharedMem + 0x19000
-_08115360: .4byte gPlayerParty
-_08115364:
- ldrb r0, [r5, 0x2]
- movs r1, 0x2
-_08115368:
- orrs r0, r1
- strb r0, [r5, 0x2]
-_0811536C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08115322
- bl RtcCalcLocalTime
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8115238
-
- thumb_func_start sub_8115384
-sub_8115384: @ 8115384
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081153A4 @ =gMain
- ldr r2, _081153A8 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x7
- bls _08115398
- b _081155FE
-_08115398:
- lsls r0, 2
- ldr r1, _081153AC @ =_081153B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081153A4: .4byte gMain
-_081153A8: .4byte 0x0000043c
-_081153AC: .4byte _081153B0
- .align 2, 0
-_081153B0:
- .4byte _081153D0
- .4byte _08115444
- .4byte _08115460
- .4byte _08115494
- .4byte _081154CC
- .4byte _081154FC
- .4byte _0811556C
- .4byte _0811558C
-_081153D0:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _08115420 @ =REG_BG2CNT
- ldr r3, _08115424 @ =0x00004686
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08115428 @ =0x00004401
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x46
- movs r3, 0x90
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0811542C @ =0x0000060a
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08115430 @ =gUnknown_08E8096C
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08115434 @ =gRouletteWheelTiles
- ldr r1, _08115438 @ =0x06004000
- bl LZ77UnCompVram
- ldr r1, _0811543C @ =gMain
- ldr r3, _08115440 @ =0x0000043c
- adds r1, r3
- b _0811557A
- .align 2, 0
-_08115420: .4byte REG_BG2CNT
-_08115424: .4byte 0x00004686
-_08115428: .4byte 0x00004401
-_0811542C: .4byte 0x0000060a
-_08115430: .4byte gUnknown_08E8096C
-_08115434: .4byte gRouletteWheelTiles
-_08115438: .4byte 0x06004000
-_0811543C: .4byte gMain
-_08115440: .4byte 0x0000043c
-_08115444:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- ldr r1, _08115458 @ =gMain
- ldr r0, _0811545C @ =0x0000043c
- adds r1, r0
- b _0811557A
- .align 2, 0
-_08115458: .4byte gMain
-_0811545C: .4byte 0x0000043c
-_08115460:
- ldr r0, _08115480 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _08115484 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r0, _08115488 @ =gUnknown_083F86BC
- movs r2, 0xE0
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- ldr r1, _0811548C @ =gMain
- ldr r2, _08115490 @ =0x0000043c
- adds r1, r2
- b _0811557A
- .align 2, 0
-_08115480: .4byte gWindowConfig_81E6C3C
-_08115484: .4byte gWindowConfig_81E6CE4
-_08115488: .4byte gUnknown_083F86BC
-_0811548C: .4byte gMain
-_08115490: .4byte 0x0000043c
-_08115494:
- bl sub_8115238
- bl sub_80F9020
- ldr r0, _081154B4 @ =gUnknown_083F88BC
- ldr r1, _081154B8 @ =gSharedMem + 0x18800
- bl LZ77UnCompWram
- ldr r0, _081154BC @ =gUnknown_083F8A60
- ldr r1, _081154C0 @ =0x06003000
- bl LZ77UnCompVram
- ldr r1, _081154C4 @ =gMain
- ldr r3, _081154C8 @ =0x0000043c
- adds r1, r3
- b _0811557A
- .align 2, 0
-_081154B4: .4byte gUnknown_083F88BC
-_081154B8: .4byte gSharedMem + 0x18800
-_081154BC: .4byte gUnknown_083F8A60
-_081154C0: .4byte 0x06003000
-_081154C4: .4byte gMain
-_081154C8: .4byte 0x0000043c
-_081154CC:
- movs r0, 0
- bl sub_8117838
- bl sub_811857C
- bl sub_81184D8
- bl sub_8117F2C
- bl sub_8117900
- bl sub_8117BBC
- bl sub_8117DF4
- ldr r1, _081154F4 @ =gMain
- ldr r0, _081154F8 @ =0x0000043c
- adds r1, r0
- b _0811557A
- .align 2, 0
-_081154F4: .4byte gMain
-_081154F8: .4byte 0x0000043c
-_081154FC:
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08115550 @ =gSaveBlock1
- ldr r1, _08115554 @ =0x00000494
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81180F4
- movs r0, 0x6
- bl sub_81182F8
- movs r0, 0
- bl sub_811829C
- movs r0, 0
- bl sub_8117158
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08115558 @ =gUnknown_081C4157
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0811555C @ =gSpriteCoordOffsetX
- movs r2, 0x3C
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08115560 @ =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08115564 @ =gMain
- ldr r3, _08115568 @ =0x0000043c
- adds r1, r3
- b _0811557A
- .align 2, 0
-_08115550: .4byte gSaveBlock1
-_08115554: .4byte 0x00000494
-_08115558: .4byte gUnknown_081C4157
-_0811555C: .4byte gSpriteCoordOffsetX
-_08115560: .4byte gSpriteCoordOffsetY
-_08115564: .4byte gMain
-_08115568: .4byte 0x0000043c
-_0811556C:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _08115584 @ =0x00001741
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08115588 @ =0x0000043c
- adds r1, r2, r0
-_0811557A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081155FE
- .align 2, 0
-_08115584: .4byte 0x00001741
-_08115588: .4byte 0x0000043c
-_0811558C:
- ldr r3, _08115608 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0811560C @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08115610 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08115614 @ =sub_8115124
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _08115618 @ =sub_81156BC
- movs r1, 0
- bl CreateTask
- ldr r4, _0811561C @ =gSharedMem + 0x19000
- adds r1, r4, 0
- adds r1, 0xA4
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115620 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x14]
- ldr r0, _08115624 @ =gSaveBlock1
- ldr r2, _08115628 @ =0x00000494
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- ldr r0, _0811562C @ =sub_8115634
- movs r1, 0x1
- bl CreateTask
- adds r4, 0xA5
- strb r0, [r4]
- ldr r0, _08115630 @ =sub_81150FC
- bl SetMainCallback2
-_081155FE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115608: .4byte 0x04000208
-_0811560C: .4byte 0x04000200
-_08115610: .4byte REG_DISPSTAT
-_08115614: .4byte sub_8115124
-_08115618: .4byte sub_81156BC
-_0811561C: .4byte gSharedMem + 0x19000
-_08115620: .4byte gTasks
-_08115624: .4byte gSaveBlock1
-_08115628: .4byte 0x00000494
-_0811562C: .4byte sub_8115634
-_08115630: .4byte sub_81150FC
- thumb_func_end sub_8115384
-
- thumb_func_start sub_8115634
-sub_8115634: @ 8115634
- push {r4-r6,lr}
- ldr r0, _081156B8 @ =gSharedMem + 0x19000
- adds r3, r0, 0
- adds r3, 0x21
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- adds r2, r0, 0
- adds r2, 0x23
- lsls r1, 24
- lsrs r1, 24
- adds r6, r0, 0
- ldrb r2, [r2]
- cmp r1, r2
- bne _08115674
- movs r0, 0
- strb r0, [r3]
- adds r2, r6, 0
- adds r2, 0x22
- ldrb r1, [r2]
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _08115674
- ldrb r1, [r2]
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r6, 0x24]
-_08115674:
- adds r4, r6, 0
- ldrh r0, [r4, 0x24]
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x24]
- bl Cos2
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0
- bge _08115694
- adds r0, 0xF
-_08115694:
- lsls r0, 12
- lsrs r5, r0, 16
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0
- bge _081156A2
- adds r0, 0xF
-_081156A2:
- asrs r0, 4
- strh r0, [r6, 0x32]
- strh r0, [r6, 0x2C]
- strh r5, [r6, 0x2E]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081156B8: .4byte gSharedMem + 0x19000
- thumb_func_end sub_8115634
-
- thumb_func_start sub_81156BC
-sub_81156BC: @ 81156BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08115716
- ldr r2, _0811571C @ =REG_BLDCNT
- ldrh r0, [r2]
- movs r5, 0x90
- lsls r5, 6
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08115720 @ =REG_BLDALPHA
- ldr r2, _08115724 @ =0x00000808
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08115728 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x14]
- adds r0, r4, 0
- bl sub_8116CAC
- bl sub_8116CF8
- bl sub_81185E8
- movs r0, 0
- bl sub_8117158
- movs r0, 0x6
- bl sub_81182F8
- ldr r1, _0811572C @ =sub_81159BC
- ldr r2, _08115730 @ =0x0000ffff
- adds r0, r4, 0
- movs r3, 0x3
- bl sub_8116C34
-_08115716:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811571C: .4byte REG_BLDCNT
-_08115720: .4byte REG_BLDALPHA
-_08115724: .4byte 0x00000808
-_08115728: .4byte gTasks
-_0811572C: .4byte sub_81159BC
-_08115730: .4byte 0x0000ffff
- thumb_func_end sub_81156BC
-
- thumb_func_start sub_8115734
-sub_8115734: @ 8115734
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08115770 @ =0x00002d9e
- bl sub_814AAF8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08115774 @ =gUnknown_081C41E3
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08115778 @ =gUnknown_083F8EBC
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115770: .4byte 0x00002d9e
-_08115774: .4byte gUnknown_081C41E3
-_08115778: .4byte gUnknown_083F8EBC
- thumb_func_end sub_8115734
-
- thumb_func_start sub_811577C
-sub_811577C: @ 811577C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r1, _081157A4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081157A8 @ =sub_81159BC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081157A4: .4byte gTasks
-_081157A8: .4byte sub_81159BC
- thumb_func_end sub_811577C
-
- thumb_func_start sub_81157AC
-sub_81157AC: @ 81157AC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081157CC @ =gSharedMem + 0x19000
- adds r0, 0xA5
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8116AB0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081157CC: .4byte gSharedMem + 0x19000
- thumb_func_end sub_81157AC
-
- thumb_func_start sub_81157D0
-sub_81157D0: @ 81157D0
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bhi _081158C8
- lsls r0, r4, 2
- ldr r1, _081157E8 @ =_081157EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081157E8: .4byte _081157EC
- .align 2, 0
-_081157EC:
- .4byte _0811582C
- .4byte _08115848
- .4byte _08115848
- .4byte _08115848
- .4byte _08115848
- .4byte _08115884
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _08115884
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _08115884
-_0811582C:
- ldr r0, _08115844 @ =gBGTilemapBuffers + 0x1000
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- b _08115918
- .align 2, 0
-_08115844: .4byte gBGTilemapBuffers + 0x1000
-_08115848:
- lsls r0, r4, 1
- adds r0, r4
- adds r0, 0xE
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0811587C @ =gBGTilemapBuffers + 0x1000
- movs r0, 0x10
- str r0, [sp]
- movs r4, 0xD
- str r4, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _08115880 @ =gSharedMem + 0x18A32
- movs r0, 0x3
- str r0, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r2, r7, 0
- movs r3, 0x7
- bl sub_8124E2C
- b _08115918
- .align 2, 0
-_0811587C: .4byte gBGTilemapBuffers + 0x1000
-_08115880: .4byte gSharedMem + 0x18A32
-_08115884:
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xA
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r5, _081158C0 @ =gBGTilemapBuffers + 0x1000
- movs r4, 0x10
- str r4, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _081158C4 @ =gSharedMem + 0x18A80
- str r4, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0xE
- adds r3, r6, 0
- bl sub_8124E2C
- b _08115918
- .align 2, 0
-_081158C0: .4byte gBGTilemapBuffers + 0x1000
-_081158C4: .4byte gSharedMem + 0x18A80
-_081158C8:
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xE
- lsls r1, 24
- lsrs r7, r1, 24
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x7
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r4, _08115920 @ =gBGTilemapBuffers + 0x1000
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _08115924 @ =gSharedMem + 0x18A20
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_8124E2C
-_08115918:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115920: .4byte gBGTilemapBuffers + 0x1000
-_08115924: .4byte gSharedMem + 0x18A20
- thumb_func_end sub_81157D0
-
- thumb_func_start sub_8115928
-sub_8115928: @ 8115928
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _0811594C
- ldr r1, _08115948 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- bl sub_811829C
- b _08115960
- .align 2, 0
-_08115948: .4byte gTasks
-_0811594C:
- ldr r0, _08115974 @ =gSharedMem + 0x19000
- ldrb r1, [r0, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r0, 0x1B
- adds r1, r0
- ldrb r0, [r1]
- bl sub_811829C
- lsls r4, r5, 2
-_08115960:
- ldr r0, _08115978 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x10]
- bl sub_81157D0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08115974: .4byte gSharedMem + 0x19000
-_08115978: .4byte gTasks
- thumb_func_end sub_8115928
-
- thumb_func_start sub_811597C
-sub_811597C: @ 811597C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _081159B0 @ =gSharedMem + 0x19000
- movs r6, 0
- movs r1, 0x1
- strh r1, [r5, 0x28]
- ldr r1, _081159B4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x10]
- bl sub_81157D0
- adds r1, r5, 0
- adds r1, 0x23
- movs r0, 0x2
- strb r0, [r1]
- adds r5, 0x21
- strb r6, [r5]
- ldr r0, _081159B8 @ =sub_8115E14
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081159B0: .4byte gSharedMem + 0x19000
-_081159B4: .4byte gTasks
-_081159B8: .4byte sub_8115E14
- thumb_func_end sub_811597C
-
- thumb_func_start sub_81159BC
-sub_81159BC: @ 81159BC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _08115A10 @ =gSharedMem + 0x19000
- ldr r1, [r3, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08115A1C
- movs r2, 0xB
- ldr r5, _08115A14 @ =gUnknown_083F8C00
- adds r0, r5, 0
- adds r0, 0xE4
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _08115A18 @ =gTasks
- mov r12, r0
- lsls r7, r6, 2
- cmp r1, 0
- beq _08115A5A
- adds r4, r3, 0
- adds r3, r5, 0
- adds r3, 0x8
-_081159EA:
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- asrs r1, r0, 16
- cmp r1, 0xD
- bgt _08115A5A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081159EA
- b _08115A5A
- .align 2, 0
-_08115A10: .4byte gSharedMem + 0x19000
-_08115A14: .4byte gUnknown_083F8C00
-_08115A18: .4byte gTasks
-_08115A1C:
- movs r2, 0x6
- ldr r5, _08115A88 @ =gUnknown_083F8C00
- adds r0, r5, 0
- adds r0, 0x80
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _08115A8C @ =gTasks
- mov r12, r0
- lsls r7, r6, 2
- cmp r1, 0
- beq _08115A5A
- adds r4, r3, 0
- adds r3, r5, 0
- adds r3, 0x8
-_08115A38:
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- asrs r1, r0, 16
- cmp r1, 0x9
- bgt _08115A5A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08115A38
-_08115A5A:
- adds r4, r7, r6
- lsls r4, 3
- add r4, r12
- movs r5, 0
- strh r2, [r4, 0x10]
- adds r0, r6, 0
- bl sub_8116CAC
- ldrb r0, [r4, 0x10]
- bl sub_8117158
- ldrb r0, [r4, 0x10]
- bl sub_811829C
- ldrb r0, [r4, 0x10]
- bl sub_8116EF8
- strh r5, [r4, 0xA]
- ldr r0, _08115A90 @ =sub_811597C
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115A88: .4byte gUnknown_083F8C00
-_08115A8C: .4byte gTasks
-_08115A90: .4byte sub_811597C
- thumb_func_end sub_81159BC
-
- thumb_func_start sub_8115A94
-sub_8115A94: @ 8115A94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r6, 0
- movs r7, 0
- ldr r1, _08115ADC @ =gUnknown_083F8ECA
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrb r0, [r4]
- mov r8, r0
- cmp r5, 0
- blt _08115B08
- cmp r5, 0x1
- bgt _08115AE0
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __modsi3
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0xF0
- lsls r2, 20
- adds r1, r0, r2
- lsrs r7, r1, 24
- cmp r0, 0
- bne _08115B08
- movs r6, 0x5
- b _08115B08
- .align 2, 0
-_08115ADC: .4byte gUnknown_083F8ECA
-_08115AE0:
- cmp r5, 0x3
- bgt _08115B08
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r0, r1, r2
- lsrs r7, r0, 24
- cmp r1, 0
- bne _08115B08
- movs r6, 0x1
-_08115B08:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r4]
- lsls r1, r6, 24
- asrs r3, r1, 24
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 24
- cmp r0, r3
- bge _08115B2A
- asrs r0, r2, 24
- strh r0, [r4]
-_08115B2A:
- movs r0, 0
- ldrsh r1, [r4, r0]
- asrs r0, r2, 24
- cmp r1, r0
- ble _08115B36
- strh r3, [r4]
-_08115B36:
- mov r1, r8
- lsls r0, r1, 24
- movs r2, 0
- ldrsh r1, [r4, r2]
- asrs r0, 24
- cmp r1, r0
- bne _08115B48
- movs r0, 0
- b _08115B4A
-_08115B48:
- movs r0, 0x1
-_08115B4A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8115A94
-
- thumb_func_start sub_8115B58
-sub_8115B58: @ 8115B58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r4, _08115D30 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08115B94
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115B94
- b _08115D20
-_08115B94:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08115BBA
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x1
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115BBA
- b _08115D20
-_08115BBA:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08115BE0
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x2
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115BE0
- b _08115D20
-_08115BE0:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08115C06
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x3
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115C06
- b _08115D20
-_08115C06:
- cmp r5, 0
- bne _08115C0C
- b _08115D20
-_08115C0C:
- ldr r0, _08115D38 @ =gTasks
- lsls r6, r7, 2
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- bl sub_8117158
- adds r0, r7, 0
- movs r1, 0
- bl sub_8115928
- mov r1, r8
- strh r1, [r4, 0xA]
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08115D3C @ =gSharedMem + 0x190B8
- ldr r1, _08115D40 @ =0x0000ffff
- adds r0, r5, 0
- bl sub_8124D3C
- adds r3, r5, 0
- adds r3, 0xB8
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- subs r3, 0xC
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- adds r2, r5, 0
- adds r2, 0xA0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldrb r0, [r4, 0x10]
- bl sub_8116EF8
- movs r4, 0
- mov r12, r6
- ldr r6, _08115D44 @ =gSprites
- movs r2, 0x7C
- negs r2, r2
- adds r2, r5
- mov r10, r2
- movs r0, 0x8
- adds r0, r6
- mov r8, r0
- ldr r1, _08115D48 @ =0xfffffc00
- mov r9, r1
- ldr r2, _08115D4C @ =0x000003ff
- adds r5, r2, 0
-_08115C7C:
- adds r0, r4, 0
- adds r0, 0x29
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r6
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ands r1, r5
- ldrh r2, [r3, 0x4]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08115C7C
- ldr r0, _08115D38 @ =gTasks
- mov r2, r12
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0x10]
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bhi _08115D20
- ldr r2, _08115D50 @ =gUnknown_083F8C00
- movs r0, 0x10
- ldrsh r1, [r1, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r2, _08115D54 @ =gSharedMem + 0x19000
- ldr r1, [r2, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08115D20
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r2, 0
- add r0, r8
- adds r0, 0x65
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08115D44 @ =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x40
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _08115D4C @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, _08115D48 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
-_08115D20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115D30: .4byte gMain
-_08115D34: .4byte gTasks + 0x8
-_08115D38: .4byte gTasks
-_08115D3C: .4byte gSharedMem + 0x190B8
-_08115D40: .4byte 0x0000ffff
-_08115D44: .4byte gSprites
-_08115D48: .4byte 0xfffffc00
-_08115D4C: .4byte 0x000003ff
-_08115D50: .4byte gUnknown_083F8C00
-_08115D54: .4byte gSharedMem + 0x19000
- thumb_func_end sub_8115B58
-
- thumb_func_start sub_8115D58
-sub_8115D58: @ 8115D58
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08115D70 @ =gSharedMem + 0x19000
- movs r0, 0xFF
- strh r0, [r1, 0x28]
- ldrb r0, [r1, 0x19]
- cmp r0, 0x1
- bne _08115D74
- adds r2, r1, 0
- adds r2, 0x23
- b _08115D7A
- .align 2, 0
-_08115D70: .4byte gSharedMem + 0x19000
-_08115D74:
- adds r2, r1, 0
- adds r2, 0x23
- movs r0, 0
-_08115D7A:
- strb r0, [r2]
- adds r1, 0x21
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08115D98 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0xA]
- ldr r1, _08115D9C @ =sub_8115ECC
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08115D98: .4byte gTasks
-_08115D9C: .4byte sub_8115ECC
- thumb_func_end sub_8115D58
-
- thumb_func_start sub_8115DA0
-sub_8115DA0: @ 8115DA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08115E08 @ =gSharedMem + 0x19000
- ldrb r2, [r4, 0x1A]
- lsls r2, 28
- lsrs r2, 28
- adds r5, r4, 0
- adds r5, 0x1B
- adds r2, r5
- ldr r3, _08115E0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r3
- ldrh r0, [r6, 0x10]
- strb r0, [r2]
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8117380
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xC]
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r5
- ldrb r0, [r0]
- bl sub_811829C
- ldrb r1, [r4, 0x19]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- strh r0, [r6, 0x22]
- lsls r0, 16
- cmp r0, 0
- bge _08115DF6
- movs r0, 0
- strh r0, [r6, 0x22]
-_08115DF6:
- ldrh r0, [r6, 0x22]
- bl sub_81180F4
- ldr r0, _08115E10 @ =sub_8115D58
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08115E08: .4byte gSharedMem + 0x19000
-_08115E0C: .4byte gTasks
-_08115E10: .4byte sub_8115D58
- thumb_func_end sub_8115DA0
-
- thumb_func_start sub_8115E14
-sub_8115E14: @ 8115E14
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8115B58
- ldr r1, _08115E3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- beq _08115E4A
- cmp r0, 0x1E
- bgt _08115E40
- cmp r0, 0
- beq _08115E46
- b _08115E5E
- .align 2, 0
-_08115E3C: .4byte gTasks
-_08115E40:
- cmp r0, 0x3B
- beq _08115E58
- b _08115E5E
-_08115E46:
- ldrb r0, [r4, 0x10]
- b _08115E4C
-_08115E4A:
- movs r0, 0
-_08115E4C:
- bl sub_81157D0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08115E6E
-_08115E58:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08115E6E
-_08115E5E:
- ldr r0, _08115EA8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08115E6E:
- ldr r0, _08115EAC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08115EC2
- ldr r3, _08115EB0 @ =gSharedMem + 0x19000
- ldr r2, _08115EB4 @ =gUnknown_083F8C00
- ldr r1, _08115EA8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08115EB8
- movs r0, 0x16
- bl PlaySE
- b _08115EC2
- .align 2, 0
-_08115EA8: .4byte gTasks
-_08115EAC: .4byte gMain
-_08115EB0: .4byte gSharedMem + 0x19000
-_08115EB4: .4byte gUnknown_083F8C00
-_08115EB8:
- movs r0, 0x5F
- bl m4aSongNumStart
- ldr r0, _08115EC8 @ =sub_8115DA0
- str r0, [r4]
-_08115EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08115EC8: .4byte sub_8115DA0
- thumb_func_end sub_8115E14
-
- thumb_func_start sub_8115ECC
-sub_8115ECC: @ 8115ECC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115F20 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _08115F34
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08115EF8
- ldr r1, _08115F24 @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
-_08115EF8:
- ldr r1, _08115F28 @ =gSharedMem + 0x19000
- ldrh r0, [r1, 0x26]
- adds r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08115F4C
- ldr r2, _08115F2C @ =gSprites
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08115F30 @ =SpriteCallbackDummy
- str r1, [r0]
- b _08115F4C
- .align 2, 0
-_08115F20: .4byte gTasks
-_08115F24: .4byte gSpriteCoordOffsetX
-_08115F28: .4byte gSharedMem + 0x19000
-_08115F2C: .4byte gSprites
-_08115F30: .4byte SpriteCallbackDummy
-_08115F34:
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117AA8
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117C60
- ldr r0, _08115F54 @ =sub_8116100
- str r0, [r4]
- movs r0, 0
- strh r0, [r4, 0xA]
-_08115F4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115F54: .4byte sub_8116100
- thumb_func_end sub_8115ECC
-
- thumb_func_start sub_8115F58
-sub_8115F58: @ 8115F58
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08115F74 @ =gSharedMem + 0x19000
- ldrb r2, [r0, 0x2]
- adds r4, r0, 0
- cmp r2, 0x2
- bgt _08115F78
- cmp r2, 0x1
- bge _08115F7E
- b _08116048
- .align 2, 0
-_08115F74: .4byte gSharedMem + 0x19000
-_08115F78:
- cmp r2, 0x3
- beq _08115FE0
- b _08116048
-_08115F7E:
- ldr r0, _08115FA8 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _08115FB0
- cmp r3, 0xB
- bls _08115F98
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811605E
-_08115F98:
- ldr r0, _08115FAC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08115FA8: .4byte gLocalTime
-_08115FAC: .4byte gUnknown_083F8DF4
-_08115FB0:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08115FCC
- ldr r0, _08115FC8 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08115FC8: .4byte gUnknown_083F8DF4
-_08115FCC:
- ldr r0, _08115FDC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_08115FDC: .4byte gUnknown_083F8DF4
-_08115FE0:
- ldr r0, _0811600C @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bhi _08116014
- cmp r3, 0x5
- bls _08115FFA
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811605E
-_08115FFA:
- ldr r0, _08116010 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_0811600C: .4byte gLocalTime
-_08116010: .4byte gUnknown_083F8DF4
-_08116014:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08116034
- cmp r3, 0x6
- bls _08116034
- ldr r0, _08116030 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 2
- b _081160F4
- .align 2, 0
-_08116030: .4byte gUnknown_083F8DF4
-_08116034:
- ldr r0, _08116044 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116044: .4byte gUnknown_083F8DF4
-_08116048:
- ldr r0, _08116064 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0811607C
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08116068
-_0811605E:
- movs r0, 0x1
- b _081160F4
- .align 2, 0
-_08116064: .4byte gLocalTime
-_08116068:
- ldr r0, _08116078 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116078: .4byte gUnknown_083F8DF4
-_0811607C:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081160B0
- cmp r3, 0xC
- bls _0811609C
- ldr r0, _08116098 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116098: .4byte gUnknown_083F8DF4
-_0811609C:
- ldr r0, _081160AC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_081160AC: .4byte gUnknown_083F8DF4
-_081160B0:
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _081160E4
- cmp r3, 0xC
- bls _081160D0
- ldr r0, _081160CC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_081160CC: .4byte gUnknown_083F8DF4
-_081160D0:
- ldr r0, _081160E0 @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _081160F4
- .align 2, 0
-_081160E0: .4byte gUnknown_083F8DF4
-_081160E4:
- ldr r0, _081160FC @ =gUnknown_083F8DF4
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 25
- lsrs r0, 24
-_081160F4:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081160FC: .4byte gUnknown_083F8DF4
- thumb_func_end sub_8115F58
-
- thumb_func_start sub_8116100
-sub_8116100: @ 8116100
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r1, _08116188 @ =gUnknown_083F8ECE
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _0811618C @ =gSharedMem + 0x19000
- ldr r1, _08116190 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r2, [r0, 0x14]
- adds r1, r3, 0
- adds r1, 0x7C
- strb r2, [r1]
- adds r1, 0x3
- strb r4, [r1]
- subs r1, 0x1
- strb r4, [r1]
- subs r1, 0x1
- strb r4, [r1]
- ldrh r0, [r0, 0x18]
- adds r1, r7, 0
- bl sub_8115F58
- adds r4, r0, 0
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r7, 0
- bl __modsi3
- lsrs r4, 25
- subs r0, r4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08116194 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- movs r5, 0x1
- cmp r0, 0xC
- bgt _08116180
- movs r5, 0
-_08116180:
- cmp r6, 0x4F
- bhi _08116198
- lsls r0, r5, 25
- b _081161A2
- .align 2, 0
-_08116188: .4byte gUnknown_083F8ECE
-_0811618C: .4byte gSharedMem + 0x19000
-_08116190: .4byte gTasks
-_08116194: .4byte gLocalTime
-_08116198:
- lsls r1, r5, 24
- asrs r1, 24
- movs r0, 0x1
- subs r0, r1
- lsls r0, 25
-_081161A2:
- lsrs r5, r0, 24
- ldr r6, _081162D8 @ =gSharedMem + 0x19000
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- mov r10, r0
- lsrs r0, 25
- ldr r1, _081162DC @ =gUnknown_083F8DF4
- adds r0, r1
- lsls r4, 24
- asrs r4, 24
- ldrh r0, [r0, 0x1A]
- adds r4, r0
- adds r0, r6, 0
- adds r0, 0x80
- strh r4, [r0]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _081161D4
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
-_081161D4:
- ldr r1, _081162E4 @ =0x40a00000
- bl __divsf3
- bl __fixunssfsi
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- adds r0, 0x82
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- movs r0, 0x1
- ands r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _0811621A
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
-_0811621A:
- ldr r2, _081162E8 @ =gSharedMem + 0x19088
- str r0, [r2]
- adds r7, r6, 0
- adds r7, 0x8C
- mov r1, r10
- lsrs r0, r1, 25
- ldr r2, _081162DC @ =gUnknown_083F8DF4
- adds r0, r2
- movs r1, 0x18
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08116242
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
- adds r5, r0, 0
-_08116242:
- str r5, [r7]
- adds r7, r6, 0
- adds r7, 0x90
- ldr r1, _081162EC @ =0x3f000000
- adds r0, r5, 0
- bl __mulsf3
- adds r1, r5, 0
- bl __subsf3
- adds r5, r0, 0
- mov r2, r8
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _08116272
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08116272:
- adds r0, r5, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x94
- ldr r0, _081162F0 @ =0x42880000
- str r0, [r1]
- adds r1, 0x8
- ldr r0, _081162F4 @ =0x00000000
- str r0, [r1]
- adds r5, r6, 0
- adds r5, 0x98
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081162A2
- ldr r1, _081162E0 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081162A2:
- ldr r0, _081162F8 @ =0x41000000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r5]
- adds r1, r6, 0
- adds r1, 0xA0
- ldr r0, _081162FC @ =0x42100000
- str r0, [r1]
- ldr r1, _08116300 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _08116304 @ =sub_8116308
- str r1, [r0]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081162D8: .4byte gSharedMem + 0x19000
-_081162DC: .4byte gUnknown_083F8DF4
-_081162E0: .4byte 0x47800000
-_081162E4: .4byte 0x40a00000
-_081162E8: .4byte gSharedMem + 0x19088
-_081162EC: .4byte 0x3f000000
-_081162F0: .4byte 0x42880000
-_081162F4: .4byte 0x00000000
-_081162F8: .4byte 0x41000000
-_081162FC: .4byte 0x42100000
-_08116300: .4byte gTasks
-_08116304: .4byte sub_8116308
- thumb_func_end sub_8116100
-
- thumb_func_start sub_8116308
-sub_8116308: @ 8116308
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08116368 @ =gSharedMem + 0x19000
- ldrb r1, [r3, 0x3]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x3]
- adds r2, r3, 0
- adds r2, 0x7C
- adds r1, r3, 0
- adds r1, 0x3C
- ldrb r2, [r2]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _0811636C @ =gSprites
- adds r1, r2
- str r1, [r3, 0x38]
- ldr r2, _08116370 @ =sub_81191F4
- str r2, [r1, 0x1C]
- ldr r1, _08116374 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r1, [r4, 0x14]
- adds r1, 0x1
- strh r1, [r4, 0x14]
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r0, 0x6
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81182F8
- movs r0, 0x5C
- bl m4aSongNumStart
- ldr r0, _08116378 @ =sub_811637C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08116368: .4byte gSharedMem + 0x19000
-_0811636C: .4byte gSprites
-_08116370: .4byte sub_81191F4
-_08116374: .4byte gTasks
-_08116378: .4byte sub_811637C
- thumb_func_end sub_8116308
-
- thumb_func_start sub_811637C
-sub_811637C: @ 811637C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _081163B0 @ =gSharedMem + 0x19000
- adds r0, r4, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _08116464
- ldrb r1, [r4, 0x3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081163B4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08116464
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x3]
- b _08116464
- .align 2, 0
-_081163B0: .4byte gSharedMem + 0x19000
-_081163B4:
- ldr r2, _08116428 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _08116400
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8116D54
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r2, r4, 0
- adds r2, 0x1B
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8116E5C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x12]
- cmp r0, 0x1
- bne _08116400
- adds r0, r4, 0
- adds r0, 0xB8
- movs r1, 0x80
- lsls r1, 5
- bl sub_8124CE8
-_08116400:
- ldr r0, _08116428 @ =gTasks
- adds r1, r7, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bgt _08116430
- ldr r0, _0811642C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08116420
- movs r0, 0x3C
- strh r0, [r4, 0xA]
-_08116420:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08116464
- .align 2, 0
-_08116428: .4byte gTasks
-_0811642C: .4byte gMain
-_08116430:
- ldr r1, _0811646C @ =gSharedMem + 0x19000
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8117158
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117AA8
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117C60
- movs r0, 0x20
- strh r0, [r4, 0xA]
- ldr r0, _08116470 @ =sub_8116474
- str r0, [r4]
-_08116464:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811646C: .4byte gSharedMem + 0x19000
-_08116470: .4byte sub_8116474
- thumb_func_end sub_811637C
-
- thumb_func_start sub_8116474
-sub_8116474: @ 8116474
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081164C8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _081164DC
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081164A0
- ldr r1, _081164CC @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x2
- strh r0, [r1]
-_081164A0:
- ldr r1, _081164D0 @ =gSharedMem + 0x19000
- ldrh r0, [r1, 0x26]
- subs r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08116504
- ldr r2, _081164D4 @ =gSprites
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _081164D8 @ =sub_81184CC
- str r1, [r0]
- b _08116504
- .align 2, 0
-_081164C8: .4byte gTasks
-_081164CC: .4byte gSpriteCoordOffsetX
-_081164D0: .4byte gSharedMem + 0x19000
-_081164D4: .4byte gSprites
-_081164D8: .4byte sub_81184CC
-_081164DC:
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8117D68
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081164F2
- movs r0, 0x79
- b _081164F4
-_081164F2:
- movs r0, 0x3D
-_081164F4:
- strh r0, [r4, 0xA]
- ldr r0, _0811650C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08116510 @ =sub_8116514
- str r0, [r1]
-_08116504:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811650C: .4byte gTasks
-_08116510: .4byte sub_8116514
- thumb_func_end sub_8116474
-
- thumb_func_start sub_8116514
-sub_8116514: @ 8116514
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08116564 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08116584
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _0811653E
- adds r0, 0xF
-_0811653E:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08116568
- cmp r0, 0x8
- bne _08116590
- movs r0, 0
- movs r1, 0xFF
- bl sub_8117AA8
- movs r0, 0
- movs r1, 0xFF
- bl sub_8117C60
- b _08116590
- .align 2, 0
-_08116564: .4byte gTasks
-_08116568:
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117AA8
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117C60
- b _08116590
-_08116584:
- ldr r1, _08116598 @ =sub_8116638
- adds r0, r2, 0
- movs r2, 0x1E
- movs r3, 0
- bl sub_8116C34
-_08116590:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08116598: .4byte sub_8116638
- thumb_func_end sub_8116514
-
- thumb_func_start sub_811659C
-sub_811659C: @ 811659C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081165F4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08116600
- cmp r0, 0
- blt _08116600
- cmp r0, 0x2
- bgt _08116600
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08116624
- movs r0, 0x1D
- bl GetGameStat
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bcs _081165E4
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- movs r0, 0x1D
- bl SetGameStat
-_081165E4:
- ldr r1, _081165F8 @ =sub_811677C
- ldr r2, _081165FC @ =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
- b _08116624
- .align 2, 0
-_081165F4: .4byte gTasks
-_081165F8: .4byte sub_811677C
-_081165FC: .4byte 0x0000ffff
-_08116600:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08116624
- ldr r1, _0811662C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1E]
- ldr r1, _08116630 @ =sub_81167F4
- ldr r2, _08116634 @ =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
-_08116624:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811662C: .4byte gTasks
-_08116630: .4byte sub_81167F4
-_08116634: .4byte 0x0000ffff
- thumb_func_end sub_811659C
-
- thumb_func_start sub_8116638
-sub_8116638: @ 8116638
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08116678 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- cmp r1, 0
- beq _081166A8
- cmp r1, 0
- blt _081166A8
- cmp r1, 0x2
- bgt _081166A8
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0xC
- bne _08116684
- ldr r0, _0811667C @ =0x00000185
- bl PlayFanfare
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116680 @ =gUnknown_081C41A5
- b _0811669A
- .align 2, 0
-_08116678: .4byte gTasks
-_0811667C: .4byte 0x00000185
-_08116680: .4byte gUnknown_081C41A5
-_08116684:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081166A4 @ =gUnknown_081C4199
-_0811669A:
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- b _081166C4
- .align 2, 0
-_081166A4: .4byte gUnknown_081C4199
-_081166A8:
- movs r0, 0x20
- bl m4aSongNumStart
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081166DC @ =gUnknown_081C41AE
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
-_081166C4:
- ldr r1, _081166E0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldr r1, _081166E4 @ =sub_811659C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081166DC: .4byte gUnknown_081C41AE
-_081166E0: .4byte gTasks
-_081166E4: .4byte sub_811659C
- thumb_func_end sub_8116638
-
- thumb_func_start sub_81166E8
-sub_81166E8: @ 81166E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0811670C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x16
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _08116710
- cmp r5, 0x3
- beq _08116740
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _08116748
- .align 2, 0
-_0811670C: .4byte gTasks
-_08116710:
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x15
- bl m4aSongNumStart
- ldrh r0, [r4, 0x22]
- bl sub_81180F4
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- ldr r0, _08116730 @ =0x0000270e
- cmp r1, r0
- ble _08116734
- strh r5, [r4, 0xA]
- b _0811674A
- .align 2, 0
-_08116730: .4byte 0x0000270e
-_08116734:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _08116748
-_08116740:
- movs r0, 0x15
- bl m4aSongNumStop
- movs r0, 0
-_08116748:
- strh r0, [r4, 0x16]
-_0811674A:
- ldr r0, _08116770 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08116768
- ldr r1, _08116774 @ =sub_81167F4
- ldr r2, _08116778 @ =0x0000ffff
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8116C34
-_08116768:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116770: .4byte gTasks
-_08116774: .4byte sub_81167F4
-_08116778: .4byte 0x0000ffff
- thumb_func_end sub_81166E8
-
- thumb_func_start sub_811677C
-sub_811677C: @ 811677C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081167DC @ =gStringVar1
- ldr r6, _081167E0 @ =gSharedMem + 0x19000
- ldrb r2, [r6, 0x19]
- ldr r1, _081167E4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r3, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _081167E8 @ =gStringVar4
- ldr r1, _081167EC @ =gUnknown_081C41BD
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldrb r1, [r6, 0x19]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- muls r0, r1
- movs r1, 0
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x16]
- ldr r0, _081167F0 @ =sub_81166E8
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081167DC: .4byte gStringVar1
-_081167E0: .4byte gSharedMem + 0x19000
-_081167E4: .4byte gTasks
-_081167E8: .4byte gStringVar4
-_081167EC: .4byte gUnknown_081C41BD
-_081167F0: .4byte sub_81166E8
- thumb_func_end sub_811677C
-
- thumb_func_start sub_81167F4
-sub_81167F4: @ 81167F4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08116868 @ =gSharedMem + 0x190B8
- ldr r1, _0811686C @ =0x0000ffff
- adds r0, r4, 0
- bl sub_8124D3C
- adds r3, r4, 0
- adds r3, 0xB8
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- subs r3, 0xC
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0xA0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldr r6, _08116870 @ =gSprites
- ldr r2, _08116874 @ =gUnknown_083F8C00
- ldr r0, _08116878 @ =gTasks
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r3, r0
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r0
- subs r4, 0x75
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0811687C @ =sub_8116880
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116868: .4byte gSharedMem + 0x190B8
-_0811686C: .4byte 0x0000ffff
-_08116870: .4byte gSprites
-_08116874: .4byte gUnknown_083F8C00
-_08116878: .4byte gTasks
-_0811687C: .4byte sub_8116880
- thumb_func_end sub_81167F4
-
- thumb_func_start sub_8116880
-sub_8116880: @ 8116880
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08116954 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x10]
- ldr r4, _08116958 @ =gSharedMem + 0x19000
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r4, 0
- adds r1, 0x1B
- adds r0, r1
- strb r2, [r0]
- movs r0, 0
- bl sub_8117158
- ldr r3, _0811695C @ =gSprites
- adds r0, r4, 0
- adds r0, 0x6C
- ldrb r1, [r0]
- 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]
- adds r7, r3, 0
- movs r0, 0x3C
- adds r0, r4
- mov r10, r0
- movs r1, 0x8
- adds r1, r7
- mov r8, r1
- ldr r0, _08116960 @ =0xfffffc00
- mov r9, r0
- ldr r1, _08116964 @ =0x000003ff
- mov r12, r1
-_081168E4:
- adds r0, r5, 0
- adds r0, 0x29
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r7
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- mov r0, r12
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081168E4
- ldr r0, _08116954 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- blt _081169BC
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bne _08116970
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116968 @ =gUnknown_081C41F1
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0811696C @ =dp01t_12_3_battle_menu
- b _08116992
- .align 2, 0
-_08116954: .4byte gTasks
-_08116958: .4byte gSharedMem + 0x19000
-_0811695C: .4byte gSprites
-_08116960: .4byte 0xfffffc00
-_08116964: .4byte 0x000003ff
-_08116968: .4byte gUnknown_081C41F1
-_0811696C: .4byte dp01t_12_3_battle_menu
-_08116970:
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, _081169A0 @ =0x0000270f
- cmp r1, r0
- bne _081169B0
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081169A4 @ =gUnknown_081C4231
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081169A8 @ =sub_8115734
-_08116992:
- ldr r2, _081169AC @ =0x0000ffff
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8116C34
- b _081169DE
- .align 2, 0
-_081169A0: .4byte 0x0000270f
-_081169A4: .4byte gUnknown_081C4231
-_081169A8: .4byte sub_8115734
-_081169AC: .4byte 0x0000ffff
-_081169B0:
- ldr r0, _081169B8 @ =sub_8115734
- str r0, [r2]
- b _081169DE
- .align 2, 0
-_081169B8: .4byte sub_8115734
-_081169BC:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081169EC @ =gUnknown_081C41D2
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081169F0 @ =sub_81157AC
- adds r0, r6, 0
- movs r2, 0x3C
- movs r3, 0x3
- bl sub_8116C34
-_081169DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081169EC: .4byte gUnknown_081C41D2
-_081169F0: .4byte sub_81157AC
- thumb_func_end sub_8116880
-
- thumb_func_start dp01t_12_3_battle_menu
-dp01t_12_3_battle_menu: @ 81169F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r1, _08116A84 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x14]
- adds r0, r5, 0
- bl sub_8116CAC
- bl sub_8116CF8
- bl sub_81185E8
- movs r0, 0
- bl sub_8117158
- movs r0, 0x6
- bl sub_81182F8
- ldr r7, _08116A88 @ =gSprites
- ldr r3, _08116A8C @ =gSharedMem + 0x1903C
- movs r6, 0x5
- negs r6, r6
-_08116A2A:
- adds r0, r4, 0x7
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08116A2A
- ldr r1, _08116A84 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, _08116A90 @ =0x0000270f
- cmp r1, r0
- bne _08116AA0
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116A94 @ =gUnknown_081C4231
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08116A98 @ =sub_8115734
- ldr r2, _08116A9C @ =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
- b _08116AA4
- .align 2, 0
-_08116A84: .4byte gTasks
-_08116A88: .4byte gSprites
-_08116A8C: .4byte gSharedMem + 0x1903C
-_08116A90: .4byte 0x0000270f
-_08116A94: .4byte gUnknown_081C4231
-_08116A98: .4byte sub_8115734
-_08116A9C: .4byte 0x0000ffff
-_08116AA0:
- ldr r0, _08116AAC @ =sub_8115734
- str r0, [r2]
-_08116AA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116AAC: .4byte sub_8115734
- thumb_func_end dp01t_12_3_battle_menu
-
- thumb_func_start sub_8116AB0
-sub_8116AB0: @ 8116AB0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08116AF0 @ =gSharedMem + 0x190B8
- ldr r1, _08116AF4 @ =0x0000ffff
- adds r0, r4, 0
- bl sub_8124D3C
- adds r0, r4, 0
- bl sub_8124918
- ldr r1, _08116AF8 @ =gSaveBlock1
- ldr r2, _08116AFC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x22]
- ldr r2, _08116B00 @ =0x00000494
- adds r1, r2
- strh r0, [r1]
- subs r4, 0xB8
- lsls r0, 16
- lsrs r0, 16
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- bcs _08116B08
- ldr r1, _08116B04 @ =gSpecialVar_0x8004
- movs r0, 0x1
- b _08116B0C
- .align 2, 0
-_08116AF0: .4byte gSharedMem + 0x190B8
-_08116AF4: .4byte 0x0000ffff
-_08116AF8: .4byte gSaveBlock1
-_08116AFC: .4byte gTasks
-_08116B00: .4byte 0x00000494
-_08116B04: .4byte gSpecialVar_0x8004
-_08116B08:
- ldr r1, _08116B34 @ =gSpecialVar_0x8004
- movs r0, 0
-_08116B0C:
- strh r0, [r1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, _08116B38 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08116B3C @ =sub_8116B40
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116B34: .4byte gSpecialVar_0x8004
-_08116B38: .4byte gTasks
-_08116B3C: .4byte sub_8116B40
- thumb_func_end sub_8116AB0
-
- thumb_func_start sub_8116B40
-sub_8116B40: @ 8116B40
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08116B9E
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08116BA4 @ =gSharedMem + 0x19000
- movs r2, 0xBE
- lsls r2, 1
- movs r1, 0
- bl memset
- ldr r1, _08116BA8 @ =gSpriteCoordOffsetX
- ldr r0, _08116BAC @ =gSpriteCoordOffsetY
- strh r4, [r0]
- strh r4, [r1]
- bl sub_80F9368
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl sub_80F9020
- ldr r0, _08116BB0 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _08116BB4 @ =gFieldCallback
- ldr r0, _08116BB8 @ =sub_8080990
- str r0, [r1]
- ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08116B9E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116BA4: .4byte gSharedMem + 0x19000
-_08116BA8: .4byte gSpriteCoordOffsetX
-_08116BAC: .4byte gSpriteCoordOffsetY
-_08116BB0: .4byte REG_BLDCNT
-_08116BB4: .4byte gFieldCallback
-_08116BB8: .4byte sub_8080990
-_08116BBC: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8116B40
-
- thumb_func_start sub_8116BC0
-sub_8116BC0: @ 8116BC0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08116C24 @ =gSharedMem + 0x19000
- adds r7, r0, 0
- adds r7, 0xA8
- ldrh r1, [r7]
- adds r6, r0, 0
- cmp r1, 0
- beq _08116BE4
- ldr r0, _08116C28 @ =gMain
- adds r2, r6, 0
- adds r2, 0xAA
- ldrh r1, [r0, 0x2E]
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08116C0E
-_08116BE4:
- ldr r1, _08116C2C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- adds r5, r6, 0
- adds r5, 0xAC
- ldr r1, [r5]
- str r1, [r0]
- adds r4, r6, 0
- adds r4, 0xAA
- ldrh r0, [r4]
- cmp r0, 0
- beq _08116C06
- movs r0, 0x5
- bl PlaySE
-_08116C06:
- movs r0, 0
- str r0, [r5]
- strh r0, [r4]
- strh r0, [r7]
-_08116C0E:
- adds r2, r6, 0
- adds r2, 0xA8
- ldrh r1, [r2]
- ldr r0, _08116C30 @ =0x0000ffff
- cmp r1, r0
- beq _08116C1E
- subs r0, r1, 0x1
- strh r0, [r2]
-_08116C1E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116C24: .4byte gSharedMem + 0x19000
-_08116C28: .4byte gMain
-_08116C2C: .4byte gTasks
-_08116C30: .4byte 0x0000ffff
- thumb_func_end sub_8116BC0
-
- thumb_func_start sub_8116C34
-sub_8116C34: @ 8116C34
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _08116C84 @ =gSharedMem + 0x19000
- mov r12, r0
- mov r2, r12
- adds r2, 0xB4
- ldr r1, _08116C88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- mov r2, r12
- adds r7, r1, 0
- cmp r5, 0
- bne _08116C64
- adds r5, r0, 0
-_08116C64:
- adds r0, r2, 0
- adds r0, 0xAC
- str r5, [r0]
- subs r0, 0x4
- strh r4, [r0]
- ldr r0, _08116C8C @ =0x0000ffff
- cmp r4, r0
- bne _08116C90
- cmp r3, 0
- bne _08116C90
- adds r1, r2, 0
- adds r1, 0xAA
- ldrh r0, [r1]
- orrs r4, r0
- strh r4, [r1]
- b _08116C96
- .align 2, 0
-_08116C84: .4byte gSharedMem + 0x19000
-_08116C88: .4byte gTasks
-_08116C8C: .4byte 0x0000ffff
-_08116C90:
- adds r0, r2, 0
- adds r0, 0xAA
- strh r3, [r0]
-_08116C96:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r7
- ldr r1, _08116CA8 @ =sub_8116BC0
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116CA8: .4byte sub_8116BC0
- thumb_func_end sub_8116C34
-
- thumb_func_start sub_8116CAC
-sub_8116CAC: @ 8116CAC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r0, _08116CF0 @ =gSharedMem + 0x19000
- strb r2, [r0]
- movs r1, 0
- strb r1, [r0, 0x3]
- adds r3, r0, 0
- ldr r6, _08116CF4 @ =gTasks
- adds r4, r3, 0
- adds r4, 0x1B
-_08116CC4:
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _08116CC4
- ldrb r1, [r3, 0x1A]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r3, 0x1A]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116CF0: .4byte gSharedMem + 0x19000
-_08116CF4: .4byte gTasks
- thumb_func_end sub_8116CAC
-
- thumb_func_start sub_8116CF8
-sub_8116CF8: @ 8116CF8
- push {lr}
- ldr r1, _08116D48 @ =gSharedMem + 0x19000
- movs r0, 0
- str r0, [r1, 0x8]
- movs r2, 0
- adds r1, 0xC
- movs r3, 0
-_08116D06:
- adds r0, r2, r1
- strb r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _08116D06
- movs r2, 0
- ldr r3, _08116D4C @ =gSharedMem + 0x19012
- movs r1, 0
-_08116D1A:
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _08116D1A
- movs r2, 0
- ldr r3, _08116D50 @ =gSharedMem + 0x19016
- movs r1, 0
-_08116D2E:
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08116D2E
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117C60
- pop {r0}
- bx r0
- .align 2, 0
-_08116D48: .4byte gSharedMem + 0x19000
-_08116D4C: .4byte gSharedMem + 0x19012
-_08116D50: .4byte gSharedMem + 0x19016
- thumb_func_end sub_8116CF8
-
- thumb_func_start sub_8116D54
-sub_8116D54: @ 8116D54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- mov r1, sp
- ldr r0, _08116D88 @ =gUnknown_083F8ED8
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r2, sp, 0x10
- adds r1, r2, 0
- ldr r0, _08116D8C @ =gUnknown_083F8EE8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- mov r9, r2
- cmp r5, 0xB
- bls _08116D90
- movs r0, 0
- b _08116E38
- .align 2, 0
-_08116D88: .4byte gUnknown_083F8ED8
-_08116D8C: .4byte gUnknown_083F8EE8
-_08116D90:
- ldr r6, _08116E48 @ =gSharedMem + 0x19000
- ldr r1, _08116E4C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r7, 0x14
- ldrsh r2, [r0, r7]
- adds r2, r6, r2
- ldr r4, _08116E50 @ =gUnknown_083F8D90
- lsls r5, 3
- adds r3, r5, r4
- ldrb r1, [r3, 0x2]
- strb r1, [r2, 0xB]
- ldrb r1, [r3, 0x2]
- strh r1, [r0, 0x20]
- adds r0, r4, 0x4
- adds r0, r5, r0
- ldr r1, [r6, 0x8]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r6, 0x8]
- movs r3, 0
- mov r8, r4
- mov r12, r5
- adds r5, r0, 0
- adds r4, r6, 0
- adds r4, 0x12
-_08116DC8:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- ldr r0, [r2]
- ands r0, r5
- cmp r0, 0
- beq _08116DDE
- adds r1, r3, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08116DDE:
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _08116DEE
- ldr r0, [r6, 0x8]
- ldr r1, [r2]
- orrs r0, r1
- str r0, [r6, 0x8]
-_08116DEE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _08116DC8
- movs r2, 0
- ldr r0, _08116E54 @ =gUnknown_083F8D90 + 0x4
- add r0, r12
- ldr r7, [r0]
- ldr r4, _08116E58 @ =gSharedMem + 0x19016
- mov r5, r9
-_08116E04:
- lsls r0, r2, 2
- adds r3, r5, r0
- ldr r0, [r3]
- ands r0, r7
- cmp r0, 0
- beq _08116E18
- adds r1, r2, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08116E18:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _08116E28
- ldr r0, [r6, 0x8]
- ldr r1, [r3]
- orrs r0, r1
- str r0, [r6, 0x8]
-_08116E28:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08116E04
- mov r0, r12
- add r0, r8
- ldrb r0, [r0, 0x2]
-_08116E38:
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08116E48: .4byte gSharedMem + 0x19000
-_08116E4C: .4byte gTasks
-_08116E50: .4byte gUnknown_083F8D90
-_08116E54: .4byte gUnknown_083F8D90 + 0x4
-_08116E58: .4byte gSharedMem + 0x19016
- thumb_func_end sub_8116D54
-
- thumb_func_start sub_8116E5C
-sub_8116E5C: @ 8116E5C
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsrs r3, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x12
- bhi _08116EF0
- cmp r2, 0xF
- bhi _08116EEC
- lsls r0, r2, 2
- ldr r1, _08116E80 @ =_08116E84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116E80: .4byte _08116E84
- .align 2, 0
-_08116E84:
- .4byte _08116EC4
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EDC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EDC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EDC
-_08116EC4:
- movs r0, 0x3
- b _08116EF2
-_08116EC8:
- adds r0, r2, 0x5
- cmp r3, r0
- beq _08116EE8
- adds r0, 0x5
- cmp r3, r0
- beq _08116EE8
- adds r0, 0x5
- cmp r3, r0
- bne _08116EF0
- b _08116EE8
-_08116EDC:
- adds r0, r2, 0x1
- cmp r3, r0
- blt _08116EF0
- adds r0, r2, 0x4
- cmp r3, r0
- bgt _08116EF0
-_08116EE8:
- movs r0, 0x1
- b _08116EF2
-_08116EEC:
- cmp r3, r2
- beq _08116EE8
-_08116EF0:
- movs r0, 0
-_08116EF2:
- pop {r1}
- bx r1
- thumb_func_end sub_8116E5C
-
- thumb_func_start sub_8116EF8
-sub_8116EF8: @ 8116EF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- str r0, [sp, 0x18]
- cmp r6, 0xA
- beq _08116F1E
- cmp r6, 0xA
- bgt _08116F1A
- cmp r6, 0x5
- beq _08116F1E
- b _08116F7C
-_08116F1A:
- cmp r6, 0xF
- bne _08116F7C
-_08116F1E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0x5
- ldr r7, _08116F70 @ =gSharedMem + 0x190B8
- cmp r4, r0
- bge _08116F5E
- adds r1, r7, 0
- subs r1, 0xB8
- ldr r3, _08116F74 @ =gUnknown_083F8C00
- ldr r5, [r1, 0x8]
- adds r6, r3, 0
- adds r6, 0x8
- adds r2, r0, 0
-_08116F3A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r1, r0, 2
- adds r0, r1, r6
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _08116F54
- adds r0, r1, r3
- ldrh r0, [r0, 0x10]
- ldr r1, [sp, 0x18]
- orrs r1, r0
- str r1, [sp, 0x18]
-_08116F54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r2
- blt _08116F3A
-_08116F5E:
- ldr r0, _08116F78 @ =0x0000dfff
- ldr r2, [sp, 0x18]
- ands r2, r0
- str r2, [sp, 0x18]
- adds r0, r7, 0
- adds r1, r2, 0
- bl sub_8124CE8
- b _0811713C
- .align 2, 0
-_08116F70: .4byte gSharedMem + 0x190B8
-_08116F74: .4byte gUnknown_083F8C00
-_08116F78: .4byte 0x0000dfff
-_08116F7C:
- mov r0, sp
- ldr r1, _08116FC8 @ =gUnknown_083F8E9C
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- mov r10, r3
- cmp r0, 0x3
- bhi _08116F9A
- movs r4, 0x3
- mov r10, r4
-_08116F9A:
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _08116FCC @ =0xffff0000
- adds r0, r1
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08116FF8
- cmp r0, 0x2
- bgt _08116FD4
- cmp r0, 0x1
- beq _08116FE4
- ldr r4, _08116FD0 @ =gSharedMem + 0x19000
- b _0811703A
- .align 2, 0
-_08116FC8: .4byte gUnknown_083F8E9C
-_08116FCC: .4byte 0xffff0000
-_08116FD0: .4byte gSharedMem + 0x19000
-_08116FD4:
- cmp r0, 0x3
- beq _0811700C
- cmp r0, 0x4
- beq _08117020
- ldr r4, _08116FE0 @ =gSharedMem + 0x19000
- b _0811703A
- .align 2, 0
-_08116FE0: .4byte gSharedMem + 0x19000
-_08116FE4:
- ldr r3, _08116FF0 @ =gSprites
- ldr r2, _08116FF4 @ =gSharedMem + 0x19000
- adds r0, r2, 0
- adds r0, 0x43
- b _08117028
- .align 2, 0
-_08116FF0: .4byte gSprites
-_08116FF4: .4byte gSharedMem + 0x19000
-_08116FF8:
- ldr r3, _08117004 @ =gSprites
- ldr r2, _08117008 @ =gSharedMem + 0x19000
- adds r0, r2, 0
- adds r0, 0x44
- b _08117028
- .align 2, 0
-_08117004: .4byte gSprites
-_08117008: .4byte gSharedMem + 0x19000
-_0811700C:
- ldr r3, _08117018 @ =gSprites
- ldr r2, _0811701C @ =gSharedMem + 0x19000
- adds r0, r2, 0
- adds r0, 0x45
- b _08117028
- .align 2, 0
-_08117018: .4byte gSprites
-_0811701C: .4byte gSharedMem + 0x19000
-_08117020:
- ldr r3, _08117088 @ =gSprites
- ldr r2, _0811708C @ =gSharedMem + 0x19000
- adds r0, r2, 0
- adds r0, 0x46
-_08117028:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r7, r0, 4
- adds r4, r2, 0
-_0811703A:
- mov r2, r10
- cmp r2, 0x1
- bne _08117094
- ldr r1, _08117090 @ =gUnknown_083F8C00
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- str r2, [sp, 0x1C]
- cmp r1, 0
- bne _0811713C
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- adds r1, r7, r1
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xB8
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_812492C
- b _08117122
- .align 2, 0
-_08117088: .4byte gSprites
-_0811708C: .4byte gSharedMem + 0x19000
-_08117090: .4byte gUnknown_083F8C00
-_08117094:
- movs r4, 0
- lsls r0, r6, 2
- str r0, [sp, 0x1C]
- ldr r1, _0811714C @ =gSharedMem + 0x19000
- mov r8, r1
- ldr r2, _08117150 @ =gUnknown_083F8C00
- mov r9, r2
-_081170A2:
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r6, r0
- adds r0, 0x5
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r5, r0, 2
- mov r0, r9
- adds r0, 0x8
- adds r0, r5, r0
- mov r3, r8
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0811710E
- adds r0, r2, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- adds r1, r7, r1
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xD
- lsls r1, 24
- lsrs r1, 24
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- mov r0, r8
- adds r0, 0xB8
- bl sub_812492C
- mov r0, r10
- cmp r0, 0x3
- bne _08117104
- mov r1, r9
- adds r0, r5, r1
- ldrh r0, [r0, 0x10]
- str r0, [sp, 0x18]
-_08117104:
- mov r0, r10
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_0811710E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081170A2
- mov r2, r10
- cmp r2, 0x2
- beq _08117122
- movs r3, 0
- str r3, [sp, 0x18]
-_08117122:
- ldr r0, _08117154 @ =gSharedMem + 0x190B8
- ldr r2, _08117150 @ =gUnknown_083F8C00
- ldr r4, [sp, 0x1C]
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x10]
- ldr r2, [sp, 0x18]
- orrs r2, r1
- str r2, [sp, 0x18]
- adds r1, r2, 0
- bl sub_8124CE8
-_0811713C:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811714C: .4byte gSharedMem + 0x19000
-_08117150: .4byte gUnknown_083F8C00
-_08117154: .4byte gSharedMem + 0x190B8
- thumb_func_end sub_8116EF8
-
- thumb_func_start sub_8117158
-sub_8117158: @ 8117158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0811719C @ =gSharedMem + 0x19000
- movs r0, 0x1
- strh r0, [r4, 0x2A]
- movs r0, 0
- movs r1, 0
- bl sub_8117AA8
- ldr r0, _081171A0 @ =gBGTilemapBuffers + 0x800
- ldr r1, _081171A4 @ =0xfffff800
- adds r4, r1
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124E2C
- cmp r5, 0xF
- bhi _08117250
- lsls r0, r5, 2
- ldr r1, _081171A8 @ =_081171AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811719C: .4byte gSharedMem + 0x19000
-_081171A0: .4byte gBGTilemapBuffers + 0x800
-_081171A4: .4byte 0xfffff800
-_081171A8: .4byte _081171AC
- .align 2, 0
-_081171AC:
- .4byte _08117360
- .4byte _081171EC
- .4byte _081171EC
- .4byte _081171EC
- .4byte _081171EC
- .4byte _08117220
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117220
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117220
-_081171EC:
- movs r0, 0x4
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08117258
- add r4, sp, 0x10
- adds r3, r1, 0
-_08117202:
- ldrb r2, [r3]
- adds r2, r4
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r5, r0
- strb r0, [r2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r0, [r3]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08117202
- b _08117258
-_08117220:
- movs r0, 0x5
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08117258
- add r3, sp, 0x10
- adds r2, r1, 0
-_08117236:
- ldrb r1, [r2]
- adds r1, r3
- ldrb r0, [r2]
- adds r0, r5, r0
- strb r0, [r1]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08117236
- b _08117258
-_08117250:
- movs r0, 0x1
- str r0, [sp, 0x18]
- add r0, sp, 0x10
- strb r5, [r0]
-_08117258:
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcs _08117360
- mov r0, sp
- adds r0, 0xE
- str r0, [sp, 0x1C]
- add r1, sp, 0x10
- mov r9, r1
- add r0, sp, 0x8
- mov r12, r0
- mov r1, sp
- adds r1, 0xA
- str r1, [sp, 0x20]
-_0811727C:
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117370 @ =gUnknown_083F8C00
- adds r0, r1
- ldrb r0, [r0, 0x6]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117370 @ =gUnknown_083F8C00
- adds r0, r1
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x9
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08117350
- add r5, sp, 0xC
- ldr r7, [sp, 0x20]
- ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800
- mov r8, r0
- ldr r6, [sp, 0x1C]
- ldr r1, _08117378 @ =gSharedMem + 0x189A0
- mov r10, r1
-_081172C8:
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- ldr r0, _08117370 @ =gUnknown_083F8C00
- adds r1, r0
- adds r3, r4, 0
- ldrb r0, [r4]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 5
- strh r0, [r5]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- adds r2, 0x1
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- mov r1, r10
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- adds r2, 0x2
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldr r1, _0811737C @ =gSharedMem + 0x189A4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r0, [r3]
- cmp r0, 0x2
- bls _081172C8
-_08117350:
- mov r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _0811727C
-_08117360:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117370: .4byte gUnknown_083F8C00
-_08117374: .4byte gBGTilemapBuffers + 0x800
-_08117378: .4byte gSharedMem + 0x189A0
-_0811737C: .4byte gSharedMem + 0x189A4
- thumb_func_end sub_8117158
-
- thumb_func_start sub_8117380
-sub_8117380: @ 8117380
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081173B8 @ =gUnknown_083F8EF4
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08117398
- movs r4, 0
-_08117398:
- ldr r3, _081173BC @ =gUnknown_083F8C00
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _081173EC
- cmp r0, 0x4
- bgt _081173C0
- cmp r0, 0x3
- beq _081173C6
- b _08117428
- .align 2, 0
-_081173B8: .4byte gUnknown_083F8EF4
-_081173BC: .4byte gUnknown_083F8C00
-_081173C0:
- cmp r0, 0xC
- beq _0811740C
- b _08117428
-_081173C6:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081173E8 @ =gSharedMem + 0x19000
- adds r0, 0x16
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08117428
- ldrb r0, [r1]
- adds r0, 0x1
- b _08117402
- .align 2, 0
-_081173E8: .4byte gSharedMem + 0x19000
-_081173EC:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117408 @ =gSharedMem + 0x19000
- adds r0, 0x12
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08117428
- ldrb r0, [r1]
- adds r0, 0x2
-_08117402:
- add r0, sp
- ldrb r0, [r0]
- b _0811742A
- .align 2, 0
-_08117408: .4byte gSharedMem + 0x19000
-_0811740C:
- ldr r1, _08117424 @ =gSharedMem + 0x19000
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08117428
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _0811742A
- .align 2, 0
-_08117424: .4byte gSharedMem + 0x19000
-_08117428:
- movs r0, 0
-_0811742A:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8117380
-
- thumb_func_start sub_8117434
-sub_8117434: @ 8117434
- push {r4-r6,lr}
- ldr r1, _081174AC @ =REG_BG2PA
- ldr r4, _081174B0 @ =gSharedMem + 0x19000
- ldrh r0, [r4, 0x2C]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2E]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x30]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x32]
- strh r0, [r1]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- ldr r0, _081174B4 @ =gSpriteCoordOffsetY
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r1, 0x50
- adds r0, r2, 0
- muls r0, r1
- movs r2, 0xE8
- lsls r2, 7
- subs r2, r0
- movs r6, 0x2C
- ldrsh r5, [r4, r6]
- ldr r0, _081174B8 @ =gSpriteCoordOffsetX
- movs r6, 0
- ldrsh r3, [r0, r6]
- adds r3, 0x74
- adds r0, r5, 0
- muls r0, r3
- subs r2, r0
- movs r5, 0x32
- ldrsh r0, [r4, r5]
- muls r0, r1
- movs r1, 0xA8
- lsls r1, 7
- subs r1, r0
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- muls r0, r3
- subs r1, r0
- ldr r0, _081174BC @ =REG_BG2X_L
- strh r2, [r0]
- adds r0, 0x2
- ldr r3, _081174C0 @ =0x0fff0000
- ands r2, r3
- asrs r2, 16
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- ands r1, r3
- asrs r1, 16
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081174AC: .4byte REG_BG2PA
-_081174B0: .4byte gSharedMem + 0x19000
-_081174B4: .4byte gSpriteCoordOffsetY
-_081174B8: .4byte gSpriteCoordOffsetX
-_081174BC: .4byte REG_BG2X_L
-_081174C0: .4byte 0x0fff0000
- thumb_func_end sub_8117434
-
- thumb_func_start sub_81174C4
-sub_81174C4: @ 81174C4
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- muls r0, r1
- adds r1, r0, 0
- cmp r0, 0
- bge _081174D8
- adds r1, 0xFF
-_081174D8:
- lsls r0, r1, 8
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81174C4
-
- thumb_func_start sub_81174E0
-sub_81174E0: @ 81174E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 9
- lsls r1, 16
- asrs r1, 16
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81174E0
-
- thumb_func_start sub_81174F8
-sub_81174F8: @ 81174F8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08117520 @ =0x00002d9e
- bl sub_814AAF8
- ldr r1, _08117524 @ =gUnknown_083F8EB4
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117520: .4byte 0x00002d9e
-_08117524: .4byte gUnknown_083F8EB4
- thumb_func_end sub_81174F8
-
- thumb_func_start sub_8117528
-sub_8117528: @ 8117528
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117554 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811754C
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08117558 @ =sub_8115384
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0811754C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117554: .4byte gPaletteFade
-_08117558: .4byte sub_8115384
- thumb_func_end sub_8117528
-
- thumb_func_start sub_811755C
-sub_811755C: @ 811755C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl MenuZeroFillScreen
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _081175B4 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- lsls r1, 26
- lsrs r1, 26
- ldrb r3, [r2, 0x4]
- movs r0, 0x40
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x4]
- bl UpdatePaletteFade
- ldr r1, _081175B8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081175BC @ =sub_8117528
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081175B4: .4byte gPaletteFade
-_081175B8: .4byte gTasks
-_081175BC: .4byte sub_8117528
- thumb_func_end sub_811755C
-
- thumb_func_start sub_81175C0
-sub_81175C0: @ 81175C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl MenuZeroFillScreen
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81175C0
-
- thumb_func_start sub_81175DC
-sub_81175DC: @ 81175DC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _08117624 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r2, r1, 0x1
- strh r2, [r0, 0x8]
- ldr r0, _08117628 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08117608
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _0811761C
-_08117608:
- ldr r1, _0811762C @ =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bl MenuZeroFillScreen
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_0811761C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117624: .4byte gTasks
-_08117628: .4byte gMain
-_0811762C: .4byte gSpecialVar_0x8004
- thumb_func_end sub_81175DC
-
- thumb_func_start sub_8117630
-sub_8117630: @ 8117630
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _0811768C @ =gUnknown_083F8DF0
- ldr r0, _08117690 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- ldr r0, _08117694 @ =gStringVar1
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r5, _08117698 @ =gStringVar4
- ldr r1, _0811769C @ =gUnknown_081C40DF
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081176A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081176A4 @ =sub_81174F8
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811768C: .4byte gUnknown_083F8DF0
-_08117690: .4byte gSpecialVar_0x8004
-_08117694: .4byte gStringVar1
-_08117698: .4byte gStringVar4
-_0811769C: .4byte gUnknown_081C40DF
-_081176A0: .4byte gTasks
-_081176A4: .4byte sub_81174F8
- thumb_func_end sub_8117630
-
- thumb_func_start Task_Roulette_0
-Task_Roulette_0: @ 81176A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08117758 @ =gStringVar1
- mov r10, r0
- ldr r1, _0811775C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- mov r0, r10
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, _08117760 @ =gStringVar4
- ldr r1, _08117764 @ =gOtherText_Coins
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- movs r2, 0x9
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x9
- movs r2, 0x1
- bl MenuPrint_RightAligned
- ldr r2, _08117768 @ =gUnknown_083F8DF0
- ldr r1, _0811776C @ =gSpecialVar_0x8004
- mov r8, r1
- ldrh r1, [r1]
- movs r0, 0x1
- mov r9, r0
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r4, [r0]
- mov r0, r10
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r1, 0x22
- ldrsh r0, [r6, r1]
- cmp r0, r4
- blt _081177BC
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811777C
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _0811777C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08117770 @ =gUnknown_081C4139
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08117774 @ =sub_8117630
- ldr r2, _08117778 @ =0x0000ffff
- adds r0, r7, 0
- movs r3, 0x3
- bl sub_8116C34
- b _081177E4
- .align 2, 0
-_08117758: .4byte gStringVar1
-_0811775C: .4byte gTasks
-_08117760: .4byte gStringVar4
-_08117764: .4byte gOtherText_Coins
-_08117768: .4byte gUnknown_083F8DF0
-_0811776C: .4byte gSpecialVar_0x8004
-_08117770: .4byte gUnknown_081C4139
-_08117774: .4byte sub_8117630
-_08117778: .4byte 0x0000ffff
-_0811777C:
- ldr r4, _081177AC @ =gStringVar4
- ldr r1, _081177B0 @ =gUnknown_081C40DF
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081177B4 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _081177B8 @ =sub_81174F8
- str r1, [r0]
- b _081177E4
- .align 2, 0
-_081177AC: .4byte gStringVar4
-_081177B0: .4byte gUnknown_081C40DF
-_081177B4: .4byte gTasks
-_081177B8: .4byte sub_81174F8
-_081177BC:
- ldr r1, _081177F4 @ =gUnknown_081C411C
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _081177F8 @ =sub_81175DC
- str r0, [r6]
- movs r0, 0
- strh r0, [r6, 0x22]
- strh r0, [r6, 0x8]
-_081177E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081177F4: .4byte gUnknown_081C411C
-_081177F8: .4byte sub_81175DC
- thumb_func_end Task_Roulette_0
-
- thumb_func_start PlayRoulette
-PlayRoulette: @ 81177FC
- push {lr}
- bl ScriptContext2_Enable
- ldr r0, _08117828 @ =Task_Roulette_0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811782C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08117830 @ =gSaveBlock1
- ldr r2, _08117834 @ =0x00000494
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .align 2, 0
-_08117828: .4byte Task_Roulette_0
-_0811782C: .4byte gTasks
-_08117830: .4byte gSaveBlock1
-_08117834: .4byte 0x00000494
- thumb_func_end PlayRoulette
-
- thumb_func_start sub_8117838
-sub_8117838: @ 8117838
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08117884
- bl FreeAllSpritePalettes
- ldr r0, _08117870 @ =gUnknown_083F9E30
- bl LoadSpritePalettes
- ldr r0, _08117874 @ =gUnknown_083F92A8
- ldr r4, _08117878 @ =gSharedMem + 0x17000
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _0811787C @ =gUnknown_083F90FC
- movs r2, 0xE0
- lsls r2, 4
- adds r1, r4, r2
- bl LZ77UnCompWram
- ldr r0, _08117880 @ =gUnknown_083F9D3C
- movs r1, 0x80
- lsls r1, 5
- adds r4, r1
- adds r1, r4, 0
- bl LZ77UnCompWram
- b _08117888
- .align 2, 0
-_08117870: .4byte gUnknown_083F9E30
-_08117874: .4byte gUnknown_083F92A8
-_08117878: .4byte gSharedMem + 0x17000
-_0811787C: .4byte gUnknown_083F90FC
-_08117880: .4byte gUnknown_083F9D3C
-_08117884:
- bl FreeAllSpritePalettes
-_08117888:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8117838
-
- thumb_func_start sub_8117890
-sub_8117890: @ 8117890
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [r0, 0x4]
- ldrb r3, [r1]
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _081178F4 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r6]
- strh r0, [r1, 0x2E]
- strh r4, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- ldrh r2, [r6]
- adds r0, r2, 0
- adds r0, 0x1E
- strh r0, [r6]
- lsls r0, 16
- ldr r1, _081178F8 @ =0x01670000
- cmp r0, r1
- bls _081178EC
- ldr r1, _081178FC @ =0xfffffeb6
- adds r0, r2, r1
- strh r0, [r6]
-_081178EC:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081178F4: .4byte gSprites
-_081178F8: .4byte 0x01670000
-_081178FC: .4byte 0xfffffeb6
- thumb_func_end sub_8117890
-
- thumb_func_start sub_8117900
-sub_8117900: @ 8117900
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _08117A50 @ =gUnknown_083F9F54
- ldr r0, [r4]
- ldr r5, _08117A54 @ =gSharedMem
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- mov r6, sp
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r4, _08117A58 @ =gUnknown_083F9F5C
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x4]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x6]
- mov r0, sp
- bl LoadSpriteSheet
- movs r7, 0
- ldr r0, _08117A5C @ =0x0001903c
- adds r0, r5
- mov r9, r0
- ldr r0, _08117A60 @ =gSprites
- mov r8, r0
-_08117950:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 27
- lsrs r4, r0, 24
- movs r6, 0
- lsls r5, r7, 2
-_0811795C:
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C
- adds r0, r1, r0
- adds r1, 0x94
- adds r2, r4, 0
- adds r2, 0x5C
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r6, 0
- adds r1, 0x1D
- adds r1, r5, r1
- add r1, r9
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x47
- bls _081179A0
- movs r4, 0
-_081179A0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _0811795C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08117950
- movs r7, 0
- ldr r5, _08117A68 @ =gSharedMem + 0x1903C
- ldr r4, _08117A60 @ =gSprites
-_081179BA:
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 3
- ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4
- adds r0, r1, r0
- adds r1, 0x94
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x46
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r7, 0
- adds r1, 0x29
- adds r1, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _081179BA
- movs r7, 0
- ldr r5, _08117A68 @ =gSharedMem + 0x1903C
- ldr r4, _08117A60 @ =gSprites
-_08117A00:
- lsls r2, r7, 1
- adds r2, r7
- lsls r2, 3
- ldr r0, _08117A70 @ =gSpriteTemplate_83FA034
- adds r0, r2, r0
- adds r2, 0x5C
- lsls r2, 16
- asrs r2, 16
- movs r1, 0x7E
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r7, 0
- adds r1, 0x2D
- adds r1, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08117A00
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117A50: .4byte gUnknown_083F9F54
-_08117A54: .4byte gSharedMem
-_08117A58: .4byte gUnknown_083F9F5C
-_08117A5C: .4byte 0x0001903c
-_08117A60: .4byte gSprites
-_08117A64: .4byte gSpriteTemplate_83FA07C
-_08117A68: .4byte gSharedMem + 0x1903C
-_08117A6C: .4byte gSpriteTemplate_83F9FD4
-_08117A70: .4byte gSpriteTemplate_83FA034
- thumb_func_end sub_8117900
-
- thumb_func_start unref_sub_8117A74
-unref_sub_8117A74: @ 8117A74
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08117AA0 @ =gSharedMem + 0x1903C
-_08117A7A:
- adds r0, r4, 0
- adds r0, 0x1D
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117AA4 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08117A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08117AA0: .4byte gSharedMem + 0x1903C
-_08117AA4: .4byte gSprites
- thumb_func_end unref_sub_8117A74
-
- thumb_func_start sub_8117AA8
-sub_8117AA8: @ 8117AA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- cmp r0, 0
- beq _08117AF8
- cmp r0, 0x1
- bne _08117BA8
- movs r3, 0
- ldr r5, _08117AF0 @ =gSprites
- ldr r4, _08117AF4 @ =gSharedMem + 0x1903C
- movs r2, 0x4
-_08117ACA:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x12
- bls _08117ACA
- b _08117BA8
- .align 2, 0
-_08117AF0: .4byte gSprites
-_08117AF4: .4byte gSharedMem + 0x1903C
-_08117AF8:
- movs r3, 0
- ldr r0, _08117B48 @ =gUnknown_083F8D90
- mov r12, r0
- ldr r7, _08117B4C @ =gSharedMem + 0x19000
- movs r1, 0x4
- add r1, r12
- mov r9, r1
- ldr r5, _08117B50 @ =gSprites
- adds r4, r7, 0
- adds r4, 0x3C
- movs r6, 0x5
- negs r6, r6
-_08117B10:
- lsls r2, r3, 3
- mov r1, r9
- adds r0, r2, r1
- ldr r1, [r7, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08117B54
- mov r1, r12
- adds r0, r2, r1
- ldrb r0, [r0, 0x2]
- cmp r0, r8
- beq _08117B54
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08117B6E
- .align 2, 0
-_08117B48: .4byte gUnknown_083F8D90
-_08117B4C: .4byte gSharedMem + 0x19000
-_08117B50: .4byte gSprites
-_08117B54:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
-_08117B6E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xB
- bls _08117B10
- cmp r3, 0x12
- bhi _08117BA8
- ldr r6, _08117BB4 @ =gSprites
- ldr r4, _08117BB8 @ =gSharedMem + 0x1903C
- movs r5, 0x5
- negs r5, r5
-_08117B84:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x12
- bls _08117B84
-_08117BA8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117BB4: .4byte gSprites
-_08117BB8: .4byte gSharedMem + 0x1903C
- thumb_func_end sub_8117AA8
-
- thumb_func_start sub_8117BBC
-sub_8117BBC: @ 8117BBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r0, _08117C50 @ =gSharedMem + 0x1903C
- mov r8, r0
- ldr r4, _08117C54 @ =gSprites
- movs r6, 0x4
-_08117BCC:
- ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C
- movs r1, 0x74
- movs r2, 0x14
- movs r3, 0xA
- bl CreateSprite
- adds r3, r5, 0
- adds r3, 0x31
- add r3, r8
- strb r0, [r3]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08117C5C @ =sub_81184CC
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- orrs r1, r6
- strb r1, [r0, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117BCC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117C50: .4byte gSharedMem + 0x1903C
-_08117C54: .4byte gSprites
-_08117C58: .4byte gSpriteTemplate_83FA40C
-_08117C5C: .4byte sub_81184CC
- thumb_func_end sub_8117BBC
-
- thumb_func_start sub_8117C60
-sub_8117C60: @ 8117C60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r5, 0
- cmp r0, 0
- beq _08117CAC
- ldr r4, _08117CA4 @ =gSprites
- ldr r3, _08117CA8 @ =gSharedMem + 0x1903C
- movs r2, 0x4
-_08117C7E:
- adds r0, r5, 0
- adds r0, 0x31
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117C7E
- b _08117D58
- .align 2, 0
-_08117CA4: .4byte gSprites
-_08117CA8: .4byte gSharedMem + 0x1903C
-_08117CAC:
- ldr r0, _08117CEC @ =gSharedMem + 0x19000
- mov r12, r0
- ldr r6, _08117CF0 @ =gSprites
- movs r0, 0x3C
- add r0, r12
- mov r8, r0
- ldr r7, _08117CF4 @ =gUnknown_083F8C00
- movs r0, 0x5
- negs r0, r0
- mov r10, r0
-_08117CC0:
- mov r0, r12
- adds r0, 0xC
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08117CD0
- cmp r5, r9
- bne _08117CF8
-_08117CD0:
- adds r0, r5, 0
- adds r0, 0x31
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08117D4E
- .align 2, 0
-_08117CEC: .4byte gSharedMem + 0x19000
-_08117CF0: .4byte gSprites
-_08117CF4: .4byte gUnknown_083F8C00
-_08117CF8:
- adds r3, r5, 0
- adds r3, 0x31
- add r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r10
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x3]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x20]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x3
- strh r0, [r2, 0x22]
-_08117D4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117CC0
-_08117D58:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8117C60
-
- thumb_func_start sub_8117D68
-sub_8117D68: @ 8117D68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08117D98
- ldr r2, _08117D90 @ =gSprites
- ldr r0, _08117D94 @ =gSharedMem + 0x19000
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08117DE2
- .align 2, 0
-_08117D90: .4byte gSprites
-_08117D94: .4byte gSharedMem + 0x19000
-_08117D98:
- ldr r4, _08117DE8 @ =gSprites
- ldr r3, _08117DEC @ =gSharedMem + 0x19000
- adds r3, 0x6C
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, _08117DF0 @ =gUnknown_083F8C00
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrb r0, [r2, 0x3]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x20]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2, 0x4]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x22]
-_08117DE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08117DE8: .4byte gSprites
-_08117DEC: .4byte gSharedMem + 0x19000
-_08117DF0: .4byte gUnknown_083F8C00
- thumb_func_end sub_8117D68
-
- thumb_func_start sub_8117DF4
-sub_8117DF4: @ 8117DF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r4, _08117E84 @ =gUnknown_083F9EE8
- ldr r0, [r4]
- ldr r5, _08117E88 @ =gSharedMem
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldrh r1, [r4, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- movs r1, 0xF
- mov r0, sp
- strh r1, [r0]
- movs r0, 0
- ldr r1, _08117E8C @ =0x0001903c
- adds r1, r5
- mov r8, r1
- ldr r7, _08117E90 @ =gSprites
-_08117E2A:
- movs r4, 0
- adds r6, r0, 0x1
- lsls r5, r0, 2
-_08117E30:
- adds r1, r5, r4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC
- adds r0, r1
- movs r1, 0x28
- mov r2, sp
- bl sub_8117890
- adds r1, r4, 0x7
- adds r1, r5, r1
- add r1, r8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08117E30
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _08117E2A
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117E84: .4byte gUnknown_083F9EE8
-_08117E88: .4byte gSharedMem
-_08117E8C: .4byte 0x0001903c
-_08117E90: .4byte gSprites
-_08117E94: .4byte gSpriteTemplate_83FA0DC
- thumb_func_end sub_8117DF4
-
- thumb_func_start sub_8117E98
-sub_8117E98: @ 8117E98
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _08117F1C @ =gSharedMem + 0x19000
- ldrh r1, [r6, 0x2E]
- ldrh r0, [r0, 0x24]
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- asrs r1, 16
- ldr r0, _08117F20 @ =0x00000167
- cmp r1, r0
- ble _08117EB8
- ldr r2, _08117F24 @ =0xfffffe98
- adds r0, r1, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_08117EB8:
- adds r0, r4, 0
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl Cos2
- lsls r2, r5, 16
- asrs r2, 16
- movs r3, 0x30
- ldrsh r1, [r6, r3]
- muls r1, r2
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r4, r0, 16
- negs r1, r4
- movs r3, 0x30
- ldrsh r0, [r6, r3]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r3, r0, 27
- cmp r2, 0
- bge _08117EF2
- adds r2, 0xF
-_08117EF2:
- lsls r0, r2, 12
- lsrs r5, r0, 16
- ldr r1, _08117F28 @ =gOamMatrices
- lsls r0, r3, 3
- adds r1, r0, r1
- adds r0, r4, 0
- cmp r0, 0
- bge _08117F04
- adds r0, 0xF
-_08117F04:
- asrs r0, 4
- strh r0, [r1, 0x6]
- strh r0, [r1]
- strh r5, [r1, 0x2]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r1, 0x4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08117F1C: .4byte gSharedMem + 0x19000
-_08117F20: .4byte 0x00000167
-_08117F24: .4byte 0xfffffe98
-_08117F28: .4byte gOamMatrices
- thumb_func_end sub_8117E98
-
- thumb_func_start sub_8117F2C
-sub_8117F2C: @ 8117F2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r5, 0
- ldr r7, _081180C8 @ =gSharedMem
- mov r6, sp
-_08117F3A:
- ldr r0, _081180CC @ =gUnknown_083FA21C
- lsls r4, r5, 3
- adds r4, r0
- ldr r0, [r4]
- adds r1, r7, 0
- bl LZ77UnCompWram
- str r7, [sp]
- ldrh r2, [r4, 0x4]
- ldr r0, _081180D0 @ =0xffff0000
- ldr r1, [r6, 0x4]
- ands r1, r0
- orrs r1, r2
- str r1, [r6, 0x4]
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldr r0, _081180D4 @ =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [r6, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _08117F3A
- ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0
- movs r1, 0xD0
- movs r2, 0x10
- movs r3, 0x4
- bl CreateSprite
- ldr r4, _081180DC @ =gSharedMem + 0x19000
- adds r1, r4, 0
- adds r1, 0x50
- strb r0, [r1]
- ldr r3, _081180E0 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r5, 0
- adds r4, 0x3C
- adds r7, r3, 0
-_08117FA2:
- lsls r1, r5, 19
- movs r0, 0xC4
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- adds r3, r5, 0
- adds r3, 0x15
- adds r3, r4
- strb r0, [r3]
- ldrb r1, [r3]
- 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]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08117FA2
- ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0
- movs r1, 0x78
- movs r2, 0x44
- movs r3, 0x4
- bl CreateSprite
- ldr r3, _081180DC @ =gSharedMem + 0x19000
- adds r1, r3, 0
- adds r1, 0x55
- strb r0, [r1]
- ldr r2, _081180E0 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r5, 0
- adds r3, 0x3C
- mov r8, r3
- adds r4, r2, 0
-_08118020:
- lsls r1, r5, 20
- movs r0, 0xC0
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8
- movs r2, 0x24
- movs r3, 0x4
- bl CreateSprite
- adds r2, r5, 0
- adds r2, 0x1A
- add r2, r8
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r7, 0x4
- orrs r1, r7
- strb r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08118020
- ldr r0, _081180F0 @ =gSpriteTemplate_83FA310
- movs r1, 0x98
- movs r2, 0x60
- movs r3, 0x9
- bl CreateSprite
- ldr r3, _081180DC @ =gSharedMem + 0x19000
- adds r3, 0x6C
- strb r0, [r3]
- ldr r4, _081180E0 @ =gSprites
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r7
- strb r0, [r1, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081180C8: .4byte gSharedMem
-_081180CC: .4byte gUnknown_083FA21C
-_081180D0: .4byte 0xffff0000
-_081180D4: .4byte 0x0000ffff
-_081180D8: .4byte gSpriteTemplate_83FA2B0
-_081180DC: .4byte gSharedMem + 0x19000
-_081180E0: .4byte gSprites
-_081180E4: .4byte gSpriteTemplate_83FA2C8
-_081180E8: .4byte gSpriteTemplate_83FA2E0
-_081180EC: .4byte gSpriteTemplate_83FA2F8
-_081180F0: .4byte gSpriteTemplate_83FA310
- thumb_func_end sub_8117F2C
-
- thumb_func_start sub_81180F4
-sub_81180F4: @ 81180F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0xFA
- lsls r0, 2
- mov r8, r0
- movs r4, 0
- movs r6, 0
- ldr r1, _081181D4 @ =gSharedMem + 0x19000
- mov r9, r1
- ldr r0, _081181D8 @ =gSprites
- mov r10, r0
-_08118114:
- adds r0, r7, 0
- mov r1, r8
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, r6, 0
- adds r3, 0x15
- mov r0, r9
- adds r0, 0x3C
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081181D8 @ =gSprites
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- cmp r5, 0
- bne _0811814E
- cmp r4, 0
- bne _0811814E
- cmp r6, 0x3
- bne _081181A2
-_0811814E:
- mov r3, r9
- adds r3, 0x3C
- adds r3, r0, r3
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r4, 0x5
- negs r4, r4
- adds r2, r4, 0
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r10
- adds r3, r0, r1
- adds r4, r3, 0
- adds r4, 0x40
- ldr r1, _081181DC @ =gSprites + 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r2, [r0]
- ldrh r4, [r4]
- adds r2, r4
- ldr r4, _081181E0 @ =0x000003ff
- adds r0, r4, 0
- ands r2, r0
- ldrh r0, [r3, 0x4]
- ldr r4, _081181E4 @ =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x4]
- movs r4, 0x1
-_081181A2:
- adds r0, r7, 0
- mov r1, r8
- bl __umodsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _08118114
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081181D4: .4byte gSharedMem + 0x19000
-_081181D8: .4byte gSprites
-_081181DC: .4byte gSprites + 0x8
-_081181E0: .4byte 0x000003ff
-_081181E4: .4byte 0xfffffc00
- thumb_func_end sub_81180F4
-
- thumb_func_start sub_81181E8
-sub_81181E8: @ 81181E8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08118220 @ =gUnknown_083FA608
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08118200
- movs r4, 0
-_08118200:
- ldr r3, _08118224 @ =gUnknown_083F8C00
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _08118254
- cmp r0, 0x4
- bgt _08118228
- cmp r0, 0x3
- beq _0811822E
- b _08118290
- .align 2, 0
-_08118220: .4byte gUnknown_083FA608
-_08118224: .4byte gUnknown_083F8C00
-_08118228:
- cmp r0, 0xC
- beq _08118274
- b _08118290
-_0811822E:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08118250 @ =gSharedMem + 0x19000
- adds r0, 0x16
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08118290
- ldrb r0, [r1]
- adds r0, 0x1
- b _0811826A
- .align 2, 0
-_08118250: .4byte gSharedMem + 0x19000
-_08118254:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08118270 @ =gSharedMem + 0x19000
- adds r0, 0x12
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08118290
- ldrb r0, [r1]
- adds r0, 0x2
-_0811826A:
- add r0, sp
- ldrb r0, [r0]
- b _08118292
- .align 2, 0
-_08118270: .4byte gSharedMem + 0x19000
-_08118274:
- ldr r1, _0811828C @ =gSharedMem + 0x19000
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08118290
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _08118292
- .align 2, 0
-_0811828C: .4byte gSharedMem + 0x19000
-_08118290:
- movs r0, 0
-_08118292:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81181E8
-
- thumb_func_start sub_811829C
-sub_811829C: @ 811829C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081182E8 @ =gSharedMem + 0x19000
- adds r1, 0x55
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _081182EC @ =gSprites
- adds r4, r1, r2
- bl sub_81181E8
- adds r3, r4, 0
- adds r3, 0x2B
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0x40
- ldr r1, [r4, 0x8]
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081182F0 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _081182F4 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081182E8: .4byte gSharedMem + 0x19000
-_081182EC: .4byte gSprites
-_081182F0: .4byte 0x000003ff
-_081182F4: .4byte 0xfffffc00
- thumb_func_end sub_811829C
-
- thumb_func_start sub_81182F8
-sub_81182F8: @ 81182F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r5, 0
- ldr r0, _08118320 @ =gSharedMem + 0x19000
- ldrb r1, [r0, 0x19]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08118310
- movs r5, 0x2
-_08118310:
- cmp r2, 0x6
- bls _08118316
- b _08118464
-_08118316:
- lsls r0, r2, 2
- ldr r1, _08118324 @ =_08118328
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08118320: .4byte gSharedMem + 0x19000
-_08118324: .4byte _08118328
- .align 2, 0
-_08118328:
- .4byte _08118464
- .4byte _08118420
- .4byte _081183F8
- .4byte _081183EC
- .4byte _081183C4
- .4byte _081183B8
- .4byte _08118344
-_08118344:
- movs r4, 0
- ldr r5, _081183A8 @ =gSprites
- ldr r0, _081183AC @ =gSharedMem + 0x1903C
- mov r8, r0
- movs r2, 0x5
- negs r2, r2
- mov r12, r2
- adds r6, r5, 0
- adds r6, 0x8
- ldr r7, _081183B0 @ =0xfffffc00
-_08118358:
- adds r3, r4, 0
- adds r3, 0x1A
- add r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r6
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081183B4 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08118358
- b _081184B2
- .align 2, 0
-_081183A8: .4byte gSprites
-_081183AC: .4byte gSharedMem + 0x1903C
-_081183B0: .4byte 0xfffffc00
-_081183B4: .4byte 0x000003ff
-_081183B8:
- ldr r2, _081183C0 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x58
- b _08118426
- .align 2, 0
-_081183C0: .4byte gSprites
-_081183C4:
- ldr r2, _081183E8 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08118442
- .align 2, 0
-_081183E8: .4byte gSprites
-_081183EC:
- ldr r2, _081183F4 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x57
- b _08118426
- .align 2, 0
-_081183F4: .4byte gSprites
-_081183F8:
- ldr r2, _0811841C @ =gSprites
- adds r0, r3, 0
- adds r0, 0x57
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08118442
- .align 2, 0
-_0811841C: .4byte gSprites
-_08118420:
- ldr r2, _08118458 @ =gSprites
- adds r0, r3, 0
- adds r0, 0x56
-_08118426:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x4]
-_08118442:
- ldrh r4, [r4]
- adds r1, r4
- ldr r2, _0811845C @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, _08118460 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _081184B2
- .align 2, 0
-_08118458: .4byte gSprites
-_0811845C: .4byte 0x000003ff
-_08118460: .4byte 0xfffffc00
-_08118464:
- movs r4, 0
- lsls r6, r5, 2
- ldr r5, _081184BC @ =gSprites
- ldr r0, _081184C0 @ =gSharedMem + 0x1903C
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x8
- ldr r2, _081184C4 @ =0xfffffc00
- mov r12, r2
-_08118476:
- adds r0, r4, 0
- adds r0, 0x1A
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, r6, r0
- ldrh r1, [r0, 0x8]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081184C8 @ =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08118476
-_081184B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081184BC: .4byte gSprites
-_081184C0: .4byte gSharedMem + 0x1903C
-_081184C4: .4byte 0xfffffc00
-_081184C8: .4byte 0x000003ff
- thumb_func_end sub_81182F8
-
- thumb_func_start sub_81184CC
-sub_81184CC: @ 81184CC
- ldr r1, _081184D4 @ =gSharedMem + 0x19000
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x24]
- bx lr
- .align 2, 0
-_081184D4: .4byte gSharedMem + 0x19000
- thumb_func_end sub_81184CC
-
- thumb_func_start sub_81184D8
-sub_81184D8: @ 81184D8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08118544 @ =gUnknown_083FA42C
- ldr r0, [r4]
- ldr r5, _08118548 @ =gSharedMem
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _0811854C @ =gSpriteTemplate_83FA434
- movs r1, 0x74
- movs r2, 0x50
- movs r3, 0x51
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08118550 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0xC8
- lsls r0, 9
- adds r5, r0
- ldrh r0, [r5, 0x24]
- movs r2, 0
- strh r0, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08118544: .4byte gUnknown_083FA42C
-_08118548: .4byte gSharedMem
-_0811854C: .4byte gSpriteTemplate_83FA434
-_08118550: .4byte gSprites
- thumb_func_end sub_81184D8
-
- thumb_func_start sub_8118554
-sub_8118554: @ 8118554
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _08118574 @ =gOamMatrices
- lsls r0, 3
- adds r0, r1
- ldr r2, _08118578 @ =gSharedMem + 0x19000
- ldrh r1, [r2, 0x2C]
- strh r1, [r0, 0x6]
- ldrh r1, [r2, 0x2C]
- strh r1, [r0]
- ldrh r1, [r2, 0x2E]
- strh r1, [r0, 0x2]
- ldrh r1, [r2, 0x30]
- strh r1, [r0, 0x4]
- bx lr
- .align 2, 0
-_08118574: .4byte gOamMatrices
-_08118578: .4byte gSharedMem + 0x19000
- thumb_func_end sub_8118554
-
- thumb_func_start sub_811857C
-sub_811857C: @ 811857C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _081185DC @ =gSharedMem + 0x1903C
- ldr r5, _081185E0 @ =gSprites
-_08118584:
- movs r3, 0x39
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- adds r3, r4, r6
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081185CA
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_081185CA:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08118584
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081185DC: .4byte gSharedMem + 0x1903C
-_081185E0: .4byte gSprites
-_081185E4: .4byte gSpriteTemplate_83FA40C
- thumb_func_end sub_811857C
-
- thumb_func_start sub_81185E8
-sub_81185E8: @ 81185E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08118660 @ =gSharedMem + 0x19000
- adds r0, 0x3C
- ldrb r5, [r0]
- movs r6, 0
- ldr r7, _08118664 @ =gSprites
- movs r0, 0x1C
- adds r0, r7
- mov r10, r0
- movs r1, 0x2E
- adds r1, r7
- mov r9, r1
- mov r8, r6
-_0811860A:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r0, r4, r7
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- mov r1, r10
- adds r2, r4, r1
- ldr r1, _08118668 @ =SpriteCallbackDummy
- str r1, [r2]
- movs r1, 0
- bl StartSpriteAnim
- movs r1, 0
- adds r2, r5, 0x1
- adds r3, r6, 0x1
-_08118632:
- lsls r0, r1, 1
- adds r0, r4
- add r0, r9
- mov r5, r8
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _08118632
- lsls r0, r2, 24
- lsrs r5, r0, 24
- lsls r0, r3, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _0811860A
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118660: .4byte gSharedMem + 0x19000
-_08118664: .4byte gSprites
-_08118668: .4byte SpriteCallbackDummy
- thumb_func_end sub_81185E8
-
- thumb_func_start sub_811866C
-sub_811866C: @ 811866C
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0811869C @ =gSharedMem + 0x19000
- ldrh r4, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldrh r2, [r3, 0x34]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- cmp r1, r0
- ble _081186A8
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r2, r1
- subs r2, r0, r4
- strh r2, [r3, 0x3A]
- lsls r1, r2, 16
- ldr r0, _081186A0 @ =0x01670000
- cmp r1, r0
- ble _081186AC
- ldr r5, _081186A4 @ =0xfffffe98
- adds r0, r2, r5
- b _081186AA
- .align 2, 0
-_0811869C: .4byte gSharedMem + 0x19000
-_081186A0: .4byte 0x01670000
-_081186A4: .4byte 0xfffffe98
-_081186A8:
- subs r0, r2, r4
-_081186AA:
- strh r0, [r3, 0x3A]
-_081186AC:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811866C
-
- thumb_func_start sub_81186B8
-sub_81186B8: @ 81186B8
- push {r4,lr}
- bl sub_811866C
- ldr r4, _081186E0 @ =gSharedMem + 0x19000
- lsls r0, 16
- asrs r0, 16
- bl __floatsisf
- ldr r1, _081186E4 @ =0x41f00000
- bl __divsf3
- bl __fixunssfsi
- adds r4, 0x7E
- strb r0, [r4]
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081186E0: .4byte gSharedMem + 0x19000
-_081186E4: .4byte 0x41f00000
- thumb_func_end sub_81186B8
-
- thumb_func_start sub_81186E8
-sub_81186E8: @ 81186E8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811866C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1E
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0xE
- bne _08118708
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0811871E
-_08118708:
- cmp r1, 0xD
- bgt _08118710
- movs r0, 0xE
- b _08118712
-_08118710:
- movs r0, 0x2B
-_08118712:
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
-_0811871E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81186E8
-
- thumb_func_start sub_8118724
-sub_8118724: @ 8118724
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r5, _08118770 @ =gSharedMem + 0x19000
- adds r4, r5, 0
- adds r4, 0x8C
- adds r1, r5, 0
- adds r1, 0x90
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- movs r0, 0x88
- adds r0, r5
- mov r8, r0
- ldr r0, [r0]
- bl __addsf3
- adds r4, r0, 0
- mov r1, r8
- str r4, [r1]
- ldr r7, _08118774 @ =0x43b40000
- adds r1, r7, 0
- bl __gesf2
- cmp r0, 0
- blt _08118778
- adds r0, r4, 0
- adds r1, r7, 0
- bl __subsf3
- mov r2, r8
- str r0, [r2]
- b _08118790
- .align 2, 0
-_08118770: .4byte gSharedMem + 0x19000
-_08118774: .4byte 0x43b40000
-_08118778:
- ldr r1, _08118824 @ =0x00000000
- adds r0, r4, 0
- bl __ltsf2
- cmp r0, 0
- bge _08118790
- adds r0, r4, 0
- adds r1, r7, 0
- bl __addsf3
- mov r1, r8
- str r0, [r1]
-_08118790:
- adds r0, r5, 0
- adds r0, 0x88
- ldr r0, [r0]
- bl __fixsfsi
- strh r0, [r6, 0x34]
- adds r4, r5, 0
- adds r4, 0x98
- adds r1, r5, 0
- adds r1, 0x9C
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- subs r4, 0x4
- ldr r0, [r4]
- bl __addsf3
- str r0, [r4]
- bl __fixsfsi
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r6, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08118818
- ldr r0, _08118828 @ =gMPlay_SE1
- ldr r4, _0811882C @ =0x0000ffff
- ldrh r2, [r6, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08118830 @ =gMPlay_SE2
- ldrh r2, [r6, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
-_08118818:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118824: .4byte 0x00000000
-_08118828: .4byte gMPlay_SE1
-_0811882C: .4byte 0x0000ffff
-_08118830: .4byte gMPlay_SE2
- thumb_func_end sub_8118724
-
- thumb_func_start sub_8118834
-sub_8118834: @ 8118834
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _0811888C @ =gSharedMem + 0x19000
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r1, 0x24]
- adds r2, r0, r1
- strh r2, [r5, 0x34]
- lsls r1, r2, 16
- ldr r0, _08118890 @ =0x01670000
- cmp r1, r0
- ble _08118850
- ldr r1, _08118894 @ =0xfffffe98
- adds r0, r2, r1
- strh r0, [r5, 0x34]
-_08118850:
- ldrh r0, [r5, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r5, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r5, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r0, r1
- ldr r1, _08118898 @ =gSpriteCoordOffsetY
- asrs r0, 12
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811888C: .4byte gSharedMem + 0x19000
-_08118890: .4byte 0x01670000
-_08118894: .4byte 0xfffffe98
-_08118898: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8118834
-
- thumb_func_start sub_811889C
-sub_811889C: @ 811889C
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8118724
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD4
- bls _081188C2
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _081188CE
-_081188C2:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_081188CE:
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1D
- ble _0811898E
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118908
- ldr r6, _08118900 @ =gSharedMem + 0x19000
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08118904 @ =0x40000000
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __lesf2
- cmp r0, 0
- bgt _0811898E
- b _08118926
- .align 2, 0
-_08118900: .4byte gSharedMem + 0x19000
-_08118904: .4byte 0x40000000
-_08118908:
- ldr r6, _08118994 @ =gSharedMem + 0x19000
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08118998 @ =0x40000000
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __gesf2
- cmp r0, 0
- blt _0811898E
-_08118926:
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r6, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r6, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _0811899C @ =sub_8118834
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- adds r2, r6, 0
- adds r2, 0x9C
- adds r1, r6, 0
- adds r1, 0x98
- ldr r0, _081189A0 @ =0x00000000
- str r0, [r1]
- str r0, [r2]
- subs r1, 0xC
- ldr r0, _081189A4 @ =0xbf800000
- str r0, [r1]
-_0811898E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08118994: .4byte gSharedMem + 0x19000
-_08118998: .4byte 0x40000000
-_0811899C: .4byte sub_8118834
-_081189A0: .4byte 0x00000000
-_081189A4: .4byte 0xbf800000
- thumb_func_end sub_811889C
-
- thumb_func_start sub_81189A8
-sub_81189A8: @ 81189A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- bl sub_8118724
- movs r1, 0x34
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _081189C6
- cmp r0, 0xB4
- beq _08118A2C
- b _08118B0C
-_081189C6:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _081189D0
- b _08118B0C
-_081189D0:
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r8, r0
- ldr r0, _08118A24 @ =gUnknown_083F8DF4
- mov r9, r0
- ldr r1, _08118A28 @ =gSharedMem + 0x19000
- mov r10, r1
- ldrb r4, [r1, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r9
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __divsf3
- b _08118A8A
- .align 2, 0
-_08118A24: .4byte gUnknown_083F8DF4
-_08118A28: .4byte gSharedMem + 0x19000
-_08118A2C:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _08118B0C
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r8, r0
- ldr r0, _08118B1C @ =gUnknown_083F8DF4
- mov r9, r0
- ldr r1, _08118B20 @ =gSharedMem + 0x19000
- mov r10, r1
- ldrb r4, [r1, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r9
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __divsf3
- bl __negsf2
-_08118A8A:
- adds r2, r0, 0
- mov r6, r10
- adds r1, r6, 0
- adds r1, 0xA0
- adds r0, r6, 0
- adds r0, 0x94
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0
- adds r0, 0x98
- str r2, [r0]
- movs r0, 0x9C
- adds r0, r6
- mov r8, r0
- adds r0, r2, 0
- adds r1, r2, 0
- bl __addsf3
- adds r1, r5, 0
- bl __divsf3
- adds r4, r0, 0
- adds r0, r5, 0
- adds r1, r5, 0
- bl __mulsf3
- adds r1, r0, 0
- ldr r0, _08118B24 @ =0x40000000
- bl __divsf3
- adds r1, r0, 0
- adds r0, r4, 0
- bl __addsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08118B28 @ =0x00000000
- str r0, [r1]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- adds r0, 0x2A
- movs r2, 0
- strb r2, [r0]
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08118B2C @ =sub_811889C
- str r0, [r7, 0x1C]
- strh r2, [r7, 0x32]
-_08118B0C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118B1C: .4byte gUnknown_083F8DF4
-_08118B20: .4byte gSharedMem + 0x19000
-_08118B24: .4byte 0x40000000
-_08118B28: .4byte 0x00000000
-_08118B2C: .4byte sub_811889C
- thumb_func_end sub_81189A8
-
- thumb_func_start sub_8118B30
-sub_8118B30: @ 8118B30
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, _08118BCC @ =0x3d4ccccd
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- adds r1, r0, 0
- subs r1, 0x2D
- strh r1, [r5, 0x26]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _08118BC6
- lsls r0, r1, 16
- cmp r0, 0
- blt _08118BC6
- ldr r4, _08118BD0 @ =gSharedMem + 0x19000
- adds r1, r4, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08118BD4 @ =sub_8118834
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- ldrb r0, [r4, 0x3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08118BC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08118BCC: .4byte 0x3d4ccccd
-_08118BD0: .4byte gSharedMem + 0x19000
-_08118BD4: .4byte sub_8118834
- thumb_func_end sub_8118B30
-
- thumb_func_start sub_8118BD8
-sub_8118BD8: @ 8118BD8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bgt _08118C1C
- ldrh r4, [r3, 0x26]
- subs r0, r4, 0x1
- strh r0, [r3, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2D
- bne _08118CA2
- ldr r2, _08118C14 @ =gSprites
- ldr r0, _08118C18 @ =gSharedMem + 0x19000
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08118CA2
- strh r4, [r3, 0x26]
- b _08118CA2
- .align 2, 0
-_08118C14: .4byte gSprites
-_08118C18: .4byte gSharedMem + 0x19000
-_08118C1C:
- lsls r0, r1, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bge _08118C68
- ldr r2, _08118C58 @ =gSprites
- ldr r0, _08118C5C @ =gSharedMem + 0x19000
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bne _08118CA2
- adds r0, r1, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08118C60
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- b _08118CA2
- .align 2, 0
-_08118C58: .4byte gSprites
-_08118C5C: .4byte gSharedMem + 0x19000
-_08118C60:
- ldrh r0, [r3, 0x26]
- subs r0, 0x1
- strh r0, [r3, 0x26]
- b _08118CA2
-_08118C68:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3F
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- strh r2, [r3, 0x32]
- ldr r0, _08118CA8 @ =sub_8118B30
- str r0, [r3, 0x1C]
- movs r0, 0x3D
- bl m4aSongNumStart
-_08118CA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118CA8: .4byte sub_8118B30
- thumb_func_end sub_8118BD8
-
- thumb_func_start sub_8118CAC
-sub_8118CAC: @ 8118CAC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8118724
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0x5A
- beq _08118CC6
- movs r0, 0x87
- lsls r0, 1
- cmp r1, r0
- beq _08118CD0
- b _08118CE0
-_08118CC6:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08118CE0
- b _08118CD8
-_08118CD0:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08118CE0
-_08118CD8:
- ldr r0, _08118CE8 @ =sub_8118BD8
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x32]
-_08118CE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118CE8: .4byte sub_8118BD8
- thumb_func_end sub_8118CAC
-
- thumb_func_start sub_8118CEC
-sub_8118CEC: @ 8118CEC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8118724
- ldr r0, _08118D10 @ =gSharedMem + 0x19000
- ldrb r0, [r0, 0x3]
- lsls r0, 27
- lsrs r0, 27
- cmp r0, 0
- beq _08118D04
- cmp r0, 0x1
- beq _08118D18
-_08118D04:
- adds r0, r4, 0
- bl sub_8119224
- ldr r0, _08118D14 @ =sub_81189A8
- b _08118D20
- .align 2, 0
-_08118D10: .4byte gSharedMem + 0x19000
-_08118D14: .4byte sub_81189A8
-_08118D18:
- adds r0, r4, 0
- bl sub_81193D4
- ldr r0, _08118D28 @ =sub_8118CAC
-_08118D20:
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118D28: .4byte sub_8118CAC
- thumb_func_end sub_8118CEC
-
- thumb_func_start sub_8118D2C
-sub_8118D2C: @ 8118D2C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8118724
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _08118D50
- ldr r4, _08118DB8 @ =gSharedMem + 0x19000
- adds r4, 0x98
- ldr r0, [r4]
- ldr r1, _08118DBC @ =0xbf800000
- bl __mulsf3
- str r0, [r4]
-_08118D50:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118DDC
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118DC4
- ldr r1, _08118DB8 @ =gSharedMem + 0x19000
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0xFF
- strb r0, [r2]
- ldrb r2, [r1, 0x3]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08118DC0 @ =sub_8118834
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _08118DDC
- .align 2, 0
-_08118DB8: .4byte gSharedMem + 0x19000
-_08118DBC: .4byte 0xbf800000
-_08118DC0: .4byte sub_8118834
-_08118DC4:
- adds r0, r5, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x38
- bl m4aSongNumStart
- adds r0, r5, 0
- bl sub_811952C
-_08118DDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8118D2C
-
- thumb_func_start sub_8118DE4
-sub_8118DE4: @ 8118DE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- bl sub_8118724
- movs r0, 0
- strh r0, [r7, 0x32]
- adds r0, r7, 0
- bl sub_81186B8
- ldr r1, _08118E70 @ =gUnknown_083F8D90
- ldr r6, _08118E74 @ =gSharedMem + 0x19000
- movs r0, 0x7E
- adds r0, r6
- mov r8, r0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r6, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _08118E7C
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r6, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r6, 0x3]
- adds r0, r7, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl StartSpriteAnim
- adds r0, r7, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r7, 0x36]
- adds r0, r7, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r7, 0x3A]
- ldr r0, _08118E78 @ =sub_8118834
- str r0, [r7, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _08118F74
- .align 2, 0
-_08118E70: .4byte gUnknown_083F8D90
-_08118E74: .4byte gSharedMem + 0x19000
-_08118E78: .4byte sub_8118834
-_08118E7C:
- movs r0, 0x38
- bl m4aSongNumStart
- bl Random
- movs r2, 0x1
- mov r9, r2
- mov r1, r9
- ands r1, r0
- mov r9, r1
- cmp r1, 0
- beq _08118EC0
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08118EB8 @ =0x00000000
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r1, r0, 24
- lsrs r2, r1, 24
- adds r1, r6, 0
- adds r1, 0x7F
- strb r0, [r1]
- ldr r5, _08118EBC @ =gUnknown_083F8DF4
- b _08118EF4
- .align 2, 0
-_08118EB8: .4byte 0x00000000
-_08118EBC: .4byte gUnknown_083F8DF4
-_08118EC0:
- adds r4, r6, 0
- adds r4, 0x8C
- ldr r5, _08118F1C @ =gUnknown_083F8DF4
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- adds r0, r1, 0
- bl __addsf3
- str r0, [r4]
- mov r0, r8
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r0, 0xB
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r6, 0
- adds r0, 0x7F
- strb r4, [r0]
-_08118EF4:
- ldr r0, _08118F20 @ =gUnknown_083F8D90
- lsls r1, r2, 3
- adds r0, 0x4
- adds r1, r0
- ldr r2, _08118F24 @ =gSharedMem + 0x19000
- ldr r1, [r1]
- ldr r0, [r2, 0x8]
- ands r1, r0
- cmp r1, 0
- beq _08118F28
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- ldrb r0, [r2, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r7, 0x32]
- b _08118F64
- .align 2, 0
-_08118F1C: .4byte gUnknown_083F8DF4
-_08118F20: .4byte gUnknown_083F8D90
-_08118F24: .4byte gSharedMem + 0x19000
-_08118F28:
- strh r1, [r7, 0x2E]
- ldrb r1, [r2, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08118F40
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x1]
- strh r0, [r7, 0x32]
- b _08118F64
-_08118F40:
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r7, 0x32]
- mov r1, r9
- cmp r1, 0
- beq _08118F5C
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _08118F58 @ =0x3f000000
- b _08118F62
- .align 2, 0
-_08118F58: .4byte 0x3f000000
-_08118F5C:
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _08118F80 @ =0xbfc00000
-_08118F62:
- str r0, [r1]
-_08118F64:
- adds r1, r2, 0
- adds r1, 0x98
- ldr r0, _08118F84 @ =0x3dae147b
- str r0, [r1]
- ldr r0, _08118F88 @ =sub_8118D2C
- str r0, [r7, 0x1C]
- movs r0, 0x5
- strh r0, [r7, 0x30]
-_08118F74:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118F80: .4byte 0xbfc00000
-_08118F84: .4byte 0x3dae147b
-_08118F88: .4byte sub_8118D2C
- thumb_func_end sub_8118DE4
-
- thumb_func_start sub_8118F8C
-sub_8118F8C: @ 8118F8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- bl sub_8118724
- ldr r5, _08119018 @ =gSharedMem + 0x19000
- movs r0, 0x8C
- adds r0, r5
- mov r8, r0
- ldr r0, [r0]
- ldr r1, _0811901C @ =0x3f000000
- bl __gtsf2
- cmp r0, 0
- bgt _0811906E
- adds r0, r6, 0
- bl sub_81186B8
- adds r0, r6, 0
- bl sub_81186E8
- lsls r0, 16
- cmp r0, 0
- bne _08119030
- adds r1, r5, 0
- adds r1, 0x90
- ldr r0, _08119020 @ =0x00000000
- str r0, [r1]
- ldr r1, _08119024 @ =gUnknown_083F8DF4
- mov r9, r1
- ldrb r0, [r5, 0x4]
- lsls r7, r0, 30
- lsrs r0, r7, 25
- add r0, r9
- movs r4, 0x3
- ldrsb r4, [r0, r4]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08118FEC
- ldr r1, _08119028 @ =0x43800000
- bl __addsf3
- adds r5, r0, 0
-_08118FEC:
- lsrs r0, r7, 25
- add r0, r9
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r5, 0
- bl __divsf3
- adds r1, r0, 0
- mov r2, r8
- ldr r0, [r2]
- bl __subsf3
- mov r1, r8
- str r0, [r1]
- movs r0, 0x4
- strh r0, [r6, 0x30]
- ldr r0, _0811902C @ =sub_8118DE4
- str r0, [r6, 0x1C]
- b _0811906E
- .align 2, 0
-_08119018: .4byte gSharedMem + 0x19000
-_0811901C: .4byte 0x3f000000
-_08119020: .4byte 0x00000000
-_08119024: .4byte gUnknown_083F8DF4
-_08119028: .4byte 0x43800000
-_0811902C: .4byte sub_8118DE4
-_08119030:
- adds r6, r5, 0
- adds r6, 0x90
- ldr r0, [r6]
- ldr r4, _0811907C @ =0x00000000
- adds r1, r4, 0
- bl __nesf2
- cmp r0, 0
- beq _0811906E
- mov r2, r8
- ldr r0, [r2]
- adds r1, r4, 0
- bl __ltsf2
- cmp r0, 0
- bge _0811906E
- str r4, [r6]
- mov r0, r8
- str r4, [r0]
- adds r4, r5, 0
- adds r4, 0x98
- ldr r0, [r4]
- bl __extendsfdf2
- ldr r2, _08119080 @ =0x3ff33333
- ldr r3, _08119084 @ =0x33333333
- bl __divdf3
- bl __truncdfsf2
- str r0, [r4]
-_0811906E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811907C: .4byte 0x00000000
-_08119080: .4byte 0x3ff33333
-_08119084: .4byte 0x33333333
- thumb_func_end sub_8118F8C
-
- thumb_func_start sub_8119088
-sub_8119088: @ 8119088
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_8118724
- ldr r5, _08119120 @ =gSharedMem + 0x19000
- adds r0, r5, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, _08119124 @ =0x42200000
- bl __gtsf2
- cmp r0, 0
- bgt _0811911A
- adds r7, r5, 0
- adds r7, 0x98
- adds r0, r5, 0
- adds r0, 0x86
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081190C2
- ldr r1, _08119128 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081190C2:
- ldr r0, _0811912C @ =0x40800000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r7, r5, 0
- adds r7, 0x90
- adds r5, 0x8C
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081190EA
- ldr r1, _08119128 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081190EA:
- ldr r0, [r5]
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x2
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x3
- strh r0, [r6, 0x30]
- ldr r0, _08119130 @ =sub_8118F8C
- str r0, [r6, 0x1C]
-_0811911A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119120: .4byte gSharedMem + 0x19000
-_08119124: .4byte 0x42200000
-_08119128: .4byte 0x47800000
-_0811912C: .4byte 0x40800000
-_08119130: .4byte sub_8118F8C
- thumb_func_end sub_8119088
-
- thumb_func_start sub_8119134
-sub_8119134: @ 8119134
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_8118724
- ldr r4, _081191DC @ =gSharedMem + 0x19000
- adds r0, r4, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, _081191E0 @ =0x42700000
- bl __gtsf2
- cmp r0, 0
- bgt _081191D4
- movs r0, 0x5D
- bl m4aSongNumStartOrChange
- adds r7, r4, 0
- adds r7, 0x98
- adds r0, r4, 0
- adds r0, 0x84
- movs r1, 0
- ldrsh r5, [r0, r1]
- adds r0, r5, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r5, 0
- bge _08119174
- ldr r1, _081191E4 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08119174:
- ldr r0, _081191E8 @ =0x41a00000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r7, r4, 0
- adds r7, 0x90
- adds r0, r4, 0
- adds r0, 0x8C
- ldr r1, [r0]
- ldr r0, _081191EC @ =0x3f800000
- bl __subsf3
- adds r4, r0, 0
- adds r0, r5, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r5, 0
- bge _081191A8
- ldr r1, _081191E4 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081191A8:
- adds r0, r4, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x30]
- ldr r0, _081191F0 @ =sub_8119088
- str r0, [r6, 0x1C]
-_081191D4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081191DC: .4byte gSharedMem + 0x19000
-_081191E0: .4byte 0x42700000
-_081191E4: .4byte 0x47800000
-_081191E8: .4byte 0x41a00000
-_081191EC: .4byte 0x3f800000
-_081191F0: .4byte sub_8119088
- thumb_func_end sub_8119134
-
- thumb_func_start sub_81191F4
-sub_81191F4: @ 81191F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r4, 0
- bl sub_8118724
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08119220 @ =sub_8119134
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119220: .4byte sub_8119134
- thumb_func_end sub_81191F4
-
- thumb_func_start sub_8119224
-sub_8119224: @ 8119224
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- ldr r1, _081193B8 @ =gUnknown_083FA60E
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r5, _081193BC @ =gSharedMem + 0x19000
- ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C
- movs r2, 0xC
- negs r2, r2
- movs r1, 0x24
- movs r3, 0x32
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x73
- strb r0, [r1]
- ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0
- movs r0, 0x2E
- ldrsh r2, [r7, r0]
- lsls r2, 2
- mov r1, sp
- adds r0, r1, r2
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r0, sp
- adds r0, 0x2
- adds r0, r2
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r4, 0
- movs r3, 0x3B
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x74
- strb r0, [r1]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x24
- movs r2, 0x8C
- movs r3, 0x33
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x75
- strb r0, [r1]
- ldr r3, _081193C8 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r6, 0
- adds r4, r3, 0
- mov r12, r5
- ldr r0, _081193CC @ =gUnknown_083F8DF4
- mov r8, r0
- mov r10, r12
-_081192BE:
- mov r1, r12
- adds r3, r1, r6
- adds r3, 0x73
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r12
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r5, r12
- adds r5, 0x74
- ldrb r1, [r5]
- strh r1, [r0, 0x38]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r12
- adds r1, 0x75
- ldrb r1, [r1]
- strh r1, [r0, 0x3A]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r0, 0x3C
- ldrsh r3, [r7, r0]
- mov r0, r12
- ldrb r1, [r0, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- add r0, r8
- ldrb r0, [r0, 0x1]
- muls r3, r0
- lsrs r1, 25
- add r1, r8
- ldrb r0, [r1, 0x2]
- ldr r1, _081193D0 @ =0x0000ffff
- adds r0, r1
- adds r3, r0
- strh r3, [r2, 0x34]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _081193C8 @ =gSprites
- cmp r6, 0x2
- bls _081192BE
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- mov r3, r10
- str r7, [r3, 0x38]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081193B8: .4byte gUnknown_083FA60E
-_081193BC: .4byte gSharedMem + 0x19000
-_081193C0: .4byte gSpriteTemplate_83FA50C
-_081193C4: .4byte gSpriteTemplate_83FA5C0
-_081193C8: .4byte gSprites
-_081193CC: .4byte gUnknown_083F8DF4
-_081193D0: .4byte 0x0000ffff
- thumb_func_end sub_8119224
-
- thumb_func_start sub_81193D4
-sub_81193D4: @ 81193D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- ldr r1, _08119514 @ =gUnknown_083FA616
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _08119518 @ =gSpriteTemplate_83FA524
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- mov r4, sp
- adds r4, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r3, 0x32
- bl CreateSprite
- ldr r6, _0811951C @ =gSharedMem + 0x19000
- adds r1, r6, 0
- adds r1, 0x73
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08119520 @ =gSprites
- adds r0, r5
- ldrh r1, [r7, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r4, r2
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0x33
- bl CreateSprite
- adds r4, r6, 0
- adds r4, 0x74
- strb r0, [r4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- mov r0, r9
- lsls r2, r0, 16
- asrs r2, 16
- ldr r3, _08119528 @ =gUnknown_083F8DF4
- ldrb r1, [r6, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x1]
- muls r2, r0
- lsrs r1, 25
- adds r1, r3
- ldrh r0, [r1, 0x10]
- adds r0, 0x2D
- adds r2, r0
- strh r2, [r7, 0x3C]
- adds r3, r6, 0
-_081194A2:
- mov r1, r8
- adds r2, r6, r1
- adds r2, 0x73
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x38]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x3A]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2D
- strh r0, [r1, 0x34]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _081194A2
- str r7, [r3, 0x38]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119514: .4byte gUnknown_083FA616
-_08119518: .4byte gSpriteTemplate_83FA524
-_0811951C: .4byte gSharedMem + 0x19000
-_08119520: .4byte gSprites
-_08119524: .4byte gSpriteTemplate_83FA5F0
-_08119528: .4byte gUnknown_083F8DF4
- thumb_func_end sub_81193D4
-
- thumb_func_start sub_811952C
-sub_811952C: @ 811952C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- movs r0, 0
- mov r10, r0
- movs r1, 0x5
- mov r9, r1
- movs r2, 0
- str r2, [sp, 0xC]
- mov r0, sp
- movs r1, 0
- movs r2, 0xA
- bl memset
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r7, _08119610 @ =gSharedMem + 0x19000
- adds r0, r7, 0
- adds r0, 0x7D
- movs r6, 0x1
- strb r6, [r0]
- ldrb r4, [r7, 0x3]
- movs r0, 0x20
- orrs r4, r0
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- strb r4, [r7, 0x3]
- adds r1, r7, 0
- adds r1, 0x7E
- movs r0, 0xFF
- strb r0, [r1]
- adds r5, r7, 0
- adds r5, 0x88
- mov r3, r8
- movs r1, 0x34
- ldrsh r0, [r3, r1]
- bl __floatsisf
- str r0, [r5]
- adds r1, r7, 0
- adds r1, 0x98
- ldr r0, _08119614 @ =0x00000000
- str r0, [r1]
- adds r3, r7, 0
- adds r3, 0x8C
- ldr r2, _08119618 @ =gUnknown_083F8DF4
- ldrb r0, [r7, 0x4]
- lsls r0, 30
- lsrs r1, r0, 25
- adds r2, 0x1C
- adds r1, r2
- ldr r1, [r1]
- str r1, [r3]
- lsrs r0, 30
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0x21
- lsls r4, 27
- lsrs r4, 27
- subs r6, r4
- lsls r0, r6, 4
- subs r0, r6
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r5, r10
- mov r3, r8
- movs r0, 0x34
- ldrsh r2, [r3, r0]
-_081195C8:
- cmp r1, r2
- bge _081195D4
- adds r0, r1, 0
- adds r0, 0x5A
- cmp r2, r0
- ble _08119638
-_081195D4:
- cmp r5, 0x3
- beq _0811961C
- adds r0, r1, 0
- adds r0, 0x5A
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081195C8
-_081195EA:
- ldr r0, _08119610 @ =gSharedMem + 0x19000
- ldrb r1, [r0, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- beq _08119664
- mov r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08119658
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
- b _08119670
- .align 2, 0
-_08119610: .4byte gSharedMem + 0x19000
-_08119614: .4byte 0x00000000
-_08119618: .4byte gUnknown_083F8DF4
-_0811961C:
- movs r0, 0x1
- mov r3, r8
- strh r0, [r3, 0x2E]
- ldr r2, _08119634 @ =gSharedMem + 0x19000
- ldrb r1, [r2, 0x3]
- subs r0, 0x21
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x3]
- b _081195EA
- .align 2, 0
-_08119634: .4byte gSharedMem + 0x19000
-_08119638:
- lsrs r0, r5, 1
- mov r1, r8
- strh r0, [r1, 0x2E]
- ldr r3, _08119654 @ =gSharedMem + 0x19000
- movs r1, 0x1
- ands r1, r5
- ldrb r2, [r3, 0x3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- b _081195EA
- .align 2, 0
-_08119654: .4byte gSharedMem + 0x19000
-_08119658:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08119670
-_08119664:
- movs r0, 0x99
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08119670:
- movs r5, 0x2
- ldr r4, _081196A0 @ =gSharedMem + 0x19000
- adds r0, r4, 0
- adds r0, 0x7F
- ldrb r0, [r0]
- adds r0, 0x2
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r1, [r4, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0x1
- bne _081196A4
- ldrb r1, [r4, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081196A4
- mov r0, r9
- adds r0, 0x6
- b _081196A8
- .align 2, 0
-_081196A0: .4byte gSharedMem + 0x19000
-_081196A4:
- mov r2, r9
- adds r0, r2, r5
-_081196A8:
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r5, r9
- bcs _0811970E
- ldr r6, _08119734 @ =gSharedMem + 0x19000
- ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC
-_081196B6:
- lsls r0, r3, 3
- ldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4
- adds r0, r1
- ldr r1, [r6, 0x8]
- ldr r2, [r0]
- ands r1, r2
- cmp r1, 0
- bne _081196F8
- mov r0, r10
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- add r0, sp
- strb r5, [r0]
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _081196F8
- ldrb r0, [r6, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- ldr r1, _08119740 @ =gSharedMem + 0x1901B
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _081196F8
- str r5, [sp, 0xC]
-_081196F8:
- adds r0, r3, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r9
- bcc _081196B6
-_0811970E:
- ldrb r0, [r4, 0x3]
- lsls r0, 27
- lsrs r0, 27
- adds r0, 0x1
- ldrb r1, [r4, 0x2]
- ands r0, r1
- cmp r0, 0
- beq _08119756
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _08119744
- movs r0, 0xFF
- ldr r3, [sp, 0x10]
- ands r0, r3
- cmp r0, 0xBF
- bhi _08119744
- mov r0, r8
- strh r2, [r0, 0x3C]
- b _08119766
- .align 2, 0
-_08119734: .4byte gSharedMem + 0x19000
-_08119738: .4byte gUnknown_083F8C00 + 0xC
-_0811973C: .4byte gUnknown_083F8D90 + 0x4
-_08119740: .4byte gSharedMem + 0x1901B
-_08119744:
- ldr r0, [sp, 0x10]
- mov r1, r10
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
- mov r1, r8
- strh r0, [r1, 0x3C]
- b _08119766
-_08119756:
- ldr r0, [sp, 0x10]
- mov r1, r10
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
- mov r2, r8
- strh r0, [r2, 0x3C]
-_08119766:
- ldr r3, _0811977C @ =sub_8118CEC
- mov r0, r8
- str r3, [r0, 0x1C]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811977C: .4byte sub_8118CEC
- thumb_func_end sub_811952C
-
- thumb_func_start sub_8119780
-sub_8119780: @ 8119780
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _081197CA
- ldrh r0, [r2, 0x20]
- subs r0, 0x2
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _081197CA
- ldr r4, _081197D0 @ =gSharedMem + 0x19000
- ldrb r1, [r4, 0x3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081197BA
- movs r0, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
-_081197BA:
- adds r0, r2, 0
- bl DestroySprite
- movs r0, 0
- strb r0, [r4, 0x1]
- ldr r0, _081197D4 @ =gUnknown_083FA61E
- ldrh r0, [r0]
- strh r0, [r4, 0x34]
-_081197CA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081197D0: .4byte gSharedMem + 0x19000
-_081197D4: .4byte gUnknown_083FA61E
- thumb_func_end sub_8119780
-
- thumb_func_start sub_81197D8
-sub_81197D8: @ 81197D8
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- ldr r1, _08119854 @ =gUnknown_083FA632
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0811985C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08119836
- ldr r3, _08119858 @ =gSpriteCoordOffsetY
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- lsls r2, 1
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r2, r0
- mov r1, sp
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3]
- movs r3, 0x3C
- ldrsh r2, [r4, r3]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _0811982E
- adds r0, r2, 0x4
-_0811982E:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- strh r0, [r4, 0x3C]
-_08119836:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08119884
- .align 2, 0
-_08119854: .4byte gUnknown_083FA632
-_08119858: .4byte gSpriteCoordOffsetY
-_0811985C:
- ldr r1, _0811988C @ =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08119890 @ =gSprites
- ldr r0, _08119894 @ =gSharedMem + 0x19000
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- bl DestroySprite
-_08119884:
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811988C: .4byte gSpriteCoordOffsetY
-_08119890: .4byte gSprites
-_08119894: .4byte gSharedMem + 0x19000
- thumb_func_end sub_81197D8
-
- thumb_func_start sub_8119898
-sub_8119898: @ 8119898
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, _08119948 @ =0x3d1fbe77
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- strh r0, [r5, 0x26]
- ldr r3, _0811994C @ =gSharedMem + 0x19000
- ldr r2, _08119950 @ =gUnknown_083FA61E
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _081198DE
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_081198DE:
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x3C
- ble _08119940
- movs r0, 0
- strh r0, [r5, 0x30]
- ldr r3, _08119954 @ =sub_8119780
- str r3, [r5, 0x1C]
- ldr r2, _08119958 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- str r3, [r0]
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0811995C @ =0x0000fffe
- strh r1, [r0, 0x30]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08119960 @ =sub_81197D8
- str r1, [r0]
- movs r0, 0xD6
- bl m4aSongNumStart
-_08119940:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119948: .4byte 0x3d1fbe77
-_0811994C: .4byte gSharedMem + 0x19000
-_08119950: .4byte gUnknown_083FA61E
-_08119954: .4byte sub_8119780
-_08119958: .4byte gSprites
-_0811995C: .4byte 0x0000fffe
-_08119960: .4byte sub_81197D8
- thumb_func_end sub_8119898
-
- thumb_func_start sub_8119964
-sub_8119964: @ 8119964
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081199E4
- ldr r3, _08119990 @ =gSharedMem + 0x19000
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119998
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119994 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- b _081199AA
- .align 2, 0
-_08119990: .4byte gSharedMem + 0x19000
-_08119994: .4byte gUnknown_083F8DF4
-_08119998:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _081199D8 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, 0xB4
-_081199AA:
- cmp r2, r0
- bne _08119A78
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r1, _081199DC @ =gSharedMem + 0x19000
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, _081199E0 @ =gUnknown_083FA61E
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- b _08119A78
- .align 2, 0
-_081199D8: .4byte gUnknown_083F8DF4
-_081199DC: .4byte gSharedMem + 0x19000
-_081199E0: .4byte gUnknown_083FA61E
-_081199E4:
- ldr r3, _08119A20 @ =gSharedMem + 0x19000
- ldr r2, _08119A24 @ =gUnknown_083FA61E
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _08119A04
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_08119A04:
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119A2C
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119A28 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- b _08119A3E
- .align 2, 0
-_08119A20: .4byte gSharedMem + 0x19000
-_08119A24: .4byte gUnknown_083FA61E
-_08119A28: .4byte gUnknown_083F8DF4
-_08119A2C:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119A80 @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- adds r0, 0xB4
-_08119A3E:
- cmp r2, r0
- bne _08119A78
- ldr r2, _08119A84 @ =gSprites
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08119A88 @ =sub_8119898
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, _08119A8C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08119A78:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119A80: .4byte gUnknown_083F8DF4
-_08119A84: .4byte gSprites
-_08119A88: .4byte sub_8119898
-_08119A8C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8119964
-
- thumb_func_start sub_8119A90
-sub_8119A90: @ 8119A90
- adds r0, 0x3E
- ldrb r3, [r0]
- lsls r1, r3, 29
- lsrs r1, 31
- movs r2, 0x1
- eors r2, r1
- lsls r2, 2
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8119A90
-
- thumb_func_start sub_8119AAC
-sub_8119AAC: @ 8119AAC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _08119AC4
- subs r0, r2, 0x1
- strh r0, [r4, 0x22]
- b _08119B12
-_08119AC4:
- ldr r0, _08119B18 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5E
- bl m4aSongNumStop
- adds r0, r4, 0
- bl DestroySprite
- ldr r5, _08119B1C @ =gSprites
- ldr r4, _08119B20 @ =gSharedMem + 0x19000
- adds r4, 0x74
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_08119B12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119B18: .4byte SpriteCallbackDummy
-_08119B1C: .4byte gSprites
-_08119B20: .4byte gSharedMem + 0x19000
- thumb_func_end sub_8119AAC
-
- thumb_func_start sub_8119B24
-sub_8119B24: @ 8119B24
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08119B4E
- subs r1, 0x1
- strh r1, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bne _08119BB8
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08119BB8
- b _08119B74
-_08119B4E:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08119B84
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _08119BB8
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08119B7C
-_08119B74:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _08119BB8
-_08119B7C:
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- b _08119BB8
-_08119B84:
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r0, _08119BC0 @ =gSharedMem + 0x19000
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08119BC4 @ =sub_8119AAC
- str r0, [r4, 0x1C]
- ldr r2, _08119BC8 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0]
-_08119BB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119BC0: .4byte gSharedMem + 0x19000
-_08119BC4: .4byte sub_8119AAC
-_08119BC8: .4byte gSprites
- thumb_func_end sub_8119B24
-
- thumb_func_start sub_8119BCC
-sub_8119BCC: @ 8119BCC
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- ldr r1, _08119C44 @ =gUnknown_083FA64A
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r5, sp, 0x4
- ldr r1, _08119C48 @ =gUnknown_083FA64C
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08119C5C
- ldr r0, _08119C4C @ =gSharedMem + 0x19000
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08119CF6
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r4, 0x74
- subs r4, r0
- lsrs r0, r4, 31
- adds r4, r0
- asrs r4, 1
- negs r4, r4
- ldr r0, _08119C50 @ =gMPlay_SE1
- ldr r5, _08119C54 @ =0x0000ffff
- lsls r4, 24
- asrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08119C58 @ =gMPlay_SE2
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- b _08119CF6
- .align 2, 0
-_08119C44: .4byte gUnknown_083FA64A
-_08119C48: .4byte gUnknown_083FA64C
-_08119C4C: .4byte gSharedMem + 0x19000
-_08119C50: .4byte gMPlay_SE1
-_08119C54: .4byte 0x0000ffff
-_08119C58: .4byte gMPlay_SE2
-_08119C5C:
- lsls r0, r1, 16
- cmp r0, 0
- blt _08119CAC
- ldr r0, _08119CA8 @ =gSharedMem + 0x19000
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- add r0, sp
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- subs r0, r1, r0
- lsls r0, 1
- adds r0, r5, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r1, r0
- lsls r1, 1
- mov r0, sp
- adds r0, 0x5
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _08119CF6
- .align 2, 0
-_08119CA8: .4byte gSharedMem + 0x19000
-_08119CAC:
- movs r0, 0x5E
- bl m4aSongNumStartOrChange
- ldr r0, _08119CCC @ =gSharedMem + 0x19000
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _08119CD0
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08119CDC
- .align 2, 0
-_08119CCC: .4byte gSharedMem + 0x19000
-_08119CD0:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08119CDC:
- ldr r0, _08119D00 @ =gSharedMem + 0x19000
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x2D
- strh r0, [r4, 0x30]
- ldr r0, _08119D04 @ =sub_8119B24
- str r0, [r4, 0x1C]
-_08119CF6:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119D00: .4byte gSharedMem + 0x19000
-_08119D04: .4byte sub_8119B24
- thumb_func_end sub_8119BCC
-
- thumb_func_start sub_8119D08
-sub_8119D08: @ 8119D08
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _08119D64 @ =gUnknown_083FA64A
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- blt _08119D70
- ldr r0, _08119D68 @ =gSharedMem + 0x19000
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldr r1, _08119D6C @ =gSprites
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _08119D74
- .align 2, 0
-_08119D64: .4byte gUnknown_083FA64A
-_08119D68: .4byte gSharedMem + 0x19000
-_08119D6C: .4byte gSprites
-_08119D70:
- ldr r0, _08119D7C @ =sub_8119A90
- str r0, [r4, 0x1C]
-_08119D74:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119D7C: .4byte sub_8119A90
- thumb_func_end sub_8119D08
-
- thumb_func_start sub_8119D80
-sub_8119D80: @ 8119D80
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _08119DB8 @ =gSharedMem + 0x19000
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119DC4
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119DBC @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x12]
- adds r0, 0x5A
- cmp r2, r0
- bne _08119E26
- ldr r2, _08119DC0 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x34
- b _08119DEE
- .align 2, 0
-_08119DB8: .4byte gSharedMem + 0x19000
-_08119DBC: .4byte gUnknown_083F8DF4
-_08119DC0: .4byte gSprites
-_08119DC4:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119E2C @ =gUnknown_083F8DF4
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x14]
- movs r1, 0x87
- lsls r1, 1
- adds r0, r1
- cmp r2, r0
- bne _08119E26
- ldr r2, _08119E30 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x2E
-_08119DEE:
- strh r3, [r0, 0x30]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08119E34 @ =sub_8119D08
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08119E38 @ =sub_8119BCC
- str r1, [r0]
- movs r0, 0x2B
- bl m4aSongNumStart
-_08119E26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119E2C: .4byte gUnknown_083F8DF4
-_08119E30: .4byte gSprites
-_08119E34: .4byte sub_8119D08
-_08119E38: .4byte sub_8119BCC
- thumb_func_end sub_8119D80
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/roulette_util.s b/asm/roulette_util.s
deleted file mode 100644
index 5ddaa3a6e..000000000
--- a/asm/roulette_util.s
+++ /dev/null
@@ -1,779 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8124918
-sub_8124918: @ 8124918
- push {lr}
- movs r1, 0
- strb r1, [r0]
- strh r1, [r0, 0x2]
- adds r0, 0x4
- movs r2, 0xC0
- bl memset
- pop {r0}
- bx r0
- thumb_func_end sub_8124918
-
- thumb_func_start sub_812492C
-sub_812492C: @ 812492C
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0xF
- bhi _08124948
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r3, r0
- ldrb r7, [r5, 0x4]
- lsrs r0, r7, 7
- cmp r0, 0
- beq _0812494C
-_08124948:
- movs r0, 0xFF
- b _081249AA
-_0812494C:
- ldrh r0, [r2]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrh r0, [r2, 0x2]
- strh r0, [r5, 0xA]
- ldrb r0, [r2, 0x4]
- strb r0, [r5, 0xC]
- ldrb r0, [r2, 0x5]
- strb r0, [r5, 0xD]
- ldrb r0, [r2, 0x6]
- strb r0, [r5, 0xE]
- ldrb r3, [r2, 0x7]
- lsls r0, r3, 27
- lsrs r0, 27
- ldrb r2, [r5, 0xF]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- movs r0, 0x60
- ands r0, r3
- movs r2, 0x61
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- lsls r3, 24
- asrs r3, 31
- lsls r3, 7
- movs r0, 0x7F
- ands r1, r0
- orrs r1, r3
- strb r1, [r5, 0xF]
- subs r0, 0xFF
- ands r0, r7
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r5, 0x4]
- strb r4, [r5, 0x6]
- strb r4, [r5, 0x5]
- lsls r1, 24
- cmp r1, 0
- bge _081249A4
- movs r0, 0xFF
- b _081249A6
-_081249A4:
- movs r0, 0x1
-_081249A6:
- strb r0, [r5, 0x7]
- adds r0, r6, 0
-_081249AA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_812492C
-
- thumb_func_start unref_sub_81249B0
-unref_sub_81249B0: @ 81249B0
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- cmp r4, 0xF
- bhi _081249DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r1, r2, r0
- ldrb r0, [r1, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _081249DC
- adds r0, r1, 0x4
- movs r1, 0
- movs r2, 0xC
- bl memset
- adds r0, r4, 0
- b _081249DE
-_081249DC:
- movs r0, 0xFF
-_081249DE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81249B0
-
- thumb_func_start sub_81249E4
-sub_81249E4: @ 81249E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- movs r0, 0
- mov r12, r0
- ldrb r1, [r5, 0x8]
- cmp r12, r1
- bcc _081249FC
- b _08124B94
-_081249FC:
- movs r7, 0x1F
- ldr r0, _08124A2C @ =0xfffffc1f
- mov r10, r0
- movs r1, 0x7D
- negs r1, r1
- mov r9, r1
- movs r0, 0x1F
- mov r8, r0
-_08124A0C:
- ldrh r0, [r5, 0x6]
- add r0, r12
- lsls r0, 1
- ldr r1, _08124A30 @ =gPlttBufferFaded
- adds r3, r0, r1
- ldr r1, _08124A34 @ =gPlttBufferUnfaded
- adds r6, r0, r1
- ldrb r0, [r5]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _08124A38
- cmp r0, 0x2
- beq _08124A96
- b _08124B82
- .align 2, 0
-_08124A2C: .4byte 0xfffffc1f
-_08124A30: .4byte gPlttBufferFaded
-_08124A34: .4byte gPlttBufferUnfaded
-_08124A38:
- ldr r0, [r3]
- lsls r2, r0, 27
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _08124A5A
- lsrs r0, r2, 27
- adds r0, r1
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124A5A:
- ldr r0, [r3]
- lsls r2, r0, 22
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _08124A7E
- lsrs r0, r2, 27
- adds r0, r1
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124A7E:
- ldr r0, [r3]
- lsls r2, r0, 17
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bls _08124A90
- b _08124B82
-_08124A90:
- lsrs r0, r2, 27
- adds r0, r1
- b _08124B74
-_08124A96:
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- cmp r0, 0
- bge _08124B08
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- blt _08124AC6
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124AC6:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- blt _08124AF0
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124AF0:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- blt _08124B82
- b _08124B70
-_08124B08:
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B30
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124B30:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B5A
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124B5A:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B82
-_08124B70:
- lsrs r0, r4, 27
- adds r0, r2
-_08124B74:
- ands r0, r7
- lsls r0, 2
- ldrb r2, [r3, 0x1]
- mov r1, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
-_08124B82:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- ldrb r0, [r5, 0x8]
- cmp r12, r0
- bcs _08124B94
- b _08124A0C
-_08124B94:
- ldrb r1, [r5, 0x2]
- adds r0, r1, 0x1
- strb r0, [r5, 0x2]
- ldrb r0, [r5, 0xB]
- lsls r0, 27
- lsls r1, 24
- asrs r0, 3
- cmp r1, r0
- beq _08124BAA
- movs r0, 0
- b _08124BDE
-_08124BAA:
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- negs r0, r0
- strb r0, [r5, 0x3]
- ldrb r2, [r5]
- movs r1, 0x7F
- movs r0, 0x7F
- ands r0, r2
- cmp r0, 0x1
- bne _08124BCA
- lsls r0, r2, 25
- lsrs r0, 25
- adds r0, 0x1
- b _08124BD0
-_08124BCA:
- lsls r0, r2, 25
- lsrs r0, 25
- subs r0, 0x1
-_08124BD0:
- ands r0, r1
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x1
-_08124BDE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81249E4
-
- thumb_func_start sub_8124BEC
-sub_8124BEC: @ 8124BEC
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- ldrb r0, [r3]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _08124C02
- cmp r0, 0x2
- beq _08124C30
- b _08124C6A
-_08124C02:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _08124C22
- ldr r4, _08124C2C @ =gPlttBufferFaded
-_08124C0A:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r3, 0x4]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _08124C0A
-_08124C22:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- b _08124C5C
- .align 2, 0
-_08124C2C: .4byte gPlttBufferFaded
-_08124C30:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _08124C54
- ldr r5, _08124C74 @ =gPlttBufferFaded
- ldr r4, _08124C78 @ =gPlttBufferUnfaded
-_08124C3A:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r1, r0, r5
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _08124C3A
-_08124C54:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- subs r1, 0x1
-_08124C5C:
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08124C6A:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08124C74: .4byte gPlttBufferFaded
-_08124C78: .4byte gPlttBufferUnfaded
- thumb_func_end sub_8124BEC
-
- thumb_func_start task_tutorial_controls_fadein
-task_tutorial_controls_fadein: @ 8124C7C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08124CE0
-_08124C88:
- ldrh r0, [r4, 0x2]
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08124CD6
- lsls r1, r5, 1
- adds r0, r1, r5
- lsls r3, r0, 2
- adds r2, r4, r3
- ldrb r0, [r2, 0x5]
- subs r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r1, 0
- cmp r0, 0xFF
- bne _08124CD6
- ldrh r0, [r2, 0x8]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08124CC4
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_81249E4
- b _08124CCC
-_08124CC4:
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_8124BEC
-_08124CCC:
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r0, 0xD]
- strb r1, [r0, 0x5]
-_08124CD6:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08124C88
-_08124CE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end task_tutorial_controls_fadein
-
- thumb_func_start sub_8124CE8
-sub_8124CE8: @ 8124CE8
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r4, 0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r5, 0x1
- movs r7, 0x80
- negs r7, r7
-_08124CFE:
- adds r0, r6, 0
- asrs r0, r4
- ands r0, r5
- cmp r0, 0
- beq _08124D2C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r3, r0
- ldrb r0, [r2, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _08124D2C
- adds r0, r5, 0
- lsls r0, r4
- ldrh r1, [r3, 0x2]
- orrs r0, r1
- strh r0, [r3, 0x2]
- ldrb r1, [r2, 0x4]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r5
- strb r0, [r2, 0x4]
-_08124D2C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08124CFE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124CE8
-
- thumb_func_start sub_8124D3C
-sub_8124D3C: @ 8124D3C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r5, 0
- movs r3, 0x1
-_08124D4A:
- ldrh r0, [r6, 0x2]
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _08124DB2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r4, r6, r0
- ldrb r0, [r4, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _08124DB2
- adds r0, r7, 0
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _08124DB2
- ldrh r1, [r4, 0xA]
- lsls r1, 1
- ldr r0, _08124DA8 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08124DAC @ =gPlttBufferUnfaded
- adds r1, r2
- ldrb r2, [r4, 0xC]
- lsls r2, 1
- str r3, [sp]
- bl memcpy
- ldrb r0, [r4, 0x4]
- movs r2, 0x80
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x4]
- movs r0, 0
- strb r0, [r4, 0x6]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0xF]
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- bge _08124DB0
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- b _08124DB2
- .align 2, 0
-_08124DA8: .4byte gPlttBufferFaded
-_08124DAC: .4byte gPlttBufferUnfaded
-_08124DB0:
- strb r3, [r4, 0x7]
-_08124DB2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08124D4A
- ldr r0, _08124DC8 @ =0x0000ffff
- cmp r7, r0
- bne _08124DCC
- movs r0, 0
- strb r0, [r6]
- b _08124DD0
- .align 2, 0
-_08124DC8: .4byte 0x0000ffff
-_08124DCC:
- ldrh r0, [r6, 0x2]
- bics r0, r7
-_08124DD0:
- strh r0, [r6, 0x2]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124D3C
-
- thumb_func_start sub_8124DDC
-sub_8124DDC: @ 8124DDC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r6, r3
- cmp r1, r4
- bcs _08124E26
-_08124E04:
- lsls r0, r1, 6
- adds r2, r6, r0
- movs r0, 0
- adds r3, r1, 0x1
- cmp r0, r5
- bcs _08124E1E
-_08124E10:
- strh r7, [r2]
- adds r2, 0x2
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bcc _08124E10
-_08124E1E:
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, r4
- bcc _08124E04
-_08124E26:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124DDC
-
- thumb_func_start sub_8124E2C
-sub_8124E2C: @ 8124E2C
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r6, r4, 24
- movs r4, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r7, r3
- cmp r4, r6
- bcs _08124E76
-_08124E50:
- lsls r0, r4, 6
- adds r2, r7, r0
- movs r3, 0
- adds r4, 0x1
- cmp r3, r5
- bcs _08124E6E
-_08124E5C:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _08124E5C
-_08124E6E:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08124E50
-_08124E76:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124E2C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
deleted file mode 100644
index 62792245d..000000000
--- a/asm/slot_machine.s
+++ /dev/null
@@ -1,10158 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start PlaySlotMachine
-PlaySlotMachine: @ 81018A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81019B0
- ldr r0, _081018B4 @ =sub_81018B8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_081018B4: .4byte sub_81018B8
- thumb_func_end PlaySlotMachine
-
- thumb_func_start sub_81018B8
-sub_81018B8: @ 81018B8
- push {lr}
- ldr r0, _081018D0 @ =gMain
- ldr r1, _081018D4 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _0810194A
- lsls r0, 2
- ldr r1, _081018D8 @ =_081018DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081018D0: .4byte gMain
-_081018D4: .4byte 0x0000043c
-_081018D8: .4byte _081018DC
- .align 2, 0
-_081018DC:
- .4byte _081018F8
- .4byte _08101902
- .4byte _08101908
- .4byte _08101912
- .4byte _08101918
- .4byte _0810191E
- .4byte _08101938
-_081018F8:
- bl sub_8101A28
- bl sub_8101BA4
- b _08101922
-_08101902:
- bl sub_8101A8C
- b _08101922
-_08101908:
- bl sub_8101AE0
- bl sub_8101B04
- b _08101922
-_08101912:
- bl sub_8101C84
- b _08101922
-_08101918:
- bl sub_8101CA0
- b _08101922
-_0810191E:
- bl sub_8101CC0
-_08101922:
- ldr r1, _08101930 @ =gMain
- ldr r0, _08101934 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810194A
- .align 2, 0
-_08101930: .4byte gMain
-_08101934: .4byte 0x0000043c
-_08101938:
- bl sub_8101CD4
- bl sub_8101CEC
- bl sub_8101A44
- ldr r0, _08101950 @ =sub_8101954
- bl SetMainCallback2
-_0810194A:
- pop {r0}
- bx r0
- .align 2, 0
-_08101950: .4byte sub_8101954
- thumb_func_end sub_81018B8
-
- thumb_func_start sub_8101954
-sub_8101954: @ 8101954
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8101954
-
- thumb_func_start sub_810196C
-sub_810196C: @ 810196C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _081019A8 @ =REG_WIN0H
- ldr r2, _081019AC @ =gSharedMem
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- adds r0, r2, 0
- adds r0, 0x5A
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- adds r0, r2, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r0, r2, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_081019A8: .4byte REG_WIN0H
-_081019AC: .4byte gSharedMem
- thumb_func_end sub_810196C
-
- thumb_func_start sub_81019B0
-sub_81019B0: @ 81019B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081019E4 @ =nullsub_67
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _081019E8 @ =gTasks
- adds r0, r1
- strh r4, [r0, 0x8]
- adds r0, 0xA
- adds r1, r5, 0
- bl StoreWordInTwoHalfwords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081019E4: .4byte nullsub_67
-_081019E8: .4byte gTasks
- thumb_func_end sub_81019B0
-
- thumb_func_start sub_81019EC
-sub_81019EC: @ 81019EC
- push {lr}
- ldr r0, _08101A18 @ =nullsub_67
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r0, _08101A1C @ =gTasks
- adds r2, r0
- ldr r1, _08101A20 @ =gSharedMem
- ldrh r0, [r2, 0x8]
- strb r0, [r1, 0x1]
- adds r2, 0xA
- adds r1, 0x64
- adds r0, r2, 0
- bl LoadWordFromTwoHalfwords
- pop {r0}
- bx r0
- .align 2, 0
-_08101A18: .4byte nullsub_67
-_08101A1C: .4byte gTasks
-_08101A20: .4byte gSharedMem
- thumb_func_end sub_81019EC
-
- thumb_func_start nullsub_67
-nullsub_67: @ 8101A24
- bx lr
- thumb_func_end nullsub_67
-
- thumb_func_start sub_8101A28
-sub_8101A28: @ 8101A28
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_8101A28
-
- thumb_func_start sub_8101A44
-sub_8101A44: @ 8101A44
- push {r4,lr}
- ldr r0, _08101A7C @ =sub_810196C
- bl SetVBlankCallback
- ldr r3, _08101A80 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08101A84 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08101A88 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101A7C: .4byte sub_810196C
-_08101A80: .4byte 0x04000208
-_08101A84: .4byte 0x04000200
-_08101A88: .4byte REG_DISPSTAT
- thumb_func_end sub_8101A44
-
- thumb_func_start sub_8101A8C
-sub_8101A8C: @ 8101A8C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _08101AD8 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08101ADC @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08101AAA:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _08101AAA
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101AD8: .4byte 0x040000d4
-_08101ADC: .4byte 0x81000800
- thumb_func_end sub_8101A8C
-
- thumb_func_start sub_8101AE0
-sub_8101AE0: @ 8101AE0
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08101AFC @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08101B00 @ =0x81000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08101AFC: .4byte 0x040000d4
-_08101B00: .4byte 0x81000200
- thumb_func_end sub_8101AE0
-
- thumb_func_start sub_8101B04
-sub_8101B04: @ 8101B04
- push {r4,r5,lr}
- ldr r5, _08101B70 @ =REG_BG0CNT
- movs r1, 0
- strh r1, [r5]
- ldr r2, _08101B74 @ =REG_BG1CNT
- strh r1, [r2]
- ldr r3, _08101B78 @ =REG_BG2CNT
- strh r1, [r3]
- ldr r4, _08101B7C @ =REG_BG3CNT
- strh r1, [r4]
- ldr r0, _08101B80 @ =REG_BG0HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08101B84 @ =0x00001f08
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _08101B88 @ =0x00001c01
- adds r0, r1, 0
- strh r0, [r2]
- ldr r2, _08101B8C @ =0x00001d02
- adds r0, r2, 0
- strh r0, [r3]
- ldr r1, _08101B90 @ =0x00001e02
- adds r0, r1, 0
- strh r0, [r4]
- ldr r0, _08101B94 @ =REG_WININ
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08101B98 @ =REG_BLDCNT
- ldr r2, _08101B9C @ =0x00001048
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08101BA0 @ =0x00000809
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08101B70: .4byte REG_BG0CNT
-_08101B74: .4byte REG_BG1CNT
-_08101B78: .4byte REG_BG2CNT
-_08101B7C: .4byte REG_BG3CNT
-_08101B80: .4byte REG_BG0HOFS
-_08101B84: .4byte 0x00001f08
-_08101B88: .4byte 0x00001c01
-_08101B8C: .4byte 0x00001d02
-_08101B90: .4byte 0x00001e02
-_08101B94: .4byte REG_WININ
-_08101B98: .4byte REG_BLDCNT
-_08101B9C: .4byte 0x00001048
-_08101BA0: .4byte 0x00000809
- thumb_func_end sub_8101B04
-
- thumb_func_start sub_8101BA4
-sub_8101BA4: @ 8101BA4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_81019EC
- ldr r5, _08101C74 @ =gSharedMem
- movs r4, 0
- strb r4, [r5]
- strb r4, [r5, 0x2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- strb r1, [r5, 0x3]
- strb r4, [r5, 0x4]
- movs r0, 0
- strh r4, [r5, 0x8]
- strb r0, [r5, 0xA]
- strb r0, [r5, 0xB]
- ldr r0, _08101C78 @ =gSaveBlock1
- ldr r1, _08101C7C @ =0x00000494
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0xC]
- strh r4, [r5, 0xE]
- strh r4, [r5, 0x10]
- strh r4, [r5, 0x12]
- strh r4, [r5, 0x18]
- movs r0, 0x8
- strh r0, [r5, 0x1A]
- adds r1, r5, 0
- adds r1, 0x58
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA0
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x5C
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl GetCurrentMapMusic
- adds r1, r5, 0
- adds r1, 0x60
- strh r0, [r1]
- movs r7, 0
- adds r6, r5, 0
- ldr r2, _08101C80 @ =gUnknown_083ECCF8
- mov r9, r2
- movs r0, 0x1C
- adds r0, r6
- mov r8, r0
-_08101C14:
- lsls r5, r7, 1
- adds r0, r6, 0
- adds r0, 0x22
- adds r0, r5, r0
- movs r1, 0
- strh r1, [r0]
- adds r4, r6, 0
- adds r4, 0x28
- adds r4, r5, r4
- ldrb r0, [r6, 0x3]
- lsls r0, 1
- lsls r1, r7, 2
- adds r0, r1
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x15
- bl __modsi3
- strh r0, [r4]
- add r5, r8
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- movs r2, 0xFC
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r5]
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r1, r2, 0
- bl __modsi3
- strh r0, [r5]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08101C14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C74: .4byte gSharedMem
-_08101C78: .4byte gSaveBlock1
-_08101C7C: .4byte 0x00000494
-_08101C80: .4byte gUnknown_083ECCF8
- thumb_func_end sub_8101BA4
-
- thumb_func_start sub_8101C84
-sub_8101C84: @ 8101C84
- push {r4,lr}
- ldr r4, _08101C9C @ =gWindowConfig_81E7128
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C9C: .4byte gWindowConfig_81E7128
- thumb_func_end sub_8101C84
-
- thumb_func_start sub_8101CA0
-sub_8101CA0: @ 8101CA0
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- ldr r1, _08101CBC @ =gOamLimit
- movs r0, 0x80
- strb r0, [r1]
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- .align 2, 0
-_08101CBC: .4byte gOamLimit
- thumb_func_end sub_8101CA0
-
- thumb_func_start sub_8101CC0
-sub_8101CC0: @ 8101CC0
- push {lr}
- bl sub_8106448
- bl sub_81064B8
- bl sub_81063C0
- pop {r0}
- bx r0
- thumb_func_end sub_8101CC0
-
- thumb_func_start sub_8101CD4
-sub_8101CD4: @ 8101CD4
- push {lr}
- bl sub_8104EA8
- bl sub_8104F8C
- bl sub_8103DC8
- bl sub_81050C4
- pop {r0}
- bx r0
- thumb_func_end sub_8101CD4
-
- thumb_func_start sub_8101CEC
-sub_8101CEC: @ 8101CEC
- push {lr}
- bl sub_8104048
- bl sub_8102DA8
- bl sub_8104C5C
- bl sub_8101D04
- pop {r0}
- bx r0
- thumb_func_end sub_8101CEC
-
- thumb_func_start sub_8101D04
-sub_8101D04: @ 8101D04
- push {r4,lr}
- ldr r4, _08101D20 @ =sub_8101D24
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D20: .4byte sub_8101D24
- thumb_func_end sub_8101D04
-
- thumb_func_start sub_8101D24
-sub_8101D24: @ 8101D24
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08101D50 @ =gUnknown_083ECAAC
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _08101D54 @ =gSharedMem
- ldr r5, _08101D58 @ =gTasks
-_08101D36:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08101D36
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D50: .4byte gUnknown_083ECAAC
-_08101D54: .4byte gSharedMem
-_08101D58: .4byte gTasks
- thumb_func_end sub_8101D24
-
- thumb_func_start sub_8101D5C
-sub_8101D5C: @ 8101D5C
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r4, _08101D88 @ =gSharedMem
- ldrb r0, [r4, 0x2]
- bl sub_810423C
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08101D88: .4byte gSharedMem
- thumb_func_end sub_8101D5C
-
- thumb_func_start sub_8101D8C
-sub_8101D8C: @ 8101D8C
- push {lr}
- ldr r0, _08101DA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101DA2
- ldr r1, _08101DAC @ =gSharedMem
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08101DA2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101DA8: .4byte gPaletteFade
-_08101DAC: .4byte gSharedMem
- thumb_func_end sub_8101D8C
-
- thumb_func_start sub_8101DB0
-sub_8101DB0: @ 8101DB0
- push {lr}
- ldr r2, _08101DD8 @ =gSharedMem
- movs r0, 0
- strh r0, [r2, 0xE]
- strh r0, [r2, 0x12]
- strh r0, [r2, 0x18]
- ldrb r1, [r2, 0x4]
- movs r0, 0xC0
- ands r0, r1
- strb r0, [r2, 0x4]
- movs r0, 0x4
- strb r0, [r2]
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _08101DDC
- movs r0, 0x19
- strb r0, [r2]
- b _08101DEC
- .align 2, 0
-_08101DD8: .4byte gSharedMem
-_08101DDC:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _08101DEC
- movs r0, 0x3
- strb r0, [r2]
- movs r0, 0x4
- bl sub_8104CAC
-_08101DEC:
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8101DB0
-
- thumb_func_start sub_8101DF4
-sub_8101DF4: @ 8101DF4
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _08101E06
- ldr r1, _08101E0C @ =gSharedMem
- movs r0, 0x4
- strb r0, [r1]
-_08101E06:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101E0C: .4byte gSharedMem
- thumb_func_end sub_8101DF4
-
- thumb_func_start sub_8101E10
-sub_8101E10: @ 8101E10
- push {lr}
- movs r0, 0
- bl sub_8104CAC
- ldr r2, _08101E34 @ =gSharedMem
- movs r0, 0x5
- strb r0, [r2]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _08101E38 @ =0x0000270e
- cmp r1, r0
- ble _08101E2C
- movs r0, 0x17
- strb r0, [r2]
-_08101E2C:
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08101E34: .4byte gSharedMem
-_08101E38: .4byte 0x0000270e
- thumb_func_end sub_8101E10
-
- thumb_func_start sub_8101E3C
-sub_8101E3C: @ 8101E3C
- push {r4,lr}
- ldr r0, _08101E58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08101E60
- movs r0, 0
- bl sub_8104AB8
- ldr r1, _08101E5C @ =gSharedMem
- movs r0, 0x8
- strb r0, [r1]
- b _08101F1A
- .align 2, 0
-_08101E58: .4byte gMain
-_08101E5C: .4byte gSharedMem
-_08101E60:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08101EC2
- ldr r2, _08101EB8 @ =gSharedMem
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- subs r0, 0x3
- movs r3, 0x12
- ldrsh r1, [r2, r3]
- adds r0, r1
- cmp r0, 0
- blt _08101EBC
- ldrh r4, [r2, 0x12]
- adds r0, r1, 0
- cmp r0, 0x2
- bgt _08101E9C
-_08101E84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8103D50
- lsls r0, r4, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08101E84
-_08101E9C:
- ldr r1, _08101EB8 @ =gSharedMem
- ldrh r0, [r1, 0xC]
- subs r0, 0x3
- ldrh r3, [r1, 0x12]
- adds r0, r3
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0x9
- strb r0, [r1]
- movs r0, 0x5F
- bl PlaySE
- b _08101F1A
- .align 2, 0
-_08101EB8: .4byte gSharedMem
-_08101EBC:
- movs r0, 0x6
- strb r0, [r2]
- b _08101F1A
-_08101EC2:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08101EEC
- ldr r4, _08101F24 @ =gSharedMem
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08101EEC
- movs r0, 0x5F
- bl PlaySE
- ldrb r0, [r4, 0x12]
- bl sub_8103D50
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_08101EEC:
- ldr r0, _08101F24 @ =gSharedMem
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- ldr r2, _08101F28 @ =gMain
- adds r3, r0, 0
- cmp r1, 0x2
- bgt _08101F08
- cmp r1, 0
- beq _08101F0C
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08101F0C
-_08101F08:
- movs r0, 0x9
- strb r0, [r3]
-_08101F0C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101F1A
- movs r0, 0x15
- strb r0, [r3]
-_08101F1A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08101F24: .4byte gSharedMem
-_08101F28: .4byte gMain
- thumb_func_end sub_8101E3C
-
- thumb_func_start sub_8101F2C
-sub_8101F2C: @ 8101F2C
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101F2C
-
- thumb_func_start sub_8101F44
-sub_8101F44: @ 8101F44
- push {lr}
- ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins
- bl sub_8101F2C
- ldr r1, _08101F5C @ =gSharedMem
- movs r0, 0x7
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101F58: .4byte gOtherText_DontHaveThreeCoins
-_08101F5C: .4byte gSharedMem
- thumb_func_end sub_8101F44
-
- thumb_func_start sub_8101F60
-sub_8101F60: @ 8101F60
- push {lr}
- ldr r0, _08101F80 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08101F78
- bl MenuZeroFillScreen
- ldr r1, _08101F84 @ =gSharedMem
- movs r0, 0x5
- strb r0, [r1]
-_08101F78:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101F80: .4byte gMain
-_08101F84: .4byte gSharedMem
- thumb_func_end sub_8101F60
-
- thumb_func_start sub_8101F88
-sub_8101F88: @ 8101F88
- push {lr}
- bl sub_8104AEC
- lsls r0, 24
- cmp r0, 0
- beq _08101F9A
- ldr r1, _08101FA0 @ =gSharedMem
- movs r0, 0x5
- strb r0, [r1]
-_08101F9A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101FA0: .4byte gSharedMem
- thumb_func_end sub_8101F88
-
- thumb_func_start sub_8101FA4
-sub_8101FA4: @ 8101FA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8102484
- bl sub_8104DA4
- movs r0, 0
- bl sub_8102DEC
- movs r0, 0x1
- bl sub_8102DEC
- movs r0, 0x2
- bl sub_8102DEC
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r4, _08101FDC @ =gSharedMem
- ldrb r1, [r4, 0x4]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08101FE0
- bl sub_810430C
- movs r0, 0xA
- b _08101FE8
- .align 2, 0
-_08101FDC: .4byte gSharedMem
-_08101FE0:
- movs r0, 0x1
- bl sub_8104CAC
- movs r0, 0xB
-_08101FE8:
- strb r0, [r4]
- ldr r4, _08102004 @ =gSharedMem
- movs r0, 0x8
- strh r0, [r4, 0x1A]
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08101FFC
- bl dp15_jump_random_unknown
- strh r0, [r4, 0x1A]
-_08101FFC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102004: .4byte gSharedMem
- thumb_func_end sub_8101FA4
-
- thumb_func_start sub_8102008
-sub_8102008: @ 8102008
- push {lr}
- bl sub_810432C
- lsls r0, 24
- cmp r0, 0
- beq _08102028
- movs r0, 0x1
- bl sub_8104CAC
- ldr r1, _08102030 @ =gSharedMem
- ldrb r2, [r1, 0x4]
- movs r0, 0xDF
- ands r0, r2
- strb r0, [r1, 0x4]
- movs r0, 0xB
- strb r0, [r1]
-_08102028:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102030: .4byte gSharedMem
- thumb_func_end sub_8102008
-
- thumb_func_start sub_8102034
-sub_8102034: @ 8102034
- push {lr}
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _0810204E
- bl sub_81024F0
- ldr r1, _08102054 @ =gSharedMem
- movs r0, 0xC
- strb r0, [r1]
-_0810204E:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102054: .4byte gSharedMem
- thumb_func_end sub_8102034
-
- thumb_func_start sub_8102058
-sub_8102058: @ 8102058
- push {r4,lr}
- ldr r0, _08102088 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810207E
- movs r0, 0x18
- bl PlaySE
- ldr r4, _0810208C @ =gSharedMem
- ldrb r0, [r4, 0x18]
- bl sub_8102E1C
- ldrb r0, [r4, 0x18]
- bl sub_8103C14
- movs r0, 0xD
- strb r0, [r4]
-_0810207E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102088: .4byte gMain
-_0810208C: .4byte gSharedMem
- thumb_func_end sub_8102058
-
- thumb_func_start sub_8102090
-sub_8102090: @ 8102090
- push {r4,lr}
- ldr r4, _081020BC @ =gSharedMem
- ldrb r0, [r4, 0x18]
- bl sub_8102E40
- lsls r0, 24
- cmp r0, 0
- bne _081020C0
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r1, 0xC
- strb r1, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081020B6
- movs r0, 0xE
- strb r0, [r4]
-_081020B6:
- movs r0, 0x1
- b _081020C2
- .align 2, 0
-_081020BC: .4byte gSharedMem
-_081020C0:
- movs r0, 0
-_081020C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102090
-
- thumb_func_start sub_81020C8
-sub_81020C8: @ 81020C8
- push {r4,lr}
- ldr r4, _08102128 @ =gSharedMem
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- strb r0, [r4, 0x4]
- bl sub_81027A0
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _081020E8
- subs r0, 0x1
- strb r0, [r4, 0xA]
- ldrb r0, [r4, 0xB]
- adds r0, 0x1
- strb r0, [r4, 0xB]
-_081020E8:
- ldrh r0, [r4, 0x8]
- cmp r0, 0
- beq _081021B4
- movs r0, 0xF
- strb r0, [r4]
- bl sub_8102A24
- bl sub_8103F70
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0810210C
- movs r0, 0
- strh r0, [r4, 0x10]
-_0810210C:
- ldrh r1, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08102130
- ldr r0, _0810212C @ =0x00000185
- bl PlayFanfare
- movs r0, 0x6
- bl sub_8104CAC
- b _0810215A
- .align 2, 0
-_08102128: .4byte gSharedMem
-_0810212C: .4byte 0x00000185
-_08102130:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810214C
- ldr r0, _08102148 @ =0x00000185
- bl PlayFanfare
- movs r0, 0x5
- bl sub_8104CAC
- b _0810215A
- .align 2, 0
-_08102148: .4byte 0x00000185
-_0810214C:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- movs r0, 0x2
- bl sub_8104CAC
-_0810215A:
- ldr r1, _081021B0 @ =gSharedMem
- ldrh r3, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 1
- ands r0, r3
- adds r2, r1, 0
- cmp r0, 0
- beq _08102192
- ldrb r1, [r2, 0x4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0
- strb r0, [r2, 0x4]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r3
- cmp r0, 0
- beq _08102192
- strb r1, [r2, 0xA]
- strb r1, [r2, 0xB]
- strb r1, [r2, 0x3]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r3
- cmp r0, 0
- beq _08102192
- movs r0, 0x1
- strb r0, [r2, 0x3]
-_08102192:
- ldrh r1, [r2, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081021D2
- ldrb r0, [r2, 0x2]
- cmp r0, 0xF
- bhi _081021D2
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r2, 0x2]
- bl sub_8104064
- b _081021D2
- .align 2, 0
-_081021B0: .4byte gSharedMem
-_081021B4:
- movs r0, 0x3
- bl sub_8104CAC
- movs r0, 0x14
- strb r0, [r4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _081021DC @ =0x0000270f
- cmp r0, r1
- ble _081021D2
- strh r1, [r4, 0x10]
-_081021D2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081021DC: .4byte 0x0000270f
- thumb_func_end sub_81020C8
-
- thumb_func_start sub_81021E0
-sub_81021E0: @ 81021E0
- push {lr}
- bl sub_8102A44
- lsls r0, 24
- cmp r0, 0
- beq _081021F2
- ldr r1, _081021F8 @ =gSharedMem
- movs r0, 0x10
- strb r0, [r1]
-_081021F2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081021F8: .4byte gSharedMem
- thumb_func_end sub_81021E0
-
- thumb_func_start sub_81021FC
-sub_81021FC: @ 81021FC
- push {r4,lr}
- bl sub_8103FA0
- lsls r0, 24
- cmp r0, 0
- beq _08102256
- ldr r4, _08102260 @ =gSharedMem
- movs r0, 0x13
- strb r0, [r4]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08102220
- movs r0, 0x1C
- bl IncrementGameStat
-_08102220:
- ldrh r1, [r4, 0x8]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08102236
- movs r0, 0
- strh r0, [r4, 0x18]
- movs r0, 0x9
- strb r0, [r4]
-_08102236:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08102242
- movs r0, 0x11
- strb r0, [r4]
-_08102242:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08102256
- cmp r2, 0
- beq _08102256
- movs r0, 0x4
- bl sub_8104CAC
- movs r0, 0x12
- strb r0, [r4]
-_08102256:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102260: .4byte gSharedMem
- thumb_func_end sub_81021FC
-
- thumb_func_start sub_8102264
-sub_8102264: @ 8102264
- push {r4,lr}
- bl sub_81040C8
- lsls r0, 24
- cmp r0, 0
- bne _08102294
- ldr r4, _0810229C @ =gSharedMem
- movs r0, 0x13
- strb r0, [r4]
- ldrh r1, [r4, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08102294
- movs r0, 0x9
- strb r0, [r4]
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08102294
- movs r0, 0x4
- bl sub_8104CAC
- movs r0, 0x12
- strb r0, [r4]
-_08102294:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810229C: .4byte gSharedMem
- thumb_func_end sub_8102264
-
- thumb_func_start sub_81022A0
-sub_81022A0: @ 81022A0
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _081022C0
- ldr r2, _081022C8 @ =gSharedMem
- movs r0, 0x13
- strb r0, [r2]
- ldrh r1, [r2, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081022C0
- movs r0, 0x9
- strb r0, [r2]
-_081022C0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081022C8: .4byte gSharedMem
- thumb_func_end sub_81022A0
-
- thumb_func_start sub_81022CC
-sub_81022CC: @ 81022CC
- push {lr}
- movs r0, 0
- bl sub_8103D8C
- movs r0, 0x1
- bl sub_8103D8C
- movs r0, 0x2
- bl sub_8103D8C
- ldr r1, _081022EC @ =gSharedMem
- movs r0, 0x2
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081022EC: .4byte gSharedMem
- thumb_func_end sub_81022CC
-
- thumb_func_start sub_81022F0
-sub_81022F0: @ 81022F0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0810230C
- movs r0, 0
- strh r0, [r1, 0xA]
- ldr r1, _08102314 @ =gSharedMem
- movs r0, 0x13
- strb r0, [r1]
-_0810230C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102314: .4byte gSharedMem
- thumb_func_end sub_81022F0
-
- thumb_func_start sub_8102318
-sub_8102318: @ 8102318
- push {lr}
- ldr r0, _0810233C @ =gOtherText_QuitGamePrompt
- bl sub_8101F2C
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- bl sub_814AB84
- ldr r1, _08102340 @ =gSharedMem
- movs r0, 0x16
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810233C: .4byte gOtherText_QuitGamePrompt
-_08102340: .4byte gSharedMem
- thumb_func_end sub_8102318
-
- thumb_func_start sub_8102344
-sub_8102344: @ 8102344
- push {lr}
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0810237C
- bl MenuZeroFillScreen
- movs r0, 0
- bl sub_8103D8C
- movs r0, 0x1
- bl sub_8103D8C
- movs r0, 0x2
- bl sub_8103D8C
- ldr r0, _08102378 @ =gSharedMem
- ldrh r1, [r0, 0x12]
- ldrh r2, [r0, 0xC]
- adds r1, r2
- strh r1, [r0, 0xC]
- movs r1, 0x1B
- strb r1, [r0]
- b _08102392
- .align 2, 0
-_08102378: .4byte gSharedMem
-_0810237C:
- cmp r1, 0x1
- beq _08102388
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08102392
-_08102388:
- bl MenuZeroFillScreen
- ldr r1, _08102398 @ =gSharedMem
- movs r0, 0x5
- strb r0, [r1]
-_08102392:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102398: .4byte gSharedMem
- thumb_func_end sub_8102344
-
- thumb_func_start sub_810239C
-sub_810239C: @ 810239C
- push {lr}
- ldr r0, _081023B0 @ =gOtherText_MaxCoins
- bl sub_8101F2C
- ldr r1, _081023B4 @ =gSharedMem
- movs r0, 0x18
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023B0: .4byte gOtherText_MaxCoins
-_081023B4: .4byte gSharedMem
- thumb_func_end sub_810239C
-
- thumb_func_start sub_81023B8
-sub_81023B8: @ 81023B8
- push {lr}
- ldr r0, _081023D8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081023D0
- bl MenuZeroFillScreen
- ldr r1, _081023DC @ =gSharedMem
- movs r0, 0x5
- strb r0, [r1]
-_081023D0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023D8: .4byte gMain
-_081023DC: .4byte gSharedMem
- thumb_func_end sub_81023B8
-
- thumb_func_start sub_81023E0
-sub_81023E0: @ 81023E0
- push {lr}
- ldr r0, _081023F4 @ =gOtherText_OutOfCoins
- bl sub_8101F2C
- ldr r1, _081023F8 @ =gSharedMem
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023F4: .4byte gOtherText_OutOfCoins
-_081023F8: .4byte gSharedMem
- thumb_func_end sub_81023E0
-
- thumb_func_start sub_81023FC
-sub_81023FC: @ 81023FC
- push {lr}
- ldr r0, _0810241C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08102414
- bl MenuZeroFillScreen
- ldr r1, _08102420 @ =gSharedMem
- movs r0, 0x1B
- strb r0, [r1]
-_08102414:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810241C: .4byte gMain
-_08102420: .4byte gSharedMem
- thumb_func_end sub_81023FC
-
- thumb_func_start sub_8102424
-sub_8102424: @ 8102424
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08102454 @ =gSaveBlock1
- ldr r4, _08102458 @ =gSharedMem
- ldrh r1, [r4, 0xC]
- ldr r2, _0810245C @ =0x00000494
- adds r0, r2
- movs r2, 0
- strh r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102454: .4byte gSaveBlock1
-_08102458: .4byte gSharedMem
-_0810245C: .4byte 0x00000494
- thumb_func_end sub_8102424
-
- thumb_func_start sub_8102460
-sub_8102460: @ 8102460
- push {lr}
- ldr r0, _0810247C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08102476
- ldr r0, _08102480 @ =gSharedMem
- ldr r0, [r0, 0x64]
- bl SetMainCallback2
-_08102476:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810247C: .4byte gPaletteFade
-_08102480: .4byte gSharedMem
- thumb_func_end sub_8102460
-
- thumb_func_start sub_8102484
-sub_8102484: @ 8102484
- push {r4,lr}
- ldr r4, _081024E4 @ =gSharedMem
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _081024DC
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- bne _081024DC
- bl sub_8102540
- lsls r0, 24
- cmp r0, 0
- beq _081024C0
- bl sub_8102578
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- beq _081024C0
- ldr r1, _081024E8 @ =gUnknown_083ECE42
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- orrs r0, r1
- strb r0, [r4, 0x4]
- cmp r3, 0x1
- bne _081024DC
-_081024C0:
- bl sub_81025BC
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- beq _081024DC
- ldr r2, _081024E4 @ =gSharedMem
- ldr r1, _081024EC @ =gUnknown_083ECE48
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strb r0, [r2, 0x4]
-_081024DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081024E4: .4byte gSharedMem
-_081024E8: .4byte gUnknown_083ECE42
-_081024EC: .4byte gUnknown_083ECE48
- thumb_func_end sub_8102484
-
- thumb_func_start sub_81024F0
-sub_81024F0: @ 81024F0
- push {lr}
- ldr r1, _08102508 @ =gSharedMem
- movs r0, 0
- strb r0, [r1, 0x6]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08102502
- movs r0, 0x1
- strb r0, [r1, 0x6]
-_08102502:
- pop {r0}
- bx r0
- .align 2, 0
-_08102508: .4byte gSharedMem
- thumb_func_end sub_81024F0
-
- thumb_func_start sub_810250C
-sub_810250C: @ 810250C
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- movs r3, 0x1
- ldr r4, _08102528 @ =gUnknown_083ECE3A
-_08102518:
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0810252C
- adds r0, r2, r4
- ldrb r0, [r0]
- b _0810253A
- .align 2, 0
-_08102528: .4byte gUnknown_083ECE3A
-_0810252C:
- lsrs r1, 1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08102518
- movs r0, 0
-_0810253A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810250C
-
- thumb_func_start sub_8102540
-sub_8102540: @ 8102540
- push {r4,lr}
- bl Random
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08102568 @ =gUnknown_083ECD04
- ldr r1, _0810256C @ =gSharedMem
- movs r3, 0x12
- ldrsh r2, [r1, r3]
- ldrb r3, [r1, 0x1]
- lsls r1, r3, 1
- adds r1, r3
- subs r1, 0x1
- adds r2, r1
- adds r2, r4
- ldrb r1, [r2]
- cmp r1, r0
- bhi _08102570
- movs r0, 0
- b _08102572
- .align 2, 0
-_08102568: .4byte gUnknown_083ECD04
-_0810256C: .4byte gSharedMem
-_08102570:
- movs r0, 0x1
-_08102572:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102540
-
- thumb_func_start sub_8102578
-sub_8102578: @ 8102578
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _081025B4 @ =gUnknown_083ECD16
-_0810257E:
- bl Random
- movs r2, 0xFF
- ldr r3, _081025B8 @ =gSharedMem
- lsls r1, r5, 16
- asrs r4, r1, 16
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 1
- ldrb r3, [r3, 0x1]
- adds r1, r3
- adds r1, r6
- ldrb r1, [r1]
- ands r2, r0
- cmp r1, r2
- bgt _081025AA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810257E
-_081025AA:
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081025B4: .4byte gUnknown_083ECD16
-_081025B8: .4byte gSharedMem
- thumb_func_end sub_8102578
-
- thumb_func_start sub_81025BC
-sub_81025BC: @ 81025BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08102600 @ =gUnknown_083ECD28
- mov r8, r0
- ldr r5, _08102604 @ =gSharedMem
- movs r7, 0x80
- lsls r7, 17
-_081025CE:
- bl Random
- movs r4, 0xFF
- ands r4, r0
- lsls r2, r6, 16
- asrs r1, r2, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldrb r3, [r5, 0x1]
- adds r0, r3
- add r0, r8
- ldrb r3, [r0]
- cmp r1, 0
- bne _08102608
- ldrb r0, [r5, 0x3]
- cmp r0, 0x1
- bne _08102608
- adds r3, 0xA
- asrs r0, r7, 16
- cmp r3, r0
- ble _08102622
- adds r3, r0, 0
- b _08102622
- .align 2, 0
-_08102600: .4byte gUnknown_083ECD28
-_08102604: .4byte gSharedMem
-_08102608:
- asrs r0, r2, 16
- cmp r0, 0x4
- bne _08102622
- ldrb r0, [r5, 0x3]
- cmp r0, 0x1
- bne _08102622
- lsls r0, r3, 16
- ldr r1, _08102648 @ =0xfff60000
- adds r0, r1
- lsrs r3, r0, 16
- cmp r0, 0
- bge _08102622
- movs r3, 0
-_08102622:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r4
- bgt _08102638
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081025CE
-_08102638:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08102648: .4byte 0xfff60000
- thumb_func_end sub_81025BC
-
- thumb_func_start sub_810264C
-sub_810264C: @ 810264C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _08102660 @ =gSharedMem
- ldrb r0, [r3, 0x3]
- cmp r0, 0
- beq _08102668
- ldr r0, _08102664 @ =gUnknown_083ECDAC
- b _0810266A
- .align 2, 0
-_08102660: .4byte gSharedMem
-_08102664: .4byte gUnknown_083ECDAC
-_08102668:
- ldr r0, _0810267C @ =gUnknown_083ECD46
-_0810266A:
- lsls r1, r2, 4
- adds r1, r2
- ldrb r3, [r3, 0x2]
- adds r1, r3
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_0810267C: .4byte gUnknown_083ECD46
- thumb_func_end sub_810264C
-
- thumb_func_start sub_8102680
-sub_8102680: @ 8102680
- push {r4-r6,lr}
- ldr r1, _081026A4 @ =gSharedMem
- movs r0, 0
- strb r0, [r1, 0x5]
- bl Random
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_810264C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _081026D2
- movs r6, 0x5
- b _081026AE
- .align 2, 0
-_081026A4: .4byte gSharedMem
-_081026A8:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081026AE:
- lsls r0, r6, 16
- asrs r5, r0, 16
- cmp r5, 0
- ble _081026CE
- bl Random
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_810264C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _081026A8
-_081026CE:
- ldr r0, _081026D8 @ =gSharedMem
- strb r6, [r0, 0x5]
-_081026D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081026D8: .4byte gSharedMem
- thumb_func_end sub_8102680
-
- thumb_func_start sub_81026DC
-sub_81026DC: @ 81026DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r0, _081026FC @ =gUnknown_083ECE12
- lsls r4, 1
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcc _08102700
- movs r0, 0
- b _08102702
- .align 2, 0
-_081026FC: .4byte gUnknown_083ECE12
-_08102700:
- movs r0, 0x1
-_08102702:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81026DC
-
- thumb_func_start dp15_jump_random_unknown
-dp15_jump_random_unknown: @ 8102708
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _0810271C @ =gSharedMem
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- ldr r0, _08102720 @ =0x0000012b
- cmp r1, r0
- ble _08102724
- movs r4, 0x4
- b _0810273A
- .align 2, 0
-_0810271C: .4byte gSharedMem
-_08102720: .4byte 0x0000012b
-_08102724:
- cmp r1, 0xF9
- ble _0810272C
- movs r4, 0x3
- b _0810273A
-_0810272C:
- cmp r1, 0xC7
- ble _08102734
- movs r4, 0x2
- b _0810273A
-_08102734:
- cmp r1, 0x95
- ble _0810273A
- movs r4, 0x1
-_0810273A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r5, _0810275C @ =gUnknown_083ECE1C
- lsls r4, 2
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08102760
- movs r0, 0x4
- b _0810279A
- .align 2, 0
-_0810275C: .4byte gUnknown_083ECE1C
-_08102760:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- adds r2, r5, 0x2
- adds r2, r4, r2
- ldr r3, _08102790 @ =gUnknown_083ECE30
- ldr r1, _08102794 @ =gSharedMem
- ldrb r1, [r1, 0xB]
- lsls r1, 1
- adds r1, r3
- ldrb r1, [r1]
- ldrb r2, [r2]
- adds r1, r2
- lsls r1, 24
- cmp r0, r1
- bcc _08102798
- movs r0, 0x8
- b _0810279A
- .align 2, 0
-_08102790: .4byte gUnknown_083ECE30
-_08102794: .4byte gSharedMem
-_08102798:
- movs r0, 0x2
-_0810279A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dp15_jump_random_unknown
-
- thumb_func_start sub_81027A0
-sub_81027A0: @ 81027A0
- push {r4,lr}
- ldr r4, _081027CC @ =gSharedMem
- movs r0, 0
- strh r0, [r4, 0x8]
- bl sub_81027D0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _081027B8
- bl sub_8102840
-_081027B8:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- ble _081027C4
- bl sub_810290C
-_081027C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081027CC: .4byte gSharedMem
- thumb_func_end sub_81027A0
-
- thumb_func_start sub_81027D0
-sub_81027D0: @ 81027D0
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x2
- bl sub_8102BA4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x2
- bl sub_8102BA4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810282E
- ldr r2, _08102834 @ =gSharedMem
- ldr r0, _08102838 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _0810283C @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0
- bl sub_8103E04
-_0810282E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102834: .4byte gSharedMem
-_08102838: .4byte gUnknown_083ECE6C
-_0810283C: .4byte gUnknown_083ECE5A
- thumb_func_end sub_81027D0
-
- thumb_func_start sub_8102840
-sub_8102840: @ 8102840
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810289E
- cmp r1, 0
- bne _0810287C
- movs r1, 0x1
-_0810287C:
- ldr r2, _08102900 @ =gSharedMem
- ldr r0, _08102904 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x1
- bl sub_8103E04
-_0810289E:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081028FA
- cmp r1, 0
- bne _081028D8
- movs r1, 0x1
-_081028D8:
- ldr r2, _08102900 @ =gSharedMem
- ldr r0, _08102904 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x2
- bl sub_8103E04
-_081028FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102900: .4byte gSharedMem
-_08102904: .4byte gUnknown_083ECE6C
-_08102908: .4byte gUnknown_083ECE5A
- thumb_func_end sub_8102840
-
- thumb_func_start sub_810290C
-sub_810290C: @ 810290C
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _08102968
- cmp r1, 0
- beq _08102962
- ldr r2, _081029C8 @ =gSharedMem
- ldr r0, _081029CC @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_08102962:
- movs r0, 0x3
- bl sub_8103E04
-_08102968:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081029C2
- cmp r1, 0
- beq _081029BC
- ldr r2, _081029C8 @ =gSharedMem
- ldr r0, _081029CC @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_081029BC:
- movs r0, 0x4
- bl sub_8103E04
-_081029C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081029C8: .4byte gSharedMem
-_081029CC: .4byte gUnknown_083ECE6C
-_081029D0: .4byte gUnknown_083ECE5A
- thumb_func_end sub_810290C
-
- thumb_func_start sub_81029D4
-sub_81029D4: @ 81029D4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r3, r1
- bne _081029F8
- cmp r3, r2
- bne _081029F8
- ldr r0, _081029F4 @ =gUnknown_083ECE52
- adds r0, r3, r0
- ldrb r0, [r0]
- b _08102A1E
- .align 2, 0
-_081029F4: .4byte gUnknown_083ECE52
-_081029F8:
- cmp r3, 0
- bne _08102A04
- cmp r1, 0
- bne _08102A04
- cmp r2, 0x1
- beq _08102A10
-_08102A04:
- cmp r3, 0x1
- bne _08102A14
- cmp r1, 0x1
- bne _08102A14
- cmp r2, 0
- bne _08102A14
-_08102A10:
- movs r0, 0x6
- b _08102A1E
-_08102A14:
- cmp r3, 0x4
- beq _08102A1C
- movs r0, 0x9
- b _08102A1E
-_08102A1C:
- movs r0, 0
-_08102A1E:
- pop {r1}
- bx r1
- thumb_func_end sub_81029D4
-
- thumb_func_start sub_8102A24
-sub_8102A24: @ 8102A24
- push {r4,lr}
- ldr r4, _08102A40 @ =sub_8102A64
- adds r0, r4, 0
- movs r1, 0x4
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08102A40: .4byte sub_8102A64
- thumb_func_end sub_8102A24
-
- thumb_func_start sub_8102A44
-sub_8102A44: @ 8102A44
- push {lr}
- ldr r0, _08102A58 @ =sub_8102A64
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08102A5C
- movs r0, 0
- b _08102A5E
- .align 2, 0
-_08102A58: .4byte sub_8102A64
-_08102A5C:
- movs r0, 0x1
-_08102A5E:
- pop {r1}
- bx r1
- thumb_func_end sub_8102A44
-
- thumb_func_start sub_8102A64
-sub_8102A64: @ 8102A64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08102A94 @ =gUnknown_083ECB20
- ldr r2, _08102A98 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08102A76:
- 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 _08102A76
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102A94: .4byte gUnknown_083ECB20
-_08102A98: .4byte gTasks
- thumb_func_end sub_8102A64
-
- thumb_func_start sub_8102A9C
-sub_8102A9C: @ 8102A9C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8103E38
- lsls r0, 24
- cmp r0, 0
- beq _08102AC8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _08102AC4 @ =gSharedMem
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102AC8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08102ACA
- .align 2, 0
-_08102AC4: .4byte gSharedMem
-_08102AC8:
- movs r0, 0
-_08102ACA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102A9C
-
- thumb_func_start sub_8102AD0
-sub_8102AD0: @ 8102AD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08102B22
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08102AF6
- movs r0, 0x15
- bl PlaySE
-_08102AF6:
- ldr r2, _08102B70 @ =gSharedMem
- ldrh r0, [r2, 0xE]
- subs r0, 0x1
- strh r0, [r2, 0xE]
- ldrh r3, [r2, 0xC]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _08102B74 @ =0x0000270e
- cmp r1, r0
- bgt _08102B0E
- adds r0, r3, 0x1
- strh r0, [r2, 0xC]
-_08102B0E:
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldr r0, _08102B78 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08102B22
- movs r0, 0x4
- strh r0, [r4, 0xA]
-_08102B22:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08102B58
- ldr r0, _08102B78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08102B58
- movs r0, 0x15
- bl PlaySE
- ldr r1, _08102B70 @ =gSharedMem
- ldrh r0, [r1, 0xE]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- ldr r2, _08102B7C @ =0x0000270f
- cmp r0, r2
- ble _08102B54
- strh r2, [r1, 0xC]
-_08102B54:
- movs r0, 0
- strh r0, [r1, 0xE]
-_08102B58:
- ldr r0, _08102B70 @ =gSharedMem
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102B68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08102B68:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102B70: .4byte gSharedMem
-_08102B74: .4byte 0x0000270e
-_08102B78: .4byte gMain
-_08102B7C: .4byte 0x0000270f
- thumb_func_end sub_8102AD0
-
- thumb_func_start sub_8102B80
-sub_8102B80: @ 8102B80
- push {lr}
- bl sub_8103E7C
- lsls r0, 24
- cmp r0, 0
- beq _08102B9A
- ldr r0, _08102BA0 @ =sub_8102A64
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08102B9A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102BA0: .4byte sub_8102A64
- thumb_func_end sub_8102B80
-
- thumb_func_start sub_8102BA4
-sub_8102BA4: @ 8102BA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _08102BF0 @ =gSharedMem
- lsls r2, r4, 1
- adds r0, 0x28
- adds r2, r0
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1
- movs r1, 0x15
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102BD4
- adds r0, 0x15
- lsls r0, 16
- lsrs r1, r0, 16
-_08102BD4:
- ldr r2, _08102BF4 @ =gUnknown_083ECCB2
- lsls r1, 16
- asrs r1, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r0, r4
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102BF0: .4byte gSharedMem
-_08102BF4: .4byte gUnknown_083ECCB2
- thumb_func_end sub_8102BA4
-
- thumb_func_start sub_8102BF8
-sub_8102BF8: @ 8102BF8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- movs r6, 0
- ldr r0, _08102C40 @ =gSharedMem
- lsls r1, r5, 1
- adds r0, 0x1C
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- beq _08102C20
- ldr r6, _08102C44 @ =0x0000ffff
-_08102C20:
- lsls r1, r4, 16
- asrs r1, 16
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_8102BA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08102C40: .4byte gSharedMem
-_08102C44: .4byte 0x0000ffff
- thumb_func_end sub_8102BF8
-
- thumb_func_start sub_8102C48
-sub_8102C48: @ 8102C48
- push {lr}
- ldr r1, _08102C7C @ =gSharedMem
- movs r2, 0x16
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- adds r1, r0
- adds r0, r1, 0
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102C6E
- adds r0, 0x6
- lsls r0, 16
- lsrs r1, r0, 16
-_08102C6E:
- ldr r0, _08102C80 @ =gUnknown_083ECCF1
- lsls r1, 16
- asrs r1, 16
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_08102C7C: .4byte gSharedMem
-_08102C80: .4byte gUnknown_083ECCF1
- thumb_func_end sub_8102C48
-
- thumb_func_start sub_8102C84
-sub_8102C84: @ 8102C84
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- ldr r6, _08102CC8 @ =gSharedMem
- lsrs r5, 23
- adds r4, r6, 0
- adds r4, 0x1C
- adds r4, r5, r4
- lsls r1, 16
- asrs r1, 16
- ldrh r0, [r4]
- adds r1, r0
- strh r1, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xFC
- lsls r1, 1
- bl __modsi3
- strh r0, [r4]
- adds r6, 0x28
- adds r5, r6
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl __divsi3
- movs r1, 0x15
- subs r1, r0
- strh r1, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08102CC8: .4byte gSharedMem
- thumb_func_end sub_8102C84
-
- thumb_func_start sub_8102CCC
-sub_8102CCC: @ 8102CCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r0, _08102D24 @ =gSharedMem
- lsls r1, r6, 1
- adds r0, 0x1C
- adds r5, r1, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r0, 16
- asrs r1, r2, 16
- cmp r1, 0
- beq _08102D18
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- bge _08102D00
- lsrs r4, r2, 16
-_08102D00:
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r6, 0
- bl sub_8102C84
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
-_08102D18:
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08102D24: .4byte gSharedMem
- thumb_func_end sub_8102CCC
-
- thumb_func_start sub_8102D28
-sub_8102D28: @ 8102D28
- push {r4,lr}
- ldr r4, _08102D58 @ =gSharedMem
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl __modsi3
- strh r0, [r4, 0x14]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl __divsi3
- movs r1, 0x6
- subs r1, r0
- strh r1, [r4, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08102D58: .4byte gSharedMem
- thumb_func_end sub_8102D28
-
- thumb_func_start sub_8102D5C
-sub_8102D5C: @ 8102D5C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _08102DA4 @ =gSharedMem
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r0, 16
- asrs r1, r2, 16
- cmp r1, 0
- beq _08102D9A
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- bge _08102D84
- lsrs r4, r2, 16
-_08102D84:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_8102D28
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
-_08102D9A:
- lsls r0, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08102DA4: .4byte gSharedMem
- thumb_func_end sub_8102D5C
-
- thumb_func_start sub_8102DA8
-sub_8102DA8: @ 8102DA8
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _08102DE0 @ =sub_8102E68
- ldr r7, _08102DE4 @ =gTasks
- ldr r6, _08102DE8 @ =gSharedMem + 0x3A
-_08102DB2:
- adds r0, r5, 0
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- strh r4, [r1, 0x26]
- adds r1, r4, r6
- strb r0, [r1]
- bl _call_via_r5
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08102DB2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08102DE0: .4byte sub_8102E68
-_08102DE4: .4byte gTasks
-_08102DE8: .4byte gSharedMem + 0x3A
- thumb_func_end sub_8102DA8
-
- thumb_func_start sub_8102DEC
-sub_8102DEC: @ 8102DEC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08102E14 @ =gTasks
- ldr r1, _08102E18 @ =gSharedMem
- adds r1, 0x3A
- adds r0, r1
- ldrb r2, [r0]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0x1
- strh r2, [r1, 0x8]
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0x24]
- bx lr
- .align 2, 0
-_08102E14: .4byte gTasks
-_08102E18: .4byte gSharedMem
- thumb_func_end sub_8102DEC
-
- thumb_func_start sub_8102E1C
-sub_8102E1C: @ 8102E1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08102E38 @ =gTasks
- ldr r1, _08102E3C @ =gSharedMem
- adds r1, 0x3A
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- bx lr
- .align 2, 0
-_08102E38: .4byte gTasks
-_08102E3C: .4byte gSharedMem
- thumb_func_end sub_8102E1C
-
- thumb_func_start sub_8102E40
-sub_8102E40: @ 8102E40
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08102E60 @ =gTasks
- ldr r1, _08102E64 @ =gSharedMem
- adds r1, 0x3A
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08102E60: .4byte gTasks
-_08102E64: .4byte gSharedMem
- thumb_func_end sub_8102E40
-
- thumb_func_start sub_8102E68
-sub_8102E68: @ 8102E68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08102E98 @ =gUnknown_083ECB2C
- ldr r2, _08102E9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08102E7A:
- 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 _08102E7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102E98: .4byte gUnknown_083ECB2C
-_08102E9C: .4byte gTasks
- thumb_func_end sub_8102E68
-
- thumb_func_start sub_8102EA0
-sub_8102EA0: @ 8102EA0
- movs r0, 0
- bx lr
- thumb_func_end sub_8102EA0
-
- thumb_func_start sub_8102EA4
-sub_8102EA4: @ 8102EA4
- push {lr}
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08102EBC @ =gSharedMem
- movs r2, 0x1A
- ldrsh r1, [r1, r2]
- bl sub_8102C84
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102EBC: .4byte gSharedMem
- thumb_func_end sub_8102EA4
-
- thumb_func_start sub_8102EC0
-sub_8102EC0: @ 8102EC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x8]
- ldr r3, _08102F40 @ =gSharedMem
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x34
- adds r0, r1
- strh r2, [r0]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x2E
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r3, 0xA]
- cmp r0, 0
- bne _08102F28
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08102F12
- ldrb r0, [r3, 0x6]
- cmp r0, 0
- beq _08102F12
- ldr r1, _08102F44 @ =gUnknown_083ECB40
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- cmp r0, 0
- bne _08102F28
-_08102F12:
- ldr r1, _08102F40 @ =gSharedMem
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r1, _08102F48 @ =gUnknown_083ECB4C
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08102F28:
- ldr r0, _08102F40 @ =gSharedMem
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r0, 0x2E
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102F40: .4byte gSharedMem
-_08102F44: .4byte gUnknown_083ECB40
-_08102F48: .4byte gUnknown_083ECB4C
- thumb_func_end sub_8102EC0
-
- thumb_func_start sub_8102F4C
-sub_8102F4C: @ 8102F4C
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, _08102F8C @ =gUnknown_083ECB58
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- ldr r5, _08102F90 @ =gSharedMem
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r6, r0, 1
- adds r7, r5, 0
- adds r7, 0x1C
- adds r0, r6, r7
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- beq _08102F94
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1A
- ldrsh r1, [r5, r6]
- bl sub_8102CCC
- b _08102FC8
- .align 2, 0
-_08102F8C: .4byte gUnknown_083ECB58
-_08102F90: .4byte gSharedMem
-_08102F94:
- adds r0, r5, 0
- adds r0, 0x2E
- adds r1, r6, r0
- ldrh r3, [r1]
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08102FCC
- subs r0, r3, 0x1
- strh r0, [r1]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- bl sub_8102C84
- movs r6, 0x26
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r7
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x18
- bl __modsi3
-_08102FC8:
- lsls r0, 16
- lsrs r2, r0, 16
-_08102FCC:
- cmp r2, 0
- bne _08102FF8
- ldr r1, _08103004 @ =gSharedMem
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r1, 0x2E
- adds r0, r1
- movs r6, 0
- ldrsh r1, [r0, r6]
- cmp r1, 0
- bne _08102FF8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0xA]
- strh r1, [r4, 0xC]
-_08102FF8:
- movs r0, 0
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08103004: .4byte gSharedMem
- thumb_func_end sub_8102F4C
-
- thumb_func_start sub_8103008
-sub_8103008: @ 8103008
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, _08103058 @ =gSharedMem
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r4, r1, 0
- adds r4, 0x22
- adds r0, r4
- ldrh r1, [r2, 0xA]
- strh r1, [r0]
- ldrh r0, [r2, 0xA]
- negs r3, r0
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08103038
- lsls r0, r3, 16
- asrs r0, 17
- strh r0, [r2, 0xA]
-_08103038:
- movs r0, 0xA
- ldrsh r3, [r2, r0]
- cmp r3, 0
- bne _0810304E
- strh r3, [r2, 0x8]
- strh r3, [r2, 0x24]
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
-_0810304E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08103058: .4byte gSharedMem
- thumb_func_end sub_8103008
-
- thumb_func_start sub_810305C
-sub_810305C: @ 810305C
- push {r4,r5,lr}
- ldr r4, _0810309C @ =gSharedMem
- ldrb r0, [r4, 0x4]
- bl sub_810250C
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _0810307A
- movs r5, 0
- movs r3, 0x1
-_0810307A:
- ldr r1, _081030A0 @ =gUnknown_083ECB64
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r3, 0
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810309C: .4byte gSharedMem
-_081030A0: .4byte gUnknown_083ECB64
- thumb_func_end sub_810305C
-
- thumb_func_start sub_81030A4
-sub_81030A4: @ 81030A4
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 16
- asrs r3, 16
- movs r0, 0
- adds r1, r3, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, r4
- beq _081030CC
- cmp r0, r5
- bne _081030D8
-_081030CC:
- ldr r0, _081030D4 @ =gSharedMem
- strb r1, [r0, 0x7]
- movs r0, 0x1
- b _081030DA
- .align 2, 0
-_081030D4: .4byte gSharedMem
-_081030D8:
- movs r0, 0
-_081030DA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81030A4
-
- thumb_func_start sub_81030E0
-sub_81030E0: @ 81030E0
- push {r4,lr}
- movs r1, 0x1
- lsls r0, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08103128
- movs r1, 0x2
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08103128
- movs r1, 0x3
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0810312C
-_08103128:
- movs r0, 0x1
- b _0810312E
-_0810312C:
- movs r0, 0
-_0810312E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81030E0
-
- thumb_func_start sub_8103134
-sub_8103134: @ 8103134
- push {lr}
- ldr r0, _08103148 @ =gSharedMem
- ldrb r1, [r0, 0x4]
- movs r0, 0xC2
- ands r0, r1
- cmp r0, 0
- bne _0810314C
- movs r0, 0
- b _0810314E
- .align 2, 0
-_08103148: .4byte gSharedMem
-_0810314C:
- movs r0, 0x1
-_0810314E:
- pop {r1}
- bx r1
- thumb_func_end sub_8103134
-
- thumb_func_start sub_8103154
-sub_8103154: @ 8103154
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r5, 0
- movs r0, 0x2
- mov r9, r0
- ldr r6, _08103194 @ =gSharedMem
-_0810316E:
- lsls r0, r5, 16
- asrs r4, r0, 16
- mov r1, r9
- subs r0, r1, r4
- lsls r0, 16
- asrs r0, 16
- mov r1, r8
- adds r2, r7, 0
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _08103198
- movs r0, 0x2
- strh r0, [r6, 0x34]
- strh r5, [r6, 0x2E]
- movs r0, 0x1
- b _081031A6
- .align 2, 0
-_08103194: .4byte gSharedMem
-_08103198:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810316E
- movs r0, 0
-_081031A6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8103154
-
- thumb_func_start sub_81031B4
-sub_81031B4: @ 81031B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- bl sub_8103134
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _081031E2
- movs r0, 0
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _0810321E
-_081031E2:
- movs r0, 0x1
- mov r8, r0
- ldr r5, _0810320C @ =gSharedMem
- movs r7, 0
-_081031EA:
- mov r1, r8
- lsls r0, r1, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- mov r1, r10
- mov r2, r9
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _08103210
- mov r0, r8
- strh r0, [r5, 0x34]
- strh r7, [r5, 0x2E]
- movs r0, 0x1
- b _081032B2
- .align 2, 0
-_0810320C: .4byte gSharedMem
-_08103210:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- mov r8, r1
- asrs r0, 16
- cmp r0, 0x3
- ble _081031EA
-_0810321E:
- movs r0, 0x1
- mov r8, r0
- adds r7, r6, 0
- ldr r6, _0810326C @ =gSharedMem
-_08103226:
- mov r1, r8
- lsls r5, r1, 16
- cmp r7, 0
- bne _0810323A
- asrs r0, r5, 16
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _081032A0
-_0810323A:
- movs r0, 0x1
- asrs r4, r5, 16
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- mov r1, r10
- mov r2, r9
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _081032A0
- cmp r4, 0x1
- bne _08103270
- cmp r7, 0
- bne _08103266
- movs r0, 0x3
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _08103270
-_08103266:
- movs r0, 0x3
- strh r0, [r6, 0x34]
- b _0810329A
- .align 2, 0
-_0810326C: .4byte gSharedMem
-_08103270:
- asrs r0, r5, 16
- cmp r0, 0x3
- bgt _08103294
- adds r4, r0, 0x1
- cmp r7, 0
- bne _0810328A
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _08103294
-_0810328A:
- movs r0, 0x2
- strh r0, [r6, 0x34]
- strh r4, [r6, 0x2E]
- movs r0, 0x1
- b _081032B2
-_08103294:
- movs r0, 0x1
- strh r0, [r6, 0x34]
- mov r0, r8
-_0810329A:
- strh r0, [r6, 0x2E]
- movs r0, 0x1
- b _081032B2
-_081032A0:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r5, r1
- lsrs r1, r0, 16
- mov r8, r1
- asrs r0, 16
- cmp r0, 0x4
- ble _08103226
- movs r0, 0
-_081032B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81031B4
-
- thumb_func_start sub_81032C0
-sub_81032C0: @ 81032C0
- push {lr}
- ldr r1, _081032E0 @ =gUnknown_083ECB70
- ldr r0, _081032E4 @ =gSharedMem
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_081032E0: .4byte gUnknown_083ECB70
-_081032E4: .4byte gSharedMem
- thumb_func_end sub_81032C0
-
- thumb_func_start sub_81032E8
-sub_81032E8: @ 81032E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08103320 @ =gSharedMem
- movs r6, 0
- ldrh r1, [r0, 0x34]
- mov r8, r1
- movs r1, 0x34
- ldrsh r7, [r0, r1]
- adds r5, r0, 0
-_081032FC:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r5, 0x7]
- cmp r0, r1
- bne _08103324
- mov r0, r8
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- movs r0, 0x1
- b _08103332
- .align 2, 0
-_08103320: .4byte gSharedMem
-_08103324:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081032FC
- movs r0, 0
-_08103332:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81032E8
-
- thumb_func_start sub_810333C
-sub_810333C: @ 810333C
- push {r4-r7,lr}
- bl sub_81032E8
- lsls r0, 24
- cmp r0, 0
- beq _0810339A
- ldr r1, _0810338C @ =gSharedMem
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _08103396
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08103396
- cmp r0, 0x4
- beq _08103396
- movs r5, 0
- movs r7, 0x2
- adds r6, r1, 0
-_08103364:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x7]
- cmp r0, r1
- beq _08103390
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103364
- b _08103396
- .align 2, 0
-_0810338C: .4byte gSharedMem
-_08103390:
- movs r0, 0x2
- strh r0, [r6, 0x36]
- strh r5, [r6, 0x30]
-_08103396:
- movs r0, 0x1
- b _081033D2
-_0810339A:
- ldr r1, _081033D8 @ =gSharedMem
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _081033D0
- movs r5, 0
- movs r7, 0x2
- adds r6, r1, 0
-_081033AA:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x7]
- cmp r0, r1
- beq _08103390
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081033AA
-_081033D0:
- movs r0, 0
-_081033D2:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081033D8: .4byte gSharedMem
- thumb_func_end sub_810333C
-
- thumb_func_start sub_81033DC
-sub_81033DC: @ 81033DC
- push {r4,lr}
- ldr r0, _08103414 @ =gSharedMem
- ldrb r3, [r0, 0x7]
- adds r4, r3, 0
- ldrb r2, [r0, 0x4]
- movs r1, 0x40
- ands r1, r2
- cmp r1, 0
- beq _081033F6
- movs r3, 0
- cmp r4, 0
- bne _081033F6
- movs r3, 0x1
-_081033F6:
- ldr r1, _08103418 @ =gUnknown_083ECB7C
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08103414: .4byte gSharedMem
-_08103418: .4byte gUnknown_083ECB7C
- thumb_func_end sub_81033DC
-
- thumb_func_start sub_810341C
-sub_810341C: @ 810341C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0810345C @ =gSharedMem
- movs r5, 0
- ldrh r1, [r0, 0x36]
- mov r8, r1
- movs r1, 0x36
- ldrsh r7, [r0, r1]
- adds r6, r0, 0
-_08103438:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r9
- bne _08103460
- mov r0, r8
- strh r0, [r6, 0x38]
- strh r5, [r6, 0x32]
- movs r0, 0x1
- b _0810346E
- .align 2, 0
-_0810345C: .4byte gSharedMem
-_08103460:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103438
- movs r0, 0
-_0810346E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810341C
-
- thumb_func_start sub_810347C
-sub_810347C: @ 810347C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _081034A0 @ =gSharedMem
- movs r2, 0x34
- ldrsh r1, [r0, r2]
- movs r2, 0x36
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _081034B4
- adds r0, r6, 0
- bl sub_810341C
- lsls r0, 24
- lsrs r0, 24
- b _081034EA
- .align 2, 0
-_081034A0: .4byte gSharedMem
-_081034A4:
- ldr r0, _081034B0 @ =gSharedMem
- strh r5, [r0, 0x32]
- mov r1, r8
- strh r1, [r0, 0x38]
- movs r0, 0x1
- b _081034EA
- .align 2, 0
-_081034B0: .4byte gSharedMem
-_081034B4:
- movs r2, 0x1
- mov r8, r2
- cmp r1, 0x1
- bne _081034C0
- movs r0, 0x3
- mov r8, r0
-_081034C0:
- movs r5, 0
- mov r7, r8
-_081034C4:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _081034A4
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081034C4
- movs r0, 0
-_081034EA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810347C
-
- thumb_func_start sub_81034F4
-sub_81034F4: @ 81034F4
- push {r4,r5,lr}
- movs r5, 0
- b _08103500
-_081034FA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08103500:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _081034FA
- ldr r0, _0810351C @ =gSharedMem
- strh r5, [r0, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810351C: .4byte gSharedMem
- thumb_func_end sub_81034F4
-
- thumb_func_start sub_8103520
-sub_8103520: @ 8103520
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0810352E
- movs r0, 0x1
- b _08103538
-_0810352E:
- cmp r0, 0x1
- beq _08103536
- movs r0, 0
- b _0810353C
-_08103536:
- movs r0, 0
-_08103538:
- strb r0, [r1]
- movs r0, 0x1
-_0810353C:
- pop {r1}
- bx r1
- thumb_func_end sub_8103520
-
- thumb_func_start sub_8103540
-sub_8103540: @ 8103540
- push {lr}
- ldr r1, _0810355C @ =gUnknown_083ECB88
- ldr r0, _08103560 @ =gSharedMem
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_0810355C: .4byte gUnknown_083ECB88
-_08103560: .4byte gSharedMem
- thumb_func_end sub_8103540
-
- thumb_func_start sub_8103564
-sub_8103564: @ 8103564
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _081035D0 @ =gSharedMem
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081035E0
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081035E0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _081035E0
- movs r5, 0
- mov r7, sp
- movs r0, 0x2
- mov r8, r0
- adds r6, r4, 0
-_081035AA:
- lsls r0, r5, 16
- asrs r4, r0, 16
- mov r0, r8
- subs r1, r0, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081035D4
- movs r0, 0x2
- strh r0, [r6, 0x36]
- strh r5, [r6, 0x30]
- b _081035E0
- .align 2, 0
-_081035D0: .4byte gSharedMem
-_081035D4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081035AA
-_081035E0:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103564
-
- thumb_func_start j5_08111E84
-j5_08111E84: @ 81035EC
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _08103650 @ =gSharedMem
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08103660
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103660
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _08103660
- movs r6, 0
- mov r7, sp
- adds r5, r4, 0
-_0810362A:
- ldrh r1, [r5, 0x34]
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08103654
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- b _08103660
- .align 2, 0
-_08103650: .4byte gSharedMem
-_08103654:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810362A
-_08103660:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end j5_08111E84
-
- thumb_func_start sub_8103668
-sub_8103668: @ 8103668
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _0810368C @ =gSharedMem
- ldrh r3, [r4, 0x34]
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _0810375A
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810375A
- cmp r2, 0x2
- bne _081036AE
- bl j5_08111E84
- b _0810375A
- .align 2, 0
-_0810368C: .4byte gSharedMem
-_08103690:
- ldr r0, _0810369C @ =gSharedMem
- movs r1, 0
- strh r6, [r0, 0x36]
- strh r1, [r0, 0x30]
- b _0810375A
- .align 2, 0
-_0810369C: .4byte gSharedMem
-_081036A0:
- movs r0, 0x2
- strh r0, [r5, 0x36]
- adds r0, r4, 0x1
- strh r0, [r5, 0x30]
- b _0810375A
-_081036AA:
- movs r0, 0x3
- b _08103736
-_081036AE:
- ldrh r1, [r4, 0x2E]
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _0810375A
- movs r6, 0x2
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _081036D8
- movs r6, 0x3
-_081036D8:
- movs r5, 0
- mov r7, sp
-_081036DC:
- lsls r0, r6, 16
- asrs r4, r0, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _08103690
- lsls r1, r5, 16
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r5, r1, 16
- asrs r1, 16
- cmp r1, 0x1
- ble _081036DC
- movs r6, 0x1
- mov r7, sp
- ldr r5, _0810373C @ =gSharedMem
-_0810370E:
- ldrh r1, [r5, 0x34]
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0810374E
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08103740
- cmp r4, 0x2
- ble _081036A0
-_08103736:
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- b _0810375A
- .align 2, 0
-_0810373C: .4byte gSharedMem
-_08103740:
- cmp r4, 0x2
- ble _081036AA
- movs r0, 0x2
- strh r0, [r5, 0x36]
- subs r0, r4, 0x1
- strh r0, [r5, 0x30]
- b _0810375A
-_0810374E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810370E
-_0810375A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103668
-
- thumb_func_start sub_8103764
-sub_8103764: @ 8103764
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r0, 0
- bne _08103778
- cmp r1, 0x1
- beq _08103780
-_08103778:
- cmp r0, 0x1
- bne _08103784
- cmp r2, 0
- bne _08103784
-_08103780:
- movs r0, 0x1
- b _08103786
-_08103784:
- movs r0, 0
-_08103786:
- pop {r1}
- bx r1
- thumb_func_end sub_8103764
-
- thumb_func_start sub_810378C
-sub_810378C: @ 810378C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0
- bne _081037A6
- cmp r1, 0x1
- bne _081037A6
- cmp r2, 0
- beq _081037B2
-_081037A6:
- cmp r0, 0x1
- bne _081037B6
- cmp r1, 0
- bne _081037B6
- cmp r2, 0x1
- bne _081037B6
-_081037B2:
- movs r0, 0x1
- b _081037B8
-_081037B6:
- movs r0, 0
-_081037B8:
- pop {r1}
- bx r1
- thumb_func_end sub_810378C
-
- thumb_func_start sub_81037BC
-sub_81037BC: @ 81037BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0
- bne _081037D6
- cmp r1, 0x1
- bne _081037D6
- cmp r2, 0
- beq _08103802
-_081037D6:
- cmp r0, 0x1
- bne _081037E2
- cmp r1, 0
- bne _081037E2
- cmp r2, 0x1
- beq _08103802
-_081037E2:
- cmp r0, 0
- bne _081037EE
- cmp r1, 0
- bne _081037EE
- cmp r2, 0x1
- beq _08103802
-_081037EE:
- cmp r0, 0x1
- bne _081037FA
- cmp r1, 0x1
- bne _081037FA
- cmp r2, 0
- beq _08103802
-_081037FA:
- cmp r0, r1
- bne _08103806
- cmp r0, r2
- bne _08103806
-_08103802:
- movs r0, 0
- b _08103808
-_08103806:
- movs r0, 0x1
-_08103808:
- pop {r1}
- bx r1
- thumb_func_end sub_81037BC
-
- thumb_func_start sub_810380C
-sub_810380C: @ 810380C
- push {lr}
- ldr r1, _08103828 @ =gUnknown_083ECB94
- ldr r0, _0810382C @ =gSharedMem
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08103828: .4byte gUnknown_083ECB94
-_0810382C: .4byte gSharedMem
- thumb_func_end sub_810380C
-
- thumb_func_start sub_8103830
-sub_8103830: @ 8103830
- push {r4-r7,lr}
- movs r6, 0
- ldr r7, _08103868 @ =gSharedMem
- ldrh r1, [r7, 0x2E]
- movs r4, 0x2
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x30]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, r1
- bne _081038A0
- movs r4, 0x2
- b _08103876
- .align 2, 0
-_08103868: .4byte gSharedMem
-_0810386C:
- lsls r0, r6, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r6, r0, 16
-_08103876:
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0810386C
- cmp r5, 0
- bne _08103896
- cmp r0, 0x1
- beq _0810386C
-_08103896:
- cmp r5, 0x1
- bne _08103900
- cmp r0, 0
- beq _0810386C
- b _08103900
-_081038A0:
- adds r0, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103900
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081038DC
- movs r7, 0x2
-_081038B8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08103900
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081038B8
-_081038DC:
- movs r6, 0
- movs r7, 0x2
- b _081038E8
-_081038E2:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081038E8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _081038E2
-_08103900:
- ldr r0, _0810390C @ =gSharedMem
- strh r6, [r0, 0x32]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810390C: .4byte gSharedMem
- thumb_func_end sub_8103830
-
- thumb_func_start sub_8103910
-sub_8103910: @ 8103910
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r4, _08103978 @ =gSharedMem
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _081039A6
- ldrh r2, [r4, 0x34]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- cmp r0, r1
- bne _081039A6
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081039A6
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _081039A6
- movs r5, 0
- b _08103982
- .align 2, 0
-_08103978: .4byte gSharedMem
-_0810397C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08103982:
- lsls r6, r5, 16
- asrs r5, r6, 16
- cmp r5, 0x4
- bgt _081039A6
- ldr r0, _08103A34 @ =gSharedMem
- ldrh r1, [r0, 0x36]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, r4
- bne _0810397C
- lsrs r6, 16
- str r6, [sp]
-_081039A6:
- ldr r0, _08103A34 @ =gSharedMem
- mov r9, r0
-_081039AA:
- movs r5, 0x1
- movs r1, 0
- mov r8, r1
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
-_081039B6:
- mov r3, r9
- ldrh r1, [r3, 0x2E]
- lsls r5, 16
- asrs r4, r5, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r9
- ldrh r1, [r0, 0x30]
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r10
- asrs r0, r1, 16
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103A38
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103A24
- mov r2, r9
- ldrb r1, [r2, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103A38
-_08103A24:
- mov r3, r8
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r0, 16
- mov r8, r0
- b _08103A46
- .align 2, 0
-_08103A34: .4byte gSharedMem
-_08103A38:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r5, r2
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081039B6
-_08103A46:
- mov r3, r8
- cmp r3, 0
- beq _08103A5C
- ldr r1, [sp]
- lsls r0, r1, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r0, 16
- str r0, [sp]
- b _081039AA
-_08103A5C:
- ldr r0, _08103A74 @ =gSharedMem
- mov r3, sp
- ldrh r3, [r3]
- strh r3, [r0, 0x32]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103A74: .4byte gSharedMem
- thumb_func_end sub_8103910
-
- thumb_func_start sub_8103A78
-sub_8103A78: @ 8103A78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl sub_8103910
- ldr r4, _08103B10 @ =gSharedMem
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08103B20
- ldrh r2, [r4, 0x34]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- cmp r0, r1
- beq _08103B20
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103B20
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r1, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103B20
- movs r1, 0x1
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _08103AE0
- movs r1, 0x3
-_08103AE0:
- movs r3, 0
- lsls r1, 16
- mov r8, r1
- adds r7, r4, 0
-_08103AE8:
- ldrh r2, [r7, 0x32]
- lsls r0, r3, 16
- asrs r5, r0, 16
- adds r2, r5, r2
- mov r3, r8
- asrs r1, r3, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r6, r4
- bne _08103B14
- ldrh r0, [r7, 0x32]
- adds r0, r5, r0
- strh r0, [r7, 0x32]
- b _08103B20
- .align 2, 0
-_08103B10: .4byte gSharedMem
-_08103B14:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103AE8
-_08103B20:
- ldr r7, _08103B90 @ =gSharedMem
-_08103B22:
- ldrh r0, [r7, 0x2E]
- movs r1, 0x1
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r7, 0x30]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x32]
- movs r1, 0x3
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103B94
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103B88
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103B94
-_08103B88:
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- strh r0, [r7, 0x32]
- b _08103B22
- .align 2, 0
-_08103B90: .4byte gSharedMem
-_08103B94:
- ldr r7, _08103C04 @ =gSharedMem
-_08103B96:
- ldrh r0, [r7, 0x2E]
- movs r1, 0x3
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r7, 0x30]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x32]
- movs r1, 0x1
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103C08
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103BFC
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103C08
-_08103BFC:
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- strh r0, [r7, 0x32]
- b _08103B96
- .align 2, 0
-_08103C04: .4byte gSharedMem
-_08103C08:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103A78
-
- thumb_func_start sub_8103C14
-sub_8103C14: @ 8103C14
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08103C40 @ =sub_8103C48
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103C44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08103C40: .4byte sub_8103C48
-_08103C44: .4byte gTasks
- thumb_func_end sub_8103C14
-
- thumb_func_start sub_8103C48
-sub_8103C48: @ 8103C48
- push {r4,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08103C70 @ =gUnknown_083ECBA0
- ldr r2, _08103C74 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r4, 0x8
- ldrsh r2, [r0, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103C70: .4byte gUnknown_083ECBA0
-_08103C74: .4byte gTasks
- thumb_func_end sub_8103C48
-
- thumb_func_start sub_8103C78
-sub_8103C78: @ 8103C78
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _08103CA8 @ =gUnknown_083ECBAC
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x73
- str r1, [sp]
- movs r1, 0x62
- movs r2, 0x63
- movs r3, 0x72
- bl sub_81065A8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103CA8: .4byte gUnknown_083ECBAC
- thumb_func_end sub_8103C78
-
- thumb_func_start sub_8103CAC
-sub_8103CAC: @ 8103CAC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _08103CC4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08103CC4:
- pop {r0}
- bx r0
- thumb_func_end sub_8103CAC
-
- thumb_func_start sub_8103CC8
-sub_8103CC8: @ 8103CC8
- push {r4,lr}
- sub sp, 0x4
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _08103CFC @ =gUnknown_083ECBAC
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x53
- str r1, [sp]
- movs r1, 0x42
- movs r2, 0x43
- movs r3, 0x52
- bl sub_81065A8
- adds r0, r4, 0
- bl DestroyTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103CFC: .4byte gUnknown_083ECBAC
- thumb_func_end sub_8103CC8
-
- thumb_func_start sub_8103D00
-sub_8103D00: @ 8103D00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103D20 @ =gUnknown_083EDD08
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, _08103D24 @ =gUnknown_083EDD30
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08103D20: .4byte gUnknown_083EDD08
-_08103D24: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103D00
-
- thumb_func_start sub_8103D28
-sub_8103D28: @ 8103D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103D48 @ =gUnknown_083EDD1C
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, _08103D4C @ =gUnknown_083EDD30
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08103D48: .4byte gUnknown_083EDD1C
-_08103D4C: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103D28
-
- thumb_func_start sub_8103D50
-sub_8103D50: @ 8103D50
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, _08103D84 @ =gUnknown_083EDD3B
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08103D7C
- ldr r7, _08103D88 @ =gUnknown_083EDD35
- adds r6, r0, 0
- lsls r5, r1, 1
-_08103D68:
- adds r0, r4, r5
- adds r0, r7
- ldrb r0, [r0]
- bl sub_8103D00
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08103D68
-_08103D7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103D84: .4byte gUnknown_083EDD3B
-_08103D88: .4byte gUnknown_083EDD35
- thumb_func_end sub_8103D50
-
- thumb_func_start sub_8103D8C
-sub_8103D8C: @ 8103D8C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, _08103DC0 @ =gUnknown_083EDD3B
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08103DB8
- ldr r7, _08103DC4 @ =gUnknown_083EDD35
- adds r6, r0, 0
- lsls r5, r1, 1
-_08103DA4:
- adds r0, r4, r5
- adds r0, r7
- ldrb r0, [r0]
- bl sub_8103D28
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08103DA4
-_08103DB8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103DC0: .4byte gUnknown_083EDD3B
-_08103DC4: .4byte gUnknown_083EDD35
- thumb_func_end sub_8103D8C
-
- thumb_func_start sub_8103DC8
-sub_8103DC8: @ 8103DC8
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _08103DF8 @ =gSprites
- ldr r5, _08103DFC @ =gSharedMem + 0x44
-_08103DD0:
- ldr r0, _08103E00 @ =sub_8103EE4
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r4, [r1, 0x2E]
- adds r1, r4, r5
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08103DD0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08103DF8: .4byte gSprites
-_08103DFC: .4byte gSharedMem + 0x44
-_08103E00: .4byte sub_8103EE4
- thumb_func_end sub_8103DC8
-
- thumb_func_start sub_8103E04
-sub_8103E04: @ 8103E04
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08103E30 @ =gSharedMem
- adds r1, 0x44
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08103E34 @ =gSprites
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x30]
- movs r1, 0x4
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x34]
- strh r2, [r0, 0x36]
- movs r1, 0x2
- strh r1, [r0, 0x38]
- strh r2, [r0, 0x3C]
- bx lr
- .align 2, 0
-_08103E30: .4byte gSharedMem
-_08103E34: .4byte gSprites
- thumb_func_end sub_8103E04
-
- thumb_func_start sub_8103E38
-sub_8103E38: @ 8103E38
- push {r4,r5,lr}
- movs r2, 0
- ldr r4, _08103E60 @ =gSharedMem + 0x44
- ldr r3, _08103E64 @ =gSprites
-_08103E40:
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r3
- movs r5, 0x30
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08103E68
- movs r5, 0x32
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08103E68
- movs r0, 0
- b _08103E74
- .align 2, 0
-_08103E60: .4byte gSharedMem + 0x44
-_08103E64: .4byte gSprites
-_08103E68:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08103E40
- movs r0, 0x1
-_08103E74:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8103E38
-
- thumb_func_start sub_8103E7C
-sub_8103E7C: @ 8103E7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08103E94 @ =gSharedMem + 0x44
-_08103E82:
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8103EAC
- lsls r0, 24
- cmp r0, 0
- bne _08103E98
- movs r0, 0
- b _08103EA4
- .align 2, 0
-_08103E94: .4byte gSharedMem + 0x44
-_08103E98:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08103E82
- movs r0, 0x1
-_08103EA4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8103E7C
-
- thumb_func_start sub_8103EAC
-sub_8103EAC: @ 8103EAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08103EC8 @ =gSprites
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08103ECC
- movs r0, 0x1
- b _08103EDE
- .align 2, 0
-_08103EC8: .4byte gSprites
-_08103ECC:
- ldrh r2, [r1, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08103EDA
- movs r0, 0
- strh r0, [r1, 0x30]
-_08103EDA:
- lsls r0, r2, 24
- lsrs r0, 24
-_08103EDE:
- pop {r1}
- bx r1
- thumb_func_end sub_8103EAC
-
- thumb_func_start sub_8103EE4
-sub_8103EE4: @ 8103EE4
- push {r4-r7,lr}
- adds r2, r0, 0
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08103F66
- ldrh r0, [r2, 0x34]
- subs r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08103F4E
- movs r0, 0
- strh r0, [r2, 0x3C]
- movs r6, 0x1
- strh r6, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r0, r1, r3
- strh r0, [r2, 0x36]
- movs r4, 0x4
- ldrh r5, [r2, 0x32]
- movs r7, 0x32
- ldrsh r3, [r2, r7]
- cmp r3, 0
- beq _08103F20
- movs r4, 0x8
-_08103F20:
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bgt _08103F38
- strh r6, [r2, 0x3C]
- negs r0, r1
- strh r0, [r2, 0x38]
- cmp r3, 0
- beq _08103F4E
- subs r0, r5, 0x1
- strh r0, [r2, 0x32]
- b _08103F40
-_08103F38:
- cmp r0, r4
- blt _08103F40
- negs r0, r1
- strh r0, [r2, 0x38]
-_08103F40:
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08103F4E
- ldrh r0, [r2, 0x34]
- lsls r0, 1
- strh r0, [r2, 0x34]
-_08103F4E:
- ldr r1, _08103F6C @ =gUnknown_083EDD30
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- adds r0, r1
- ldrb r0, [r0]
- ldrh r3, [r2, 0x36]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r3, 0
- adds r2, r3, 0
- bl MultiplyPaletteRGBComponents
-_08103F66:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103F6C: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103EE4
-
- thumb_func_start sub_8103F70
-sub_8103F70: @ 8103F70
- push {r4,lr}
- ldr r4, _08103F98 @ =sub_8103FE8
- adds r0, r4, 0
- movs r1, 0x6
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103F9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1
- strh r2, [r1, 0xE]
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103F98: .4byte sub_8103FE8
-_08103F9C: .4byte gTasks
- thumb_func_end sub_8103F70
-
- thumb_func_start sub_8103FA0
-sub_8103FA0: @ 8103FA0
- push {lr}
- ldr r0, _08103FC4 @ =sub_8103FE8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08103FC8 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08103FCC
- movs r0, 0
- b _08103FE0
- .align 2, 0
-_08103FC4: .4byte sub_8103FE8
-_08103FC8: .4byte gTasks
-_08103FCC:
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _08103FE4 @ =gUnknown_083EDDAC
- ldr r0, [r0]
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
-_08103FE0:
- pop {r1}
- bx r1
- .align 2, 0
-_08103FE4: .4byte gUnknown_083EDDAC
- thumb_func_end sub_8103FA0
-
- thumb_func_start sub_8103FE8
-sub_8103FE8: @ 8103FE8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08104040 @ =gTasks
- adds r2, r1, r0
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08104026
- movs r0, 0x4
- strh r0, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r3, [r2, 0xC]
- adds r0, r1, r3
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08104022
- cmp r0, 0x2
- bne _08104026
-_08104022:
- negs r0, r1
- strh r0, [r2, 0xE]
-_08104026:
- ldr r0, _08104044 @ =gUnknown_083EDDA0
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08104040: .4byte gTasks
-_08104044: .4byte gUnknown_083EDDA0
- thumb_func_end sub_8103FE8
-
- thumb_func_start sub_8104048
-sub_8104048: @ 8104048
- push {lr}
- ldr r0, _0810405C @ =sub_81040E8
- movs r1, 0x8
- bl CreateTask
- ldr r1, _08104060 @ =gSharedMem
- adds r1, 0x3E
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810405C: .4byte sub_81040E8
-_08104060: .4byte gSharedMem
- thumb_func_end sub_8104048
-
- thumb_func_start sub_8104064
-sub_8104064: @ 8104064
- push {r4,lr}
- ldr r0, _08104090 @ =gSharedMem
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08104094 @ =gTasks
- adds r4, r0
- adds r0, r4, 0
- bl sub_810421C
- movs r1, 0x1
- strh r1, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104090: .4byte gSharedMem
-_08104094: .4byte gTasks
- thumb_func_end sub_8104064
-
- thumb_func_start sub_8104098
-sub_8104098: @ 8104098
- push {r4,lr}
- ldr r0, _081040C0 @ =gSharedMem
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081040C4 @ =gTasks
- adds r4, r0
- adds r0, r4, 0
- bl sub_810421C
- movs r0, 0x3
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081040C0: .4byte gSharedMem
-_081040C4: .4byte gTasks
- thumb_func_end sub_8104098
-
- thumb_func_start sub_81040C8
-sub_81040C8: @ 81040C8
- ldr r2, _081040E0 @ =gTasks
- ldr r0, _081040E4 @ =gSharedMem
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_081040E0: .4byte gTasks
-_081040E4: .4byte gSharedMem
- thumb_func_end sub_81040C8
-
- thumb_func_start sub_81040E8
-sub_81040E8: @ 81040E8
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104110 @ =gUnknown_083ECBB4
- ldr r2, _08104114 @ =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
- .align 2, 0
-_08104110: .4byte gUnknown_083ECBB4
-_08104114: .4byte gTasks
- thumb_func_end sub_81040E8
-
- thumb_func_start nullsub_68
-nullsub_68: @ 8104118
- bx lr
- thumb_func_end nullsub_68
-
- thumb_func_start sub_810411C
-sub_810411C: @ 810411C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r0, 19
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- asrs r0, 16
- movs r1, 0x14
- bl sub_8105B1C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810411C
-
- thumb_func_start sub_8104144
-sub_8104144: @ 8104144
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08104174 @ =gSprites
- movs r0, 0xC
- 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 _0810419E
- ldrh r1, [r4, 0xA]
- adds r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1
- bne _08104178
- movs r0, 0x1
- b _0810417E
- .align 2, 0
-_08104174: .4byte gSprites
-_08104178:
- cmp r1, 0x10
- bne _0810417E
- movs r0, 0x2
-_0810417E:
- lsls r1, r2, 16
- asrs r1, 15
- ldr r2, _081041A4 @ =0x0600e800
- adds r1, r2
- adds r1, 0x80
- ldr r2, _081041A8 @ =gUnknown_083ECBC4
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r4, 0xC]
- bl sub_8105B88
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0x26]
-_0810419E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081041A4: .4byte 0x0600e800
-_081041A8: .4byte gUnknown_083ECBC4
- thumb_func_end sub_8104144
-
- thumb_func_start sub_81041AC
-sub_81041AC: @ 81041AC
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xA]
- adds r0, r1, 0x2
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1
- bne _081041C6
- movs r2, 0x1
- b _081041CC
-_081041C6:
- cmp r1, 0x10
- bne _081041CC
- movs r2, 0x2
-_081041CC:
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _081041F0
- lsls r0, r4, 16
- asrs r0, 15
- ldr r1, _08104214 @ =0x0600e800
- adds r0, r1
- adds r0, 0x80
- ldr r1, _08104218 @ =gUnknown_083ECBC4
- lsls r2, 2
- adds r1, 0x2
- adds r2, r1
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
-_081041F0:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _08104202
- movs r0, 0
- strh r0, [r3, 0xC]
-_08104202:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _0810420E
- strh r0, [r3, 0x8]
- strh r0, [r3, 0x26]
-_0810420E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104214: .4byte 0x0600e800
-_08104218: .4byte gUnknown_083ECBC4
- thumb_func_end sub_81041AC
-
- thumb_func_start sub_810421C
-sub_810421C: @ 810421C
- push {lr}
- movs r1, 0x2
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0
-_08104226:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _08104226
- pop {r0}
- bx r0
- thumb_func_end sub_810421C
-
- thumb_func_start sub_810423C
-sub_810423C: @ 810423C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0x3
- ldr r6, _08104268 @ =0x0600e800
- movs r4, 0
- ldr r0, _0810426C @ =gTasks
- mov r8, r0
- ldr r1, _08104270 @ =gSharedMem
- mov r12, r1
- cmp r4, r5
- bge _081042A6
- ldr r7, _08104274 @ =gUnknown_083ECBC4
-_0810425A:
- movs r3, 0
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0
- bne _08104278
- movs r3, 0x1
- b _0810427E
- .align 2, 0
-_08104268: .4byte 0x0600e800
-_0810426C: .4byte gTasks
-_08104270: .4byte gSharedMem
-_08104274: .4byte gUnknown_083ECBC4
-_08104278:
- cmp r0, 0xF
- bne _0810427E
- movs r3, 0x2
-_0810427E:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- adds r1, 0x80
- lsls r0, r3, 2
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r5
- blt _0810425A
-_081042A6:
- lsls r1, r4, 16
- asrs r0, r1, 16
- cmp r0, 0xF
- bgt _081042F0
- ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2
-_081042B0:
- movs r3, 0
- asrs r0, r1, 16
- cmp r0, 0
- bne _081042C0
- movs r3, 0x1
- b _081042C6
- .align 2, 0
-_081042BC: .4byte gUnknown_083ECBC4 + 0x2
-_081042C0:
- cmp r0, 0xF
- bne _081042C6
- movs r3, 0x2
-_081042C6:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- adds r1, 0x80
- lsls r0, r3, 2
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- lsls r1, r4, 16
- asrs r0, r1, 16
- cmp r0, 0xF
- ble _081042B0
-_081042F0:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r8
- strh r5, [r0, 0xA]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810423C
-
- thumb_func_start sub_810430C
-sub_810430C: @ 810430C
- push {r4,lr}
- ldr r4, _08104328 @ =sub_810434C
- adds r0, r4, 0
- movs r1, 0x7
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104328: .4byte sub_810434C
- thumb_func_end sub_810430C
-
- thumb_func_start sub_810432C
-sub_810432C: @ 810432C
- push {lr}
- ldr r0, _08104340 @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08104344
- movs r0, 0
- b _08104346
- .align 2, 0
-_08104340: .4byte sub_810434C
-_08104344:
- movs r0, 0x1
-_08104346:
- pop {r1}
- bx r1
- thumb_func_end sub_810432C
-
- thumb_func_start sub_810434C
-sub_810434C: @ 810434C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104374 @ =gUnknown_083ECBD0
- ldr r2, _08104378 @ =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
- .align 2, 0
-_08104374: .4byte gUnknown_083ECBD0
-_08104378: .4byte gTasks
- thumb_func_end sub_810434C
-
- thumb_func_start sub_810437C
-sub_810437C: @ 810437C
- push {lr}
- ldr r1, _081043DC @ =gSharedMem
- movs r2, 0
- strb r2, [r1, 0xA]
- strh r2, [r1, 0x14]
- strh r2, [r1, 0x16]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- movs r1, 0x1E
- strh r1, [r0, 0xC]
- movs r1, 0xA0
- lsls r1, 3
- strh r1, [r0, 0x10]
- ldr r0, _081043E0 @ =gSpriteCoordOffsetX
- strh r2, [r0]
- ldr r0, _081043E4 @ =gSpriteCoordOffsetY
- strh r2, [r0]
- ldr r0, _081043E8 @ =REG_BG1HOFS
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- movs r0, 0x1E
- movs r1, 0
- bl sub_8104A40
- bl sub_81051C0
- bl sub_8105100
- bl sub_81052EC
- bl sub_81053A0
- bl sub_810545C
- bl sub_8102680
- bl StopMapMusic
- movs r0, 0xC4
- lsls r0, 1
- bl PlayNewMapMusic
- pop {r0}
- bx r0
- .align 2, 0
-_081043DC: .4byte gSharedMem
-_081043E0: .4byte gSpriteCoordOffsetX
-_081043E4: .4byte gSpriteCoordOffsetY
-_081043E8: .4byte REG_BG1HOFS
- thumb_func_end sub_810437C
-
- thumb_func_start sub_81043EC
-sub_81043EC: @ 81043EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810445C @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r4, 0xA]
- adds r2, 0x8
- strh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xF0
- movs r1, 0xFF
- ands r0, r1
- lsrs r3, r0, 3
- ldr r1, _08104460 @ =REG_BG1HOFS
- ldr r0, _08104464 @ =0x000001ff
- ands r2, r0
- strh r2, [r1]
- adds r2, r3, 0
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r2, r0
- beq _08104438
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bgt _08104438
- strh r3, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- adds r0, r2, 0
- bl sub_8104A40
-_08104438:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xC7
- ble _0810444A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xE]
-_0810444A:
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810445C: .4byte gSpriteCoordOffsetX
-_08104460: .4byte REG_BG1HOFS
-_08104464: .4byte 0x000001ff
- thumb_func_end sub_81043EC
-
- thumb_func_start sub_8104468
-sub_8104468: @ 8104468
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104492
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105578
- bl sub_81056F0
-_08104492:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104468
-
- thumb_func_start sub_8104498
-sub_8104498: @ 8104498
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r1, _08104534 @ =gUnknown_083ECC1C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _08104538 @ =gUnknown_083ECC20
- movs r2, 0x8
- bl memcpy
- add r6, sp, 0xC
- ldr r1, _0810453C @ =gUnknown_083ECC28
- adds r0, r6, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r7, 0x10]
- subs r0, 0x4
- strh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- movs r5, 0x4
- subs r5, r0
- lsls r4, r5, 1
- add r8, r4
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl sub_8105688
- adds r6, r4
- movs r1, 0
- ldrsh r0, [r6, r1]
- bl sub_81057E8
- ldr r0, _08104540 @ =gSharedMem
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104544 @ =gSprites
- adds r0, r1
- mov r2, sp
- adds r1, r2, r5
- ldrb r1, [r1]
- bl StartSpriteAnimIfDifferent
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bgt _08104526
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- strh r1, [r7, 0x10]
- movs r0, 0
- strh r0, [r7, 0x12]
-_08104526:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104534: .4byte gUnknown_083ECC1C
-_08104538: .4byte gUnknown_083ECC20
-_0810453C: .4byte gUnknown_083ECC28
-_08104540: .4byte gSharedMem
-_08104544: .4byte gSprites
- thumb_func_end sub_8104498
-
- thumb_func_start sub_8104548
-sub_8104548: @ 8104548
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _0810458A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- strh r0, [r4, 0x12]
- movs r0, 0x2
- bl sub_81057E8
- ldr r0, _08104590 @ =gSharedMem
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104594 @ =gSprites
- adds r0, r1
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
-_0810458A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104590: .4byte gSharedMem
-_08104594: .4byte gSprites
- thumb_func_end sub_8104548
-
- thumb_func_start sub_8104598
-sub_8104598: @ 8104598
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrb r0, [r4, 0x10]
- adds r0, 0x80
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _081045C4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- strh r0, [r4, 0x12]
-_081045C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104598
-
- thumb_func_start sub_81045CC
-sub_81045CC: @ 81045CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrb r0, [r4, 0x10]
- adds r0, 0x40
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _08104634
- movs r0, 0
- strh r0, [r4, 0x12]
- ldr r1, _0810460C @ =gSharedMem
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _08104610
- ldrb r1, [r1, 0xA]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0810462E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- b _0810462C
- .align 2, 0
-_0810460C: .4byte gSharedMem
-_08104610:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0810461E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- b _0810462C
-_0810461E:
- ldrh r0, [r4, 0x14]
- bl sub_81026DC
- lsls r0, 24
- cmp r0, 0
- beq _0810462E
- movs r0, 0xE
-_0810462C:
- strh r0, [r4, 0x8]
-_0810462E:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
-_08104634:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81045CC
-
- thumb_func_start sub_810463C
-sub_810463C: @ 810463C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _08104660 @ =gSharedMem
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r0, 0
- beq _08104664
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D5C
- b _08104688
- .align 2, 0
-_08104660: .4byte gSharedMem
-_08104664:
- movs r0, 0x1
- bl sub_8102C48
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x5]
- cmp r0, r1
- beq _08104692
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- movs r1, 0x14
- bl __modsi3
-_08104688:
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r4, 0x10]
- adds r0, 0x40
- strh r0, [r4, 0x10]
-_08104692:
- lsls r0, r5, 16
- asrs r5, r0, 16
- cmp r5, 0
- bne _081046B4
- movs r0, 0x1
- bl sub_8102C48
- ldr r1, _081046BC @ =gSharedMem
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x5]
- cmp r0, r1
- bne _081046B4
- strh r5, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081046B4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081046BC: .4byte gSharedMem
- thumb_func_end sub_810463C
-
- thumb_func_start sub_81046C0
-sub_81046C0: @ 81046C0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104758
- bl StopMapMusic
- bl sub_81056C0
- bl sub_8105804
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r5, _08104710 @ =gSharedMem
- ldrb r0, [r5, 0x5]
- cmp r0, 0
- bne _0810471C
- movs r0, 0xA0
- strh r0, [r4, 0x10]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104714 @ =gSprites
- adds r0, r1
- movs r1, 0x5
- bl StartSpriteAnimIfDifferent
- ldr r0, _08104718 @ =0x00000187
- bl PlayFanfare
- b _08104758
- .align 2, 0
-_08104710: .4byte gSharedMem
-_08104714: .4byte gSprites
-_08104718: .4byte 0x00000187
-_0810471C:
- movs r0, 0xC0
- strh r0, [r4, 0x10]
- adds r6, r5, 0
- adds r6, 0x3F
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08104760 @ =gSprites
- adds r0, r4
- movs r1, 0x4
- bl StartSpriteAnimIfDifferent
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2B
- strb r7, [r0]
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _08104750
- bl sub_8104098
- strb r7, [r5, 0x2]
-_08104750:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
-_08104758:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104760: .4byte gSprites
- thumb_func_end sub_81046C0
-
- thumb_func_start sub_8104764
-sub_8104764: @ 8104764
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0810477C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0810478C
-_0810477C:
- bl sub_81040C8
- lsls r0, 24
- cmp r0, 0
- bne _0810478C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0810478C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104764
-
- thumb_func_start sub_8104794
-sub_8104794: @ 8104794
- push {r4,lr}
- adds r3, r0, 0
- ldr r1, _081047D4 @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r3, 0xA]
- adds r2, 0x8
- strh r2, [r3, 0xA]
- ldrh r0, [r3, 0xE]
- adds r0, 0x8
- strh r0, [r3, 0xE]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- subs r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- lsrs r4, r0, 3
- ldr r1, _081047D8 @ =REG_BG1HOFS
- ldr r0, _081047DC @ =0x000001ff
- ands r2, r0
- strh r2, [r1]
- ldrh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 19
- cmp r0, 0x19
- bgt _081047E0
- adds r0, r4, 0
- bl sub_8104A88
- b _081047E6
- .align 2, 0
-_081047D4: .4byte gSpriteCoordOffsetX
-_081047D8: .4byte REG_BG1HOFS
-_081047DC: .4byte 0x000001ff
-_081047E0:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_081047E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104794
-
- thumb_func_start sub_81047EC
-sub_81047EC: @ 81047EC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _08104834 @ =gSharedMem
- movs r6, 0
- strb r6, [r4, 0xB]
- ldrb r0, [r4, 0x5]
- strb r0, [r4, 0xA]
- ldr r0, _08104838 @ =gSpriteCoordOffsetX
- strh r6, [r0]
- ldr r0, _0810483C @ =REG_BG1HOFS
- strh r6, [r0]
- movs r0, 0x8
- strh r0, [r4, 0x1A]
- bl sub_810514C
- bl sub_81054B8
- bl sub_8105524
- adds r0, r4, 0
- adds r0, 0x60
- ldrh r0, [r0]
- bl PlayNewMapMusic
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _08104844
- ldr r0, _08104840 @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _0810485A
- .align 2, 0
-_08104834: .4byte gSharedMem
-_08104838: .4byte gSpriteCoordOffsetX
-_0810483C: .4byte REG_BG1HOFS
-_08104840: .4byte sub_810434C
-_08104844:
- movs r0, 0x4
- bl sub_8104CAC
- bl dp15_jump_random_unknown
- strh r0, [r5, 0xA]
- strh r6, [r5, 0xC]
- strh r6, [r5, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0810485A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81047EC
-
- thumb_func_start sub_8104860
-sub_8104860: @ 8104860
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0810487C @ =gSharedMem
- ldrh r0, [r5, 0x1A]
- lsls r6, r0, 16
- asrs r1, r6, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08104880
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081048A2
- .align 2, 0
-_0810487C: .4byte gSharedMem
-_08104880:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _081048A2
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _081048A2
- asrs r0, r6, 17
- strh r0, [r5, 0x1A]
-_081048A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8104860
-
- thumb_func_start sub_81048A8
-sub_81048A8: @ 81048A8
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _081048C2
- ldr r0, _081048C8 @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_081048C2:
- pop {r0}
- bx r0
- .align 2, 0
-_081048C8: .4byte sub_810434C
- thumb_func_end sub_81048A8
-
- thumb_func_start sub_81048CC
-sub_81048CC: @ 81048CC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_81054B8
- bl sub_81056C0
- bl sub_8105804
- bl sub_8105854
- ldr r5, _08104934 @ =gSprites
- ldr r3, _08104938 @ =gSharedMem
- adds r0, r3, 0
- adds r0, 0x4E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x3F
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x5
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- movs r0, 0x4
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- bl StopMapMusic
- ldr r0, _0810493C @ =0x00000187
- bl PlayFanfare
- movs r0, 0xB2
- bl PlaySE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104934: .4byte gSprites
-_08104938: .4byte gSharedMem
-_0810493C: .4byte 0x00000187
- thumb_func_end sub_81048CC
-
- thumb_func_start sub_8104940
-sub_8104940: @ 8104940
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _081049B8 @ =gSpriteCoordOffsetY
- ldrh r1, [r4, 0x10]
- strh r1, [r0]
- ldr r0, _081049BC @ =REG_BG1VOFS
- strh r1, [r0]
- ldrh r1, [r4, 0x12]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810495E
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
-_0810495E:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _08104974
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 17
- strh r0, [r4, 0x10]
-_08104974:
- movs r0, 0x10
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081049B0
- bl sub_81058A0
- bl sub_81058C4
- bl sub_8105284
- bl sub_81059E8
- ldr r2, _081049C0 @ =gSprites
- ldr r0, _081049C4 @ =gSharedMem
- adds r0, 0x4E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r5, [r4, 0x12]
-_081049B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081049B8: .4byte gSpriteCoordOffsetY
-_081049BC: .4byte REG_BG1VOFS
-_081049C0: .4byte gSprites
-_081049C4: .4byte gSharedMem
- thumb_func_end sub_8104940
-
- thumb_func_start sub_81049C8
-sub_81049C8: @ 81049C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081049F0 @ =gSpriteCoordOffsetY
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081049F4 @ =REG_BG1VOFS
- strh r1, [r0]
- bl sub_8105ACC
- lsls r0, 24
- cmp r0, 0
- beq _081049EA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105AEC
-_081049EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081049F0: .4byte gSpriteCoordOffsetY
-_081049F4: .4byte REG_BG1VOFS
- thumb_func_end sub_81049C8
-
- thumb_func_start sub_81049F8
-sub_81049F8: @ 81049F8
- push {lr}
- ldr r0, _08104A30 @ =gSpriteCoordOffsetX
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08104A34 @ =REG_BG1HOFS
- strh r1, [r0]
- ldr r0, _08104A38 @ =gSharedMem
- adds r0, 0x60
- ldrh r0, [r0]
- bl PlayNewMapMusic
- bl sub_810514C
- bl sub_8105554
- bl sub_8105524
- bl sub_81059B8
- ldr r0, _08104A3C @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_08104A30: .4byte gSpriteCoordOffsetX
-_08104A34: .4byte REG_BG1HOFS
-_08104A38: .4byte gSharedMem
-_08104A3C: .4byte sub_810434C
- thumb_func_end sub_81049F8
-
- thumb_func_start sub_8104A40
-sub_8104A40: @ 8104A40
- push {r4-r7,lr}
- movs r3, 0x4
- ldr r7, _08104A80 @ =gReelTimeWindowTilemap
- lsls r1, 16
- asrs r5, r1, 16
- lsls r0, 16
- asrs r4, r0, 16
- ldr r6, _08104A84 @ =0x0600e000
-_08104A50:
- lsls r2, r3, 16
- asrs r2, 16
- subs r1, r2, 0x4
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5, r0
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r0]
- lsls r0, r2, 5
- adds r0, r4
- lsls r0, 1
- adds r0, r6
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- cmp r2, 0xE
- ble _08104A50
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104A80: .4byte gReelTimeWindowTilemap
-_08104A84: .4byte 0x0600e000
- thumb_func_end sub_8104A40
-
- thumb_func_start sub_8104A88
-sub_8104A88: @ 8104A88
- push {r4,r5,lr}
- movs r2, 0x4
- lsls r0, 16
- asrs r3, r0, 16
- ldr r5, _08104AB4 @ =0x0600e000
- movs r4, 0
-_08104A94:
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r2, r1, 16
- asrs r1, 16
- cmp r1, 0xE
- ble _08104A94
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104AB4: .4byte 0x0600e000
- thumb_func_end sub_8104A88
-
- thumb_func_start sub_8104AB8
-sub_8104AB8: @ 8104AB8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08104AE4 @ =sub_8104B0C
- adds r0, r5, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08104AE8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104AE4: .4byte sub_8104B0C
-_08104AE8: .4byte gTasks
- thumb_func_end sub_8104AB8
-
- thumb_func_start sub_8104AEC
-sub_8104AEC: @ 8104AEC
- push {lr}
- ldr r0, _08104B00 @ =sub_8104B0C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08104B04
- movs r0, 0
- b _08104B06
- .align 2, 0
-_08104B00: .4byte sub_8104B0C
-_08104B04:
- movs r0, 0x1
-_08104B06:
- pop {r1}
- bx r1
- thumb_func_end sub_8104AEC
-
- thumb_func_start sub_8104B0C
-sub_8104B0C: @ 8104B0C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104B34 @ =gUnknown_083ECC30
- ldr r2, _08104B38 @ =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
- .align 2, 0
-_08104B34: .4byte gUnknown_083ECC30
-_08104B38: .4byte gTasks
- thumb_func_end sub_8104B0C
-
- thumb_func_start sub_8104B3C
-sub_8104B3C: @ 8104B3C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104B3C
-
- thumb_func_start sub_8104B60
-sub_8104B60: @ 8104B60
- push {lr}
- adds r2, r0, 0
- ldr r0, _08104B7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08104B76
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08104B76:
- pop {r0}
- bx r0
- .align 2, 0
-_08104B7C: .4byte gPaletteFade
- thumb_func_end sub_8104B60
-
- thumb_func_start sub_8104B80
-sub_8104B80: @ 8104B80
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8104DA4
- bl sub_81065DC
- ldr r0, _08104BC0 @ =gWindowConfig_81E7144
- bl BasicInitMenuWindow
- ldr r0, _08104BC4 @ =gOtherText_ReelTime
- movs r1, 0xA
- movs r2, 0x20
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104BC0: .4byte gWindowConfig_81E7144
-_08104BC4: .4byte gOtherText_ReelTime
- thumb_func_end sub_8104B80
-
- thumb_func_start sub_8104BC8
-sub_8104BC8: @ 8104BC8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _08104BF8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _08104BF0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08104BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104BF8: .4byte gMain
- thumb_func_end sub_8104BC8
-
- thumb_func_start sub_8104BFC
-sub_8104BFC: @ 8104BFC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl MenuZeroFillScreen
- ldr r0, _08104C3C @ =gWindowConfig_81E7128
- bl BasicInitMenuWindow
- bl sub_81064B8
- ldrb r0, [r4, 0xA]
- bl sub_8104CAC
- ldr r0, _08104C40 @ =gSharedMem
- ldrb r0, [r0, 0x2]
- bl sub_810423C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104C3C: .4byte gWindowConfig_81E7128
-_08104C40: .4byte gSharedMem
- thumb_func_end sub_8104BFC
-
- thumb_func_start sub_8104C44
-sub_8104C44: @ 8104C44
- push {lr}
- ldr r0, _08104C58 @ =sub_8104B0C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_08104C58: .4byte sub_8104B0C
- thumb_func_end sub_8104C44
-
- thumb_func_start sub_8104C5C
-sub_8104C5C: @ 8104C5C
- push {lr}
- ldr r0, _08104C9C @ =sub_8104E74
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08104CA0 @ =gSharedMem
- adds r0, 0x3D
- strb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104CA4 @ =gTasks
- adds r0, r1
- ldr r1, _08104CA8 @ =0x0000ffff
- strh r1, [r0, 0xA]
- movs r1, 0x4
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0x40
-_08104C86:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _08104C86
- pop {r0}
- bx r0
- .align 2, 0
-_08104C9C: .4byte sub_8104E74
-_08104CA0: .4byte gSharedMem
-_08104CA4: .4byte gTasks
-_08104CA8: .4byte 0x0000ffff
- thumb_func_end sub_8104C5C
-
-.section .text_8104D30
-
- thumb_func_start sub_8104D30
-sub_8104D30: @ 8104D30
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r1
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08104D84 @ =gSharedMem
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D88 @ =gTasks
- adds r0, r1
- mov r12, r0
- movs r5, 0x4
- lsls r4, 16
- asrs r6, r4, 16
- lsls r2, 16
- lsls r3, 16
-_08104D5C:
- lsls r0, r5, 1
- mov r1, r12
- adds r1, 0x8
- adds r4, r1, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _08104D8C
- str r6, [sp]
- adds r0, r7, 0
- mov r1, r8
- asrs r2, 16
- asrs r3, 16
- bl sub_8105BF8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _08104D96
- .align 2, 0
-_08104D84: .4byte gSharedMem
-_08104D88: .4byte gTasks
-_08104D8C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08104D5C
-_08104D96:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8104D30
-
- thumb_func_start sub_8104DA4
-sub_8104DA4: @ 8104DA4
- push {r4-r6,lr}
- ldr r0, _08104E04 @ =gSharedMem
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104E08 @ =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldr r0, _08104E0C @ =0x0000ffff
- cmp r1, r0
- beq _08104DCE
- ldr r0, _08104E10 @ =gUnknown_083ED064
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08104DCE:
- movs r5, 0x4
- adds r6, r4, 0
- adds r6, 0x8
-_08104DD4:
- lsls r0, r5, 1
- adds r4, r6, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _08104DF4
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104E14 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0x40
- strh r0, [r4]
-_08104DF4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08104DD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08104E04: .4byte gSharedMem
-_08104E08: .4byte gTasks
-_08104E0C: .4byte 0x0000ffff
-_08104E10: .4byte gUnknown_083ED064
-_08104E14: .4byte gSprites
- thumb_func_end sub_8104DA4
-
- thumb_func_start sub_8104E18
-sub_8104E18: @ 8104E18
- push {r4,r5,lr}
- ldr r0, _08104E54 @ =gSharedMem
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104E58 @ =gTasks
- adds r0, r1
- movs r2, 0x4
- adds r3, r0, 0
- adds r3, 0x8
- ldr r4, _08104E5C @ =gSprites
-_08104E32:
- lsls r0, r2, 1
- adds r1, r3, r0
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0x40
- beq _08104E60
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r5, 0x3C
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08104E60
- movs r0, 0
- b _08104E6C
- .align 2, 0
-_08104E54: .4byte gSharedMem
-_08104E58: .4byte gTasks
-_08104E5C: .4byte gSprites
-_08104E60:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _08104E32
- movs r0, 0x1
-_08104E6C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8104E18
-
- thumb_func_start sub_8104E74
-sub_8104E74: @ 8104E74
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104E9C @ =gUnknown_083ECC54
- ldr r2, _08104EA0 @ =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
- .align 2, 0
-_08104E9C: .4byte gUnknown_083ECC54
-_08104EA0: .4byte gTasks
- thumb_func_end sub_8104E74
-
- thumb_func_start nullsub_69
-nullsub_69: @ 8104EA4
- bx lr
- thumb_func_end nullsub_69
-
- thumb_func_start sub_8104EA8
-sub_8104EA8: @ 8104EA8
- push {r4-r7,lr}
- movs r6, 0
- movs r0, 0x30
-_08104EAE:
- movs r4, 0
- lsls r5, r0, 16
- lsls r7, r6, 16
-_08104EB4:
- ldr r0, _08104F0C @ =gSpriteTemplate_83ED414
- asrs r1, r5, 16
- movs r2, 0
- movs r3, 0xE
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08104F10 @ =gSprites
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- orrs r0, r2
- strb r0, [r1, 0x5]
- strh r6, [r1, 0x2E]
- strh r4, [r1, 0x30]
- ldr r0, _08104F14 @ =0x0000ffff
- strh r0, [r1, 0x34]
- lsls r0, r4, 16
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x77
- ble _08104EB4
- movs r2, 0x80
- lsls r2, 9
- adds r1, r7, r2
- movs r2, 0xA0
- lsls r2, 14
- adds r0, r5, r2
- lsrs r0, 16
- lsrs r6, r1, 16
- asrs r1, 16
- cmp r1, 0x2
- ble _08104EAE
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104F0C: .4byte gSpriteTemplate_83ED414
-_08104F10: .4byte gSprites
-_08104F14: .4byte 0x0000ffff
- thumb_func_end sub_8104EA8
-
- thumb_func_start sub_8104F18
-sub_8104F18: @ 8104F18
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08104F88 @ =gSharedMem
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x1C
- adds r1, r0
- ldrh r0, [r5, 0x30]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x32]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0x78
- bl __modsi3
- strh r0, [r5, 0x32]
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r1, 1
- adds r4, 0x22
- adds r1, r4
- ldrh r1, [r1]
- adds r1, 0x1C
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8102BA4
- lsls r0, 24
- lsrs r0, 24
- bl GetSpriteTileStartByTag
- adds r1, r5, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r5, 0
- bl SetSpriteSheetFrameTileNum
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104F88: .4byte gSharedMem
- thumb_func_end sub_8104F18
-
- thumb_func_start sub_8104F8C
-sub_8104F8C: @ 8104F8C
- push {r4-r6,lr}
- movs r4, 0xCB
- movs r5, 0x1
- ldr r6, _08104FF0 @ =0x0000270f
-_08104F94:
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- movs r1, 0x17
- movs r2, 0
- adds r3, r5, 0
- bl sub_8104FF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 17
- subs r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r6
- ble _08104F94
- movs r4, 0xEB
- movs r5, 0x1
- ldr r6, _08104FF0 @ =0x0000270f
-_08104FC2:
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- movs r1, 0x17
- movs r2, 0x1
- adds r3, r5, 0
- bl sub_8104FF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 17
- subs r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r6
- ble _08104FC2
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08104FF0: .4byte 0x0000270f
- thumb_func_end sub_8104F8C
-
- thumb_func_start sub_8104FF4
-sub_8104FF4: @ 8104FF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- adds r4, r3, 0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08105060 @ =gSpriteTemplate_83ED42C
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0xD
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08105064 @ =gSprites
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x2E]
- strh r4, [r2, 0x30]
- lsls r4, 16
- asrs r4, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 1
- strh r0, [r2, 0x32]
- ldr r0, _08105068 @ =0x0000ffff
- strh r0, [r2, 0x34]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105060: .4byte gSpriteTemplate_83ED42C
-_08105064: .4byte gSprites
-_08105068: .4byte 0x0000ffff
- thumb_func_end sub_8104FF4
-
- thumb_func_start sub_810506C
-sub_810506C: @ 810506C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _081050C0 @ =gSharedMem
- ldrh r2, [r1, 0xC]
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0810507E
- ldrh r2, [r1, 0xE]
-_0810507E:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, r2
- beq _081050B8
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- adds r0, r2, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r2, 0
- bl __udivsi3
- lsls r0, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r0, r3
- lsrs r2, r0, 16
- adds r0, r2, 0
- bl GetSpriteTileStartByTag
- adds r1, r4, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r4, 0
- bl SetSpriteSheetFrameTileNum
-_081050B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081050C0: .4byte gSharedMem
- thumb_func_end sub_810506C
-
- thumb_func_start sub_81050C4
-sub_81050C4: @ 81050C4
- push {lr}
- ldr r0, _081050F4 @ =gSpriteTemplate_83ED444
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0xF
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081050F8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, _081050FC @ =gSubspriteTables_83ED704
- bl SetSubspriteTables
- pop {r0}
- bx r0
- .align 2, 0
-_081050F4: .4byte gSpriteTemplate_83ED444
-_081050F8: .4byte gSprites
-_081050FC: .4byte gSubspriteTables_83ED704
- thumb_func_end sub_81050C4
-
- thumb_func_start sub_8105100
-sub_8105100: @ 8105100
- push {lr}
- ldr r0, _08105140 @ =gSpriteTemplate_83ED45C
- movs r1, 0x8C
- lsls r1, 1
- movs r2, 0x50
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08105144 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- ldr r1, _08105148 @ =gSharedMem
- adds r1, 0x3F
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08105140: .4byte gSpriteTemplate_83ED45C
-_08105144: .4byte gSprites
-_08105148: .4byte gSharedMem
- thumb_func_end sub_8105100
-
- thumb_func_start sub_810514C
-sub_810514C: @ 810514C
- push {lr}
- ldr r0, _08105168 @ =gSharedMem
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810516C @ =gSprites
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_08105168: .4byte gSharedMem
-_0810516C: .4byte gSprites
- thumb_func_end sub_810514C
-
- thumb_func_start sub_8105170
-sub_8105170: @ 8105170
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2, 0x24]
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _081051B6
- movs r0, 0x8
- strh r0, [r2, 0x24]
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- beq _081051A4
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081051B2
- b _081051B6
-_081051A4:
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081051B6
-_081051B2:
- ldr r0, _081051BC @ =0x0000fff8
- strh r0, [r2, 0x26]
-_081051B6:
- pop {r0}
- bx r0
- .align 2, 0
-_081051BC: .4byte 0x0000fff8
- thumb_func_end sub_8105170
-
- thumb_func_start sub_81051C0
-sub_81051C0: @ 81051C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0810526C @ =gSpriteTemplate_83ED474
- movs r7, 0xB8
- lsls r7, 1
- adds r1, r7, 0
- movs r2, 0x34
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105270 @ =gSprites
- mov r10, r1
- adds r2, r0, r1
- ldrb r1, [r2, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r3, 0x4
- mov r9, r3
- mov r1, r9
- orrs r0, r1
- strb r0, [r2, 0x5]
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x2
- mov r8, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1]
- ldr r1, _08105274 @ =gSubspriteTables_83ED73C
- adds r0, r2, 0
- bl SetSubspriteTables
- ldr r6, _08105278 @ =gSharedMem
- adds r0, r6, 0
- adds r0, 0x49
- strb r4, [r0]
- ldr r0, _0810527C @ =gSpriteTemplate_83ED48C
- adds r1, r7, 0
- movs r2, 0x54
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- mov r1, r10
- adds r2, r0, r1
- ldrb r0, [r2, 0x5]
- ands r5, r0
- mov r3, r9
- orrs r5, r3
- strb r5, [r2, 0x5]
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- orrs r0, r3
- strb r0, [r1]
- ldr r1, _08105280 @ =gSubspriteTables_83ED75C
- adds r0, r2, 0
- bl SetSubspriteTables
- adds r6, 0x4A
- strb r4, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810526C: .4byte gSpriteTemplate_83ED474
-_08105270: .4byte gSprites
-_08105274: .4byte gSubspriteTables_83ED73C
-_08105278: .4byte gSharedMem
-_0810527C: .4byte gSpriteTemplate_83ED48C
-_08105280: .4byte gSubspriteTables_83ED75C
- thumb_func_end sub_81051C0
-
- thumb_func_start sub_8105284
-sub_8105284: @ 8105284
- push {r4,lr}
- ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4
- ldr r1, _081052DC @ =gSpriteCoordOffsetX
- ldrh r2, [r1]
- movs r1, 0xA8
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x50
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081052E0 @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _081052E4 @ =gSubspriteTables_83ED78C
- bl SetSubspriteTables
- ldr r0, _081052E8 @ =gSharedMem
- adds r0, 0x42
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081052D8: .4byte gSpriteTemplate_83ED4A4
-_081052DC: .4byte gSpriteCoordOffsetX
-_081052E0: .4byte gSprites
-_081052E4: .4byte gSubspriteTables_83ED78C
-_081052E8: .4byte gSharedMem
- thumb_func_end sub_8105284
-
- thumb_func_start sub_81052EC
-sub_81052EC: @ 81052EC
- push {r4-r7,lr}
- movs r4, 0
- movs r5, 0
- ldr r6, _08105350 @ =gSharedMem + 0x4B
-_081052F4:
- ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC
- movs r1, 0xB8
- lsls r1, 1
- movs r2, 0
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- ldr r1, _08105358 @ =gSprites
- adds r3, r1
- ldrb r2, [r3, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r1, r7, 0
- ands r2, r1
- movs r1, 0x4
- orrs r2, r1
- strb r2, [r3, 0x5]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- strh r5, [r3, 0x3C]
- adds r1, r4, r6
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r5, 16
- movs r7, 0xA0
- lsls r7, 13
- adds r0, r7
- lsrs r5, r0, 16
- cmp r4, 0x2
- bls _081052F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08105350: .4byte gSharedMem + 0x4B
-_08105354: .4byte gSpriteTemplate_83ED4BC
-_08105358: .4byte gSprites
- thumb_func_end sub_81052EC
-
- thumb_func_start sub_810535C
-sub_810535C: @ 810535C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810539C @ =gSharedMem
- ldrh r0, [r4, 0x3C]
- ldrh r1, [r1, 0x14]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x28
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r1, r0, 0
- adds r1, 0x3B
- strh r1, [r4, 0x22]
- movs r1, 0x14
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- bl sub_8102C48
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810539C: .4byte gSharedMem
- thumb_func_end sub_810535C
-
- thumb_func_start sub_81053A0
-sub_81053A0: @ 81053A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r1, 0xB8
- lsls r1, 1
- ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
- movs r2, 0x64
- movs r3, 0x9
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r7, _08105450 @ =gSprites
- adds r2, r0, r7
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x2
- mov r10, r3
- mov r3, r10
- orrs r0, r3
- strb r0, [r1]
- ldrb r1, [r2, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r2, 0x5]
- ldr r0, _08105454 @ =gSubspriteTables_83ED7B4
- mov r9, r0
- adds r0, r2, 0
- mov r1, r9
- bl SetSubspriteTables
- ldr r6, _08105458 @ =gSharedMem
- adds r0, r6, 0
- adds r0, 0x4E
- strb r4, [r0]
- movs r1, 0x90
- lsls r1, 1
- ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
- movs r2, 0x68
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r7
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r10
- orrs r0, r3
- strb r0, [r1]
- ldrb r0, [r2, 0x5]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r2, 0x5]
- adds r0, r2, 0
- mov r1, r9
- bl SetSubspriteTables
- adds r6, 0x4F
- strb r4, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810544C: .4byte gSpriteTemplate_83ED4D4
-_08105450: .4byte gSprites
-_08105454: .4byte gSubspriteTables_83ED7B4
-_08105458: .4byte gSharedMem
- thumb_func_end sub_81053A0
-
- thumb_func_start sub_810545C
-sub_810545C: @ 810545C
- push {r4,lr}
- ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC
- movs r1, 0xB8
- lsls r1, 1
- movs r2, 0x4C
- movs r3, 0xB
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081054AC @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4
- bl SetSubspriteTables
- ldr r0, _081054B4 @ =gSharedMem
- adds r0, 0x40
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081054A8: .4byte gSpriteTemplate_83ED4EC
-_081054AC: .4byte gSprites
-_081054B0: .4byte gSubspriteTables_83ED7D4
-_081054B4: .4byte gSharedMem
- thumb_func_end sub_810545C
-
- thumb_func_start sub_81054B8
-sub_81054B8: @ 81054B8
- push {r4,r5,lr}
- ldr r4, _08105518 @ =gSharedMem
- adds r0, r4, 0
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r5, 0
- adds r4, 0x49
-_081054D4:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _081054D4
- movs r5, 0
- ldr r4, _08105520 @ =gSharedMem + 0x4B
-_081054F4:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081054F4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105518: .4byte gSharedMem
-_0810551C: .4byte gSprites
-_08105520: .4byte gSharedMem + 0x4B
- thumb_func_end sub_81054B8
-
- thumb_func_start sub_8105524
-sub_8105524: @ 8105524
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810554C @ =gSharedMem + 0x4E
-_0810552A:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105550 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0810552A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810554C: .4byte gSharedMem + 0x4E
-_08105550: .4byte gSprites
- thumb_func_end sub_8105524
-
- thumb_func_start sub_8105554
-sub_8105554: @ 8105554
- push {lr}
- ldr r0, _08105570 @ =gSharedMem
- adds r0, 0x42
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105574 @ =gSprites
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_08105570: .4byte gSharedMem
-_08105574: .4byte gSprites
- thumb_func_end sub_8105554
-
- thumb_func_start sub_8105578
-sub_8105578: @ 8105578
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _0810561C @ =gSpriteTemplate_83ED504
- mov r10, r0
- movs r1, 0x98
- movs r2, 0x20
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _08105620 @ =gSprites
- mov r9, r2
- adds r3, r1, r2
- ldrb r2, [r3, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r1, r2
- strb r1, [r3, 0x5]
- adds r5, r3, 0
- adds r5, 0x3F
- ldrb r1, [r5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r5]
- ldr r5, _08105624 @ =gSharedMem
- adds r1, r5, 0
- adds r1, 0x50
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x2E]
- ldr r0, _08105628 @ =0x0000ffff
- strh r0, [r3, 0x30]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r3, 0x32]
- movs r6, 0x20
- strh r6, [r3, 0x3C]
- mov r0, r10
- movs r1, 0xB8
- movs r2, 0x20
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- mov r2, r9
- adds r3, r1, r2
- ldrb r1, [r3, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r3, 0x5]
- adds r5, 0x51
- strb r0, [r5]
- movs r0, 0x1
- strh r0, [r3, 0x30]
- subs r0, 0x2
- strh r0, [r3, 0x32]
- strh r6, [r3, 0x3C]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810561C: .4byte gSpriteTemplate_83ED504
-_08105620: .4byte gSprites
-_08105624: .4byte gSharedMem
-_08105628: .4byte 0x0000ffff
- thumb_func_end sub_8105578
-
- thumb_func_start sub_810562C
-sub_810562C: @ 810562C
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r4, [r2, r1]
- cmp r4, 0
- beq _08105650
- subs r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x2E]
- strh r1, [r2, 0x24]
- strh r1, [r2, 0x26]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- b _08105682
-_08105650:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08105682
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x2E]
- strh r4, [r2, 0x34]
-_08105682:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810562C
-
- thumb_func_start sub_8105688
-sub_8105688: @ 8105688
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _081056B8 @ =gSprites
- ldr r3, _081056BC @ =gSharedMem
- adds r1, r3, 0
- adds r1, 0x50
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x3C]
- adds r3, 0x51
- ldrb r2, [r3]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081056B8: .4byte gSprites
-_081056BC: .4byte gSharedMem
- thumb_func_end sub_8105688
-
- thumb_func_start sub_81056C0
-sub_81056C0: @ 81056C0
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081056E8 @ =gSharedMem + 0x50
-_081056C6:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081056EC @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _081056C6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081056E8: .4byte gSharedMem + 0x50
-_081056EC: .4byte gSprites
- thumb_func_end sub_81056C0
-
- thumb_func_start sub_81056F0
-sub_81056F0: @ 81056F0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08105778 @ =gSpriteTemplate_83ED51C
- mov r8, r0
- movs r1, 0x48
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810577C @ =gSprites
- mov r9, r1
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrb r3, [r2, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r3
- movs r6, 0x4
- orrs r1, r6
- strb r1, [r2, 0x5]
- movs r3, 0
- movs r1, 0x1
- strh r1, [r2, 0x2E]
- strh r3, [r2, 0x38]
- movs r1, 0x10
- strh r1, [r2, 0x3A]
- movs r1, 0x8
- strh r1, [r2, 0x3C]
- ldr r5, _08105780 @ =gSharedMem
- adds r1, r5, 0
- adds r1, 0x52
- strb r0, [r1]
- mov r0, r8
- movs r1, 0x68
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r2, [r1, 0x5]
- ands r4, r2
- orrs r4, r6
- strb r4, [r1, 0x5]
- adds r1, 0x3F
- ldrb r2, [r1]
- movs r3, 0x1
- orrs r2, r3
- strb r2, [r1]
- adds r5, 0x53
- strb r0, [r5]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105778: .4byte gSpriteTemplate_83ED51C
-_0810577C: .4byte gSprites
-_08105780: .4byte gSharedMem
- thumb_func_end sub_81056F0
-
- thumb_func_start sub_8105784
-sub_8105784: @ 8105784
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _081057E0 @ =gUnknown_083ECC58
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081057D6
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bgt _081057D6
- movs r0, 0x7
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r2, _081057E4 @ =0x01030000
- adds r0, r2
- lsrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- add r1, sp
- ldrb r3, [r1]
- adds r1, r3, 0
- adds r2, r3, 0
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- strh r0, [r4, 0x3A]
-_081057D6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081057E0: .4byte gUnknown_083ECC58
-_081057E4: .4byte 0x01030000
- thumb_func_end sub_8105784
-
- thumb_func_start sub_81057E8
-sub_81057E8: @ 81057E8
- ldr r3, _081057FC @ =gSprites
- ldr r1, _08105800 @ =gSharedMem
- adds r1, 0x52
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- strh r0, [r1, 0x3C]
- bx lr
- .align 2, 0
-_081057FC: .4byte gSprites
-_08105800: .4byte gSharedMem
- thumb_func_end sub_81057E8
-
- thumb_func_start sub_8105804
-sub_8105804: @ 8105804
- push {r4,r5,lr}
- movs r0, 0x7
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _08105848 @ =0x01030000
- adds r0, r1
- lsrs r0, 16
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl MultiplyInvertedPaletteRGBComponents
- movs r4, 0
- ldr r5, _0810584C @ =gSharedMem + 0x52
-_08105824:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105850 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08105824
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105848: .4byte 0x01030000
-_0810584C: .4byte gSharedMem + 0x52
-_08105850: .4byte gSprites
- thumb_func_end sub_8105804
-
- thumb_func_start sub_8105854
-sub_8105854: @ 8105854
- push {lr}
- ldr r0, _08105888 @ =gSpriteTemplate_83ED534
- movs r1, 0xA8
- movs r2, 0x50
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810588C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r2, r3
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1, 0x5]
- ldr r1, _08105890 @ =gSharedMem
- adds r1, 0x41
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08105888: .4byte gSpriteTemplate_83ED534
-_0810588C: .4byte gSprites
-_08105890: .4byte gSharedMem
- thumb_func_end sub_8105854
-
- thumb_func_start sub_8105894
-sub_8105894: @ 8105894
- ldr r1, _0810589C @ =gSpriteCoordOffsetY
- ldrh r1, [r1]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_0810589C: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8105894
-
- thumb_func_start sub_81058A0
-sub_81058A0: @ 81058A0
- push {lr}
- ldr r0, _081058BC @ =gSharedMem
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081058C0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_081058BC: .4byte gSharedMem
-_081058C0: .4byte gSprites
- thumb_func_end sub_81058A0
-
- thumb_func_start sub_81058C4
-sub_81058C4: @ 81058C4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08105938 @ =gUnknown_083ECC5A
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- movs r4, 0
- ldr r5, _0810593C @ =gSharedMem + 0x54
-_081058D6:
- ldr r0, _08105940 @ =gSpriteCoordOffsetX
- ldrh r0, [r0]
- movs r1, 0x50
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08105944 @ =gSpriteTemplate_83ED54C
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- ldr r1, _08105948 @ =gSprites
- adds r3, r1
- ldrb r2, [r3, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r1, r6, 0
- ands r2, r1
- movs r1, 0x4
- orrs r2, r1
- strb r2, [r3, 0x5]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- lsls r1, r4, 1
- add r1, sp
- ldrh r1, [r1]
- strh r1, [r3, 0x2E]
- adds r1, r4, r5
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081058D6
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105938: .4byte gUnknown_083ECC5A
-_0810593C: .4byte gSharedMem + 0x54
-_08105940: .4byte gSpriteCoordOffsetX
-_08105944: .4byte gSpriteTemplate_83ED54C
-_08105948: .4byte gSprites
- thumb_func_end sub_81058C4
-
- thumb_func_start sub_810594C
-sub_810594C: @ 810594C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x2
- movs r4, 0
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r1, 0x6
- bl Sin
- strh r0, [r5, 0x26]
- adds r1, r5, 0
- adds r1, 0x43
- strb r4, [r1]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x7F
- ble _08105986
- movs r0, 0x2
- strb r0, [r1]
-_08105986:
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _081059B0
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0
- strh r0, [r5, 0x30]
-_081059B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810594C
-
- thumb_func_start sub_81059B8
-sub_81059B8: @ 81059B8
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081059E0 @ =gSharedMem + 0x54
-_081059BE:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081059E4 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081059BE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081059E0: .4byte gSharedMem + 0x54
-_081059E4: .4byte gSprites
- thumb_func_end sub_81059B8
-
- thumb_func_start sub_81059E8
-sub_81059E8: @ 81059E8
- push {r4,lr}
- ldr r0, _08105A2C @ =gSpriteTemplate_83ED564
- movs r1, 0xA8
- movs r2, 0x3C
- movs r3, 0x8
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105A30 @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl InitSpriteAffineAnim
- ldr r0, _08105A34 @ =gSharedMem
- adds r0, 0x43
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105A2C: .4byte gSpriteTemplate_83ED564
-_08105A30: .4byte gSprites
-_08105A34: .4byte gSharedMem
- thumb_func_end sub_81059E8
-
- thumb_func_start sub_8105A38
-sub_8105A38: @ 8105A38
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08105A5A
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105AB4
- adds r0, r2, 0x1
- strh r0, [r3, 0x2E]
- b _08105AB4
-_08105A5A:
- cmp r0, 0x1
- bne _08105A96
- 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]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _08105AB4
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0
- strh r0, [r3, 0x32]
- b _08105AB4
-_08105A96:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08105AB4
- movs r0, 0x1
- strh r0, [r3, 0x3C]
-_08105AB4:
- ldrh r0, [r3, 0x30]
- movs r1, 0xFF
- ands r1, r0
- adds r1, 0x10
- strh r1, [r3, 0x30]
- lsrs r1, 8
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- pop {r0}
- bx r0
- thumb_func_end sub_8105A38
-
- thumb_func_start sub_8105ACC
-sub_8105ACC: @ 8105ACC
- ldr r2, _08105AE4 @ =gSprites
- ldr r0, _08105AE8 @ =gSharedMem
- adds r0, 0x43
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08105AE4: .4byte gSprites
-_08105AE8: .4byte gSharedMem
- thumb_func_end sub_8105ACC
-
- thumb_func_start sub_8105AEC
-sub_8105AEC: @ 8105AEC
- push {r4,lr}
- ldr r0, _08105B14 @ =gSharedMem
- adds r0, 0x43
- ldrb r0, [r0]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08105B18 @ =gSprites
- adds r4, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105B14: .4byte gSharedMem
-_08105B18: .4byte gSprites
- thumb_func_end sub_8105AEC
-
- thumb_func_start sub_8105B1C
-sub_8105B1C: @ 8105B1C
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- movs r3, 0xC
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105B6C @ =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]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08105B68: .4byte gSpriteTemplate_83ED6CC
-_08105B6C: .4byte gSprites
- thumb_func_end sub_8105B1C
-
- thumb_func_start sub_8105B70
-sub_8105B70: @ 8105B70
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105B84
- movs r0, 0x1
- strh r0, [r2, 0x3C]
-_08105B84:
- pop {r0}
- bx r0
- thumb_func_end sub_8105B70
-
- thumb_func_start sub_8105B88
-sub_8105B88: @ 8105B88
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08105BB0 @ =gSprites
- adds r4, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105BB0: .4byte gSprites
- thumb_func_end sub_8105B88
-
- thumb_func_start sub_8105BB4
-sub_8105BB4: @ 8105BB4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08105BF0 @ =gUnknown_083ECF0C
- lsrs r1, 22
- adds r3, r1, r3
- ldr r5, [r3]
- ldr r3, _08105BF4 @ =gUnknown_083ECE7E
- adds r4, r1, r3
- movs r6, 0
- ldrsh r4, [r4, r6]
- adds r3, 0x2
- adds r1, r3
- movs r6, 0
- ldrsh r3, [r1, r6]
- lsls r2, 16
- asrs r2, 16
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8105BF8
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08105BF0: .4byte gUnknown_083ECF0C
-_08105BF4: .4byte gUnknown_083ECE7E
- thumb_func_end sub_8105BB4
-
- thumb_func_start sub_8105BF8
-sub_8105BF8: @ 8105BF8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x14]
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08105C58 @ =gUnknown_083EDB5C
- lsrs r4, 22
- adds r0, r4, r0
- ldr r0, [r0]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08105C5C @ =gSprites
- adds r2, r0, r1
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
- str r6, [r2, 0x1C]
- strh r5, [r2, 0x3A]
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- ldr r0, _08105C60 @ =gUnknown_083EDBC4
- adds r4, r0
- ldr r1, [r4]
- cmp r1, 0
- beq _08105C50
- adds r0, r2, 0
- bl SetSubspriteTables
-_08105C50:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08105C58: .4byte gUnknown_083EDB5C
-_08105C5C: .4byte gSprites
-_08105C60: .4byte gUnknown_083EDBC4
- thumb_func_end sub_8105BF8
-
- thumb_func_start sub_8105C64
-sub_8105C64: @ 8105C64
- movs r1, 0
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end sub_8105C64
-
- thumb_func_start sub_8105C6C
-sub_8105C6C: @ 8105C6C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, _08105CE8 @ =gUnknown_083ECC62
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _08105CEC @ =gUnknown_083ECC6A
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08105CB2
- adds r3, r4, 0
- adds r3, 0x42
- ldrb r2, [r3]
- lsls r0, r2, 26
- lsrs r0, 26
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0
- strh r0, [r4, 0x30]
-_08105CB2:
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x42
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- beq _08105CDE
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
-_08105CDE:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105CE8: .4byte gUnknown_083ECC62
-_08105CEC: .4byte gUnknown_083ECC6A
- thumb_func_end sub_8105C6C
-
- thumb_func_start sub_8105CF0
-sub_8105CF0: @ 8105CF0
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105CF0
-
- thumb_func_start sub_8105D08
-sub_8105D08: @ 8105D08
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105D08
-
- thumb_func_start sub_8105D20
-sub_8105D20: @ 8105D20
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x1
- orrs r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105D20
-
- thumb_func_start sub_8105D3C
-sub_8105D3C: @ 8105D3C
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08105D70
- cmp r0, 0x1
- bgt _08105D52
- cmp r0, 0
- beq _08105D5C
- b _08105DA0
-_08105D52:
- cmp r0, 0x2
- beq _08105D80
- cmp r0, 0x3
- beq _08105D9C
- b _08105DA0
-_08105D5C:
- ldrh r0, [r2, 0x20]
- adds r0, 0x4
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xCF
- ble _08105DA0
- movs r0, 0xD0
- strh r0, [r2, 0x20]
- b _08105D8E
-_08105D70:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105DA0
- b _08105D8E
-_08105D80:
- ldrh r0, [r2, 0x20]
- adds r0, 0x4
- strh r0, [r2, 0x20]
- lsls r0, 16
- ldr r1, _08105D98 @ =0x010f0000
- cmp r0, r1
- ble _08105DA0
-_08105D8E:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08105DA0
- .align 2, 0
-_08105D98: .4byte 0x010f0000
-_08105D9C:
- movs r0, 0
- strh r0, [r2, 0x3C]
-_08105DA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8105D3C
-
- thumb_func_start sub_8105DA4
-sub_8105DA4: @ 8105DA4
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08105DD8
- cmp r0, 0x1
- bgt _08105DBA
- cmp r0, 0
- beq _08105DC4
- b _08105E02
-_08105DBA:
- cmp r0, 0x2
- beq _08105DE8
- cmp r0, 0x3
- beq _08105DFE
- b _08105E02
-_08105DC4:
- ldrh r0, [r1, 0x20]
- subs r0, 0x4
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- bgt _08105E02
- movs r0, 0xD0
- strh r0, [r1, 0x20]
- b _08105DF6
-_08105DD8:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105E02
- b _08105DF6
-_08105DE8:
- ldrh r0, [r1, 0x20]
- subs r0, 0x4
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x90
- bgt _08105E02
-_08105DF6:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08105E02
-_08105DFE:
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08105E02:
- pop {r0}
- bx r0
- thumb_func_end sub_8105DA4
-
- thumb_func_start sub_8105E08
-sub_8105E08: @ 8105E08
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _08105EAE
- lsls r0, 2
- ldr r1, _08105E20 @ =_08105E24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08105E20: .4byte _08105E24
- .align 2, 0
-_08105E24:
- .4byte _08105E3C
- .4byte _08105E52
- .4byte _08105E70
- .4byte _08105E84
- .4byte _08105E94
- .4byte _08105EAA
-_08105E3C:
- ldr r0, _08105E6C @ =gSharedMem
- ldrb r1, [r0, 0xA]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08105E52:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08105EAE
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- b _08105EAE
- .align 2, 0
-_08105E6C: .4byte gSharedMem
-_08105E70:
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xCF
- ble _08105EAE
- movs r0, 0xD0
- strh r0, [r4, 0x20]
- b _08105EA2
-_08105E84:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105EAE
- b _08105EA2
-_08105E94:
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF7
- ble _08105EAE
-_08105EA2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08105EAE
-_08105EAA:
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08105EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8105E08
-
- thumb_func_start sub_8105EB4
-sub_8105EB4: @ 8105EB4
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _08105EE2
- cmp r0, 0x1
- bgt _08105ECA
- cmp r0, 0
- beq _08105ED0
- b _08105F50
-_08105ECA:
- cmp r0, 0x2
- beq _08105F00
- b _08105F50
-_08105ED0:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
-_08105EE2:
- ldrh r0, [r3, 0x22]
- adds r0, 0x8
- strh r0, [r3, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _08105F50
- movs r0, 0x70
- strh r0, [r3, 0x22]
- movs r0, 0x10
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _08105F50
-_08105F00:
- movs r0, 0x32
- ldrsh r2, [r3, r0]
- cmp r2, 0
- bne _08105F46
- ldrh r0, [r3, 0x22]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x22]
- negs r1, r1
- strh r1, [r3, 0x30]
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08105F46
- lsls r0, r1, 16
- asrs r0, 18
- strh r0, [r3, 0x30]
- strh r2, [r3, 0x34]
- adds r1, r0, 0
- cmp r1, 0
- bne _08105F46
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x3C]
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08105F46:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r3, 0x32]
-_08105F50:
- pop {r0}
- bx r0
- thumb_func_end sub_8105EB4
-
- thumb_func_start sub_8105F54
-sub_8105F54: @ 8105F54
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08105F66
- cmp r0, 0x1
- beq _08105F7C
- b _08105F98
-_08105F66:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08105F98
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08105F98
-_08105F7C:
- ldrh r0, [r1, 0x22]
- adds r0, 0x2
- strh r0, [r1, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _08105F98
- movs r0, 0x30
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08105F98:
- pop {r0}
- bx r0
- thumb_func_end sub_8105F54
-
- thumb_func_start sub_8105F9C
-sub_8105F9C: @ 8105F9C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08105FAE
- cmp r0, 0x1
- beq _08106000
- b _0810604E
-_08105FAE:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0810604E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x30]
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, _08105FFC @ =REG_MOSAIC
- ldrh r1, [r4, 0x30]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 8
- strh r0, [r2]
- b _0810604E
- .align 2, 0
-_08105FFC: .4byte REG_MOSAIC
-_08106000:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _08106016
- movs r0, 0
- strh r0, [r4, 0x30]
-_08106016:
- ldr r2, _08106054 @ =REG_MOSAIC
- ldrh r1, [r4, 0x30]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 8
- strh r0, [r2]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- adds r0, 0x80
- strh r0, [r4, 0x32]
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _0810604E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0810604E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106054: .4byte REG_MOSAIC
- thumb_func_end sub_8105F9C
-
- thumb_func_start sub_8106058
-sub_8106058: @ 8106058
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- bgt _081060A8
- ldr r1, _081060A4 @ =gUnknown_083EDE10
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081060E4
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r0, 0
- strh r0, [r5, 0x32]
- b _081060E4
- .align 2, 0
-_081060A4: .4byte gUnknown_083EDE10
-_081060A8:
- ldr r1, _081060F8 @ =gUnknown_083EDE10
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _081060E4
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
-_081060E4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- movs r0, 0
- strh r0, [r5, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081060F8: .4byte gUnknown_083EDE10
- thumb_func_end sub_8106058
-
- thumb_func_start sub_81060FC
-sub_81060FC: @ 81060FC
- push {r4-r6,lr}
- sub sp, 0x30
- adds r4, r0, 0
- ldr r1, _08106138 @ =gUnknown_083ECC72
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- add r6, sp, 0x10
- ldr r1, _0810613C @ =gUnknown_083ECC82
- adds r0, r6, 0
- movs r2, 0x10
- bl memcpy
- add r5, sp, 0x20
- ldr r1, _08106140 @ =gUnknown_083ECC92
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08106174
- cmp r0, 0x1
- bgt _08106144
- cmp r0, 0
- beq _0810614A
- b _081061C0
- .align 2, 0
-_08106138: .4byte gUnknown_083ECC72
-_0810613C: .4byte gUnknown_083ECC82
-_08106140: .4byte gUnknown_083ECC92
-_08106144:
- cmp r0, 0x2
- beq _08106188
- b _081061C0
-_0810614A:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08106174:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _081061C0
- b _081061BA
-_08106188:
- ldrh r0, [r4, 0x24]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- cmp r1, 0
- ble _08106196
- subs r0, 0x4
- b _0810619C
-_08106196:
- cmp r1, 0
- bge _0810619E
- adds r0, 0x4
-_0810619C:
- strh r0, [r4, 0x24]
-_0810619E:
- ldrh r0, [r4, 0x26]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- cmp r1, 0
- ble _081061AC
- subs r0, 0x4
- b _081061B2
-_081061AC:
- cmp r1, 0
- bge _081061B4
- adds r0, 0x4
-_081061B2:
- strh r0, [r4, 0x26]
-_081061B4:
- ldr r0, [r4, 0x24]
- cmp r0, 0
- bne _081061C0
-_081061BA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_081061C0:
- add sp, 0x30
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81060FC
-
- thumb_func_start sub_81061C8
-sub_81061C8: @ 81061C8
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, _0810622C @ =gUnknown_083ECCA2
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081061EA
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xC
- strh r0, [r4, 0x30]
-_081061EA:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08106224
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_08106224:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810622C: .4byte gUnknown_083ECCA2
- thumb_func_end sub_81061C8
-
- thumb_func_start sub_8106230
-sub_8106230: @ 8106230
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0810627A
- cmp r0, 0x1
- bgt _08106248
- cmp r0, 0
- beq _08106252
- b _0810634A
-_08106248:
- cmp r0, 0x2
- beq _081062C4
- cmp r0, 0x3
- beq _081062FC
- b _0810634A
-_08106252:
- ldr r2, _081062BC @ =gSharedMem
- adds r1, r2, 0
- adds r1, 0x5C
- movs r0, 0x2F
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3F
- strh r0, [r1]
- subs r1, 0x4
- ldr r0, _081062C0 @ =0x00002088
- strh r0, [r1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0810627A:
- ldrh r0, [r5, 0x30]
- adds r2, r0, 0x2
- strh r2, [r5, 0x30]
- adds r0, 0xB2
- strh r0, [r5, 0x32]
- movs r1, 0xF0
- subs r1, r2
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- ble _08106296
- movs r0, 0xD0
- strh r0, [r5, 0x32]
-_08106296:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xCF
- bgt _081062A2
- movs r0, 0xD0
- strh r0, [r5, 0x34]
-_081062A2:
- ldr r2, _081062BC @ =gSharedMem
- ldrh r0, [r5, 0x32]
- lsls r0, 8
- ldrh r1, [r5, 0x34]
- orrs r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- strh r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x33
- ble _0810634A
- b _0810633C
- .align 2, 0
-_081062BC: .4byte gSharedMem
-_081062C0: .4byte 0x00002088
-_081062C4:
- ldr r6, _08106354 @ =gSharedMem
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0810634A
- ldr r1, _08106358 @ =SpriteCallbackDummy
- movs r4, 0
- str r4, [sp]
- movs r0, 0x5
- movs r2, 0xD0
- movs r3, 0x74
- bl sub_8104D30
- adds r1, r6, 0
- adds r1, 0x58
- ldr r0, _0810635C @ =0x0000c0e0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xD1
- lsls r0, 7
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2F
- strh r0, [r1]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- strh r4, [r5, 0x30]
-_081062FC:
- ldrh r0, [r5, 0x30]
- adds r2, r0, 0x2
- strh r2, [r5, 0x30]
- adds r0, 0xC2
- strh r0, [r5, 0x32]
- movs r1, 0xE0
- subs r1, r2
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- ble _08106318
- movs r0, 0xD0
- strh r0, [r5, 0x32]
-_08106318:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xCF
- bgt _08106324
- movs r0, 0xD0
- strh r0, [r5, 0x34]
-_08106324:
- ldr r2, _08106354 @ =gSharedMem
- ldrh r0, [r5, 0x32]
- lsls r0, 8
- ldrh r1, [r5, 0x34]
- orrs r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- strh r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- ble _0810634A
-_0810633C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r1, r2, 0
- adds r1, 0x5C
- movs r0, 0x3F
- strh r0, [r1]
-_0810634A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08106354: .4byte gSharedMem
-_08106358: .4byte SpriteCallbackDummy
-_0810635C: .4byte 0x0000c0e0
- thumb_func_end sub_8106230
-
- thumb_func_start nullsub_70
-nullsub_70: @ 8106360
- bx lr
- thumb_func_end nullsub_70
-
- thumb_func_start sub_8106364
-sub_8106364: @ 8106364
- ldr r1, _0810636C @ =REG_MOSAIC
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810636C: .4byte REG_MOSAIC
- thumb_func_end sub_8106364
-
- thumb_func_start sub_8106370
-sub_8106370: @ 8106370
- push {r4,lr}
- ldr r0, _08106398 @ =gUnknown_083EDE20
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106398: .4byte gUnknown_083EDE20
- thumb_func_end sub_8106370
-
- thumb_func_start sub_810639C
-sub_810639C: @ 810639C
- ldr r2, _081063BC @ =gSharedMem
- adds r1, r2, 0
- adds r1, 0x58
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA0
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x5C
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_081063BC: .4byte gSharedMem
- thumb_func_end sub_810639C
-
- thumb_func_start sub_81063C0
-sub_81063C0: @ 81063C0
- push {r4,lr}
- bl sub_8106404
- ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
- ldr r4, _081063F4 @ =gSharedMem + 0x10000
- adds r1, r4, 0
- bl LZDecompressWram
- ldr r0, _081063F8 @ =gUnknown_083EDE8C
- movs r1, 0xC8
- lsls r1, 6
- adds r4, r1
- adds r1, r4, 0
- bl LZDecompressWram
- ldr r0, _081063FC @ =gUnknown_083EDC2C
- bl LoadSpriteSheets
- ldr r0, _08106400 @ =gSlotMachineSpritePalettes
- bl LoadSpritePalettes
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
-_081063F4: .4byte gSharedMem + 0x10000
-_081063F8: .4byte gUnknown_083EDE8C
-_081063FC: .4byte gUnknown_083EDC2C
-_08106400: .4byte gSlotMachineSpritePalettes
- thumb_func_end sub_81063C0
-
- thumb_func_start sub_8106404
-sub_8106404: @ 8106404
- push {r4,r5,lr}
- ldr r3, _0810643C @ =gSharedMem + 0x10000
- movs r2, 0
- ldr r5, _08106440 @ =gUnknown_083EDCDC
- ldr r0, _08106444 @ =gUnknown_083EDCE4
- ldr r4, [r0]
-_08106410:
- movs r1, 0
- adds r2, 0x1
-_08106414:
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r3]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- adds r3, 0x1
- cmp r1, 0x1F
- bls _08106414
- lsls r0, r2, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _08106410
- adds r0, r5, 0
- bl LoadSpriteSheet
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810643C: .4byte gSharedMem + 0x10000
-_08106440: .4byte gUnknown_083EDCDC
-_08106444: .4byte gUnknown_083EDCE4
- thumb_func_end sub_8106404
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/taya_debug_window.s b/asm/taya_debug_window.s
new file mode 100644
index 000000000..68d27390d
--- /dev/null
+++ b/asm/taya_debug_window.s
@@ -0,0 +1,2054 @@
+.if DEBUG
+
+ .include "constants/gba_constants.inc"
+ .include "include/macros.inc"
+
+ .text
+
+ thumb_func_start TayaDebugMenu_Trend
+TayaDebugMenu_Trend:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xffffffd8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1e
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r5, ._3 @ gSaveBlock1
+ mov r7, #0x0
+ mov r0, #0x1
+ add r0, r0, sp
+ mov sl, r0
+ mov r9, sp
+ mov r0, #0x0
+ mov r8, r0
+ add r6, sp, #0x20
+._2:
+ ldrb r1, [r5, #0x1]
+ mov r0, #0x40
+ and r0, r0, r1
+ mov r1, #0xa1
+ cmp r0, #0
+ beq ._1 @cond_branch
+ mov r1, #0xa2
+._1:
+ mov r0, r9
+ strb r1, [r0]
+ ldrh r1, [r5, #0x4]
+ add r0, r6, #0
+ bl EasyChat_GetWordText
+ mov r0, sl
+ add r1, r6, #0
+ mov r2, #0x0
+ mov r3, #0x7
+ bl StringCopyPadded
+ add r4, r0, #0
+ ldrh r1, [r5, #0x6]
+ add r0, r6, #0
+ bl EasyChat_GetWordText
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #0x0
+ mov r3, #0x8
+ bl StringCopyPadded
+ add r4, r0, #0
+ ldrb r1, [r5]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x19
+ mov r2, #0x1
+ mov r3, #0x3
+ bl ConvertIntToDecimalStringN
+ add r4, r0, #0
+ mov r0, r8
+ strb r0, [r4]
+ add r4, r4, #0x1
+ ldrh r1, [r5]
+ lsl r1, r1, #0x12
+ lsr r1, r1, #0x19
+ add r0, r4, #0
+ mov r2, #0x1
+ mov r3, #0x3
+ bl ConvertIntToDecimalStringN
+ add r4, r0, #0
+ mov r0, r8
+ strb r0, [r4]
+ add r4, r4, #0x1
+ ldrh r1, [r5, #0x2]
+ add r0, r4, #0
+ mov r2, #0x1
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ lsl r2, r7, #0x1
+ add r2, r2, #0x1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r0, sp
+ mov r1, #0x1
+ bl Menu_PrintText
+ add r5, r5, #0x8
+ add r0, r7, #1
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ cmp r7, #0x4
+ bls ._2 @cond_branch
+ ldr r1, ._3 + 4 @ gMenuCallback
+ ldr r0, ._3 + 8 @ debug_sub_8090808
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x28
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._4:
+ .align 2, 0
+._3:
+ .word gSaveBlock1+0x2dd4
+ .word gMenuCallback
+ .word debug_sub_8090808+1
+
+ thumb_func_end TayaDebugMenu_Trend
+
+ thumb_func_start debug_sub_8090808
+debug_sub_8090808:
+ push {lr}
+ ldr r0, ._7 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x3
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._5 @cond_branch
+ mov r0, #0x0
+ b ._6
+._8:
+ .align 2, 0
+._7:
+ .word gMain
+._5:
+ bl Menu_EraseScreen
+ bl CloseMenu
+ mov r0, #0x1
+._6:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090808
+
+ thumb_func_start TayaDebugMenu_TrendR
+TayaDebugMenu_TrendR:
+ push {r4, r5, r6, r7, lr}
+ mov r0, #0x0
+ ldr r7, ._11 @ gSaveBlock1
+._10:
+ mov r4, #0x0
+ lsl r5, r0, #0x3
+ add r6, r0, #1
+._9:
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x16
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl sub_80EB72C
+ lsl r1, r4, #0x1
+ add r1, r1, r5
+ add r1, r1, r7
+ strh r0, [r1]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x1
+ bls ._9 @cond_branch
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x4
+ bls ._10 @cond_branch
+ bl Menu_EraseScreen
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._12:
+ .align 2, 0
+._11:
+ .word gSaveBlock1+0x2dd8
+
+ thumb_func_end TayaDebugMenu_TrendR
+
+ thumb_func_start debug_sub_8090880
+debug_sub_8090880:
+ push {lr}
+ bl UpdatePaletteFade
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._13 @cond_branch
+ mov r0, #0x0
+ b ._14
+._13:
+ bl sub_80E60D8
+ mov r0, #0x1
+._14:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090880
+
+ thumb_func_start debug_sub_809089C
+debug_sub_809089C:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._15 @cond_branch
+ add r0, r0, #0x1
+ cmp r1, r0
+ bne ._16 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ b ._17
+._16:
+ ldr r2, ._19 @ gSpecialVar_0x8004
+ ldr r0, ._19 + 4 @ gUnknown_Debug_083C4EC0
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ strh r0, [r2]
+ ldrh r0, [r2]
+ sub r0, r0, #0x5
+ cmp r0, #0x7
+ bhi ._27 @cond_branch
+ lsl r0, r0, #0x2
+ ldr r1, ._19 + 8 @
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+._20:
+ .align 2, 0
+._19:
+ .word gSpecialVar_0x8004
+ .word gUnknown_Debug_083C4EC0
+ .word ._21
+._21:
+ .word ._29
+ .word ._27
+ .word ._29
+ .word ._29
+ .word ._27
+ .word ._27
+ .word ._29
+ .word ._29
+._29:
+ ldr r0, ._30 @ gSpecialVar_0x8005
+ mov r1, #0x0
+ strh r1, [r0]
+ ldr r0, ._30 + 4 @ gSpecialVar_0x8006
+ strh r1, [r0]
+._27:
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FadeScreen
+ ldr r1, ._30 + 8 @ gMenuCallback
+ ldr r0, ._30 + 12 @ debug_sub_8090880
+ str r0, [r1]
+._15:
+ mov r0, #0x0
+._17:
+ pop {r1}
+ bx r1
+._31:
+ .align 2, 0
+._30:
+ .word gSpecialVar_0x8005
+ .word gSpecialVar_0x8006
+ .word gMenuCallback
+ .word debug_sub_8090880+1
+
+ thumb_func_end debug_sub_809089C
+
+ thumb_func_start TayaDebugMenu_SimpleText
+TayaDebugMenu_SimpleText:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xc
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._32 @ gUnknown_Debug_083C4EC0
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._32 + 4 @ gMenuCallback
+ ldr r0, ._32 + 8 @ debug_sub_809089C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._33:
+ .align 2, 0
+._32:
+ .word gUnknown_Debug_083C4EC0
+ .word gMenuCallback
+ .word debug_sub_809089C+1
+
+ thumb_func_end TayaDebugMenu_SimpleText
+
+ thumb_func_start debug_sub_8090984
+debug_sub_8090984:
+ push {r4, r5, r6, r7, lr}
+ bl Menu_ProcessInput
+ lsl r2, r0, #0x18
+ asr r1, r2, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._34 @cond_branch
+ add r0, r0, #0x1
+ cmp r1, r0
+ beq ._46 @cond_branch
+ cmp r1, #0x4
+ bgt ._36 @cond_branch
+ lsr r0, r2, #0x18
+ bl debug_sub_810B32C
+ b ._46
+._34:
+ mov r0, #0x0
+ b ._38
+._36:
+ cmp r1, #0x5
+ bne ._39 @cond_branch
+ bl sub_80F7F30
+ b ._46
+._39:
+ cmp r1, #0x6
+ bne ._41 @cond_branch
+ mov r4, #0x0
+ ldr r0, ._44 @ gSaveBlock1
+ add r1, r0, #2
+ mov ip, r1
+ ldr r7, ._44 + 4 @ gUnknown_Debug_083C4F08
+ ldr r1, ._44 + 8 @ 0xfffffd94
+ add r6, r0, r1
+ add r5, r0, #0
+ add r5, r5, #0xe
+._42:
+ lsl r1, r4, #0x1
+ mov r0, ip
+ add r3, r1, r0
+ add r0, r1, r7
+ ldrh r2, [r0]
+ strh r2, [r3]
+ add r0, r1, r5
+ strh r2, [r0]
+ add r1, r6, r1
+ strh r2, [r1]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x2
+ bls ._42 @cond_branch
+ b ._46
+._45:
+ .align 2, 0
+._44:
+ .word gSaveBlock1+0x2d94
+ .word gUnknown_Debug_083C4F08
+ .word 0xfffffd94
+._41:
+ cmp r1, #0x7
+ bne ._46 @cond_branch
+ mov r4, #0x0
+._47:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ bl sub_80EB890
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x20
+ bls ._47 @cond_branch
+._46:
+ bl CloseMenu
+ mov r0, #0x1
+._38:
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_8090984
+
+ thumb_func_start TayaDebugMenu_OldMan
+TayaDebugMenu_OldMan:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xa
+ mov r3, #0x11
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._48 @ gUnknown_Debug_083C4F54
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x8
+ bl Menu_PrintItems
+ bl GetCurrentMauvilleOldMan
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x9
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x8
+ bl InitMenu
+ ldr r1, ._48 + 4 @ gMenuCallback
+ ldr r0, ._48 + 8 @ debug_sub_8090984
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._49:
+ .align 2, 0
+._48:
+ .word gUnknown_Debug_083C4F54
+ .word gMenuCallback
+ .word debug_sub_8090984+1
+
+ thumb_func_end TayaDebugMenu_OldMan
+
+ thumb_func_start TayaDebugMenu_LanettesPC
+TayaDebugMenu_LanettesPC:
+ push {lr}
+ bl Menu_EraseScreen
+ bl ShowPokemonStorageSystem
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+
+ thumb_func_end TayaDebugMenu_LanettesPC
+
+ thumb_func_start TayaDebugMenu_TownFlags
+TayaDebugMenu_TownFlags:
+ push {lr}
+ ldr r0, ._50 @ 0x80f
+ bl FlagSet
+ mov r0, #0x81
+ lsl r0, r0, #0x4
+ bl FlagSet
+ ldr r0, ._50 + 4 @ 0x811
+ bl FlagSet
+ ldr r0, ._50 + 8 @ 0x812
+ bl FlagSet
+ ldr r0, ._50 + 12 @ 0x813
+ bl FlagSet
+ ldr r0, ._50 + 16 @ 0x814
+ bl FlagSet
+ ldr r0, ._50 + 20 @ 0x815
+ bl FlagSet
+ ldr r0, ._50 + 24 @ 0x816
+ bl FlagSet
+ ldr r0, ._50 + 28 @ 0x817
+ bl FlagSet
+ ldr r0, ._50 + 32 @ 0x818
+ bl FlagSet
+ ldr r0, ._50 + 36 @ 0x819
+ bl FlagSet
+ ldr r0, ._50 + 40 @ 0x81a
+ bl FlagSet
+ ldr r0, ._50 + 44 @ 0x81b
+ bl FlagSet
+ ldr r0, ._50 + 48 @ 0x81c
+ bl FlagSet
+ ldr r0, ._50 + 52 @ 0x81d
+ bl FlagSet
+ ldr r0, ._50 + 56 @ 0x81e
+ bl FlagSet
+ ldr r0, ._50 + 60 @ 0x848
+ bl FlagSet
+ ldr r0, ._50 + 64 @ 0x849
+ bl FlagSet
+ ldr r0, ._50 + 68 @ 0x84a
+ bl FlagSet
+ ldr r0, ._50 + 72 @ 0x854
+ bl FlagSet
+ ldr r0, ._50 + 76 @ 0x855
+ bl FlagSet
+ ldr r0, ._50 + 80 @ 0x856
+ bl FlagSet
+ ldr r0, ._50 + 84 @ 0x857
+ bl FlagSet
+ ldr r0, ._50 + 88 @ 0x858
+ bl FlagSet
+ ldr r0, ._50 + 92 @ 0x859
+ bl FlagSet
+ ldr r0, ._50 + 96 @ 0x85a
+ bl FlagSet
+ ldr r0, ._50 + 100 @ 0x85b
+ bl FlagSet
+ ldr r0, ._50 + 104 @ 0x85c
+ bl FlagSet
+ ldr r0, ._50 + 108 @ 0x83c
+ bl FlagSet
+ ldr r0, ._50 + 112 @ 0x83d
+ bl FlagSet
+ ldr r0, ._50 + 116 @ 0x83e
+ bl FlagSet
+ ldr r0, ._50 + 120 @ 0x83f
+ bl FlagSet
+ mov r0, #0x84
+ lsl r0, r0, #0x4
+ bl FlagSet
+ ldr r0, ._50 + 124 @ 0x841
+ bl FlagSet
+ ldr r0, ._50 + 128 @ 0x842
+ bl FlagSet
+ ldr r0, ._50 + 132 @ 0x843
+ bl FlagSet
+ ldr r0, ._50 + 136 @ 0x844
+ bl FlagSet
+ ldr r0, ._50 + 140 @ 0x845
+ bl FlagSet
+ ldr r0, ._50 + 144 @ 0x846
+ bl FlagSet
+ ldr r0, ._50 + 148 @ 0x847
+ bl FlagSet
+ ldr r0, ._50 + 152 @ 0x83b
+ bl FlagSet
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._51:
+ .align 2, 0
+._50:
+ .word 0x80f
+ .word 0x811
+ .word 0x812
+ .word 0x813
+ .word 0x814
+ .word 0x815
+ .word 0x816
+ .word 0x817
+ .word 0x818
+ .word 0x819
+ .word 0x81a
+ .word 0x81b
+ .word 0x81c
+ .word 0x81d
+ .word 0x81e
+ .word 0x848
+ .word 0x849
+ .word 0x84a
+ .word 0x854
+ .word 0x855
+ .word 0x856
+ .word 0x857
+ .word 0x858
+ .word 0x859
+ .word 0x85a
+ .word 0x85b
+ .word 0x85c
+ .word 0x83c
+ .word 0x83d
+ .word 0x83e
+ .word 0x83f
+ .word 0x841
+ .word 0x842
+ .word 0x843
+ .word 0x844
+ .word 0x845
+ .word 0x846
+ .word 0x847
+ .word 0x83b
+
+ thumb_func_end TayaDebugMenu_TownFlags
+
+ thumb_func_start TayaDebugMenu_AwardARibbon
+TayaDebugMenu_AwardARibbon:
+ push {lr}
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl BlendPalettes
+ ldr r0, ._52 @ debug_sub_80915BC
+ bl SetMainCallback2
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._53:
+ .align 2, 0
+._52:
+ .word debug_sub_80915BC+1
+
+ thumb_func_end TayaDebugMenu_AwardARibbon
+
+ thumb_func_start debug_sub_8090C44
+debug_sub_8090C44:
+ push {r4, r5, lr}
+ ldr r4, ._54 @ gSharedMem
+ sub r5, r4, #1
+ ldrh r1, [r5, #0x8]
+ add r0, r4, #0
+ mov r2, #0x2
+ mov r3, #0x5
+ bl ConvertIntToDecimalStringN
+ add r0, r4, #0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0x0
+ mov r2, #0x5
+ bl StringFill
+ ldrb r0, [r5]
+ add r0, r0, r4
+ mov r1, #0x79
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x1
+ mov r2, #0x3
+ bl Menu_PrintText
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._55:
+ .align 2, 0
+._54:
+ .word gSharedMem+1
+
+ thumb_func_end debug_sub_8090C44
+
+ thumb_func_start debug_sub_8090C88
+debug_sub_8090C88:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xfffffffc
+ mov r0, #0x1
+ mov r8, r0
+ ldr r2, ._59 @ gMain
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ add r3, r2, #0
+ cmp r0, #0
+ beq ._57 @cond_branch
+ ldr r1, ._59 + 4 @ gSharedMem
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._57 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ b ._62
+._60:
+ .align 2, 0
+._59:
+ .word gMain
+ .word gSharedMem
+._67:
+ add r0, r0, #0x1
+ strb r0, [r1]
+ b ._62
+._77:
+ strh r1, [r7, #0x8]
+ b ._62
+._79:
+ ldr r0, ._64 @ gSharedMem
+ ldrh r0, [r0, #0x8]
+ bl SetLotteryNumber16_Unused
+._78:
+ bl CloseMenu
+ mov r0, #0x1
+ b ._63
+._65:
+ .align 2, 0
+._64:
+ .word gSharedMem
+._57:
+ ldrh r1, [r3, #0x2e]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._66 @cond_branch
+ ldr r1, ._81 @ gSharedMem
+ ldrb r0, [r1]
+ cmp r0, #0x3
+ bls ._67 @cond_branch
+._66:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._68 @cond_branch
+ ldr r0, ._81 @ gSharedMem
+ ldrh r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ ldr r1, ._81 + 4 @ 0x2710
+ strh r1, [r0, #0x10]
+ mov r4, #0x0
+ ldrb r1, [r0]
+ add r7, r0, #0
+ cmp r4, r1
+ bcs ._69 @cond_branch
+ add r5, r7, #0
+ add r6, r1, #0
+._70:
+ ldrh r0, [r5, #0x10]
+ mov r1, #0xa
+ str r3, [sp]
+ bl __udivsi3
+ strh r0, [r5, #0x10]
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r3, [sp]
+ cmp r4, r6
+ bcc ._70 @cond_branch
+._69:
+ ldrh r1, [r7, #0x10]
+ ldr r0, [r7, #0xc]
+ add r0, r0, r1
+ str r0, [r7, #0xc]
+ ldr r1, ._81 + 8 @ 0xffff
+ cmp r0, r1
+ ble ._71 @cond_branch
+ str r1, [r7, #0xc]
+._71:
+ ldrh r0, [r7, #0x8]
+ ldr r1, [r7, #0xc]
+ cmp r0, r1
+ bne ._77 @cond_branch
+._68:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._73 @cond_branch
+ ldr r0, ._81 @ gSharedMem
+ ldrh r1, [r0, #0x8]
+ str r1, [r0, #0xc]
+ ldr r1, ._81 + 4 @ 0x2710
+ strh r1, [r0, #0x10]
+ mov r4, #0x0
+ ldrb r1, [r0]
+ add r7, r0, #0
+ cmp r4, r1
+ bcs ._74 @cond_branch
+ add r5, r7, #0
+ add r6, r1, #0
+._75:
+ ldrh r0, [r5, #0x10]
+ mov r1, #0xa
+ str r3, [sp]
+ bl __udivsi3
+ strh r0, [r5, #0x10]
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r3, [sp]
+ cmp r4, r6
+ bcc ._75 @cond_branch
+._74:
+ add r2, r7, #0
+ ldrh r1, [r2, #0x10]
+ ldr r0, [r2, #0xc]
+ sub r0, r0, r1
+ str r0, [r2, #0xc]
+ cmp r0, #0
+ bge ._76 @cond_branch
+ mov r0, #0x0
+ str r0, [r2, #0xc]
+._76:
+ ldrh r0, [r2, #0x8]
+ ldr r1, [r2, #0xc]
+ cmp r0, r1
+ bne ._77 @cond_branch
+._73:
+ ldrh r2, [r3, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ bne ._78 @cond_branch
+ mov r0, #0x1
+ and r0, r0, r2
+ cmp r0, #0
+ bne ._79 @cond_branch
+ mov r0, #0x0
+ mov r8, r0
+._62:
+ mov r0, r8
+ cmp r0, #0
+ beq ._80 @cond_branch
+ bl debug_sub_8090C44
+._80:
+ mov r0, #0x0
+._63:
+ add sp, sp, #0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._82:
+ .align 2, 0
+._81:
+ .word gSharedMem
+ .word 0x2710
+ .word 0xffff
+
+ thumb_func_end debug_sub_8090C88
+
+ thumb_func_start TayaDebugMenu_PKMNLottery
+TayaDebugMenu_PKMNLottery:
+ push {lr}
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x6
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ bl RetrieveLotteryNumber
+ ldr r2, ._83 @ gSharedMem
+ ldr r0, ._83 + 4 @ gSpecialVar_Result
+ ldrh r0, [r0]
+ mov r1, #0x0
+ strh r0, [r2, #0x8]
+ strb r1, [r2]
+ bl debug_sub_8090C44
+ ldr r1, ._83 + 8 @ gMenuCallback
+ ldr r0, ._83 + 12 @ debug_sub_8090C88
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._84:
+ .align 2, 0
+._83:
+ .word gSharedMem
+ .word gSpecialVar_Result
+ .word gMenuCallback
+ .word debug_sub_8090C88+1
+
+ thumb_func_end TayaDebugMenu_PKMNLottery
+
+ thumb_func_start TayaDebugMenu_Trainer
+TayaDebugMenu_Trainer:
+ push {r4, r5, lr}
+ mov r4, #0x0
+ ldr r5, ._86 @ gTrainerEyeTrainers
+._85:
+ lsl r0, r4, #0x4
+ add r0, r0, r5
+ ldrh r0, [r0]
+ bl SetTrainerFlag
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x37
+ bls ._85 @cond_branch
+ ldr r0, ._86 + 4 @ 0x109
+ bl SetTrainerFlag
+ mov r0, #0x85
+ lsl r0, r0, #0x1
+ bl SetTrainerFlag
+ ldr r0, ._86 + 8 @ 0x10b
+ bl SetTrainerFlag
+ mov r0, #0x86
+ lsl r0, r0, #0x1
+ bl SetTrainerFlag
+ ldr r0, ._86 + 12 @ 0x10d
+ bl SetTrainerFlag
+ mov r0, #0x87
+ lsl r0, r0, #0x1
+ bl SetTrainerFlag
+ ldr r0, ._86 + 16 @ 0x10f
+ bl SetTrainerFlag
+ mov r0, #0x88
+ lsl r0, r0, #0x1
+ bl SetTrainerFlag
+ ldr r0, ._86 + 20 @ 0x105
+ bl SetTrainerFlag
+ mov r0, #0x83
+ lsl r0, r0, #0x1
+ bl SetTrainerFlag
+ ldr r0, ._86 + 24 @ 0x107
+ bl SetTrainerFlag
+ mov r0, #0x84
+ lsl r0, r0, #0x1
+ bl SetTrainerFlag
+ ldr r0, ._86 + 28 @ 0x14f
+ bl SetTrainerFlag
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+._87:
+ .align 2, 0
+._86:
+ .word gTrainerEyeTrainers
+ .word 0x109
+ .word 0x10b
+ .word 0x10d
+ .word 0x10f
+ .word 0x105
+ .word 0x107
+ .word 0x14f
+
+ thumb_func_end TayaDebugMenu_Trainer
+
+ thumb_func_start TayaDebugMenu_PokenavD
+TayaDebugMenu_PokenavD:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xffffffe4
+ bl Menu_DisplayDialogueFrame
+ mov r0, #0x0
+ mov sl, r0
+ mov r6, #0x1
+ mov r7, #0xff
+ mov r1, #0x3
+ mov r9, r1
+._93:
+ ldr r4, ._94 @ gSharedMem
+ add r0, r4, #0
+ ldr r1, ._94 + 4 @ gUnknown_Debug_083C4F94
+ bl StringCopy
+ mov r5, sl
+ add r5, r5, #0x1
+ add r1, r5, r4
+ mov r0, #0xff
+ strb r0, [r1]
+ add r0, r4, #0
+ mov r1, #0x2
+ mov r2, #0xf
+ bl Menu_PrintText
+ mov r0, #0x0
+ mov r8, r0
+ str r5, [sp, #0x14]
+ mov r1, sl
+ lsl r1, r1, #0x2
+ str r1, [sp, #0x18]
+._91:
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r0, r0, #0x1
+ str r0, [sp, #0x10]
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x64
+ bl __umodsi3
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl Random
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xc1
+ lsl r1, r1, #0x1
+ bl __umodsi3
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ cmp r3, #0xfb
+ bls ._89 @cond_branch
+ add r0, r3, #0
+ add r0, r0, #0x19
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ ldr r0, ._94 + 8 @ 0x19b
+ cmp r3, r0
+ bls ._89 @cond_branch
+ mov r3, #0x1
+._89:
+ ldr r0, [sp, #0x18]
+ add r0, r0, sl
+ lsl r4, r0, #0x4
+ sub r4, r4, r0
+ lsl r4, r4, #0x5
+ mov r1, r8
+ lsl r0, r1, #0x2
+ add r0, r0, r8
+ lsl r0, r0, #0x4
+ ldr r1, ._94 + 12 @ gPokemonStorage
+ add r0, r0, r1
+ add r4, r4, r0
+ lsl r2, r5, #0x18
+ lsr r2, r2, #0x18
+ mov r0, #0x0
+ str r0, [sp]
+ str r0, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r3, #0
+ mov r3, #0x20
+ bl CreateBoxMon
+ bl Random
+ add r1, r7, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x16
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r7, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x17
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r7, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x18
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r7, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x21
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r7, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x2f
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r7, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x30
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ mov r1, r9
+ and r1, r1, r0
+ add r1, r1, #0x1
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x32
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ mov r1, r9
+ and r1, r1, r0
+ add r1, r1, #0x1
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x33
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ mov r1, r9
+ and r1, r1, r0
+ add r1, r1, #0x1
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x34
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ mov r1, r9
+ and r1, r1, r0
+ add r1, r1, #0x1
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x36
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ mov r1, r9
+ and r1, r1, r0
+ add r1, r1, #0x1
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x35
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x43
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x44
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x45
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x46
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x47
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x48
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x49
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x4a
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x4b
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x4c
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x4d
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ bl Random
+ add r1, r6, #0
+ and r1, r1, r0
+ str r1, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x4e
+ add r2, sp, #0x10
+ bl SetBoxMonData
+ mov r0, r8
+ add r0, r0, #0x1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r8, r0
+ cmp r0, #0x1d
+ bhi ._90 @cond_branch
+ b ._91
+._90:
+ ldr r1, [sp, #0x14]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ mov sl, r0
+ cmp r0, #0xd
+ bhi ._92 @cond_branch
+ b ._93
+._92:
+ bl TayaDebugMenu_TownFlags
+ bl TayaDebugMenu_Trainer
+ bl CloseMenu
+ mov r0, #0x1
+ add sp, sp, #0x1c
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._95:
+ .align 2, 0
+._94:
+ .word gSharedMem
+ .word gUnknown_Debug_083C4F94
+ .word 0x19b
+ .word gPokemonStorage+0x4
+
+ thumb_func_end TayaDebugMenu_PokenavD
+
+ thumb_func_start TayaDebugMenu_8091190
+TayaDebugMenu_8091190:
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r3, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r3, r0
+ beq ._96 @cond_branch
+ add r0, r0, #0x1
+ cmp r3, r0
+ beq ._97 @cond_branch
+ ldr r2, ._99 @ gMenuCallback
+ ldr r1, ._99 + 4 @ gUnknown_Debug_83C5068
+ ldr r0, ._99 + 8 @ unk_2030224
+ ldrb r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, [r0]
+ lsl r0, r3, #0x3
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ str r0, [r2]
+._106:
+ mov r0, #0x0
+ b ._98
+._100:
+ .align 2, 0
+._99:
+ .word gMenuCallback
+ .word gUnknown_Debug_83C5068
+ .word unk_2030224
+._96:
+ ldr r3, ._107 @ unk_2030224
+ ldrb r4, [r3]
+ ldr r2, ._107 + 4 @ gMain
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ add r5, r3, #0
+ cmp r0, #0
+ beq ._102 @cond_branch
+ sub r0, r4, #1
+ strb r0, [r5]
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bge ._102 @cond_branch
+ mov r0, #0x1
+ strb r0, [r5]
+._102:
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._104 @cond_branch
+ ldrb r0, [r5]
+ add r0, r0, #0x1
+ strb r0, [r5]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bls ._104 @cond_branch
+ mov r0, #0x0
+ strb r0, [r5]
+._104:
+ lsl r0, r4, #0x18
+ asr r0, r0, #0x18
+ mov r1, #0x0
+ ldrsb r1, [r5, r1]
+ cmp r0, r1
+ beq ._106 @cond_branch
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xb
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r4, ._107 + 8 @ gUnknown_Debug_83C5068
+ mov r0, #0x0
+ ldrsb r0, [r5, r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r4
+ ldrb r2, [r0, #0x4]
+ ldr r3, [r0]
+ mov r0, #0x1
+ mov r1, #0x1
+ bl Menu_PrintItems
+ mov r0, #0x0
+ ldrsb r0, [r5, r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r4
+ ldrb r3, [r0, #0x4]
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl InitMenu
+ b ._106
+._108:
+ .align 2, 0
+._107:
+ .word unk_2030224
+ .word gMain
+ .word gUnknown_Debug_83C5068
+._97:
+ bl CloseMenu
+ mov r0, #0x1
+._98:
+ add sp, sp, #0x8
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end TayaDebugMenu_8091190
+
+ thumb_func_start InitTayaDebugWindow
+InitTayaDebugWindow:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ ldr r1, ._109 @ unk_2030224
+ mov r0, #0x0
+ strb r0, [r1]
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xb
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._109 + 4 @ gUnknown_Debug_83C5068
+ ldr r3, [r0]
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._109 + 8 @ gMenuCallback
+ ldr r0, ._109 + 12 @ TayaDebugMenu_8091190
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._110:
+ .align 2, 0
+._109:
+ .word unk_2030224
+ .word gUnknown_Debug_83C5068
+ .word gMenuCallback
+ .word TayaDebugMenu_8091190+1
+
+ thumb_func_end InitTayaDebugWindow
+
+ thumb_func_start debug_sub_80912D8
+debug_sub_80912D8:
+ push {lr}
+ ldr r0, ._113 @ gPaletteFade
+ ldrb r1, [r0, #0x7]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._111 @cond_branch
+ mov r0, #0x0
+ b ._112
+._114:
+ .align 2, 0
+._113:
+ .word gPaletteFade
+._111:
+ ldr r0, ._115 @ debug_sub_8110F28
+ bl SetMainCallback2
+ mov r0, #0x1
+._112:
+ pop {r1}
+ bx r1
+._116:
+ .align 2, 0
+._115:
+ .word debug_sub_8110F28+1
+
+ thumb_func_end debug_sub_80912D8
+
+ thumb_func_start debug_sub_8091300
+debug_sub_8091300:
+ push {lr}
+ mov r0, #0x1
+ mov r1, #0x0
+ bl FadeScreen
+ ldr r1, ._117 @ gMenuCallback
+ ldr r0, ._117 + 4 @ debug_sub_80912D8
+ str r0, [r1]
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+._118:
+ .align 2, 0
+._117:
+ .word gMenuCallback
+ .word debug_sub_80912D8+1
+
+ thumb_func_end debug_sub_8091300
+
+ thumb_func_start debug_sub_8091320
+debug_sub_8091320:
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_8091320
+
+ thumb_func_start debug_sub_8091334
+debug_sub_8091334:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r3, ._123 @ gSharedMem
+ add r0, r3, #0
+ add r0, r0, #0x52
+ ldrb r4, [r0]
+ cmp r4, #0
+ beq ._119 @cond_branch
+ cmp r4, #0x1
+ bne ._120 @cond_branch
+ b ._121
+._120:
+ b ._162
+._124:
+ .align 2, 0
+._123:
+ .word gSharedMem
+._119:
+ add r5, r3, #0
+ add r5, r5, #0x55
+ strb r4, [r5]
+ ldr r2, ._131 @ gMain
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ mov r9, r2
+ cmp r0, #0
+ beq ._126 @cond_branch
+ add r1, r3, #0
+ add r1, r1, #0x54
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._126 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ mov r0, #0x1
+ strb r0, [r5]
+._126:
+ mov r0, r9
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ ldr r5, ._131 + 4 @ gSharedMem
+ cmp r0, #0
+ beq ._133 @cond_branch
+ add r0, r5, #0
+ add r0, r0, #0x53
+ ldrb r0, [r0]
+ cmp r0, #0x2
+ beq ._128 @cond_branch
+ add r1, r5, #0
+ add r1, r1, #0x54
+ ldrb r0, [r1]
+ cmp r0, #0x4
+ bhi ._133 @cond_branch
+ b ._130
+._132:
+ .align 2, 0
+._131:
+ .word gMain
+ .word gSharedMem
+._128:
+ add r1, r5, #0
+ add r1, r1, #0x54
+ ldrb r0, [r1]
+ cmp r0, #0x3
+ bhi ._133 @cond_branch
+._130:
+ add r0, r0, #0x1
+ strb r0, [r1]
+ add r1, r1, #0x1
+ mov r0, #0x1
+ strb r0, [r1]
+._133:
+ mov r2, r9
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._135 @cond_branch
+ add r1, r5, #0
+ add r1, r1, #0x53
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._135 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ add r1, r1, #0x2
+ mov r0, #0x1
+ strb r0, [r1]
+._135:
+ mov r3, r9
+ ldrh r1, [r3, #0x2e]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._140 @cond_branch
+ add r0, r5, #0
+ add r0, r0, #0x54
+ ldrb r0, [r0]
+ cmp r0, #0x5
+ beq ._137 @cond_branch
+ add r1, r5, #0
+ add r1, r1, #0x53
+ ldrb r0, [r1]
+ cmp r0, #0x1
+ bhi ._140 @cond_branch
+ b ._139
+._137:
+ add r1, r5, #0
+ add r1, r1, #0x53
+ ldrb r0, [r1]
+ cmp r0, #0
+ bne ._140 @cond_branch
+._139:
+ add r0, r0, #0x1
+ strb r0, [r1]
+ add r1, r1, #0x2
+ mov r0, #0x1
+ strb r0, [r1]
+._140:
+ add r0, r5, #0
+ add r0, r0, #0x55
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne ._141 @cond_branch
+ mov r0, r9
+ ldrh r2, [r0, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._142 @cond_branch
+ ldr r2, ._145 @ gUnknown_Debug_083C50EC
+ add r3, r5, #0
+ add r3, r3, #0x53
+ add r0, r5, #0
+ add r0, r0, #0x54
+ ldrb r1, [r0]
+ lsl r0, r1, #0x1
+ add r0, r0, r1
+ ldrb r3, [r3]
+ add r0, r0, r3
+ lsl r0, r0, #0x3
+ add r0, r0, r2
+ ldrh r0, [r0, #0x4]
+ sub r0, r0, #0x32
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #0x4
+ bhi ._143 @cond_branch
+ add r1, r5, #0
+ add r1, r1, #0x56
+ mov r0, #0x4
+ b ._144
+._146:
+ .align 2, 0
+._145:
+ .word gUnknown_Debug_083C50EC
+._143:
+ add r1, r5, #0
+ add r1, r1, #0x56
+ mov r0, #0x1
+._144:
+ strb r0, [r1]
+ add r1, r5, #0
+ add r1, r1, #0x52
+ mov r0, #0x1
+ strb r0, [r1]
+ b ._162
+._142:
+ mov r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ bne ._148 @cond_branch
+ b ._162
+._148:
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x10
+ mov r2, #0x0
+ bl BlendPalettes
+ ldr r0, ._151 @ sub_80546F0
+ bl SetMainCallback2
+ b ._162
+._152:
+ .align 2, 0
+._151:
+ .word sub_80546F0+1
+._121:
+ add r5, r3, #0
+ add r5, r5, #0x55
+ mov r0, #0x0
+ strb r0, [r5]
+ ldr r2, ._159 @ gMain
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ mov r9, r2
+ cmp r0, #0
+ beq ._154 @cond_branch
+ add r2, r3, #0
+ add r2, r2, #0x53
+ add r0, r3, #0
+ add r0, r0, #0x54
+ ldrb r1, [r0]
+ lsl r0, r1, #0x1
+ add r0, r0, r1
+ ldrb r2, [r2]
+ add r0, r0, r2
+ add r2, r0, r3
+ add r0, r3, #0
+ add r0, r0, #0x56
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs ._154 @cond_branch
+ add r0, r1, #1
+ strb r0, [r2]
+ strb r4, [r5]
+._154:
+ mov r2, r9
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ ldr r5, ._159 + 4 @ gSharedMem
+ cmp r0, #0
+ beq ._156 @cond_branch
+ add r2, r5, #0
+ add r2, r2, #0x53
+ add r0, r5, #0
+ add r0, r0, #0x54
+ ldrb r1, [r0]
+ lsl r0, r1, #0x1
+ add r0, r0, r1
+ ldrb r2, [r2]
+ add r0, r0, r2
+ add r1, r0, r5
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._156 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ add r1, r5, #0
+ add r1, r1, #0x55
+ mov r0, #0x1
+ strb r0, [r1]
+._156:
+ add r6, r5, #0
+ add r0, r6, #0
+ add r0, r0, #0x55
+ ldrb r7, [r0]
+ cmp r7, #0
+ beq ._157 @cond_branch
+._141:
+ bl debug_sub_80916AC
+ b ._162
+._160:
+ .align 2, 0
+._159:
+ .word gMain
+ .word gSharedMem
+._157:
+ mov r3, r9
+ ldrh r1, [r3, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._161 @cond_branch
+ ldr r0, ._164 @ gPlayerParty
+ ldr r1, ._164 + 4 @ gUnknown_Debug_083C50EC
+ mov ip, r1
+ mov r2, #0x53
+ add r2, r2, r6
+ mov r8, r2
+ add r4, r6, #0
+ add r4, r4, #0x54
+ ldrb r2, [r4]
+ lsl r1, r2, #0x1
+ add r1, r1, r2
+ mov r3, r8
+ ldrb r3, [r3]
+ add r1, r1, r3
+ lsl r1, r1, #0x3
+ add r1, r1, ip
+ ldrh r1, [r1, #0x4]
+ bl GetMonData
+ ldrb r2, [r4]
+ lsl r1, r2, #0x1
+ add r1, r1, r2
+ mov r2, r8
+ ldrb r2, [r2]
+ add r1, r1, r2
+ add r1, r1, r6
+ strb r0, [r1]
+ bl debug_sub_80916AC
+ add r0, r6, #0
+ add r0, r0, #0x52
+ strb r7, [r0]
+._161:
+ mov r3, r9
+ ldrh r1, [r3, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._162 @cond_branch
+ ldr r2, ._164 + 4 @ gUnknown_Debug_083C50EC
+ add r0, r6, #0
+ add r0, r0, #0x53
+ ldrb r4, [r0]
+ add r0, r0, #0x1
+ ldrb r1, [r0]
+ lsl r0, r1, #0x1
+ add r3, r0, r1
+ add r0, r3, r4
+ lsl r0, r0, #0x3
+ add r1, r0, r2
+ ldrh r0, [r1, #0x4]
+ cmp r0, #0
+ beq ._163 @cond_branch
+ ldr r0, ._164 @ gPlayerParty
+ ldrh r1, [r1, #0x4]
+ add r2, r4, r6
+ add r2, r3, r2
+ bl SetMonData
+._163:
+ add r0, r5, #0
+ add r0, r0, #0x52
+ strb r7, [r0]
+._162:
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._165:
+ .align 2, 0
+._164:
+ .word gPlayerParty
+ .word gUnknown_Debug_083C50EC
+
+ thumb_func_end debug_sub_8091334
+
+ thumb_func_start debug_sub_80915BC
+debug_sub_80915BC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, ._168 @ 0x4000010
+ mov r1, #0x0
+ strh r1, [r0]
+ add r0, r0, #0x2
+ strh r1, [r0]
+ mov r1, #0x0
+ ldr r0, ._168 + 4 @ gUnknown_Debug_083C50EC
+ mov r8, r0
+ ldr r7, ._168 + 8 @ gSharedMem
+._171:
+ mov r4, #0x0
+ lsl r0, r1, #0x1
+ add r6, r1, #1
+ add r5, r0, r1
+._170:
+ add r0, r5, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r8
+ ldrh r1, [r0, #0x4]
+ cmp r1, #0
+ beq ._166 @cond_branch
+ ldr r0, ._168 + 12 @ gPlayerParty
+ bl GetMonData
+ add r1, r4, r5
+ add r1, r1, r7
+ strb r0, [r1]
+ b ._167
+._169:
+ .align 2, 0
+._168:
+ .word 0x4000010
+ .word gUnknown_Debug_083C50EC
+ .word gSharedMem
+ .word gPlayerParty
+._166:
+ add r0, r4, r5
+ add r0, r0, r7
+ strb r1, [r0]
+._167:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x2
+ bls ._170 @cond_branch
+ lsl r0, r6, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x5
+ bls ._171 @cond_branch
+ ldr r4, ._172 @ gWindowTemplate_81E7224
+ add r0, r4, #0
+ bl Text_LoadWindowTemplate
+ add r0, r4, #0
+ bl InitMenuWindow
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x3
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._172 + 4 @ gUnknown_Debug_083C517C
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r0, #0x0
+ mov r1, #0x4
+ mov r2, #0x1d
+ mov r3, #0x11
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0x12
+ mov r2, #0x1d
+ mov r3, #0x15
+ bl Menu_DrawStdWindowFrame
+ mov r1, #0x80
+ lsl r1, r1, #0x13
+ mov r2, #0x8a
+ lsl r2, r2, #0x5
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r2, ._172 + 8 @ gSharedMem
+ add r0, r2, #0
+ add r0, r0, #0x53
+ mov r1, #0x0
+ strb r1, [r0]
+ add r0, r0, #0x1
+ strb r1, [r0]
+ sub r0, r0, #0x2
+ strb r1, [r0]
+ bl debug_sub_80916AC
+ ldr r0, ._172 + 12 @ debug_sub_8091320
+ bl SetVBlankCallback
+ ldr r0, ._172 + 16 @ debug_sub_8091334
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._173:
+ .align 2, 0
+._172:
+ .word gWindowTemplate_81E7224
+ .word gUnknown_Debug_083C517C
+ .word gSharedMem
+ .word debug_sub_8091320+1
+ .word debug_sub_8091334+1
+
+ thumb_func_end debug_sub_80915BC
+
+ thumb_func_start debug_sub_80916AC
+debug_sub_80916AC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xfffffffc
+ mov r6, #0x0
+ ldr r0, ._177 @ gSharedMem
+ mov sl, r0
+ mov r1, #0x0
+ mov r8, r1
+._182:
+ ldr r2, ._177 + 4 @ gSharedMem
+ mov r5, #0x0
+ lsl r0, r6, #0x1
+ mov r9, r0
+ add r1, r6, #1
+ str r1, [sp]
+._181:
+ mov r0, sl
+ add r0, r0, #0x53
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne ._175 @cond_branch
+ ldr r1, ._177 + 8 @ gSharedMem
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne ._175 @cond_branch
+ mov r0, #0xef
+ b ._176
+._178:
+ .align 2, 0
+._177:
+ .word gSharedMem
+ .word gSharedMem+0x12
+ .word gSharedMem+0x54
+._175:
+ mov r0, r8
+ strb r0, [r2]
+ add r2, r2, #0x1
+._176:
+ strb r0, [r2]
+ add r2, r2, #0x1
+ mov r1, r9
+ add r4, r1, r6
+ add r0, r4, r5
+ lsl r0, r0, #0x3
+ ldr r1, ._183 @ gUnknown_Debug_083C50EC
+ add r0, r0, r1
+ ldr r1, [r0]
+ add r0, r2, #0
+ bl StringCopy
+ add r2, r0, #0
+ mov r0, r8
+ strb r0, [r2]
+ add r2, r2, #0x1
+ ldr r7, ._183 + 4 @ gSharedMem
+ add r4, r5, r4
+ add r4, r4, r7
+ ldrb r1, [r4]
+ add r0, r2, #0
+ mov r2, #0x0
+ mov r3, #0x1
+ bl ConvertIntToDecimalStringN
+ add r2, r0, #0
+ mov r1, r8
+ strb r1, [r2]
+ add r2, r2, #0x1
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x2
+ bhi ._179 @cond_branch
+ cmp r6, #0x5
+ bne ._181 @cond_branch
+ cmp r5, #0x2
+ bne ._181 @cond_branch
+._179:
+ sub r1, r2, #1
+ mov r0, #0xff
+ strb r0, [r1]
+ mov r2, r9
+ add r2, r2, #0x5
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ add r0, r7, #0
+ add r0, r0, #0x12
+ mov r1, #0x1
+ bl Menu_PrintText
+ ldr r1, [sp]
+ lsl r0, r1, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x5
+ bls ._182 @cond_branch
+ add sp, sp, #0x4
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._184:
+ .align 2, 0
+._183:
+ .word gUnknown_Debug_083C50EC
+ .word gSharedMem
+
+ thumb_func_end debug_sub_80916AC
+
+ .align 2, 0
+
+.endif
diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s
new file mode 100644
index 000000000..c0dfe38e0
--- /dev/null
+++ b/asm/tomomichi_debug_menu.s
@@ -0,0 +1,8100 @@
+.if DEBUG
+
+ .include "constants/gba_constants.inc"
+ .include "include/macros.inc"
+
+ thumb_func_start InitTomomichiDebugWindow
+InitTomomichiDebugWindow:
+ push {lr}
+ bl debug_sub_808B874
+ mov r0, #0x0
+ pop {r1}
+ bx r1
+
+ thumb_func_end InitTomomichiDebugWindow
+
+ thumb_func_start debug_sub_808B868
+debug_sub_808B868:
+ push {lr}
+ bl c2_exit_to_overworld_1_continue_scripts_restart_music
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808B868
+
+ thumb_func_start debug_sub_808B874
+debug_sub_808B874:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xd
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._1 @ gUnknown_Debug_083C0CBA
+ mov r0, #0x1
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ ldr r0, ._1 + 4 @ gDebug_0300071D
+ ldrb r0, [r0]
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._1 + 8 @ gMenuCallback
+ ldr r0, ._1 + 12 @ debug_sub_808B8C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._2:
+ .align 2, 0
+._1:
+ .word gUnknown_Debug_083C0CBA
+ .word gDebug_0300071D
+ .word gMenuCallback
+ .word debug_sub_808B8C8+1
+
+ thumb_func_end debug_sub_808B874
+
+ thumb_func_start debug_sub_808B8C8
+debug_sub_808B8C8:
+ push {r4, lr}
+ ldr r4, ._7 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._3 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ bl Menu_MoveCursor
+ ldr r1, ._7 + 4 @ gDebug_0300071D
+ strb r0, [r1]
+._3:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._4 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ bl Menu_MoveCursor
+ ldr r1, ._7 + 4 @ gDebug_0300071D
+ strb r0, [r1]
+._4:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._5 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._7 + 8 @ gUnknown_Debug_083C0CBA
+ ldr r0, ._7 + 4 @ gDebug_0300071D
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r1, r1, #0x4
+ add r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._10
+._8:
+ .align 2, 0
+._7:
+ .word gMain
+ .word gDebug_0300071D
+ .word gUnknown_Debug_083C0CBA
+._5:
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._9 @cond_branch
+ mov r0, #0x0
+ b ._10
+._9:
+ bl CloseMenu
+ mov r0, #0x1
+._10:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808B8C8
+
+ thumb_func_start TomomichiDebugMenu_ContestGraphics
+TomomichiDebugMenu_ContestGraphics:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._11 @ gUnknown_Debug_083C0CF4
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r3, ._11 + 4 @ gUnknown_Debug_083C0D2C
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0x4
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x4
+ bl InitMenu
+ ldr r1, ._11 + 8 @ gMenuCallback
+ ldr r0, ._11 + 12 @ debug_sub_808BC48
+ str r0, [r1]
+ ldr r0, ._11 + 16 @ gDebug_03000700
+ mov r2, #0x1
+ strh r2, [r0]
+ ldr r1, ._11 + 20 @ gDebug_03000704
+ ldr r0, ._11 + 24 @ 0x6f33
+ str r0, [r1]
+ ldr r0, ._11 + 28 @ gDebug_03000708
+ str r4, [r0]
+ ldr r0, ._11 + 32 @ gDebug_0300070C
+ strb r2, [r0]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._12:
+ .align 2, 0
+._11:
+ .word gUnknown_Debug_083C0CF4
+ .word gUnknown_Debug_083C0D2C
+ .word gMenuCallback
+ .word debug_sub_808BC48+1
+ .word gDebug_03000700
+ .word gDebug_03000704
+ .word 0x6f33
+ .word gDebug_03000708
+ .word gDebug_0300070C
+
+ thumb_func_end TomomichiDebugMenu_ContestGraphics
+
+ thumb_func_start TomomichiDebugMenu_ArtMusGraphics
+TomomichiDebugMenu_ArtMusGraphics:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._13 @ gUnknown_Debug_083C0D4C
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r3, ._13 + 4 @ gUnknown_Debug_083C0D83
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0x4
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x4
+ bl InitMenu
+ ldr r1, ._13 + 8 @ gMenuCallback
+ ldr r0, ._13 + 12 @ debug_sub_808BCBC
+ str r0, [r1]
+ ldr r0, ._13 + 16 @ gDebug_03000700
+ mov r2, #0x1
+ strh r2, [r0]
+ ldr r1, ._13 + 20 @ gDebug_03000704
+ ldr r0, ._13 + 24 @ 0x6f33
+ str r0, [r1]
+ ldr r0, ._13 + 28 @ gDebug_03000708
+ str r4, [r0]
+ ldr r0, ._13 + 32 @ gDebug_0300070D
+ strb r2, [r0]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._14:
+ .align 2, 0
+._13:
+ .word gUnknown_Debug_083C0D4C
+ .word gUnknown_Debug_083C0D83
+ .word gMenuCallback
+ .word debug_sub_808BCBC+1
+ .word gDebug_03000700
+ .word gDebug_03000704
+ .word 0x6f33
+ .word gDebug_03000708
+ .word gDebug_0300070D
+
+ thumb_func_end TomomichiDebugMenu_ArtMusGraphics
+
+ thumb_func_start TomomichiDebugMenu_PreviewData
+TomomichiDebugMenu_PreviewData:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x14
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._15 @ gUnknown_Debug_083C0DA4
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r3, ._15 + 4 @ gUnknown_Debug_083C0DD4
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0x4
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x13
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x4
+ bl InitMenu
+ ldr r1, ._15 + 8 @ gMenuCallback
+ ldr r0, ._15 + 12 @ debug_sub_808BD30
+ str r0, [r1]
+ ldr r0, ._15 + 16 @ gDebug_03000700
+ mov r2, #0x1
+ strh r2, [r0]
+ ldr r1, ._15 + 20 @ gDebug_03000704
+ ldr r0, ._15 + 24 @ 0x6f33
+ str r0, [r1]
+ ldr r0, ._15 + 28 @ gDebug_03000708
+ str r4, [r0]
+ ldr r0, ._15 + 32 @ gDebug_0300070E
+ strb r2, [r0]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._16:
+ .align 2, 0
+._15:
+ .word gUnknown_Debug_083C0DA4
+ .word gUnknown_Debug_083C0DD4
+ .word gMenuCallback
+ .word debug_sub_808BD30+1
+ .word gDebug_03000700
+ .word gDebug_03000704
+ .word 0x6f33
+ .word gDebug_03000708
+ .word gDebug_0300070E
+
+ thumb_func_end TomomichiDebugMenu_PreviewData
+
+ thumb_func_start TomomichiDebugMenu_TrickHouse
+TomomichiDebugMenu_TrickHouse:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._17 @ gUnknown_Debug_083C0DF4
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r3, ._17 + 4 @ gUnknown_Debug_083C0E15
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0x2
+ bl Menu_PrintItems
+ ldr r0, ._17 + 8 @ gDebug_0300071E
+ ldrb r0, [r0]
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._17 + 12 @ gMenuCallback
+ ldr r0, ._17 + 16 @ debug_sub_808BDA4
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._18:
+ .align 2, 0
+._17:
+ .word gUnknown_Debug_083C0DF4
+ .word gUnknown_Debug_083C0E15
+ .word gDebug_0300071E
+ .word gMenuCallback
+ .word debug_sub_808BDA4+1
+
+ thumb_func_end TomomichiDebugMenu_TrickHouse
+
+ thumb_func_start TomomichiDebugMenu_ControlEvents
+TomomichiDebugMenu_ControlEvents:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._19 @ gUnknown_Debug_083C0E32
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ ldr r0, ._19 + 4 @ gDebug_0300071F
+ ldrb r0, [r0]
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._19 + 8 @ gMenuCallback
+ ldr r0, ._19 + 12 @ debug_sub_808BE2C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._20:
+ .align 2, 0
+._19:
+ .word gUnknown_Debug_083C0E32
+ .word gDebug_0300071F
+ .word gMenuCallback
+ .word debug_sub_808BE2C+1
+
+ thumb_func_end TomomichiDebugMenu_ControlEvents
+
+ thumb_func_start TomomichiDebugMenu_ControlFlags
+TomomichiDebugMenu_ControlFlags:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._21 @ gUnknown_Debug_083C0E7F
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ ldr r0, ._21 + 4 @ gDebug_03000720
+ ldrb r0, [r0]
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._21 + 8 @ gMenuCallback
+ ldr r0, ._21 + 12 @ debug_sub_808BEB4
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._22:
+ .align 2, 0
+._21:
+ .word gUnknown_Debug_083C0E7F
+ .word gDebug_03000720
+ .word gMenuCallback
+ .word debug_sub_808BEB4+1
+
+ thumb_func_end TomomichiDebugMenu_ControlFlags
+
+ thumb_func_start TomomichiDebugMenu_ControlWorks
+TomomichiDebugMenu_ControlWorks:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._23 @ gUnknown_Debug_083C0EF1
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ ldr r0, ._23 + 4 @ gDebug_03000721
+ ldrb r0, [r0]
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._23 + 8 @ gMenuCallback
+ ldr r0, ._23 + 12 @ debug_sub_808BF3C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._24:
+ .align 2, 0
+._23:
+ .word gUnknown_Debug_083C0EF1
+ .word gDebug_03000721
+ .word gMenuCallback
+ .word debug_sub_808BF3C+1
+
+ thumb_func_end TomomichiDebugMenu_ControlWorks
+
+ thumb_func_start debug_sub_808BC48
+debug_sub_808BC48:
+ push {r4, lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, #0x1
+ beq ._25 @cond_branch
+ cmp r0, #0x1
+ bgt ._26 @cond_branch
+ cmp r0, #0
+ beq ._27 @cond_branch
+ b ._32
+._26:
+ cmp r0, #0x2
+ beq ._29 @cond_branch
+ b ._32
+._27:
+ bl debug_sub_808ED0C
+ b ._32
+._25:
+ bl debug_sub_808ED9C
+ b ._32
+._29:
+ bl debug_sub_808EE3C
+._32:
+ mov r0, #0x0
+ bl debug_sub_808EF8C
+ lsl r0, r4, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._36 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ bne ._34 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ b ._35
+._34:
+ cmp r1, #0x3
+ bne ._36 @cond_branch
+ ldr r0, ._37 @ gMenuCallback
+ ldr r1, ._37 + 4 @ gUnknown_Debug_083C0D2C
+ ldr r1, [r1, #0x1c]
+ str r1, [r0]
+._36:
+ mov r0, #0x0
+._35:
+ pop {r4}
+ pop {r1}
+ bx r1
+._38:
+ .align 2, 0
+._37:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C0D2C
+
+ thumb_func_end debug_sub_808BC48
+
+ thumb_func_start debug_sub_808BCBC
+debug_sub_808BCBC:
+ push {r4, lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, #0x1
+ beq ._39 @cond_branch
+ cmp r0, #0x1
+ bgt ._40 @cond_branch
+ cmp r0, #0
+ beq ._41 @cond_branch
+ b ._46
+._40:
+ cmp r0, #0x2
+ beq ._43 @cond_branch
+ b ._46
+._41:
+ bl debug_sub_808ED0C
+ b ._46
+._39:
+ bl debug_sub_808ED9C
+ b ._46
+._43:
+ bl debug_sub_808EE9C
+._46:
+ mov r0, #0x1
+ bl debug_sub_808EF8C
+ lsl r0, r4, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._50 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ bne ._48 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ b ._49
+._48:
+ cmp r1, #0x3
+ bne ._50 @cond_branch
+ ldr r0, ._51 @ gMenuCallback
+ ldr r1, ._51 + 4 @ gUnknown_Debug_083C0D83
+ ldr r1, [r1, #0x1c]
+ str r1, [r0]
+._50:
+ mov r0, #0x0
+._49:
+ pop {r4}
+ pop {r1}
+ bx r1
+._52:
+ .align 2, 0
+._51:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C0D83
+
+ thumb_func_end debug_sub_808BCBC
+
+ thumb_func_start debug_sub_808BD30
+debug_sub_808BD30:
+ push {r4, lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ cmp r0, #0x1
+ beq ._53 @cond_branch
+ cmp r0, #0x1
+ bgt ._54 @cond_branch
+ cmp r0, #0
+ beq ._55 @cond_branch
+ b ._60
+._54:
+ cmp r0, #0x2
+ beq ._57 @cond_branch
+ b ._60
+._55:
+ bl debug_sub_808ED0C
+ b ._60
+._53:
+ bl debug_sub_808ED9C
+ b ._60
+._57:
+ bl debug_sub_808EF14
+._60:
+ mov r0, #0x2
+ bl debug_sub_808EF8C
+ lsl r0, r4, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ beq ._64 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ bne ._62 @cond_branch
+ bl CloseMenu
+ mov r0, #0x1
+ b ._63
+._62:
+ cmp r1, #0x3
+ bne ._64 @cond_branch
+ ldr r0, ._65 @ gMenuCallback
+ ldr r1, ._65 + 4 @ gUnknown_Debug_083C0DD4
+ ldr r1, [r1, #0x1c]
+ str r1, [r0]
+._64:
+ mov r0, #0x0
+._63:
+ pop {r4}
+ pop {r1}
+ bx r1
+._66:
+ .align 2, 0
+._65:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C0DD4
+
+ thumb_func_end debug_sub_808BD30
+
+ thumb_func_start debug_sub_808BDA4
+debug_sub_808BDA4:
+ push {r4, lr}
+ ldr r4, ._71 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._67 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ bl Menu_MoveCursor
+ ldr r1, ._71 + 4 @ gDebug_0300071E
+ strb r0, [r1]
+._67:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._68 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ bl Menu_MoveCursor
+ ldr r1, ._71 + 4 @ gDebug_0300071E
+ strb r0, [r1]
+._68:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._69 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._71 + 8 @ gUnknown_Debug_083C0E15
+ ldr r0, ._71 + 4 @ gDebug_0300071E
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r1, r1, #0x4
+ add r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._74
+._72:
+ .align 2, 0
+._71:
+ .word gMain
+ .word gDebug_0300071E
+ .word gUnknown_Debug_083C0E15
+._69:
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._73 @cond_branch
+ mov r0, #0x0
+ b ._74
+._73:
+ bl CloseMenu
+ mov r0, #0x1
+._74:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808BDA4
+
+ thumb_func_start debug_sub_808BE2C
+debug_sub_808BE2C:
+ push {r4, lr}
+ ldr r4, ._79 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._75 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ bl Menu_MoveCursor
+ ldr r1, ._79 + 4 @ gDebug_0300071F
+ strb r0, [r1]
+._75:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._76 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ bl Menu_MoveCursor
+ ldr r1, ._79 + 4 @ gDebug_0300071F
+ strb r0, [r1]
+._76:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._77 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._79 + 8 @ gUnknown_Debug_083C0E32
+ ldr r0, ._79 + 4 @ gDebug_0300071F
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r1, r1, #0x4
+ add r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._82
+._80:
+ .align 2, 0
+._79:
+ .word gMain
+ .word gDebug_0300071F
+ .word gUnknown_Debug_083C0E32
+._77:
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._81 @cond_branch
+ mov r0, #0x0
+ b ._82
+._81:
+ bl CloseMenu
+ mov r0, #0x1
+._82:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808BE2C
+
+ thumb_func_start debug_sub_808BEB4
+debug_sub_808BEB4:
+ push {r4, lr}
+ ldr r4, ._87 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._83 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ bl Menu_MoveCursor
+ ldr r1, ._87 + 4 @ gDebug_03000720
+ strb r0, [r1]
+._83:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._84 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ bl Menu_MoveCursor
+ ldr r1, ._87 + 4 @ gDebug_03000720
+ strb r0, [r1]
+._84:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._85 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._87 + 8 @ gUnknown_Debug_083C0E7F
+ ldr r0, ._87 + 4 @ gDebug_03000720
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r1, r1, #0x4
+ add r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._90
+._88:
+ .align 2, 0
+._87:
+ .word gMain
+ .word gDebug_03000720
+ .word gUnknown_Debug_083C0E7F
+._85:
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._89 @cond_branch
+ mov r0, #0x0
+ b ._90
+._89:
+ bl CloseMenu
+ mov r0, #0x1
+._90:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808BEB4
+
+ thumb_func_start debug_sub_808BF3C
+debug_sub_808BF3C:
+ push {r4, lr}
+ ldr r4, ._95 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._91 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ bl Menu_MoveCursor
+ ldr r1, ._95 + 4 @ gDebug_03000721
+ strb r0, [r1]
+._91:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._92 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ bl Menu_MoveCursor
+ ldr r1, ._95 + 4 @ gDebug_03000721
+ strb r0, [r1]
+._92:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._93 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._95 + 8 @ gUnknown_Debug_083C0EF1
+ ldr r0, ._95 + 4 @ gDebug_03000721
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r1, r1, #0x4
+ add r0, r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ b ._98
+._96:
+ .align 2, 0
+._95:
+ .word gMain
+ .word gDebug_03000721
+ .word gUnknown_Debug_083C0EF1
+._93:
+ mov r0, #0xa
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._97 @cond_branch
+ mov r0, #0x0
+ b ._98
+._97:
+ bl CloseMenu
+ mov r0, #0x1
+._98:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808BF3C
+
+ thumb_func_start debug_sub_808BFC4
+debug_sub_808BFC4:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._99 @ gUnknown_Debug_083C0F79
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._99 + 4 @ gMenuCallback
+ ldr r0, ._99 + 8 @ debug_sub_808C064
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._100:
+ .align 2, 0
+._99:
+ .word gUnknown_Debug_083C0F79
+ .word gMenuCallback
+ .word debug_sub_808C064+1
+
+ thumb_func_end debug_sub_808BFC4
+
+ thumb_func_start debug_sub_808C014
+debug_sub_808C014:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._101 @ gUnknown_Debug_083C0FFC
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._101 + 4 @ gMenuCallback
+ ldr r0, ._101 + 8 @ debug_sub_808C0A8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._102:
+ .align 2, 0
+._101:
+ .word gUnknown_Debug_083C0FFC
+ .word gMenuCallback
+ .word debug_sub_808C0A8+1
+
+ thumb_func_end debug_sub_808C014
+
+ thumb_func_start debug_sub_808C064
+debug_sub_808C064:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._103 @cond_branch
+ mov r0, #0x0
+ b ._106
+._103:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._105 @cond_branch
+ ldr r2, ._107 @ gMenuCallback
+ ldr r0, ._107 + 4 @ gUnknown_Debug_083C0F79
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._106
+._108:
+ .align 2, 0
+._107:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C0F79
+._105:
+ bl CloseMenu
+ mov r0, #0x1
+._106:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808C064
+
+ thumb_func_start debug_sub_808C0A8
+debug_sub_808C0A8:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._109 @cond_branch
+ mov r0, #0x0
+ b ._112
+._109:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._111 @cond_branch
+ ldr r2, ._113 @ gMenuCallback
+ ldr r0, ._113 + 4 @ gUnknown_Debug_083C0FFC
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._112
+._114:
+ .align 2, 0
+._113:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C0FFC
+._111:
+ bl CloseMenu
+ mov r0, #0x1
+._112:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808C0A8
+
+ thumb_func_start debug_sub_808C0EC
+debug_sub_808C0EC:
+ push {lr}
+ ldr r0, ._115 @ DebugScript_081C1CFE
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._116:
+ .align 2, 0
+._115:
+ .word DebugScript_081C1CFE
+
+ thumb_func_end debug_sub_808C0EC
+
+ thumb_func_start debug_sub_808C104
+debug_sub_808C104:
+ push {lr}
+ ldr r0, ._117 @ DebugScript_081C1D07
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._118:
+ .align 2, 0
+._117:
+ .word DebugScript_081C1D07
+
+ thumb_func_end debug_sub_808C104
+
+ thumb_func_start debug_sub_808C11C
+debug_sub_808C11C:
+ push {lr}
+ ldr r0, ._119 @ DebugScript_081C1D1E
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._120:
+ .align 2, 0
+._119:
+ .word DebugScript_081C1D1E
+
+ thumb_func_end debug_sub_808C11C
+
+ thumb_func_start debug_sub_808C134
+debug_sub_808C134:
+ push {lr}
+ ldr r0, ._121 @ DebugScript_081C1D24
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._122:
+ .align 2, 0
+._121:
+ .word DebugScript_081C1D24
+
+ thumb_func_end debug_sub_808C134
+
+ thumb_func_start debug_sub_808C14C
+debug_sub_808C14C:
+ push {lr}
+ ldr r0, ._123 @ DebugScript_081C1D2A
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._124:
+ .align 2, 0
+._123:
+ .word DebugScript_081C1D2A
+
+ thumb_func_end debug_sub_808C14C
+
+ thumb_func_start debug_sub_808C164
+debug_sub_808C164:
+ push {lr}
+ ldr r0, ._125 @ DebugScript_081C1D35
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._126:
+ .align 2, 0
+._125:
+ .word DebugScript_081C1D35
+
+ thumb_func_end debug_sub_808C164
+
+ thumb_func_start debug_sub_808C17C
+debug_sub_808C17C:
+ push {lr}
+ ldr r0, ._127 @ DebugScript_081C1D46
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._128:
+ .align 2, 0
+._127:
+ .word DebugScript_081C1D46
+
+ thumb_func_end debug_sub_808C17C
+
+ thumb_func_start debug_sub_808C194
+debug_sub_808C194:
+ push {lr}
+ ldr r0, ._129 @ DebugScript_081C221F
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._130:
+ .align 2, 0
+._129:
+ .word DebugScript_081C221F
+
+ thumb_func_end debug_sub_808C194
+
+ thumb_func_start debug_sub_808C1AC
+debug_sub_808C1AC:
+ push {lr}
+ ldr r0, ._131 @ DebugScript_081C23E2
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._132:
+ .align 2, 0
+._131:
+ .word DebugScript_081C23E2
+
+ thumb_func_end debug_sub_808C1AC
+
+ thumb_func_start debug_sub_808C1C4
+debug_sub_808C1C4:
+ push {lr}
+ ldr r0, ._133 @ DebugScript_081C23E6
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._134:
+ .align 2, 0
+._133:
+ .word DebugScript_081C23E6
+
+ thumb_func_end debug_sub_808C1C4
+
+ thumb_func_start debug_sub_808C1DC
+debug_sub_808C1DC:
+ push {lr}
+ ldr r0, ._135 @ DebugScript_081C23F6
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._136:
+ .align 2, 0
+._135:
+ .word DebugScript_081C23F6
+
+ thumb_func_end debug_sub_808C1DC
+
+ thumb_func_start debug_sub_808C1F4
+debug_sub_808C1F4:
+ push {lr}
+ ldr r0, ._137 @ DebugScript_081C2482
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._138:
+ .align 2, 0
+._137:
+ .word DebugScript_081C2482
+
+ thumb_func_end debug_sub_808C1F4
+
+ thumb_func_start debug_sub_808C20C
+debug_sub_808C20C:
+ push {lr}
+ ldr r0, ._139 @ DebugScript_081C23FD
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._140:
+ .align 2, 0
+._139:
+ .word DebugScript_081C23FD
+
+ thumb_func_end debug_sub_808C20C
+
+ thumb_func_start debug_sub_808C224
+debug_sub_808C224:
+ push {lr}
+ ldr r0, ._141 @ DebugScript_081C2518
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._142:
+ .align 2, 0
+._141:
+ .word DebugScript_081C2518
+
+ thumb_func_end debug_sub_808C224
+
+ thumb_func_start debug_sub_808C23C
+debug_sub_808C23C:
+ push {lr}
+ ldr r0, ._143 @ DebugScript_081C2507
+ bl ScriptContext1_SetupScript
+ bl CloseMenu
+ mov r0, #0x1
+ pop {r1}
+ bx r1
+._144:
+ .align 2, 0
+._143:
+ .word DebugScript_081C2507
+
+ thumb_func_end debug_sub_808C23C
+
+ thumb_func_start TomomichiDebugMenu_ContestGraphics_Show
+TomomichiDebugMenu_ContestGraphics_Show:
+ push {lr}
+ add sp, sp, #0xfffffffc
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r1, ._145 @ gMenuCallback
+ ldr r0, ._145 + 4 @ debug_sub_808C280
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ pop {r1}
+ bx r1
+._146:
+ .align 2, 0
+._145:
+ .word gMenuCallback
+ .word debug_sub_808C280+1
+
+ thumb_func_end TomomichiDebugMenu_ContestGraphics_Show
+
+ thumb_func_start debug_sub_808C280
+debug_sub_808C280:
+ push {lr}
+ bl UpdatePaletteFade
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._147 @cond_branch
+ mov r0, #0x0
+ b ._148
+._147:
+ bl CloseMenu
+ mov r0, #0x0
+ bl debug_sub_808F168
+ ldr r0, ._149 @ CB2_ContestPainting
+ bl SetMainCallback2
+ ldr r1, ._149 + 4 @ gMain
+ ldr r0, ._149 + 8 @ debug_sub_808B868
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+._148:
+ pop {r1}
+ bx r1
+._150:
+ .align 2, 0
+._149:
+ .word CB2_ContestPainting+1
+ .word gMain
+ .word debug_sub_808B868+1
+
+ thumb_func_end debug_sub_808C280
+
+ thumb_func_start TomomichiDebugMenu_MuseumGraphics_Show
+TomomichiDebugMenu_MuseumGraphics_Show:
+ push {lr}
+ add sp, sp, #0xfffffffc
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r1, ._151 @ gMenuCallback
+ ldr r0, ._151 + 4 @ debug_sub_808C2E4
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ pop {r1}
+ bx r1
+._152:
+ .align 2, 0
+._151:
+ .word gMenuCallback
+ .word debug_sub_808C2E4+1
+
+ thumb_func_end TomomichiDebugMenu_MuseumGraphics_Show
+
+ thumb_func_start debug_sub_808C2E4
+debug_sub_808C2E4:
+ push {lr}
+ bl UpdatePaletteFade
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._153 @cond_branch
+ mov r0, #0x0
+ b ._154
+._153:
+ bl CloseMenu
+ mov r0, #0x1
+ bl debug_sub_808F168
+ ldr r0, ._155 @ CB2_ContestPainting
+ bl SetMainCallback2
+ ldr r1, ._155 + 4 @ gMain
+ ldr r0, ._155 + 8 @ debug_sub_808B868
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+._154:
+ pop {r1}
+ bx r1
+._156:
+ .align 2, 0
+._155:
+ .word CB2_ContestPainting+1
+ .word gMain
+ .word debug_sub_808B868+1
+
+ thumb_func_end debug_sub_808C2E4
+
+ thumb_func_start debug_sub_808C31C
+debug_sub_808C31C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._157 @ gUnknown_Debug_083C2828
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._157 + 4 @ gMenuCallback
+ ldr r0, ._157 + 8 @ debug_sub_808C36C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._158:
+ .align 2, 0
+._157:
+ .word gUnknown_Debug_083C2828
+ .word gMenuCallback
+ .word debug_sub_808C36C+1
+
+ thumb_func_end debug_sub_808C31C
+
+ thumb_func_start debug_sub_808C36C
+debug_sub_808C36C:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._159 @cond_branch
+ mov r0, #0x0
+ b ._162
+._159:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._161 @cond_branch
+ ldr r2, ._163 @ gMenuCallback
+ ldr r0, ._163 + 4 @ gUnknown_Debug_083C2828
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._162
+._164:
+ .align 2, 0
+._163:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C2828
+._161:
+ bl CloseMenu
+ mov r0, #0x1
+._162:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808C36C
+
+ thumb_func_start debug_sub_808C3B0
+debug_sub_808C3B0:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._165 @ gUnknown_Debug_083C2938
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r0, ._165 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._165 + 8 @ gMenuCallback
+ ldr r0, ._165 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._166:
+ .align 2, 0
+._165:
+ .word gUnknown_Debug_083C2938
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C3B0
+
+ thumb_func_start debug_sub_808C408
+debug_sub_808C408:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._167 @ gUnknown_Debug_083C2A48
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._167 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._167 + 8 @ gMenuCallback
+ ldr r0, ._167 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._168:
+ .align 2, 0
+._167:
+ .word gUnknown_Debug_083C2A48
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C408
+
+ thumb_func_start debug_sub_808C460
+debug_sub_808C460:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._169 @ gUnknown_Debug_083C2B4C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._169 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._169 + 8 @ gMenuCallback
+ ldr r0, ._169 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._170:
+ .align 2, 0
+._169:
+ .word gUnknown_Debug_083C2B4C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C460
+
+ thumb_func_start debug_sub_808C4B8
+debug_sub_808C4B8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._171 @ gUnknown_Debug_083C2C80
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._171 + 4 @ gDebug_0300070F
+ mov r0, #0x3
+ strb r0, [r1]
+ ldr r1, ._171 + 8 @ gMenuCallback
+ ldr r0, ._171 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._172:
+ .align 2, 0
+._171:
+ .word gUnknown_Debug_083C2C80
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C4B8
+
+ thumb_func_start debug_sub_808C510
+debug_sub_808C510:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._173 @ gUnknown_Debug_083C2D8C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._173 + 4 @ gDebug_0300070F
+ mov r0, #0x4
+ strb r0, [r1]
+ ldr r1, ._173 + 8 @ gMenuCallback
+ ldr r0, ._173 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._174:
+ .align 2, 0
+._173:
+ .word gUnknown_Debug_083C2D8C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C510
+
+ thumb_func_start debug_sub_808C568
+debug_sub_808C568:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._175 @ gUnknown_Debug_083C2EB0
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._175 + 4 @ gDebug_0300070F
+ mov r0, #0x5
+ strb r0, [r1]
+ ldr r1, ._175 + 8 @ gMenuCallback
+ ldr r0, ._175 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._176:
+ .align 2, 0
+._175:
+ .word gUnknown_Debug_083C2EB0
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C568
+
+ thumb_func_start debug_sub_808C5C0
+debug_sub_808C5C0:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._177 @ gUnknown_Debug_083C2FE0
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._177 + 4 @ gDebug_0300070F
+ mov r0, #0x6
+ strb r0, [r1]
+ ldr r1, ._177 + 8 @ gMenuCallback
+ ldr r0, ._177 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._178:
+ .align 2, 0
+._177:
+ .word gUnknown_Debug_083C2FE0
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C5C0
+
+ thumb_func_start debug_sub_808C618
+debug_sub_808C618:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._179 @ gUnknown_Debug_083C3100
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._179 + 4 @ gDebug_0300070F
+ mov r0, #0x7
+ strb r0, [r1]
+ ldr r1, ._179 + 8 @ gMenuCallback
+ ldr r0, ._179 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._180:
+ .align 2, 0
+._179:
+ .word gUnknown_Debug_083C3100
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C618
+
+ thumb_func_start debug_sub_808C670
+debug_sub_808C670:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._181 @ gUnknown_Debug_083C3194
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x3
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x3
+ bl InitMenu
+ ldr r1, ._181 + 4 @ gDebug_0300070F
+ mov r0, #0x8
+ strb r0, [r1]
+ ldr r1, ._181 + 8 @ gMenuCallback
+ ldr r0, ._181 + 12 @ debug_sub_808C6C8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._182:
+ .align 2, 0
+._181:
+ .word gUnknown_Debug_083C3194
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808C6C8+1
+
+ thumb_func_end debug_sub_808C670
+
+ thumb_func_start debug_sub_808C6C8
+debug_sub_808C6C8:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._186 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808C714
+ ldrb r0, [r5]
+ bl debug_sub_808C764
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._183 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._184 @cond_branch
+._183:
+ mov r0, #0x0
+ b ._185
+._187:
+ .align 2, 0
+._186:
+ .word gDebug_0300070F
+._184:
+ bl CloseMenu
+ mov r0, #0x1
+._185:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808C6C8
+
+ thumb_func_start debug_sub_808C714
+debug_sub_808C714:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._191 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._190 @cond_branch
+ ldr r0, ._191 + 4 @ gUnknown_Debug_83C31E6
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._189 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._190
+._192:
+ .align 2, 0
+._191:
+ .word gMain
+ .word gUnknown_Debug_83C31E6
+._189:
+ add r0, r4, #0
+ bl FlagClear
+._190:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808C714
+
+ thumb_func_start debug_sub_808C764
+debug_sub_808C764:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._195 @ gUnknown_Debug_083C31DC
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._193 @cond_branch
+ ldr r0, ._195 + 4 @ gUnknown_Debug_83C31E6
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._194:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._194 @cond_branch
+._193:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._196:
+ .align 2, 0
+._195:
+ .word gUnknown_Debug_083C31DC
+ .word gUnknown_Debug_83C31E6
+
+ thumb_func_end debug_sub_808C764
+
+ thumb_func_start debug_sub_808C7C8
+debug_sub_808C7C8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._197 @ gUnknown_Debug_083C1CE8
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._197 + 4 @ gMenuCallback
+ ldr r0, ._197 + 8 @ debug_sub_808C818
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._198:
+ .align 2, 0
+._197:
+ .word gUnknown_Debug_083C1CE8
+ .word gMenuCallback
+ .word debug_sub_808C818+1
+
+ thumb_func_end debug_sub_808C7C8
+
+ thumb_func_start debug_sub_808C818
+debug_sub_808C818:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._199 @cond_branch
+ mov r0, #0x0
+ b ._202
+._199:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._201 @cond_branch
+ ldr r2, ._203 @ gMenuCallback
+ ldr r0, ._203 + 4 @ gUnknown_Debug_083C1CE8
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._202
+._204:
+ .align 2, 0
+._203:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C1CE8
+._201:
+ bl CloseMenu
+ mov r0, #0x1
+._202:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808C818
+
+ thumb_func_start debug_sub_808C85C
+debug_sub_808C85C:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._205 @ gUnknown_Debug_083C1E0C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r0, ._205 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._205 + 8 @ gMenuCallback
+ ldr r0, ._205 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._206:
+ .align 2, 0
+._205:
+ .word gUnknown_Debug_083C1E0C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808C85C
+
+ thumb_func_start debug_sub_808C8B4
+debug_sub_808C8B4:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._207 @ gUnknown_Debug_083C1F38
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._207 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._207 + 8 @ gMenuCallback
+ ldr r0, ._207 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._208:
+ .align 2, 0
+._207:
+ .word gUnknown_Debug_083C1F38
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808C8B4
+
+ thumb_func_start debug_sub_808C90C
+debug_sub_808C90C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._209 @ gUnknown_Debug_083C206C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._209 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._209 + 8 @ gMenuCallback
+ ldr r0, ._209 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._210:
+ .align 2, 0
+._209:
+ .word gUnknown_Debug_083C206C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808C90C
+
+ thumb_func_start debug_sub_808C964
+debug_sub_808C964:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._211 @ gUnknown_Debug_083C2190
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._211 + 4 @ gDebug_0300070F
+ mov r0, #0x3
+ strb r0, [r1]
+ ldr r1, ._211 + 8 @ gMenuCallback
+ ldr r0, ._211 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._212:
+ .align 2, 0
+._211:
+ .word gUnknown_Debug_083C2190
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808C964
+
+ thumb_func_start debug_sub_808C9BC
+debug_sub_808C9BC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._213 @ gUnknown_Debug_083C2264
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._213 + 4 @ gDebug_0300070F
+ mov r0, #0x4
+ strb r0, [r1]
+ ldr r1, ._213 + 8 @ gMenuCallback
+ ldr r0, ._213 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._214:
+ .align 2, 0
+._213:
+ .word gUnknown_Debug_083C2264
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808C9BC
+
+ thumb_func_start debug_sub_808CA14
+debug_sub_808CA14:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._215 @ gUnknown_Debug_083C2370
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._215 + 4 @ gDebug_0300070F
+ mov r0, #0x5
+ strb r0, [r1]
+ ldr r1, ._215 + 8 @ gMenuCallback
+ ldr r0, ._215 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._216:
+ .align 2, 0
+._215:
+ .word gUnknown_Debug_083C2370
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808CA14
+
+ thumb_func_start debug_sub_808CA6C
+debug_sub_808CA6C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._217 @ gUnknown_Debug_083C248C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._217 + 4 @ gDebug_0300070F
+ mov r0, #0x6
+ strb r0, [r1]
+ ldr r1, ._217 + 8 @ gMenuCallback
+ ldr r0, ._217 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._218:
+ .align 2, 0
+._217:
+ .word gUnknown_Debug_083C248C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808CA6C
+
+ thumb_func_start debug_sub_808CAC4
+debug_sub_808CAC4:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._219 @ gUnknown_Debug_083C259C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._219 + 4 @ gDebug_0300070F
+ mov r0, #0x7
+ strb r0, [r1]
+ ldr r1, ._219 + 8 @ gMenuCallback
+ ldr r0, ._219 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._220:
+ .align 2, 0
+._219:
+ .word gUnknown_Debug_083C259C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808CAC4
+
+ thumb_func_start debug_sub_808CB1C
+debug_sub_808CB1C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._221 @ gUnknown_Debug_083C26C8
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._221 + 4 @ gDebug_0300070F
+ mov r0, #0x8
+ strb r0, [r1]
+ ldr r1, ._221 + 8 @ gMenuCallback
+ ldr r0, ._221 + 12 @ debug_sub_808CB74
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._222:
+ .align 2, 0
+._221:
+ .word gUnknown_Debug_083C26C8
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CB74+1
+
+ thumb_func_end debug_sub_808CB1C
+
+ thumb_func_start debug_sub_808CB74
+debug_sub_808CB74:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._226 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808CBC0
+ ldrb r0, [r5]
+ bl debug_sub_808CC10
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._223 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._224 @cond_branch
+._223:
+ mov r0, #0x0
+ b ._225
+._227:
+ .align 2, 0
+._226:
+ .word gDebug_0300070F
+._224:
+ bl CloseMenu
+ mov r0, #0x1
+._225:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808CB74
+
+ thumb_func_start debug_sub_808CBC0
+debug_sub_808CBC0:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._231 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._230 @cond_branch
+ ldr r0, ._231 + 4 @ gUnknown_Debug_083C271A
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._229 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._230
+._232:
+ .align 2, 0
+._231:
+ .word gMain
+ .word gUnknown_Debug_083C271A
+._229:
+ add r0, r4, #0
+ bl FlagClear
+._230:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808CBC0
+
+ thumb_func_start debug_sub_808CC10
+debug_sub_808CC10:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._235 @ gUnknown_Debug_083C2710
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._233 @cond_branch
+ ldr r0, ._235 + 4 @ gUnknown_Debug_083C271A
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._234:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._234 @cond_branch
+._233:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._236:
+ .align 2, 0
+._235:
+ .word gUnknown_Debug_083C2710
+ .word gUnknown_Debug_083C271A
+
+ thumb_func_end debug_sub_808CC10
+
+ thumb_func_start debug_sub_808CC74
+debug_sub_808CC74:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._237 @ gUnknown_Debug_083C1ADC
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x3
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x3
+ bl InitMenu
+ ldr r1, ._237 + 4 @ gMenuCallback
+ ldr r0, ._237 + 8 @ debug_sub_808CCC4
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._238:
+ .align 2, 0
+._237:
+ .word gUnknown_Debug_083C1ADC
+ .word gMenuCallback
+ .word debug_sub_808CCC4+1
+
+ thumb_func_end debug_sub_808CC74
+
+ thumb_func_start debug_sub_808CCC4
+debug_sub_808CCC4:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._239 @cond_branch
+ mov r0, #0x0
+ b ._242
+._239:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._241 @cond_branch
+ ldr r2, ._243 @ gMenuCallback
+ ldr r0, ._243 + 4 @ gUnknown_Debug_083C1ADC
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._242
+._244:
+ .align 2, 0
+._243:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C1ADC
+._241:
+ bl CloseMenu
+ mov r0, #0x1
+._242:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808CCC4
+
+ thumb_func_start debug_sub_808CD08
+debug_sub_808CD08:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x11
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._245 @ gUnknown_Debug_083C1B7C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x8
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x8
+ bl InitMenu
+ ldr r0, ._245 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._245 + 8 @ gMenuCallback
+ ldr r0, ._245 + 12 @ debug_sub_808CE10
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._246:
+ .align 2, 0
+._245:
+ .word gUnknown_Debug_083C1B7C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CE10+1
+
+ thumb_func_end debug_sub_808CD08
+
+ thumb_func_start debug_sub_808CD60
+debug_sub_808CD60:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._247 @ gUnknown_Debug_083C1BF0
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x4
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x4
+ bl InitMenu
+ ldr r1, ._247 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._247 + 8 @ gMenuCallback
+ ldr r0, ._247 + 12 @ debug_sub_808CE10
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._248:
+ .align 2, 0
+._247:
+ .word gUnknown_Debug_083C1BF0
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CE10+1
+
+ thumb_func_end debug_sub_808CD60
+
+ thumb_func_start debug_sub_808CDB8
+debug_sub_808CDB8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x3
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._249 @ gUnknown_Debug_083C1C2C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x1
+ bl InitMenu
+ ldr r1, ._249 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._249 + 8 @ gMenuCallback
+ ldr r0, ._249 + 12 @ debug_sub_808CE10
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._250:
+ .align 2, 0
+._249:
+ .word gUnknown_Debug_083C1C2C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808CE10+1
+
+ thumb_func_end debug_sub_808CDB8
+
+ thumb_func_start debug_sub_808CE10
+debug_sub_808CE10:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._254 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808CE5C
+ ldrb r0, [r5]
+ bl debug_sub_808CEAC
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._251 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._252 @cond_branch
+._251:
+ mov r0, #0x0
+ b ._253
+._255:
+ .align 2, 0
+._254:
+ .word gDebug_0300070F
+._252:
+ bl CloseMenu
+ mov r0, #0x1
+._253:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808CE10
+
+ thumb_func_start debug_sub_808CE5C
+debug_sub_808CE5C:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._259 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._258 @cond_branch
+ ldr r0, ._259 + 4 @ gUnknown_Debug_083C1C38
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._257 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._258
+._260:
+ .align 2, 0
+._259:
+ .word gMain
+ .word gUnknown_Debug_083C1C38
+._257:
+ add r0, r4, #0
+ bl FlagClear
+._258:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808CE5C
+
+ thumb_func_start debug_sub_808CEAC
+debug_sub_808CEAC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._263 @ gUnknown_Debug_083C1C34
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._261 @cond_branch
+ ldr r0, ._263 + 4 @ gUnknown_Debug_083C1C38
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._262:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._262 @cond_branch
+._261:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._264:
+ .align 2, 0
+._263:
+ .word gUnknown_Debug_083C1C34
+ .word gUnknown_Debug_083C1C38
+
+ thumb_func_end debug_sub_808CEAC
+
+ thumb_func_start debug_sub_808CF10
+debug_sub_808CF10:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._265 @ gUnknown_Debug_083C1330
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._265 + 4 @ gMenuCallback
+ ldr r0, ._265 + 8 @ debug_sub_808CF60
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._266:
+ .align 2, 0
+._265:
+ .word gUnknown_Debug_083C1330
+ .word gMenuCallback
+ .word debug_sub_808CF60+1
+
+ thumb_func_end debug_sub_808CF10
+
+ thumb_func_start debug_sub_808CF60
+debug_sub_808CF60:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._267 @cond_branch
+ mov r0, #0x0
+ b ._270
+._267:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._269 @cond_branch
+ ldr r2, ._271 @ gMenuCallback
+ ldr r0, ._271 + 4 @ gUnknown_Debug_083C1330
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._270
+._272:
+ .align 2, 0
+._271:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C1330
+._269:
+ bl CloseMenu
+ mov r0, #0x1
+._270:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808CF60
+
+ thumb_func_start debug_sub_808CFA4
+debug_sub_808CFA4:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x11
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._273 @ gUnknown_Debug_083C13D8
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x8
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x8
+ bl InitMenu
+ ldr r0, ._273 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._273 + 8 @ gMenuCallback
+ ldr r0, ._273 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._274:
+ .align 2, 0
+._273:
+ .word gUnknown_Debug_083C13D8
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808CFA4
+
+ thumb_func_start debug_sub_808CFFC
+debug_sub_808CFFC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._275 @ gUnknown_Debug_083C1465
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._275 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._275 + 8 @ gMenuCallback
+ ldr r0, ._275 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._276:
+ .align 2, 0
+._275:
+ .word gUnknown_Debug_083C1465
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808CFFC
+
+ thumb_func_start debug_sub_808D054
+debug_sub_808D054:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._277 @ gUnknown_Debug_083C1503
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._277 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._277 + 8 @ gMenuCallback
+ ldr r0, ._277 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._278:
+ .align 2, 0
+._277:
+ .word gUnknown_Debug_083C1503
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D054
+
+ thumb_func_start debug_sub_808D0AC
+debug_sub_808D0AC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._279 @ gUnknown_Debug_083C158A
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x4
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x4
+ bl InitMenu
+ ldr r1, ._279 + 4 @ gDebug_0300070F
+ mov r0, #0x3
+ strb r0, [r1]
+ ldr r1, ._279 + 8 @ gMenuCallback
+ ldr r0, ._279 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._280:
+ .align 2, 0
+._279:
+ .word gUnknown_Debug_083C158A
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D0AC
+
+ thumb_func_start debug_sub_808D104
+debug_sub_808D104:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._281 @ gUnknown_Debug_083C1647
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._281 + 4 @ gDebug_0300070F
+ mov r0, #0x4
+ strb r0, [r1]
+ ldr r1, ._281 + 8 @ gMenuCallback
+ ldr r0, ._281 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._282:
+ .align 2, 0
+._281:
+ .word gUnknown_Debug_083C1647
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D104
+
+ thumb_func_start debug_sub_808D15C
+debug_sub_808D15C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._283 @ gUnknown_Debug_083C1712
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._283 + 4 @ gDebug_0300070F
+ mov r0, #0x5
+ strb r0, [r1]
+ ldr r1, ._283 + 8 @ gMenuCallback
+ ldr r0, ._283 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._284:
+ .align 2, 0
+._283:
+ .word gUnknown_Debug_083C1712
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D15C
+
+ thumb_func_start debug_sub_808D1B4
+debug_sub_808D1B4:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._285 @ gUnknown_Debug_083C17F8
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._285 + 4 @ gDebug_0300070F
+ mov r0, #0x6
+ strb r0, [r1]
+ ldr r1, ._285 + 8 @ gMenuCallback
+ ldr r0, ._285 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._286:
+ .align 2, 0
+._285:
+ .word gUnknown_Debug_083C17F8
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D1B4
+
+ thumb_func_start debug_sub_808D20C
+debug_sub_808D20C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._287 @ gUnknown_Debug_083C18B8
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._287 + 4 @ gDebug_0300070F
+ mov r0, #0x7
+ strb r0, [r1]
+ ldr r1, ._287 + 8 @ gMenuCallback
+ ldr r0, ._287 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._288:
+ .align 2, 0
+._287:
+ .word gUnknown_Debug_083C18B8
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D20C
+
+ thumb_func_start debug_sub_808D264
+debug_sub_808D264:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._289 @ gDebug_0x83C1974
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x5
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x5
+ bl InitMenu
+ ldr r1, ._289 + 4 @ gDebug_0300070F
+ mov r0, #0x8
+ strb r0, [r1]
+ ldr r1, ._289 + 8 @ gMenuCallback
+ ldr r0, ._289 + 12 @ debug_sub_808D2BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._290:
+ .align 2, 0
+._289:
+ .word gDebug_0x83C1974
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D2BC+1
+
+ thumb_func_end debug_sub_808D264
+
+ thumb_func_start debug_sub_808D2BC
+debug_sub_808D2BC:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._294 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808D308
+ ldrb r0, [r5]
+ bl debug_sub_808D358
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._291 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._292 @cond_branch
+._291:
+ mov r0, #0x0
+ b ._293
+._295:
+ .align 2, 0
+._294:
+ .word gDebug_0300070F
+._292:
+ bl CloseMenu
+ mov r0, #0x1
+._293:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D2BC
+
+ thumb_func_start debug_sub_808D308
+debug_sub_808D308:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._299 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._298 @cond_branch
+ ldr r0, ._299 + 4 @ gUnknown_Debug_083C19C6
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._297 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._298
+._300:
+ .align 2, 0
+._299:
+ .word gMain
+ .word gUnknown_Debug_083C19C6
+._297:
+ add r0, r4, #0
+ bl FlagClear
+._298:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808D308
+
+ thumb_func_start debug_sub_808D358
+debug_sub_808D358:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._303 @ gUnknown_Debug_083C19BC
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._301 @cond_branch
+ ldr r0, ._303 + 4 @ gUnknown_Debug_083C19C6
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._302:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._302 @cond_branch
+._301:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._304:
+ .align 2, 0
+._303:
+ .word gUnknown_Debug_083C19BC
+ .word gUnknown_Debug_083C19C6
+
+ thumb_func_end debug_sub_808D358
+
+ thumb_func_start debug_sub_808D3BC
+debug_sub_808D3BC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._305 @ gUnknown_Debug_083C105C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._305 + 4 @ gMenuCallback
+ ldr r0, ._305 + 8 @ debug_sub_808D40C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._306:
+ .align 2, 0
+._305:
+ .word gUnknown_Debug_083C105C
+ .word gMenuCallback
+ .word debug_sub_808D40C+1
+
+ thumb_func_end debug_sub_808D3BC
+
+ thumb_func_start debug_sub_808D40C
+debug_sub_808D40C:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._307 @cond_branch
+ mov r0, #0x0
+ b ._310
+._307:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._309 @cond_branch
+ ldr r2, ._311 @ gMenuCallback
+ ldr r0, ._311 + 4 @ gUnknown_Debug_083C105C
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._310
+._312:
+ .align 2, 0
+._311:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C105C
+._309:
+ bl CloseMenu
+ mov r0, #0x1
+._310:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D40C
+
+ thumb_func_start debug_sub_808D450
+debug_sub_808D450:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._313 @ gUnknown_Debug_083C10BD
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r0, ._313 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._313 + 8 @ gMenuCallback
+ ldr r0, ._313 + 12 @ debug_sub_808D500
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._314:
+ .align 2, 0
+._313:
+ .word gUnknown_Debug_083C10BD
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D500+1
+
+ thumb_func_end debug_sub_808D450
+
+ thumb_func_start debug_sub_808D4A8
+debug_sub_808D4A8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._315 @ gUnknown_Debug_083C1149
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._315 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._315 + 8 @ gMenuCallback
+ ldr r0, ._315 + 12 @ debug_sub_808D500
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._316:
+ .align 2, 0
+._315:
+ .word gUnknown_Debug_083C1149
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D500+1
+
+ thumb_func_end debug_sub_808D4A8
+
+ thumb_func_start debug_sub_808D500
+debug_sub_808D500:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._320 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808D54C
+ ldrb r0, [r5]
+ bl debug_sub_808D59C
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._317 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._318 @cond_branch
+._317:
+ mov r0, #0x0
+ b ._319
+._321:
+ .align 2, 0
+._320:
+ .word gDebug_0300070F
+._318:
+ bl CloseMenu
+ mov r0, #0x1
+._319:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D500
+
+ thumb_func_start debug_sub_808D54C
+debug_sub_808D54C:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._325 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._324 @cond_branch
+ ldr r0, ._325 + 4 @ gUnknown_Debug_083C1196
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._323 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._324
+._326:
+ .align 2, 0
+._325:
+ .word gMain
+ .word gUnknown_Debug_083C1196
+._323:
+ add r0, r4, #0
+ bl FlagClear
+._324:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808D54C
+
+ thumb_func_start debug_sub_808D59C
+debug_sub_808D59C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._329 @ gUnknown_Debug_083C1194
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._327 @cond_branch
+ ldr r0, ._329 + 4 @ gUnknown_Debug_083C1196
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._328:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._328 @cond_branch
+._327:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._330:
+ .align 2, 0
+._329:
+ .word gUnknown_Debug_083C1194
+ .word gUnknown_Debug_083C1196
+
+ thumb_func_end debug_sub_808D59C
+
+ thumb_func_start debug_sub_808D600
+debug_sub_808D600:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._331 @ gUnknown_Debug_083C11CC
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._331 + 4 @ gMenuCallback
+ ldr r0, ._331 + 8 @ debug_sub_808D650
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._332:
+ .align 2, 0
+._331:
+ .word gUnknown_Debug_083C11CC
+ .word gMenuCallback
+ .word debug_sub_808D650+1
+
+ thumb_func_end debug_sub_808D600
+
+ thumb_func_start debug_sub_808D650
+debug_sub_808D650:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._333 @cond_branch
+ mov r0, #0x0
+ b ._336
+._333:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._335 @cond_branch
+ ldr r2, ._337 @ gMenuCallback
+ ldr r0, ._337 + 4 @ gUnknown_Debug_083C11CC
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._336
+._338:
+ .align 2, 0
+._337:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C11CC
+._335:
+ bl CloseMenu
+ mov r0, #0x1
+._336:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D650
+
+ thumb_func_start debug_sub_808D694
+debug_sub_808D694:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._339 @ gUnknown_Debug_083C1212
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r0, ._339 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._339 + 8 @ gMenuCallback
+ ldr r0, ._339 + 12 @ debug_sub_808D744
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._340:
+ .align 2, 0
+._339:
+ .word gUnknown_Debug_083C1212
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D744+1
+
+ thumb_func_end debug_sub_808D694
+
+ thumb_func_start debug_sub_808D6EC
+debug_sub_808D6EC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._341 @ gUnknown_Debug_083C1288
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._341 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._341 + 8 @ gMenuCallback
+ ldr r0, ._341 + 12 @ debug_sub_808D744
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._342:
+ .align 2, 0
+._341:
+ .word gUnknown_Debug_083C1288
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D744+1
+
+ thumb_func_end debug_sub_808D6EC
+
+ thumb_func_start debug_sub_808D744
+debug_sub_808D744:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._346 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808D790
+ ldrb r0, [r5]
+ bl debug_sub_808D7E0
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._343 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._344 @cond_branch
+._343:
+ mov r0, #0x0
+ b ._345
+._347:
+ .align 2, 0
+._346:
+ .word gDebug_0300070F
+._344:
+ bl CloseMenu
+ mov r0, #0x1
+._345:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D744
+
+ thumb_func_start debug_sub_808D790
+debug_sub_808D790:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._351 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._350 @cond_branch
+ ldr r0, ._351 + 4 @ gUnknown_Debug_083C12D2
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._349 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._350
+._352:
+ .align 2, 0
+._351:
+ .word gMain
+ .word gUnknown_Debug_083C12D2
+._349:
+ add r0, r4, #0
+ bl FlagClear
+._350:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808D790
+
+ thumb_func_start debug_sub_808D7E0
+debug_sub_808D7E0:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._355 @ gUnknown_Debug_083C12D0
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._353 @cond_branch
+ ldr r0, ._355 + 4 @ gUnknown_Debug_083C12D2
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._354:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._354 @cond_branch
+._353:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._356:
+ .align 2, 0
+._355:
+ .word gUnknown_Debug_083C12D0
+ .word gUnknown_Debug_083C12D2
+
+ thumb_func_end debug_sub_808D7E0
+
+ thumb_func_start debug_sub_808D844
+debug_sub_808D844:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1c
+ mov r3, #0x3
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._357 @ gUnknown_Debug_083C1A78
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x1
+ bl InitMenu
+ ldr r1, ._357 + 4 @ gMenuCallback
+ ldr r0, ._357 + 8 @ debug_sub_808D894
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._358:
+ .align 2, 0
+._357:
+ .word gUnknown_Debug_083C1A78
+ .word gMenuCallback
+ .word debug_sub_808D894+1
+
+ thumb_func_end debug_sub_808D844
+
+ thumb_func_start debug_sub_808D894
+debug_sub_808D894:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r3, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r3, r0
+ bne ._359 @cond_branch
+ mov r0, #0x0
+ b ._362
+._359:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r3, r0
+ beq ._361 @cond_branch
+ ldr r2, ._363 @ gMenuCallback
+ ldr r1, ._363 + 4 @ gUnknown_Debug_083C1A78
+ lsl r0, r3, #0x3
+ add r0, r0, r1
+ ldr r0, [r0, #0x4]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._362
+._364:
+ .align 2, 0
+._363:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C1A78
+._361:
+ bl CloseMenu
+ mov r0, #0x1
+._362:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D894
+
+ thumb_func_start debug_sub_808D8D8
+debug_sub_808D8D8:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._365 @ gUnknown_Debug_083C1A9C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r0, ._365 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._365 + 8 @ gMenuCallback
+ ldr r0, ._365 + 12 @ debug_sub_808D930
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._366:
+ .align 2, 0
+._365:
+ .word gUnknown_Debug_083C1A9C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808D930+1
+
+ thumb_func_end debug_sub_808D8D8
+
+ thumb_func_start debug_sub_808D930
+debug_sub_808D930:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._370 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808D97C
+ ldrb r0, [r5]
+ bl debug_sub_808D9CC
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._367 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._368 @cond_branch
+._367:
+ mov r0, #0x0
+ b ._369
+._371:
+ .align 2, 0
+._370:
+ .word gDebug_0300070F
+._368:
+ bl CloseMenu
+ mov r0, #0x1
+._369:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808D930
+
+ thumb_func_start debug_sub_808D97C
+debug_sub_808D97C:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._375 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._374 @cond_branch
+ ldr r0, ._375 + 4 @ gUnknown_Debug_083C1AAE
+ lsl r1, r2, #0x3
+ add r1, r1, r2
+ add r1, r1, r3
+ lsl r1, r1, #0x1
+ add r1, r1, r0
+ ldrh r4, [r1]
+ add r0, r4, #0
+ bl FlagGet
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._373 @cond_branch
+ add r0, r4, #0
+ bl FlagSet
+ b ._374
+._376:
+ .align 2, 0
+._375:
+ .word gMain
+ .word gUnknown_Debug_083C1AAE
+._373:
+ add r0, r4, #0
+ bl FlagClear
+._374:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808D97C
+
+ thumb_func_start debug_sub_808D9CC
+debug_sub_808D9CC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._379 @ gUnknown_Debug_083C1AAC
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._377 @cond_branch
+ ldr r0, ._379 + 4 @ gUnknown_Debug_083C1AAE
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._378:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl FlagGet
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ neg r2, r0
+ orr r2, r2, r0
+ lsr r2, r2, #0x1f
+ mov r0, #0x1c
+ add r1, r4, #0
+ bl debug_sub_808F2E0
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._378 @cond_branch
+._377:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._380:
+ .align 2, 0
+._379:
+ .word gUnknown_Debug_083C1AAC
+ .word gUnknown_Debug_083C1AAE
+
+ thumb_func_end debug_sub_808D9CC
+
+ thumb_func_start debug_sub_808DA30
+debug_sub_808DA30:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x3
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._381 @ gUnknown_Debug_083C103A
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x1
+ bl InitMenu
+ ldr r1, ._381 + 4 @ gMenuCallback
+ ldr r0, ._381 + 8 @ debug_sub_808DA80
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._382:
+ .align 2, 0
+._381:
+ .word gUnknown_Debug_083C103A
+ .word gMenuCallback
+ .word debug_sub_808DA80+1
+
+ thumb_func_end debug_sub_808DA30
+
+ thumb_func_start debug_sub_808DA80
+debug_sub_808DA80:
+ push {r4, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ bl debug_sub_808DAD4
+ bl debug_sub_808DABC
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._383 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._384 @cond_branch
+._383:
+ mov r0, #0x0
+ b ._385
+._384:
+ bl CloseMenu
+ mov r0, #0x1
+._385:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808DA80
+
+ thumb_func_start debug_sub_808DABC
+debug_sub_808DABC:
+ push {lr}
+ ldr r0, ._386 @ gSpecialVar_Result
+ ldrh r2, [r0]
+ mov r0, #0x18
+ mov r1, #0x1
+ bl debug_sub_808F31C
+ pop {r0}
+ bx r0
+._387:
+ .align 2, 0
+._386:
+ .word gSpecialVar_Result
+
+ thumb_func_end debug_sub_808DABC
+
+ thumb_func_start debug_sub_808DAD4
+debug_sub_808DAD4:
+ push {lr}
+ ldr r0, ._390 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._388 @cond_branch
+ mov r2, #0x1
+ b ._389
+._391:
+ .align 2, 0
+._390:
+ .word gMain
+._388:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._392 @cond_branch
+ ldr r2, ._393 @ 0xffff
+._389:
+ ldr r1, ._393 + 4 @ gSpecialVar_Result
+ ldrh r0, [r1]
+ add r0, r2, r0
+ strh r0, [r1]
+._392:
+ pop {r0}
+ bx r0
+._394:
+ .align 2, 0
+._393:
+ .word 0xffff
+ .word gSpecialVar_Result
+
+ thumb_func_end debug_sub_808DAD4
+
+ thumb_func_start debug_sub_808DB0C
+debug_sub_808DB0C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._395 @ gUnknown_Debug_083C3D08
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._395 + 4 @ gMenuCallback
+ ldr r0, ._395 + 8 @ debug_sub_808DB5C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._396:
+ .align 2, 0
+._395:
+ .word gUnknown_Debug_083C3D08
+ .word gMenuCallback
+ .word debug_sub_808DB5C+1
+
+ thumb_func_end debug_sub_808DB0C
+
+ thumb_func_start debug_sub_808DB5C
+debug_sub_808DB5C:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._397 @cond_branch
+ mov r0, #0x0
+ b ._400
+._397:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._399 @cond_branch
+ ldr r2, ._401 @ gMenuCallback
+ ldr r0, ._401 + 4 @ gUnknown_Debug_083C3D08
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._400
+._402:
+ .align 2, 0
+._401:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C3D08
+._399:
+ bl CloseMenu
+ mov r0, #0x1
+._400:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808DB5C
+
+ thumb_func_start debug_sub_808DBA0
+debug_sub_808DBA0:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x11
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._403 @ gUnknown_Debug_083C432C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x8
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x8
+ bl InitMenu
+ ldr r0, ._403 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._403 + 8 @ gMenuCallback
+ ldr r0, ._403 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._404:
+ .align 2, 0
+._403:
+ .word gUnknown_Debug_083C432C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DBA0
+
+ thumb_func_start debug_sub_808DBF8
+debug_sub_808DBF8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._405 @ gUnknown_Debug_083C436C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._405 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._405 + 8 @ gMenuCallback
+ ldr r0, ._405 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._406:
+ .align 2, 0
+._405:
+ .word gUnknown_Debug_083C436C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DBF8
+
+ thumb_func_start debug_sub_808DC50
+debug_sub_808DC50:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._407 @ gUnknown_Debug_083C43B4
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._407 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._407 + 8 @ gMenuCallback
+ ldr r0, ._407 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._408:
+ .align 2, 0
+._407:
+ .word gUnknown_Debug_083C43B4
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DC50
+
+ thumb_func_start debug_sub_808DCA8
+debug_sub_808DCA8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._409 @ gUnknown_Debug_083C43FC
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._409 + 4 @ gDebug_0300070F
+ mov r0, #0x3
+ strb r0, [r1]
+ ldr r1, ._409 + 8 @ gMenuCallback
+ ldr r0, ._409 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._410:
+ .align 2, 0
+._409:
+ .word gUnknown_Debug_083C43FC
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DCA8
+
+ thumb_func_start debug_sub_808DD00
+debug_sub_808DD00:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._411 @ gUnknown_Debug_083C4444
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._411 + 4 @ gDebug_0300070F
+ mov r0, #0x4
+ strb r0, [r1]
+ ldr r1, ._411 + 8 @ gMenuCallback
+ ldr r0, ._411 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._412:
+ .align 2, 0
+._411:
+ .word gUnknown_Debug_083C4444
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DD00
+
+ thumb_func_start debug_sub_808DD58
+debug_sub_808DD58:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._413 @ gUnknown_Debug_083C448C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._413 + 4 @ gDebug_0300070F
+ mov r0, #0x5
+ strb r0, [r1]
+ ldr r1, ._413 + 8 @ gMenuCallback
+ ldr r0, ._413 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._414:
+ .align 2, 0
+._413:
+ .word gUnknown_Debug_083C448C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DD58
+
+ thumb_func_start debug_sub_808DDB0
+debug_sub_808DDB0:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._415 @ gUnknown_Debug_83C44C4
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._415 + 4 @ gDebug_0300070F
+ mov r0, #0x6
+ strb r0, [r1]
+ ldr r1, ._415 + 8 @ gMenuCallback
+ ldr r0, ._415 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._416:
+ .align 2, 0
+._415:
+ .word gUnknown_Debug_83C44C4
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DDB0
+
+ thumb_func_start debug_sub_808DE08
+debug_sub_808DE08:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._417 @ gUnknown_Debug_83C44EC
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._417 + 4 @ gDebug_0300070F
+ mov r0, #0x7
+ strb r0, [r1]
+ ldr r1, ._417 + 8 @ gMenuCallback
+ ldr r0, ._417 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._418:
+ .align 2, 0
+._417:
+ .word gUnknown_Debug_83C44EC
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DE08
+
+ thumb_func_start debug_sub_808DE60
+debug_sub_808DE60:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._419 @ gUnknown_Debug_083C4534
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._419 + 4 @ gDebug_0300070F
+ mov r0, #0x8
+ strb r0, [r1]
+ ldr r1, ._419 + 8 @ gMenuCallback
+ ldr r0, ._419 + 12 @ debug_sub_808DEB8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._420:
+ .align 2, 0
+._419:
+ .word gUnknown_Debug_083C4534
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808DEB8+1
+
+ thumb_func_end debug_sub_808DE60
+
+ thumb_func_start debug_sub_808DEB8
+debug_sub_808DEB8:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._424 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808DF64
+ ldrb r0, [r5]
+ bl debug_sub_808DF04
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._421 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._422 @cond_branch
+._421:
+ mov r0, #0x0
+ b ._423
+._425:
+ .align 2, 0
+._424:
+ .word gDebug_0300070F
+._422:
+ bl CloseMenu
+ mov r0, #0x1
+._423:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808DEB8
+
+ thumb_func_start debug_sub_808DF04
+debug_sub_808DF04:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._428 @ gUnknown_Debug_083C457C
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._426 @cond_branch
+ ldr r0, ._428 + 4 @ gUnknown_Debug_083C4586
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._427:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl VarGet
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ mov r0, #0x18
+ add r1, r4, #0
+ bl debug_sub_808F31C
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._427 @cond_branch
+._426:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._429:
+ .align 2, 0
+._428:
+ .word gUnknown_Debug_083C457C
+ .word gUnknown_Debug_083C4586
+
+ thumb_func_end debug_sub_808DF04
+
+ thumb_func_start debug_sub_808DF64
+debug_sub_808DF64:
+ push {r4, r5, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._432 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._430 @cond_branch
+ mov r5, #0x1
+ b ._431
+._433:
+ .align 2, 0
+._432:
+ .word gMain
+._430:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._434 @cond_branch
+ ldr r5, ._435 @ 0xffff
+._431:
+ ldr r1, ._435 + 4 @ gUnknown_Debug_083C4586
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ add r0, r0, r3
+ lsl r0, r0, #0x1
+ add r0, r0, r1
+ ldrh r4, [r0]
+ add r0, r4, #0
+ bl VarGet
+ add r1, r0, #0
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r4, #0
+ bl VarSet
+._434:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._436:
+ .align 2, 0
+._435:
+ .word 0xffff
+ .word gUnknown_Debug_083C4586
+
+ thumb_func_end debug_sub_808DF64
+
+ thumb_func_start debug_sub_808DFC0
+debug_sub_808DFC0:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._437 @ gUnknown_Debug_083C377C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._437 + 4 @ gMenuCallback
+ ldr r0, ._437 + 8 @ debug_sub_808E010
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._438:
+ .align 2, 0
+._437:
+ .word gUnknown_Debug_083C377C
+ .word gMenuCallback
+ .word debug_sub_808E010+1
+
+ thumb_func_end debug_sub_808DFC0
+
+ thumb_func_start debug_sub_808E010
+debug_sub_808E010:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._439 @cond_branch
+ mov r0, #0x0
+ b ._442
+._439:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._441 @cond_branch
+ ldr r2, ._443 @ gMenuCallback
+ ldr r0, ._443 + 4 @ gUnknown_Debug_083C377C
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._442
+._444:
+ .align 2, 0
+._443:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C377C
+._441:
+ bl CloseMenu
+ mov r0, #0x1
+._442:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E010
+
+ thumb_func_start debug_sub_808E054
+debug_sub_808E054:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._445 @ gUnknown_Debug_083C3AA0
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r0, ._445 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._445 + 8 @ gMenuCallback
+ ldr r0, ._445 + 12 @ debug_sub_808E264
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._446:
+ .align 2, 0
+._445:
+ .word gUnknown_Debug_083C3AA0
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E264+1
+
+ thumb_func_end debug_sub_808E054
+
+ thumb_func_start debug_sub_808E0AC
+debug_sub_808E0AC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._447 @ gUnknown_Debug_83C3AE0
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x5
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x5
+ bl InitMenu
+ ldr r1, ._447 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._447 + 8 @ gMenuCallback
+ ldr r0, ._447 + 12 @ debug_sub_808E264
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._448:
+ .align 2, 0
+._447:
+ .word gUnknown_Debug_83C3AE0
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E264+1
+
+ thumb_func_end debug_sub_808E0AC
+
+ thumb_func_start debug_sub_808E104
+debug_sub_808E104:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._449 @ gUnknown_Debug_83C3B28
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._449 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._449 + 8 @ gMenuCallback
+ ldr r0, ._449 + 12 @ debug_sub_808E264
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._450:
+ .align 2, 0
+._449:
+ .word gUnknown_Debug_83C3B28
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E264+1
+
+ thumb_func_end debug_sub_808E104
+
+ thumb_func_start debug_sub_808E15C
+debug_sub_808E15C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._451 @ gUnknown_Debug_83C3B70
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._451 + 4 @ gDebug_0300070F
+ mov r0, #0x3
+ strb r0, [r1]
+ ldr r1, ._451 + 8 @ gMenuCallback
+ ldr r0, ._451 + 12 @ debug_sub_808E264
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._452:
+ .align 2, 0
+._451:
+ .word gUnknown_Debug_83C3B70
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E264+1
+
+ thumb_func_end debug_sub_808E15C
+
+ thumb_func_start debug_sub_808E1B4
+debug_sub_808E1B4:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._453 @ gUnknown_Debug_83C3BB8
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._453 + 4 @ gDebug_0300070F
+ mov r0, #0x4
+ strb r0, [r1]
+ ldr r1, ._453 + 8 @ gMenuCallback
+ ldr r0, ._453 + 12 @ debug_sub_808E264
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._454:
+ .align 2, 0
+._453:
+ .word gUnknown_Debug_83C3BB8
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E264+1
+
+ thumb_func_end debug_sub_808E1B4
+
+ thumb_func_start debug_sub_808E20C
+debug_sub_808E20C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._455 @ gUnknown_Debug_83C3C00
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._455 + 4 @ gDebug_0300070F
+ mov r0, #0x5
+ strb r0, [r1]
+ ldr r1, ._455 + 8 @ gMenuCallback
+ ldr r0, ._455 + 12 @ debug_sub_808E264
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._456:
+ .align 2, 0
+._455:
+ .word gUnknown_Debug_83C3C00
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E264+1
+
+ thumb_func_end debug_sub_808E20C
+
+ thumb_func_start debug_sub_808E264
+debug_sub_808E264:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._460 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808E310
+ ldrb r0, [r5]
+ bl debug_sub_808E2B0
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._457 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._458 @cond_branch
+._457:
+ mov r0, #0x0
+ b ._459
+._461:
+ .align 2, 0
+._460:
+ .word gDebug_0300070F
+._458:
+ bl CloseMenu
+ mov r0, #0x1
+._459:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E264
+
+ thumb_func_start debug_sub_808E2B0
+debug_sub_808E2B0:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._464 @ gUnknown_Debug_083C3C48
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._462 @cond_branch
+ ldr r0, ._464 + 4 @ gUnknown_Debug_83C3C4E
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._463:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl VarGet
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ mov r0, #0x18
+ add r1, r4, #0
+ bl debug_sub_808F31C
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._463 @cond_branch
+._462:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._465:
+ .align 2, 0
+._464:
+ .word gUnknown_Debug_083C3C48
+ .word gUnknown_Debug_83C3C4E
+
+ thumb_func_end debug_sub_808E2B0
+
+ thumb_func_start debug_sub_808E310
+debug_sub_808E310:
+ push {r4, r5, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._468 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._466 @cond_branch
+ mov r5, #0x1
+ b ._467
+._469:
+ .align 2, 0
+._468:
+ .word gMain
+._466:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._470 @cond_branch
+ ldr r5, ._471 @ 0xffff
+._467:
+ ldr r1, ._471 + 4 @ gUnknown_Debug_83C3C4E
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ add r0, r0, r3
+ lsl r0, r0, #0x1
+ add r0, r0, r1
+ ldrh r4, [r0]
+ add r0, r4, #0
+ bl VarGet
+ add r1, r0, #0
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r4, #0
+ bl VarSet
+._470:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._472:
+ .align 2, 0
+._471:
+ .word 0xffff
+ .word gUnknown_Debug_83C3C4E
+
+ thumb_func_end debug_sub_808E310
+
+ thumb_func_start debug_sub_808E36C
+debug_sub_808E36C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._473 @ gUnknown_Debug_083C32AC
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x5
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x5
+ bl InitMenu
+ ldr r1, ._473 + 4 @ gMenuCallback
+ ldr r0, ._473 + 8 @ debug_sub_808E3BC
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._474:
+ .align 2, 0
+._473:
+ .word gUnknown_Debug_083C32AC
+ .word gMenuCallback
+ .word debug_sub_808E3BC+1
+
+ thumb_func_end debug_sub_808E36C
+
+ thumb_func_start debug_sub_808E3BC
+debug_sub_808E3BC:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._475 @cond_branch
+ mov r0, #0x0
+ b ._478
+._475:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._477 @cond_branch
+ ldr r2, ._479 @ gMenuCallback
+ ldr r0, ._479 + 4 @ gUnknown_Debug_083C32AC
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._478
+._480:
+ .align 2, 0
+._479:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C32AC
+._477:
+ bl CloseMenu
+ mov r0, #0x1
+._478:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E3BC
+
+ thumb_func_start debug_sub_808E400
+debug_sub_808E400:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._481 @ gUnknown_Debug_083C347C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x3
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x3
+ bl InitMenu
+ ldr r0, ._481 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._481 + 8 @ gMenuCallback
+ ldr r0, ._481 + 12 @ debug_sub_808E5B8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._482:
+ .align 2, 0
+._481:
+ .word gUnknown_Debug_083C347C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E5B8+1
+
+ thumb_func_end debug_sub_808E400
+
+ thumb_func_start debug_sub_808E458
+debug_sub_808E458:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._483 @ gUnknown_Debug_083C3494
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._483 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._483 + 8 @ gMenuCallback
+ ldr r0, ._483 + 12 @ debug_sub_808E5B8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._484:
+ .align 2, 0
+._483:
+ .word gUnknown_Debug_083C3494
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E5B8+1
+
+ thumb_func_end debug_sub_808E458
+
+ thumb_func_start debug_sub_808E4B0
+debug_sub_808E4B0:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._485 @ gUnknown_Debug_083C34A4
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x6
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x6
+ bl InitMenu
+ ldr r1, ._485 + 4 @ gDebug_0300070F
+ mov r0, #0x2
+ strb r0, [r1]
+ ldr r1, ._485 + 8 @ gMenuCallback
+ ldr r0, ._485 + 12 @ debug_sub_808E5B8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._486:
+ .align 2, 0
+._485:
+ .word gUnknown_Debug_083C34A4
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E5B8+1
+
+ thumb_func_end debug_sub_808E4B0
+
+ thumb_func_start debug_sub_808E508
+debug_sub_808E508:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._487 @ gUnknown_Debug_083C34D4
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r1, ._487 + 4 @ gDebug_0300070F
+ mov r0, #0x3
+ strb r0, [r1]
+ ldr r1, ._487 + 8 @ gMenuCallback
+ ldr r0, ._487 + 12 @ debug_sub_808E5B8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._488:
+ .align 2, 0
+._487:
+ .word gUnknown_Debug_083C34D4
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E5B8+1
+
+ thumb_func_end debug_sub_808E508
+
+ thumb_func_start debug_sub_808E560
+debug_sub_808E560:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._489 @ gUnknown_Debug_083C351C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x5
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x5
+ bl InitMenu
+ ldr r1, ._489 + 4 @ gDebug_0300070F
+ mov r0, #0x4
+ strb r0, [r1]
+ ldr r1, ._489 + 8 @ gMenuCallback
+ ldr r0, ._489 + 12 @ debug_sub_808E5B8
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._490:
+ .align 2, 0
+._489:
+ .word gUnknown_Debug_083C351C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E5B8+1
+
+ thumb_func_end debug_sub_808E560
+
+ thumb_func_start debug_sub_808E5B8
+debug_sub_808E5B8:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._494 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808E604
+ ldrb r0, [r5]
+ bl debug_sub_808E660
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._491 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._492 @cond_branch
+._491:
+ mov r0, #0x0
+ b ._493
+._495:
+ .align 2, 0
+._494:
+ .word gDebug_0300070F
+._492:
+ bl CloseMenu
+ mov r0, #0x1
+._493:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E5B8
+
+ thumb_func_start debug_sub_808E604
+debug_sub_808E604:
+ push {r4, r5, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._498 @ gMain
+ ldrh r1, [r0, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._496 @cond_branch
+ mov r5, #0x1
+ b ._497
+._499:
+ .align 2, 0
+._498:
+ .word gMain
+._496:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._500 @cond_branch
+ ldr r5, ._501 @ 0xffff
+._497:
+ ldr r1, ._501 + 4 @ gUnknown_Debug_083C354A
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ add r0, r0, r3
+ lsl r0, r0, #0x1
+ add r0, r0, r1
+ ldrh r4, [r0]
+ add r0, r4, #0
+ bl VarGet
+ add r1, r0, #0
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r4, #0
+ bl VarSet
+._500:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._502:
+ .align 2, 0
+._501:
+ .word 0xffff
+ .word gUnknown_Debug_083C354A
+
+ thumb_func_end debug_sub_808E604
+
+ thumb_func_start debug_sub_808E660
+debug_sub_808E660:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._505 @ gUnknown_Debug_083C3544
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._503 @cond_branch
+ ldr r0, ._505 + 4 @ gUnknown_Debug_083C354A
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._504:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl VarGet
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ mov r0, #0x18
+ add r1, r4, #0
+ bl debug_sub_808F31C
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._504 @cond_branch
+._503:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._506:
+ .align 2, 0
+._505:
+ .word gUnknown_Debug_083C3544
+ .word gUnknown_Debug_083C354A
+
+ thumb_func_end debug_sub_808E660
+
+ thumb_func_start debug_sub_808E6C0
+debug_sub_808E6C0:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._507 @ gUnknown_Debug_083C4644
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._507 + 4 @ gMenuCallback
+ ldr r0, ._507 + 8 @ debug_sub_808E710
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._508:
+ .align 2, 0
+._507:
+ .word gUnknown_Debug_083C4644
+ .word gMenuCallback
+ .word debug_sub_808E710+1
+
+ thumb_func_end debug_sub_808E6C0
+
+ thumb_func_start debug_sub_808E710
+debug_sub_808E710:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._509 @cond_branch
+ mov r0, #0x0
+ b ._512
+._509:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._511 @cond_branch
+ ldr r2, ._513 @ gMenuCallback
+ ldr r0, ._513 + 4 @ gUnknown_Debug_083C4644
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._512
+._514:
+ .align 2, 0
+._513:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C4644
+._511:
+ bl CloseMenu
+ mov r0, #0x1
+._512:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E710
+
+ thumb_func_start debug_sub_808E754
+debug_sub_808E754:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._515 @ gUnknown_Debug_083C470C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r0, ._515 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._515 + 8 @ gMenuCallback
+ ldr r0, ._515 + 12 @ debug_sub_808E804
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._516:
+ .align 2, 0
+._515:
+ .word gUnknown_Debug_083C470C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E804+1
+
+ thumb_func_end debug_sub_808E754
+
+ thumb_func_start debug_sub_808E7AC
+debug_sub_808E7AC:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._517 @ gUnknown_Debug_083C4754C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._517 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._517 + 8 @ gMenuCallback
+ ldr r0, ._517 + 12 @ debug_sub_808E804
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._518:
+ .align 2, 0
+._517:
+ .word gUnknown_Debug_083C4754C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808E804+1
+
+ thumb_func_end debug_sub_808E7AC
+
+ thumb_func_start debug_sub_808E804
+debug_sub_808E804:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._522 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808E850
+ ldrb r0, [r5]
+ bl debug_sub_808E8AC
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._519 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._520 @cond_branch
+._519:
+ mov r0, #0x0
+ b ._521
+._523:
+ .align 2, 0
+._522:
+ .word gDebug_0300070F
+._520:
+ bl CloseMenu
+ mov r0, #0x1
+._521:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E804
+
+ thumb_func_start debug_sub_808E850
+debug_sub_808E850:
+ push {r4, r5, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._526 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._524 @cond_branch
+ mov r5, #0x1
+ b ._525
+._527:
+ .align 2, 0
+._526:
+ .word gMain
+._524:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._528 @cond_branch
+ ldr r5, ._529 @ 0xffff
+._525:
+ ldr r1, ._529 + 4 @ gUnknown_Debug_083C478E
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ add r0, r0, r3
+ lsl r0, r0, #0x1
+ add r0, r0, r1
+ ldrh r4, [r0]
+ add r0, r4, #0
+ bl VarGet
+ add r1, r0, #0
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r4, #0
+ bl VarSet
+._528:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._530:
+ .align 2, 0
+._529:
+ .word 0xffff
+ .word gUnknown_Debug_083C478E
+
+ thumb_func_end debug_sub_808E850
+
+ thumb_func_start debug_sub_808E8AC
+debug_sub_808E8AC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._533 @ gUnknown_Debug_083C478C
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._531 @cond_branch
+ ldr r0, ._533 + 4 @ gUnknown_Debug_083C478E
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._532:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl VarGet
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ mov r0, #0x18
+ add r1, r4, #0
+ bl debug_sub_808F31C
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._532 @cond_branch
+._531:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._534:
+ .align 2, 0
+._533:
+ .word gUnknown_Debug_083C478C
+ .word gUnknown_Debug_083C478E
+
+ thumb_func_end debug_sub_808E8AC
+
+ thumb_func_start debug_sub_808E90C
+debug_sub_808E90C:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x18
+ mov r3, #0x5
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._535 @ gUnknown_Debug_083C35C4
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x2
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x2
+ bl InitMenu
+ ldr r1, ._535 + 4 @ gMenuCallback
+ ldr r0, ._535 + 8 @ debug_sub_808E95C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._536:
+ .align 2, 0
+._535:
+ .word gUnknown_Debug_083C35C4
+ .word gMenuCallback
+ .word debug_sub_808E95C+1
+
+ thumb_func_end debug_sub_808E90C
+
+ thumb_func_start debug_sub_808E95C
+debug_sub_808E95C:
+ push {lr}
+ bl Menu_ProcessInput
+ lsl r0, r0, #0x18
+ asr r1, r0, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r1, r0
+ bne ._537 @cond_branch
+ mov r0, #0x0
+ b ._540
+._537:
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._539 @cond_branch
+ ldr r2, ._541 @ gMenuCallback
+ ldr r0, ._541 + 4 @ gUnknown_Debug_083C35C4
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ mov r0, #0x0
+ b ._540
+._542:
+ .align 2, 0
+._541:
+ .word gMenuCallback
+ .word gUnknown_Debug_083C35C4
+._539:
+ bl CloseMenu
+ mov r0, #0x1
+._540:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808E95C
+
+ thumb_func_start debug_sub_808E9A0
+debug_sub_808E9A0:
+ push {r4, lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._543 @ gUnknown_Debug_083C369C
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x9
+ bl Menu_PrintItems
+ mov r4, #0x0
+ str r4, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x9
+ bl InitMenu
+ ldr r0, ._543 + 4 @ gDebug_0300070F
+ strb r4, [r0]
+ ldr r1, ._543 + 8 @ gMenuCallback
+ ldr r0, ._543 + 12 @ debug_sub_808EA50
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+._544:
+ .align 2, 0
+._543:
+ .word gUnknown_Debug_083C369C
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808EA50+1
+
+ thumb_func_end debug_sub_808E9A0
+
+ thumb_func_start debug_sub_808E9F8
+debug_sub_808E9F8:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r3, ._545 @ gUnknown_Debug_083C36E4
+ mov r0, #0x2
+ mov r1, #0x1
+ mov r2, #0x7
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0x7
+ bl InitMenu
+ ldr r1, ._545 + 4 @ gDebug_0300070F
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r1, ._545 + 8 @ gMenuCallback
+ ldr r0, ._545 + 12 @ debug_sub_808EA50
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._546:
+ .align 2, 0
+._545:
+ .word gUnknown_Debug_083C36E4
+ .word gDebug_0300070F
+ .word gMenuCallback
+ .word debug_sub_808EA50+1
+
+ thumb_func_end debug_sub_808E9F8
+
+ thumb_func_start debug_sub_808EA50
+debug_sub_808EA50:
+ push {r4, r5, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ add r1, r0, #0
+ ldr r5, ._550 @ gDebug_0300070F
+ ldrb r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl debug_sub_808EAFC
+ ldrb r0, [r5]
+ bl debug_sub_808EA9C
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._547 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._548 @cond_branch
+._547:
+ mov r0, #0x0
+ b ._549
+._551:
+ .align 2, 0
+._550:
+ .word gDebug_0300070F
+._548:
+ bl CloseMenu
+ mov r0, #0x1
+._549:
+ pop {r4, r5}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808EA50
+
+ thumb_func_start debug_sub_808EA9C
+debug_sub_808EA9C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r5, #0x0
+ ldr r0, ._554 @ gUnknown_Debug_083C371C
+ add r0, r1, r0
+ ldrb r2, [r0]
+ cmp r5, r2
+ bcs ._552 @cond_branch
+ ldr r0, ._554 + 4 @ gUnknown_Debug_083C371E
+ mov r8, r0
+ lsl r0, r1, #0x3
+ add r0, r0, r1
+ lsl r7, r0, #0x1
+ add r6, r2, #0
+._553:
+ lsl r0, r5, #0x1
+ add r4, r0, #1
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ add r0, r0, r7
+ add r0, r0, r8
+ ldrh r0, [r0]
+ bl VarGet
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ mov r0, #0x18
+ add r1, r4, #0
+ bl debug_sub_808F31C
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ bcc ._553 @cond_branch
+._552:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._555:
+ .align 2, 0
+._554:
+ .word gUnknown_Debug_083C371C
+ .word gUnknown_Debug_083C371E
+
+ thumb_func_end debug_sub_808EA9C
+
+ thumb_func_start debug_sub_808EAFC
+debug_sub_808EAFC:
+ push {r4, r5, lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ ldr r0, ._558 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._556 @cond_branch
+ mov r5, #0x1
+ b ._557
+._559:
+ .align 2, 0
+._558:
+ .word gMain
+._556:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._560 @cond_branch
+ ldr r5, ._561 @ 0xffff
+._557:
+ ldr r1, ._561 + 4 @ gUnknown_Debug_083C371E
+ lsl r0, r2, #0x3
+ add r0, r0, r2
+ add r0, r0, r3
+ lsl r0, r0, #0x1
+ add r0, r0, r1
+ ldrh r4, [r0]
+ add r0, r4, #0
+ bl VarGet
+ add r1, r0, #0
+ add r1, r5, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r4, #0
+ bl VarSet
+._560:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._562:
+ .align 2, 0
+._561:
+ .word 0xffff
+ .word gUnknown_Debug_083C371E
+
+ thumb_func_end debug_sub_808EAFC
+
+ thumb_func_start debug_sub_808EB58
+debug_sub_808EB58:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xc
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._563 @ gUnknown_Debug_083C47B2
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r3, ._563 + 4 @ gUnknown_Debug_083C47F0
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0x8
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x8
+ bl InitMenu
+ ldr r1, ._563 + 8 @ gMenuCallback
+ ldr r0, ._563 + 12 @ debug_sub_808EC10
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._564:
+ .align 2, 0
+._563:
+ .word gUnknown_Debug_083C47B2
+ .word gUnknown_Debug_083C47F0
+ .word gMenuCallback
+ .word debug_sub_808EC10+1
+
+ thumb_func_end debug_sub_808EB58
+
+ thumb_func_start debug_sub_808EBB4
+debug_sub_808EBB4:
+ push {lr}
+ add sp, sp, #0xfffffff8
+ bl Menu_EraseScreen
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xd
+ mov r3, #0xd
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._565 @ gUnknown_Debug_083C4830
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r3, ._565 + 4 @ gUnknown_Debug_083C4888
+ mov r0, #0x2
+ mov r1, #0x3
+ mov r2, #0x5
+ bl Menu_PrintItems
+ mov r0, #0x0
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #0x4]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x5
+ bl InitMenu
+ ldr r1, ._565 + 8 @ gMenuCallback
+ ldr r0, ._565 + 12 @ debug_sub_808EC5C
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x8
+ pop {r1}
+ bx r1
+._566:
+ .align 2, 0
+._565:
+ .word gUnknown_Debug_083C4830
+ .word gUnknown_Debug_083C4888
+ .word gMenuCallback
+ .word debug_sub_808EC5C+1
+
+ thumb_func_end debug_sub_808EBB4
+
+ thumb_func_start debug_sub_808EC10
+debug_sub_808EC10:
+ push {r4, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._568 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._568 @cond_branch
+ ldr r1, ._570 @ gSaveBlock1
+ lsl r0, r2, #0x18
+ asr r0, r0, #0x18
+ ldr r2, ._570 + 4 @ 0x13c8
+ add r1, r1, r2
+ strh r0, [r1]
+ bl CloseMenu
+ mov r0, #0x1
+ b ._569
+._571:
+ .align 2, 0
+._570:
+ .word gSaveBlock1
+ .word 0x13c8
+._568:
+ mov r0, #0x0
+._569:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808EC10
+
+ thumb_func_start debug_sub_808EC5C
+debug_sub_808EC5C:
+ push {r4, lr}
+ bl Menu_ProcessInput
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl Menu_GetCursorPos
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsl r4, r4, #0x18
+ asr r4, r4, #0x18
+ mov r0, #0x2
+ neg r0, r0
+ cmp r4, r0
+ beq ._573 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ cmp r4, r0
+ beq ._573 @cond_branch
+ ldr r0, ._575 @ 0x40a7
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x8
+ lsr r1, r1, #0x10
+ bl VarSet
+ bl CloseMenu
+ mov r0, #0x1
+ b ._574
+._576:
+ .align 2, 0
+._575:
+ .word 0x40a7
+._573:
+ mov r0, #0x0
+._574:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_808EC5C
+
+ thumb_func_start debug_sub_808ECA4
+debug_sub_808ECA4:
+ push {lr}
+ add sp, sp, #0xfffffffc
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r1, ._577 @ gMenuCallback
+ ldr r0, ._577 + 4 @ debug_sub_808ECD0
+ str r0, [r1]
+ mov r0, #0x0
+ add sp, sp, #0x4
+ pop {r1}
+ bx r1
+._578:
+ .align 2, 0
+._577:
+ .word gMenuCallback
+ .word debug_sub_808ECD0+1
+
+ thumb_func_end debug_sub_808ECA4
+
+ thumb_func_start debug_sub_808ECD0
+debug_sub_808ECD0:
+ push {lr}
+ bl UpdatePaletteFade
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._579 @cond_branch
+ mov r0, #0x0
+ b ._580
+._579:
+ bl CloseMenu
+ mov r0, #0x2
+ bl debug_sub_808F168
+ ldr r0, ._581 @ CB2_ContestPainting
+ bl SetMainCallback2
+ ldr r1, ._581 + 4 @ gMain
+ ldr r0, ._581 + 8 @ debug_sub_808B868
+ str r0, [r1, #0x8]
+ mov r0, #0x1
+._580:
+ pop {r1}
+ bx r1
+._582:
+ .align 2, 0
+._581:
+ .word CB2_ContestPainting+1
+ .word gMain
+ .word debug_sub_808B868+1
+
+ thumb_func_end debug_sub_808ECD0
+
+ thumb_func_start TomomichiDebugMenu_Config
+TomomichiDebugMenu_Config:
+ mov r0, #0x0
+ bx lr
+
+ thumb_func_end TomomichiDebugMenu_Config
+
+ thumb_func_start debug_sub_808ED0C
+debug_sub_808ED0C:
+ push {lr}
+ ldr r2, ._590 @ gMain
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._584 @cond_branch
+ ldr r1, ._590 + 4 @ gDebug_03000700
+ ldrh r0, [r1]
+ cmp r0, #0x1
+ beq ._584 @cond_branch
+ sub r0, r0, #0x1
+ strh r0, [r1]
+._584:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._586 @cond_branch
+ ldr r3, ._590 + 4 @ gDebug_03000700
+ ldrh r1, [r3]
+ ldr r0, ._590 + 8 @ 0x19b
+ cmp r1, r0
+ beq ._586 @cond_branch
+ add r0, r1, #1
+ strh r0, [r3]
+._586:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._587 @cond_branch
+ ldr r1, ._590 + 4 @ gDebug_03000700
+ ldrh r0, [r1]
+ cmp r0, #0xa
+ bls ._588 @cond_branch
+ sub r0, r0, #0xa
+ b ._589
+._591:
+ .align 2, 0
+._590:
+ .word gMain
+ .word gDebug_03000700
+ .word 0x19b
+._588:
+ mov r0, #0x1
+._589:
+ strh r0, [r1]
+._587:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._592 @cond_branch
+ ldr r2, ._595 @ gDebug_03000700
+ ldrh r1, [r2]
+ ldr r0, ._595 + 4 @ 0x191
+ cmp r1, r0
+ bhi ._593 @cond_branch
+ add r0, r1, #0
+ add r0, r0, #0xa
+ b ._594
+._596:
+ .align 2, 0
+._595:
+ .word gDebug_03000700
+ .word 0x191
+._593:
+ ldr r1, ._597 @ 0x19b
+ add r0, r1, #0
+._594:
+ strh r0, [r2]
+._592:
+ pop {r0}
+ bx r0
+._598:
+ .align 2, 0
+._597:
+ .word 0x19b
+
+ thumb_func_end debug_sub_808ED0C
+
+ thumb_func_start debug_sub_808ED9C
+debug_sub_808ED9C:
+ push {lr}
+ ldr r2, ._606 @ gMain
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._600 @cond_branch
+ ldr r1, ._606 + 4 @ gDebug_03000708
+ ldr r0, [r1]
+ cmp r0, #0
+ beq ._600 @cond_branch
+ sub r0, r0, #0x1
+ str r0, [r1]
+._600:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._602 @cond_branch
+ ldr r3, ._606 + 4 @ gDebug_03000708
+ ldr r1, [r3]
+ mov r0, #0x1
+ neg r0, r0
+ cmp r1, r0
+ beq ._602 @cond_branch
+ add r0, r1, #1
+ str r0, [r3]
+._602:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._603 @cond_branch
+ ldr r1, ._606 + 4 @ gDebug_03000708
+ ldr r0, [r1]
+ cmp r0, #0xf
+ bls ._604 @cond_branch
+ sub r0, r0, #0x10
+ b ._605
+._607:
+ .align 2, 0
+._606:
+ .word gMain
+ .word gDebug_03000708
+._604:
+ mov r0, #0x0
+._605:
+ str r0, [r1]
+._603:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._608 @cond_branch
+ ldr r3, ._611 @ gDebug_03000708
+ ldr r1, [r3]
+ mov r0, #0x11
+ neg r0, r0
+ cmp r1, r0
+ bhi ._609 @cond_branch
+ add r0, r1, #0
+ add r0, r0, #0x10
+ b ._610
+._612:
+ .align 2, 0
+._611:
+ .word gDebug_03000708
+._609:
+ mov r0, #0x1
+ neg r0, r0
+._610:
+ str r0, [r3]
+._608:
+ ldrh r2, [r2, #0x2e]
+ mov r1, #0xc0
+ lsl r1, r1, #0x2
+ add r0, r1, #0
+ and r0, r0, r2
+ cmp r0, r1
+ bne ._613 @cond_branch
+ ldr r1, ._614 @ gDebug_03000708
+ mov r0, #0x1
+ neg r0, r0
+ str r0, [r1]
+._613:
+ pop {r0}
+ bx r0
+._615:
+ .align 2, 0
+._614:
+ .word gDebug_03000708
+
+ thumb_func_end debug_sub_808ED9C
+
+ thumb_func_start debug_sub_808EE3C
+debug_sub_808EE3C:
+ push {lr}
+ ldr r2, ._622 @ gMain
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._617 @cond_branch
+ ldr r1, ._622 + 4 @ gDebug_0300070C
+ ldrb r0, [r1]
+ cmp r0, #0x1
+ beq ._617 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+._617:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._619 @cond_branch
+ ldr r1, ._622 + 4 @ gDebug_0300070C
+ ldrb r0, [r1]
+ cmp r0, #0x5
+ beq ._619 @cond_branch
+ add r0, r0, #0x1
+ strb r0, [r1]
+._619:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._620 @cond_branch
+ ldr r1, ._622 + 4 @ gDebug_0300070C
+ mov r0, #0x1
+ strb r0, [r1]
+._620:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._621 @cond_branch
+ ldr r1, ._622 + 4 @ gDebug_0300070C
+ mov r0, #0x5
+ strb r0, [r1]
+._621:
+ pop {r0}
+ bx r0
+._623:
+ .align 2, 0
+._622:
+ .word gMain
+ .word gDebug_0300070C
+
+ thumb_func_end debug_sub_808EE3C
+
+ thumb_func_start debug_sub_808EE9C
+debug_sub_808EE9C:
+ push {lr}
+ ldr r2, ._631 @ gMain
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._625 @cond_branch
+ ldr r1, ._631 + 4 @ gDebug_0300070D
+ ldrb r0, [r1]
+ cmp r0, #0x1
+ beq ._625 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+._625:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._627 @cond_branch
+ ldr r1, ._631 + 4 @ gDebug_0300070D
+ ldrb r0, [r1]
+ cmp r0, #0xf
+ beq ._627 @cond_branch
+ add r0, r0, #0x1
+ strb r0, [r1]
+._627:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._628 @cond_branch
+ ldr r1, ._631 + 4 @ gDebug_0300070D
+ ldrb r0, [r1]
+ cmp r0, #0xa
+ bls ._629 @cond_branch
+ sub r0, r0, #0xa
+ b ._630
+._632:
+ .align 2, 0
+._631:
+ .word gMain
+ .word gDebug_0300070D
+._629:
+ mov r0, #0x0
+._630:
+ strb r0, [r1]
+._628:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._633 @cond_branch
+ ldr r1, ._636 @ gDebug_0300070D
+ ldrb r0, [r1]
+ cmp r0, #0x5
+ bhi ._634 @cond_branch
+ add r0, r0, #0xa
+ b ._635
+._637:
+ .align 2, 0
+._636:
+ .word gDebug_0300070D
+._634:
+ mov r0, #0xf
+._635:
+ strb r0, [r1]
+._633:
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808EE9C
+
+ thumb_func_start debug_sub_808EF14
+debug_sub_808EF14:
+ push {lr}
+ ldr r2, ._645 @ gMain
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._639 @cond_branch
+ ldr r1, ._645 + 4 @ gDebug_0300070E
+ ldrb r0, [r1]
+ cmp r0, #0x1
+ beq ._639 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+._639:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._641 @cond_branch
+ ldr r1, ._645 + 4 @ gDebug_0300070E
+ ldrb r0, [r1]
+ cmp r0, #0xf
+ beq ._641 @cond_branch
+ add r0, r0, #0x1
+ strb r0, [r1]
+._641:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._642 @cond_branch
+ ldr r1, ._645 + 4 @ gDebug_0300070E
+ ldrb r0, [r1]
+ cmp r0, #0xa
+ bls ._643 @cond_branch
+ sub r0, r0, #0xa
+ b ._644
+._646:
+ .align 2, 0
+._645:
+ .word gMain
+ .word gDebug_0300070E
+._643:
+ mov r0, #0x0
+._644:
+ strb r0, [r1]
+._642:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._647 @cond_branch
+ ldr r1, ._650 @ gDebug_0300070E
+ ldrb r0, [r1]
+ cmp r0, #0x5
+ bhi ._648 @cond_branch
+ add r0, r0, #0xa
+ b ._649
+._651:
+ .align 2, 0
+._650:
+ .word gDebug_0300070E
+._648:
+ mov r0, #0xf
+._649:
+ strb r0, [r1]
+._647:
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_808EF14
+
+ thumb_func_start debug_sub_808EF8C
+debug_sub_808EF8C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #0x2
+ bgt ._653 @cond_branch
+ cmp r6, #0
+ blt ._653 @cond_branch
+ mov r3, #0x0
+ ldr r0, ._656 @ gDebug_03000708
+ mov r8, r0
+ ldr r4, ._656 + 4 @ gDebug_03000710
+ mov r7, #0x7
+ mov r5, #0xf
+._658:
+ sub r0, r7, r3
+ lsl r0, r0, #0x2
+ mov r1, r8
+ ldr r2, [r1]
+ LSR r2, r0
+ and r2, r2, r5
+ cmp r2, #0x9
+ bhi ._654 @cond_branch
+ add r1, r3, r4
+ add r0, r2, #0
+ add r0, r0, #0xa1
+ b ._655
+._657:
+ .align 2, 0
+._656:
+ .word gDebug_03000708
+ .word gDebug_03000710
+._654:
+ add r1, r3, r4
+ add r0, r2, #0
+ sub r0, r0, #0x4f
+._655:
+ strb r0, [r1]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x7
+ bls ._658 @cond_branch
+ ldr r0, ._666 @ gDebug_03000710
+ mov r1, #0xff
+ strb r1, [r0, #0x8]
+ mov r1, #0xc
+ mov r2, #0x5
+ bl Menu_PrintText
+._653:
+ mov r3, #0x0
+ ldr r7, ._666 @ gDebug_03000710
+ ldr r5, ._666 + 4 @ gDebug_03000700
+ ldr r2, ._666 + 8 @ gSpeciesNames
+ mov r8, r2
+ add r4, r7, #0
+ mov r2, #0x0
+._659:
+ add r1, r3, #1
+ add r0, r1, r4
+ strb r2, [r0]
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ cmp r3, #0x9
+ bls ._659 @cond_branch
+ mov r3, #0x0
+ ldrh r2, [r5]
+ mov r0, #0xb
+ add r1, r2, #0
+ mul r1, r1, r0
+ mov r2, r8
+ add r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._661 @cond_branch
+ ldr r0, ._666 @ gDebug_03000710
+ mov ip, r0
+ mov r5, r8
+ add r4, r1, #0
+._662:
+ add r1, r3, #1
+ mov r0, ip
+ add r2, r1, r0
+ add r0, r3, r4
+ add r0, r0, r5
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ add r0, r3, r4
+ add r0, r0, r5
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._661 @cond_branch
+ cmp r3, #0x9
+ bls ._662 @cond_branch
+._661:
+ mov r0, #0xb1
+ strb r0, [r7]
+ mov r0, #0xb2
+ strb r0, [r7, #0xb]
+ mov r0, #0xff
+ strb r0, [r7, #0xc]
+ cmp r6, #0x2
+ bgt ._664 @cond_branch
+ cmp r6, #0
+ blt ._664 @cond_branch
+ add r0, r7, #0
+ mov r1, #0x8
+ mov r2, #0x1
+ bl Menu_PrintText
+ b ._665
+._667:
+ .align 2, 0
+._666:
+ .word gDebug_03000710
+ .word gDebug_03000700
+ .word gSpeciesNames
+._664:
+ ldr r0, ._672 @ gDebug_03000710
+ mov r1, #0xc
+ mov r2, #0x1
+ bl Menu_PrintText
+._665:
+ ldr r5, ._672 @ gDebug_03000710
+ mov r0, #0xff
+ strb r0, [r5, #0x3]
+ ldr r4, ._672 + 4 @ gDebug_03000700
+ ldrh r0, [r4]
+ mov r1, #0x64
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5]
+ ldrh r0, [r4]
+ mov r1, #0x64
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xa
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x1]
+ ldrh r0, [r4]
+ mov r1, #0xa
+ bl __umodsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x2]
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0x3
+ bl Menu_PrintText
+ cmp r6, #0x1
+ beq ._668 @cond_branch
+ cmp r6, #0x1
+ bgt ._669 @cond_branch
+ cmp r6, #0
+ beq ._670 @cond_branch
+ b ._679
+._673:
+ .align 2, 0
+._672:
+ .word gDebug_03000710
+ .word gDebug_03000700
+._669:
+ cmp r6, #0x2
+ beq ._674 @cond_branch
+ b ._679
+._670:
+ ldr r4, ._677 @ gDebug_0300070C
+ b ._676
+._678:
+ .align 2, 0
+._677:
+ .word gDebug_0300070C
+._668:
+ ldr r4, ._680 @ gDebug_0300070D
+._676:
+ ldrb r0, [r4]
+ mov r1, #0x64
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5]
+ ldrb r0, [r4]
+ mov r1, #0x64
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0xa
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x1]
+ ldrb r0, [r4]
+ mov r1, #0xa
+ bl __umodsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x2]
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0x7
+ bl Menu_PrintText
+ b ._679
+._681:
+ .align 2, 0
+._680:
+ .word gDebug_0300070D
+._674:
+ ldr r4, ._682 @ gDebug_0300070E
+ ldrb r0, [r4]
+ mov r1, #0x64
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5]
+ ldrb r0, [r4]
+ mov r1, #0x64
+ bl __umodsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0xa
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x1]
+ ldrb r0, [r4]
+ mov r1, #0xa
+ bl __umodsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x2]
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0x7
+ bl Menu_PrintText
+._679:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._683:
+ .align 2, 0
+._682:
+ .word gDebug_0300070E
+
+ thumb_func_end debug_sub_808EF8C
+
+ thumb_func_start debug_sub_808F168
+debug_sub_808F168:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r4, ._686 @ 0x2015de0
+ ldr r0, ._686 + 4 @ gDebug_03000700
+ ldrh r0, [r0]
+ strh r0, [r4, #0x8]
+ ldr r0, ._686 + 8 @ gDebug_03000704
+ ldr r0, [r0]
+ str r0, [r4, #0x4]
+ ldr r0, ._686 + 12 @ gDebug_03000708
+ ldr r0, [r0]
+ str r0, [r4]
+ cmp r1, #0x5
+ bls ._684 @cond_branch
+ b ._707
+._684:
+ lsl r0, r1, #0x2
+ ldr r1, ._686 + 16 @
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+._687:
+ .align 2, 0
+._686:
+ .word 0x2015de0
+ .word gDebug_03000700
+ .word gDebug_03000704
+ .word gDebug_03000708
+ .word ._688
+._688:
+ .word ._689
+ .word ._690
+ .word ._691
+ .word ._692
+ .word ._693
+ .word ._694
+._689:
+ ldr r0, ._696 @ 0x2000000
+ ldr r2, ._696 + 4 @ 0x15ddf
+ add r1, r0, r2
+ mov r2, #0x0
+ strb r2, [r1]
+ ldr r1, ._696 + 8 @ 0x15dde
+ add r0, r0, r1
+ strb r2, [r0]
+ ldr r0, ._696 + 12 @ gDebug_0300070C
+ ldrb r0, [r0]
+ sub r0, r0, #0x1
+ strb r0, [r4, #0xa]
+ add r0, r4, #0
+ add r0, r0, #0x16
+ ldr r1, ._696 + 16 @ gUnknown_Debug_083C48BB
+ bl StringCopy
+ b ._704
+._697:
+ .align 2, 0
+._696:
+ .word 0x2000000
+ .word 0x15ddf
+ .word 0x15dde
+ .word gDebug_0300070C
+ .word gUnknown_Debug_083C48BB
+._690:
+ ldr r1, ._699 @ 0x2000000
+ ldr r0, ._699 + 4 @ 0x15ddf
+ add r2, r1, r0
+ mov r0, #0x0
+ strb r0, [r2]
+ ldr r2, ._699 + 8 @ 0x15dde
+ add r1, r1, r2
+ mov r0, #0x8
+ strb r0, [r1]
+ ldr r0, ._699 + 12 @ gDebug_0300070D
+ ldrb r0, [r0]
+ sub r0, r0, #0x1
+ b ._698
+._700:
+ .align 2, 0
+._699:
+ .word 0x2000000
+ .word 0x15ddf
+ .word 0x15dde
+ .word gDebug_0300070D
+._691:
+ ldr r1, ._702 @ 0x2000000
+ ldr r0, ._702 + 4 @ 0x15ddf
+ add r2, r1, r0
+ mov r0, #0x1
+ strb r0, [r2]
+ ldr r2, ._702 + 8 @ 0x15dde
+ add r1, r1, r2
+ mov r0, #0x8
+ strb r0, [r1]
+ ldr r0, ._702 + 12 @ gDebug_0300070E
+ ldrb r0, [r0]
+ sub r0, r0, #0x1
+ strb r0, [r4, #0xa]
+ b ._707
+._703:
+ .align 2, 0
+._702:
+ .word 0x2000000
+ .word 0x15ddf
+ .word 0x15dde
+ .word gDebug_0300070E
+._692:
+ ldr r1, ._705 @ 0x2000000
+ ldr r2, ._705 + 4 @ 0x15ddf
+ add r0, r1, r2
+ mov r2, #0x0
+ strb r2, [r0]
+ ldr r0, ._705 + 8 @ 0x15dde
+ add r1, r1, r0
+ mov r0, #0x8
+ strb r0, [r1]
+ strb r2, [r4, #0xa]
+ b ._704
+._706:
+ .align 2, 0
+._705:
+ .word 0x2000000
+ .word 0x15ddf
+ .word 0x15dde
+._693:
+ ldr r1, ._708 @ 0x2000000
+ ldr r0, ._708 + 4 @ 0x15ddf
+ add r2, r1, r0
+ mov r0, #0x0
+ strb r0, [r2]
+ ldr r2, ._708 + 8 @ 0x15dde
+ add r1, r1, r2
+ mov r0, #0x8
+ strb r0, [r1]
+ mov r0, #0x3
+._698:
+ strb r0, [r4, #0xa]
+._704:
+ add r0, r4, #0
+ add r0, r0, #0xb
+ ldr r1, ._708 + 12 @ gUnknown_Debug_083C48B0
+ bl StringCopy
+ b ._707
+._709:
+ .align 2, 0
+._708:
+ .word 0x2000000
+ .word 0x15ddf
+ .word 0x15dde
+ .word gUnknown_Debug_083C48B0
+._694:
+ ldr r1, ._710 @ 0x2000000
+ ldr r0, ._710 + 4 @ 0x15ddf
+ add r2, r1, r0
+ mov r0, #0x0
+ strb r0, [r2]
+ ldr r2, ._710 + 8 @ 0x15dde
+ add r1, r1, r2
+ mov r0, #0x8
+ strb r0, [r1]
+ mov r0, #0x9
+ strb r0, [r4, #0xa]
+ add r0, r4, #0
+ add r0, r0, #0xb
+ ldr r1, ._710 + 12 @ gUnknown_Debug_083C48B0
+ bl StringCopy
+._707:
+ pop {r4}
+ pop {r0}
+ bx r0
+._711:
+ .align 2, 0
+._710:
+ .word 0x2000000
+ .word 0x15ddf
+ .word 0x15dde
+ .word gUnknown_Debug_083C48B0
+
+ thumb_func_end debug_sub_808F168
+
+ thumb_func_start debug_sub_808F2E0
+debug_sub_808F2E0:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r3, r1, #0x18
+ lsl r2, r2, #0x18
+ cmp r2, #0
+ bne ._712 @cond_branch
+ ldr r1, ._714 @ gDebug_03000710
+ mov r0, #0xa1
+ b ._713
+._715:
+ .align 2, 0
+._714:
+ .word gDebug_03000710
+._712:
+ ldr r1, ._716 @ gDebug_03000710
+ mov r0, #0xa2
+._713:
+ strb r0, [r1]
+ mov r0, #0xff
+ strb r0, [r1, #0x1]
+ add r0, r1, #0
+ add r1, r4, #0
+ add r2, r3, #0
+ bl Menu_PrintText
+ pop {r4}
+ pop {r0}
+ bx r0
+._717:
+ .align 2, 0
+._716:
+ .word gDebug_03000710
+
+ thumb_func_end debug_sub_808F2E0
+
+ thumb_func_start debug_sub_808F31C
+debug_sub_808F31C:
+ push {r4, r5, r6, lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6}
+ mov r8, r0
+ mov r9, r1
+ add r4, r2, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r8, r0
+ mov r0, r9
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r9, r0
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ ldr r5, ._718 @ gDebug_03000710
+ ldr r6, ._718 + 4 @ 0x2710
+ add r0, r4, #0
+ add r1, r6, #0
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r6, #0xfa
+ lsl r6, r6, #0x2
+ add r1, r6, #0
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x64
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x2]
+ add r0, r4, #0
+ mov r1, #0x64
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xa
+ bl __udivsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x3]
+ add r0, r4, #0
+ mov r1, #0xa
+ bl __umodsi3
+ add r0, r0, #0xa1
+ strb r0, [r5, #0x4]
+ mov r0, #0xff
+ strb r0, [r5, #0x5]
+ add r0, r5, #0
+ mov r1, r8
+ mov r2, r9
+ bl Menu_PrintText
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._719:
+ .align 2, 0
+._718:
+ .word gDebug_03000710
+ .word 0x2710
+
+ thumb_func_end debug_sub_808F31C
+
+ thumb_func_start debug_nullsub_66
+debug_nullsub_66:
+ bx lr
+
+ thumb_func_end debug_nullsub_66
+
+ .align 2, 0
+
+.endif
diff --git a/asm/unk_debug_menu_3.s b/asm/unk_debug_menu_3.s
new file mode 100644
index 000000000..2e4bef06c
--- /dev/null
+++ b/asm/unk_debug_menu_3.s
@@ -0,0 +1,747 @@
+.if DEBUG
+
+ .include "constants/gba_constants.inc"
+ .include "include/macros.inc"
+
+ .text
+
+ thumb_func_start debug_sub_813C404
+debug_sub_813C404:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r5, ._1 @ gUnknown_Debug_845DDB2
+ ldr r4, ._1 + 4 @ gUnknown_Debug_845DAE1
+ sub r5, r5, r4
+ add r1, r4, #0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, #0
+ bl unref_sub_812620C
+ add r0, r5, #0
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._2:
+ .align 2, 0
+._1:
+ .word gUnknown_Debug_845DDB2
+ .word gUnknown_Debug_845DAE1
+
+ thumb_func_end debug_sub_813C404
+
+ thumb_func_start debug_sub_813C430
+debug_sub_813C430:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r5, ._3 @ gUnknown_Debug_845E402
+ ldr r4, ._3 + 4 @ gUnknown_Debug_845E3E0
+ sub r5, r5, r4
+ add r1, r4, #0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, #0
+ bl unref_sub_812620C
+ add r0, r5, #0
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._4:
+ .align 2, 0
+._3:
+ .word gUnknown_Debug_845E402
+ .word gUnknown_Debug_845E3E0
+
+ thumb_func_end debug_sub_813C430
+
+ thumb_func_start debug_sub_813C45C
+debug_sub_813C45C:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r5, ._5 @ gUnknown_Debug_845E443
+ ldr r4, ._5 + 4 @ gUnknown_Debug_845E422
+ sub r5, r5, r4
+ add r1, r4, #0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, #0
+ bl unref_sub_812620C
+ add r0, r5, #0
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._6:
+ .align 2, 0
+._5:
+ .word gUnknown_Debug_845E443
+ .word gUnknown_Debug_845E422
+
+ thumb_func_end debug_sub_813C45C
+
+ thumb_func_start debug_sub_813C488
+debug_sub_813C488:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r5, ._7 @ gUnknown_Debug_845E422
+ ldr r4, ._7 + 4 @ gUnknown_Debug_845E402
+ sub r5, r5, r4
+ add r1, r4, #0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, #0
+ bl unref_sub_812620C
+ add r0, r5, #0
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._8:
+ .align 2, 0
+._7:
+ .word gUnknown_Debug_845E422
+ .word gUnknown_Debug_845E402
+
+ thumb_func_end debug_sub_813C488
+
+ thumb_func_start debug_sub_813C4B4
+debug_sub_813C4B4:
+ push {r4, lr}
+ ldr r4, ._9 @ gUnknown_Debug_845E619
+ ldr r1, ._9 + 4 @ gUnknown_Debug_845E606
+ sub r4, r4, r1
+ add r2, r4, #0
+ bl memcpy
+ add r0, r4, #0
+ pop {r4}
+ pop {r1}
+ bx r1
+._10:
+ .align 2, 0
+._9:
+ .word gUnknown_Debug_845E619
+ .word gUnknown_Debug_845E606
+
+ thumb_func_end debug_sub_813C4B4
+
+ thumb_func_start debug_sub_813C4D4
+debug_sub_813C4D4:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r5, ._11 @ gUnknown_Debug_845E712
+ ldr r4, ._11 + 4 @ gUnknown_Debug_845E619
+ sub r5, r5, r4
+ add r1, r4, #0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, #0
+ bl unref_sub_81261B4
+ add r0, r5, #0
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._12:
+ .align 2, 0
+._11:
+ .word gUnknown_Debug_845E712
+ .word gUnknown_Debug_845E619
+
+ thumb_func_end debug_sub_813C4D4
+
+ thumb_func_start debug_sub_813C500
+debug_sub_813C500:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r5, ._13 @ gUnknown_Debug_845E797
+ ldr r4, ._13 + 4 @ gUnknown_Debug_845E712
+ sub r5, r5, r4
+ add r1, r4, #0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, #0
+ bl unref_sub_812620C
+ add r0, r5, #0
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._14:
+ .align 2, 0
+._13:
+ .word gUnknown_Debug_845E797
+ .word gUnknown_Debug_845E712
+
+ thumb_func_end debug_sub_813C500
+
+ thumb_func_start debug_sub_813C52C
+debug_sub_813C52C:
+ push {r4, r5, r6, lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6}
+ mov r8, r0
+ lsl r5, r1, #0x10
+ lsr r0, r5, #0x10
+ mov r9, r0
+ ldr r6, ._15 @ gUnknown_Debug_845E7BB
+ ldr r4, ._15 + 4 @ gUnknown_Debug_845E797
+ sub r6, r6, r4
+ mov r0, r8
+ add r1, r4, #0
+ add r2, r6, #0
+ bl memcpy
+ ldr r0, ._15 + 8 @ gUnknown_Debug_845E7B5
+ sub r0, r0, r4
+ add r0, r0, r8
+ add r0, r0, #0x3
+ mov r1, r9
+ strb r1, [r0]
+ lsr r5, r5, #0x18
+ strb r5, [r0, #0x1]
+ mov r0, r8
+ add r1, r4, #0
+ bl unref_sub_812620C
+ add r0, r6, #0
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._16:
+ .align 2, 0
+._15:
+ .word gUnknown_Debug_845E7BB
+ .word gUnknown_Debug_845E797
+ .word gUnknown_Debug_845E7B5
+
+ thumb_func_end debug_sub_813C52C
+
+ thumb_func_start debug_sub_813C580
+debug_sub_813C580:
+ push {lr}
+ mov r1, #0xd
+ bl debug_sub_813C52C
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_813C580
+
+ thumb_func_start debug_sub_813C58C
+debug_sub_813C58C:
+ push {lr}
+ mov r1, #0x4
+ bl debug_sub_813C52C
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_813C58C
+
+ thumb_func_start debug_sub_813C598
+debug_sub_813C598:
+ push {lr}
+ mov r1, #0x85
+ bl debug_sub_813C52C
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_sub_813C598
+
+ thumb_func_start debug_sub_813C5A4
+debug_sub_813C5A4:
+ push {lr}
+ ldr r1, ._17 @ 0x121
+ bl debug_sub_813C52C
+ pop {r1}
+ bx r1
+._18:
+ .align 2, 0
+._17:
+ .word 0x121
+
+ thumb_func_end debug_sub_813C5A4
+
+ thumb_func_start debug_sub_813C5B4
+debug_sub_813C5B4:
+ push {r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r7, ._23 @ gSaveBlock1
+ ldr r0, ._23 + 4 @ gUnknown_Debug_845DDD6
+ ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2
+ sub r0, r0, r1
+ add r6, r0, r4
+ ldr r0, ._23 + 12 @ gUnknown_Debug_845E306
+ sub r5, r0, r1
+ ldr r0, ._23 + 16 @ Str_842E23C
+ mov r1, #0x0
+ mov r2, #0x0
+ bl GetEnigmaBerryChecksum
+ mov r2, #0x0
+ ldr r3, ._23 + 20 @ 0xfff
+ mov r1, #0x0
+._19:
+ add r0, r4, r2
+ strb r1, [r0]
+ add r2, r2, #0x1
+ cmp r2, r3
+ ble ._19 @cond_branch
+ mov r2, #0x0
+ cmp r2, r5
+ bcs ._20 @cond_branch
+ ldr r3, ._23 + 8 @ gUnknown_Debug_845DDB2
+._21:
+ add r0, r4, r2
+ add r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ add r2, r2, #0x1
+ cmp r2, r5
+ bcc ._21 @cond_branch
+._20:
+ mov r2, #0x0
+ ldr r3, ._23 + 24 @ 0x52f
+._22:
+ add r0, r6, r2
+ add r1, r7, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ add r2, r2, #0x1
+ cmp r2, r3
+ bls ._22 @cond_branch
+ bl ClearEnigmaBerries
+ ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2
+ add r0, r4, #0
+ bl unref_sub_81261B4
+ add r0, r5, #0
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._24:
+ .align 2, 0
+._23:
+ .word gSaveBlock1+0x3160
+ .word gUnknown_Debug_845DDD6
+ .word gUnknown_Debug_845DDB2
+ .word gUnknown_Debug_845E306
+ .word Str_842E23C
+ .word 0xfff
+ .word 0x52f
+
+ thumb_func_end debug_sub_813C5B4
+
+ thumb_func_start debug_sub_813C638
+debug_sub_813C638:
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ add sp, sp, #0xffffffec
+ mov r8, r0
+ add r4, r1, #0
+ add r5, r2, #0
+ add r6, r3, #0
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ lsl r6, r6, #0x10
+ lsr r6, r6, #0x10
+ bl ZeroMonData
+ mov r0, #0x0
+ str r0, [sp]
+ str r0, [sp, #0x4]
+ mov r0, #0x1
+ str r0, [sp, #0x8]
+ ldr r0, ._25 @ 0x270f
+ str r0, [sp, #0xc]
+ mov r0, r8
+ add r1, r4, #0
+ add r2, r5, #0
+ mov r3, #0x20
+ bl CreateMon
+ ldr r2, ._25 + 4 @ Str_842E240
+ mov r0, r8
+ mov r1, #0x7
+ bl SetMonData
+ ldr r2, ._25 + 8 @ Str_842E248
+ mov r0, r8
+ mov r1, #0x2
+ bl SetMonData
+ str r6, [sp, #0x10]
+ mov r0, r8
+ mov r1, #0xc
+ add r2, sp, #0x10
+ bl SetMonData
+ add sp, sp, #0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._26:
+ .align 2, 0
+._25:
+ .word 0x270f
+ .word Str_842E240
+ .word Str_842E248
+
+ thumb_func_end debug_sub_813C638
+
+ thumb_func_start debug_sub_813C6AC
+debug_sub_813C6AC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xfffffff8
+ add r6, r0, #0
+ add r5, r1, #0
+ add r0, r5, #0
+ bl ClearMailStruct
+ add r0, r6, #0
+ mov r1, #0xc
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r8, r0
+ bl ItemIsMail
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._27 @cond_branch
+ add r4, r5, #0
+ add r4, r4, #0x12
+ add r7, r5, #0
+ add r7, r7, #0x1a
+ mov r1, #0x9
+ add r0, r5, #0
+ add r0, r0, #0x10
+._28:
+ strh r1, [r0]
+ sub r1, r1, #0x1
+ sub r0, r0, #0x2
+ cmp r0, r5
+ bge ._28 @cond_branch
+ add r0, r6, #0
+ mov r1, #0x7
+ mov r2, sp
+ bl GetMonData
+ add r0, r4, #0
+ mov r1, sp
+ mov r2, #0x8
+ bl StringCopyN
+ add r0, r6, #0
+ mov r1, #0x1
+ bl GetMonData
+ add r1, r7, #0
+ bl write_word_to_mem
+ add r0, r6, #0
+ mov r1, #0xb
+ bl GetMonData
+ add r4, r0, #0
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r6, #0
+ mov r1, #0x0
+ bl GetMonData
+ add r1, r0, #0
+ add r0, r4, #0
+ bl SpeciesToMailSpecies
+ strh r0, [r5, #0x1e]
+ mov r0, r8
+ strh r0, [r5, #0x20]
+._27:
+ add sp, sp, #0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_sub_813C6AC
+
+ thumb_func_start debug_sub_813C740
+debug_sub_813C740:
+ push {r4, r5, r6, lr}
+ mov r6, sl
+ mov r5, r9
+ mov r4, r8
+ push {r4, r5, r6}
+ add sp, sp, #0xffffffd0
+ add r6, r0, #0
+ ldr r0, ._29 @ gUnknown_Debug_845E443
+ mov r8, r0
+ ldr r1, ._29 + 4 @ gUnknown_Debug_845E4EF
+ ldr r5, ._29 + 8 @ gEnemyParty
+ sub r1, r1, r0
+ mov r9, r1
+ add r0, r6, #0
+ mov r1, r8
+ mov r2, r9
+ bl memcpy
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #0x5
+ mov r3, #0x0
+ bl debug_sub_813C638
+ add r4, sp, #0x24
+ mov r0, #0x1
+ mov sl, r0
+ mov r1, sl
+ strb r1, [r4]
+ add r0, r5, #0
+ mov r1, #0x2d
+ add r2, r4, #0
+ bl SetMonData
+ mov r0, #0x3
+ strb r0, [r4]
+ add r0, r5, #0
+ mov r1, #0x20
+ add r2, r4, #0
+ bl SetMonData
+ mov r0, #0xff
+ strb r0, [r4]
+ add r0, r5, #0
+ mov r1, #0x23
+ add r2, r4, #0
+ bl SetMonData
+ ldr r1, ._29 + 12 @ Str_842E238
+ add r0, r4, #0
+ mov r2, #0xb
+ bl StringCopyN
+ add r0, r5, #0
+ mov r1, #0x2
+ add r2, r4, #0
+ bl SetMonData
+ mov r0, sl
+ strb r0, [r4]
+ add r0, r5, #0
+ mov r1, #0x3
+ add r2, r4, #0
+ bl SetMonData
+ ldr r0, ._29 + 16 @ gUnknown_Debug_845E467
+ add r0, r6, r0
+ mov r1, r8
+ sub r0, r0, r1
+ add r1, r5, #0
+ mov r2, #0x64
+ bl memcpy
+ ldr r0, ._29 + 20 @ gUnknown_Debug_845E4CB
+ add r6, r6, r0
+ mov r0, r8
+ sub r6, r6, r0
+ add r0, r6, #0
+ mov r1, sp
+ mov r2, #0x24
+ bl memcpy
+ mov r0, r9
+ add sp, sp, #0x30
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._30:
+ .align 2, 0
+._29:
+ .word gUnknown_Debug_845E443
+ .word gUnknown_Debug_845E4EF
+ .word gEnemyParty
+ .word Str_842E238
+ .word gUnknown_Debug_845E467
+ .word gUnknown_Debug_845E4CB
+
+ thumb_func_end debug_sub_813C740
+
+ thumb_func_start debug_sub_813C810
+debug_sub_813C810:
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ add sp, sp, #0xffffffdc
+ add r6, r0, #0
+ ldr r5, ._31 @ gUnknown_Debug_845E443
+ ldr r0, ._31 + 4 @ gUnknown_Debug_845E4EF
+ ldr r4, ._31 + 8 @ gEnemyParty
+ sub r0, r0, r5
+ mov r8, r0
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, r8
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0xc9
+ mov r2, #0x15
+ mov r3, #0x82
+ bl debug_sub_813C638
+ add r0, r4, #0
+ mov r1, sp
+ bl debug_sub_813C6AC
+ ldr r0, ._31 + 12 @ gUnknown_Debug_845E467
+ add r0, r6, r0
+ sub r0, r0, r5
+ add r1, r4, #0
+ mov r2, #0x64
+ bl memcpy
+ ldr r0, ._31 + 16 @ gUnknown_Debug_845E4CB
+ add r0, r6, r0
+ sub r0, r0, r5
+ mov r1, sp
+ mov r2, #0x24
+ bl memcpy
+ add r0, r6, #0
+ add r1, r5, #0
+ bl unref_sub_812620C
+ mov r0, r8
+ add sp, sp, #0x24
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._32:
+ .align 2, 0
+._31:
+ .word gUnknown_Debug_845E443
+ .word gUnknown_Debug_845E4EF
+ .word gEnemyParty
+ .word gUnknown_Debug_845E467
+ .word gUnknown_Debug_845E4CB
+
+ thumb_func_end debug_sub_813C810
+
+ thumb_func_start debug_sub_813C888
+debug_sub_813C888:
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ add sp, sp, #0xffffffdc
+ add r6, r0, #0
+ ldr r5, ._33 @ gUnknown_Debug_845E443
+ ldr r0, ._33 + 4 @ gUnknown_Debug_845E4EF
+ ldr r4, ._33 + 8 @ gEnemyParty
+ sub r0, r0, r5
+ mov r8, r0
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, r8
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0xc9
+ mov r2, #0x15
+ mov r3, #0x82
+ bl debug_sub_813C638
+ add r0, r4, #0
+ mov r1, sp
+ bl debug_sub_813C6AC
+ mov r0, #0x0
+ strh r0, [r4, #0x1c]
+ ldr r0, ._33 + 12 @ gUnknown_Debug_845E467
+ add r0, r6, r0
+ sub r0, r0, r5
+ add r1, r4, #0
+ mov r2, #0x64
+ bl memcpy
+ ldr r0, ._33 + 16 @ gUnknown_Debug_845E4CB
+ add r0, r6, r0
+ sub r0, r0, r5
+ mov r1, sp
+ mov r2, #0x24
+ bl memcpy
+ add r0, r6, #0
+ add r1, r5, #0
+ bl unref_sub_812620C
+ mov r0, r8
+ add sp, sp, #0x24
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._34:
+ .align 2, 0
+._33:
+ .word gUnknown_Debug_845E443
+ .word gUnknown_Debug_845E4EF
+ .word gEnemyParty
+ .word gUnknown_Debug_845E467
+ .word gUnknown_Debug_845E4CB
+
+ thumb_func_end debug_sub_813C888
+
+ thumb_func_start debug_sub_813C904
+debug_sub_813C904:
+ push {r4, lr}
+ ldr r4, ._35 @ gPlayerParty
+ add r0, r4, #0
+ mov r1, #0x5
+ mov r2, #0x32
+ mov r3, #0xb7
+ bl debug_sub_813C638
+ add r0, r4, #0
+ add r0, r0, #0x64
+ mov r1, #0x8
+ mov r2, #0x32
+ mov r3, #0xc4
+ bl debug_sub_813C638
+ add r4, r4, #0xc8
+ add r0, r4, #0
+ mov r1, #0x2
+ mov r2, #0x32
+ mov r3, #0x8d
+ bl debug_sub_813C638
+ pop {r4}
+ pop {r0}
+ bx r0
+._36:
+ .align 2, 0
+._35:
+ .word gPlayerParty
+
+ thumb_func_end debug_sub_813C904
+
+ thumb_func_start debug_sub_813C93C
+debug_sub_813C93C:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xffffff44
+ add r4, r0, #0
+ ldr r6, ._37 @ gUnknown_Debug_845E4EF
+ ldr r5, ._37 + 4 @ gUnknown_Debug_845E606
+ sub r5, r5, r6
+ add r1, r6, #0
+ add r2, r5, #0
+ bl memcpy
+ bl SavePlayerParty
+ bl debug_sub_813C904
+ ldr r1, ._37 + 8 @ Str_842E253
+ ldr r2, ._37 + 12 @ 0x270f
+ mov r0, sp
+ bl debug_sub_8075DB4
+ bl LoadPlayerParty
+ ldr r0, ._37 + 16 @ gUnknown_Debug_845E506
+ add r4, r4, r0
+ sub r4, r4, r6
+ add r0, r4, #0
+ mov r1, sp
+ mov r2, #0xbc
+ bl memcpy
+ add r0, r5, #0
+ add sp, sp, #0xbc
+ pop {r4, r5, r6}
+ pop {r1}
+ bx r1
+._38:
+ .align 2, 0
+._37:
+ .word gUnknown_Debug_845E4EF
+ .word gUnknown_Debug_845E606
+ .word Str_842E253+5 @ weird...
+ .word 0x270f
+ .word gUnknown_Debug_845E506
+
+ thumb_func_end debug_sub_813C93C
+
+ .align 2, 0
+
+.endif
diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s
new file mode 100644
index 000000000..7f613b7a3
--- /dev/null
+++ b/asm/watanabe_debug_menu.s
@@ -0,0 +1,9578 @@
+.if DEBUG
+
+ .include "constants/gba_constants.inc"
+ .include "include/macros.inc"
+
+ .text
+
+ thumb_func_start debug_69
+debug_69:
+ bx lr
+
+ thumb_func_end debug_69
+
+ thumb_func_start debug_80C35DC
+debug_80C35DC:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xfffffff8
+ mov r0, #0x0
+ bl SetVBlankCallback
+ mov r0, #0x80
+ lsl r0, r0, #0x13
+ mov r1, #0x0
+ strh r1, [r0]
+ add r0, r0, #0xe
+ strh r1, [r0]
+ sub r0, r0, #0x2
+ strh r1, [r0]
+ sub r0, r0, #0x2
+ strh r1, [r0]
+ sub r0, r0, #0x2
+ strh r1, [r0]
+ add r0, r0, #0x14
+ strh r1, [r0]
+ add r0, r0, #0x2
+ strh r1, [r0]
+ sub r0, r0, #0x6
+ strh r1, [r0]
+ add r0, r0, #0x2
+ strh r1, [r0]
+ sub r0, r0, #0x6
+ strh r1, [r0]
+ add r0, r0, #0x2
+ strh r1, [r0]
+ sub r0, r0, #0x6
+ strh r1, [r0]
+ add r0, r0, #0x2
+ strh r1, [r0]
+ mov r3, #0xc0
+ lsl r3, r3, #0x13
+ mov r4, #0xc0
+ lsl r4, r4, #0x9
+ add r0, sp, #0x4
+ mov r8, r0
+ mov r2, sp
+ mov r6, #0x0
+ ldr r1, ._2 @ 0x40000d4
+ mov r5, #0x80
+ lsl r5, r5, #0x5
+ ldr r7, ._2 + 4 @ 0x81000800
+ mov r0, #0x81
+ lsl r0, r0, #0x18
+ mov ip, r0
+._1:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, #0x4]
+ str r7, [r1, #0x8]
+ ldr r0, [r1, #0x8]
+ add r3, r3, r5
+ sub r4, r4, r5
+ cmp r4, r5
+ bhi ._1 @cond_branch
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, #0x4]
+ lsr r0, r4, #0x1
+ mov r2, ip
+ orr r0, r0, r2
+ str r0, [r1, #0x8]
+ ldr r0, [r1, #0x8]
+ mov r0, #0xe0
+ lsl r0, r0, #0x13
+ mov r3, #0x80
+ lsl r3, r3, #0x3
+ mov r4, #0x0
+ str r4, [sp, #0x4]
+ ldr r2, ._2 @ 0x40000d4
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, #0x4]
+ lsr r0, r3, #0x2
+ mov r1, #0x85
+ lsl r1, r1, #0x18
+ orr r0, r0, r1
+ str r0, [r2, #0x8]
+ ldr r0, [r2, #0x8]
+ mov r1, #0xa0
+ lsl r1, r1, #0x13
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, #0x4]
+ lsr r3, r3, #0x1
+ mov r0, #0x81
+ lsl r0, r0, #0x18
+ orr r3, r3, r0
+ str r3, [r2, #0x8]
+ ldr r0, [r2, #0x8]
+ bl ResetPaletteFade
+ bl ScanlineEffect_Stop
+ bl ResetTasks
+ bl ResetSpriteData
+ bl ResetPaletteFade
+ bl FreeAllSpritePalettes
+ ldr r0, ._2 + 8 @ stru_83F8828
+ bl LoadSpriteSheet
+ ldr r0, ._2 + 12 @ stru_83F8838
+ bl LoadSpritePalette
+ ldr r0, ._2 + 16 @ gWindowTemplate_81E6C3C
+ bl Text_LoadWindowTemplate
+ ldr r0, ._2 + 20 @ gWindowTemplate_81E6CE4
+ bl InitMenuWindow
+ add sp, sp, #0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._3:
+ .align 2, 0
+._2:
+ .word 0x40000d4
+ .word 0x81000800
+ .word stru_83F8828
+ .word stru_83F8838
+ .word gWindowTemplate_81E6C3C
+ .word gWindowTemplate_81E6CE4
+
+ thumb_func_end debug_80C35DC
+
+ thumb_func_start debug_80C36F4
+debug_80C36F4:
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C36F4
+
+ thumb_func_start debug_80C370C
+debug_80C370C:
+ push {lr}
+ ldr r0, ._6 @ gPaletteFade
+ ldrb r1, [r0, #0x7]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._4 @cond_branch
+ ldr r0, ._6 + 4 @ debug_80C36F4
+ bl SetMainCallback2
+ b ._5
+._7:
+ .align 2, 0
+._6:
+ .word gPaletteFade
+ .word debug_80C36F4+1
+._4:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+._5:
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C370C
+
+ thumb_func_start debug_80C373C
+debug_80C373C:
+ push {lr}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ ldr r0, ._8 @ sub_80546F0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+._9:
+ .align 2, 0
+._8:
+ .word sub_80546F0+1
+
+ thumb_func_end debug_80C373C
+
+ thumb_func_start debug_80C3758
+debug_80C3758:
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C3758
+
+ thumb_func_start debug_80C376C
+debug_80C376C:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r7, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r6, r2, #0x18
+ mov r1, #0x0
+ mov r2, #0x0
+._10:
+ mov r3, sp
+ add r0, r3, r1
+ strb r2, [r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0x2
+ bls ._10 @cond_branch
+ mov r1, sp
+ mov r0, #0xff
+ strb r0, [r1, #0x3]
+ mov r4, #0x0
+ add r0, r5, #0
+ mov r1, #0x64
+ bl __udivsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0
+ beq ._11 @cond_branch
+ mov r1, sp
+ add r0, r0, #0xa1
+ strb r0, [r1]
+ mov r4, #0x1
+._11:
+ add r0, r5, #0
+ mov r1, #0x64
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xa
+ bl __udivsi3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0
+ bne ._12 @cond_branch
+ cmp r4, #0
+ beq ._13 @cond_branch
+._12:
+ mov r1, sp
+ add r0, r0, #0xa1
+ strb r0, [r1, #0x1]
+._13:
+ mov r4, sp
+ add r0, r5, #0
+ mov r1, #0x64
+ bl __umodsi3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xa
+ bl __umodsi3
+ add r0, r0, #0xa1
+ strb r0, [r4, #0x2]
+ mov r0, sp
+ add r1, r7, #0
+ add r2, r6, #0
+ bl Menu_PrintText
+ add sp, sp, #0x4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C376C
+
+ thumb_func_start debug_80C3800
+debug_80C3800:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xfffffff4
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r6, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ mov r3, #0x0
+ ldr r2, ._18 @ gSpeciesNames
+ mov r1, #0x0
+._14:
+ mov r7, sp
+ add r0, r7, r3
+ strb r1, [r0]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0x9
+ bls ._14 @cond_branch
+ add r1, r7, r3
+ mov r0, #0xff
+ strb r0, [r1]
+ mov r3, #0x0
+ mov r0, #0xb
+ add r1, r4, #0
+ mul r1, r1, r0
+ add r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._16 @cond_branch
+ add r4, r2, #0
+ add r2, r1, #0
+._17:
+ mov r0, sp
+ add r1, r0, r3
+ add r0, r3, r2
+ add r0, r0, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ add r0, r3, r2
+ add r0, r0, r4
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._16 @cond_branch
+ cmp r3, #0x9
+ bls ._17 @cond_branch
+._16:
+ mov r0, sp
+ add r1, r6, #0
+ add r2, r5, #0
+ bl Menu_PrintText
+ add sp, sp, #0xc
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._19:
+ .align 2, 0
+._18:
+ .word gSpeciesNames
+
+ thumb_func_end debug_80C3800
+
+ thumb_func_start debug_80C3878
+debug_80C3878:
+ push {lr}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r0, #0
+ beq ._20 @cond_branch
+ cmp r0, #0x1
+ beq ._21 @cond_branch
+._20:
+ cmp r1, #0x1
+ bls ._22 @cond_branch
+ sub r0, r1, #1
+ b ._23
+._22:
+ ldr r1, ._25 @ 0x19b
+ b ._28
+._26:
+ .align 2, 0
+._25:
+ .word 0x19b
+._21:
+ mov r0, #0xcd
+ lsl r0, r0, #0x1
+ cmp r1, r0
+ bhi ._27 @cond_branch
+ add r0, r1, #1
+._23:
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ b ._28
+._27:
+ mov r1, #0x1
+._28:
+ add r0, r1, #0
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_80C3878
+
+ thumb_func_start debug_80C38B4
+debug_80C38B4:
+ push {lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ lsl r1, r1, #0x10
+ lsr r0, r1, #0x10
+ cmp r2, #0
+ beq ._29 @cond_branch
+ cmp r2, #0x1
+ beq ._30 @cond_branch
+._29:
+ cmp r0, #0
+ beq ._31 @cond_branch
+ sub r0, r0, #0x1
+ b ._32
+._31:
+ mov r0, #0x52
+ b ._35
+._30:
+ cmp r0, #0x51
+ bhi ._34 @cond_branch
+ add r0, r0, #0x1
+._32:
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ b ._35
+._34:
+ mov r0, #0x0
+._35:
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_80C38B4
+
+ thumb_func_start debug_80C38E4
+debug_80C38E4:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xfffffffc
+ add r4, r2, #0
+ add r5, r3, #0
+ ldr r6, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r8, r0
+ lsl r1, r1, #0x18
+ lsr r7, r1, #0x18
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ lsl r6, r6, #0x18
+ lsr r6, r6, #0x18
+ ldr r1, ._37 @ gUnknown_Debug_083F7FD4
+ mov r0, sp
+ mov r2, #0x2
+ bl memcpy
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r5, #0
+ bl Menu_BlankWindowRect
+ cmp r6, #0
+ beq ._36 @cond_branch
+ mov r0, sp
+ add r1, r7, #0
+ mov r2, r8
+ bl Menu_PrintText
+._36:
+ add sp, sp, #0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._38:
+ .align 2, 0
+._37:
+ .word gUnknown_Debug_083F7FD4
+
+ thumb_func_end debug_80C38E4
+
+ thumb_func_start debug_80C393C
+debug_80C393C:
+ push {lr}
+ ldr r1, ._39 @ gUnknown_Debug_083F7FD6
+ mov r0, #0x1e
+ bl ProgramFlashSectorAndVerify
+ pop {r0}
+ bx r0
+._40:
+ .align 2, 0
+._39:
+ .word gUnknown_Debug_083F7FD6
+
+ thumb_func_end debug_80C393C
+
+ thumb_func_start InitWatanabeDebugMenu
+InitWatanabeDebugMenu:
+ push {r4, lr}
+ ldr r0, ._46 @ gMain
+ ldr r1, ._46 + 4 @ 0x43c
+ add r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, #0x1
+ beq ._41 @cond_branch
+ cmp r0, #0x1
+ ble ._42 @cond_branch
+ cmp r0, #0x2
+ beq ._43 @cond_branch
+ cmp r0, #0x3
+ beq ._44 @cond_branch
+._42:
+ bl save_serialize_map
+ bl sub_8125E2C
+ mov r0, #0x1
+ strb r0, [r4]
+ b ._51
+._47:
+ .align 2, 0
+._46:
+ .word gMain
+ .word 0x43c
+._41:
+ bl sub_8125E6C
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._51 @cond_branch
+ b ._49
+._43:
+ mov r0, #0x37
+ bl PlaySE
+._49:
+ ldrb r0, [r4]
+ add r0, r0, #0x1
+ strb r0, [r4]
+ b ._51
+._44:
+ bl IsSEPlaying
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ bne ._51 @cond_branch
+ bl ScriptContext2_Disable
+ ldr r0, ._52 @ sub_80546F0
+ bl SetMainCallback2
+._51:
+ pop {r4}
+ pop {r0}
+ bx r0
+._53:
+ .align 2, 0
+._52:
+ .word sub_80546F0+1
+
+ thumb_func_end InitWatanabeDebugMenu
+
+ thumb_func_start InitSizeComparison
+InitSizeComparison:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ bl debug_80C35DC
+ ldr r1, ._54 @ gReservedSpritePaletteCount
+ mov r0, #0x1
+ strb r0, [r1]
+ ldr r0, ._54 + 4 @ gUnknown_Debug_20389EC
+ mov r1, #0x80
+ lsl r1, r1, #0x1
+ mov r2, #0x20
+ bl LoadPalette
+ ldr r3, ._54 + 8 @ 0x4000208
+ ldrh r2, [r3]
+ mov r0, #0x0
+ strh r0, [r3]
+ ldr r4, ._54 + 12 @ 0x4000200
+ ldrh r0, [r4]
+ mov r1, #0x1
+ orr r0, r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x10
+ mov r3, #0x0
+ bl BeginNormalPaletteFade
+ ldr r0, ._54 + 16 @ debug_80C3758
+ bl SetVBlankCallback
+ ldr r0, ._54 + 20 @ debug_80C370C
+ bl SetMainCallback2
+ mov r1, #0x80
+ lsl r1, r1, #0x13
+ mov r2, #0x8a
+ lsl r2, r2, #0x5
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, ._54 + 24 @ debug_80C3A50
+ mov r1, #0x0
+ bl CreateTask
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._54 + 28 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ mov r0, #0xfc
+ strh r0, [r1, #0x8]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._55:
+ .align 2, 0
+._54:
+ .word gReservedSpritePaletteCount
+ .word gUnknown_Debug_20389EC
+ .word 0x4000208
+ .word 0x4000200
+ .word debug_80C3758+1
+ .word debug_80C370C+1
+ .word debug_80C3A50+1
+ .word gTasks
+
+ thumb_func_end InitSizeComparison
+
+ thumb_func_start debug_80C3A50
+debug_80C3A50:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xffffffd8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r1, ._56 @ gTasks
+ lsl r2, r0, #0x2
+ add r0, r2, r0
+ lsl r0, r0, #0x3
+ add r7, r0, r1
+ ldrh r0, [r7, #0x8]
+ str r0, [sp, #0x4]
+ bl NationalPokedexNumToSpecies
+ mov r1, sp
+ strh r0, [r1, #0x8]
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ str r2, [sp, #0xc]
+ lsr r2, r2, #0x10
+ mov r9, r2
+ ldr r3, ._56 + 4 @ gSaveBlock2
+ mov r8, r3
+ mov r0, #0x6
+ mov r1, #0x0
+ mov r2, #0x17
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x5
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ ldr r5, ._56 + 8 @ gUnknown_Debug_083F7FD6
+ add r0, r5, #0
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r4, ._56 + 12 @ gUnknown_Debug_083F7FDE
+ add r0, r4, #0
+ mov r1, #0x1
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0x18
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #0x1
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0x19
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0x0
+ mov r1, #0xa
+ mov r2, #0xb
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._56 + 16 @ gUnknown_Debug_083F7FE2
+ mov r1, #0x1
+ mov r2, #0xb
+ bl Menu_PrintText
+ ldr r0, ._56 + 20 @ gUnknown_Debug_083F7FED
+ mov r1, #0x1
+ mov r2, #0xd
+ bl Menu_PrintText
+ ldr r0, ._56 + 24 @ gUnknown_Debug_083F7FF6
+ mov r1, #0x1
+ mov r2, #0xf
+ bl Menu_PrintText
+ ldr r0, ._56 + 28 @ gUnknown_Debug_083F8001
+ mov r1, #0x1
+ mov r2, #0x11
+ bl Menu_PrintText
+ mov r0, #0xc
+ mov r1, #0xa
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._56 + 32 @ gUnknown_Debug_083F800C
+ mov r1, #0xd
+ mov r2, #0xb
+ bl Menu_PrintText
+ ldr r0, ._56 + 36 @ gUnknown_Debug_083F8019
+ mov r1, #0xd
+ mov r2, #0xd
+ bl Menu_PrintText
+ mov r0, #0xc
+ mov r1, #0x10
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._56 + 40 @ gUnknown_Debug_083F8022
+ mov r1, #0xd
+ mov r2, #0x11
+ bl Menu_PrintText
+ ldr r0, ._56 + 44 @ gUnknown_Debug_083F8028
+ mov r1, #0x18
+ mov r2, #0x11
+ bl Menu_PrintText
+ mov r0, r9
+ mov r1, #0x12
+ mov r2, #0x11
+ bl debug_80C3800
+ mov r1, r8
+ ldrb r0, [r1, #0x8]
+ mov r1, #0x98
+ mov r2, #0x28
+ mov r3, #0x0
+ bl sub_8091A4C
+ mov r2, sp
+ strh r0, [r2, #0x10]
+ add r3, r0, #0
+ lsl r3, r3, #0x10
+ str r3, [sp, #0x18]
+ lsr r0, r3, #0x10
+ str r0, [sp, #0x14]
+ lsl r4, r0, #0x4
+ add r4, r4, r0
+ lsl r4, r4, #0x2
+ ldr r1, ._56 + 48 @ gSprites
+ add r4, r4, r1
+ ldrb r1, [r4, #0x1]
+ mov r2, #0x4
+ neg r2, r2
+ mov sl, r2
+ mov r0, sl
+ and r0, r0, r1
+ mov r3, #0x1
+ orr r0, r0, r3
+ strb r0, [r4, #0x1]
+ ldrb r1, [r4, #0x3]
+ mov r0, #0x3f
+ neg r0, r0
+ mov r9, r0
+ and r0, r0, r1
+ mov r1, #0x4
+ orr r0, r0, r1
+ strb r0, [r4, #0x3]
+ ldrb r1, [r4, #0x5]
+ sub r2, r2, #0x9
+ mov r8, r2
+ mov r0, r8
+ and r0, r0, r1
+ mov r3, #0xf
+ and r0, r0, r3
+ strb r0, [r4, #0x5]
+ mov r0, #0x0
+ bl GetSpritePaletteTagByPaletteNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FreeSpritePaletteByTag
+ ldr r0, ._56 + 52 @ gPokedexEntries
+ ldr r1, [sp, #0x4]
+ lsl r5, r1, #0x3
+ add r5, r5, r1
+ lsl r5, r5, #0x2
+ add r5, r5, r0
+ ldrh r6, [r5, #0x20]
+ strh r6, [r4, #0x26]
+ ldrh r4, [r5, #0x1e]
+ str r4, [sp]
+ mov r0, #0x2
+ add r1, r4, #0
+ mov r2, #0x0
+ mov r3, #0x0
+ bl SetOamMatrix
+ mov r2, sp
+ ldrh r2, [r2, #0x14]
+ strh r2, [r7, #0xe]
+ strh r6, [r7, #0x10]
+ strh r4, [r7, #0x14]
+ ldr r0, [sp, #0x4]
+ mov r1, #0x58
+ mov r2, #0x28
+ mov r3, #0x1
+ bl sub_80918EC
+ mov r3, sp
+ strh r0, [r3, #0x1c]
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x24]
+ lsr r1, r0, #0x10
+ str r1, [sp, #0x20]
+ lsl r4, r1, #0x4
+ add r4, r4, r1
+ lsl r4, r4, #0x2
+ ldr r2, ._56 + 48 @ gSprites
+ add r4, r4, r2
+ ldrb r0, [r4, #0x1]
+ mov r3, sl
+ and r3, r3, r0
+ mov r0, #0x1
+ orr r3, r3, r0
+ strb r3, [r4, #0x1]
+ ldrb r0, [r4, #0x3]
+ mov r1, r9
+ and r1, r1, r0
+ mov r0, #0x2
+ orr r1, r1, r0
+ strb r1, [r4, #0x3]
+ ldrb r0, [r4, #0x5]
+ mov r2, r8
+ and r2, r2, r0
+ mov r3, #0xf
+ and r2, r2, r3
+ strb r2, [r4, #0x5]
+ mov r0, #0x0
+ bl GetSpritePaletteTagByPaletteNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FreeSpritePaletteByTag
+ ldrh r0, [r5, #0x1c]
+ mov r8, r0
+ strh r0, [r4, #0x26]
+ ldrh r4, [r5, #0x1a]
+ str r4, [sp]
+ mov r0, #0x1
+ add r1, r4, #0
+ mov r2, #0x0
+ mov r3, #0x0
+ bl SetOamMatrix
+ mov r1, sp
+ ldrh r1, [r1, #0x20]
+ strh r1, [r7, #0xc]
+ mov r2, r8
+ strh r2, [r7, #0x12]
+ strh r4, [r7, #0x16]
+ mov r3, #0x0
+ strh r3, [r7, #0x18]
+ strh r3, [r7, #0x1a]
+ ldr r1, ._56 + 56 @ 0x4000048
+ ldr r2, ._56 + 60 @ 0x3f1f
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x2
+ mov r0, #0x1f
+ strh r0, [r1]
+ ldr r2, ._56 + 64 @ 0x4000040
+ mov r3, #0x18
+ ldsh r1, [r7, r3]
+ lsl r1, r1, #0x6
+ add r0, r1, #0
+ add r0, r0, #0x38
+ lsl r0, r0, #0x8
+ add r1, r1, #0x78
+ add r0, r0, r1
+ strh r0, [r2]
+ ldr r1, ._56 + 68 @ 0x4000044
+ ldr r2, ._56 + 72 @ 0x848
+ add r0, r2, #0
+ strh r0, [r1]
+ sub r1, r1, #0x2
+ ldr r3, ._56 + 76 @ 0x31bf
+ add r0, r3, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._56 + 80 @ 0x14f
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0xa
+ mov r0, #0xe1
+ strh r0, [r1]
+ ldr r0, ._56 + 84 @ 0x4000052
+ mov r3, #0x0
+ strh r3, [r0]
+ add r1, r1, #0x4
+ mov r0, #0x7
+ strh r0, [r1]
+ mov r2, #0x80
+ lsl r2, r2, #0x13
+ ldrh r0, [r2]
+ mov r3, #0xc0
+ lsl r3, r3, #0x7
+ add r1, r3, #0
+ orr r0, r0, r1
+ strh r0, [r2]
+ ldr r0, ._56 + 88 @ debug_80C3D2C
+ str r0, [r7]
+ add sp, sp, #0x28
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._57:
+ .align 2, 0
+._56:
+ .word gTasks
+ .word gSaveBlock2
+ .word gUnknown_Debug_083F7FD6+0x4
+ .word gUnknown_Debug_083F7FDE
+ .word gUnknown_Debug_083F7FE2
+ .word gUnknown_Debug_083F7FED
+ .word gUnknown_Debug_083F7FF6
+ .word gUnknown_Debug_083F8001
+ .word gUnknown_Debug_083F800C
+ .word gUnknown_Debug_083F8019
+ .word gUnknown_Debug_083F8022
+ .word gUnknown_Debug_083F8028
+ .word gSprites
+ .word gPokedexEntries
+ .word 0x4000048
+ .word 0x3f1f
+ .word 0x4000040
+ .word 0x4000044
+ .word 0x848
+ .word 0x31bf
+ .word 0x14f
+ .word 0x4000052
+ .word debug_80C3D2C+1
+
+ thumb_func_end debug_80C3A50
+
+ thumb_func_start debug_80C3D2C
+debug_80C3D2C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r7, r6, #0
+ ldr r4, ._60 @ gMain
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._58 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r0, ._60 + 4 @ debug_80C370C
+ bl SetMainCallback2
+ ldr r1, ._60 + 8 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._60 + 12 @ debug_80C373C
+ str r1, [r0]
+ b ._117
+._61:
+ .align 2, 0
+._60:
+ .word gMain
+ .word debug_80C370C+1
+ .word gTasks
+ .word debug_80C373C+1
+._58:
+ mov r5, #0x1
+ add r0, r5, #0
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._62 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._64 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldrh r1, [r0, #0x18]
+ mov r2, #0x1
+ eor r1, r1, r2
+ strh r1, [r0, #0x18]
+ b ._117
+._65:
+ .align 2, 0
+._64:
+ .word gTasks
+._62:
+ ldrh r1, [r4, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._66 @cond_branch
+ ldr r1, ._70 @ gTasks
+ lsl r2, r6, #0x2
+ add r0, r2, r6
+ lsl r0, r0, #0x3
+ add r3, r0, r1
+ mov r5, #0x18
+ ldsh r0, [r3, r5]
+ mov r8, r1
+ cmp r0, #0
+ beq ._67 @cond_branch
+ ldrh r1, [r4, #0x2c]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._68 @cond_branch
+ ldrh r0, [r3, #0x14]
+ add r0, r0, #0x10
+ b ._69
+._71:
+ .align 2, 0
+._70:
+ .word gTasks
+._68:
+ ldrh r0, [r3, #0x14]
+ add r0, r0, #0x1
+._69:
+ strh r0, [r3, #0x14]
+ add r0, r2, r7
+ lsl r0, r0, #0x3
+ mov r2, r8
+ add r1, r0, r2
+ ldrh r0, [r1, #0x14]
+ mov r6, #0x80
+ lsl r6, r6, #0x8
+ cmp r0, r6
+ bhi ._72 @cond_branch
+ b ._117
+._72:
+ strh r6, [r1, #0x14]
+ b ._117
+._67:
+ ldrh r1, [r4, #0x2c]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._75 @cond_branch
+ ldrh r0, [r3, #0x16]
+ add r0, r0, #0x10
+ b ._76
+._75:
+ ldrh r0, [r3, #0x16]
+ add r0, r0, #0x1
+._76:
+ strh r0, [r3, #0x16]
+ add r0, r2, r7
+ lsl r0, r0, #0x3
+ mov r4, r8
+ add r1, r0, r4
+ ldrh r0, [r1, #0x16]
+ mov r6, #0x80
+ lsl r6, r6, #0x8
+ cmp r0, r6
+ bhi ._77 @cond_branch
+ b ._117
+._77:
+ strh r6, [r1, #0x16]
+ b ._117
+._66:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._80 @cond_branch
+ ldr r1, ._84 @ gTasks
+ lsl r2, r6, #0x2
+ add r0, r2, r6
+ lsl r0, r0, #0x3
+ add r3, r0, r1
+ mov r5, #0x18
+ ldsh r0, [r3, r5]
+ mov r8, r1
+ cmp r0, #0
+ beq ._81 @cond_branch
+ ldrh r1, [r4, #0x2c]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._82 @cond_branch
+ ldrh r0, [r3, #0x14]
+ sub r0, r0, #0x10
+ b ._83
+._85:
+ .align 2, 0
+._84:
+ .word gTasks
+._82:
+ ldrh r0, [r3, #0x14]
+ sub r0, r0, #0x1
+._83:
+ strh r0, [r3, #0x14]
+ add r0, r2, r7
+ lsl r0, r0, #0x3
+ mov r2, r8
+ add r1, r0, r2
+ mov r4, #0x14
+ ldsh r0, [r1, r4]
+ cmp r0, #0xff
+ ble ._86 @cond_branch
+ b ._117
+._86:
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ strh r0, [r1, #0x14]
+ b ._117
+._81:
+ ldrh r1, [r4, #0x2c]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._89 @cond_branch
+ ldrh r0, [r3, #0x16]
+ sub r0, r0, #0x10
+ b ._90
+._89:
+ ldrh r0, [r3, #0x16]
+ sub r0, r0, #0x1
+._90:
+ strh r0, [r3, #0x16]
+ add r0, r2, r7
+ lsl r0, r0, #0x3
+ mov r5, r8
+ add r1, r0, r5
+ mov r2, #0x16
+ ldsh r0, [r1, r2]
+ cmp r0, #0xff
+ ble ._91 @cond_branch
+ b ._117
+._91:
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ strh r0, [r1, #0x16]
+ b ._117
+._80:
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._94 @cond_branch
+ ldr r0, ._97 @ gTasks
+ lsl r1, r6, #0x2
+ add r1, r1, r6
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ mov r4, #0x18
+ ldsh r0, [r1, r4]
+ cmp r0, #0
+ beq ._95 @cond_branch
+ ldrh r0, [r1, #0x10]
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x10]
+ b ._117
+._98:
+ .align 2, 0
+._97:
+ .word gTasks
+._95:
+ ldrh r0, [r1, #0x12]
+ sub r0, r0, #0x1
+ strh r0, [r1, #0x12]
+ b ._117
+._94:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._100 @cond_branch
+ ldr r0, ._103 @ gTasks
+ lsl r1, r6, #0x2
+ add r1, r1, r6
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ mov r5, #0x18
+ ldsh r0, [r1, r5]
+ cmp r0, #0
+ beq ._101 @cond_branch
+ ldrh r0, [r1, #0x10]
+ add r0, r0, #0x1
+ strh r0, [r1, #0x10]
+ b ._117
+._104:
+ .align 2, 0
+._103:
+ .word gTasks
+._101:
+ ldrh r0, [r1, #0x12]
+ add r0, r0, #0x1
+ strh r0, [r1, #0x12]
+ b ._117
+._100:
+ mov r0, #0x8
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._106 @cond_branch
+ ldr r2, ._109 @ gTasks
+ lsl r3, r6, #0x2
+ add r0, r3, r6
+ lsl r0, r0, #0x3
+ add r6, r0, r2
+ ldrh r4, [r6, #0x8]
+ mov r0, #0x8
+ ldsh r1, [r6, r0]
+ ldr r0, ._109 + 4 @ 0x181
+ mov r8, r2
+ add r2, r3, #0
+ cmp r1, r0
+ bgt ._107 @cond_branch
+ add r0, r4, #1
+ strh r0, [r6, #0x8]
+ b ._108
+._110:
+ .align 2, 0
+._109:
+ .word gTasks
+ .word 0x181
+._107:
+ strh r5, [r6, #0x8]
+._108:
+ add r4, r2, r7
+ lsl r4, r4, #0x3
+ add r4, r4, r8
+ mov r2, #0xc
+ ldsh r1, [r4, r2]
+ b ._111
+._106:
+ mov r0, #0x4
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._112 @cond_branch
+ ldr r1, ._115 @ gTasks
+ lsl r2, r6, #0x2
+ add r0, r2, r6
+ lsl r0, r0, #0x3
+ add r3, r0, r1
+ ldrh r6, [r3, #0x8]
+ mov r4, #0x8
+ ldsh r0, [r3, r4]
+ mov r8, r1
+ cmp r0, #0x1
+ ble ._113 @cond_branch
+ sub r0, r6, #1
+ b ._114
+._116:
+ .align 2, 0
+._115:
+ .word gTasks
+._113:
+ mov r0, #0xc1
+ lsl r0, r0, #0x1
+._114:
+ strh r0, [r3, #0x8]
+ add r4, r2, r7
+ lsl r4, r4, #0x3
+ add r4, r4, r8
+ mov r5, #0xc
+ ldsh r1, [r4, r5]
+._111:
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ ldr r5, ._118 @ gSprites
+ add r0, r0, r5
+ bl DestroySprite
+ mov r0, #0xe
+ ldsh r1, [r4, r0]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r5
+ bl DestroySprite
+ ldr r0, ._118 + 4 @ debug_80C3A50
+ str r0, [r4]
+ b ._117
+._119:
+ .align 2, 0
+._118:
+ .word gSprites
+ .word debug_80C3A50+1
+._112:
+ ldr r0, ._120 @ gTasks
+ lsl r5, r7, #0x2
+ add r5, r5, r7
+ lsl r5, r5, #0x3
+ add r5, r5, r0
+ ldrh r4, [r5, #0x16]
+ ldrh r6, [r5, #0x12]
+ str r4, [sp]
+ mov r0, #0x1
+ add r1, r4, #0
+ mov r2, #0x0
+ mov r3, #0x0
+ bl SetOamMatrix
+ add r0, r4, #0
+ mov r1, #0x1
+ mov r2, #0x3
+ mov r3, #0x4
+ bl debug_80C68CC
+ add r0, r6, #0
+ mov r1, #0x1
+ mov r2, #0x7
+ mov r3, #0x4
+ bl debug_80C68CC
+ ldr r2, ._120 + 4 @ gSprites
+ mov r8, r2
+ mov r4, #0xc
+ ldsh r1, [r5, r4]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r8
+ strh r6, [r0, #0x26]
+ ldrh r4, [r5, #0x14]
+ ldrh r6, [r5, #0x10]
+ str r4, [sp]
+ mov r0, #0x2
+ add r1, r4, #0
+ mov r2, #0x0
+ mov r3, #0x0
+ bl SetOamMatrix
+ add r0, r4, #0
+ mov r1, #0x19
+ mov r2, #0x3
+ mov r3, #0x4
+ bl debug_80C68CC
+ add r0, r6, #0
+ mov r1, #0x19
+ mov r2, #0x7
+ mov r3, #0x4
+ bl debug_80C68CC
+ mov r0, #0xe
+ ldsh r1, [r5, r0]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r8
+ strh r6, [r0, #0x26]
+ ldr r2, ._120 + 8 @ 0x4000040
+ mov r4, #0x18
+ ldsh r1, [r5, r4]
+ lsl r1, r1, #0x6
+ add r0, r1, #0
+ add r0, r0, #0x38
+ lsl r0, r0, #0x8
+ add r1, r1, #0x78
+ add r0, r0, r1
+ strh r0, [r2]
+._117:
+ add sp, sp, #0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._121:
+ .align 2, 0
+._120:
+ .word gTasks
+ .word gSprites
+ .word 0x4000040
+
+ thumb_func_end debug_80C3D2C
+
+ thumb_func_start debug_80C405C
+debug_80C405C:
+ push {r4, r5, lr}
+ add r4, r0, #0
+ lsl r1, r1, #0x10
+ lsr r5, r1, #0x10
+ mov r2, #0x0
+ mov r1, #0x0
+._122:
+ add r0, r4, r2
+ strb r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x9
+ bls ._122 @cond_branch
+ add r0, r4, r2
+ mov r1, #0xff
+ strb r1, [r0]
+ mov r0, #0xae
+ strb r0, [r4]
+ cmp r5, #0
+ beq ._125 @cond_branch
+ mov r2, #0x0
+ ldr r3, ._127 @ gSpeciesNames
+ mov r0, #0xb
+ add r1, r5, #0
+ mul r1, r1, r0
+ add r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._125 @cond_branch
+ add r5, r3, #0
+ add r3, r1, #0
+._126:
+ add r1, r4, r2
+ add r0, r2, r3
+ add r0, r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ add r0, r2, r3
+ add r0, r0, r5
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._125 @cond_branch
+ cmp r2, #0x9
+ bls ._126 @cond_branch
+._125:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._128:
+ .align 2, 0
+._127:
+ .word gSpeciesNames
+
+ thumb_func_end debug_80C405C
+
+ thumb_func_start debug_80C40C4
+debug_80C40C4:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ mov r5, #0x0
+ mov r6, sp
+._135:
+ cmp r7, #0
+ beq ._129 @cond_branch
+ mov r0, #0x64
+ add r1, r5, #0
+ mul r1, r1, r0
+ ldr r0, ._132 @ gEnemyParty
+ add r4, r1, r0
+ add r0, r4, #0
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ beq ._134 @cond_branch
+ add r0, r4, #0
+ bl CalculateMonStats
+ add r0, r4, #0
+ mov r1, #0x3a
+ bl GetMonData
+ strh r0, [r6]
+ add r0, r4, #0
+ mov r1, #0x39
+ mov r2, sp
+ bl SetMonData
+ b ._134
+._133:
+ .align 2, 0
+._132:
+ .word gEnemyParty
+._129:
+ mov r0, #0x64
+ add r1, r5, #0
+ mul r1, r1, r0
+ ldr r0, ._136 @ gPlayerParty
+ add r4, r1, r0
+ add r0, r4, #0
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ beq ._134 @cond_branch
+ add r0, r4, #0
+ bl CalculateMonStats
+ add r0, r4, #0
+ mov r1, #0x3a
+ bl GetMonData
+ strh r0, [r6]
+ add r0, r4, #0
+ mov r1, #0x39
+ mov r2, sp
+ bl SetMonData
+._134:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x5
+ bls ._135 @cond_branch
+ add sp, sp, #0x4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._137:
+ .align 2, 0
+._136:
+ .word gPlayerParty
+
+ thumb_func_end debug_80C40C4
+
+ thumb_func_start InitBattleForDebug
+InitBattleForDebug:
+ push {lr}
+ bl SavePlayerParty
+ ldr r1, ._138 @ gUnknown_Debug_2038A0C
+ ldr r0, ._138 + 4 @ gSaveBlock2
+ ldrb r2, [r0, #0x8]
+ mov r0, #0x0
+ strb r2, [r1, #0xd]
+ strb r0, [r1]
+ strb r0, [r1, #0x1]
+ strb r0, [r1, #0x2]
+ strb r0, [r1, #0x3]
+ strb r0, [r1, #0x4]
+ strb r0, [r1, #0x5]
+ strb r0, [r1, #0x6]
+ strb r0, [r1, #0x7]
+ strb r0, [r1, #0x8]
+ strb r0, [r1, #0xc]
+ ldr r1, ._138 + 8 @ byte_3005E30
+ str r0, [r1]
+ bl ZeroPlayerPartyMons
+ bl ZeroEnemyPartyMons
+ mov r0, #0x0
+ bl debug_80C4214
+ ldr r0, ._138 + 12 @ debug_80C47BC
+ mov r1, #0x0
+ bl CreateTask
+ pop {r0}
+ bx r0
+._139:
+ .align 2, 0
+._138:
+ .word gUnknown_Debug_2038A0C
+ .word gSaveBlock2
+ .word byte_3005E30
+ .word debug_80C47BC+1
+
+ thumb_func_end InitBattleForDebug
+
+ thumb_func_start debug_80C41A8
+debug_80C41A8:
+ push {lr}
+ ldr r1, ._140 @ gUnknown_Debug_2038A0C
+ mov r0, #0x0
+ strb r0, [r1, #0x1]
+ strb r0, [r1, #0x2]
+ bl ZeroPlayerPartyMons
+ bl ZeroEnemyPartyMons
+ mov r0, #0x0
+ bl debug_80C4214
+ ldr r0, ._140 + 4 @ debug_80C47BC
+ mov r1, #0x0
+ bl CreateTask
+ pop {r0}
+ bx r0
+._141:
+ .align 2, 0
+._140:
+ .word gUnknown_Debug_2038A0C
+ .word debug_80C47BC+1
+
+ thumb_func_end debug_80C41A8
+
+ thumb_func_start debug_80C41D4
+debug_80C41D4:
+ push {lr}
+ mov r0, #0x0
+ bl debug_80C40C4
+ mov r0, #0x0
+ bl debug_80C4214
+ ldr r0, ._142 @ debug_80C42B8
+ mov r1, #0x0
+ bl CreateTask
+ pop {r0}
+ bx r0
+._143:
+ .align 2, 0
+._142:
+ .word debug_80C42B8+1
+
+ thumb_func_end debug_80C41D4
+
+ thumb_func_start debug_80C41F4
+debug_80C41F4:
+ push {lr}
+ mov r0, #0x1
+ bl debug_80C40C4
+ mov r0, #0x1
+ bl debug_80C4214
+ ldr r0, ._144 @ debug_80C42B8
+ mov r1, #0x0
+ bl CreateTask
+ pop {r0}
+ bx r0
+._145:
+ .align 2, 0
+._144:
+ .word debug_80C42B8+1
+
+ thumb_func_end debug_80C41F4
+
+ thumb_func_start debug_80C4214
+debug_80C4214:
+ push {r4, r5, r6, lr}
+ bl debug_80C35DC
+ ldr r6, ._146 @ 0x4000040
+ mov r4, #0x0
+ strh r4, [r6]
+ ldr r5, ._146 + 4 @ 0x4000044
+ strh r4, [r5]
+ ldr r0, ._146 + 8 @ 0x4000042
+ strh r4, [r0]
+ add r0, r0, #0x4
+ strh r4, [r0]
+ ldr r1, ._146 + 12 @ 0x4000048
+ ldr r2, ._146 + 16 @ 0x1111
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x2
+ mov r0, #0x31
+ strh r0, [r1]
+ add r1, r1, #0x6
+ mov r0, #0xe1
+ strh r0, [r1]
+ ldr r0, ._146 + 20 @ 0x4000052
+ strh r4, [r0]
+ add r1, r1, #0x4
+ mov r0, #0x7
+ strh r0, [r1]
+ ldr r3, ._146 + 24 @ 0x4000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, ._146 + 28 @ 0x4000200
+ ldrh r0, [r4]
+ mov r1, #0x1
+ orr r0, r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, ._146 + 32 @ debug_80C3758
+ bl SetVBlankCallback
+ ldr r0, ._146 + 36 @ debug_80C370C
+ bl SetMainCallback2
+ mov r1, #0x80
+ lsl r1, r1, #0x13
+ ldr r2, ._146 + 40 @ 0x7140
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._146 + 44 @ 0x1ef
+ add r0, r1, #0
+ strh r0, [r6]
+ ldr r2, ._146 + 48 @ 0x819f
+ add r0, r2, #0
+ strh r0, [r5]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._147:
+ .align 2, 0
+._146:
+ .word 0x4000040
+ .word 0x4000044
+ .word 0x4000042
+ .word 0x4000048
+ .word 0x1111
+ .word 0x4000052
+ .word 0x4000208
+ .word 0x4000200
+ .word debug_80C3758+1
+ .word debug_80C370C+1
+ .word 0x7140
+ .word 0x1ef
+ .word 0x819f
+
+ thumb_func_end debug_80C4214
+
+ thumb_func_start debug_80C42B8
+debug_80C42B8:
+ push {r4, r5, lr}
+ add sp, sp, #0xffffffe4
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r1, ._150 @ gUnknown_Debug_083F8194
+ mov r0, sp
+ mov r2, #0xc
+ bl memcpy
+ add r4, sp, #0xc
+ ldr r1, ._150 + 4 @ gUnknown_Debug_083F81A0
+ add r0, r4, #0
+ mov r2, #0xd
+ bl memcpy
+ mov r0, #0x0
+ mov r1, #0x10
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r0, sp
+ mov r1, #0x1
+ mov r2, #0x11
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0x11
+ bl Menu_PrintText
+ bl debug_80C4694
+ bl debug_80C4704
+ ldr r0, ._150 + 8 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq ._148 @cond_branch
+ ldr r0, ._150 + 12 @ gTasks
+ lsl r1, r5, #0x2
+ add r1, r1, r5
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._150 + 16 @ debug_80C44EC
+ b ._149
+._151:
+ .align 2, 0
+._150:
+ .word gUnknown_Debug_083F8194
+ .word gUnknown_Debug_083F81A0
+ .word gUnknown_Debug_2038A0C
+ .word gTasks
+ .word debug_80C44EC+1
+._148:
+ ldr r0, ._152 @ gTasks
+ lsl r1, r5, #0x2
+ add r1, r1, r5
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._152 + 4 @ debug_80C4348
+._149:
+ str r0, [r1]
+ add sp, sp, #0x1c
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._153:
+ .align 2, 0
+._152:
+ .word gTasks
+ .word debug_80C4348+1
+
+ thumb_func_end debug_80C42B8
+
+ thumb_func_start debug_80C4348
+debug_80C4348:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r0, ._154 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x1]
+ lsl r0, r0, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ str r1, [sp]
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r1, ._154 + 4 @ 0x4000042
+ ldr r2, ._154 + 8 @ 0x177
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ add r2, r2, #0x8
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._154 + 12 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._154 + 16 @ debug_80C43A8
+ str r1, [r0]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._155:
+ .align 2, 0
+._154:
+ .word gUnknown_Debug_2038A0C
+ .word 0x4000042
+ .word 0x177
+ .word gTasks
+ .word debug_80C43A8+1
+
+ thumb_func_end debug_80C4348
+
+ thumb_func_start debug_80C43A8
+debug_80C43A8:
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r1, ._158 @ gMain
+ ldrh r2, [r1, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r2
+ add r3, r1, #0
+ cmp r0, #0
+ beq ._156 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r0, ._158 + 4 @ gUnknown_Debug_2038A0C
+ ldrb r1, [r0, #0x1]
+ mov r0, #0x64
+ mul r0, r0, r1
+ ldr r1, ._158 + 8 @ gPlayerParty
+ add r0, r0, r1
+ ldr r1, ._158 + 12 @ debug_80C41D4
+ bl debug_sub_80A433C
+ add r0, r4, #0
+ bl DestroyTask
+ b ._180
+._159:
+ .align 2, 0
+._158:
+ .word gMain
+ .word gUnknown_Debug_2038A0C
+ .word gPlayerParty
+ .word debug_80C41D4+1
+._156:
+ mov r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._160 @cond_branch
+ ldr r0, ._162 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._162 + 4 @ debug_80C4F48
+ str r0, [r1]
+ b ._180
+._163:
+ .align 2, 0
+._162:
+ .word gTasks
+ .word debug_80C4F48+1
+._160:
+ mov r0, #0x8
+ and r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0
+ beq ._164 @cond_branch
+ bl debug_80C4774
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._180 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ bl CalculatePlayerPartyCount
+ bl CalculateEnemyPartyCount
+ ldr r0, ._167 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._167 + 4 @ debug_80C4D14
+ str r0, [r1]
+ b ._180
+._168:
+ .align 2, 0
+._167:
+ .word gTasks
+ .word debug_80C4D14+1
+._164:
+ mov r0, #0x88
+ lsl r0, r0, #0x1
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._169 @cond_branch
+ str r1, [sp]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r0, ._171 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._171 + 4 @ debug_80C44EC
+ str r0, [r1]
+ b ._180
+._172:
+ .align 2, 0
+._171:
+ .word gTasks
+ .word debug_80C44EC+1
+._169:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._174 @cond_branch
+ ldr r1, ._176 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r1, #0x1]
+ cmp r0, #0
+ beq ._174 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1, #0x1]
+ b ._175
+._177:
+ .align 2, 0
+._176:
+ .word gUnknown_Debug_2038A0C
+._174:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._180 @cond_branch
+ ldr r5, ._181 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r5, #0x1]
+ cmp r0, #0x4
+ bhi ._180 @cond_branch
+ add r1, r0, #0
+ mov r0, #0x64
+ mul r0, r0, r1
+ ldr r1, ._181 + 4 @ gPlayerParty
+ add r0, r0, r1
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ beq ._180 @cond_branch
+ ldrb r0, [r5, #0x1]
+ add r0, r0, #0x1
+ strb r0, [r5, #0x1]
+._175:
+ ldr r1, ._181 + 8 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._181 + 12 @ debug_80C4348
+ str r1, [r0]
+._180:
+ add sp, sp, #0x4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._182:
+ .align 2, 0
+._181:
+ .word gUnknown_Debug_2038A0C
+ .word gPlayerParty
+ .word gTasks
+ .word debug_80C4348+1
+
+ thumb_func_end debug_80C43A8
+
+ thumb_func_start debug_80C44EC
+debug_80C44EC:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r0, ._183 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x2]
+ lsl r0, r0, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ str r1, [sp]
+ mov r1, #0x10
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r1, ._183 + 4 @ 0x4000042
+ ldr r2, ._183 + 8 @ 0x79ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._183 + 12 @ 0x17f
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._183 + 16 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._183 + 20 @ debug_80C4550
+ str r1, [r0]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._184:
+ .align 2, 0
+._183:
+ .word gUnknown_Debug_2038A0C
+ .word 0x4000042
+ .word 0x79ef
+ .word 0x17f
+ .word gTasks
+ .word debug_80C4550+1
+
+ thumb_func_end debug_80C44EC
+
+ thumb_func_start debug_80C4550
+debug_80C4550:
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r1, ._187 @ gMain
+ ldrh r2, [r1, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r2
+ add r3, r1, #0
+ cmp r0, #0
+ beq ._185 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r0, ._187 + 4 @ gUnknown_Debug_2038A0C
+ ldrb r1, [r0, #0x2]
+ mov r0, #0x64
+ mul r0, r0, r1
+ ldr r1, ._187 + 8 @ gEnemyParty
+ add r0, r0, r1
+ ldr r1, ._187 + 12 @ debug_80C41F4
+ bl debug_sub_80A433C
+ add r0, r4, #0
+ bl DestroyTask
+ b ._209
+._188:
+ .align 2, 0
+._187:
+ .word gMain
+ .word gUnknown_Debug_2038A0C
+ .word gEnemyParty
+ .word debug_80C41F4+1
+._185:
+ mov r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._189 @cond_branch
+ ldr r0, ._191 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._191 + 4 @ debug_80C4F48
+ str r0, [r1]
+ b ._209
+._192:
+ .align 2, 0
+._191:
+ .word gTasks
+ .word debug_80C4F48+1
+._189:
+ mov r0, #0x8
+ and r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0
+ beq ._193 @cond_branch
+ bl debug_80C4774
+ lsl r0, r0, #0x18
+ cmp r0, #0
+ beq ._209 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ bl CalculatePlayerPartyCount
+ bl CalculateEnemyPartyCount
+ ldr r0, ._196 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._196 + 4 @ debug_80C4D14
+ str r0, [r1]
+ b ._209
+._197:
+ .align 2, 0
+._196:
+ .word gTasks
+ .word debug_80C4D14+1
+._193:
+ mov r0, #0x88
+ lsl r0, r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._198 @cond_branch
+ str r1, [sp]
+ mov r0, #0x0
+ mov r1, #0x10
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r0, ._200 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._200 + 4 @ debug_80C4348
+ str r0, [r1]
+ b ._209
+._201:
+ .align 2, 0
+._200:
+ .word gTasks
+ .word debug_80C4348+1
+._198:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._203 @cond_branch
+ ldr r1, ._205 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r1, #0x2]
+ cmp r0, #0
+ beq ._203 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1, #0x2]
+ b ._204
+._206:
+ .align 2, 0
+._205:
+ .word gUnknown_Debug_2038A0C
+._203:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._209 @cond_branch
+ ldr r5, ._210 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r5, #0x2]
+ cmp r0, #0x4
+ bhi ._209 @cond_branch
+ add r1, r0, #0
+ mov r0, #0x64
+ mul r0, r0, r1
+ ldr r1, ._210 + 4 @ gEnemyParty
+ add r0, r0, r1
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ beq ._209 @cond_branch
+ ldrb r0, [r5, #0x2]
+ add r0, r0, #0x1
+ strb r0, [r5, #0x2]
+._204:
+ ldr r1, ._210 + 8 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._210 + 12 @ debug_80C44EC
+ str r1, [r0]
+._209:
+ add sp, sp, #0x4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._211:
+ .align 2, 0
+._210:
+ .word gUnknown_Debug_2038A0C
+ .word gEnemyParty
+ .word gTasks
+ .word debug_80C44EC+1
+
+ thumb_func_end debug_80C4550
+
+ thumb_func_start debug_80C4694
+debug_80C4694:
+ push {r4, r5, lr}
+ add sp, sp, #0xffffffe4
+ ldr r1, ._213 @ gUnknown_Debug_083F81AD
+ mov r0, sp
+ mov r2, #0xd
+ bl memcpy
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ mov r0, sp
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r4, #0x0
+ add r5, sp, #0x10
+._212:
+ mov r0, #0x64
+ mul r0, r0, r4
+ ldr r1, ._213 + 4 @ gPlayerParty
+ add r0, r0, r1
+ mov r1, #0xb
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r5, #0
+ bl debug_80C405C
+ lsl r2, r4, #0x19
+ mov r0, #0xc0
+ lsl r0, r0, #0x12
+ add r2, r2, r0
+ lsr r2, r2, #0x18
+ add r0, r5, #0
+ mov r1, #0x2
+ bl Menu_PrintText
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x5
+ bls ._212 @cond_branch
+ add sp, sp, #0x1c
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._214:
+ .align 2, 0
+._213:
+ .word gUnknown_Debug_083F81AD
+ .word gPlayerParty
+
+ thumb_func_end debug_80C4694
+
+ thumb_func_start debug_80C4704
+debug_80C4704:
+ push {r4, r5, lr}
+ add sp, sp, #0xffffffe4
+ ldr r1, ._216 @ gUnknown_Debug_083F81BA
+ mov r0, sp
+ mov r2, #0xd
+ bl memcpy
+ mov r0, #0xf
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ mov r0, sp
+ mov r1, #0x11
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r4, #0x0
+ add r5, sp, #0x10
+._215:
+ mov r0, #0x64
+ mul r0, r0, r4
+ ldr r1, ._216 + 4 @ gEnemyParty
+ add r0, r0, r1
+ mov r1, #0xb
+ bl GetMonData
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ add r0, r5, #0
+ bl debug_80C405C
+ lsl r2, r4, #0x19
+ mov r0, #0xc0
+ lsl r0, r0, #0x12
+ add r2, r2, r0
+ lsr r2, r2, #0x18
+ add r0, r5, #0
+ mov r1, #0x11
+ bl Menu_PrintText
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x5
+ bls ._215 @cond_branch
+ add sp, sp, #0x1c
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._217:
+ .align 2, 0
+._216:
+ .word gUnknown_Debug_083F81BA
+ .word gEnemyParty
+
+ thumb_func_end debug_80C4704
+
+ thumb_func_start debug_80C4774
+debug_80C4774:
+ push {r4, lr}
+ ldr r0, ._221 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0xc]
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0x64
+ add r4, r0, #0
+ mul r4, r4, r1
+ ldr r0, ._221 + 4 @ gPlayerParty
+ add r0, r4, r0
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ beq ._219 @cond_branch
+ ldr r0, ._221 + 8 @ gEnemyParty
+ add r0, r4, r0
+ mov r1, #0xb
+ bl GetMonData
+ cmp r0, #0
+ beq ._219 @cond_branch
+ mov r0, #0x1
+ b ._220
+._222:
+ .align 2, 0
+._221:
+ .word gUnknown_Debug_2038A0C
+ .word gPlayerParty
+ .word gEnemyParty
+._219:
+ mov r0, #0x0
+._220:
+ pop {r4}
+ pop {r1}
+ bx r1
+
+ thumb_func_end debug_80C4774
+
+ thumb_func_start debug_80C47BC
+debug_80C47BC:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xffffffc0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, ._224 @ gUnknown_Debug_083F81C7
+ mov r0, sp
+ mov r2, #0xf
+ bl memcpy
+ add r4, sp, #0x10
+ ldr r1, ._224 + 4 @ gUnknown_Debug_083F81A0
+ add r0, r4, #0
+ mov r2, #0xd
+ bl memcpy
+ add r6, sp, #0x20
+ ldr r1, ._224 + 8 @ gUnknown_Debug_083F81D6
+ add r0, r6, #0
+ mov r2, #0xf
+ bl memcpy
+ add r5, sp, #0x30
+ ldr r1, ._224 + 12 @ gUnknown_Debug_083F81E5
+ add r0, r5, #0
+ mov r2, #0x10
+ bl memcpy
+ mov r0, #0x0
+ mov r1, #0x10
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r0, sp
+ mov r1, #0x1
+ mov r2, #0x11
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0x11
+ bl Menu_PrintText
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ add r0, r6, #0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r4, #0x0
+ ldr r6, ._224 + 16 @ gUnknown_Debug_083F8068
+._223:
+ lsl r0, r4, #0x3
+ add r0, r0, r6
+ ldr r0, [r0]
+ lsl r2, r4, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r2, r2, r1
+ lsr r2, r2, #0x18
+ mov r1, #0x2
+ bl Menu_PrintText
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x4
+ bls ._223 @cond_branch
+ mov r0, #0xf
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ add r0, r5, #0
+ mov r1, #0x11
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._224 + 20 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x4]
+ bl debug_80C4C44
+ ldr r1, ._224 + 24 @ gTasks
+ lsl r0, r7, #0x2
+ add r0, r0, r7
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._224 + 28 @ debug_80C48A0
+ str r1, [r0]
+ add sp, sp, #0x40
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._225:
+ .align 2, 0
+._224:
+ .word gUnknown_Debug_083F81C7
+ .word gUnknown_Debug_083F81A0
+ .word gUnknown_Debug_083F81D6
+ .word gUnknown_Debug_083F81E5
+ .word gUnknown_Debug_083F8068
+ .word gUnknown_Debug_2038A0C
+ .word gTasks
+ .word debug_80C48A0+1
+
+ thumb_func_end debug_80C47BC
+
+ thumb_func_start debug_80C48A0
+debug_80C48A0:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r0, ._226 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x3]
+ lsl r0, r0, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ str r1, [sp]
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r1, ._226 + 4 @ 0x4000042
+ ldr r2, ._226 + 8 @ 0x177
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ add r2, r2, #0x8
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._226 + 12 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._226 + 16 @ debug_80C4900
+ str r1, [r0]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._227:
+ .align 2, 0
+._226:
+ .word gUnknown_Debug_2038A0C
+ .word 0x4000042
+ .word 0x177
+ .word gTasks
+ .word debug_80C4900+1
+
+ thumb_func_end debug_80C48A0
+
+ thumb_func_start debug_80C4900
+debug_80C4900:
+ push {r4, r5, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r1, ._230 @ gMain
+ ldrh r2, [r1, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r3, r1, #0
+ cmp r4, #0
+ beq ._228 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ mov r4, #0x0
+ str r4, [sp]
+ mov r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r0, ._230 + 4 @ debug_80C370C
+ bl SetMainCallback2
+ bl LoadPlayerParty
+ ldr r1, ._230 + 8 @ gSaveBlock2
+ ldr r0, ._230 + 12 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0xd]
+ strb r0, [r1, #0x8]
+ ldr r0, ._230 + 16 @ gBattleTypeFlags
+ mov r1, #0x0
+ strh r4, [r0]
+ ldr r0, ._230 + 20 @ gUnknown_02023A14_50
+ strb r1, [r0]
+ ldr r1, ._230 + 24 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._230 + 28 @ debug_80C373C
+ b ._229
+._231:
+ .align 2, 0
+._230:
+ .word gMain
+ .word debug_80C370C+1
+ .word gSaveBlock2
+ .word gUnknown_Debug_2038A0C
+ .word gBattleTypeFlags
+ .word gUnknown_02023A14_50
+ .word gTasks
+ .word debug_80C373C+1
+._228:
+ mov r0, #0x8
+ and r0, r0, r2
+ cmp r0, #0
+ bne ._232 @cond_branch
+ mov r0, #0x1
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._233 @cond_branch
+._232:
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._236 @ gBattleTypeFlags
+ ldr r3, ._236 + 4 @ gUnknown_Debug_083F8068
+ ldr r2, ._236 + 8 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r2, #0x3]
+ lsl r0, r0, #0x3
+ add r0, r0, r3
+ ldrb r0, [r0, #0x4]
+ strh r0, [r1]
+ ldr r1, ._236 + 12 @ gUnknown_02023A14_50
+ mov r0, #0x8
+ strb r0, [r1]
+ ldrb r0, [r2, #0x3]
+ lsl r0, r0, #0x3
+ add r0, r0, r3
+ ldrb r0, [r0, #0x5]
+ strb r0, [r2, #0xc]
+ ldrb r0, [r2, #0x3]
+ sub r0, r0, #0x1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x1
+ bhi ._234 @cond_branch
+ str r4, [sp]
+ mov r0, #0x0
+ mov r1, #0x1
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r0, ._236 + 16 @ gTasks
+ lsl r1, r5, #0x2
+ add r1, r1, r5
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._236 + 20 @ debug_80C4A60
+ str r0, [r1]
+ b ._247
+._237:
+ .align 2, 0
+._236:
+ .word gBattleTypeFlags
+ .word gUnknown_Debug_083F8068
+ .word gUnknown_Debug_2038A0C
+ .word gUnknown_02023A14_50
+ .word gTasks
+ .word debug_80C4A60+1
+._234:
+ ldr r0, ._239 @ gTasks
+ lsl r1, r5, #0x2
+ add r1, r1, r5
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._239 + 4 @ debug_80C4F48
+ str r0, [r1]
+ b ._247
+._240:
+ .align 2, 0
+._239:
+ .word gTasks
+ .word debug_80C4F48+1
+._233:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._242 @cond_branch
+ ldr r1, ._244 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r1, #0x3]
+ cmp r0, #0
+ beq ._242 @cond_branch
+ sub r0, r0, #0x1
+ b ._243
+._245:
+ .align 2, 0
+._244:
+ .word gUnknown_Debug_2038A0C
+._242:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._247 @cond_branch
+ ldr r1, ._248 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r1, #0x3]
+ cmp r0, #0x1
+ bhi ._247 @cond_branch
+ add r0, r0, #0x1
+._243:
+ strb r0, [r1, #0x3]
+ ldr r1, ._248 + 4 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._248 + 8 @ debug_80C48A0
+._229:
+ str r1, [r0]
+._247:
+ add sp, sp, #0x4
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._249:
+ .align 2, 0
+._248:
+ .word gUnknown_Debug_2038A0C
+ .word gTasks
+ .word debug_80C48A0+1
+
+ thumb_func_end debug_80C4900
+
+ thumb_func_start debug_80C4A60
+debug_80C4A60:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r0, ._250 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x5]
+ lsl r0, r0, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ str r1, [sp]
+ mov r1, #0x10
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r1, ._250 + 4 @ 0x4000042
+ ldr r2, ._250 + 8 @ 0x79ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._250 + 12 @ 0x17f
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._250 + 16 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._250 + 20 @ debug_80C4AC4
+ str r1, [r0]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._251:
+ .align 2, 0
+._250:
+ .word gUnknown_Debug_2038A0C
+ .word 0x4000042
+ .word 0x79ef
+ .word 0x17f
+ .word gTasks
+ .word debug_80C4AC4+1
+
+ thumb_func_end debug_80C4A60
+
+ thumb_func_start debug_80C4AC4
+debug_80C4AC4:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r7, ._255 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r7, #0x4]
+ mov ip, r0
+ ldrb r5, [r7, #0x5]
+ mov r1, ip
+ add r0, r1, r5
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r2, ._255 + 4 @ gMain
+ mov r8, r2
+ ldrh r2, [r2, #0x2e]
+ mov r3, #0x1
+ and r3, r3, r2
+ add r4, r7, #0
+ cmp r3, #0
+ beq ._252 @cond_branch
+ ldr r0, ._255 + 8 @ gUnknown_Debug_083F80D8
+ lsl r1, r1, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r1, [r1]
+ ldr r3, ._255 + 12 @ byte_3005E30
+ ldr r2, [r3]
+ add r0, r2, #0
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._253 @cond_branch
+ ldr r0, ._255 + 16 @ 0xffff
+ eor r1, r1, r0
+ and r2, r2, r1
+ b ._254
+._256:
+ .align 2, 0
+._255:
+ .word gUnknown_Debug_2038A0C
+ .word gMain
+ .word gUnknown_Debug_083F80D8
+ .word byte_3005E30
+ .word 0xffff
+._253:
+ orr r2, r2, r1
+._254:
+ str r2, [r3]
+ ldrb r0, [r4, #0x4]
+ bl debug_80C4C44
+ ldr r1, ._258 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._258 + 4 @ debug_80C4A60
+ str r1, [r0]
+ b ._274
+._259:
+ .align 2, 0
+._258:
+ .word gTasks
+ .word debug_80C4A60+1
+._252:
+ mov r0, #0x2
+ and r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0
+ beq ._260 @cond_branch
+ str r3, [sp]
+ mov r0, #0x0
+ mov r1, #0x10
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r0, ._262 @ gTasks
+ lsl r1, r6, #0x2
+ add r1, r1, r6
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._262 + 4 @ debug_80C48A0
+ b ._261
+._263:
+ .align 2, 0
+._262:
+ .word gTasks
+ .word debug_80C48A0+1
+._260:
+ mov r0, #0x8
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._264 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._266 @ gTrainerBattleOpponent
+ mov r2, #0x80
+ lsl r2, r2, #0x3
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._266 + 4 @ 0x2017000
+ ldrb r2, [r1, #0x1]
+ mov r0, #0x11
+ neg r0, r0
+ and r0, r0, r2
+ strb r0, [r1, #0x1]
+ mov r0, #0xac
+ strb r0, [r1, #0x2]
+ mov r0, #0xff
+ strb r0, [r1, #0x3]
+ strb r4, [r1, #0x9]
+ strb r4, [r1, #0xa]
+ strb r4, [r1, #0xb]
+ strb r4, [r1, #0xc]
+ ldr r1, ._266 + 8 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._266 + 12 @ debug_80C4F48
+ str r1, [r0]
+ b ._274
+._267:
+ .align 2, 0
+._266:
+ .word gTrainerBattleOpponent
+ .word 0x2017000
+ .word gTasks
+ .word debug_80C4F48+1
+._264:
+ mov r0, r8
+ ldrh r1, [r0, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._268 @cond_branch
+ lsl r0, r5, #0x18
+ cmp r0, #0
+ beq ._269 @cond_branch
+ sub r0, r5, #1
+ strb r0, [r7, #0x5]
+ b ._277
+._269:
+ mov r1, ip
+ lsl r0, r1, #0x18
+ cmp r0, #0
+ beq ._277 @cond_branch
+ mov r0, ip
+ sub r0, r0, #0x1
+ b ._272
+._268:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._274 @cond_branch
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x8
+ bhi ._274 @cond_branch
+ cmp r0, #0x4
+ bhi ._275 @cond_branch
+ add r0, r5, #1
+ strb r0, [r7, #0x5]
+ b ._277
+._275:
+ mov r2, ip
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x3
+ bhi ._277 @cond_branch
+ mov r0, ip
+ add r0, r0, #0x1
+._272:
+ strb r0, [r7, #0x4]
+ ldrb r0, [r7, #0x4]
+ bl debug_80C4C44
+._277:
+ ldr r0, ._278 @ gTasks
+ lsl r1, r6, #0x2
+ add r1, r1, r6
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._278 + 4 @ debug_80C4A60
+._261:
+ str r0, [r1]
+._274:
+ add sp, sp, #0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._279:
+ .align 2, 0
+._278:
+ .word gTasks
+ .word debug_80C4A60+1
+
+ thumb_func_end debug_80C4AC4
+
+ thumb_func_start debug_80C4C44
+debug_80C4C44:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xfffffff0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov sl, r0
+ mov r2, #0x0
+ mov r5, sp
+._290:
+ mov r0, sl
+ add r6, r2, r0
+ add r4, r6, #0
+ add r1, r2, #1
+ mov r8, r1
+ cmp r4, #0x9
+ bgt ._280 @cond_branch
+ mov r3, #0x0
+ ldr r1, ._288 @ gUnknown_Debug_083F80D8
+ lsl r0, r4, #0x3
+ add r0, r0, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ ldr r7, ._288 + 4 @ byte_3005E30
+ mov r9, r7
+ lsl r2, r2, #0x1
+ mov ip, r2
+ cmp r0, #0xff
+ beq ._282 @cond_branch
+ add r7, r1, #0
+._283:
+ add r0, r3, #3
+ mov r1, sp
+ add r2, r1, r0
+ lsl r1, r6, #0x3
+ add r1, r1, r7
+ ldr r0, [r1]
+ add r0, r0, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ ldr r0, [r1]
+ add r0, r0, r3
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._282 @cond_branch
+ cmp r3, #0xb
+ bls ._283 @cond_branch
+._282:
+ cmp r3, #0xb
+ bhi ._284 @cond_branch
+ mov r1, #0x0
+._285:
+ add r0, r3, #3
+ add r0, r0, sp
+ strb r1, [r0]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0xb
+ bls ._285 @cond_branch
+._284:
+ mov r0, #0xff
+ strb r0, [r5, #0xe]
+ mov r0, #0xfc
+ strb r0, [r5]
+ mov r2, #0x1
+ strb r2, [r5, #0x1]
+ add r1, r2, #0
+ LSL r1, r4
+ mov r3, r9
+ ldr r0, [r3]
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._286 @cond_branch
+ mov r0, #0x3
+ strb r0, [r5, #0x2]
+ b ._287
+._289:
+ .align 2, 0
+._288:
+ .word gUnknown_Debug_083F80D8
+ .word byte_3005E30
+._286:
+ strb r2, [r5, #0x2]
+._287:
+ mov r2, ip
+ add r2, r2, #0x3
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r0, sp
+ mov r1, #0x11
+ bl Menu_PrintText
+._280:
+ mov r7, r8
+ lsl r0, r7, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x5
+ bls ._290 @cond_branch
+ add sp, sp, #0x10
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C4C44
+
+ thumb_func_start debug_80C4D14
+debug_80C4D14:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xffffffd0
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r1, ._291 @ gUnknown_Debug_083F81C7
+ mov r0, sp
+ mov r2, #0xf
+ bl memcpy
+ add r5, sp, #0x10
+ ldr r1, ._291 + 4 @ gUnknown_Debug_083F81F5
+ add r0, r5, #0
+ mov r2, #0xd
+ bl memcpy
+ add r6, sp, #0x20
+ ldr r1, ._291 + 8 @ gUnknown_Debug_083F8202
+ add r0, r6, #0
+ mov r2, #0xf
+ bl memcpy
+ mov r0, #0x0
+ mov r1, #0x10
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r0, sp
+ mov r1, #0x1
+ mov r2, #0x11
+ bl Menu_PrintText
+ add r0, r5, #0
+ mov r1, #0x14
+ mov r2, #0x11
+ bl Menu_PrintText
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ add r0, r6, #0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._291 + 12 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x6]
+ bl debug_80C4F00
+ mov r0, #0xf
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r1, ._291 + 16 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._291 + 20 @ debug_80C4DB8
+ str r1, [r0]
+ add sp, sp, #0x30
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._292:
+ .align 2, 0
+._291:
+ .word gUnknown_Debug_083F81C7
+ .word gUnknown_Debug_083F81F5
+ .word gUnknown_Debug_083F8202
+ .word gUnknown_Debug_2038A0C
+ .word gTasks
+ .word debug_80C4DB8+1
+
+ thumb_func_end debug_80C4D14
+
+ thumb_func_start debug_80C4DB8
+debug_80C4DB8:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r0, ._293 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x7]
+ lsl r0, r0, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ str r1, [sp]
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r1, ._293 + 4 @ 0x4000042
+ ldr r2, ._293 + 8 @ 0x177
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ add r2, r2, #0x8
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._293 + 12 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._293 + 16 @ debug_80C4E18
+ str r1, [r0]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._294:
+ .align 2, 0
+._293:
+ .word gUnknown_Debug_2038A0C
+ .word 0x4000042
+ .word 0x177
+ .word gTasks
+ .word debug_80C4E18+1
+
+ thumb_func_end debug_80C4DB8
+
+ thumb_func_start debug_80C4E18
+debug_80C4E18:
+ push {r4, r5, r6, r7, lr}
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r5, ._297 @ gUnknown_Debug_2038A0C
+ ldrb r3, [r5, #0x6]
+ ldrb r2, [r5, #0x7]
+ add r0, r3, r2
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r7, ._297 + 4 @ gMain
+ ldrh r1, [r7, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._295 @cond_branch
+ ldr r0, ._297 + 8 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._297 + 12 @ debug_80C42B8
+ b ._296
+._298:
+ .align 2, 0
+._297:
+ .word gUnknown_Debug_2038A0C
+ .word gMain
+ .word gTasks
+ .word debug_80C42B8+1
+._295:
+ mov r0, #0x8
+ and r0, r0, r1
+ cmp r0, #0
+ bne ._299 @cond_branch
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._300 @cond_branch
+._299:
+ mov r0, #0x5
+ bl PlaySE
+ ldr r2, ._302 @ gBattleTerrain
+ ldr r1, ._302 + 4 @ gUnknown_Debug_083F814C
+ lsl r0, r6, #0x3
+ add r0, r0, r1
+ ldrb r0, [r0, #0x4]
+ strb r0, [r2]
+ ldr r1, ._302 + 8 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._302 + 12 @ debug_80C5158
+ str r1, [r0]
+ b ._310
+._303:
+ .align 2, 0
+._302:
+ .word gBattleTerrain
+ .word gUnknown_Debug_083F814C
+ .word gTasks
+ .word debug_80C5158+1
+._300:
+ ldrh r1, [r7, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._304 @cond_branch
+ lsl r0, r2, #0x18
+ cmp r0, #0
+ beq ._305 @cond_branch
+ sub r0, r2, #1
+ strb r0, [r5, #0x7]
+ b ._313
+._305:
+ lsl r0, r3, #0x18
+ cmp r0, #0
+ beq ._313 @cond_branch
+ sub r0, r3, #1
+ b ._308
+._304:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._310 @cond_branch
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x7
+ bhi ._310 @cond_branch
+ cmp r0, #0x4
+ bhi ._311 @cond_branch
+ add r0, r2, #1
+ strb r0, [r5, #0x7]
+ b ._313
+._311:
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x2
+ bhi ._313 @cond_branch
+ add r0, r3, #1
+._308:
+ strb r0, [r5, #0x6]
+ ldrb r0, [r5, #0x6]
+ bl debug_80C4F00
+._313:
+ ldr r0, ._314 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._314 + 4 @ debug_80C4DB8
+._296:
+ str r0, [r1]
+._310:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._315:
+ .align 2, 0
+._314:
+ .word gTasks
+ .word debug_80C4DB8+1
+
+ thumb_func_end debug_80C4E18
+
+ thumb_func_start debug_80C4F00
+debug_80C4F00:
+ push {r4, r5, r6, lr}
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ mov r0, #0x1
+ mov r1, #0x3
+ mov r2, #0xd
+ mov r3, #0xe
+ bl Menu_BlankWindowRect
+ mov r4, #0x0
+ ldr r6, ._318 @ gUnknown_Debug_083F814C
+._317:
+ cmp r4, #0x8
+ bhi ._316 @cond_branch
+ add r0, r4, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r6
+ ldr r0, [r0]
+ lsl r2, r4, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r2, r2, r1
+ lsr r2, r2, #0x18
+ mov r1, #0x2
+ bl Menu_PrintText
+._316:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0x5
+ bls ._317 @cond_branch
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._319:
+ .align 2, 0
+._318:
+ .word gUnknown_Debug_083F814C
+
+ thumb_func_end debug_80C4F00
+
+ thumb_func_start debug_80C4F48
+debug_80C4F48:
+ push {r4, r5, r6, lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6}
+ add sp, sp, #0xffffffc4
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r1, ._320 @ gUnknown_Debug_083F8211
+ mov r0, sp
+ mov r2, #0x11
+ bl memcpy
+ add r6, sp, #0x14
+ ldr r1, ._320 + 4 @ gUnknown_Debug_083F81A0
+ add r0, r6, #0
+ mov r2, #0xd
+ bl memcpy
+ add r5, sp, #0x24
+ ldr r1, ._320 + 8 @ gUnknown_Debug_083F8222
+ add r0, r5, #0
+ mov r2, #0xd
+ bl memcpy
+ add r0, sp, #0x34
+ mov r9, r0
+ ldr r1, ._320 + 12 @ gUnknown_Debug_083F822F
+ mov r2, #0x4
+ bl memcpy
+ add r0, sp, #0x38
+ mov r8, r0
+ ldr r1, ._320 + 16 @ gUnknown_Debug_083F8233
+ mov r2, #0x4
+ bl memcpy
+ mov r0, #0x0
+ mov r1, #0x10
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r0, sp
+ mov r1, #0x1
+ mov r2, #0x11
+ bl Menu_PrintText
+ add r0, r6, #0
+ mov r1, #0x14
+ mov r2, #0x11
+ bl Menu_PrintText
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ add r0, r5, #0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r0, #0x1
+ mov r1, #0x3
+ mov r2, #0xd
+ mov r3, #0xe
+ bl Menu_BlankWindowRect
+ add r0, r5, #0
+ mov r1, #0x2
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r0, r9
+ mov r1, #0x2
+ mov r2, #0x3
+ bl Menu_PrintText
+ mov r0, r8
+ mov r1, #0x2
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0xf
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0xf
+ bl Menu_DrawStdWindowFrame
+ ldr r1, ._320 + 20 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._320 + 24 @ debug_80C5038
+ str r1, [r0]
+ add sp, sp, #0x3c
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._321:
+ .align 2, 0
+._320:
+ .word gUnknown_Debug_083F8211
+ .word gUnknown_Debug_083F81A0
+ .word gUnknown_Debug_083F8222
+ .word gUnknown_Debug_083F822F
+ .word gUnknown_Debug_083F8233
+ .word gTasks
+ .word debug_80C5038+1
+
+ thumb_func_end debug_80C4F48
+
+ thumb_func_start debug_80C5038
+debug_80C5038:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ ldr r0, ._322 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x8]
+ lsl r0, r0, #0x19
+ mov r1, #0xc0
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ lsr r0, r0, #0x18
+ mov r1, #0x1
+ str r1, [sp]
+ mov r2, #0x1
+ mov r3, #0xe
+ bl debug_80C38E4
+ ldr r1, ._322 + 4 @ 0x4000042
+ ldr r2, ._322 + 8 @ 0x177
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ add r2, r2, #0x8
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._322 + 12 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._322 + 16 @ debug_80C5098
+ str r1, [r0]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._323:
+ .align 2, 0
+._322:
+ .word gUnknown_Debug_2038A0C
+ .word 0x4000042
+ .word 0x177
+ .word gTasks
+ .word debug_80C5098+1
+
+ thumb_func_end debug_80C5038
+
+ thumb_func_start debug_80C5098
+debug_80C5098:
+ push {r4, lr}
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r1, ._326 @ gMain
+ ldrh r2, [r1, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r2
+ add r3, r1, #0
+ cmp r0, #0
+ beq ._324 @cond_branch
+ ldr r0, ._326 + 4 @ gTasks
+ lsl r1, r4, #0x2
+ add r1, r1, r4
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._326 + 8 @ debug_80C47BC
+ str r0, [r1]
+ b ._339
+._327:
+ .align 2, 0
+._326:
+ .word gMain
+ .word gTasks
+ .word debug_80C47BC+1
+._324:
+ mov r0, #0x8
+ and r0, r0, r2
+ cmp r0, #0
+ bne ._328 @cond_branch
+ mov r0, #0x1
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._329 @cond_branch
+._328:
+ mov r0, #0x5
+ bl PlaySE
+ ldr r1, ._331 @ gSaveBlock2
+ ldr r0, ._331 + 4 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r0, #0x8]
+ strb r0, [r1, #0x8]
+ ldr r1, ._331 + 8 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._331 + 12 @ debug_80C42B8
+ b ._330
+._332:
+ .align 2, 0
+._331:
+ .word gSaveBlock2
+ .word gUnknown_Debug_2038A0C
+ .word gTasks
+ .word debug_80C42B8+1
+._329:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._334 @cond_branch
+ ldr r1, ._336 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r1, #0x8]
+ cmp r0, #0
+ beq ._334 @cond_branch
+ sub r0, r0, #0x1
+ b ._335
+._337:
+ .align 2, 0
+._336:
+ .word gUnknown_Debug_2038A0C
+._334:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._339 @cond_branch
+ ldr r1, ._340 @ gUnknown_Debug_2038A0C
+ ldrb r0, [r1, #0x8]
+ cmp r0, #0
+ bne ._339 @cond_branch
+ add r0, r0, #0x1
+._335:
+ strb r0, [r1, #0x8]
+ ldr r1, ._340 + 4 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._340 + 8 @ debug_80C5038
+._330:
+ str r1, [r0]
+._339:
+ pop {r4}
+ pop {r0}
+ bx r0
+._341:
+ .align 2, 0
+._340:
+ .word gUnknown_Debug_2038A0C
+ .word gTasks
+ .word debug_80C5038+1
+
+ thumb_func_end debug_80C5098
+
+ thumb_func_start debug_80C5158
+debug_80C5158:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._342 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r0, ._342 + 4 @ debug_80C5174
+ str r0, [r1]
+ bx lr
+._343:
+ .align 2, 0
+._342:
+ .word gTasks
+ .word debug_80C5174+1
+
+ thumb_func_end debug_80C5158
+
+ thumb_func_start debug_80C5174
+debug_80C5174:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._344 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r0, ._344 + 4 @ debug_80C5190
+ str r0, [r1]
+ bx lr
+._345:
+ .align 2, 0
+._344:
+ .word gTasks
+ .word debug_80C5190+1
+
+ thumb_func_end debug_80C5174
+
+ thumb_func_start debug_80C5190
+debug_80C5190:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._346 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r0, ._346 + 4 @ debug_80C51AC
+ str r0, [r1]
+ bx lr
+._347:
+ .align 2, 0
+._346:
+ .word gTasks
+ .word debug_80C51AC+1
+
+ thumb_func_end debug_80C5190
+
+ thumb_func_start debug_80C51AC
+debug_80C51AC:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._348 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r0, ._348 + 4 @ debug_80C51C8
+ str r0, [r1]
+ bx lr
+._349:
+ .align 2, 0
+._348:
+ .word gTasks
+ .word debug_80C51C8+1
+
+ thumb_func_end debug_80C51AC
+
+ thumb_func_start debug_80C51C8
+debug_80C51C8:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._350 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r0, ._350 + 4 @ debug_80C51E4
+ str r0, [r1]
+ bx lr
+._351:
+ .align 2, 0
+._350:
+ .word gTasks
+ .word debug_80C51E4+1
+
+ thumb_func_end debug_80C51C8
+
+ thumb_func_start debug_80C51E4
+debug_80C51E4:
+ push {lr}
+ bl sub_80408BC
+ ldr r0, ._352 @ gMain
+ ldr r1, ._352 + 4 @ debug_80C41A8
+ str r1, [r0, #0x8]
+ ldr r0, ._352 + 8 @ unref_sub_800D684
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+._353:
+ .align 2, 0
+._352:
+ .word gMain
+ .word debug_80C41A8+1
+ .word unref_sub_800D684+1
+
+ thumb_func_end debug_80C51E4
+
+ thumb_func_start debug_80C5208
+debug_80C5208:
+ push {r4, r5, r6, lr}
+ ldr r1, ._355 @ gUnknown_Debug_2038A1C
+ ldr r0, ._355 + 4 @ 0x2018000
+ str r0, [r1]
+ mov r3, #0x0
+ add r6, r1, #0
+ ldr r4, ._355 + 8 @ gSaveBlock2
+ add r5, r6, #0
+ mov r2, #0x0
+._354:
+ ldr r0, [r5]
+ lsl r1, r3, #0x2
+ add r0, r0, #0x64
+ add r0, r0, r1
+ str r2, [r0]
+ add r0, r3, #1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ cmp r3, #0x3f
+ bls ._354 @cond_branch
+ ldr r2, [r6]
+ mov r0, #0xfc
+ str r0, [r2, #0x64]
+ ldrb r1, [r4, #0xa]
+ ldrb r0, [r4, #0xb]
+ lsl r0, r0, #0x8
+ orr r1, r1, r0
+ ldrb r0, [r4, #0xc]
+ lsl r0, r0, #0x10
+ orr r1, r1, r0
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #0x18
+ orr r1, r1, r0
+ str r1, [r2, #0x70]
+ bl Random
+ add r4, r0, #0
+ bl Random
+ ldr r1, [r6]
+ lsl r4, r4, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r4, r4, r0
+ str r4, [r1, #0x74]
+ mov r0, #0x1
+ str r0, [r1, #0x68]
+ str r0, [r1, #0x6c]
+ bl debug_80C5C94
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._356:
+ .align 2, 0
+._355:
+ .word gUnknown_Debug_2038A1C
+ .word 0x2018000
+ .word gSaveBlock2
+
+ thumb_func_end debug_80C5208
+
+ thumb_func_start debug_80C527C
+debug_80C527C:
+ push {r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r5, #0x0
+ ldr r7, ._359 @ gPlayerPartyCount
+._361:
+ mov r0, #0x64
+ add r1, r5, #0
+ mul r1, r1, r0
+ ldr r0, ._359 + 4 @ gPlayerParty
+ add r4, r1, r0
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #0x0
+ bl GetMonData
+ cmp r0, #0
+ bne ._357 @cond_branch
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #0x64
+ bl memcpy
+ add r0, r5, #1
+ strb r0, [r7]
+ mov r0, #0x0
+ b ._358
+._360:
+ .align 2, 0
+._359:
+ .word gPlayerPartyCount
+ .word gPlayerParty
+._357:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #0x5
+ bls ._361 @cond_branch
+ ldr r0, ._362 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ bl SendMonToPC
+ mov r0, #0x1
+._358:
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._363:
+ .align 2, 0
+._362:
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C527C
+
+ thumb_func_start InitCreatePokemon
+InitCreatePokemon:
+ push {r4, r5, lr}
+ add sp, sp, #0xffffffd4
+ ldr r1, ._364 @ gUnknown_Debug_083F8733
+ add r0, sp, #0x4
+ mov r2, #0x25
+ bl memcpy
+ bl debug_80C35DC
+ mov r0, #0x1
+ neg r0, r0
+ mov r4, #0x0
+ str r4, [sp]
+ mov r1, #0x0
+ mov r2, #0x10
+ mov r3, #0x0
+ bl BeginNormalPaletteFade
+ ldr r0, ._364 + 4 @ 0x4000050
+ mov r5, #0x0
+ strh r4, [r0]
+ add r0, r0, #0x2
+ strh r4, [r0]
+ add r0, r0, #0x2
+ strh r4, [r0]
+ ldr r3, ._364 + 8 @ 0x4000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, ._364 + 12 @ 0x4000200
+ ldrh r0, [r4]
+ mov r1, #0x1
+ orr r0, r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, ._364 + 16 @ 0x4000004
+ ldrh r0, [r2]
+ mov r1, #0x8
+ orr r0, r0, r1
+ strh r0, [r2]
+ ldr r0, ._364 + 20 @ debug_80C3758
+ bl SetVBlankCallback
+ ldr r0, ._364 + 24 @ debug_80C370C
+ bl SetMainCallback2
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x3
+ bl Menu_DrawStdWindowFrame
+ add r0, sp, #0x4
+ mov r1, #0x1
+ mov r2, #0x1
+ bl Menu_PrintText
+ mov r1, #0x80
+ lsl r1, r1, #0x13
+ mov r2, #0x8a
+ lsl r2, r2, #0x5
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, ._364 + 28 @ debug_80C53A4
+ mov r1, #0x0
+ bl CreateTask
+ bl debug_80C5208
+ ldr r1, ._364 + 32 @ gUnknown_Debug_2038A1C
+ ldr r0, [r1]
+ mov r2, #0xb4
+ lsl r2, r2, #0x1
+ add r0, r0, r2
+ strb r5, [r0]
+ ldr r0, [r1]
+ ldr r1, ._364 + 36 @ 0x169
+ add r0, r0, r1
+ strb r5, [r0]
+ add sp, sp, #0x2c
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+._365:
+ .align 2, 0
+._364:
+ .word gUnknown_Debug_083F8733
+ .word 0x4000050
+ .word 0x4000208
+ .word 0x4000200
+ .word 0x4000004
+ .word debug_80C3758+1
+ .word debug_80C370C+1
+ .word debug_80C53A4+1
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+
+ thumb_func_end InitCreatePokemon
+
+ thumb_func_start debug_80C53A4
+debug_80C53A4:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ ldr r2, ._366 @ gTasks
+ lsl r1, r0, #0x2
+ add r1, r1, r0
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r0, ._366 + 4 @ debug_80C53C0
+ str r0, [r1]
+ bx lr
+._367:
+ .align 2, 0
+._366:
+ .word gTasks
+ .word debug_80C53C0+1
+
+ thumb_func_end debug_80C53A4
+
+ thumb_func_start debug_80C53C0
+debug_80C53C0:
+ push {r4, lr}
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ bl debug_80C6384
+ mov r0, #0x0
+ bl debug_80C627C
+ ldr r1, ._368 @ gTasks
+ lsl r0, r4, #0x2
+ add r0, r0, r4
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._368 + 4 @ debug_80C53F0
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+._369:
+ .align 2, 0
+._368:
+ .word gTasks
+ .word debug_80C53F0+1
+
+ thumb_func_end debug_80C53C0
+
+ thumb_func_start debug_80C53F0
+debug_80C53F0:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, ._372 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r2, #0x1
+ and r2, r2, r1
+ add r4, r0, #0
+ cmp r2, #0
+ beq ._370 @cond_branch
+ ldr r0, ._372 + 4 @ gUnknown_Debug_2038A1C
+ ldr r3, [r0]
+ mov r0, #0xb2
+ lsl r0, r0, #0x1
+ add r2, r3, r0
+ ldr r1, ._372 + 8 @ gUnknown_Debug_083F8698
+ mov r4, #0xb4
+ lsl r4, r4, #0x1
+ add r0, r3, r4
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r6, ._372 + 12 @ 0x169
+ add r1, r3, r6
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ add r0, r0, r1
+ ldrb r1, [r0]
+ lsl r1, r1, #0x2
+ add r0, r3, #0
+ add r0, r0, #0x64
+ add r0, r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ mov r0, #0xb5
+ lsl r0, r0, #0x1
+ add r1, r3, r0
+ mov r0, #0x0
+ strb r0, [r1]
+ bl debug_80C643C
+ ldr r1, ._372 + 16 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._372 + 20 @ debug_80C55E4
+ b ._375
+._373:
+ .align 2, 0
+._372:
+ .word gMain
+ .word gUnknown_Debug_2038A1C
+ .word gUnknown_Debug_083F8698
+ .word 0x169
+ .word gTasks
+ .word debug_80C55E4+1
+._370:
+ mov r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._374 @cond_branch
+ mov r0, #0x1
+ neg r0, r0
+ str r2, [sp]
+ mov r1, #0x0
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r0, ._376 @ debug_80C370C
+ bl SetMainCallback2
+ ldr r1, ._376 + 4 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._376 + 8 @ debug_80C373C
+ b ._375
+._377:
+ .align 2, 0
+._376:
+ .word debug_80C370C+1
+ .word gTasks
+ .word debug_80C373C+1
+._374:
+ mov r0, #0x8
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._378 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ bl debug_80C5FFC
+ ldr r0, ._381 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ bl debug_80C527C
+ add r4, r0, #0
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ mov r0, #0x3
+ mov r1, #0x8
+ mov r2, #0x1a
+ mov r3, #0xb
+ bl Menu_DrawStdWindowFrame
+ cmp r4, #0
+ beq ._379 @cond_branch
+ ldr r0, ._381 + 4 @ gUnknown_Debug_083F872A
+ mov r1, #0x4
+ mov r2, #0x9
+ bl Menu_PrintText
+ b ._380
+._382:
+ .align 2, 0
+._381:
+ .word gUnknown_Debug_2038A1C
+ .word gUnknown_Debug_083F872A
+._379:
+ ldr r0, ._384 @ gUnknown_Debug_083F8720
+ mov r1, #0x4
+ mov r2, #0x9
+ bl Menu_PrintText
+._380:
+ ldr r0, ._384 + 4 @ gTasks
+ lsl r1, r5, #0x2
+ add r1, r1, r5
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._384 + 8 @ debug_80C5708
+ str r0, [r1]
+ b ._400
+._385:
+ .align 2, 0
+._384:
+ .word gUnknown_Debug_083F8720
+ .word gTasks
+ .word debug_80C5708+1
+._378:
+ mov r0, #0x4
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._386 @cond_branch
+ ldr r0, ._388 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ ldr r4, [r0, #0x64]
+ lsl r4, r4, #0x10
+ lsr r4, r4, #0x10
+ add r0, r4, #0
+ mov r1, #0x2
+ bl GetSetPokedexFlag
+ add r0, r4, #0
+ mov r1, #0x3
+ bl GetSetPokedexFlag
+ mov r0, #0x5
+ bl PlaySE
+ b ._400
+._389:
+ .align 2, 0
+._388:
+ .word gUnknown_Debug_2038A1C
+._386:
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._390 @cond_branch
+ mov r0, #0x2
+ bl debug_80C627C
+ b ._400
+._390:
+ mov r0, #0x80
+ and r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x10
+ cmp r3, #0
+ beq ._392 @cond_branch
+ mov r0, #0x1
+ bl debug_80C627C
+ b ._400
+._392:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._395 @cond_branch
+ ldr r2, ._397 @ gUnknown_Debug_2038A1C
+ ldr r0, [r2]
+ mov r6, #0xb4
+ lsl r6, r6, #0x1
+ add r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._395 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ ldr r1, ._397 + 4 @ 0x169
+ add r0, r0, r1
+ strb r3, [r0]
+ b ._396
+._398:
+ .align 2, 0
+._397:
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+._395:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._400 @cond_branch
+ ldr r3, ._401 @ gUnknown_Debug_2038A1C
+ ldr r0, [r3]
+ mov r4, #0xb4
+ lsl r4, r4, #0x1
+ add r2, r0, r4
+ ldrb r0, [r2]
+ cmp r0, #0x4
+ bhi ._400 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x0
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r6, ._401 + 4 @ 0x169
+ add r0, r0, r6
+ strb r1, [r0]
+._396:
+ ldr r1, ._401 + 8 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._401 + 12 @ debug_80C53C0
+._375:
+ str r1, [r0]
+._400:
+ add sp, sp, #0x4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._402:
+ .align 2, 0
+._401:
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+ .word gTasks
+ .word debug_80C53C0+1
+
+ thumb_func_end debug_80C53F0
+
+ thumb_func_start debug_80C55E4
+debug_80C55E4:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ add r6, r3, #0
+ ldr r1, ._405 @ gUnknown_Debug_083F8698
+ ldr r2, ._405 + 4 @ gUnknown_Debug_2038A1C
+ ldr r0, [r2]
+ mov ip, r0
+ mov r0, #0xb4
+ lsl r0, r0, #0x1
+ add r0, r0, ip
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._405 + 8 @ 0x169
+ add r1, r1, ip
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ add r0, r0, r1
+ ldrb r5, [r0]
+ add r7, r5, #0
+ ldr r1, ._405 + 12 @ gMain
+ ldrh r4, [r1, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r4
+ mov r8, r2
+ add r2, r1, #0
+ cmp r0, #0
+ beq ._403 @cond_branch
+ ldr r0, ._405 + 16 @ gTasks
+ lsl r1, r3, #0x2
+ add r1, r1, r3
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._405 + 20 @ debug_80C53C0
+ str r0, [r1]
+ b ._422
+._406:
+ .align 2, 0
+._405:
+ .word gUnknown_Debug_083F8698
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+ .word gMain
+ .word gTasks
+ .word debug_80C53C0+1
+._403:
+ mov r0, #0x2
+ and r0, r0, r4
+ cmp r0, #0
+ beq ._407 @cond_branch
+ lsl r1, r5, #0x2
+ mov r0, ip
+ add r0, r0, #0x64
+ add r0, r0, r1
+ mov r1, #0xb2
+ lsl r1, r1, #0x1
+ add r1, r1, ip
+ ldr r1, [r1]
+ str r1, [r0]
+ ldr r1, ._409 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._409 + 4 @ debug_80C53C0
+ str r1, [r0]
+ b ._422
+._410:
+ .align 2, 0
+._409:
+ .word gTasks
+ .word debug_80C53C0+1
+._407:
+ ldrh r1, [r2, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._411 @cond_branch
+ mov r0, #0x1
+ b ._412
+._411:
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._413 @cond_branch
+ mov r0, #0x2
+._412:
+ bl debug_80C6544
+ bl debug_80C643C
+ b ._422
+._413:
+ ldr r0, ._419 @ gUnknown_Debug_083F8554
+ lsl r1, r7, #0x3
+ add r0, r0, #0x4
+ add r1, r1, r0
+ ldr r1, [r1]
+ ldrb r0, [r1, #0x9]
+ cmp r0, #0xff
+ beq ._422 @cond_branch
+ mov r0, #0x20
+ and r0, r0, r4
+ cmp r0, #0
+ beq ._417 @cond_branch
+ mov r0, #0xb5
+ lsl r0, r0, #0x1
+ add ip, ip, r0
+ mov r0, ip
+ ldrb r3, [r0]
+ ldrb r0, [r1, #0x9]
+ sub r0, r0, #0x1
+ cmp r3, r0
+ bge ._417 @cond_branch
+ add r0, r3, #1
+ mov r1, ip
+ strb r0, [r1]
+ bl debug_80C643C
+ b ._422
+._420:
+ .align 2, 0
+._419:
+ .word gUnknown_Debug_083F8554
+._417:
+ ldrh r1, [r2, #0x2e]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._422 @cond_branch
+ mov r2, r8
+ ldr r0, [r2]
+ mov r2, #0xb5
+ lsl r2, r2, #0x1
+ add r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._422 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ bl debug_80C643C
+._422:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C55E4
+
+ thumb_func_start debug_80C5708
+debug_80C5708:
+ push {lr}
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r0, ._424 @ gMain
+ ldrh r1, [r0, #0x2e]
+ mov r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._423 @cond_branch
+ ldr r0, ._424 + 4 @ gTasks
+ lsl r1, r2, #0x2
+ add r1, r1, r2
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._424 + 8 @ debug_80C53C0
+ str r0, [r1]
+._423:
+ pop {r0}
+ bx r0
+._425:
+ .align 2, 0
+._424:
+ .word gMain
+ .word gTasks
+ .word debug_80C53C0+1
+
+ thumb_func_end debug_80C5708
+
+ thumb_func_start debug_80C5738
+debug_80C5738:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ add r6, r0, #0
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r8, r2
+ cmp r4, #0xfe
+ bne ._426 @cond_branch
+ ldr r1, ._428 @ gUnknown_Debug_083F850A
+ mov r2, #0x7
+ bl debug_80C689C
+ add r0, r6, #7
+ ldr r7, ._428 + 4 @ gUnknown_Debug_2038A1C
+ ldr r1, [r7]
+ add r1, r1, #0xf0
+ ldr r1, [r1]
+ mov r2, #0x3
+ mov r3, #0x1
+ bl debug_80C6678
+ mov r4, #0x0
+ strb r4, [r6, #0x13]
+ strb r4, [r6, #0x14]
+ add r0, r6, #0
+ add r0, r0, #0x15
+ ldr r1, ._428 + 8 @ gUnknown_Debug_083F8514
+ mov r2, #0x7
+ bl debug_80C689C
+ add r0, r6, #0
+ add r0, r0, #0x1c
+ ldr r1, [r7]
+ add r1, r1, #0xf4
+ ldr r1, [r1]
+ mov r2, #0x3
+ mov r3, #0x1
+ bl debug_80C6678
+ add r0, r6, #0
+ add r0, r0, #0x28
+ strb r4, [r0]
+ add r0, r0, #0x1
+ strb r4, [r0]
+ add r0, r0, #0x1
+ ldr r1, ._428 + 12 @ gUnknown_Debug_083F851C
+ mov r2, #0x9
+ bl debug_80C689C
+ add r0, r6, #0
+ add r0, r0, #0x31
+ ldr r1, [r7]
+ add r1, r1, #0xf8
+._431:
+ ldr r1, [r1]
+ mov r2, #0x3
+ mov r3, #0x1
+ bl debug_80C6678
+ b ._517
+._429:
+ .align 2, 0
+._428:
+ .word gUnknown_Debug_083F850A
+ .word gUnknown_Debug_2038A1C
+ .word gUnknown_Debug_083F8514
+ .word gUnknown_Debug_083F851C
+._426:
+ cmp r4, #0xfd
+ bne ._430 @cond_branch
+ ldr r1, ._432 @ gUnknown_Debug_083F8524
+ add r0, r6, #0
+ mov r2, #0x9
+ bl debug_80C689C
+ add r0, r6, #0
+ add r0, r0, #0x9
+ ldr r7, ._432 + 4 @ gUnknown_Debug_2038A1C
+ ldr r1, [r7]
+ add r1, r1, #0xfc
+ ldr r1, [r1]
+ mov r2, #0x3
+ mov r3, #0x1
+ bl debug_80C6678
+ mov r4, #0x0
+ strb r4, [r6, #0x15]
+ strb r4, [r6, #0x16]
+ add r0, r6, #0
+ add r0, r0, #0x17
+ ldr r1, ._432 + 8 @ gUnknown_Debug_083F852D
+ mov r2, #0x9
+ bl debug_80C689C
+ add r0, r6, #0
+ add r0, r0, #0x20
+ ldr r1, [r7]
+ mov r2, #0x80
+ lsl r2, r2, #0x1
+ add r1, r1, r2
+ ldr r1, [r1]
+ mov r2, #0x3
+ mov r3, #0x1
+ bl debug_80C6678
+ add r0, r6, #0
+ add r0, r0, #0x2c
+ strb r4, [r0]
+ add r0, r0, #0x1
+ strb r4, [r0]
+ add r0, r0, #0x1
+ ldr r1, ._432 + 12 @ gUnknown_Debug_083F8537
+ mov r2, #0x9
+ bl debug_80C689C
+ add r0, r6, #0
+ add r0, r0, #0x37
+ ldr r1, [r7]
+ mov r3, #0x82
+ lsl r3, r3, #0x1
+ add r1, r1, r3
+ b ._431
+._433:
+ .align 2, 0
+._432:
+ .word gUnknown_Debug_083F8524
+ .word gUnknown_Debug_2038A1C
+ .word gUnknown_Debug_083F852D
+ .word gUnknown_Debug_083F8537
+._430:
+ mov r1, #0x0
+ lsl r5, r4, #0x3
+ mov r2, #0x0
+._434:
+ add r0, r6, r1
+ strb r2, [r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0xb
+ bls ._434 @cond_branch
+ ldr r0, ._437 @ gUnknown_Debug_083F8554
+ add r0, r5, r0
+ ldr r1, [r0]
+ add r0, r6, #0
+ mov r2, #0xb
+ bl debug_80C689C
+ mov r1, #0xc
+ mov r2, #0xff
+._435:
+ add r0, r6, r1
+ strb r2, [r0]
+ add r0, r1, #1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, #0xff
+ bls ._435 @cond_branch
+ ldr r0, ._437 @ gUnknown_Debug_083F8554
+ add r0, r0, #0x4
+ add r0, r5, r0
+ ldr r0, [r0]
+ ldrb r2, [r0, #0x9]
+ lsl r0, r2, #0x1a
+ lsr r5, r0, #0x18
+ cmp r4, #0x22
+ bhi ._436 @cond_branch
+ lsl r0, r4, #0x2
+ ldr r1, ._437 + 4 @
+ add r1, r0, r1
+ ldr r1, [r1]
+ add r7, r0, #0
+ mov pc, r1
+._438:
+ .align 2, 0
+._437:
+ .word gUnknown_Debug_083F8554
+ .word ._439
+._439:
+ .word ._440
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._445
+ .word ._446
+ .word ._450
+ .word ._450
+ .word ._450
+ .word ._450
+ .word ._451
+ .word ._452
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._472
+ .word ._473
+ .word ._474
+._436:
+ mov r0, #0xff
+ strb r0, [r6]
+ b ._517
+._440:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r1, ._477 @ gUnknown_Debug_2038A1C
+ mov r9, r1
+ ldr r1, [r1]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r1, [r1]
+ mov r3, r8
+ bl debug_80C6678
+ add r1, r5, r6
+ mov r0, #0x0
+ strb r0, [r1, #0xa]
+ mov r0, #0xfc
+ strb r0, [r1, #0xb]
+ mov r0, #0x1
+ strb r0, [r1, #0xc]
+ mov r2, r8
+ strb r2, [r1, #0xd]
+ add r4, r5, #0
+ add r4, r4, #0xe
+ add r4, r6, r4
+ mov r3, r9
+ ldr r0, [r3]
+ add r0, r0, #0x64
+ add r0, r0, r7
+ ldrh r0, [r0]
+ bl NationalPokedexNumToSpecies
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xb
+ mul r1, r1, r0
+ ldr r0, ._477 + 4 @ gSpeciesNames
+ add r1, r1, r0
+ add r0, r4, #0
+ mov r2, #0xa
+ bl debug_80C689C
+ b ._517
+._478:
+ .align 2, 0
+._477:
+ .word gUnknown_Debug_2038A1C
+ .word gSpeciesNames
+._445:
+ ldr r0, ._483 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ add r0, r0, #0x64
+ add r0, r0, r7
+ ldr r0, [r0]
+ cmp r0, #0x1
+ beq ._479 @cond_branch
+ cmp r0, #0x1
+ bcc ._480 @cond_branch
+ cmp r0, #0x2
+ beq ._481 @cond_branch
+ b ._517
+._484:
+ .align 2, 0
+._483:
+ .word gUnknown_Debug_2038A1C
+._480:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r1, ._486 @ gUnknown_Debug_083F8546
+ b ._488
+._487:
+ .align 2, 0
+._486:
+ .word gUnknown_Debug_083F8546
+._479:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r1, ._489 @ gUnknown_Debug_083F8541
+ b ._488
+._490:
+ .align 2, 0
+._489:
+ .word gUnknown_Debug_083F8541
+._481:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r1, ._492 @ gUnknown_Debug_083F8544
+._488:
+ mov r2, #0x2
+ bl debug_80C689C
+ b ._517
+._493:
+ .align 2, 0
+._492:
+ .word gUnknown_Debug_083F8544
+._450:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r4, ._495 @ gUnknown_Debug_2038A1C
+ ldr r1, [r4]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r1, [r1]
+ mov r3, r8
+ bl debug_80C6678
+ add r1, r5, r6
+ mov r0, #0x0
+ strb r0, [r1, #0xa]
+ mov r0, #0xfc
+ strb r0, [r1, #0xb]
+ mov r0, #0x1
+ strb r0, [r1, #0xc]
+ mov r0, r8
+ strb r0, [r1, #0xd]
+ add r0, r5, #0
+ add r0, r0, #0xe
+ add r0, r6, r0
+ ldr r1, [r4]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r2, [r1]
+ mov r1, #0xd
+ mul r1, r1, r2
+ ldr r2, ._495 + 4 @ gMoveNames
+ add r1, r1, r2
+ b ._494
+._496:
+ .align 2, 0
+._495:
+ .word gUnknown_Debug_2038A1C
+ .word gMoveNames
+._451:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r4, ._499 @ gUnknown_Debug_2038A1C
+ ldr r1, [r4]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r1, [r1]
+ mov r3, r8
+ bl debug_80C6678
+ add r1, r5, r6
+ mov r0, #0x0
+ strb r0, [r1, #0xa]
+ mov r0, #0xfc
+ strb r0, [r1, #0xb]
+ mov r0, #0x1
+ strb r0, [r1, #0xc]
+ mov r2, r8
+ strb r2, [r1, #0xd]
+ ldr r0, [r4]
+ add r0, r0, #0x64
+ add r0, r0, r7
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._497 @cond_branch
+ add r4, r5, #0
+ add r4, r4, #0xe
+ add r4, r6, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl ItemId_GetItem
+ add r1, r0, #0
+ add r0, r4, #0
+ b ._498
+._500:
+ .align 2, 0
+._499:
+ .word gUnknown_Debug_2038A1C
+._497:
+ add r0, r5, #0
+ add r0, r0, #0xe
+ add r0, r6, r0
+ ldr r1, ._502 @ gUnknown_Debug_083F8541
+._498:
+ mov r2, #0x9
+ bl debug_80C689C
+ b ._517
+._503:
+ .align 2, 0
+._502:
+ .word gUnknown_Debug_083F8541
+._452:
+ add r6, r6, #0xc
+ ldr r4, ._505 @ gUnknown_Debug_2038A1C
+ ldr r0, [r4]
+ ldr r0, [r0, #0x64]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl NationalPokedexNumToSpecies
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ ldr r1, [r4]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldrb r1, [r1]
+ bl GetAbilityBySpecies
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0xd
+ mul r1, r1, r0
+ ldr r0, ._505 + 4 @ gAbilityNames
+ add r1, r1, r0
+ add r0, r6, #0
+._494:
+ mov r2, #0xc
+ bl debug_80C689C
+ b ._517
+._506:
+ .align 2, 0
+._505:
+ .word gUnknown_Debug_2038A1C
+ .word gAbilityNames
+._474:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r2, ._508 @ gUnknown_Debug_083F86E8
+ ldr r1, ._508 + 4 @ gUnknown_Debug_2038A1C
+ ldr r1, [r1]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r1, [r1]
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r1, [r1]
+ b ._514
+._509:
+ .align 2, 0
+._508:
+ .word gUnknown_Debug_083F86E8
+ .word gUnknown_Debug_2038A1C
+._472:
+ add r0, r6, #0
+ add r0, r0, #0xc
+ ldr r1, ._511 @ gUnknown_Debug_2038A1C
+ ldr r1, [r1]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r1, [r1]
+ mov r3, r8
+ bl debug_80C6678
+ b ._517
+._512:
+ .align 2, 0
+._511:
+ .word gUnknown_Debug_2038A1C
+._473:
+ ldr r0, ._515 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ add r0, r0, #0x64
+ add r0, r0, r7
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._513 @cond_branch
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r1, ._515 + 4 @ gUnknown_Debug_083F854A
+ b ._514
+._516:
+ .align 2, 0
+._515:
+ .word gUnknown_Debug_2038A1C
+ .word gUnknown_Debug_083F854A
+._513:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r1, ._518 @ gUnknown_Debug_083F854D
+._514:
+ mov r2, #0x4
+ bl debug_80C689C
+ b ._517
+._519:
+ .align 2, 0
+._518:
+ .word gUnknown_Debug_083F854D
+._446:
+ add r0, r6, #0
+ add r0, r0, #0xa
+ ldr r2, ._520 @ gNatureNames
+ ldr r1, ._520 + 4 @ gUnknown_Debug_2038A1C
+ ldr r1, [r1]
+ add r1, r1, #0x64
+ add r1, r1, r7
+ ldr r1, [r1]
+ lsl r1, r1, #0x2
+ add r1, r1, r2
+ ldr r1, [r1]
+ mov r2, #0x5
+ bl debug_80C689C
+._517:
+ mov r0, #0x0
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r1}
+ bx r1
+._521:
+ .align 2, 0
+._520:
+ .word gNatureNames
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C5738
+
+ thumb_func_start debug_80C5B60
+debug_80C5B60:
+ lsl r0, r0, #0x18
+ ldr r1, ._522 @ gUnknown_Debug_2038A1C
+ ldr r1, [r1]
+ lsr r0, r0, #0x16
+ add r1, r1, #0x64
+ add r1, r1, r0
+ ldr r0, [r1]
+ bx lr
+._523:
+ .align 2, 0
+._522:
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C5B60
+
+ thumb_func_start debug_80C5B74
+debug_80C5B74:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ cmp r2, #0x18
+ bhi ._540 @cond_branch
+ lsl r0, r2, #0x2
+ ldr r1, ._526 @
+ add r1, r0, r1
+ ldr r1, [r1]
+ add r3, r0, #0
+ mov pc, r1
+._527:
+ .align 2, 0
+._526:
+ .word ._525
+._525:
+ .word ._532
+ .word ._529
+ .word ._530
+ .word ._532
+ .word ._532
+ .word ._540
+ .word ._540
+ .word ._540
+ .word ._540
+ .word ._540
+ .word ._540
+ .word ._540
+ .word ._540
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+ .word ._552
+._540:
+ ldr r0, ._554 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ lsl r1, r2, #0x2
+ add r0, r0, #0x64
+ add r0, r0, r1
+ str r6, [r0]
+ b ._562
+._555:
+ .align 2, 0
+._554:
+ .word gUnknown_Debug_2038A1C
+._532:
+ ldr r0, ._557 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ add r0, r0, #0x64
+ add r0, r0, r3
+ str r6, [r0]
+ bl debug_80C5C94
+ b ._562
+._558:
+ .align 2, 0
+._557:
+ .word gUnknown_Debug_2038A1C
+._529:
+ ldr r4, ._560 @ gUnknown_Debug_2038A1C
+ ldr r1, [r4]
+ add r0, r1, #0
+ add r0, r0, #0x64
+ add r0, r0, r3
+ str r6, [r0]
+ ldr r0, [r1, #0x64]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl NationalPokedexNumToSpecies
+ ldr r5, [r4]
+ ldr r4, ._560 + 4 @ gExperienceTables
+ lsl r2, r6, #0x2
+ ldr r3, ._560 + 8 @ gBaseStats
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r1, r0, #0x3
+ sub r1, r1, r0
+ lsl r1, r1, #0x2
+ add r1, r1, r3
+ ldrb r1, [r1, #0x13]
+ mov r0, #0xca
+ lsl r0, r0, #0x1
+ mul r0, r0, r1
+ add r2, r2, r0
+ add r2, r2, r4
+ ldr r0, [r2]
+ str r0, [r5, #0x6c]
+ bl debug_80C5C94
+ b ._562
+._561:
+ .align 2, 0
+._560:
+ .word gUnknown_Debug_2038A1C
+ .word gExperienceTables
+ .word gBaseStats
+._530:
+ ldr r0, ._563 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ add r0, r0, #0x64
+ add r0, r0, r3
+ str r6, [r0]
+ bl debug_80C5DEC
+ b ._562
+._564:
+ .align 2, 0
+._563:
+ .word gUnknown_Debug_2038A1C
+._552:
+ ldr r0, ._565 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ add r0, r0, #0x64
+ add r0, r0, r3
+ str r6, [r0]
+ bl debug_80C5EF4
+._562:
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._566:
+ .align 2, 0
+._565:
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C5B74
+
+ thumb_func_start debug_80C5C94
+debug_80C5C94:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffff0
+ ldr r6, ._567 @ gUnknown_Debug_2038A1C
+ ldr r2, [r6]
+ add r0, r2, #0
+ add r0, r0, #0x98
+ ldr r4, [r0]
+ mov r1, #0x1f
+ and r4, r4, r1
+ add r0, r0, #0x8
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0x5
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xa8
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0xa
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xb0
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0xf
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xb8
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0x14
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xc0
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0x19
+ orr r4, r4, r0
+ ldr r0, [r2, #0x64]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl NationalPokedexNumToSpecies
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ ldr r0, [r6]
+ ldr r2, [r0, #0x68]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ mov r5, #0x1
+ str r5, [sp]
+ ldr r3, [r0, #0x74]
+ str r3, [sp, #0x4]
+ str r5, [sp, #0x8]
+ ldr r3, [r0, #0x70]
+ str r3, [sp, #0xc]
+ add r3, r4, #0
+ bl CreateMon
+ ldr r0, [r6]
+ bl GetMonGender
+ ldr r1, [r6]
+ add r0, r0, #0x2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [r1, #0x78]
+ add r0, r1, #0
+ bl GetNature
+ ldr r1, [r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [r1, #0x7c]
+ add r0, r1, #0
+ mov r1, #0xd
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0x80
+ str r2, [r1]
+ mov r1, #0xe
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0x84
+ str r2, [r1]
+ mov r1, #0xf
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0x88
+ str r2, [r1]
+ mov r1, #0x10
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0x8c
+ str r2, [r1]
+ mov r1, #0x19
+ bl GetMonData
+ add r1, r0, #0
+ ldr r0, [r6]
+ str r1, [r0, #0x6c]
+ mov r1, #0x3a
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0xf0
+ str r2, [r1]
+ mov r1, #0x3b
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0xf4
+ str r2, [r1]
+ mov r1, #0x3c
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0xf8
+ str r2, [r1]
+ mov r1, #0x3d
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ add r1, r0, #0
+ add r1, r1, #0xfc
+ str r2, [r1]
+ mov r1, #0x3e
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r6]
+ mov r3, #0x80
+ lsl r3, r3, #0x1
+ add r1, r0, r3
+ str r2, [r1]
+ mov r1, #0x3f
+ bl GetMonData
+ ldr r1, [r6]
+ mov r2, #0x82
+ lsl r2, r2, #0x1
+ add r1, r1, r2
+ str r0, [r1]
+ add sp, sp, #0x10
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._568:
+ .align 2, 0
+._567:
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C5C94
+
+ thumb_func_start debug_80C5DEC
+debug_80C5DEC:
+ push {r4, lr}
+ add sp, sp, #0xfffffffc
+ mov r0, #0x0
+ str r0, [sp]
+ ldr r4, ._569 @ gUnknown_Debug_2038A1C
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0x6c
+ mov r1, #0x19
+ bl SetMonData
+ ldr r0, [r4]
+ mov r1, #0xd
+ mov r2, sp
+ bl SetMonData
+ ldr r0, [r4]
+ mov r1, #0xe
+ mov r2, sp
+ bl SetMonData
+ ldr r0, [r4]
+ mov r1, #0xf
+ mov r2, sp
+ bl SetMonData
+ ldr r0, [r4]
+ mov r1, #0x10
+ mov r2, sp
+ bl SetMonData
+ ldr r0, [r4]
+ bl CalculateMonStats
+ ldr r0, [r4]
+ bl GiveMonInitialMoveset
+ ldr r0, [r4]
+ mov r1, #0x38
+ bl GetMonData
+ add r1, r0, #0
+ ldr r0, [r4]
+ str r1, [r0, #0x68]
+ mov r1, #0xd
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0x80
+ str r2, [r1]
+ mov r1, #0xe
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0x84
+ str r2, [r1]
+ mov r1, #0xf
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0x88
+ str r2, [r1]
+ mov r1, #0x10
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0x8c
+ str r2, [r1]
+ mov r1, #0x3a
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xf0
+ str r2, [r1]
+ mov r1, #0x3b
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xf4
+ str r2, [r1]
+ mov r1, #0x3c
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xf8
+ str r2, [r1]
+ mov r1, #0x3d
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xfc
+ str r2, [r1]
+ mov r1, #0x3e
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x80
+ lsl r3, r3, #0x1
+ add r1, r0, r3
+ str r2, [r1]
+ mov r1, #0x3f
+ bl GetMonData
+ ldr r1, [r4]
+ mov r2, #0x82
+ lsl r2, r2, #0x1
+ add r1, r1, r2
+ str r0, [r1]
+ add sp, sp, #0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+._570:
+ .align 2, 0
+._569:
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C5DEC
+
+ thumb_func_start debug_80C5EF4
+debug_80C5EF4:
+ push {r4, lr}
+ ldr r4, ._571 @ gUnknown_Debug_2038A1C
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0x98
+ mov r1, #0x27
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0x9c
+ mov r1, #0x1a
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xa0
+ mov r1, #0x28
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xa4
+ mov r1, #0x1b
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xa8
+ mov r1, #0x29
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xac
+ mov r1, #0x1c
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xb0
+ mov r1, #0x2a
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xb4
+ mov r1, #0x1d
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xb8
+ mov r1, #0x2b
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xbc
+ mov r1, #0x1e
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xc0
+ mov r1, #0x2c
+ bl SetMonData
+ ldr r0, [r4]
+ add r2, r0, #0
+ add r2, r2, #0xc4
+ mov r1, #0x1f
+ bl SetMonData
+ ldr r0, [r4]
+ bl CalculateMonStats
+ ldr r0, [r4]
+ mov r1, #0x3a
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xf0
+ str r2, [r1]
+ mov r1, #0x3b
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xf4
+ str r2, [r1]
+ mov r1, #0x3c
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xf8
+ str r2, [r1]
+ mov r1, #0x3d
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r0, #0
+ add r1, r1, #0xfc
+ str r2, [r1]
+ mov r1, #0x3e
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x80
+ lsl r3, r3, #0x1
+ add r1, r0, r3
+ str r2, [r1]
+ mov r1, #0x3f
+ bl GetMonData
+ ldr r1, [r4]
+ mov r2, #0x82
+ lsl r2, r2, #0x1
+ add r1, r1, r2
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+._572:
+ .align 2, 0
+._571:
+ .word gUnknown_Debug_2038A1C
+
+ thumb_func_end debug_80C5EF4
+
+ thumb_func_start debug_80C5FFC
+debug_80C5FFC:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xffffffe0
+ ldr r1, ._578 @ gUnknown_Debug_083F8758
+ add r0, sp, #0x10
+ mov r2, #0x4
+ bl memcpy
+ add r7, sp, #0x14
+ ldr r1, ._578 + 4 @ gUnknown_Debug_083F875C
+ add r0, r7, #0
+ mov r2, #0x8
+ bl memcpy
+ ldr r5, ._578 + 8 @ gUnknown_Debug_2038A1C
+ ldr r2, [r5]
+ add r0, r2, #0
+ add r0, r0, #0x98
+ ldr r4, [r0]
+ mov r1, #0x1f
+ and r4, r4, r1
+ add r0, r0, #0x8
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0x5
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xa8
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0xa
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xb0
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0xf
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xb8
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0x14
+ orr r4, r4, r0
+ add r0, r2, #0
+ add r0, r0, #0xc0
+ ldr r0, [r0]
+ and r0, r0, r1
+ lsl r0, r0, #0x19
+ orr r4, r4, r0
+ ldr r0, [r2, #0x64]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl NationalPokedexNumToSpecies
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ ldr r0, [r5]
+ ldr r2, [r0, #0x68]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsl r4, r4, #0x18
+ lsr r4, r4, #0x18
+ mov r6, #0x1
+ str r6, [sp]
+ ldr r3, [r0, #0x74]
+ str r3, [sp, #0x4]
+ str r6, [sp, #0x8]
+ ldr r3, [r0, #0x70]
+ str r3, [sp, #0xc]
+ add r3, r4, #0
+ bl CreateMon
+ ldr r2, [r5]
+ add r0, r2, #0
+ add r0, r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._573 @cond_branch
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r2, #0
+ mov r2, #0x0
+ bl SetMonMoveSlot
+._573:
+ ldr r2, [r5]
+ add r0, r2, #0
+ add r0, r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._574 @cond_branch
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r2, #0
+ mov r2, #0x1
+ bl SetMonMoveSlot
+._574:
+ ldr r2, [r5]
+ add r0, r2, #0
+ add r0, r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._575 @cond_branch
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r2, #0
+ mov r2, #0x2
+ bl SetMonMoveSlot
+._575:
+ ldr r2, [r5]
+ add r0, r2, #0
+ add r0, r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._576 @cond_branch
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r2, #0
+ mov r2, #0x3
+ bl SetMonMoveSlot
+._576:
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0x6c
+ mov r1, #0x19
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0x98
+ mov r1, #0x27
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0x9c
+ mov r1, #0x1a
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xa0
+ mov r1, #0x28
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xa4
+ mov r1, #0x1b
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xa8
+ mov r1, #0x29
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xac
+ mov r1, #0x1c
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xb0
+ mov r1, #0x2a
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xb4
+ mov r1, #0x1d
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xb8
+ mov r1, #0x2b
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xbc
+ mov r1, #0x1e
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xc0
+ mov r1, #0x2c
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xc4
+ mov r1, #0x1f
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xc8
+ mov r1, #0x16
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xcc
+ mov r1, #0x17
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xd0
+ mov r1, #0x18
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xd4
+ mov r1, #0x21
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xd8
+ mov r1, #0x2f
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xdc
+ mov r1, #0x30
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xe0
+ mov r1, #0x20
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xe4
+ mov r1, #0x22
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0x90
+ mov r1, #0xc
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0x94
+ mov r1, #0x2e
+ bl SetMonData
+ ldr r0, [r5]
+ add r1, r0, #0
+ add r1, r1, #0xec
+ ldr r2, [r1]
+ lsl r2, r2, #0x3
+ ldr r1, ._578 + 12 @ gUnknown_Debug_083F86E8
+ add r2, r2, r1
+ mov r1, #0x37
+ bl SetMonData
+ ldr r0, [r5]
+ add r2, r0, #0
+ add r2, r2, #0xe8
+ mov r1, #0x2d
+ bl SetMonData
+ ldr r1, [r5]
+ add r0, r1, #0
+ add r0, r0, #0xe8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq ._577 @cond_branch
+ add r0, r1, #0
+ mov r1, #0x2
+ add r2, sp, #0x10
+ bl SetMonData
+ add r2, sp, #0x1c
+ strb r6, [r2]
+ ldr r0, [r5]
+ mov r1, #0x3
+ bl SetMonData
+._577:
+ ldr r0, [r5]
+ mov r1, #0x7
+ add r2, r7, #0
+ bl SetMonData
+ mov r2, sp
+ add r2, r2, #0x1e
+ mov r0, #0xff
+ strh r0, [r2]
+ ldr r0, [r5]
+ mov r1, #0x23
+ bl SetMonData
+ ldr r0, [r5]
+ bl CalculateMonStats
+ add sp, sp, #0x20
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._579:
+ .align 2, 0
+._578:
+ .word gUnknown_Debug_083F8758
+ .word gUnknown_Debug_083F875C
+ .word gUnknown_Debug_2038A1C
+ .word gUnknown_Debug_083F86E8+0x4
+
+ thumb_func_end debug_80C5FFC
+
+ thumb_func_start debug_80C627C
+debug_80C627C:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffff8
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r6, r4, #0
+ ldr r1, ._584 @ gUnknown_Debug_083F7FD4
+ mov r0, sp
+ mov r2, #0x2
+ bl memcpy
+ add r5, sp, #0x4
+ ldr r1, ._584 + 4 @ gUnknown_Debug_083F8764
+ add r0, r5, #0
+ mov r2, #0x2
+ bl memcpy
+ cmp r4, #0x1
+ beq ._580 @cond_branch
+ cmp r4, #0x1
+ bgt ._581 @cond_branch
+ cmp r4, #0
+ beq ._582 @cond_branch
+ b ._595
+._585:
+ .align 2, 0
+._584:
+ .word gUnknown_Debug_083F7FD4
+ .word gUnknown_Debug_083F8764
+._581:
+ cmp r6, #0x2
+ beq ._586 @cond_branch
+ b ._595
+._582:
+ ldr r0, ._589 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ ldr r1, ._589 + 4 @ 0x169
+ add r0, r0, r1
+ b ._588
+._590:
+ .align 2, 0
+._589:
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+._580:
+ ldr r4, ._593 @ gUnknown_Debug_2038A1C
+ ldr r3, [r4]
+ ldr r1, ._593 + 4 @ 0x169
+ add r0, r3, r1
+ ldrb r2, [r0]
+ ldr r1, ._593 + 8 @ gUnknown_Debug_083F8698
+ mov r6, #0xb4
+ lsl r6, r6, #0x1
+ add r0, r3, r6
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldrb r0, [r0, #0x4]
+ sub r0, r0, #0x1
+ cmp r2, r0
+ bge ._595 @cond_branch
+ lsl r2, r2, #0x19
+ mov r0, #0xa0
+ lsl r0, r0, #0x13
+ add r2, r2, r0
+ lsr r2, r2, #0x18
+ add r0, r5, #0
+ mov r1, #0x1
+ bl Menu_PrintText
+ ldr r0, [r4]
+ ldr r2, ._593 + 4 @ 0x169
+ add r1, r0, r2
+ ldrb r0, [r1]
+ add r0, r0, #0x1
+ strb r0, [r1]
+ ldr r0, [r4]
+ add r0, r0, r2
+._588:
+ ldrb r2, [r0]
+ lsl r2, r2, #0x19
+ mov r6, #0xa0
+ lsl r6, r6, #0x13
+ add r2, r2, r6
+ lsr r2, r2, #0x18
+ mov r0, sp
+ mov r1, #0x1
+ bl Menu_PrintText
+ b ._595
+._594:
+ .align 2, 0
+._593:
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+ .word gUnknown_Debug_083F8698
+._586:
+ ldr r4, ._596 @ gUnknown_Debug_2038A1C
+ ldr r0, [r4]
+ ldr r2, ._596 + 4 @ 0x169
+ add r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0
+ beq ._595 @cond_branch
+ add r2, r0, #0
+ lsl r2, r2, #0x19
+ mov r6, #0xa0
+ lsl r6, r6, #0x13
+ add r2, r2, r6
+ lsr r2, r2, #0x18
+ add r0, r5, #0
+ mov r1, #0x1
+ bl Menu_PrintText
+ ldr r0, [r4]
+ ldr r2, ._596 + 4 @ 0x169
+ add r1, r0, r2
+ ldrb r0, [r1]
+ sub r0, r0, #0x1
+ strb r0, [r1]
+ ldr r0, [r4]
+ add r0, r0, r2
+ ldrb r2, [r0]
+ lsl r2, r2, #0x19
+ add r2, r2, r6
+ lsr r2, r2, #0x18
+ mov r0, sp
+ mov r1, #0x1
+ bl Menu_PrintText
+._595:
+ add sp, sp, #0x8
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._597:
+ .align 2, 0
+._596:
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+
+ thumb_func_end debug_80C627C
+
+ thumb_func_start debug_80C6384
+debug_80C6384:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ mov r0, #0x0
+ mov r1, #0x4
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r5, #0x0
+ ldr r3, ._600 @ gUnknown_Debug_083F8698
+ ldr r1, ._600 + 4 @ gUnknown_Debug_2038A1C
+ ldr r0, [r1]
+ mov r2, #0xb4
+ lsl r2, r2, #0x1
+ add r0, r0, r2
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r3
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._598 @cond_branch
+ add r4, r1, #0
+ ldr r0, ._600 + 8 @ 0x16b
+ mov r9, r0
+ mov r8, r3
+ add r7, r2, #0
+ mov r6, #0x1
+._599:
+ ldr r0, [r4]
+ add r0, r0, r9
+ mov r1, #0xfc
+ strb r1, [r0]
+ ldr r0, [r4]
+ add r1, r1, #0x70
+ add r0, r0, r1
+ strb r6, [r0]
+ ldr r0, [r4]
+ ldr r2, ._600 + 12 @ 0x16d
+ add r0, r0, r2
+ strb r6, [r0]
+ ldr r1, [r4]
+ add r2, r2, #0x1
+ add r0, r1, r2
+ add r1, r1, r7
+ ldrb r1, [r1]
+ lsl r1, r1, #0x3
+ add r1, r1, r8
+ ldr r1, [r1]
+ add r1, r1, r5
+ ldrb r1, [r1]
+ mov r2, #0x1
+ bl debug_80C5738
+ ldr r0, [r4]
+ add r0, r0, r9
+ lsl r2, r5, #0x19
+ mov r1, #0xa0
+ lsl r1, r1, #0x13
+ add r2, r2, r1
+ lsr r2, r2, #0x18
+ mov r1, #0x2
+ bl Menu_PrintText
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4]
+ add r0, r0, r7
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r8
+ ldr r0, [r0]
+ add r0, r0, r5
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ bne ._599 @cond_branch
+._598:
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._601:
+ .align 2, 0
+._600:
+ .word gUnknown_Debug_083F8698
+ .word gUnknown_Debug_2038A1C
+ .word 0x16b
+ .word 0x16d
+
+ thumb_func_end debug_80C6384
+
+ thumb_func_start debug_80C643C
+debug_80C643C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ mov r0, #0x2
+ mov r1, #0x5
+ mov r2, #0x1c
+ mov r3, #0x12
+ bl Menu_BlankWindowRect
+ mov r5, #0x0
+ ldr r6, ._605 @ gUnknown_Debug_083F8698
+ ldr r1, ._605 + 4 @ gUnknown_Debug_2038A1C
+ ldr r0, [r1]
+ mov r3, #0xb4
+ lsl r3, r3, #0x1
+ add r0, r0, r3
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r6
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq ._602 @cond_branch
+ add r4, r1, #0
+ mov r0, #0x1
+ mov r8, r0
+._607:
+ ldr r0, [r4]
+ ldr r7, ._605 + 8 @ 0x16b
+ add r2, r0, r7
+ mov r0, #0xfc
+ strb r0, [r2]
+ ldr r0, [r4]
+ mov r2, #0xb6
+ lsl r2, r2, #0x1
+ add r0, r0, r2
+ mov r7, r8
+ strb r7, [r0]
+ ldr r2, [r4]
+ ldr r7, ._605 + 12 @ 0x169
+ add r0, r2, r7
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne ._603 @cond_branch
+ ldr r0, ._605 + 16 @ 0x16d
+ add r2, r2, r0
+ mov r0, #0x2
+ strb r0, [r2]
+ ldr r1, [r1]
+ mov r2, #0xb7
+ lsl r2, r2, #0x1
+ add r0, r1, r2
+ add r1, r1, r3
+ ldrb r1, [r1]
+ lsl r1, r1, #0x3
+ add r1, r1, r6
+ ldr r1, [r1]
+ add r1, r1, r5
+ ldrb r1, [r1]
+ mov r2, #0x2
+ bl debug_80C5738
+ b ._604
+._606:
+ .align 2, 0
+._605:
+ .word gUnknown_Debug_083F8698
+ .word gUnknown_Debug_2038A1C
+ .word 0x16b
+ .word 0x169
+ .word 0x16d
+._603:
+ ldr r3, ._608 @ 0x16d
+ add r0, r2, r3
+ mov r7, r8
+ strb r7, [r0]
+ ldr r1, [r1]
+ mov r2, #0xb7
+ lsl r2, r2, #0x1
+ add r0, r1, r2
+ ldr r2, ._608 + 4 @ gUnknown_Debug_083F8698
+ sub r3, r3, #0x5
+ add r1, r1, r3
+ ldrb r1, [r1]
+ lsl r1, r1, #0x3
+ add r1, r1, r2
+ ldr r1, [r1]
+ add r1, r1, r5
+ ldrb r1, [r1]
+ mov r2, #0x1
+ bl debug_80C5738
+._604:
+ ldr r0, [r4]
+ ldr r7, ._608 + 8 @ 0x16b
+ add r0, r0, r7
+ lsl r2, r5, #0x19
+ mov r1, #0xa0
+ lsl r1, r1, #0x13
+ add r2, r2, r1
+ lsr r2, r2, #0x18
+ mov r1, #0x2
+ bl Menu_PrintText
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r6, ._608 + 4 @ gUnknown_Debug_083F8698
+ add r1, r4, #0
+ ldr r0, [r4]
+ mov r3, #0xb4
+ lsl r3, r3, #0x1
+ add r0, r0, r3
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r6
+ ldr r0, [r0]
+ add r0, r0, r5
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ bne ._607 @cond_branch
+._602:
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._609:
+ .align 2, 0
+._608:
+ .word 0x16d
+ .word gUnknown_Debug_083F8698
+ .word 0x16b
+
+ thumb_func_end debug_80C643C
+
+ thumb_func_start debug_80C6544
+debug_80C6544:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r9, r0
+ ldr r0, ._614 @ gUnknown_Debug_083F8698
+ mov r8, r0
+ ldr r6, ._614 + 4 @ gUnknown_Debug_2038A1C
+ ldr r1, [r6]
+ mov r5, #0xb4
+ lsl r5, r5, #0x1
+ add r0, r1, r5
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r8
+ ldr r4, ._614 + 8 @ 0x169
+ add r1, r1, r4
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ add r0, r0, r1
+ ldrb r0, [r0]
+ bl debug_80C5B60
+ add r7, r0, #0
+ ldr r2, ._614 + 12 @ gUnknown_Debug_083F8554
+ ldr r3, [r6]
+ add r5, r3, r5
+ ldrb r0, [r5]
+ lsl r0, r0, #0x3
+ add r0, r0, r8
+ add r4, r3, r4
+ ldrb r1, [r4]
+ ldr r0, [r0]
+ add r0, r0, r1
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r2, r2, #0x4
+ add r0, r0, r2
+ ldr r1, [r0]
+ ldr r5, [r1]
+ ldr r4, [r1, #0x4]
+ ldr r2, ._614 + 16 @ gUnknown_Debug_083F8768
+ mov r6, #0xb5
+ lsl r6, r6, #0x1
+ add r0, r3, r6
+ ldrb r0, [r0]
+ lsl r0, r0, #0x2
+ add r0, r0, r2
+ ldr r3, [r0]
+ ldrb r0, [r1, #0x8]
+ cmp r0, #0
+ bne ._623 @cond_branch
+ mov r0, r9
+ cmp r0, #0x1
+ beq ._611 @cond_branch
+ cmp r0, #0x2
+ beq ._612 @cond_branch
+ b ._623
+._615:
+ .align 2, 0
+._614:
+ .word gUnknown_Debug_083F8698
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+ .word gUnknown_Debug_083F8554
+ .word gUnknown_Debug_083F8768
+._611:
+ sub r0, r4, r3
+ cmp r7, r0
+ bcs ._616 @cond_branch
+ add r7, r7, r3
+ b ._623
+._616:
+ cmp r7, r4
+ bcc ._622 @cond_branch
+ b ._619
+._612:
+ add r0, r5, r3
+ cmp r7, r0
+ bls ._620 @cond_branch
+ sub r7, r7, r3
+ b ._623
+._620:
+ cmp r7, r5
+ bls ._622 @cond_branch
+._619:
+ add r7, r5, #0
+ b ._623
+._622:
+ add r7, r4, #0
+._623:
+ ldr r1, ._624 @ gUnknown_Debug_083F8698
+ ldr r0, ._624 + 4 @ gUnknown_Debug_2038A1C
+ ldr r2, [r0]
+ mov r3, #0xb4
+ lsl r3, r3, #0x1
+ add r0, r2, r3
+ ldrb r0, [r0]
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r6, ._624 + 8 @ 0x169
+ add r1, r2, r6
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ add r0, r0, r1
+ ldrb r1, [r0]
+ add r0, r7, #0
+ bl debug_80C5B74
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._625:
+ .align 2, 0
+._624:
+ .word gUnknown_Debug_083F8698
+ .word gUnknown_Debug_2038A1C
+ .word 0x169
+
+ thumb_func_end debug_80C6544
+
+ thumb_func_start debug_80C6630
+debug_80C6630:
+ push {r4, r5, lr}
+ add r4, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ mov r0, #0xfc
+ strb r0, [r4]
+ add r4, r4, #0x1
+ mov r0, #0x1
+ strb r0, [r4]
+ add r4, r4, #0x1
+ cmp r2, #0x2
+ bne ._626 @cond_branch
+ ldr r0, ._629 @ gUnknown_Debug_2038A1C
+ ldr r0, [r0]
+ mov r5, #0xb5
+ lsl r5, r5, #0x1
+ add r0, r0, r5
+ ldrb r0, [r0]
+ cmp r3, r0
+ beq ._627 @cond_branch
+ strb r2, [r4]
+ b ._628
+._630:
+ .align 2, 0
+._629:
+ .word gUnknown_Debug_2038A1C
+._627:
+ mov r0, #0x4
+._626:
+ strb r0, [r4]
+._628:
+ add r0, r1, #0
+ add r0, r0, #0xa1
+ strb r0, [r4, #0x1]
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C6630
+
+ thumb_func_start debug_80C6678
+debug_80C6678:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6, r7}
+ mov r9, r0
+ add r6, r1, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ mov r8, r3
+ mov r7, #0x0
+ sub r0, r2, #1
+ cmp r0, #0x9
+ bhi ._644 @cond_branch
+ lsl r0, r0, #0x2
+ ldr r1, ._633 @
+ add r0, r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+._634:
+ .align 2, 0
+._633:
+ .word ._632
+._632:
+ .word ._635
+ .word ._636
+ .word ._637
+ .word ._638
+ .word ._639
+ .word ._640
+ .word ._641
+ .word ._642
+ .word ._643
+ .word ._644
+._644:
+ mov r0, r9
+ add r4, r0, r7
+ ldr r5, ._645 @ 0x3b9aca00
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x9
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._643:
+ mov r1, r9
+ add r4, r1, r7
+ ldr r5, ._645 + 4 @ 0x5f5e100
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x8
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._642:
+ mov r0, r9
+ add r4, r0, r7
+ ldr r5, ._645 + 8 @ 0x989680
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x7
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._641:
+ mov r1, r9
+ add r4, r1, r7
+ ldr r5, ._645 + 12 @ 0xf4240
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x6
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._640:
+ mov r0, r9
+ add r4, r0, r7
+ ldr r5, ._645 + 16 @ 0x186a0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x5
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._639:
+ mov r1, r9
+ add r4, r1, r7
+ ldr r5, ._645 + 20 @ 0x2710
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x4
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._638:
+ mov r0, r9
+ add r4, r0, r7
+ mov r5, #0xfa
+ lsl r5, r5, #0x2
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x3
+ bl debug_80C6630
+ add r0, r6, #0
+ add r1, r5, #0
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._637:
+ mov r1, r9
+ add r4, r1, r7
+ add r0, r6, #0
+ mov r1, #0x64
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x2
+ bl debug_80C6630
+ add r0, r6, #0
+ mov r1, #0x64
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._636:
+ mov r0, r9
+ add r4, r0, r7
+ add r0, r6, #0
+ mov r1, #0xa
+ bl __udivsi3
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r4, #0
+ mov r2, r8
+ mov r3, #0x1
+ bl debug_80C6630
+ add r0, r6, #0
+ mov r1, #0xa
+ bl __umodsi3
+ add r6, r0, #0
+ add r0, r7, #4
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+._635:
+ mov r1, r9
+ add r0, r1, r7
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ mov r2, r8
+ mov r3, #0x0
+ bl debug_80C6630
+ pop {r3, r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._646:
+ .align 2, 0
+._645:
+ .word 0x3b9aca00
+ .word 0x5f5e100
+ .word 0x989680
+ .word 0xf4240
+ .word 0x186a0
+ .word 0x2710
+
+ thumb_func_end debug_80C6678
+
+ thumb_func_start debug_80C689C
+debug_80C689C:
+ push {r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r3, #0x0
+ ldrb r0, [r4]
+ b ._647
+._649:
+ add r1, r5, r3
+ add r0, r4, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ add r0, r4, r3
+ ldrb r0, [r0]
+._647:
+ cmp r0, #0xff
+ beq ._648 @cond_branch
+ cmp r3, r2
+ bcc ._649 @cond_branch
+._648:
+ pop {r4, r5}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C689C
+
+ thumb_func_start debug_80C68CC
+debug_80C68CC:
+ push {r4, r5, r6, r7, lr}
+ add sp, sp, #0xfffffff8
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r6, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r5, r2, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ mov r2, #0x0
+ mov r1, #0x0
+._650:
+ mov r7, sp
+ add r0, r7, r2
+ strb r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x3
+ bls ._650 @cond_branch
+ mov r1, sp
+ mov r0, #0xff
+ strb r0, [r1, #0x4]
+ cmp r3, #0x2
+ beq ._651 @cond_branch
+ cmp r3, #0x2
+ bgt ._652 @cond_branch
+ cmp r3, #0x1
+ beq ._653 @cond_branch
+ b ._654
+._652:
+ cmp r3, #0x3
+ beq ._655 @cond_branch
+._654:
+ mov r1, sp
+ lsr r0, r4, #0xc
+ strb r0, [r1]
+._655:
+ mov r1, sp
+ mov r0, #0xf0
+ lsl r0, r0, #0x4
+ and r0, r0, r4
+ lsr r0, r0, #0x8
+ strb r0, [r1, #0x1]
+._651:
+ mov r1, sp
+ mov r0, #0xf0
+ and r0, r0, r4
+ lsr r0, r0, #0x4
+ strb r0, [r1, #0x2]
+._653:
+ mov r2, sp
+ mov r1, #0xf
+ add r0, r4, #0
+ and r0, r0, r1
+ strb r0, [r2, #0x3]
+ mov r2, #0x0
+._658:
+ mov r0, sp
+ add r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, #0x9
+ bhi ._656 @cond_branch
+ add r0, r0, #0xa1
+ b ._657
+._656:
+ add r0, r0, #0xb1
+._657:
+ strb r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x3
+ bls ._658 @cond_branch
+ mov r0, #0x4
+ sub r0, r0, r3
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r0, r0, sp
+ add r1, r6, #0
+ add r2, r5, #0
+ bl Menu_PrintText
+ add sp, sp, #0x8
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C68CC
+
+ thumb_func_start InitSeePokemonGraphics
+InitSeePokemonGraphics:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffff8
+ bl debug_80C35DC
+ ldr r1, ._659 @ byte_83F88EC
+ ldr r2, ._659 + 4 @ 0x600e000
+ ldr r0, ._659 + 8 @ 0x40000d4
+ str r1, [r0]
+ str r2, [r0, #0x4]
+ ldr r1, ._659 + 12 @ 0x80000400
+ str r1, [r0, #0x8]
+ ldr r0, [r0, #0x8]
+ ldr r0, ._659 + 16 @ word_83F888C
+ mov r1, #0x80
+ mov r2, #0x60
+ bl LoadPalette
+ ldr r1, ._659 + 20 @ 0x7fff
+ add r0, sp, #0x4
+ strh r1, [r0]
+ mov r1, #0x0
+ mov r2, #0x2
+ bl LoadPalette
+ mov r0, #0x1
+ neg r0, r0
+ mov r5, #0x0
+ str r5, [sp]
+ mov r1, #0x0
+ mov r2, #0x10
+ mov r3, #0x0
+ bl BeginNormalPaletteFade
+ ldr r0, ._659 + 24 @ 0x4000040
+ mov r6, #0x0
+ strh r5, [r0]
+ add r0, r0, #0x4
+ strh r5, [r0]
+ sub r0, r0, #0x2
+ strh r5, [r0]
+ add r0, r0, #0x4
+ strh r5, [r0]
+ ldr r1, ._659 + 28 @ 0x4000048
+ mov r0, #0x3f
+ strh r0, [r1]
+ add r1, r1, #0x2
+ mov r0, #0x1f
+ strh r0, [r1]
+ add r1, r1, #0x6
+ mov r0, #0xf1
+ strh r0, [r1]
+ ldr r0, ._659 + 32 @ 0x4000052
+ strh r5, [r0]
+ add r1, r1, #0x4
+ mov r0, #0x7
+ strh r0, [r1]
+ ldr r3, ._659 + 36 @ 0x4000208
+ ldrh r2, [r3]
+ strh r5, [r3]
+ ldr r4, ._659 + 40 @ 0x4000200
+ ldrh r0, [r4]
+ mov r1, #0x1
+ orr r0, r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, ._659 + 44 @ debug_80C3758
+ bl SetVBlankCallback
+ ldr r0, ._659 + 48 @ debug_80C370C
+ bl SetMainCallback2
+ bl sub_809D51C
+ ldr r1, ._659 + 52 @ 0x4000008
+ ldr r2, ._659 + 56 @ 0x1f0b
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x2
+ ldr r2, ._659 + 60 @ 0x1e0a
+ add r0, r2, #0
+ strh r0, [r1]
+ sub r1, r1, #0xa
+ mov r2, #0xcd
+ lsl r2, r2, #0x6
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, ._659 + 64 @ debug_80C6B00
+ mov r1, #0x0
+ bl CreateTask
+ ldr r1, ._659 + 68 @ gUnknown_Debug_2038A20
+ ldr r0, ._659 + 72 @ 0x2018000
+ str r0, [r1]
+ ldr r1, ._659 + 76 @ 0x115
+ strh r1, [r0]
+ strb r6, [r0, #0x2]
+ strb r6, [r0, #0x3]
+ strb r6, [r0, #0x5]
+ strb r6, [r0, #0x7]
+ strb r6, [r0, #0xa]
+ strb r6, [r0, #0x8]
+ ldr r4, ._659 + 80 @ gSpriteTemplate_83F8874
+ add r0, r4, #0
+ mov r1, #0x6c
+ mov r2, #0x74
+ mov r3, #0x0
+ bl CreateSprite
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ ldr r6, ._659 + 84 @ gSprites
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ strh r5, [r0, #0x2e]
+ mov r1, #0x0
+ bl StartSpriteAnim
+ add r0, r4, #0
+ mov r1, #0x6c
+ mov r2, #0x74
+ mov r3, #0x0
+ bl CreateSprite
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ mov r1, #0x1
+ strh r1, [r0, #0x2e]
+ bl StartSpriteAnim
+ add r0, r4, #0
+ mov r1, #0x6c
+ mov r2, #0x74
+ mov r3, #0x0
+ bl CreateSprite
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ mov r1, #0x2
+ strh r1, [r0, #0x2e]
+ bl StartSpriteAnim
+ add sp, sp, #0x8
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._660:
+ .align 2, 0
+._659:
+ .word byte_83F88EC
+ .word 0x600e000
+ .word 0x40000d4
+ .word 0x80000400
+ .word word_83F888C
+ .word 0x7fff
+ .word 0x4000040
+ .word 0x4000048
+ .word 0x4000052
+ .word 0x4000208
+ .word 0x4000200
+ .word debug_80C3758+1
+ .word debug_80C370C+1
+ .word 0x4000008
+ .word 0x1f0b
+ .word 0x1e0a
+ .word debug_80C6B00+1
+ .word gUnknown_Debug_2038A20
+ .word 0x2018000
+ .word 0x115
+ .word gSpriteTemplate_83F8874
+ .word gSprites
+
+ thumb_func_end InitSeePokemonGraphics
+
+ thumb_func_start debug_80C6B00
+debug_80C6B00:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xffffffec
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, ._666 @ gUnknown_Debug_083F8815
+ mov r0, sp
+ mov r2, #0x12
+ bl memcpy
+ mov r0, #0xa
+ mov r1, #0x0
+ mov r2, #0xf
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x9
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0xa
+ mov r2, #0x9
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x10
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._666 + 4 @ gUnknown_Debug_083F87D0
+ mov r1, #0x11
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._666 + 8 @ gUnknown_Debug_083F87D8
+ mov r1, #0x1b
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._666 + 12 @ gUnknown_Debug_083F87E0
+ mov r1, #0x11
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0xa
+ mov r1, #0x8
+ mov r2, #0x1d
+ mov r3, #0xc
+ bl Menu_DrawStdWindowFrame
+ mov r2, #0x0
+ ldr r4, ._666 + 16 @ 0x600fa56
+ ldr r0, ._666 + 20 @ 0xa311
+ add r3, r0, #0
+._661:
+ lsl r0, r2, #0x1
+ add r0, r0, r4
+ add r1, r2, r3
+ strh r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xe
+ bls ._661 @cond_branch
+ mov r2, #0x0
+ ldr r5, ._666 + 24 @ gUnknown_Debug_083F87F4
+ lsl r6, r7, #0x2
+ mov r8, r6
+ ldr r4, ._666 + 28 @ 0x600f256
+ ldr r0, ._666 + 32 @ 0x8301
+ add r3, r0, #0
+._662:
+ lsl r0, r2, #0x1
+ add r0, r0, r4
+ add r1, r2, r3
+ strh r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xe
+ bls ._662 @cond_branch
+ add r0, r5, #0
+ mov r1, #0x14
+ mov r2, #0xa
+ bl Menu_PrintText
+ mov r0, #0xa
+ mov r1, #0xd
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r1, sp
+ mov r0, #0x23
+ strb r0, [r1]
+ mov r2, #0x0
+ ldr r4, ._666 + 36 @ 0x600f396
+ mov r5, #0x93
+ lsl r5, r5, #0x8
+ add r3, r5, #0
+._663:
+ lsl r1, r2, #0x1
+ add r1, r1, r4
+ mov r6, sp
+ add r0, r6, r2
+ ldrb r0, [r0]
+ add r0, r0, r3
+ strh r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x11
+ bls ._663 @cond_branch
+ mov r1, sp
+ mov r0, #0x24
+ strb r0, [r1]
+ mov r2, #0x0
+ ldr r5, ._666 + 40 @ gUnknown_Debug_083F8801
+ ldr r4, ._666 + 44 @ 0x600f3d6
+ mov r0, #0x93
+ lsl r0, r0, #0x8
+ add r3, r0, #0
+._664:
+ lsl r1, r2, #0x1
+ add r1, r1, r4
+ mov r6, sp
+ add r0, r6, r2
+ ldrb r0, [r0]
+ add r0, r0, r3
+ strh r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x11
+ bls ._664 @cond_branch
+ mov r1, sp
+ mov r0, #0x25
+ strb r0, [r1]
+ mov r2, #0x0
+ ldr r4, ._666 + 48 @ 0x600f416
+ mov r0, #0x93
+ lsl r0, r0, #0x8
+ add r3, r0, #0
+._665:
+ lsl r1, r2, #0x1
+ add r1, r1, r4
+ mov r6, sp
+ add r0, r6, r2
+ ldrb r0, [r0]
+ add r0, r0, r3
+ strh r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x11
+ bls ._665 @cond_branch
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0x11
+ bl Menu_PrintText
+ ldr r1, ._666 + 52 @ 0x4000040
+ ldr r2, ._666 + 56 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r5, ._666 + 60 @ 0x699f
+ add r0, r5, #0
+ strh r0, [r1]
+ ldr r1, ._666 + 64 @ gTasks
+ mov r6, r8
+ add r0, r6, r7
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._666 + 68 @ debug_80C6CB8
+ str r1, [r0]
+ add sp, sp, #0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._667:
+ .align 2, 0
+._666:
+ .word gUnknown_Debug_083F8815
+ .word gUnknown_Debug_083F87D0
+ .word gUnknown_Debug_083F87D8
+ .word gUnknown_Debug_083F87E0
+ .word 0x600fa56
+ .word 0xa311
+ .word gUnknown_Debug_083F87F4
+ .word 0x600f256
+ .word 0x8301
+ .word 0x600f396
+ .word gUnknown_Debug_083F8801
+ .word 0x600f3d6
+ .word 0x600f416
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x699f
+ .word gTasks
+ .word debug_80C6CB8+1
+
+ thumb_func_end debug_80C6B00
+
+ thumb_func_start debug_80C6CB8
+debug_80C6CB8:
+ push {r4, r5, r6, r7, lr}
+ mov r7, sl
+ mov r6, r9
+ mov r5, r8
+ push {r5, r6, r7}
+ add sp, sp, #0xfffffff4
+ mov sl, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov sl, r0
+ ldr r5, ._668 @ gUnknown_Debug_2038A20
+ ldr r4, [r5]
+ ldrh r2, [r4]
+ lsl r0, r2, #0x3
+ ldr r1, ._668 + 4 @ gMonFrontPicTable
+ add r0, r0, r1
+ ldr r1, ._668 + 8 @ gMonFrontPicCoords
+ lsl r2, r2, #0x2
+ add r2, r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, #0x1]
+ ldr r3, ._668 + 12 @ gUnknown_081FAF4C
+ mov r8, r3
+ ldr r6, [r3]
+ str r6, [sp, #0x8]
+ ldr r3, [r3, #0x4]
+ str r3, [sp]
+ ldrh r3, [r4]
+ str r3, [sp, #0x4]
+ add r3, r6, #0
+ bl DecompressPicFromTable_2
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ lsl r0, r0, #0x3
+ ldr r7, ._668 + 16 @ gMonPaletteTable
+ add r0, r0, r7
+ bl LoadCompressedObjectPalette
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, ._668 + 20 @ gUnknown_02024E8C
+ mov r1, #0x28
+ mov r2, #0x28
+ mov r3, #0x0
+ bl CreateSprite
+ ldr r1, [r5]
+ strb r0, [r1, #0x2]
+ ldr r2, [r5]
+ ldrb r1, [r2, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ ldr r1, ._668 + 24 @ gSprites
+ add r0, r0, r1
+ ldr r3, ._668 + 28 @ debug_69
+ mov r9, r3
+ str r3, [r0]
+ ldrb r0, [r2, #0x2]
+ lsl r1, r0, #0x4
+ add r1, r1, r0
+ lsl r1, r1, #0x2
+ ldr r6, ._668 + 32 @ gSprites
+ add r1, r1, r6
+ ldrb r2, [r1, #0x5]
+ mov r6, #0xd
+ neg r6, r6
+ add r0, r6, #0
+ and r0, r0, r2
+ strb r0, [r1, #0x5]
+ ldr r4, [r5]
+ ldrh r2, [r4]
+ lsl r0, r2, #0x3
+ ldr r1, ._668 + 36 @ gMonBackPicTable
+ add r0, r0, r1
+ ldr r1, ._668 + 40 @ gMonBackPicCoords
+ lsl r2, r2, #0x2
+ add r2, r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, #0x1]
+ mov r7, r8
+ ldr r3, [r7, #0x8]
+ str r3, [sp]
+ ldrh r3, [r4]
+ str r3, [sp, #0x4]
+ ldr r3, [sp, #0x8]
+ bl DecompressPicFromTable_2
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ lsl r0, r0, #0x3
+ ldr r1, ._668 + 16 @ gMonPaletteTable
+ add r0, r0, r1
+ bl LoadCompressedObjectPalette
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x2
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, ._668 + 20 @ gUnknown_02024E8C
+ mov r1, #0x28
+ mov r2, #0x78
+ mov r3, #0x0
+ bl CreateSprite
+ ldr r1, [r5]
+ strb r0, [r1, #0x3]
+ ldr r2, [r5]
+ ldrb r1, [r2, #0x3]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ ldr r3, ._668 + 24 @ gSprites
+ add r0, r0, r3
+ mov r7, r9
+ str r7, [r0]
+ ldrb r1, [r2, #0x3]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ ldr r1, ._668 + 32 @ gSprites
+ add r0, r0, r1
+ ldrb r1, [r0, #0x5]
+ and r6, r6, r1
+ strb r6, [r0, #0x5]
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ ldr r1, ._668 + 44 @ sub_809D62C
+ mov r2, #0x0
+ str r2, [sp]
+ str r2, [sp, #0x4]
+ mov r2, #0x68
+ mov r3, #0x2c
+ bl CreateMonIcon
+ ldr r1, [r5]
+ strb r0, [r1, #0x4]
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #0xff
+ lsl r2, r2, #0x2
+ mov r1, #0x2
+ bl sub_8091738
+ ldr r1, ._668 + 48 @ 0x600f858
+ ldr r3, ._668 + 52 @ 0xf3fc
+ add r0, r3, #0
+ strh r0, [r1]
+ add r1, r1, #0x2
+ ldr r6, ._668 + 56 @ 0xf3fd
+ add r0, r6, #0
+ strh r0, [r1]
+ add r1, r1, #0x3e
+ ldr r7, ._668 + 60 @ 0xf3fe
+ add r0, r7, #0
+ strh r0, [r1]
+ add r1, r1, #0x2
+ ldr r2, ._668 + 64 @ 0xf3ff
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x11
+ mov r2, #0x3
+ bl debug_80C3800
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x1a
+ mov r2, #0x5
+ bl debug_80C376C
+ ldr r2, [r5]
+ ldrb r1, [r2, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ ldr r3, ._668 + 32 @ gSprites
+ add r0, r0, r3
+ ldrb r0, [r0, #0x5]
+ lsr r0, r0, #0x4
+ strb r0, [r2, #0x6]
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ ldr r4, ._668 + 68 @ gPlttBufferUnfaded
+ add r0, r0, r4
+ ldr r6, ._668 + 72 @ 0xffffff00
+ add r1, r4, r6
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ add r0, r0, r4
+ ldr r1, ._668 + 76 @ gPlttBufferFaded
+ mov r2, #0x10
+ bl CpuSet
+ ldr r1, ._668 + 80 @ gTasks
+ mov r7, sl
+ lsl r0, r7, #0x2
+ add r0, r0, sl
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._668 + 84 @ debug_80C6EE8
+ str r1, [r0]
+ ldr r0, [r5]
+ mov r1, #0x0
+ strb r1, [r0, #0x9]
+ bl StopCryAndClearCrySongs
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x0
+ bl PlayCry1
+ add sp, sp, #0xc
+ pop {r3, r4, r5}
+ mov r8, r3
+ mov r9, r4
+ mov sl, r5
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._669:
+ .align 2, 0
+._668:
+ .word gUnknown_Debug_2038A20
+ .word gMonFrontPicTable
+ .word gMonFrontPicCoords
+ .word gUnknown_081FAF4C
+ .word gMonPaletteTable
+ .word gUnknown_02024E8C
+ .word gSprites+0x1c
+ .word debug_69+1
+ .word gSprites
+ .word gMonBackPicTable
+ .word gMonBackPicCoords
+ .word sub_809D62C+1
+ .word 0x600f858
+ .word 0xf3fc
+ .word 0xf3fd
+ .word 0xf3fe
+ .word 0xf3ff
+ .word gPlttBufferUnfaded+0x200
+ .word 0xffffff00
+ .word gPlttBufferFaded+0x100
+ .word gTasks
+ .word debug_80C6EE8+1
+
+ thumb_func_end debug_80C6CB8
+
+ thumb_func_start debug_80C6EE8
+debug_80C6EE8:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ lsl r6, r6, #0x18
+ lsr r6, r6, #0x18
+ ldr r4, ._670 @ gPlttBufferUnfaded
+ ldr r5, ._670 + 4 @ gUnknown_Debug_2038A20
+ ldr r1, [r5]
+ add r1, r1, #0x10
+ add r0, r4, #0
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, ._670 + 8 @ 0xffffff00
+ add r4, r4, r0
+ ldr r3, [r5]
+ ldrb r0, [r3, #0x7]
+ add r0, r0, #0x81
+ lsl r0, r0, #0x1
+ add r0, r0, r4
+ ldrh r4, [r0]
+ mov r1, #0x1f
+ and r1, r1, r4
+ ldrb r2, [r3, #0xc]
+ mov r0, #0x20
+ neg r0, r0
+ and r0, r0, r2
+ orr r0, r0, r1
+ strb r0, [r3, #0xc]
+ ldr r3, [r5]
+ mov r1, #0xf8
+ lsl r1, r1, #0x2
+ and r1, r1, r4
+ ldrh r2, [r3, #0xc]
+ ldr r0, ._670 + 12 @ 0xfffffc1f
+ and r0, r0, r2
+ orr r0, r0, r1
+ strh r0, [r3, #0xc]
+ mov r1, #0xf8
+ lsl r1, r1, #0x7
+ and r1, r1, r4
+ lsr r1, r1, #0x8
+ ldrb r2, [r3, #0xd]
+ mov r0, #0x7d
+ neg r0, r0
+ and r0, r0, r2
+ orr r0, r0, r1
+ strb r0, [r3, #0xd]
+ ldr r2, [r5]
+ ldrb r1, [r2, #0xd]
+ mov r0, #0x7f
+ and r0, r0, r1
+ strb r0, [r2, #0xd]
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x7]
+ add r0, r0, #0x1
+ mov r1, #0xb
+ mov r2, #0xa
+ mov r3, #0x2
+ bl debug_80C68CC
+ ldr r0, ._670 + 16 @ gUnknown_Debug_083F8813
+ mov r1, #0xd
+ mov r2, #0xa
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0x4
+ bl debug_80C68CC
+ ldr r1, ._670 + 20 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._670 + 24 @ debug_80C6FA8
+ str r1, [r0]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._671:
+ .align 2, 0
+._670:
+ .word gPlttBufferUnfaded+0x100
+ .word gUnknown_Debug_2038A20
+ .word 0xffffff00
+ .word 0xfffffc1f
+ .word gUnknown_Debug_083F8813
+ .word gTasks
+ .word debug_80C6FA8+1
+
+ thumb_func_end debug_80C6EE8
+
+ thumb_func_start debug_80C6FA8
+debug_80C6FA8:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r1, ._674 @ gMain
+ ldrh r2, [r1, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r2
+ add r4, r1, #0
+ cmp r0, #0
+ beq ._672 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r0, ._674 + 4 @ debug_80C370C
+ bl SetMainCallback2
+ ldr r1, ._674 + 8 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._674 + 12 @ debug_80C373C
+ str r1, [r0]
+ b ._703
+._675:
+ .align 2, 0
+._674:
+ .word gMain
+ .word debug_80C370C+1
+ .word gTasks
+ .word debug_80C373C+1
+._672:
+ ldrh r1, [r4, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._676 @cond_branch
+ ldr r4, ._678 @ gUnknown_Debug_2038A20
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ mov r0, #0x0
+ b ._677
+._679:
+ .align 2, 0
+._678:
+ .word gUnknown_Debug_2038A20
+._676:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._680 @cond_branch
+ ldr r4, ._682 @ gUnknown_Debug_2038A20
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ mov r0, #0x1
+._677:
+ bl debug_80C3878
+ ldr r1, [r4]
+ strh r0, [r1]
+ ldr r1, ._682 + 4 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._682 + 8 @ debug_80C71FC
+ str r1, [r0]
+ b ._703
+._683:
+ .align 2, 0
+._682:
+ .word gUnknown_Debug_2038A20
+ .word gTasks
+ .word debug_80C71FC+1
+._680:
+ mov r3, #0x1
+ and r3, r3, r2
+ cmp r3, #0
+ beq ._684 @cond_branch
+ ldr r0, ._686 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ mov r0, #0x1
+ strb r0, [r1, #0x5]
+ ldr r1, ._686 + 4 @ 0x4000040
+ ldr r2, ._686 + 8 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._686 + 12 @ 0x4167
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._686 + 16 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._686 + 20 @ debug_80C7294
+ str r1, [r0]
+ b ._703
+._687:
+ .align 2, 0
+._686:
+ .word gUnknown_Debug_2038A20
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x4167
+ .word gTasks
+ .word debug_80C7294+1
+._684:
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._689 @cond_branch
+ ldr r1, ._691 @ gUnknown_Debug_2038A20
+ ldr r2, [r1]
+ ldrb r0, [r2, #0x7]
+ cmp r0, #0xd
+ bhi ._689 @cond_branch
+ lsl r0, r0, #0x1
+ ldr r2, ._691 + 4 @ 0x5000102
+ add r0, r0, r2
+ strh r3, [r0]
+ ldr r1, [r1]
+ ldrb r0, [r1, #0x7]
+ add r0, r0, #0x1
+ strb r0, [r1, #0x7]
+ b ._695
+._692:
+ .align 2, 0
+._691:
+ .word gUnknown_Debug_2038A20
+ .word 0x5000102
+._689:
+ ldrh r1, [r4, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._694 @cond_branch
+ ldr r2, ._696 @ gUnknown_Debug_2038A20
+ ldr r1, [r2]
+ ldrb r0, [r1, #0x7]
+ cmp r0, #0
+ beq ._694 @cond_branch
+ lsl r0, r0, #0x1
+ ldr r1, ._696 + 4 @ 0x5000102
+ add r0, r0, r1
+ mov r1, #0x0
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1, #0x7]
+ sub r0, r0, #0x1
+ strb r0, [r1, #0x7]
+ b ._695
+._697:
+ .align 2, 0
+._696:
+ .word gUnknown_Debug_2038A20
+ .word 0x5000102
+._694:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x8
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._698 @cond_branch
+ ldr r4, ._701 @ gUnknown_Debug_2038A20
+ ldr r2, [r4]
+ ldrb r0, [r2, #0x9]
+ mov r1, #0x1
+ eor r0, r0, r1
+ strb r0, [r2, #0x9]
+ ldr r1, [r4]
+ ldrb r0, [r1, #0x9]
+ cmp r0, #0
+ beq ._699 @cond_branch
+ ldrh r0, [r1]
+ mov r1, #0x0
+ mov r2, #0x0
+ bl GetMonSpritePalFromOtIdPersonality
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x14
+ mov r2, #0x80
+ lsl r2, r2, #0x11
+ add r1, r1, r2
+ lsr r1, r1, #0x10
+ mov r2, #0x20
+ bl LoadCompressedPalette
+ b ._700
+._702:
+ .align 2, 0
+._701:
+ .word gUnknown_Debug_2038A20
+._699:
+ ldrh r0, [r1]
+ mov r1, #0x0
+ mov r2, #0x9
+ bl GetMonSpritePalFromOtIdPersonality
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x14
+ mov r2, #0x80
+ lsl r2, r2, #0x11
+ add r1, r1, r2
+ lsr r1, r1, #0x10
+ mov r2, #0x20
+ bl LoadCompressedPalette
+._700:
+ ldr r5, ._704 @ gUnknown_Debug_2038A20
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ ldr r4, ._704 + 4 @ gPlttBufferUnfaded
+ add r0, r0, r4
+ ldr r2, ._704 + 8 @ 0xffffff00
+ add r1, r4, r2
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ add r0, r0, r4
+ ldr r1, ._704 + 12 @ gPlttBufferFaded
+ mov r2, #0x10
+ bl CpuSet
+._695:
+ ldr r1, ._704 + 16 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._704 + 20 @ debug_80C6EE8
+ str r1, [r0]
+ b ._703
+._705:
+ .align 2, 0
+._704:
+ .word gUnknown_Debug_2038A20
+ .word gPlttBufferUnfaded+0x200
+ .word 0xffffff00
+ .word gPlttBufferFaded+0x100
+ .word gTasks
+ .word debug_80C6EE8+1
+._698:
+ mov r0, #0x4
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._706 @cond_branch
+ bl StopCryAndClearCrySongs
+ ldr r0, ._707 @ gUnknown_Debug_2038A20
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ mov r1, #0x0
+ bl PlayCry1
+._706:
+ ldr r2, ._707 @ gUnknown_Debug_2038A20
+ ldr r1, [r2]
+ ldrb r0, [r1, #0x8]
+ add r0, r0, #0x4
+ strb r0, [r1, #0x8]
+ ldr r3, [r2]
+ ldrb r1, [r3, #0x8]
+ mov r0, #0x1f
+ and r0, r0, r1
+ strb r0, [r3, #0x8]
+ ldr r0, [r2]
+ ldrb r1, [r0, #0x7]
+ lsl r1, r1, #0x1
+ ldr r2, ._707 + 4 @ 0x5000142
+ add r1, r1, r2
+ ldr r2, ._707 + 8 @ gUnknown_Debug_083F8790
+ ldrb r0, [r0, #0x8]
+ lsl r0, r0, #0x1
+ add r0, r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+._703:
+ add sp, sp, #0x4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._708:
+ .align 2, 0
+._707:
+ .word gUnknown_Debug_2038A20
+ .word 0x5000142
+ .word gUnknown_Debug_083F8790
+
+ thumb_func_end debug_80C6FA8
+
+ thumb_func_start debug_80C71FC
+debug_80C71FC:
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ ldr r6, ._709 @ gSprites
+ ldr r4, ._709 + 4 @ gUnknown_Debug_2038A20
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldrb r0, [r0, #0x5]
+ lsr r0, r0, #0x4
+ bl GetSpritePaletteTagByPaletteNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ bl DestroySprite
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x3]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldrb r0, [r0, #0x5]
+ lsr r0, r0, #0x4
+ bl GetSpritePaletteTagByPaletteNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x3]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ bl DestroySprite
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x4]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ bl sub_809D510
+ ldr r1, ._709 + 8 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._709 + 12 @ debug_80C6CB8
+ str r1, [r0]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._710:
+ .align 2, 0
+._709:
+ .word gSprites
+ .word gUnknown_Debug_2038A20
+ .word gTasks
+ .word debug_80C6CB8+1
+
+ thumb_func_end debug_80C71FC
+
+ thumb_func_start debug_80C7294
+debug_80C7294:
+ push {r4, r5, r6, r7, lr}
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, ._713 @ gMain
+ ldrh r2, [r0, #0x2e]
+ mov r1, #0x1
+ and r1, r1, r2
+ add r3, r0, #0
+ cmp r1, #0
+ beq ._711 @cond_branch
+ ldr r0, ._713 + 4 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ mov r0, #0x0
+ strb r0, [r1, #0x5]
+ ldr r1, ._713 + 8 @ 0x4000040
+ ldr r2, ._713 + 12 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._713 + 16 @ 0x699f
+ add r0, r2, #0
+ strh r0, [r1]
+ b ._712
+._714:
+ .align 2, 0
+._713:
+ .word gMain
+ .word gUnknown_Debug_2038A20
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x699f
+._711:
+ mov r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._715 @cond_branch
+ ldr r6, ._717 @ gUnknown_Debug_2038A20
+ ldr r0, [r6]
+ strb r1, [r0, #0x5]
+ ldr r1, ._717 + 4 @ 0x4000040
+ ldr r2, ._717 + 8 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._717 + 12 @ 0x699f
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, [r6]
+ add r0, r0, #0x10
+ ldr r4, ._717 + 16 @ gPlttBufferUnfaded
+ add r1, r4, #0
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, [r6]
+ add r0, r0, #0x10
+ ldr r5, ._717 + 20 @ gPlttBufferFaded
+ add r1, r5, #0
+ mov r2, #0x10
+ bl CpuSet
+ ldr r1, [r6]
+ add r0, r1, #0
+ add r0, r0, #0x10
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x5
+ mov r2, #0x80
+ lsl r2, r2, #0x1
+ add r4, r4, r2
+ add r1, r1, r4
+ mov r2, #0x10
+ bl CpuSet
+ ldr r1, [r6]
+ add r0, r1, #0
+ add r0, r0, #0x10
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x5
+ mov r2, #0x80
+ lsl r2, r2, #0x1
+ add r5, r5, r2
+ add r1, r1, r5
+ mov r2, #0x10
+ bl CpuSet
+._712:
+ ldr r1, ._717 + 24 @ gTasks
+ lsl r0, r7, #0x2
+ add r0, r0, r7
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._717 + 28 @ debug_80C6EE8
+ str r1, [r0]
+ b ._754
+._718:
+ .align 2, 0
+._717:
+ .word gUnknown_Debug_2038A20
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x699f
+ .word gPlttBufferUnfaded+0x100
+ .word gPlttBufferFaded+0x100
+ .word gTasks
+ .word debug_80C6EE8+1
+._715:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._720 @cond_branch
+ ldr r0, ._722 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0x1
+ bhi ._720 @cond_branch
+ add r0, r0, #0x1
+ strb r0, [r1, #0xa]
+ b ._754
+._723:
+ .align 2, 0
+._722:
+ .word gUnknown_Debug_2038A20
+._720:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._725 @cond_branch
+ ldr r0, ._727 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ beq ._725 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1, #0xa]
+ b ._754
+._728:
+ .align 2, 0
+._727:
+ .word gUnknown_Debug_2038A20
+._725:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._729 @cond_branch
+ ldr r0, ._734 @ gUnknown_Debug_2038A20
+ ldr r2, [r0]
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x1
+ beq ._730 @cond_branch
+ cmp r0, #0x1
+ bgt ._731 @cond_branch
+ cmp r0, #0
+ beq ._732 @cond_branch
+ b ._754
+._735:
+ .align 2, 0
+._734:
+ .word gUnknown_Debug_2038A20
+._731:
+ cmp r0, #0x2
+ beq ._736 @cond_branch
+ b ._754
+._732:
+ ldrb r3, [r2, #0xc]
+ lsl r1, r3, #0x1b
+ lsr r0, r1, #0x1b
+ cmp r0, #0x1e
+ bhi ._761 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ mov r1, #0x20
+ neg r1, r1
+ and r1, r1, r3
+ orr r1, r1, r0
+ strb r1, [r2, #0xc]
+ b ._761
+._730:
+ ldrh r3, [r2, #0xc]
+ lsl r1, r3, #0x16
+ lsr r0, r1, #0x1b
+ cmp r0, #0x1e
+ bhi ._761 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x5
+ ldr r1, ._742 @ 0xfffffc1f
+ and r1, r1, r3
+ orr r1, r1, r0
+ strh r1, [r2, #0xc]
+ b ._761
+._743:
+ .align 2, 0
+._742:
+ .word 0xfffffc1f
+._736:
+ ldrb r3, [r2, #0xd]
+ lsl r1, r3, #0x19
+ lsr r0, r1, #0x1b
+ cmp r0, #0x1e
+ bhi ._761 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x2
+ mov r1, #0x7d
+ neg r1, r1
+ and r1, r1, r3
+ orr r1, r1, r0
+ strb r1, [r2, #0xd]
+ b ._761
+._729:
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._754 @cond_branch
+ ldr r0, ._751 @ gUnknown_Debug_2038A20
+ ldr r3, [r0]
+ ldrb r0, [r3, #0xa]
+ cmp r0, #0x1
+ beq ._747 @cond_branch
+ cmp r0, #0x1
+ bgt ._748 @cond_branch
+ cmp r0, #0
+ beq ._749 @cond_branch
+ b ._754
+._752:
+ .align 2, 0
+._751:
+ .word gUnknown_Debug_2038A20
+._748:
+ cmp r0, #0x2
+ beq ._753 @cond_branch
+ b ._754
+._749:
+ ldrb r2, [r3, #0xc]
+ mov r0, #0x1f
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._761 @cond_branch
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0x1b
+ sub r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ mov r1, #0x20
+ neg r1, r1
+ and r1, r1, r2
+ orr r1, r1, r0
+ strb r1, [r3, #0xc]
+ b ._761
+._747:
+ ldrh r2, [r3, #0xc]
+ mov r0, #0xf8
+ lsl r0, r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._761 @cond_branch
+ lsl r0, r2, #0x16
+ lsr r0, r0, #0x1b
+ sub r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x5
+ ldr r1, ._759 @ 0xfffffc1f
+ and r1, r1, r2
+ orr r1, r1, r0
+ strh r1, [r3, #0xc]
+ b ._761
+._760:
+ .align 2, 0
+._759:
+ .word 0xfffffc1f
+._753:
+ ldrb r2, [r3, #0xd]
+ mov r0, #0x7c
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._761 @cond_branch
+ lsl r0, r2, #0x19
+ lsr r0, r0, #0x1b
+ sub r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x2
+ mov r1, #0x7d
+ neg r1, r1
+ and r1, r1, r2
+ orr r1, r1, r0
+ strb r1, [r3, #0xd]
+._761:
+ ldr r0, ._762 @ gTasks
+ lsl r1, r7, #0x2
+ add r1, r1, r7
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._762 + 4 @ debug_80C74E4
+ str r0, [r1]
+._754:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._763:
+ .align 2, 0
+._762:
+ .word gTasks
+ .word debug_80C74E4+1
+
+ thumb_func_end debug_80C7294
+
+ thumb_func_start debug_80C74E4
+debug_80C74E4:
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ add r5, r0, #0
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ ldr r0, ._764 @ gUnknown_Debug_2038A20
+ ldr r3, [r0]
+ ldrb r0, [r3, #0xc]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ ldrh r2, [r3, #0xc]
+ mov r1, #0xf8
+ lsl r1, r1, #0x2
+ and r1, r1, r2
+ add r0, r0, r1
+ ldrb r1, [r3, #0xd]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ ldr r6, ._764 + 4 @ gPlttBufferUnfaded
+ ldrb r1, [r3, #0x7]
+ add r1, r1, #0x81
+ lsl r1, r1, #0x1
+ add r1, r1, r6
+ strh r0, [r1]
+ ldr r1, ._764 + 8 @ gPlttBufferFaded
+ mov r8, r1
+ ldrb r1, [r3, #0x7]
+ add r1, r1, #0x81
+ lsl r1, r1, #0x1
+ add r1, r1, r8
+ strh r0, [r1]
+ ldrb r1, [r3, #0x6]
+ lsl r1, r1, #0x4
+ ldrb r2, [r3, #0x7]
+ ldr r4, ._764 + 12 @ 0x101
+ add r2, r2, r4
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ add r1, r1, r6
+ strh r0, [r1]
+ ldrb r1, [r3, #0x6]
+ lsl r1, r1, #0x4
+ ldrb r2, [r3, #0x7]
+ add r2, r2, r4
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ add r1, r1, r8
+ strh r0, [r1]
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0x4
+ bl debug_80C68CC
+ ldr r1, ._764 + 16 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._764 + 20 @ debug_80C7294
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._765:
+ .align 2, 0
+._764:
+ .word gUnknown_Debug_2038A20
+ .word gPlttBufferUnfaded
+ .word gPlttBufferFaded
+ .word 0x101
+ .word gTasks
+ .word debug_80C7294+1
+
+ thumb_func_end debug_80C74E4
+
+ thumb_func_start debug_80C7584
+debug_80C7584:
+ push {r4, lr}
+ add r2, r0, #0
+ ldr r0, ._771 @ gUnknown_Debug_2038A20
+ ldr r3, [r0]
+ ldrb r1, [r3, #0x5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq ._766 @cond_branch
+ mov r1, #0x2e
+ ldsh r0, [r2, r1]
+ cmp r0, #0x1
+ beq ._767 @cond_branch
+ cmp r0, #0x1
+ ble ._768 @cond_branch
+ cmp r0, #0x2
+ beq ._769 @cond_branch
+._768:
+ ldrb r0, [r3, #0xc]
+ lsl r0, r0, #0x1b
+ b ._773
+._772:
+ .align 2, 0
+._771:
+ .word gUnknown_Debug_2038A20
+._767:
+ ldrh r0, [r3, #0xc]
+ lsl r0, r0, #0x16
+ b ._773
+._769:
+ ldrb r0, [r3, #0xd]
+ lsl r0, r0, #0x19
+._773:
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x2
+ strh r0, [r2, #0x24]
+ mov r1, #0x2e
+ ldsh r0, [r2, r1]
+ lsl r0, r0, #0x3
+ strh r0, [r2, #0x26]
+ ldrh r0, [r2, #0x30]
+ add r3, r0, #1
+ strh r3, [r2, #0x30]
+ mov r0, #0x2e
+ ldsh r1, [r2, r0]
+ ldr r0, [r4]
+ ldrb r0, [r0, #0xa]
+ cmp r1, r0
+ bne ._775 @cond_branch
+ mov r0, #0x8
+ and r3, r3, r0
+ cmp r3, #0
+ bne ._775 @cond_branch
+._766:
+ add r0, r2, #0
+ add r0, r0, #0x3e
+ ldrb r1, [r0]
+ mov r2, #0x4
+ orr r1, r1, r2
+ strb r1, [r0]
+ b ._776
+._775:
+ add r2, r2, #0x3e
+ ldrb r1, [r2]
+ mov r0, #0x5
+ neg r0, r0
+ and r0, r0, r1
+ strb r0, [r2]
+._776:
+ pop {r4}
+ pop {r0}
+ bx r0
+
+ thumb_func_end debug_80C7584
+
+ thumb_func_start InitSeeTrainers
+InitSeeTrainers:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffffc
+ bl debug_80C35DC
+ ldr r1, ._777 @ byte_83F88EC
+ ldr r2, ._777 + 4 @ 0x600e000
+ ldr r0, ._777 + 8 @ 0x40000d4
+ str r1, [r0]
+ str r2, [r0, #0x4]
+ ldr r1, ._777 + 12 @ 0x80000400
+ str r1, [r0, #0x8]
+ ldr r0, [r0, #0x8]
+ ldr r0, ._777 + 16 @ word_83F888C
+ mov r1, #0x80
+ mov r2, #0x60
+ bl LoadPalette
+ mov r0, #0x1
+ neg r0, r0
+ mov r5, #0x0
+ str r5, [sp]
+ mov r1, #0x0
+ mov r2, #0x10
+ mov r3, #0x0
+ bl BeginNormalPaletteFade
+ ldr r0, ._777 + 20 @ 0x4000040
+ mov r6, #0x0
+ strh r5, [r0]
+ add r0, r0, #0x4
+ strh r5, [r0]
+ sub r0, r0, #0x2
+ strh r5, [r0]
+ add r0, r0, #0x4
+ strh r5, [r0]
+ ldr r1, ._777 + 24 @ 0x4000048
+ mov r0, #0x3f
+ strh r0, [r1]
+ add r1, r1, #0x2
+ mov r0, #0x1f
+ strh r0, [r1]
+ add r1, r1, #0x6
+ mov r0, #0xf1
+ strh r0, [r1]
+ ldr r0, ._777 + 28 @ 0x4000052
+ strh r5, [r0]
+ add r1, r1, #0x4
+ mov r0, #0x7
+ strh r0, [r1]
+ ldr r3, ._777 + 32 @ 0x4000208
+ ldrh r2, [r3]
+ strh r5, [r3]
+ ldr r4, ._777 + 36 @ 0x4000200
+ ldrh r0, [r4]
+ mov r1, #0x1
+ orr r0, r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, ._777 + 40 @ debug_80C3758
+ bl SetVBlankCallback
+ ldr r0, ._777 + 44 @ debug_80C370C
+ bl SetMainCallback2
+ ldr r1, ._777 + 48 @ 0x4000008
+ ldr r2, ._777 + 52 @ 0x1f0b
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x2
+ ldr r2, ._777 + 56 @ 0x1e0a
+ add r0, r2, #0
+ strh r0, [r1]
+ sub r1, r1, #0xa
+ mov r2, #0xcd
+ lsl r2, r2, #0x6
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, ._777 + 60 @ debug_80C777C
+ mov r1, #0x0
+ bl CreateTask
+ ldr r1, ._777 + 64 @ gUnknown_Debug_2038A20
+ ldr r0, ._777 + 68 @ 0x2018000
+ str r0, [r1]
+ strh r5, [r0]
+ strb r6, [r0, #0x2]
+ strb r6, [r0, #0x3]
+ strb r6, [r0, #0x5]
+ strb r6, [r0, #0x7]
+ strb r6, [r0, #0xa]
+ strb r6, [r0, #0x8]
+ ldr r4, ._777 + 72 @ gSpriteTemplate_83F8874
+ add r0, r4, #0
+ mov r1, #0x6c
+ mov r2, #0x74
+ mov r3, #0x0
+ bl CreateSprite
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ ldr r6, ._777 + 76 @ gSprites
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ strh r5, [r0, #0x2e]
+ mov r1, #0x0
+ bl StartSpriteAnim
+ add r0, r4, #0
+ mov r1, #0x6c
+ mov r2, #0x74
+ mov r3, #0x0
+ bl CreateSprite
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ mov r1, #0x1
+ strh r1, [r0, #0x2e]
+ bl StartSpriteAnim
+ add r0, r4, #0
+ mov r1, #0x6c
+ mov r2, #0x74
+ mov r3, #0x0
+ bl CreateSprite
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ mov r1, #0x2
+ strh r1, [r0, #0x2e]
+ bl StartSpriteAnim
+ add sp, sp, #0x4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._778:
+ .align 2, 0
+._777:
+ .word byte_83F88EC
+ .word 0x600e000
+ .word 0x40000d4
+ .word 0x80000400
+ .word word_83F888C
+ .word 0x4000040
+ .word 0x4000048
+ .word 0x4000052
+ .word 0x4000208
+ .word 0x4000200
+ .word debug_80C3758+1
+ .word debug_80C370C+1
+ .word 0x4000008
+ .word 0x1f0b
+ .word 0x1e0a
+ .word debug_80C777C+1
+ .word gUnknown_Debug_2038A20
+ .word 0x2018000
+ .word gSpriteTemplate_83F8874
+ .word gSprites
+
+ thumb_func_end InitSeeTrainers
+
+ thumb_func_start debug_80C777C
+debug_80C777C:
+ push {r4, r5, r6, r7, lr}
+ mov r7, r8
+ push {r7}
+ add sp, sp, #0xffffffec
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, ._784 @ gUnknown_Debug_083F8815
+ mov r0, sp
+ mov r2, #0x12
+ bl memcpy
+ mov r0, #0x9
+ mov r1, #0x0
+ mov r2, #0xe
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0x0
+ mov r2, #0x9
+ mov r3, #0x9
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0x0
+ mov r1, #0xa
+ mov r2, #0x9
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r0, #0xe
+ mov r1, #0x0
+ mov r2, #0x1d
+ mov r3, #0x7
+ bl Menu_DrawStdWindowFrame
+ ldr r0, ._784 + 4 @ gUnknown_Debug_083F87D0
+ mov r1, #0xf
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._784 + 8 @ gUnknown_Debug_083F87D8
+ mov r1, #0x19
+ mov r2, #0x1
+ bl Menu_PrintText
+ ldr r0, ._784 + 12 @ gUnknown_Debug_083F87E0
+ mov r1, #0xf
+ mov r2, #0x5
+ bl Menu_PrintText
+ mov r0, #0xa
+ mov r1, #0x8
+ mov r2, #0x1d
+ mov r3, #0xc
+ bl Menu_DrawStdWindowFrame
+ mov r2, #0x0
+ ldr r4, ._784 + 16 @ 0x600fa56
+ ldr r0, ._784 + 20 @ 0xa311
+ add r3, r0, #0
+._779:
+ lsl r0, r2, #0x1
+ add r0, r0, r4
+ add r1, r2, r3
+ strh r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xe
+ bls ._779 @cond_branch
+ mov r2, #0x0
+ ldr r5, ._784 + 24 @ gUnknown_Debug_083F87F4
+ lsl r6, r7, #0x2
+ mov r8, r6
+ ldr r4, ._784 + 28 @ 0x600f256
+ ldr r0, ._784 + 32 @ 0x8301
+ add r3, r0, #0
+._780:
+ lsl r0, r2, #0x1
+ add r0, r0, r4
+ add r1, r2, r3
+ strh r1, [r0]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xe
+ bls ._780 @cond_branch
+ add r0, r5, #0
+ mov r1, #0x14
+ mov r2, #0xa
+ bl Menu_PrintText
+ mov r0, #0xa
+ mov r1, #0xd
+ mov r2, #0x1d
+ mov r3, #0x13
+ bl Menu_DrawStdWindowFrame
+ mov r1, sp
+ mov r0, #0x23
+ strb r0, [r1]
+ mov r2, #0x0
+ ldr r4, ._784 + 36 @ 0x600f396
+ mov r5, #0x93
+ lsl r5, r5, #0x8
+ add r3, r5, #0
+._781:
+ lsl r1, r2, #0x1
+ add r1, r1, r4
+ mov r6, sp
+ add r0, r6, r2
+ ldrb r0, [r0]
+ add r0, r0, r3
+ strh r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x11
+ bls ._781 @cond_branch
+ mov r1, sp
+ mov r0, #0x24
+ strb r0, [r1]
+ mov r2, #0x0
+ ldr r5, ._784 + 40 @ gUnknown_Debug_083F8801
+ ldr r4, ._784 + 44 @ 0x600f3d6
+ mov r0, #0x93
+ lsl r0, r0, #0x8
+ add r3, r0, #0
+._782:
+ lsl r1, r2, #0x1
+ add r1, r1, r4
+ mov r6, sp
+ add r0, r6, r2
+ ldrb r0, [r0]
+ add r0, r0, r3
+ strh r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x11
+ bls ._782 @cond_branch
+ mov r1, sp
+ mov r0, #0x25
+ strb r0, [r1]
+ mov r2, #0x0
+ ldr r4, ._784 + 48 @ 0x600f416
+ mov r0, #0x93
+ lsl r0, r0, #0x8
+ add r3, r0, #0
+._783:
+ lsl r1, r2, #0x1
+ add r1, r1, r4
+ mov r6, sp
+ add r0, r6, r2
+ ldrb r0, [r0]
+ add r0, r0, r3
+ strh r0, [r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0x11
+ bls ._783 @cond_branch
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0x11
+ bl Menu_PrintText
+ ldr r1, ._784 + 52 @ 0x4000040
+ ldr r2, ._784 + 56 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r5, ._784 + 60 @ 0x699f
+ add r0, r5, #0
+ strh r0, [r1]
+ ldr r1, ._784 + 64 @ gTasks
+ mov r6, r8
+ add r0, r6, r7
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._784 + 68 @ debug_80C7934
+ str r1, [r0]
+ add sp, sp, #0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._785:
+ .align 2, 0
+._784:
+ .word gUnknown_Debug_083F8815
+ .word gUnknown_Debug_083F87D0
+ .word gUnknown_Debug_083F87D8
+ .word gUnknown_Debug_083F87E0
+ .word 0x600fa56
+ .word 0xa311
+ .word gUnknown_Debug_083F87F4
+ .word 0x600f256
+ .word 0x8301
+ .word 0x600f396
+ .word gUnknown_Debug_083F8801
+ .word 0x600f3d6
+ .word 0x600f416
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x699f
+ .word gTasks
+ .word debug_80C7934+1
+
+ thumb_func_end debug_80C777C
+
+ thumb_func_start debug_80C7934
+debug_80C7934:
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ add sp, sp, #0xfffffff8
+ mov r8, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r8, r0
+ ldr r5, ._786 @ gUnknown_Debug_2038A20
+ ldr r6, [r5]
+ ldrh r2, [r6]
+ lsl r0, r2, #0x3
+ ldr r1, ._786 + 4 @ gTrainerFrontPicTable
+ add r0, r0, r1
+ ldr r1, ._786 + 8 @ gTrainerFrontPicCoords
+ lsl r2, r2, #0x2
+ add r2, r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, #0x1]
+ ldr r4, ._786 + 12 @ gUnknown_081FAF4C
+ ldr r3, [r4]
+ ldr r4, [r4, #0x4]
+ str r4, [sp]
+ ldrh r4, [r6]
+ str r4, [sp, #0x4]
+ bl DecompressPicFromTable_2
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ lsl r0, r0, #0x3
+ ldr r1, ._786 + 16 @ gTrainerFrontPicPaletteTable
+ add r0, r0, r1
+ bl LoadCompressedObjectPalette
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x1
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, ._786 + 20 @ gUnknown_02024E8C
+ mov r1, #0x28
+ mov r2, #0x28
+ mov r3, #0x0
+ bl CreateSprite
+ ldr r1, [r5]
+ mov r6, #0x0
+ strb r0, [r1, #0x2]
+ ldr r4, ._786 + 24 @ gSprites
+ ldr r2, [r5]
+ ldrb r1, [r2, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r1, r4, #0
+ add r1, r1, #0x1c
+ add r0, r0, r1
+ ldr r1, ._786 + 28 @ debug_69
+ str r1, [r0]
+ ldrb r0, [r2, #0x2]
+ lsl r1, r0, #0x4
+ add r1, r1, r0
+ lsl r1, r1, #0x2
+ add r1, r1, r4
+ ldrb r2, [r1, #0x5]
+ mov r0, #0xd
+ neg r0, r0
+ and r0, r0, r2
+ strb r0, [r1, #0x5]
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ mov r1, #0x1a
+ mov r2, #0x5
+ bl debug_80C376C
+ ldr r2, [r5]
+ ldrb r1, [r2, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r4
+ ldrb r0, [r0, #0x5]
+ lsr r0, r0, #0x4
+ strb r0, [r2, #0x6]
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ ldr r4, ._786 + 32 @ gPlttBufferUnfaded
+ add r0, r0, r4
+ ldr r2, ._786 + 36 @ 0xffffff00
+ add r1, r4, r2
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ add r0, r0, r4
+ ldr r1, ._786 + 40 @ gPlttBufferFaded
+ mov r2, #0x10
+ bl CpuSet
+ ldr r1, ._786 + 44 @ gTasks
+ mov r2, r8
+ lsl r0, r2, #0x2
+ add r0, r0, r8
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._786 + 48 @ debug_80C7A54
+ str r1, [r0]
+ ldr r0, [r5]
+ strb r6, [r0, #0x9]
+ add sp, sp, #0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._787:
+ .align 2, 0
+._786:
+ .word gUnknown_Debug_2038A20
+ .word gTrainerFrontPicTable
+ .word gTrainerFrontPicCoords
+ .word gUnknown_081FAF4C
+ .word gTrainerFrontPicPaletteTable
+ .word gUnknown_02024E8C
+ .word gSprites
+ .word debug_69+1
+ .word gPlttBufferUnfaded+0x200
+ .word 0xffffff00
+ .word gPlttBufferFaded+0x100
+ .word gTasks
+ .word debug_80C7A54+1
+
+ thumb_func_end debug_80C7934
+
+ thumb_func_start debug_80C7A54
+debug_80C7A54:
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ lsl r6, r6, #0x18
+ lsr r6, r6, #0x18
+ ldr r4, ._788 @ gPlttBufferUnfaded
+ ldr r5, ._788 + 4 @ gUnknown_Debug_2038A20
+ ldr r1, [r5]
+ add r1, r1, #0x10
+ add r0, r4, #0
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, ._788 + 8 @ 0xffffff00
+ add r4, r4, r0
+ ldr r3, [r5]
+ ldrb r0, [r3, #0x7]
+ add r0, r0, #0x81
+ lsl r0, r0, #0x1
+ add r0, r0, r4
+ ldrh r4, [r0]
+ mov r1, #0x1f
+ and r1, r1, r4
+ ldrb r2, [r3, #0xc]
+ mov r0, #0x20
+ neg r0, r0
+ and r0, r0, r2
+ orr r0, r0, r1
+ strb r0, [r3, #0xc]
+ ldr r3, [r5]
+ mov r1, #0xf8
+ lsl r1, r1, #0x2
+ and r1, r1, r4
+ ldrh r2, [r3, #0xc]
+ ldr r0, ._788 + 12 @ 0xfffffc1f
+ and r0, r0, r2
+ orr r0, r0, r1
+ strh r0, [r3, #0xc]
+ mov r1, #0xf8
+ lsl r1, r1, #0x7
+ and r1, r1, r4
+ lsr r1, r1, #0x8
+ ldrb r2, [r3, #0xd]
+ mov r0, #0x7d
+ neg r0, r0
+ and r0, r0, r2
+ orr r0, r0, r1
+ strb r0, [r3, #0xd]
+ ldr r2, [r5]
+ ldrb r1, [r2, #0xd]
+ mov r0, #0x7f
+ and r0, r0, r1
+ strb r0, [r2, #0xd]
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x7]
+ add r0, r0, #0x1
+ mov r1, #0xb
+ mov r2, #0xa
+ mov r3, #0x2
+ bl debug_80C68CC
+ ldr r0, ._788 + 16 @ gUnknown_Debug_083F8813
+ mov r1, #0xd
+ mov r2, #0xa
+ bl Menu_PrintText
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0x4
+ bl debug_80C68CC
+ ldr r1, ._788 + 20 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._788 + 24 @ debug_80C7B14
+ str r1, [r0]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._789:
+ .align 2, 0
+._788:
+ .word gPlttBufferUnfaded+0x100
+ .word gUnknown_Debug_2038A20
+ .word 0xffffff00
+ .word 0xfffffc1f
+ .word gUnknown_Debug_083F8813
+ .word gTasks
+ .word debug_80C7B14+1
+
+ thumb_func_end debug_80C7A54
+
+ thumb_func_start debug_80C7B14
+debug_80C7B14:
+ push {r4, r5, r6, lr}
+ add sp, sp, #0xfffffffc
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r1, ._792 @ gMain
+ ldrh r3, [r1, #0x2e]
+ mov r0, #0x2
+ and r0, r0, r3
+ add r4, r1, #0
+ cmp r0, #0
+ beq ._790 @cond_branch
+ mov r0, #0x5
+ bl PlaySE
+ mov r0, #0x1
+ neg r0, r0
+ mov r1, #0x0
+ str r1, [sp]
+ mov r2, #0x0
+ mov r3, #0x10
+ bl BeginNormalPaletteFade
+ ldr r0, ._792 + 4 @ debug_80C370C
+ bl SetMainCallback2
+ ldr r1, ._792 + 8 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._792 + 12 @ debug_80C373C
+ str r1, [r0]
+ b ._821
+._793:
+ .align 2, 0
+._792:
+ .word gMain
+ .word debug_80C370C+1
+ .word gTasks
+ .word debug_80C373C+1
+._790:
+ ldrh r1, [r4, #0x30]
+ mov r0, #0x80
+ lsl r0, r0, #0x1
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._794 @cond_branch
+ ldr r4, ._796 @ gUnknown_Debug_2038A20
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ mov r0, #0x0
+ b ._795
+._797:
+ .align 2, 0
+._796:
+ .word gUnknown_Debug_2038A20
+._794:
+ mov r0, #0x80
+ lsl r0, r0, #0x2
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._798 @cond_branch
+ ldr r4, ._800 @ gUnknown_Debug_2038A20
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ mov r0, #0x1
+._795:
+ bl debug_80C38B4
+ ldr r1, [r4]
+ strh r0, [r1]
+ ldr r1, ._800 + 4 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._800 + 8 @ debug_80C7D44
+ str r1, [r0]
+ b ._821
+._801:
+ .align 2, 0
+._800:
+ .word gUnknown_Debug_2038A20
+ .word gTasks
+ .word debug_80C7D44+1
+._798:
+ mov r2, #0x1
+ and r2, r2, r3
+ cmp r2, #0
+ beq ._802 @cond_branch
+ ldr r0, ._804 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ mov r0, #0x1
+ strb r0, [r1, #0x5]
+ ldr r1, ._804 + 4 @ 0x4000040
+ ldr r2, ._804 + 8 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._804 + 12 @ 0x4167
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r1, ._804 + 16 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._804 + 20 @ debug_80C7DDC
+ str r1, [r0]
+ b ._821
+._805:
+ .align 2, 0
+._804:
+ .word gUnknown_Debug_2038A20
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x4167
+ .word gTasks
+ .word debug_80C7DDC+1
+._802:
+ mov r0, #0x10
+ and r0, r0, r1
+ ldr r3, ._809 @ gUnknown_Debug_2038A20
+ cmp r0, #0
+ beq ._807 @cond_branch
+ ldr r1, [r3]
+ ldrb r0, [r1, #0x7]
+ cmp r0, #0xd
+ bhi ._807 @cond_branch
+ lsl r0, r0, #0x1
+ ldr r1, ._809 + 4 @ 0x5000102
+ add r0, r0, r1
+ strh r2, [r0]
+ ldr r1, [r3]
+ ldrb r0, [r1, #0x7]
+ add r0, r0, #0x1
+ strb r0, [r1, #0x7]
+ b ._813
+._810:
+ .align 2, 0
+._809:
+ .word gUnknown_Debug_2038A20
+ .word 0x5000102
+._807:
+ ldrh r1, [r4, #0x30]
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._812 @cond_branch
+ ldr r1, [r3]
+ ldrb r0, [r1, #0x7]
+ cmp r0, #0
+ beq ._812 @cond_branch
+ lsl r0, r0, #0x1
+ ldr r2, ._814 @ 0x5000102
+ add r0, r0, r2
+ mov r1, #0x0
+ strh r1, [r0]
+ ldr r1, [r3]
+ ldrb r0, [r1, #0x7]
+ sub r0, r0, #0x1
+ strb r0, [r1, #0x7]
+ b ._813
+._815:
+ .align 2, 0
+._814:
+ .word 0x5000102
+._812:
+ ldrh r1, [r4, #0x2e]
+ mov r0, #0x8
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._816 @cond_branch
+ ldr r4, ._819 @ gUnknown_Debug_2038A20
+ ldr r2, [r4]
+ ldrb r0, [r2, #0x9]
+ mov r1, #0x1
+ eor r0, r0, r1
+ strb r0, [r2, #0x9]
+ ldr r1, [r4]
+ ldrb r0, [r1, #0x9]
+ cmp r0, #0
+ beq ._817 @cond_branch
+ ldrh r0, [r1]
+ mov r1, #0x0
+ mov r2, #0x0
+ bl GetMonSpritePalFromOtIdPersonality
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x14
+ mov r2, #0x80
+ lsl r2, r2, #0x11
+ add r1, r1, r2
+ lsr r1, r1, #0x10
+ mov r2, #0x20
+ bl LoadCompressedPalette
+ b ._818
+._820:
+ .align 2, 0
+._819:
+ .word gUnknown_Debug_2038A20
+._817:
+ ldrh r0, [r1]
+ mov r1, #0x0
+ mov r2, #0x9
+ bl GetMonSpritePalFromOtIdPersonality
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x14
+ mov r2, #0x80
+ lsl r2, r2, #0x11
+ add r1, r1, r2
+ lsr r1, r1, #0x10
+ mov r2, #0x20
+ bl LoadCompressedPalette
+._818:
+ ldr r5, ._822 @ gUnknown_Debug_2038A20
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ ldr r4, ._822 + 4 @ gPlttBufferUnfaded
+ add r0, r0, r4
+ ldr r2, ._822 + 8 @ 0xffffff00
+ add r1, r4, r2
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x6]
+ lsl r0, r0, #0x5
+ add r0, r0, r4
+ ldr r1, ._822 + 12 @ gPlttBufferFaded
+ mov r2, #0x10
+ bl CpuSet
+._813:
+ ldr r1, ._822 + 16 @ gTasks
+ lsl r0, r6, #0x2
+ add r0, r0, r6
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._822 + 20 @ debug_80C7A54
+ str r1, [r0]
+ b ._821
+._823:
+ .align 2, 0
+._822:
+ .word gUnknown_Debug_2038A20
+ .word gPlttBufferUnfaded+0x200
+ .word 0xffffff00
+ .word gPlttBufferFaded+0x100
+ .word gTasks
+ .word debug_80C7A54+1
+._816:
+ ldr r1, [r3]
+ ldrb r0, [r1, #0x8]
+ add r0, r0, #0x4
+ strb r0, [r1, #0x8]
+ ldr r2, [r3]
+ ldrb r1, [r2, #0x8]
+ mov r0, #0x1f
+ and r0, r0, r1
+ strb r0, [r2, #0x8]
+ ldr r0, [r3]
+ ldrb r1, [r0, #0x7]
+ lsl r1, r1, #0x1
+ ldr r2, ._824 @ 0x5000142
+ add r1, r1, r2
+ ldr r2, ._824 + 4 @ gUnknown_Debug_083F8790
+ ldrb r0, [r0, #0x8]
+ lsl r0, r0, #0x1
+ add r0, r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+._821:
+ add sp, sp, #0x4
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._825:
+ .align 2, 0
+._824:
+ .word 0x5000142
+ .word gUnknown_Debug_083F8790
+
+ thumb_func_end debug_80C7B14
+
+ thumb_func_start debug_80C7D44
+debug_80C7D44:
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ ldr r6, ._826 @ gSprites
+ ldr r4, ._826 + 4 @ gUnknown_Debug_2038A20
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldrb r0, [r0, #0x5]
+ lsr r0, r0, #0x4
+ bl GetSpritePaletteTagByPaletteNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x2]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ bl DestroySprite
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x3]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ ldrb r0, [r0, #0x5]
+ lsr r0, r0, #0x4
+ bl GetSpritePaletteTagByPaletteNum
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x3]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ bl DestroySprite
+ ldr r0, [r4]
+ ldrb r1, [r0, #0x4]
+ lsl r0, r1, #0x4
+ add r0, r0, r1
+ lsl r0, r0, #0x2
+ add r0, r0, r6
+ bl sub_809D510
+ ldr r1, ._826 + 8 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._826 + 12 @ debug_80C7934
+ str r1, [r0]
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._827:
+ .align 2, 0
+._826:
+ .word gSprites
+ .word gUnknown_Debug_2038A20
+ .word gTasks
+ .word debug_80C7934+1
+
+ thumb_func_end debug_80C7D44
+
+ thumb_func_start debug_80C7DDC
+debug_80C7DDC:
+ push {r4, r5, r6, r7, lr}
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r0, ._830 @ gMain
+ ldrh r2, [r0, #0x2e]
+ mov r1, #0x1
+ and r1, r1, r2
+ add r3, r0, #0
+ cmp r1, #0
+ beq ._828 @cond_branch
+ ldr r0, ._830 + 4 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ mov r0, #0x0
+ strb r0, [r1, #0x5]
+ ldr r1, ._830 + 8 @ 0x4000040
+ ldr r2, ._830 + 12 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._830 + 16 @ 0x699f
+ add r0, r2, #0
+ strh r0, [r1]
+ b ._829
+._831:
+ .align 2, 0
+._830:
+ .word gMain
+ .word gUnknown_Debug_2038A20
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x699f
+._828:
+ mov r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._832 @cond_branch
+ ldr r6, ._834 @ gUnknown_Debug_2038A20
+ ldr r0, [r6]
+ strb r1, [r0, #0x5]
+ ldr r1, ._834 + 4 @ 0x4000040
+ ldr r2, ._834 + 8 @ 0x51ef
+ add r0, r2, #0
+ strh r0, [r1]
+ add r1, r1, #0x4
+ ldr r2, ._834 + 12 @ 0x699f
+ add r0, r2, #0
+ strh r0, [r1]
+ ldr r0, [r6]
+ add r0, r0, #0x10
+ ldr r4, ._834 + 16 @ gPlttBufferUnfaded
+ add r1, r4, #0
+ mov r2, #0x10
+ bl CpuSet
+ ldr r0, [r6]
+ add r0, r0, #0x10
+ ldr r5, ._834 + 20 @ gPlttBufferFaded
+ add r1, r5, #0
+ mov r2, #0x10
+ bl CpuSet
+ ldr r1, [r6]
+ add r0, r1, #0
+ add r0, r0, #0x10
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x5
+ mov r2, #0x80
+ lsl r2, r2, #0x1
+ add r4, r4, r2
+ add r1, r1, r4
+ mov r2, #0x10
+ bl CpuSet
+ ldr r1, [r6]
+ add r0, r1, #0
+ add r0, r0, #0x10
+ ldrb r1, [r1, #0x6]
+ lsl r1, r1, #0x5
+ mov r2, #0x80
+ lsl r2, r2, #0x1
+ add r5, r5, r2
+ add r1, r1, r5
+ mov r2, #0x10
+ bl CpuSet
+._829:
+ ldr r1, ._834 + 24 @ gTasks
+ lsl r0, r7, #0x2
+ add r0, r0, r7
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._834 + 28 @ debug_80C7A54
+ str r1, [r0]
+ b ._871
+._835:
+ .align 2, 0
+._834:
+ .word gUnknown_Debug_2038A20
+ .word 0x4000040
+ .word 0x51ef
+ .word 0x699f
+ .word gPlttBufferUnfaded+0x100
+ .word gPlttBufferFaded+0x100
+ .word gTasks
+ .word debug_80C7A54+1
+._832:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x80
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._837 @cond_branch
+ ldr r0, ._839 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0x1
+ bhi ._837 @cond_branch
+ add r0, r0, #0x1
+ strb r0, [r1, #0xa]
+ b ._871
+._840:
+ .align 2, 0
+._839:
+ .word gUnknown_Debug_2038A20
+._837:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x40
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._842 @cond_branch
+ ldr r0, ._844 @ gUnknown_Debug_2038A20
+ ldr r1, [r0]
+ ldrb r0, [r1, #0xa]
+ cmp r0, #0
+ beq ._842 @cond_branch
+ sub r0, r0, #0x1
+ strb r0, [r1, #0xa]
+ b ._871
+._845:
+ .align 2, 0
+._844:
+ .word gUnknown_Debug_2038A20
+._842:
+ ldrh r1, [r3, #0x30]
+ mov r0, #0x10
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._846 @cond_branch
+ ldr r0, ._851 @ gUnknown_Debug_2038A20
+ ldr r2, [r0]
+ ldrb r0, [r2, #0xa]
+ cmp r0, #0x1
+ beq ._847 @cond_branch
+ cmp r0, #0x1
+ bgt ._848 @cond_branch
+ cmp r0, #0
+ beq ._849 @cond_branch
+ b ._871
+._852:
+ .align 2, 0
+._851:
+ .word gUnknown_Debug_2038A20
+._848:
+ cmp r0, #0x2
+ beq ._853 @cond_branch
+ b ._871
+._849:
+ ldrb r3, [r2, #0xc]
+ lsl r1, r3, #0x1b
+ lsr r0, r1, #0x1b
+ cmp r0, #0x1e
+ bhi ._878 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ mov r1, #0x20
+ neg r1, r1
+ and r1, r1, r3
+ orr r1, r1, r0
+ strb r1, [r2, #0xc]
+ b ._878
+._847:
+ ldrh r3, [r2, #0xc]
+ lsl r1, r3, #0x16
+ lsr r0, r1, #0x1b
+ cmp r0, #0x1e
+ bhi ._878 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x5
+ ldr r1, ._859 @ 0xfffffc1f
+ and r1, r1, r3
+ orr r1, r1, r0
+ strh r1, [r2, #0xc]
+ b ._878
+._860:
+ .align 2, 0
+._859:
+ .word 0xfffffc1f
+._853:
+ ldrb r3, [r2, #0xd]
+ lsl r1, r3, #0x19
+ lsr r0, r1, #0x1b
+ cmp r0, #0x1e
+ bhi ._878 @cond_branch
+ add r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x2
+ mov r1, #0x7d
+ neg r1, r1
+ and r1, r1, r3
+ orr r1, r1, r0
+ strb r1, [r2, #0xd]
+ b ._878
+._846:
+ mov r0, #0x20
+ and r0, r0, r1
+ cmp r0, #0
+ beq ._871 @cond_branch
+ ldr r0, ._868 @ gUnknown_Debug_2038A20
+ ldr r3, [r0]
+ ldrb r0, [r3, #0xa]
+ cmp r0, #0x1
+ beq ._864 @cond_branch
+ cmp r0, #0x1
+ bgt ._865 @cond_branch
+ cmp r0, #0
+ beq ._866 @cond_branch
+ b ._871
+._869:
+ .align 2, 0
+._868:
+ .word gUnknown_Debug_2038A20
+._865:
+ cmp r0, #0x2
+ beq ._870 @cond_branch
+ b ._871
+._866:
+ ldrb r2, [r3, #0xc]
+ mov r0, #0x1f
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._878 @cond_branch
+ lsl r0, r2, #0x1b
+ lsr r0, r0, #0x1b
+ sub r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ mov r1, #0x20
+ neg r1, r1
+ and r1, r1, r2
+ orr r1, r1, r0
+ strb r1, [r3, #0xc]
+ b ._878
+._864:
+ ldrh r2, [r3, #0xc]
+ mov r0, #0xf8
+ lsl r0, r0, #0x2
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._878 @cond_branch
+ lsl r0, r2, #0x16
+ lsr r0, r0, #0x1b
+ sub r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x5
+ ldr r1, ._876 @ 0xfffffc1f
+ and r1, r1, r2
+ orr r1, r1, r0
+ strh r1, [r3, #0xc]
+ b ._878
+._877:
+ .align 2, 0
+._876:
+ .word 0xfffffc1f
+._870:
+ ldrb r2, [r3, #0xd]
+ mov r0, #0x7c
+ and r0, r0, r2
+ cmp r0, #0
+ beq ._878 @cond_branch
+ lsl r0, r2, #0x19
+ lsr r0, r0, #0x1b
+ sub r0, r0, #0x1
+ mov r1, #0x1f
+ and r0, r0, r1
+ lsl r0, r0, #0x2
+ mov r1, #0x7d
+ neg r1, r1
+ and r1, r1, r2
+ orr r1, r1, r0
+ strb r1, [r3, #0xd]
+._878:
+ ldr r0, ._879 @ gTasks
+ lsl r1, r7, #0x2
+ add r1, r1, r7
+ lsl r1, r1, #0x3
+ add r1, r1, r0
+ ldr r0, ._879 + 4 @ debug_80C802C
+ str r0, [r1]
+._871:
+ pop {r4, r5, r6, r7}
+ pop {r0}
+ bx r0
+._880:
+ .align 2, 0
+._879:
+ .word gTasks
+ .word debug_80C802C+1
+
+ thumb_func_end debug_80C7DDC
+
+ thumb_func_start debug_80C802C
+debug_80C802C:
+ push {r4, r5, r6, lr}
+ mov r6, r8
+ push {r6}
+ add r5, r0, #0
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ ldr r0, ._881 @ gUnknown_Debug_2038A20
+ ldr r3, [r0]
+ ldrb r0, [r3, #0xc]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ ldrh r2, [r3, #0xc]
+ mov r1, #0xf8
+ lsl r1, r1, #0x2
+ and r1, r1, r2
+ add r0, r0, r1
+ ldrb r1, [r3, #0xd]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ ldr r6, ._881 + 4 @ gPlttBufferUnfaded
+ ldrb r1, [r3, #0x7]
+ add r1, r1, #0x81
+ lsl r1, r1, #0x1
+ add r1, r1, r6
+ strh r0, [r1]
+ ldr r1, ._881 + 8 @ gPlttBufferFaded
+ mov r8, r1
+ ldrb r1, [r3, #0x7]
+ add r1, r1, #0x81
+ lsl r1, r1, #0x1
+ add r1, r1, r8
+ strh r0, [r1]
+ ldrb r1, [r3, #0x6]
+ lsl r1, r1, #0x4
+ ldrb r2, [r3, #0x7]
+ ldr r4, ._881 + 12 @ 0x101
+ add r2, r2, r4
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ add r1, r1, r6
+ strh r0, [r1]
+ ldrb r1, [r3, #0x6]
+ lsl r1, r1, #0x4
+ ldrb r2, [r3, #0x7]
+ add r2, r2, r4
+ add r1, r1, r2
+ lsl r1, r1, #0x1
+ add r1, r1, r8
+ strh r0, [r1]
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0x4
+ bl debug_80C68CC
+ ldr r1, ._881 + 16 @ gTasks
+ lsl r0, r5, #0x2
+ add r0, r0, r5
+ lsl r0, r0, #0x3
+ add r0, r0, r1
+ ldr r1, ._881 + 20 @ debug_80C7DDC
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4, r5, r6}
+ pop {r0}
+ bx r0
+._882:
+ .align 2, 0
+._881:
+ .word gUnknown_Debug_2038A20
+ .word gPlttBufferUnfaded
+ .word gPlttBufferFaded
+ .word 0x101
+ .word gTasks
+ .word debug_80C7DDC+1
+
+ thumb_func_end debug_80C802C
+
+ .align 2, 0
+
+.endif
diff --git a/asm/water.s b/asm/water.s
index d72f9438c..45fb7f82a 100755..100644
--- a/asm/water.s
+++ b/asm/water.s
@@ -1,5 +1,5 @@
.include "constants/gba_constants.inc"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
@@ -300,7 +300,7 @@ _080D3D9C:
movs r3, 0
movs r2, 0x10
ldrsh r0, [r4, r2]
- ldr r1, _080D3E6C @ =gUnknown_03004DE0
+ ldr r1, _080D3E6C @ =gScanlineEffectRegBuffers
mov r12, r1
cmp r3, r0
bge _080D3DDA
@@ -337,7 +337,7 @@ _080D3DDA:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080D3E14
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ ldr r5, _080D3E6C @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -366,7 +366,7 @@ _080D3E14:
asrs r0, r2, 16
cmp r0, 0x9F
bgt _080D3E4A
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ ldr r5, _080D3E6C @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -407,7 +407,7 @@ _080D3E4A:
ldrh r0, [r4, 0xA]
b _080D3E8A
.align 2, 0
-_080D3E6C: .4byte gUnknown_03004DE0
+_080D3E6C: .4byte gScanlineEffectRegBuffers
_080D3E70: .4byte 0x0000ffff
_080D3E74:
lsls r0, r3, 16
@@ -436,7 +436,7 @@ _080D3E8A:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -475,8 +475,8 @@ _080D3EE8:
ldrsh r0, [r4, r1]
cmp r3, r0
bge _080D3F1C
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
+ ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers
+ ldr r5, _080D3F84 @ =gScanlineEffect
_080D3EF6:
lsls r1, r3, 16
asrs r1, 16
@@ -505,8 +505,8 @@ _080D3F1C:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080D3F50
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
+ ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers
+ ldr r5, _080D3F84 @ =gScanlineEffect
_080D3F2E:
asrs r3, r2, 16
lsls r2, r3, 1
@@ -531,8 +531,8 @@ _080D3F50:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080D4032
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
+ ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers
+ ldr r5, _080D3F84 @ =gScanlineEffect
_080D3F5E:
asrs r3, r1, 16
lsls r2, r3, 1
@@ -551,16 +551,16 @@ _080D3F5E:
ble _080D3F5E
b _080D4032
.align 2, 0
-_080D3F80: .4byte gUnknown_03004DE0
-_080D3F84: .4byte gUnknown_03004DC0
+_080D3F80: .4byte gScanlineEffectRegBuffers
+_080D3F84: .4byte gScanlineEffect
_080D3F88:
movs r3, 0
movs r1, 0x10
ldrsh r0, [r4, r1]
cmp r3, r0
bge _080D3FBC
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
+ ldr r6, _080D403C @ =gScanlineEffectRegBuffers
+ ldr r5, _080D4040 @ =gScanlineEffect
_080D3F96:
lsls r1, r3, 16
asrs r1, 16
@@ -589,8 +589,8 @@ _080D3FBC:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080D3FF0
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
+ ldr r6, _080D403C @ =gScanlineEffectRegBuffers
+ ldr r5, _080D4040 @ =gScanlineEffect
_080D3FCE:
asrs r3, r2, 16
lsls r2, r3, 1
@@ -615,8 +615,8 @@ _080D3FF0:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080D401C
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
+ ldr r6, _080D403C @ =gScanlineEffectRegBuffers
+ ldr r5, _080D4040 @ =gScanlineEffect
_080D3FFE:
asrs r3, r1, 16
lsls r2, r3, 1
@@ -640,7 +640,7 @@ _080D401C:
negs r0, r0
cmp r1, r0
bne _080D4032
- bl remove_some_task
+ bl ScanlineEffect_Stop
adds r0, r7, 0
bl DestroyTask
_080D4032:
@@ -649,8 +649,8 @@ _080D4032:
pop {r0}
bx r0
.align 2, 0
-_080D403C: .4byte gUnknown_03004DE0
-_080D4040: .4byte gUnknown_03004DC0
+_080D403C: .4byte gScanlineEffectRegBuffers
+_080D4040: .4byte gScanlineEffect
thumb_func_end sub_80D3D68
thumb_func_start sub_80D4044
diff --git a/asm/wisp_fire.s b/asm/wisp_fire.s
deleted file mode 100755
index a6407589f..000000000
--- a/asm/wisp_fire.s
+++ /dev/null
@@ -1,678 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- @ wisp_fire
-
- thumb_func_start sub_80D5CC0
-sub_80D5CC0: @ 80D5CC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D5CD8
- ldr r0, _080D5D4C @ =gBattleAnimArgs
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_080D5CD8:
- movs r0, 0xC0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0xA0
- strh r0, [r4, 0x36]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x36]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x7
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- ldr r0, _080D5D50 @ =gMain
- ldr r1, _080D5D54 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D5D84
- adds r0, r2, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080D5D5C
- ldr r0, _080D5D58 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080D5DA0
- .align 2, 0
-_080D5D4C: .4byte gBattleAnimArgs
-_080D5D50: .4byte gMain
-_080D5D54: .4byte 0x0000043d
-_080D5D58: .4byte gAnimBankTarget
-_080D5D5C:
- ldr r0, _080D5D80 @ =gAnimBankTarget
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080D5DA0
- .align 2, 0
-_080D5D80: .4byte gAnimBankTarget
-_080D5D84:
- adds r0, r2, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080D5D98
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _080D5D9E
-_080D5D98:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_080D5D9E:
- strb r0, [r1]
-_080D5DA0:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D5DC8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D5DC8:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x1E
- bne _080D5DD6
- adds r0, r4, 0
- bl DestroyAnimSprite
-_080D5DD6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5CC0
-
- thumb_func_start sub_80D5DDC
-sub_80D5DDC: @ 80D5DDC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D5E3C @ =gTasks
- adds r4, r1, r0
- ldr r0, _080D5E40 @ =gAnimBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D5E02
- movs r1, 0x1
-_080D5E02:
- strh r1, [r4, 0x20]
- ldr r0, _080D5E44 @ =gAnimBankTarget
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- bl IsAnimBankSpriteVisible
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r0, 0x3
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D5E48 @ =sub_80D5E4C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5E3C: .4byte gTasks
-_080D5E40: .4byte gAnimBankAttacker
-_080D5E44: .4byte gAnimBankTarget
-_080D5E48: .4byte sub_80D5E4C
- thumb_func_end sub_80D5DDC
-
- thumb_func_start sub_80D5E4C
-sub_80D5E4C: @ 80D5E4C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D5E70 @ =gTasks
- adds r2, r0, r1
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- cmp r3, 0x1
- beq _080D5F14
- cmp r3, 0x1
- bgt _080D5E74
- cmp r3, 0
- beq _080D5E82
- b _080D6074
- .align 2, 0
-_080D5E70: .4byte gTasks
-_080D5E74:
- cmp r3, 0x2
- bne _080D5E7A
- b _080D5F9C
-_080D5E7A:
- cmp r3, 0x3
- bne _080D5E80
- b _080D6030
-_080D5E80:
- b _080D6074
-_080D5E82:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5EB4
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5EB0
- movs r0, 0x2
- b _080D5EB2
-_080D5EB0:
- ldr r0, _080D5F0C @ =0x0000fffe
-_080D5EB2:
- strh r0, [r2, 0x1E]
-_080D5EB4:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080D5EF6
- ldr r4, _080D5F10 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080D5EC6:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080D5EC6
-_080D5EF6:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080D5F06
- b _080D6074
-_080D5F06:
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080D6020
- .align 2, 0
-_080D5F0C: .4byte 0x0000fffe
-_080D5F10: .4byte gSprites
-_080D5F14:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D5F3C
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ands r0, r3
- lsls r0, 16
- cmp r0, 0
- beq _080D5F38
- movs r0, 0x2
- b _080D5F3A
-_080D5F38:
- ldr r0, _080D5F94 @ =0x0000fffe
-_080D5F3A:
- strh r0, [r2, 0x1E]
-_080D5F3C:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080D5F7E
- ldr r4, _080D5F98 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080D5F4E:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080D5F4E
-_080D5F7E:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x60
- bne _080D6074
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080D6020
- .align 2, 0
-_080D5F94: .4byte 0x0000fffe
-_080D5F98: .4byte gSprites
-_080D5F9C:
- movs r7, 0x20
- ldrsh r1, [r2, r7]
- lsls r1, 1
- ldrh r0, [r2, 0x1C]
- subs r0, r1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5FD0
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5FCC
- strh r3, [r2, 0x1E]
- b _080D5FD0
-_080D5FCC:
- ldr r0, _080D6028 @ =0x0000fffe
- strh r0, [r2, 0x1E]
-_080D5FD0:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D6012
- ldr r4, _080D602C @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080D5FE2:
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080D5FE2
-_080D6012:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080D6074
-_080D6020:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080D6074
- .align 2, 0
-_080D6028: .4byte 0x0000fffe
-_080D602C: .4byte gSprites
-_080D6030:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D606E
- ldr r6, _080D607C @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
- movs r5, 0
-_080D6044:
- movs r7, 0xE
- ldrsh r0, [r2, r7]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080D6044
-_080D606E:
- adds r0, r4, 0
- bl DestroyAnimVisualTask
-_080D6074:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D607C: .4byte gSprites
- thumb_func_end sub_80D5E4C
-
- thumb_func_start sub_80D6080
-sub_80D6080: @ 80D6080
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_8078914
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- ldr r1, _080D60B0 @ =gBattleAnimArgs
- ldrb r2, [r1]
- ldrh r3, [r1, 0x2]
- movs r1, 0x10
- bl BlendPalette
- adds r0, r4, 0
- bl DestroyAnimVisualTask
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D60B0: .4byte gBattleAnimArgs
- thumb_func_end sub_80D6080
-
- thumb_func_start sub_80D60B4
-sub_80D60B4: @ 80D60B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080D610C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- mov r9, r1
- ldr r4, _080D6110 @ =gBattleAnimArgs
- mov r8, r4
- cmp r0, 0
- bne _080D60EA
- ldrh r0, [r4]
- strh r0, [r2, 0xA]
- ldrh r0, [r4, 0x2]
- strh r0, [r2, 0xC]
- ldrh r0, [r4, 0x4]
- strh r0, [r2, 0xE]
- ldrh r0, [r4, 0x6]
- strh r0, [r2, 0x10]
-_080D60EA:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _080D6114 @ =gObjectBankIDs
- ldr r0, _080D6118 @ =gAnimBankTarget
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- movs r5, 0x10
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _080D6120
- ldr r4, _080D611C @ =gUnknown_083D9794
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- b _080D6126
- .align 2, 0
-_080D610C: .4byte gTasks
-_080D6110: .4byte gBattleAnimArgs
-_080D6114: .4byte gObjectBankIDs
-_080D6118: .4byte gAnimBankTarget
-_080D611C: .4byte gUnknown_083D9794
-_080D6120:
- ldr r4, _080D616C @ =gUnknown_083D97A4
- movs r3, 0x8
- ldrsh r0, [r2, r3]
-_080D6126:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r0, r4
- ldrb r5, [r0]
- lsls r0, r7, 2
- adds r1, r0, r7
- lsls r1, 3
- add r1, r9
- movs r4, 0xE
- ldrsh r1, [r1, r4]
- mov r12, r0
- cmp r1, 0x1
- bne _080D6174
- ldr r2, _080D6170 @ =gSprites
- lsls r3, r6, 4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- mov r10, r0
- mov r0, r8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r5, 24
- asrs r0, 24
- muls r0, r1
- cmp r0, 0
- bge _080D6164
- negs r0, r0
-_080D6164:
- mov r5, r10
- strh r0, [r5, 0x26]
- b _080D618E
- .align 2, 0
-_080D616C: .4byte gUnknown_083D97A4
-_080D6170: .4byte gSprites
-_080D6174:
- ldr r3, _080D61C4 @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- lsls r0, r5, 24
- asrs r0, 24
- mov r5, r8
- ldrh r1, [r5, 0x2]
- muls r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_080D618E:
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r9
- movs r4, 0x8
- ldrsh r1, [r0, r4]
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080D61B4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl DestroyAnimVisualTask
-_080D61B4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D61C4: .4byte gSprites
- thumb_func_end sub_80D60B4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asmdiff_de_debug.sh b/asmdiff_de_debug.sh
new file mode 100755
index 000000000..837b88cd2
--- /dev/null
+++ b/asmdiff_de_debug.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb"
+OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))"
+$OBJDUMP $OPTIONS baserom_de_debug.gba > baserom_de_debug.dump
+$OBJDUMP $OPTIONS pokeruby_de_debug.gba > pokeruby_de_debug.dump
+diff baserom_de_debug.dump pokeruby_de_debug.dump
diff --git a/charmap.txt b/charmap.txt
index 1c68994df..e6ad2c05b 100644
--- a/charmap.txt
+++ b/charmap.txt
@@ -44,6 +44,7 @@ SUPER_ER = 2C
'+' = 2E
LV = 34
'=' = 35
+';' = 36
'¿' = 51
'¡' = 52
PK = 53
@@ -59,6 +60,10 @@ UP_ARROW = 79
DOWN_ARROW = 7A
LEFT_ARROW = 7B
RIGHT_ARROW = 7C
+SUPER_E = 84
+'<' = 85
+'>' = 86
+SUPER_RE = A0
'0' = A1
'1' = A2
'2' = A3
diff --git a/common_syms/battle/battle_anim.txt b/common_syms/battle/battle_anim.txt
deleted file mode 100644
index a93ac9b5d..000000000
--- a/common_syms/battle/battle_anim.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-gSoundAnimFramesToWait
-gBattleAnimArgs
-gAnimSpriteIndexArray
diff --git a/common_syms/debug/mori_debug_menu.txt b/common_syms/debug/mori_debug_menu.txt
deleted file mode 100644
index 77ab5531c..000000000
--- a/common_syms/debug/mori_debug_menu.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03004DA0
diff --git a/common_syms/debug/sound_check_menu.txt b/common_syms/debug/sound_check_menu.txt
deleted file mode 100644
index e9e3032e6..000000000
--- a/common_syms/debug/sound_check_menu.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gUnknown_03005D30
-gSoundTestCryNum
diff --git a/common_syms/engine/link.txt b/common_syms/engine/link.txt
deleted file mode 100644
index faafda4d0..000000000
--- a/common_syms/engine/link.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-word_3002910
-gLinkDebugValue1
-localLinkPlayerBlock
-gLinkErrorOccurred
-4
-gLinkDebugValue2
-4
-#begin GERMAN
-deUnkValue1
-deUnkValue2
-#end
-gLinkPlayerPending
-gLinkPlayers
-gBlockReceived
-4
-gLinkHeldKeys
-gLinkTimeOutCounter
-4
-localLinkPlayer
-gRecvCmds
-gLinkStatus
-gLinkDummyBool
-byte_3002A68
-gBlockSendBuffer
-u8_array_3002B70
-gLinkType
-u8_array_3002B78
-gBlockRecvBuffer
-gSuppressLinkErrorMessage
-gSavedLinkPlayerCount
-gSendCmd
-gSavedMultiplayerId
-gReceivedRemoteLinkPlayers
-gLinkTestBGInfo
-gLinkCallback
-gSavedLinkPlayers
-gShouldAdvanceLinkState
-gLinkTestBlockChecksums
-4
-gBlockRequestType
-4
-4
-gLastSendQueueCount
-gLink
-gLastRecvQueueCount
-gLinkSavedIme
diff --git a/common_syms/engine/load_save.txt b/common_syms/engine/load_save.txt
deleted file mode 100644
index 3b969deca..000000000
--- a/common_syms/engine/load_save.txt
+++ /dev/null
@@ -1 +0,0 @@
-gFlashMemoryPresent
diff --git a/common_syms/engine/main.txt b/common_syms/engine/main.txt
deleted file mode 100644
index a620083d1..000000000
--- a/common_syms/engine/main.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-gKeyRepeatStartDelay
-gLinkTransferringData
-gMain
-gKeyRepeatContinueDelay
-gSoftResetDisabled
-gIntrTable
-gLinkVSyncDisabled
-IntrMain_Buffer
-gPcmDmaCounter
diff --git a/common_syms/engine/random.txt b/common_syms/engine/random.txt
deleted file mode 100644
index 794439ea5..000000000
--- a/common_syms/engine/random.txt
+++ /dev/null
@@ -1 +0,0 @@
-gRngValue
diff --git a/common_syms/engine/record_mixing.txt b/common_syms/engine/record_mixing.txt
deleted file mode 100644
index a6f4f8df3..000000000
--- a/common_syms/engine/record_mixing.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03005D2C
diff --git a/common_syms/engine/rtc.txt b/common_syms/engine/rtc.txt
deleted file mode 100644
index fa00a34d5..000000000
--- a/common_syms/engine/rtc.txt
+++ /dev/null
@@ -1 +0,0 @@
-gLocalTime
diff --git a/common_syms/engine/save.txt b/common_syms/engine/save.txt
deleted file mode 100644
index d09a52bcf..000000000
--- a/common_syms/engine/save.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-gLastWrittenSector
-gLastSaveCounter
-gLastKnownGoodSector
-gDamagedSaveSectors
-gSaveCounter
-gFastSaveSection
-gUnknown_03005EB4
-gSaveFileStatus
-gGameContinueCallback
diff --git a/common_syms/engine/sound.txt b/common_syms/engine/sound.txt
deleted file mode 100644
index 0f6f2fc75..000000000
--- a/common_syms/engine/sound.txt
+++ /dev/null
@@ -1 +0,0 @@
-gDisableMusic
diff --git a/common_syms/engine/sprite.txt b/common_syms/engine/sprite.txt
deleted file mode 100644
index fe38dc61f..000000000
--- a/common_syms/engine/sprite.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-gSpriteOrder
-gSpriteTileAllocBitmap
-gSpriteCoordOffsetX
-gOamLimit
-gReservedSpriteTileCount
-gSpriteCopyRequestCount
-gSpriteCopyRequests
-gSpriteCoordOffsetY
-gOamMatrices
-gShouldProcessSpriteCopyRequests
-gOamMatrixAllocBitmap
-gReservedSpritePaletteCount
diff --git a/common_syms/engine/string_util.txt b/common_syms/engine/string_util.txt
deleted file mode 100644
index 1ee62aaad..000000000
--- a/common_syms/engine/string_util.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknownStringVar
diff --git a/common_syms/engine/task.txt b/common_syms/engine/task.txt
deleted file mode 100644
index 6601bd11b..000000000
--- a/common_syms/engine/task.txt
+++ /dev/null
@@ -1 +0,0 @@
-gTasks
diff --git a/common_syms/field/field_camera.txt b/common_syms/field/field_camera.txt
deleted file mode 100644
index 7aad967f8..000000000
--- a/common_syms/field/field_camera.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-gUnknown_03004880
-gUnknown_03004898
-gUnknown_0300489C
diff --git a/common_syms/field/field_control_avatar.txt b/common_syms/field/field_control_avatar.txt
deleted file mode 100644
index 040a9e6c1..000000000
--- a/common_syms/field/field_control_avatar.txt
+++ /dev/null
@@ -1 +0,0 @@
-gSelectedMapObject
diff --git a/common_syms/field/field_map_obj.txt b/common_syms/field/field_map_obj.txt
deleted file mode 100644
index 32d8b1915..000000000
--- a/common_syms/field/field_map_obj.txt
+++ /dev/null
@@ -1 +0,0 @@
-gMapObjects
diff --git a/common_syms/field/fieldmap.txt b/common_syms/field/fieldmap.txt
deleted file mode 100644
index 7819b3b40..000000000
--- a/common_syms/field/fieldmap.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03004870
diff --git a/common_syms/field/overworld.txt b/common_syms/field/overworld.txt
deleted file mode 100644
index ecdb190b2..000000000
--- a/common_syms/field/overworld.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-word_3004858
-gFieldCallback
-gUnknown_03004860
-gFieldLinkPlayerCount
diff --git a/common_syms/field/start_menu.txt b/common_syms/field/start_menu.txt
deleted file mode 100644
index bc0c247d1..000000000
--- a/common_syms/field/start_menu.txt
+++ /dev/null
@@ -1 +0,0 @@
-gCallback_03004AE8
diff --git a/common_syms/field/tv.txt b/common_syms/field/tv.txt
deleted file mode 100644
index 829139f8f..000000000
--- a/common_syms/field/tv.txt
+++ /dev/null
@@ -1 +0,0 @@
-gUnknown_03005D38
diff --git a/common_syms/libs/agb_flash.txt b/common_syms/libs/agb_flash.txt
deleted file mode 100644
index cb421ec80..000000000
--- a/common_syms/libs/agb_flash.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-gFlashTimeoutFlag
-PollFlashStatus
-WaitForFlashWrite
-ProgramFlashSector
-gFlash
-ProgramFlashByte
-gFlashNumRemainingBytes
-EraseFlashChip
-EraseFlashSector
-gFlashMaxTime
diff --git a/common_syms/libs/m4a_2.txt b/common_syms/libs/m4a_2.txt
deleted file mode 100644
index a80d8a79d..000000000
--- a/common_syms/libs/m4a_2.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-gSoundInfo
-gPokemonCrySongs
-gPokemonCryMusicPlayers
-gMPlayJumpTable
-gCgbChans
-gPokemonCryTracks
-gPokemonCrySong
-gMPlay_BGM
-gMPlay_SE1
-gMPlay_SE2
-gMPlayMemAccArea
-gMPlay_SE3
diff --git a/common_syms/pokemon/pokeblock_feed.txt b/common_syms/pokemon/pokeblock_feed.txt
deleted file mode 100644
index 827e6526e..000000000
--- a/common_syms/pokemon/pokeblock_feed.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-gPokeblockFeedPokeSprite
-gPokeblockFeedMonSpecies
-gPokeblockMonNotFlipped
-gPokeblockFeedMonSpriteID
-gPokeblockFeedMonNature
-gUnknown_03005F34
-gPokeblockFeedUnused0
-gUnknown_03005F3C
-gUnknown_03005F40
-gPokeblockFeedPokeSpriteCopy
-gUnknown_03005F94
-gUnknown_03005FA0
diff --git a/common_syms/pokemon/pokedex.txt b/common_syms/pokemon/pokedex.txt
deleted file mode 100644
index 18b14f3ed..000000000
--- a/common_syms/pokemon/pokedex.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gUnknown_03005CE8
-gUnknown_03005CEC
diff --git a/common_syms/pokemon/pokemon_1.txt b/common_syms/pokemon/pokemon_1.txt
deleted file mode 100644
index c588d53a7..000000000
--- a/common_syms/pokemon/pokemon_1.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-gPlayerPartyCount
-gPlayerParty
-gEnemyPartyCount
-gEnemyParty
diff --git a/common_syms/pokemon/pokemon_menu.txt b/common_syms/pokemon/pokemon_menu.txt
deleted file mode 100644
index 98a1bf53b..000000000
--- a/common_syms/pokemon/pokemon_menu.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gLastFieldPokeMenuOpened
-gUnknown_03005CE4
diff --git a/common_syms/rom3.txt b/common_syms/rom3.txt
deleted file mode 100644
index 06a965ff6..000000000
--- a/common_syms/rom3.txt
+++ /dev/null
@@ -1 +0,0 @@
-gBattleBuffersTransferData
diff --git a/common_syms/scene/berry_blender.txt b/common_syms/scene/berry_blender.txt
deleted file mode 100644
index 524a31411..000000000
--- a/common_syms/scene/berry_blender.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-gUnknown_03004830
-gInGameOpponentsNo
-gUnknown_03004840
-gBerryBlenderData
diff --git a/common_syms/scene/contest_painting.txt b/common_syms/scene/contest_painting.txt
deleted file mode 100644
index 2e8490348..000000000
--- a/common_syms/scene/contest_painting.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-gUnknown_03005E10
-gUnknown_03005E20
-gUnknown_03005E40
-gUnknown_03005E8C
-gUnknown_03005E90
diff --git a/common_syms/scene/cute_sketch.txt b/common_syms/scene/cute_sketch.txt
deleted file mode 100644
index e69de29bb..000000000
--- a/common_syms/scene/cute_sketch.txt
+++ /dev/null
diff --git a/common_syms/scene/egg_hatch.txt b/common_syms/scene/egg_hatch.txt
deleted file mode 100644
index 891ccc104..000000000
--- a/common_syms/scene/egg_hatch.txt
+++ /dev/null
@@ -1 +0,0 @@
-gEggHatchData
diff --git a/common_syms/scene/evolution_scene.txt b/common_syms/scene/evolution_scene.txt
deleted file mode 100644
index 137cd3e05..000000000
--- a/common_syms/scene/evolution_scene.txt
+++ /dev/null
@@ -1 +0,0 @@
-gCB2_AfterEvolution
diff --git a/common_syms/scene/intro.txt b/common_syms/scene/intro.txt
deleted file mode 100644
index d069b1014..000000000
--- a/common_syms/scene/intro.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-gIntroFrameCounter
-gMultibootProgramStruct
diff --git a/config.mk b/config.mk
new file mode 100644
index 000000000..bdcf5aa7e
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,51 @@
+### Build Configuration ###
+
+# Default variables
+GAME_VERSION ?= RUBY
+GAME_REVISION ?= 0
+GAME_LANGUAGE ?= ENGLISH
+DEBUG ?= 0
+COMPARE ?= 1
+
+# Version
+ifeq ($(GAME_VERSION), RUBY)
+ BUILD_NAME := ruby
+else
+ifeq ($(GAME_VERSION), SAPPHIRE)
+ BUILD_NAME := sapphire
+else
+ $(error unknown version $(GAME_VERSION))
+endif
+endif
+
+# Revision
+ifeq ($(GAME_REVISION), 0)
+ BUILD_NAME := $(BUILD_NAME)
+else
+ifeq ($(GAME_REVISION), 1)
+ BUILD_NAME := $(BUILD_NAME)_rev1
+else
+ifeq ($(GAME_REVISION), 2)
+ BUILD_NAME := $(BUILD_NAME)_rev2
+else
+ $(error unknown revision $(GAME_REVISION))
+endif
+endif
+endif
+
+# Language
+ifeq ($(GAME_LANGUAGE), ENGLISH)
+ BUILD_NAME := $(BUILD_NAME)
+else
+ifeq ($(GAME_LANGUAGE), GERMAN)
+ BUILD_NAME := $(BUILD_NAME)_de
+else
+ $(error unknown language $(GAME_LANGUAGE))
+endif
+endif
+
+# Debug
+ifeq ($(DEBUG), 1)
+ BUILD_NAME := $(BUILD_NAME)_debug
+endif
+
diff --git a/constants/trainer_constants.inc b/constants/trainer_constants.inc
index 48ed3036e..920ac1e32 100644
--- a/constants/trainer_constants.inc
+++ b/constants/trainer_constants.inc
@@ -1,80 +1,80 @@
- .set TRAINER_CLASS_AQUA_LEADER, 0
- .set TRAINER_CLASS_TEAM_AQUA_M, 1
- .set TRAINER_CLASS_TEAM_AQUA_F, 2
- .set TRAINER_CLASS_AROMA_LADY, 3
- .set TRAINER_CLASS_RUIN_MANIAC, 4
- .set TRAINER_CLASS_INTERVIEWER, 5
- .set TRAINER_CLASS_TUBER_F, 6
- .set TRAINER_CLASS_TUBER_M, 7
- .set TRAINER_CLASS_COOL_TRAINER_M, 8
- .set TRAINER_CLASS_COOL_TRAINER_F, 9
- .set TRAINER_CLASS_HEX_MANIAC, 10
- .set TRAINER_CLASS_LADY, 11
- .set TRAINER_CLASS_BEAUTY, 12
- .set TRAINER_CLASS_RICH_BOY, 13
- .set TRAINER_CLASS_POKEMANIAC, 14
- .set TRAINER_CLASS_SWIMMER_M, 15
- .set TRAINER_CLASS_BLACK_BELT, 16
- .set TRAINER_CLASS_GUITARIST, 17
- .set TRAINER_CLASS_KINDLER, 18
- .set TRAINER_CLASS_CAMPER, 19
- .set TRAINER_CLASS_BUG_MANIAC, 20
- .set TRAINER_CLASS_PSYCHIC_M, 21
- .set TRAINER_CLASS_PSYCHIC_F, 22
- .set TRAINER_CLASS_GENTLEMAN, 23
- .set TRAINER_CLASS_ELITE_FOUR_M, 24
- .set TRAINER_CLASS_ELITE_FOUR_F, 25
- .set TRAINER_CLASS_LEADER_F, 26
- .set TRAINER_CLASS_LEADER_M, 27
- .set TRAINER_CLASS_LEADER_MF, 28
- .set TRAINER_CLASS_SCHOOL_KID_M, 29
- .set TRAINER_CLASS_SCHOOL_KID_F, 30
- .set TRAINER_CLASS_SR_AND_JR, 31
- .set TRAINER_CLASS_POKEFAN_M, 32
- .set TRAINER_CLASS_POKEFAN_F, 33
- .set TRAINER_CLASS_EXPERT_M, 34
- .set TRAINER_CLASS_EXPERT_F, 35
- .set TRAINER_CLASS_YOUNGSTER, 36
- .set TRAINER_CLASS_CHAMPION, 37
- .set TRAINER_CLASS_FISHERMAN, 38
- .set TRAINER_CLASS_CYCLING_TRIATHLETE_M, 39
- .set TRAINER_CLASS_CYCLING_TRIATHLETE_F, 40
- .set TRAINER_CLASS_RUNNING_TRIATHLETE_M, 41
- .set TRAINER_CLASS_RUNNING_TRIATHLETE_F, 42
- .set TRAINER_CLASS_SWIMMING_TRIATHLETE_M, 43
- .set TRAINER_CLASS_SWIMMING_TRIATHLETE_F, 44
- .set TRAINER_CLASS_DRAGON_TAMER, 45
- .set TRAINER_CLASS_BIRD_KEEPER, 46
- .set TRAINER_CLASS_NINJA_BOY, 47
- .set TRAINER_CLASS_BATTLE_GIRL, 48
- .set TRAINER_CLASS_PARASOL_LADY, 49
- .set TRAINER_CLASS_SWIMMER_F, 50
- .set TRAINER_CLASS_PICNICKER, 51
- .set TRAINER_CLASS_TWINS, 52
- .set TRAINER_CLASS_SAILOR, 53
- .set TRAINER_CLASS_BOARDER_1, 54
- .set TRAINER_CLASS_BOARDER_2, 55
- .set TRAINER_CLASS_COLLECTOR, 56
- .set TRAINER_CLASS_WALLY, 57
- .set TRAINER_CLASS_BRENDAN_1, 58
- .set TRAINER_CLASS_BRENDAN_2, 59
- .set TRAINER_CLASS_BRENDAN_3, 60
- .set TRAINER_CLASS_MAY_1, 61
- .set TRAINER_CLASS_MAY_2, 62
- .set TRAINER_CLASS_MAY_3, 63
- .set TRAINER_CLASS_POKEMON_BREEDER_M, 64
- .set TRAINER_CLASS_POKEMON_BREEDER_F, 65
- .set TRAINER_CLASS_POKEMON_RANGER_M, 66
- .set TRAINER_CLASS_POKEMON_RANGER_F, 67
- .set TRAINER_CLASS_MAGMA_LEADER, 68
- .set TRAINER_CLASS_TEAM_MAGMA_M, 69
- .set TRAINER_CLASS_TEAM_MAGMA_F, 70
- .set TRAINER_CLASS_LASS, 71
- .set TRAINER_CLASS_BUG_CATCHER, 72
- .set TRAINER_CLASS_HIKER, 73
- .set TRAINER_CLASS_YOUNG_COUPLE, 74
- .set TRAINER_CLASS_OLD_COUPLE, 75
- .set TRAINER_CLASS_SIS_AND_BRO, 76
+ .set FACILITY_CLASS_AQUA_LEADER, 0
+ .set FACILITY_CLASS_TEAM_AQUA_M, 1
+ .set FACILITY_CLASS_TEAM_AQUA_F, 2
+ .set FACILITY_CLASS_AROMA_LADY, 3
+ .set FACILITY_CLASS_RUIN_MANIAC, 4
+ .set FACILITY_CLASS_INTERVIEWER, 5
+ .set FACILITY_CLASS_TUBER_F, 6
+ .set FACILITY_CLASS_TUBER_M, 7
+ .set FACILITY_CLASS_COOL_TRAINER_M, 8
+ .set FACILITY_CLASS_COOL_TRAINER_F, 9
+ .set FACILITY_CLASS_HEX_MANIAC, 10
+ .set FACILITY_CLASS_LADY, 11
+ .set FACILITY_CLASS_BEAUTY, 12
+ .set FACILITY_CLASS_RICH_BOY, 13
+ .set FACILITY_CLASS_POKEMANIAC, 14
+ .set FACILITY_CLASS_SWIMMER_M, 15
+ .set FACILITY_CLASS_BLACK_BELT, 16
+ .set FACILITY_CLASS_GUITARIST, 17
+ .set FACILITY_CLASS_KINDLER, 18
+ .set FACILITY_CLASS_CAMPER, 19
+ .set FACILITY_CLASS_BUG_MANIAC, 20
+ .set FACILITY_CLASS_PSYCHIC_M, 21
+ .set FACILITY_CLASS_PSYCHIC_F, 22
+ .set FACILITY_CLASS_GENTLEMAN, 23
+ .set FACILITY_CLASS_ELITE_FOUR_M, 24
+ .set FACILITY_CLASS_ELITE_FOUR_F, 25
+ .set FACILITY_CLASS_LEADER_F, 26
+ .set FACILITY_CLASS_LEADER_M, 27
+ .set FACILITY_CLASS_LEADER_MF, 28
+ .set FACILITY_CLASS_SCHOOL_KID_M, 29
+ .set FACILITY_CLASS_SCHOOL_KID_F, 30
+ .set FACILITY_CLASS_SR_AND_JR, 31
+ .set FACILITY_CLASS_POKEFAN_M, 32
+ .set FACILITY_CLASS_POKEFAN_F, 33
+ .set FACILITY_CLASS_EXPERT_M, 34
+ .set FACILITY_CLASS_EXPERT_F, 35
+ .set FACILITY_CLASS_YOUNGSTER, 36
+ .set FACILITY_CLASS_CHAMPION, 37
+ .set FACILITY_CLASS_FISHERMAN, 38
+ .set FACILITY_CLASS_CYCLING_TRIATHLETE_M, 39
+ .set FACILITY_CLASS_CYCLING_TRIATHLETE_F, 40
+ .set FACILITY_CLASS_RUNNING_TRIATHLETE_M, 41
+ .set FACILITY_CLASS_RUNNING_TRIATHLETE_F, 42
+ .set FACILITY_CLASS_SWIMMING_TRIATHLETE_M, 43
+ .set FACILITY_CLASS_SWIMMING_TRIATHLETE_F, 44
+ .set FACILITY_CLASS_DRAGON_TAMER, 45
+ .set FACILITY_CLASS_BIRD_KEEPER, 46
+ .set FACILITY_CLASS_NINJA_BOY, 47
+ .set FACILITY_CLASS_BATTLE_GIRL, 48
+ .set FACILITY_CLASS_PARASOL_LADY, 49
+ .set FACILITY_CLASS_SWIMMER_F, 50
+ .set FACILITY_CLASS_PICNICKER, 51
+ .set FACILITY_CLASS_TWINS, 52
+ .set FACILITY_CLASS_SAILOR, 53
+ .set FACILITY_CLASS_BOARDER_1, 54
+ .set FACILITY_CLASS_BOARDER_2, 55
+ .set FACILITY_CLASS_COLLECTOR, 56
+ .set FACILITY_CLASS_WALLY, 57
+ .set FACILITY_CLASS_BRENDAN_1, 58
+ .set FACILITY_CLASS_BRENDAN_2, 59
+ .set FACILITY_CLASS_BRENDAN_3, 60
+ .set FACILITY_CLASS_MAY_1, 61
+ .set FACILITY_CLASS_MAY_2, 62
+ .set FACILITY_CLASS_MAY_3, 63
+ .set FACILITY_CLASS_POKEMON_BREEDER_M, 64
+ .set FACILITY_CLASS_POKEMON_BREEDER_F, 65
+ .set FACILITY_CLASS_POKEMON_RANGER_M, 66
+ .set FACILITY_CLASS_POKEMON_RANGER_F, 67
+ .set FACILITY_CLASS_MAGMA_LEADER, 68
+ .set FACILITY_CLASS_TEAM_MAGMA_M, 69
+ .set FACILITY_CLASS_TEAM_MAGMA_F, 70
+ .set FACILITY_CLASS_LASS, 71
+ .set FACILITY_CLASS_BUG_CATCHER, 72
+ .set FACILITY_CLASS_HIKER, 73
+ .set FACILITY_CLASS_YOUNG_COUPLE, 74
+ .set FACILITY_CLASS_OLD_COUPLE, 75
+ .set FACILITY_CLASS_SIS_AND_BRO, 76
.set TRAINER_PIC_BRENDAN, 0
.set TRAINER_PIC_MAY, 1
@@ -160,64 +160,64 @@
.set TRAINER_PIC_GLACIA, 81
.set TRAINER_PIC_DRAKE, 82
- .set TRAINER_CLASS_NAME_POKEMON_TRAINER_1, 0
- .set TRAINER_CLASS_NAME_POKEMON_TRAINER_2, 1
- .set TRAINER_CLASS_NAME_AQUA_LEADER, 2
- .set TRAINER_CLASS_NAME_TEAM_AQUA, 3
- .set TRAINER_CLASS_NAME_AQUA_ADMIN, 4
- .set TRAINER_CLASS_NAME_AROMA_LADY, 5
- .set TRAINER_CLASS_NAME_RUIN_MANIAC, 6
- .set TRAINER_CLASS_NAME_INTERVIEWER, 7
- .set TRAINER_CLASS_NAME_TUBER_F, 8
- .set TRAINER_CLASS_NAME_TUBER_M, 9
- .set TRAINER_CLASS_NAME_COOL_TRAINER, 10
- .set TRAINER_CLASS_NAME_HEX_MANIAC, 11
- .set TRAINER_CLASS_NAME_LADY, 12
- .set TRAINER_CLASS_NAME_BEAUTY, 13
- .set TRAINER_CLASS_NAME_RICH_BOY, 14
- .set TRAINER_CLASS_NAME_POKEMANIAC, 15
- .set TRAINER_CLASS_NAME_SWIMMER_M, 16
- .set TRAINER_CLASS_NAME_BLACK_BELT, 17
- .set TRAINER_CLASS_NAME_GUITARIST, 18
- .set TRAINER_CLASS_NAME_KINDLER, 19
- .set TRAINER_CLASS_NAME_CAMPER, 20
- .set TRAINER_CLASS_NAME_BUG_MANIAC, 21
- .set TRAINER_CLASS_NAME_PSYCHIC, 22
- .set TRAINER_CLASS_NAME_GENTLEMAN, 23
- .set TRAINER_CLASS_NAME_ELITE_FOUR, 24
- .set TRAINER_CLASS_NAME_LEADER, 25
- .set TRAINER_CLASS_NAME_SCHOOL_KID, 26
- .set TRAINER_CLASS_NAME_SR_AND_JR, 27
- .set TRAINER_CLASS_NAME_WINSTRATE, 28
- .set TRAINER_CLASS_NAME_POKEFAN, 29
- .set TRAINER_CLASS_NAME_EXPERT, 30
- .set TRAINER_CLASS_NAME_YOUNGSTER, 31
- .set TRAINER_CLASS_NAME_CHAMPION, 32
- .set TRAINER_CLASS_NAME_FISHERMAN, 33
- .set TRAINER_CLASS_NAME_TRIATHLETE, 34
- .set TRAINER_CLASS_NAME_DRAGON_TAMER, 35
- .set TRAINER_CLASS_NAME_BIRD_KEEPER, 36
- .set TRAINER_CLASS_NAME_NINJA_BOY, 37
- .set TRAINER_CLASS_NAME_BATTLE_GIRL, 38
- .set TRAINER_CLASS_NAME_PARASOL_LADY, 39
- .set TRAINER_CLASS_NAME_SWIMMER_F, 40
- .set TRAINER_CLASS_NAME_PICNICKER, 41
- .set TRAINER_CLASS_NAME_TWINS, 42
- .set TRAINER_CLASS_NAME_SAILOR, 43
- .set TRAINER_CLASS_NAME_BOARDER, 44
- .set TRAINER_CLASS_NAME_COLLECTOR, 45
- .set TRAINER_CLASS_NAME_POKEMON_TRAINER_3, 46
- .set TRAINER_CLASS_NAME_POKEMON_BREEDER, 47
- .set TRAINER_CLASS_NAME_POKEMON_RANGER, 48
- .set TRAINER_CLASS_NAME_MAGMA_LEADER, 49
- .set TRAINER_CLASS_NAME_TEAM_MAGMA, 50
- .set TRAINER_CLASS_NAME_MAGMA_ADMIN, 51
- .set TRAINER_CLASS_NAME_LASS, 52
- .set TRAINER_CLASS_NAME_BUG_CATCHER, 53
- .set TRAINER_CLASS_NAME_HIKER, 54
- .set TRAINER_CLASS_NAME_YOUNG_COUPLE, 55
- .set TRAINER_CLASS_NAME_OLD_COUPLE, 56
- .set TRAINER_CLASS_NAME_SIS_AND_BRO, 57
+ .set TRAINER_CLASS_POKEMON_TRAINER_1, 0
+ .set TRAINER_CLASS_POKEMON_TRAINER_2, 1
+ .set TRAINER_CLASS_AQUA_LEADER, 2
+ .set TRAINER_CLASS_TEAM_AQUA, 3
+ .set TRAINER_CLASS_AQUA_ADMIN, 4
+ .set TRAINER_CLASS_AROMA_LADY, 5
+ .set TRAINER_CLASS_RUIN_MANIAC, 6
+ .set TRAINER_CLASS_INTERVIEWER, 7
+ .set TRAINER_CLASS_TUBER_F, 8
+ .set TRAINER_CLASS_TUBER_M, 9
+ .set TRAINER_CLASS_COOL_TRAINER, 10
+ .set TRAINER_CLASS_HEX_MANIAC, 11
+ .set TRAINER_CLASS_LADY, 12
+ .set TRAINER_CLASS_BEAUTY, 13
+ .set TRAINER_CLASS_RICH_BOY, 14
+ .set TRAINER_CLASS_POKEMANIAC, 15
+ .set TRAINER_CLASS_SWIMMER_M, 16
+ .set TRAINER_CLASS_BLACK_BELT, 17
+ .set TRAINER_CLASS_GUITARIST, 18
+ .set TRAINER_CLASS_KINDLER, 19
+ .set TRAINER_CLASS_CAMPER, 20
+ .set TRAINER_CLASS_BUG_MANIAC, 21
+ .set TRAINER_CLASS_PSYCHIC, 22
+ .set TRAINER_CLASS_GENTLEMAN, 23
+ .set TRAINER_CLASS_ELITE_FOUR, 24
+ .set TRAINER_CLASS_LEADER, 25
+ .set TRAINER_CLASS_SCHOOL_KID, 26
+ .set TRAINER_CLASS_SR_AND_JR, 27
+ .set TRAINER_CLASS_WINSTRATE, 28
+ .set TRAINER_CLASS_POKEFAN, 29
+ .set TRAINER_CLASS_EXPERT, 30
+ .set TRAINER_CLASS_YOUNGSTER, 31
+ .set TRAINER_CLASS_CHAMPION, 32
+ .set TRAINER_CLASS_FISHERMAN, 33
+ .set TRAINER_CLASS_TRIATHLETE, 34
+ .set TRAINER_CLASS_DRAGON_TAMER, 35
+ .set TRAINER_CLASS_BIRD_KEEPER, 36
+ .set TRAINER_CLASS_NINJA_BOY, 37
+ .set TRAINER_CLASS_BATTLE_GIRL, 38
+ .set TRAINER_CLASS_PARASOL_LADY, 39
+ .set TRAINER_CLASS_SWIMMER_F, 40
+ .set TRAINER_CLASS_PICNICKER, 41
+ .set TRAINER_CLASS_TWINS, 42
+ .set TRAINER_CLASS_SAILOR, 43
+ .set TRAINER_CLASS_BOARDER, 44
+ .set TRAINER_CLASS_COLLECTOR, 45
+ .set TRAINER_CLASS_POKEMON_TRAINER_3, 46
+ .set TRAINER_CLASS_POKEMON_BREEDER, 47
+ .set TRAINER_CLASS_POKEMON_RANGER, 48
+ .set TRAINER_CLASS_MAGMA_LEADER, 49
+ .set TRAINER_CLASS_TEAM_MAGMA, 50
+ .set TRAINER_CLASS_MAGMA_ADMIN, 51
+ .set TRAINER_CLASS_LASS, 52
+ .set TRAINER_CLASS_BUG_CATCHER, 53
+ .set TRAINER_CLASS_HIKER, 54
+ .set TRAINER_CLASS_YOUNG_COUPLE, 55
+ .set TRAINER_CLASS_OLD_COUPLE, 56
+ .set TRAINER_CLASS_SIS_AND_BRO, 57
.set TRAINER_ENCOUNTER_MUSIC_MALE, 0 @ standard male encounter music
.set TRAINER_ENCOUNTER_MUSIC_FEMALE, 1 @ standard female encounter music
diff --git a/data-de/event_scripts.s b/data-de/event_scripts.s
index e786a6ab1..7e43905bf 100644
--- a/data-de/event_scripts.s
+++ b/data-de/event_scripts.s
@@ -8,9 +8,10 @@
#include "constants/opponents.h"
#include "constants/songs.h"
#include "constants/species.h"
+#include "constants/weather.h"
#include "constants/vars.h"
- .include "asm/macros.inc"
- .include "asm/macros/event.inc"
+ .include "include/macros.inc"
+ .include "include/macros/event.inc"
.include "constants/constants.inc"
.section script_data, "aw", %progbits
@@ -396,21 +397,20 @@ gStdScripts_End::
gUnknown_0815F36C:: @ 815F36C
lockall
- playse 2
+ playse SE_PC_LOGON
message UnknownString_81A3A72
dofieldeffect 61
waitstate
waitmessage
waitbuttonpress
- playse 5
+ playse SE_SELECT
goto EventScript_15F384
end
EventScript_15F384:
message UnknownString_81A3A87
waitmessage
- checkflag FLAG_DECORATION_16
- goto_if_eq EventScript_15F3A0
+ goto_if_set FLAG_DECORATION_16, EventScript_15F3A0
goto EventScript_15F3E2
end
@@ -439,8 +439,8 @@ EventScript_15F3E2:
end
EventScript_15F419:
- msgbox UnknownString_81A38FB, 5
- compare RESULT, 0
+ msgbox UnknownString_81A38FB, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_15F384
closemessage
special SecretBasePC_PackUp
@@ -458,12 +458,12 @@ EventScript_15F436:
gUnknown_0815F43A:: @ 815F43A
lockall
message UnknownString_81A3A72
- playse 2
+ playse SE_PC_LOGON
dofieldeffect 61
waitstate
waitmessage
waitbuttonpress
- playse 5
+ playse SE_SELECT
goto EventScript_15F452
end
@@ -491,8 +491,8 @@ EventScript_15F4A1:
compare RESULT, 2
goto_if_eq EventScript_15F503
special BufferSecretBaseOwnerName
- msgbox UnknownString_81A3958, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3958, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A22, 3
special sub_80BC5BC
@@ -501,8 +501,8 @@ EventScript_15F4A1:
end
EventScript_15F4E0:
- msgbox UnknownString_81A3982, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3982, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A3A, 3
special sub_80BC5BC
@@ -953,7 +953,7 @@ gUnknown_0819F818:: @ 819F818
waitmovement 0
specialvar RESULT, ScrSpecial_HasTrainerBeenFought
compare RESULT, 0
- goto_if 5, EventScript_19F83F
+ goto_if_ne EventScript_19F83F
special PlayTrainerEncounterMusic
special sub_8082524
goto EventScript_19F8F2
@@ -967,10 +967,10 @@ gUnknown_0819F840:: @ 819F840
call EventScript_19F8E5
specialvar RESULT, ScrSpecial_HasTrainerBeenFought
compare RESULT, 0
- goto_if 5, EventScript_19F877
+ goto_if_ne EventScript_19F877
special CheckForAlivePartyMons
compare RESULT, 0
- goto_if 5, EventScript_19F870
+ goto_if_ne EventScript_19F870
special PlayTrainerEncounterMusic
special sub_8082524
goto EventScript_19F8F2
@@ -1016,7 +1016,7 @@ gUnknown_0819F8AE:: @ 819F8AE
goto_if_eq EventScript_19F8DD
special CheckForAlivePartyMons
compare RESULT, 0
- goto_if 5, EventScript_19F8DE
+ goto_if_ne EventScript_19F8DE
special PlayTrainerEncounterMusic
special sub_8082524
special ScrSpecial_ShowTrainerIntroSpeech
@@ -1307,14 +1307,10 @@ EverGrandeCity_HallOfFame_EventScript_19FC13:: @ 819FC13
clearflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
clearflag FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR
special sub_810FAA0
- checkflag FLAG_RECEIVED_SS_TICKET
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC62
- checkflag FLAG_LATIOS_OR_LATIAS_ROAMING
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC70
- checkflag FLAG_RECEIVED_BELDUM
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5A
- checkflag FLAG_RECEIVED_HM08
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5E
+ call_if_unset FLAG_RECEIVED_SS_TICKET, EverGrandeCity_HallOfFame_EventScript_19FC62
+ call_if_unset FLAG_LATIOS_OR_LATIAS_ROAMING, EverGrandeCity_HallOfFame_EventScript_19FC70
+ call_if_unset FLAG_RECEIVED_BELDUM, EverGrandeCity_HallOfFame_EventScript_19FC5A
+ call_if_unset FLAG_RECEIVED_HM08, EverGrandeCity_HallOfFame_EventScript_19FC5E
return
EverGrandeCity_HallOfFame_EventScript_19FC5A:: @ 819FC5A
@@ -1342,10 +1338,8 @@ S_WhiteOut:: @ 819FC74
end
EventScript_19FC84:
- checkflag FLAG_RECEIVED_GO_GOGGLES
- goto_if_eq Route101_EventScript_1A14DC
- checkflag FLAG_DEFEATED_LAVARIDGE_GYM
- goto_if 0, Route101_EventScript_1A14DC
+ goto_if_set FLAG_RECEIVED_GO_GOGGLES, Route101_EventScript_1A14DC
+ goto_if_unset FLAG_DEFEATED_LAVARIDGE_GYM, Route101_EventScript_1A14DC
clearflag FLAG_HIDE_RIVAL_LAVARIDGE_1
setvar VAR_LAVARIDGE_RIVAL_STATE, 2
return
@@ -1408,16 +1402,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
RustboroCity_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
SlateportCity_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
VerdanturfTown_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
- checkflag FLAG_RECEIVED_POKENAV
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD49
- checkflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD4F
- checkflag FLAG_HIDE_MR_BRINEY_ROUTE109
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD55
+ goto_if_unset FLAG_RECEIVED_POKENAV, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
+ goto_if_unset FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104, OldaleTown_PokemonCenter_1F_EventScript_19FD49
+ goto_if_unset FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN, OldaleTown_PokemonCenter_1F_EventScript_19FD4F
+ goto_if_unset FLAG_HIDE_MR_BRINEY_ROUTE109, OldaleTown_PokemonCenter_1F_EventScript_19FD55
return
OldaleTown_PokemonCenter_1F_EventScript_19FD49:: @ 819FD49
@@ -1448,10 +1437,10 @@ SootopolisCity_PokemonCenter_1F_EventScript_19FD5B:: @ 819FD5B
VerdanturfTown_PokemonCenter_1F_EventScript_19FD5B:: @ 819FD5B
lock
faceplayer
- msgbox gText_NurseJoy_Welcome, 5
- compare RESULT, 1
+ msgbox gText_NurseJoy_Welcome, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_19FD7C
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_19FDC7
end
@@ -1466,8 +1455,7 @@ OldaleTown_PokemonCenter_1F_EventScript_19FD7C:: @ 819FD7C
applymovement VAR_SPECIAL_B, OldaleTown_PokemonCenter_1F_Movement_1A0845
waitmovement 0
special ScrSpecial_HealPlayerParty
- checkflag FLAG_POKERUS_EXPLAINED
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FDCE
+ goto_if_unset FLAG_POKERUS_EXPLAINED, OldaleTown_PokemonCenter_1F_EventScript_19FDCE
goto OldaleTown_PokemonCenter_1F_EventScript_19FDB0
end
@@ -1515,9 +1503,9 @@ Std_ObtainItem_: @ 819FE07
checkitemtype VAR_SPECIAL_0
call GetItem_HandlePocket
compare VAR_SPECIAL_7, 0x1
- call_if 1, Std_ObtainItem_Success
+ call_if_eq Std_ObtainItem_Success
compare VAR_SPECIAL_7, 0x0
- call_if 1, Std_ObtainItem_Fail
+ call_if_eq Std_ObtainItem_Fail
return
GetItem_HandlePocket:
@@ -1532,31 +1520,31 @@ GetItem_HandlePocket:
GetItem_HandlePocket_Items:
bufferstdstring 2, 0xE
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
GetItem_HandlePocket_KeyItems:
bufferstdstring 2, 0xF
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
GetItem_HandlePocket_PokeBalls:
bufferstdstring 2, 0x10
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
GetItem_HandlePocket_TMsHMs:
bufferstdstring 2, 0x11
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetTMHMFanfare
+ call_if_eq PlayGetTMHMFanfare
return
GetItem_HandlePocket_Berries:
bufferstdstring 2, 0x12
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
Std_ObtainItem_Success: @ 819FEB7
@@ -1572,11 +1560,11 @@ Std_ObtainItem_Fail: @ 819FECC
return
PlayGetItemFanfare:
- playfanfare 0x172
+ playfanfare BGM_FANFA4
return
PlayGetTMHMFanfare:
- playfanfare 0x174
+ playfanfare BGM_ME_WAZA
return
Std_ObtainDecoration: @ 819FEDA
@@ -1588,13 +1576,13 @@ Std_ObtainDecoration: @ 819FEDA
Std_ObtainDecoration_: @ 819FEE8
bufferdecorationname 1, VAR_SPECIAL_0
compare VAR_SPECIAL_7, 1
- call_if 1, Std_ObtainDecoration_Success
+ call_if_eq Std_ObtainDecoration_Success
compare VAR_SPECIAL_7, 0
- call_if 1, Std_ObtainDecoration_Fail
+ call_if_eq Std_ObtainDecoration_Fail
return
Std_ObtainDecoration_Success: @ 819FF03
- playfanfare 0x172
+ playfanfare BGM_FANFA4
message Message_ObtainedDecoration
waitfanfare
waitmessage
@@ -1616,9 +1604,9 @@ Std_FindItem: @ 819FF21
checkitemtype VAR_SPECIAL_0
call GetItem_HandlePocket
compare VAR_SPECIAL_7, 1
- call_if 1, Std_FindItem_Success
+ call_if_eq Std_FindItem_Success
compare VAR_SPECIAL_7, 0
- call_if 1, Std_FindItem_Fail
+ call_if_eq Std_FindItem_Fail
release
return
@@ -1669,10 +1657,10 @@ HiddenItemScript_Fail:
UnusedMixRecordsScript: @ 819FFD5
lock
faceplayer
- msgbox UnusedMixRecordsPromptText, 5
- compare RESULT, 1
+ msgbox UnusedMixRecordsPromptText, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq UnusedMixRecordsScript_Yes
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq UnusedMixRecordsScript_Done
goto UnusedMixRecordsScript_Done
UnusedMixRecordsScript_Yes: @ 819FFFA
@@ -1691,7 +1679,7 @@ gUnknown_081A0009:: @ 81A0009
lockall
setvar VAR_SPECIAL_4, 0
special DoPCTurnOnEffect
- playse 4
+ playse SE_PC_ON
msgbox UnknownString_81A09EC, 4
goto EventScript_1A0023
end
@@ -1714,7 +1702,7 @@ EventScript_1A0033:
end
EventScript_1A0070:
- playse 2
+ playse SE_PC_LOGON
msgbox UnknownString_81A0A54, 4
special PlayerPC
waitstate
@@ -1722,11 +1710,9 @@ EventScript_1A0070:
end
EventScript_1A0085:
- playse 2
- checkflag FLAG_SYS_PC_LANETTE
- call_if 0, EventScript_1A00AC
- checkflag FLAG_SYS_PC_LANETTE
- call_if 1, EventScript_1A00B5
+ playse SE_PC_LOGON
+ call_if_unset FLAG_SYS_PC_LANETTE, EventScript_1A00AC
+ call_if_set FLAG_SYS_PC_LANETTE, EventScript_1A00B5
msgbox UnknownString_81A0A35, 4
special ShowPokemonStorageSystem
waitstate
@@ -1743,15 +1729,14 @@ EventScript_1A00B5:
EventScript_1A00BE:
setvar VAR_SPECIAL_4, 0
- playse 3
+ playse SE_PC_OFF
special DoPCTurnOffEffect
releaseall
end
EventScript_1A00CB:
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, EventScript_1A00BE
- playse 2
+ goto_if_unset FLAG_SYS_GAME_CLEAR, EventScript_1A00BE
+ playse SE_PC_LOGON
special AccessHallOfFamePC
waitstate
goto EventScript_1A0033
@@ -1832,8 +1817,8 @@ UseSurfScript:: @ 81A0117
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
lockall
- msgbox UseSurfPromptText, 5
- compare RESULT, 0
+ msgbox UseSurfPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq UseSurfScript_No
msgbox UsedSurfText, 4
dofieldeffect 9
@@ -2096,9 +2081,9 @@ Route127_EventScript_1A02C1:: @ 81A02C1
Route128_EventScript_1A02C1:: @ 81A02C1
SootopolisCity_EventScript_1A02C1:: @ 81A02C1
.ifdef SAPPHIRE
- setweather 13
+ setweather WEATHER_RAIN_HEAVY
.else
- setweather 12
+ setweather WEATHER_DROUGHT
.endif
return
@@ -2111,7 +2096,7 @@ MossdeepCity_Gym_EventScript_1A02C5:: @ 81A02C5
PetalburgCity_Gym_EventScript_1A02C5:: @ 81A02C5
RustboroCity_Gym_EventScript_1A02C5:: @ 81A02C5
SootopolisCity_Gym_1F_EventScript_1A02C5:: @ 81A02C5
- playfanfare 369
+ playfanfare BGM_ME_BACHI
waitfanfare
return
@@ -2120,7 +2105,7 @@ Route111_OldLadysRestStop_EventScript_1A02CA:: @ 81A02CA
Route119_WeatherInstitute_1F_EventScript_1A02CA:: @ 81A02CA
SSTidalRooms_EventScript_1A02CA:: @ 81A02CA
fadescreen 1
- playfanfare 368
+ playfanfare BGM_ME_ASA
waitfanfare
special ScrSpecial_HealPlayerParty
fadescreen 0
@@ -2139,7 +2124,7 @@ DewfordTown_EventScript_1A02E7:: @ 81A02E7
Route104_EventScript_1A02E7:: @ 81A02E7
Route109_EventScript_1A02E7:: @ 81A02E7
setflag FLAG_SPECIAL_FLAG_1
- playbgm 431, 0
+ playbgm BGM_M_BOAT, FALSE
return
DewfordTown_EventScript_1A02EF:: @ 81A02EF
@@ -2155,21 +2140,21 @@ Route103_EventScript_1A02F4:: @ 81A02F4
compare VAR_PETALBURG_GYM_STATE, 0
goto_if_eq Route101_EventScript_1A14DC
compare VAR_BIRCH_STATE, 0
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
compare VAR_BIRCH_STATE, 1
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
compare VAR_BIRCH_STATE, 2
- call_if 1, Route101_EventScript_1A0365
+ call_if_eq Route101_EventScript_1A0365
compare VAR_BIRCH_STATE, 3
- call_if 1, Route101_EventScript_1A0365
+ call_if_eq Route101_EventScript_1A0365
compare VAR_BIRCH_STATE, 4
- call_if 1, Route101_EventScript_1A0372
+ call_if_eq Route101_EventScript_1A0372
compare VAR_BIRCH_STATE, 5
- call_if 1, Route101_EventScript_1A0372
+ call_if_eq Route101_EventScript_1A0372
compare VAR_BIRCH_STATE, 6
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
compare VAR_BIRCH_STATE, 7
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
return
Route101_EventScript_1A0358:: @ 81A0358
@@ -2198,8 +2183,8 @@ Route101_EventScript_1A037F:: @ 81A037F
Route103_EventScript_1A037F:: @ 81A037F
lock
faceplayer
- msgbox Route101_Text_1C4449, 5
- compare RESULT, 0
+ msgbox Route101_Text_1C4449, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route101_EventScript_1A039B
call Route101_EventScript_1A03B0
release
@@ -2296,9 +2281,9 @@ Movement_1A047A:
BattleTower_Outside_EventScript_1A047C:: @ 81A047C
SouthernIsland_Exterior_EventScript_1A047C:: @ 81A047C
compare FACING, 1
- call_if 1, BattleTower_Outside_EventScript_160B2F
+ call_if_eq BattleTower_Outside_EventScript_160B2F
compare FACING, 3
- call_if 1, BattleTower_Outside_EventScript_160B3A
+ call_if_eq BattleTower_Outside_EventScript_160B3A
delay 30
hideobjectat 255, MAP_PETALBURG_CITY
call BattleTower_Outside_EventScript_1A040E
@@ -2447,8 +2432,8 @@ Route120_EventScript_1A0594:: @ 81A0594
end
Route119_EventScript_1A05AE:: @ 81A05AE
- msgbox Route119_Text_171BB6, 5
- compare RESULT, 1
+ msgbox Route119_Text_171BB6, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route119_EventScript_1A05C3
release
end
@@ -2466,19 +2451,19 @@ Route119_EventScript_1A05C3:: @ 81A05C3
waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
compare VAR_SPECIAL_4, 1
- call_if 1, Route119_EventScript_1A0646
+ call_if_eq Route119_EventScript_1A0646
compare VAR_SPECIAL_4, 2
- call_if 1, Route119_EventScript_1A064A
+ call_if_eq Route119_EventScript_1A064A
compare VAR_SPECIAL_4, 3
- call_if 1, Route119_EventScript_1A064E
+ call_if_eq Route119_EventScript_1A064E
compare VAR_SPECIAL_4, 4
- call_if 1, Route119_EventScript_1A0652
+ call_if_eq Route119_EventScript_1A0652
compare VAR_SPECIAL_4, 5
- call_if 1, Route119_EventScript_1A0656
+ call_if_eq Route119_EventScript_1A0656
compare VAR_SPECIAL_4, 6
- call_if 1, Route119_EventScript_1A065A
+ call_if_eq Route119_EventScript_1A065A
compare VAR_SPECIAL_4, 7
- call_if 1, Route119_EventScript_1A065E
+ call_if_eq Route119_EventScript_1A065E
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
@@ -2553,7 +2538,7 @@ GraniteCave_StevensRoom_EventScript_1A067F:: @ 81A067F
MtPyre_Summit_EventScript_1A067F:: @ 81A067F
SlateportCity_OceanicMuseum_2F_EventScript_1A067F:: @ 81A067F
bufferitemname 0, VAR_SPECIAL_4
- playfanfare 372
+ playfanfare BGM_ME_WAZA
message FallarborTown_House1_Text_1A1498
waitmessage
waitfanfare
@@ -2566,7 +2551,7 @@ EverGrandeCity_PhoebesRoom_EventScript_1A0693:: @ 81A0693
EverGrandeCity_SidneysRoom_EventScript_1A0693:: @ 81A0693
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0853
waitmovement 0
- playse 8
+ playse SE_DOOR
setmetatile 6, 1, 836, 0
setmetatile 6, 2, 837, 0
setmetatile 0, 2, 734, 1
@@ -2588,7 +2573,7 @@ EverGrandeCity_PhoebesRoom_EventScript_1A0710:: @ 81A0710
EverGrandeCity_SidneysRoom_EventScript_1A0710:: @ 81A0710
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0847
waitmovement 0
- playse 52
+ playse SE_TRACK_DOOR
setmetatile 5, 12, 518, 1
setmetatile 6, 12, 518, 1
setmetatile 7, 12, 518, 1
@@ -3294,6 +3279,7 @@ PacifidlogTown_House2_EventScript_1A14DC:: @ 81A14DC
Route101_EventScript_1A14DC:: @ 81A14DC
return
+ .include "data/scripts/debug.inc"
.include "data/scripts/berry_tree.inc"
.include "data/text/berry_tree.inc"
@@ -3652,8 +3638,8 @@ EventScript_1A2CB0:
compare RESULT, 6
goto_if_eq EventScript_1A2CF1
bufferpartymonnick 0, RESULT
- msgbox UnknownString_8198F34, 5
- compare RESULT, 0
+ msgbox UnknownString_8198F34, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
msgbox UsedCutRockSmashText, 4
closemessage
@@ -3683,8 +3669,8 @@ EventScript_1A2D08:
compare RESULT, 6
goto_if_eq EventScript_1A2D49
bufferpartymonnick 0, RESULT
- msgbox UnknownString_81A197B, 5
- compare RESULT, 0
+ msgbox UnknownString_81A197B, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
msgbox UsedCutRockSmashText, 4
closemessage
@@ -3714,8 +3700,8 @@ EventScript_1A2D60:
compare RESULT, 6
goto_if_eq EventScript_1A2DA1
bufferpartymonnick 0, RESULT
- msgbox UnknownString_81A1A4B, 5
- compare RESULT, 0
+ msgbox UnknownString_81A1A4B, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
msgbox UsedCutRockSmashText, 4
closemessage
@@ -3742,7 +3728,7 @@ EventScript_1A2DAA:
EventScript_1A2DB8:
closemessage
- playse 9
+ playse SE_KAIDAN
setvar VAR_0x4097, 0
setflag FLAG_DECORATION_1
special sub_80BB8CC
@@ -3758,11 +3744,11 @@ SecretBase_RedCave1_EventScript_1A2DDE:: @ 81A2DDE
applymovement 255, SecretBase_RedCave1_Movement_1A2E11
waitmovement 0
setvar VAR_0x4097, 1
- msgbox SecretBase_RedCave1_Text_198F89, 5
- compare RESULT, 1
+ msgbox SecretBase_RedCave1_Text_198F89, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SecretBase_RedCave1_EventScript_1A2E08
closemessage
- playse 9
+ playse SE_KAIDAN
special sub_80BC440
end
@@ -3781,7 +3767,7 @@ SecretBase_RedCave1_Movement_1A2E11:: @ 81A2E11
gUnknown_081A2E14:: @ 81A2E14
lockall
setvar VAR_0x4097, 1
- playse 9
+ playse SE_KAIDAN
special sub_80BC114
compare RESULT, 0
goto_if_eq EventScript_1A2E38
@@ -3806,18 +3792,18 @@ EventScript_1A2E45:
setorcopyvar VAR_SPECIAL_4, RESULT
lockall
special GetSecretBaseNearbyMapName
- msgbox UnknownString_81A3C71, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3C71, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
- msgbox UnknownString_81A38FB, 5
- compare RESULT, 0
+ msgbox UnknownString_81A38FB, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
fadescreen 1
special MoveSecretBase
closemessage
fadescreen 0
- msgbox UnknownString_81A3CC9, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3CC9, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
bufferpartymonnick 0, VAR_SPECIAL_4
buffermovename 1, MOVE_SECRET_POWER
@@ -3964,14 +3950,13 @@ SecretBase_YellowCave4_EventScript_1A2FC0:: @ 81A2FC0
end
SecretBase_RedCave1_EventScript_1A3032:: @ 81A3032
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3086
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3086
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A30A5
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A1AEA, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A1AEA, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A308F
setvar RESULT, 1
special sub_80BCE4C
@@ -3999,14 +3984,13 @@ SecretBase_RedCave1_EventScript_1A30A5:: @ 81A30A5
end
SecretBase_RedCave1_EventScript_1A30AE:: @ 81A30AE
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3102
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3102
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3121
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A1E67, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A1E67, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A310B
setvar RESULT, 1
special sub_80BCE4C
@@ -4034,14 +4018,13 @@ SecretBase_RedCave1_EventScript_1A3121:: @ 81A3121
end
SecretBase_RedCave1_EventScript_1A312A:: @ 81A312A
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A317E
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A317E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A319D
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A218F, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A218F, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A3187
setvar RESULT, 1
special sub_80BCE4C
@@ -4069,14 +4052,13 @@ SecretBase_RedCave1_EventScript_1A319D:: @ 81A319D
end
SecretBase_RedCave1_EventScript_1A31A6:: @ 81A31A6
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A31FA
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A31FA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3219
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A24E1, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A24E1, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A3203
setvar RESULT, 1
special sub_80BCE4C
@@ -4104,14 +4086,13 @@ SecretBase_RedCave1_EventScript_1A3219:: @ 81A3219
end
SecretBase_RedCave1_EventScript_1A3222:: @ 81A3222
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3276
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3276
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3295
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2830, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2830, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A327F
setvar RESULT, 1
special sub_80BCE4C
@@ -4139,14 +4120,13 @@ SecretBase_RedCave1_EventScript_1A3295:: @ 81A3295
end
SecretBase_RedCave1_EventScript_1A329E:: @ 81A329E
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A32F2
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A32F2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3311
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A1CB2, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A1CB2, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A32FB
setvar RESULT, 1
special sub_80BCE4C
@@ -4174,14 +4154,13 @@ SecretBase_RedCave1_EventScript_1A3311:: @ 81A3311
end
SecretBase_RedCave1_EventScript_1A331A:: @ 81A331A
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A336E
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A336E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A338D
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2026, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2026, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A3377
setvar RESULT, 1
special sub_80BCE4C
@@ -4209,14 +4188,13 @@ SecretBase_RedCave1_EventScript_1A338D:: @ 81A338D
end
SecretBase_RedCave1_EventScript_1A3396:: @ 81A3396
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A33EA
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A33EA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3409
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A236A, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A236A, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A33F3
setvar RESULT, 1
special sub_80BCE4C
@@ -4244,14 +4222,13 @@ SecretBase_RedCave1_EventScript_1A3409:: @ 81A3409
end
SecretBase_RedCave1_EventScript_1A3412:: @ 81A3412
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3466
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3466
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3485
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2663, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2663, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A346F
setvar RESULT, 1
special sub_80BCE4C
@@ -4279,14 +4256,13 @@ SecretBase_RedCave1_EventScript_1A3485:: @ 81A3485
end
SecretBase_RedCave1_EventScript_1A348E:: @ 81A348E
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A34E2
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A34E2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3501
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2A13, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2A13, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A34EB
setvar RESULT, 1
special sub_80BCE4C
@@ -4426,10 +4402,10 @@ SlateportCity_PokemonFanClub_EventScript_1ADE4D:: @ 81ADE4D
compare RESULT, 1
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADED6
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox SlateportCity_PokemonFanClub_Text_1A8704, 5
- compare RESULT, 1
+ msgbox SlateportCity_PokemonFanClub_Text_1A8704, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADE84
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADEB9
end
@@ -4471,21 +4447,20 @@ SlateportCity_OceanicMuseum_1F_EventScript_1ADEE0:: @ 81ADEE0
compare RESULT, 1
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF96
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- checkflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
- goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF25
+ goto_if_set FLAG_OCEANIC_MUSEUM_MET_REPORTER, SlateportCity_OceanicMuseum_1F_EventScript_1ADF25
setflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
- msgbox SlateportCity_OceanicMuseum_1F_Text_1A927F, 5
- compare RESULT, 1
+ msgbox SlateportCity_OceanicMuseum_1F_Text_1A927F, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF44
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF79
end
SlateportCity_OceanicMuseum_1F_EventScript_1ADF25:: @ 81ADF25
- msgbox SlateportCity_OceanicMuseum_1F_Text_1A934C, 5
- compare RESULT, 1
+ msgbox SlateportCity_OceanicMuseum_1F_Text_1A934C, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF44
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF79
end
@@ -4530,10 +4505,10 @@ SlateportCity_PokemonFanClub_EventScript_1ADFA0:: @ 81ADFA0
compare RESULT, 1
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1AE0AC
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox SlateportCity_PokemonFanClub_Text_1A82F1, 5
- compare RESULT, 1
+ msgbox SlateportCity_PokemonFanClub_Text_1A82F1, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADFE9
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1AE0A2
end
@@ -4600,17 +4575,16 @@ SlateportCity_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
VerdanturfTown_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
lock
faceplayer
- checkflag FLAG_TEMP_2
- goto_if_eq FallarborTown_ContestLobby_EventScript_1AE17E
+ goto_if_set FLAG_TEMP_2, FallarborTown_ContestLobby_EventScript_1AE17E
setvar VAR_SPECIAL_5, 6
special InterviewBefore
compare RESULT, 1
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE17E
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox FallarborTown_ContestLobby_Text_1A6F7C, 5
- compare RESULT, 1
+ msgbox FallarborTown_ContestLobby_Text_1A6F7C, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE0F8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE12D
end
@@ -4661,7 +4635,7 @@ LilycoveCity_ContestLobby_EventScript_1AE188:: @ 81AE188
SlateportCity_ContestLobby_EventScript_1AE188:: @ 81AE188
VerdanturfTown_ContestLobby_EventScript_1AE188:: @ 81AE188
compare VAR_LINK_CONTEST_ROOM_STATE, 2
- goto_if 5, FallarborTown_ContestLobby_EventScript_1AE1FE
+ goto_if_ne FallarborTown_ContestLobby_EventScript_1AE1FE
setvar VAR_SPECIAL_5, 6
special InterviewBefore
compare RESULT, 1
@@ -4697,17 +4671,16 @@ FallarborTown_ContestLobby_EventScript_1AE1FE:: @ 81AE1FE
BattleTower_Lobby_EventScript_1AE1FF:: @ 81AE1FF
lock
faceplayer
- checkflag FLAG_TEMP_2
- goto_if_eq BattleTower_Lobby_EventScript_1AE2E3
+ goto_if_set FLAG_TEMP_2, BattleTower_Lobby_EventScript_1AE2E3
setvar VAR_SPECIAL_5, 7
special InterviewBefore
compare RESULT, 1
goto_if_eq BattleTower_Lobby_EventScript_1AE2E3
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox BattleTower_Lobby_Text_1A776D, 5
- compare RESULT, 1
+ msgbox BattleTower_Lobby_Text_1A776D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq BattleTower_Lobby_EventScript_1AE241
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq BattleTower_Lobby_EventScript_1AE297
end
@@ -4717,9 +4690,9 @@ BattleTower_Lobby_EventScript_1AE241:: @ 81AE241
multichoice 19, 8, 45, 1
copyvar VAR_SPECIAL_8, RESULT
compare RESULT, 0
- call_if 1, BattleTower_Lobby_EventScript_1AE2A1
+ call_if_eq BattleTower_Lobby_EventScript_1AE2A1
compare RESULT, 1
- call_if 1, BattleTower_Lobby_EventScript_1AE2AA
+ call_if_eq BattleTower_Lobby_EventScript_1AE2AA
msgbox BattleTower_Lobby_Text_1A79EB, 4
setvar VAR_SPECIAL_4, 12
copyvar VAR_SPECIAL_5, VAR_SPECIAL_9
@@ -4915,7 +4888,7 @@ S_FallDownHole:: @ 81C6BC5
delay 20
applymovement 255, GraniteCave_B1F_Movement_1C6BF7
waitmovement 0
- playse 43
+ playse SE_RU_HYUU
delay 60
warphole MAP_UNDEFINED
waitstate
@@ -4926,7 +4899,7 @@ gUnknown_081C6BDE:: @ 81C6BDE
delay 20
applymovement 255, GraniteCave_B1F_Movement_1C6BF7
waitmovement 0
- playse 43
+ playse SE_RU_HYUU
delay 60
special sp13F_fall_to_last_warp
waitstate
diff --git a/data-de/field_move_scripts.inc b/data-de/field_move_scripts.inc
index edecb0312..86a4d1b24 100644
--- a/data-de/field_move_scripts.inc
+++ b/data-de/field_move_scripts.inc
@@ -1,15 +1,14 @@
S_CuttableTree:: @ 81B0DCC
lockall
- checkflag FLAG_BADGE01_GET
- goto_if 0, CannotUseCut
+ goto_if_unset FLAG_BADGE01_GET, CannotUseCut
checkpartymove MOVE_CUT
compare RESULT, 6
goto_if_eq CannotUseCut
setfieldeffectargument 0, RESULT
bufferpartymonnick 0, RESULT
buffermovename 1, MOVE_CUT
- msgbox UseCutPromptText, 5
- compare RESULT, 0
+ msgbox UseCutPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Cut_ChoseNo
msgbox UsedCutRockSmashText, 4
closemessage
@@ -61,16 +60,15 @@ CannotUseCutText: @ 81B0E8E
S_BreakableRock:: @ 81B0EB7
lockall
- checkflag FLAG_BADGE03_GET
- goto_if 0, CannotUseRockSmash
+ goto_if_unset FLAG_BADGE03_GET, CannotUseRockSmash
checkpartymove MOVE_ROCK_SMASH
compare RESULT, 6
goto_if_eq CannotUseRockSmash
setfieldeffectargument 0, RESULT
bufferpartymonnick 0, RESULT
buffermovename 1, MOVE_ROCK_SMASH
- msgbox UseRockSmashPromptText, 5
- compare RESULT, 0
+ msgbox UseRockSmashPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq RockSmash_ChoseNo
msgbox UsedCutRockSmashText, 4
closemessage
@@ -128,16 +126,14 @@ CannotUseRockSmashText: @ 81B0F90
S_PushableBoulder:: @ 81B0FCB
lockall
- checkflag FLAG_BADGE04_GET
- goto_if 0, CannotUseStrength
- checkflag FLAG_SYS_USE_STRENGTH
- goto_if_eq AlreadyUsedStrength
+ goto_if_unset FLAG_BADGE04_GET, CannotUseStrength
+ goto_if_set FLAG_SYS_USE_STRENGTH, AlreadyUsedStrength
checkpartymove 70
compare RESULT, 6
goto_if_eq CannotUseStrength
setfieldeffectargument 0, RESULT
- msgbox UseStrengthPromptText, 5
- compare RESULT, 0
+ msgbox UseStrengthPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Strength_ChoseNo
closemessage
dofieldeffect 40
@@ -198,8 +194,8 @@ S_UseWaterfall:: @ 81B115A
goto_if_eq Waterfall_NoMonKnows
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
- msgbox UseWaterfallPromptText, 5
- compare RESULT, 0
+ msgbox UseWaterfallPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Waterfall_Done
msgbox UsedWaterfallText, 4
dofieldeffect 43
@@ -232,8 +228,8 @@ UseDiveScript:: @ 81B1220
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
setfieldeffectargument 1, 1
- msgbox UseDivePromptText, 5
- compare RESULT, 0
+ msgbox UseDivePromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Dive_Done
msgbox UsedDiveText, 4
dofieldeffect 44
@@ -255,8 +251,8 @@ S_UseDiveUnderwater:: @ 81B1269
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
setfieldeffectargument 1, 1
- msgbox UnderwaterUseDivePromptText, 5
- compare RESULT, 0
+ msgbox UnderwaterUseDivePromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq UnderwaterDive_Done
msgbox UsedDiveText, 4
dofieldeffect 44
diff --git a/data-de/strings2.s b/data-de/strings2.s
index f15c039aa..52e964938 100644
--- a/data-de/strings2.s
+++ b/data-de/strings2.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data-de/trainers.inc b/data-de/trainers.inc
index 47e4c2289..39bfd9bfe 100644
--- a/data-de/trainers.inc
+++ b/data-de/trainers.inc
@@ -2,7 +2,7 @@
gTrainers:: @ 81F04FC
@ NONE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_1
+ .byte TRAINER_CLASS_POKEMON_TRAINER_1
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "$", 12
@@ -14,7 +14,7 @@ gTrainers:: @ 81F04FC
@ ARCHIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_LEADER
+ .byte TRAINER_CLASS_AQUA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_ARCHIE
.string "ADRIAN$", 12
@@ -26,7 +26,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -38,7 +38,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -50,7 +50,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -62,7 +62,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -74,7 +74,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -86,7 +86,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -98,7 +98,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -110,7 +110,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -122,7 +122,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -134,7 +134,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -146,7 +146,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -158,7 +158,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -170,7 +170,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_13
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -182,7 +182,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_14
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -194,7 +194,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_15
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -206,7 +206,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_16
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -218,7 +218,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_17
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -230,7 +230,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_18
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -242,7 +242,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_19
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -254,7 +254,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_20
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -266,7 +266,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_21
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -278,7 +278,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_22
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -290,7 +290,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_23
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -302,7 +302,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_24
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "RÜPEL$", 12
@@ -314,7 +314,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_25
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_F
.string "RÜPEL$", 12
@@ -326,7 +326,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_26
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_F
.string "RÜPEL$", 12
@@ -338,7 +338,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_27
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_F
.string "RÜPEL$", 12
@@ -350,7 +350,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_M
.string "$", 12
@@ -362,7 +362,7 @@ gTrainers:: @ 81F04FC
@ MATT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_M
.string "WOLFGANG$", 12
@@ -374,7 +374,7 @@ gTrainers:: @ 81F04FC
@ MATT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_M
.string "WOLFGANG$", 12
@@ -386,7 +386,7 @@ gTrainers:: @ 81F04FC
@ SHELLY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_F
.string "KORDULA$", 12
@@ -398,7 +398,7 @@ gTrainers:: @ 81F04FC
@ SHELLY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_F
.string "KORDULA$", 12
@@ -410,7 +410,7 @@ gTrainers:: @ 81F04FC
@ ARCHIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_LEADER
+ .byte TRAINER_CLASS_AQUA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_ARCHIE
.string "ADRIAN$", 12
@@ -422,7 +422,7 @@ gTrainers:: @ 81F04FC
@ ARCHIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_LEADER
+ .byte TRAINER_CLASS_AQUA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_ARCHIE
.string "ADRIAN$", 12
@@ -434,7 +434,7 @@ gTrainers:: @ 81F04FC
@ DAISY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "MARGARETE$", 12
@@ -446,7 +446,7 @@ gTrainers:: @ 81F04FC
@ ROSE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSEMARIE$", 12
@@ -458,7 +458,7 @@ gTrainers:: @ 81F04FC
@ LILY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "LILLY$", 12
@@ -470,7 +470,7 @@ gTrainers:: @ 81F04FC
@ VIOLET
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ERIKA$", 12
@@ -482,7 +482,7 @@ gTrainers:: @ 81F04FC
@ ROSE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSEMARIE$", 12
@@ -494,7 +494,7 @@ gTrainers:: @ 81F04FC
@ ROSE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSEMARIE$", 12
@@ -506,7 +506,7 @@ gTrainers:: @ 81F04FC
@ ROSE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSEMARIE$", 12
@@ -518,7 +518,7 @@ gTrainers:: @ 81F04FC
@ ROSE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSEMARIE$", 12
@@ -530,7 +530,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RÜDIGER$", 12
@@ -542,7 +542,7 @@ gTrainers:: @ 81F04FC
@ CHIP
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RUPRECHT$", 12
@@ -554,7 +554,7 @@ gTrainers:: @ 81F04FC
@ FOSTER
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RUBEN$", 12
@@ -566,7 +566,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RÜDIGER$", 12
@@ -578,7 +578,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RÜDIGER$", 12
@@ -590,7 +590,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RÜDIGER$", 12
@@ -602,7 +602,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "RÜDIGER$", 12
@@ -614,7 +614,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "PIA & UDO$", 12
@@ -626,7 +626,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "PIA & UDO$", 12
@@ -638,7 +638,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "PIA & UDO$", 12
@@ -650,7 +650,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "PIA & UDO$", 12
@@ -662,7 +662,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "PIA & UDO$", 12
@@ -674,7 +674,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_6
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "PIA & UDO$", 12
@@ -686,7 +686,7 @@ gTrainers:: @ 81F04FC
@ LOLA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -698,7 +698,7 @@ gTrainers:: @ 81F04FC
@ CARMEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "CARMEN$", 12
@@ -710,7 +710,7 @@ gTrainers:: @ 81F04FC
@ GWEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "HILDE $", 12
@@ -722,7 +722,7 @@ gTrainers:: @ 81F04FC
@ LOLA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -734,7 +734,7 @@ gTrainers:: @ 81F04FC
@ LOLA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -746,7 +746,7 @@ gTrainers:: @ 81F04FC
@ LOLA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -758,7 +758,7 @@ gTrainers:: @ 81F04FC
@ LOLA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -770,7 +770,7 @@ gTrainers:: @ 81F04FC
@ RICKY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "GÜNTHER$", 12
@@ -782,7 +782,7 @@ gTrainers:: @ 81F04FC
@ SIMON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "SIMON$", 12
@@ -794,7 +794,7 @@ gTrainers:: @ 81F04FC
@ CHARLIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "HILMAR$", 12
@@ -806,7 +806,7 @@ gTrainers:: @ 81F04FC
@ RICKY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "GÜNTHER$", 12
@@ -818,7 +818,7 @@ gTrainers:: @ 81F04FC
@ RICKY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "GÜNTHER$", 12
@@ -830,7 +830,7 @@ gTrainers:: @ 81F04FC
@ RICKY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "GÜNTHER$", 12
@@ -842,7 +842,7 @@ gTrainers:: @ 81F04FC
@ RICKY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "GÜNTHER$", 12
@@ -854,7 +854,7 @@ gTrainers:: @ 81F04FC
@ RANDALL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "HUBERT$", 12
@@ -866,7 +866,7 @@ gTrainers:: @ 81F04FC
@ PARKER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PATRICK$", 12
@@ -878,7 +878,7 @@ gTrainers:: @ 81F04FC
@ GEORGE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "NILS$", 12
@@ -890,7 +890,7 @@ gTrainers:: @ 81F04FC
@ BERKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "CHRISTIAN$", 12
@@ -902,7 +902,7 @@ gTrainers:: @ 81F04FC
@ CLYDE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "OSKAR$", 12
@@ -914,7 +914,7 @@ gTrainers:: @ 81F04FC
@ VINCENT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "OTFRIED$", 12
@@ -926,7 +926,7 @@ gTrainers:: @ 81F04FC
@ LEROY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "OTMAR$", 12
@@ -938,7 +938,7 @@ gTrainers:: @ 81F04FC
@ WILTON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PASCAL$", 12
@@ -950,7 +950,7 @@ gTrainers:: @ 81F04FC
@ EDGAR
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "EDGAR$", 12
@@ -962,7 +962,7 @@ gTrainers:: @ 81F04FC
@ ALBERT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PABLO$", 12
@@ -974,7 +974,7 @@ gTrainers:: @ 81F04FC
@ SAMUEL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "RICHARD$", 12
@@ -986,7 +986,7 @@ gTrainers:: @ 81F04FC
@ VITO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PAUL$", 12
@@ -998,7 +998,7 @@ gTrainers:: @ 81F04FC
@ OWEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "RAIMUND$", 12
@@ -1010,7 +1010,7 @@ gTrainers:: @ 81F04FC
@ WILTON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PASCAL$", 12
@@ -1022,7 +1022,7 @@ gTrainers:: @ 81F04FC
@ WILTON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PASCAL$", 12
@@ -1034,7 +1034,7 @@ gTrainers:: @ 81F04FC
@ WILTON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PASCAL$", 12
@@ -1046,7 +1046,7 @@ gTrainers:: @ 81F04FC
@ WILTON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PASCAL$", 12
@@ -1058,7 +1058,7 @@ gTrainers:: @ 81F04FC
@ WARREN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "MARKUS$", 12
@@ -1070,7 +1070,7 @@ gTrainers:: @ 81F04FC
@ MARY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "YVONNE$", 12
@@ -1082,7 +1082,7 @@ gTrainers:: @ 81F04FC
@ LORI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "RAMONA$", 12
@@ -1094,7 +1094,7 @@ gTrainers:: @ 81F04FC
@ JODY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "ROSWITA$", 12
@@ -1106,7 +1106,7 @@ gTrainers:: @ 81F04FC
@ WENDY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "VIOLA$", 12
@@ -1118,7 +1118,7 @@ gTrainers:: @ 81F04FC
@ ELAINE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "FRAUKE$", 12
@@ -1130,7 +1130,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "VERONIKA$", 12
@@ -1142,7 +1142,7 @@ gTrainers:: @ 81F04FC
@ JENNIFER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "MARIANNE$", 12
@@ -1154,7 +1154,7 @@ gTrainers:: @ 81F04FC
@ HOPE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "TRUDLINDE$", 12
@@ -1166,7 +1166,7 @@ gTrainers:: @ 81F04FC
@ SHANNON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "THERESA$", 12
@@ -1178,7 +1178,7 @@ gTrainers:: @ 81F04FC
@ MICHELLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "MICHELLE$", 12
@@ -1190,7 +1190,7 @@ gTrainers:: @ 81F04FC
@ CAROLINE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "KAROLINE$", 12
@@ -1202,7 +1202,7 @@ gTrainers:: @ 81F04FC
@ JULIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "MICHAELA$", 12
@@ -1214,7 +1214,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "VERONIKA$", 12
@@ -1226,7 +1226,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "VERONIKA$", 12
@@ -1238,7 +1238,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "VERONIKA$", 12
@@ -1250,7 +1250,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "VERONIKA$", 12
@@ -1262,7 +1262,7 @@ gTrainers:: @ 81F04FC
@ PATRICIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "WALBURGA$", 12
@@ -1274,7 +1274,7 @@ gTrainers:: @ 81F04FC
@ KINDRA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "GUNDULA$", 12
@@ -1286,7 +1286,7 @@ gTrainers:: @ 81F04FC
@ TAMMY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "BRUNHILDE$", 12
@@ -1298,7 +1298,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TABITHA$", 12
@@ -1310,7 +1310,7 @@ gTrainers:: @ 81F04FC
@ TASHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "PANDORA$", 12
@@ -1322,7 +1322,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TABITHA$", 12
@@ -1334,7 +1334,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TABITHA$", 12
@@ -1346,7 +1346,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TABITHA$", 12
@@ -1358,7 +1358,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TABITHA$", 12
@@ -1370,7 +1370,7 @@ gTrainers:: @ 81F04FC
@ CINDY_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "PATRIZIA$", 12
@@ -1382,7 +1382,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "$", 12
@@ -1394,7 +1394,7 @@ gTrainers:: @ 81F04FC
@ BRIANNA_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "NATASCHA$", 12
@@ -1406,7 +1406,7 @@ gTrainers:: @ 81F04FC
@ CINDY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "PATRIZIA$", 12
@@ -1418,7 +1418,7 @@ gTrainers:: @ 81F04FC
@ BRIANNA_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "NATASCHA$", 12
@@ -1430,7 +1430,7 @@ gTrainers:: @ 81F04FC
@ ANETTE
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "ANETTE$", 12
@@ -1442,7 +1442,7 @@ gTrainers:: @ 81F04FC
@ CINDY_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "PATRIZIA$", 12
@@ -1454,7 +1454,7 @@ gTrainers:: @ 81F04FC
@ CINDY_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "PATRIZIA$", 12
@@ -1466,7 +1466,7 @@ gTrainers:: @ 81F04FC
@ CINDY_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "PATRIZIA$", 12
@@ -1478,7 +1478,7 @@ gTrainers:: @ 81F04FC
@ CINDY_6
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "PATRIZIA$", 12
@@ -1490,7 +1490,7 @@ gTrainers:: @ 81F04FC
@ MELISSA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "MELISSA$", 12
@@ -1502,7 +1502,7 @@ gTrainers:: @ 81F04FC
@ SHEILA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "SYLVIA$", 12
@@ -1514,7 +1514,7 @@ gTrainers:: @ 81F04FC
@ SHIRLEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "MIRJAM$", 12
@@ -1526,7 +1526,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "GERMAINE$", 12
@@ -1538,7 +1538,7 @@ gTrainers:: @ 81F04FC
@ CONNIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "FRANCESCA$", 12
@@ -1550,7 +1550,7 @@ gTrainers:: @ 81F04FC
@ BRIDGET
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "SALMA$", 12
@@ -1562,7 +1562,7 @@ gTrainers:: @ 81F04FC
@ OLIVIA
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "TIA$", 12
@@ -1574,7 +1574,7 @@ gTrainers:: @ 81F04FC
@ TIFFANY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "DANIELA$", 12
@@ -1586,7 +1586,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "GERMAINE$", 12
@@ -1598,7 +1598,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "GERMAINE$", 12
@@ -1610,7 +1610,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "GERMAINE$", 12
@@ -1622,7 +1622,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "GERMAINE$", 12
@@ -1634,7 +1634,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "RENE$", 12
@@ -1646,7 +1646,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "$", 12
@@ -1658,7 +1658,7 @@ gTrainers:: @ 81F04FC
@ GARRET
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "KAI$", 12
@@ -1670,7 +1670,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "RENE$", 12
@@ -1682,7 +1682,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "RENE$", 12
@@ -1694,7 +1694,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "RENE$", 12
@@ -1706,7 +1706,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_5
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "RENE$", 12
@@ -1718,7 +1718,7 @@ gTrainers:: @ 81F04FC
@ STEVE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "HIRO$", 12
@@ -1730,7 +1730,7 @@ gTrainers:: @ 81F04FC
@ CHRIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "CHRIS$", 12
@@ -1742,7 +1742,7 @@ gTrainers:: @ 81F04FC
@ MARK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "MARK$", 12
@@ -1754,7 +1754,7 @@ gTrainers:: @ 81F04FC
@ KENN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "KLAUS$", 12
@@ -1766,7 +1766,7 @@ gTrainers:: @ 81F04FC
@ STEVE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "HIRO$", 12
@@ -1778,7 +1778,7 @@ gTrainers:: @ 81F04FC
@ STEVE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "HIRO$", 12
@@ -1790,7 +1790,7 @@ gTrainers:: @ 81F04FC
@ STEVE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "HIRO$", 12
@@ -1802,7 +1802,7 @@ gTrainers:: @ 81F04FC
@ STEVE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "HIRO$", 12
@@ -1814,7 +1814,7 @@ gTrainers:: @ 81F04FC
@ LUIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KONSTANTIN$", 12
@@ -1826,7 +1826,7 @@ gTrainers:: @ 81F04FC
@ AUSTIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "GUIDO$", 12
@@ -1838,7 +1838,7 @@ gTrainers:: @ 81F04FC
@ DOUGLAS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "IGNAZ$", 12
@@ -1850,7 +1850,7 @@ gTrainers:: @ 81F04FC
@ DARRIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "MANUEL$", 12
@@ -1862,7 +1862,7 @@ gTrainers:: @ 81F04FC
@ TONY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KEVIN$", 12
@@ -1874,7 +1874,7 @@ gTrainers:: @ 81F04FC
@ JEROME
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "OSWALD$", 12
@@ -1886,7 +1886,7 @@ gTrainers:: @ 81F04FC
@ MATTHEW
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "UMBERTO$", 12
@@ -1898,7 +1898,7 @@ gTrainers:: @ 81F04FC
@ DAVID
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "WINFRIED$", 12
@@ -1910,7 +1910,7 @@ gTrainers:: @ 81F04FC
@ SPENCER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "LEOPOLD$", 12
@@ -1922,7 +1922,7 @@ gTrainers:: @ 81F04FC
@ ROLAND
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "THOMAS$", 12
@@ -1934,7 +1934,7 @@ gTrainers:: @ 81F04FC
@ CODY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "TIMO$", 12
@@ -1946,7 +1946,7 @@ gTrainers:: @ 81F04FC
@ STAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "BALTHASAR$", 12
@@ -1958,7 +1958,7 @@ gTrainers:: @ 81F04FC
@ BARRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "BASIL$", 12
@@ -1970,7 +1970,7 @@ gTrainers:: @ 81F04FC
@ DEAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DAGOBERT$", 12
@@ -1982,7 +1982,7 @@ gTrainers:: @ 81F04FC
@ RODNEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DIETER$", 12
@@ -1994,7 +1994,7 @@ gTrainers:: @ 81F04FC
@ RICHARD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "ENNO$", 12
@@ -2006,7 +2006,7 @@ gTrainers:: @ 81F04FC
@ HERMAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "BENNO$", 12
@@ -2018,7 +2018,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "$", 12
@@ -2030,7 +2030,7 @@ gTrainers:: @ 81F04FC
@ GILBERT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "ERICH$", 12
@@ -2042,7 +2042,7 @@ gTrainers:: @ 81F04FC
@ FRANKLIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KASPER$", 12
@@ -2054,7 +2054,7 @@ gTrainers:: @ 81F04FC
@ DANNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "MARCEL$", 12
@@ -2066,7 +2066,7 @@ gTrainers:: @ 81F04FC
@ JACK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "PEDRO$", 12
@@ -2078,7 +2078,7 @@ gTrainers:: @ 81F04FC
@ DUDLEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "THEODOR$", 12
@@ -2090,7 +2090,7 @@ gTrainers:: @ 81F04FC
@ CHAD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "JANNIK$", 12
@@ -2102,7 +2102,7 @@ gTrainers:: @ 81F04FC
@ TONY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KEVIN$", 12
@@ -2114,7 +2114,7 @@ gTrainers:: @ 81F04FC
@ TONY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KEVIN$", 12
@@ -2126,7 +2126,7 @@ gTrainers:: @ 81F04FC
@ TONY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KEVIN$", 12
@@ -2138,7 +2138,7 @@ gTrainers:: @ 81F04FC
@ TONY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "KEVIN$", 12
@@ -2150,7 +2150,7 @@ gTrainers:: @ 81F04FC
@ HIDEKI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "SATORU$", 12
@@ -2162,7 +2162,7 @@ gTrainers:: @ 81F04FC
@ HITOSHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "SHIGERU$", 12
@@ -2174,7 +2174,7 @@ gTrainers:: @ 81F04FC
@ KIYO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "YU$", 12
@@ -2186,7 +2186,7 @@ gTrainers:: @ 81F04FC
@ KOICHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "JUNICHI$", 12
@@ -2198,7 +2198,7 @@ gTrainers:: @ 81F04FC
@ NOB_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "MINORU$", 12
@@ -2210,7 +2210,7 @@ gTrainers:: @ 81F04FC
@ NOB_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "MINORU$", 12
@@ -2222,7 +2222,7 @@ gTrainers:: @ 81F04FC
@ NOB_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "MINORU$", 12
@@ -2234,7 +2234,7 @@ gTrainers:: @ 81F04FC
@ NOB_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "MINORU$", 12
@@ -2246,7 +2246,7 @@ gTrainers:: @ 81F04FC
@ NOB_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "MINORU$", 12
@@ -2258,7 +2258,7 @@ gTrainers:: @ 81F04FC
@ YUJI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "HIDEO$", 12
@@ -2270,7 +2270,7 @@ gTrainers:: @ 81F04FC
@ DAISUKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "KENJI$", 12
@@ -2282,7 +2282,7 @@ gTrainers:: @ 81F04FC
@ ATSUSHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "HIROSHI$", 12
@@ -2294,7 +2294,7 @@ gTrainers:: @ 81F04FC
@ KIRK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "CHUCK$", 12
@@ -2306,7 +2306,7 @@ gTrainers:: @ 81F04FC
@ SCOTT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "TREY$", 12
@@ -2318,7 +2318,7 @@ gTrainers:: @ 81F04FC
@ HARVEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KERRY$", 12
@@ -2330,7 +2330,7 @@ gTrainers:: @ 81F04FC
@ SHAWN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "REINHARD$", 12
@@ -2342,7 +2342,7 @@ gTrainers:: @ 81F04FC
@ RANDY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "JEFF$", 12
@@ -2354,7 +2354,7 @@ gTrainers:: @ 81F04FC
@ DALTON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KIRK$", 12
@@ -2366,7 +2366,7 @@ gTrainers:: @ 81F04FC
@ DALTON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KIRK$", 12
@@ -2378,7 +2378,7 @@ gTrainers:: @ 81F04FC
@ DALTON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KIRK$", 12
@@ -2390,7 +2390,7 @@ gTrainers:: @ 81F04FC
@ DALTON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KIRK$", 12
@@ -2402,7 +2402,7 @@ gTrainers:: @ 81F04FC
@ DALTON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KIRK$", 12
@@ -2414,7 +2414,7 @@ gTrainers:: @ 81F04FC
@ COLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HENDRIK$", 12
@@ -2426,7 +2426,7 @@ gTrainers:: @ 81F04FC
@ FLINT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HEINZ$", 12
@@ -2438,7 +2438,7 @@ gTrainers:: @ 81F04FC
@ AXLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HAGEN$", 12
@@ -2450,7 +2450,7 @@ gTrainers:: @ 81F04FC
@ JAKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HANNES$", 12
@@ -2462,7 +2462,7 @@ gTrainers:: @ 81F04FC
@ ANDY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HARTMANN$", 12
@@ -2474,7 +2474,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HASSO$", 12
@@ -2486,7 +2486,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HASSO$", 12
@@ -2498,7 +2498,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HASSO$", 12
@@ -2510,7 +2510,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HASSO$", 12
@@ -2522,7 +2522,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "HASSO$", 12
@@ -2534,7 +2534,7 @@ gTrainers:: @ 81F04FC
@ DREW
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "ISSIDOR$", 12
@@ -2546,7 +2546,7 @@ gTrainers:: @ 81F04FC
@ CLIFF
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "IVAN$", 12
@@ -2558,7 +2558,7 @@ gTrainers:: @ 81F04FC
@ LARRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "KAREL$", 12
@@ -2570,7 +2570,7 @@ gTrainers:: @ 81F04FC
@ SHANE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "KUNO$", 12
@@ -2582,7 +2582,7 @@ gTrainers:: @ 81F04FC
@ JUSTIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "LAURENZ$", 12
@@ -2594,7 +2594,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "EWALD$", 12
@@ -2606,7 +2606,7 @@ gTrainers:: @ 81F04FC
@ JEFF
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "RAPHAEL$", 12
@@ -2618,7 +2618,7 @@ gTrainers:: @ 81F04FC
@ TRAVIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "RONALD$", 12
@@ -2630,7 +2630,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "EWALD$", 12
@@ -2642,7 +2642,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "EWALD$", 12
@@ -2654,7 +2654,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "EWALD$", 12
@@ -2666,7 +2666,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "EWALD$", 12
@@ -2678,7 +2678,7 @@ gTrainers:: @ 81F04FC
@ BRENT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "ROMEO$", 12
@@ -2690,7 +2690,7 @@ gTrainers:: @ 81F04FC
@ DONALD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "TILL$", 12
@@ -2702,7 +2702,7 @@ gTrainers:: @ 81F04FC
@ TAYLOR
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "URIEL$", 12
@@ -2714,7 +2714,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRUNO$", 12
@@ -2726,7 +2726,7 @@ gTrainers:: @ 81F04FC
@ DEREK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BURKARD$", 12
@@ -2738,7 +2738,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRUNO$", 12
@@ -2750,7 +2750,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRUNO$", 12
@@ -2762,7 +2762,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRUNO$", 12
@@ -2774,7 +2774,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRUNO$", 12
@@ -2786,7 +2786,7 @@ gTrainers:: @ 81F04FC
@ EDWARD
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "WENDELIN$", 12
@@ -2798,7 +2798,7 @@ gTrainers:: @ 81F04FC
@ PRESTON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "URBAN$", 12
@@ -2810,7 +2810,7 @@ gTrainers:: @ 81F04FC
@ VIRGIL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "ZOLTAN$", 12
@@ -2822,7 +2822,7 @@ gTrainers:: @ 81F04FC
@ FRITZ
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "XAVER$", 12
@@ -2834,7 +2834,7 @@ gTrainers:: @ 81F04FC
@ WILLIAM
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "WULF$", 12
@@ -2846,7 +2846,7 @@ gTrainers:: @ 81F04FC
@ JOSHUA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "JONAS$", 12
@@ -2858,7 +2858,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "MAXIMILIAN$", 12
@@ -2870,7 +2870,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "MAXIMILIAN$", 12
@@ -2882,7 +2882,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "MAXIMILIAN$", 12
@@ -2894,7 +2894,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "MAXIMILIAN$", 12
@@ -2906,7 +2906,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "MAXIMILIAN$", 12
@@ -2918,7 +2918,7 @@ gTrainers:: @ 81F04FC
@ JACLYN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "COSIMA$", 12
@@ -2930,7 +2930,7 @@ gTrainers:: @ 81F04FC
@ HANNAH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "HANNAH$", 12
@@ -2942,7 +2942,7 @@ gTrainers:: @ 81F04FC
@ SAMANTHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "SAMANTHA$", 12
@@ -2954,7 +2954,7 @@ gTrainers:: @ 81F04FC
@ MAURA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "DOLORES$", 12
@@ -2966,7 +2966,7 @@ gTrainers:: @ 81F04FC
@ KAYLA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "CAMILLA$", 12
@@ -2978,7 +2978,7 @@ gTrainers:: @ 81F04FC
@ ALEXIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "ALEXIS$", 12
@@ -2990,7 +2990,7 @@ gTrainers:: @ 81F04FC
@ JACKI_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "KORNELIA$", 12
@@ -3002,7 +3002,7 @@ gTrainers:: @ 81F04FC
@ JACKI_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "KORNELIA$", 12
@@ -3014,7 +3014,7 @@ gTrainers:: @ 81F04FC
@ JACKI_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "KORNELIA$", 12
@@ -3026,7 +3026,7 @@ gTrainers:: @ 81F04FC
@ JACKI_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "KORNELIA$", 12
@@ -3038,7 +3038,7 @@ gTrainers:: @ 81F04FC
@ JACKI_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "KORNELIA$", 12
@@ -3050,7 +3050,7 @@ gTrainers:: @ 81F04FC
@ WALTER_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "ABRAHAM$", 12
@@ -3062,7 +3062,7 @@ gTrainers:: @ 81F04FC
@ TUCKER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "CLAUDIO$", 12
@@ -3074,7 +3074,7 @@ gTrainers:: @ 81F04FC
@ THOMAS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "NIKOLAI$", 12
@@ -3086,7 +3086,7 @@ gTrainers:: @ 81F04FC
@ WALTER_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "ABRAHAM$", 12
@@ -3098,7 +3098,7 @@ gTrainers:: @ 81F04FC
@ WALTER_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "ABRAHAM$", 12
@@ -3110,7 +3110,7 @@ gTrainers:: @ 81F04FC
@ WALTER_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "ABRAHAM$", 12
@@ -3122,7 +3122,7 @@ gTrainers:: @ 81F04FC
@ WALTER_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "ABRAHAM$", 12
@@ -3134,7 +3134,7 @@ gTrainers:: @ 81F04FC
@ SIDNEY
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_SIDNEY
.string "ULRICH$", 12
@@ -3146,7 +3146,7 @@ gTrainers:: @ 81F04FC
@ PHOEBE
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_PHOEBE
.string "ANTONIA$", 12
@@ -3158,7 +3158,7 @@ gTrainers:: @ 81F04FC
@ GLACIA
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_GLACIA
.string "FROSINA$", 12
@@ -3170,7 +3170,7 @@ gTrainers:: @ 81F04FC
@ DRAKE
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_DRAKE
.string "DRAGAN$", 12
@@ -3182,7 +3182,7 @@ gTrainers:: @ 81F04FC
@ ROXANNE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_ROXANNE
.string "FELIZIA$", 12
@@ -3194,7 +3194,7 @@ gTrainers:: @ 81F04FC
@ BRAWLY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRAWLY
.string "KAMILLO$", 12
@@ -3206,7 +3206,7 @@ gTrainers:: @ 81F04FC
@ WATTSON
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WATTSON
.string "WALTER$", 12
@@ -3218,7 +3218,7 @@ gTrainers:: @ 81F04FC
@ FLANNERY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_FLANNERY
.string "FLAVIA$", 12
@@ -3230,7 +3230,7 @@ gTrainers:: @ 81F04FC
@ NORMAN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_NORMAN
.string "NORMAN$", 12
@@ -3242,7 +3242,7 @@ gTrainers:: @ 81F04FC
@ WINONA
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_WINONA
.string "WIBKE$", 12
@@ -3254,7 +3254,7 @@ gTrainers:: @ 81F04FC
@ TATE_AND_LIZA
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_TATE_AND_LIZA
.string "BEN&SVENJA$", 12
@@ -3266,7 +3266,7 @@ gTrainers:: @ 81F04FC
@ WALLACE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLACE
.string "WASSILI$", 12
@@ -3278,7 +3278,7 @@ gTrainers:: @ 81F04FC
@ JERRY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "ORLANDO$", 12
@@ -3290,7 +3290,7 @@ gTrainers:: @ 81F04FC
@ TED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "RAMON$", 12
@@ -3302,7 +3302,7 @@ gTrainers:: @ 81F04FC
@ PAUL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "JÜRGEN$", 12
@@ -3314,7 +3314,7 @@ gTrainers:: @ 81F04FC
@ JERRY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "ORLANDO$", 12
@@ -3326,7 +3326,7 @@ gTrainers:: @ 81F04FC
@ JERRY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "ORLANDO$", 12
@@ -3338,7 +3338,7 @@ gTrainers:: @ 81F04FC
@ JERRY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "ORLANDO$", 12
@@ -3350,7 +3350,7 @@ gTrainers:: @ 81F04FC
@ JERRY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "ORLANDO$", 12
@@ -3362,7 +3362,7 @@ gTrainers:: @ 81F04FC
@ KAREN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KERSTIN$", 12
@@ -3374,7 +3374,7 @@ gTrainers:: @ 81F04FC
@ GEORGIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "ARIANE$", 12
@@ -3386,7 +3386,7 @@ gTrainers:: @ 81F04FC
@ KAREN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KERSTIN$", 12
@@ -3398,7 +3398,7 @@ gTrainers:: @ 81F04FC
@ KAREN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KERSTIN$", 12
@@ -3410,7 +3410,7 @@ gTrainers:: @ 81F04FC
@ KAREN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KERSTIN$", 12
@@ -3422,7 +3422,7 @@ gTrainers:: @ 81F04FC
@ KAREN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KERSTIN$", 12
@@ -3434,7 +3434,7 @@ gTrainers:: @ 81F04FC
@ KATE_AND_JOY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "EVA & UTE$", 12
@@ -3446,7 +3446,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "IRM & IDA$", 12
@@ -3458,7 +3458,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "IRM & IDA$", 12
@@ -3470,7 +3470,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "IRM & IDA$", 12
@@ -3482,7 +3482,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "IRM & IDA$", 12
@@ -3494,7 +3494,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "IRM & IDA$", 12
@@ -3506,7 +3506,7 @@ gTrainers:: @ 81F04FC
@ VICTOR
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "VIKTOR$", 12
@@ -3518,7 +3518,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3530,7 +3530,7 @@ gTrainers:: @ 81F04FC
@ COLTON
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "ATTILA$", 12
@@ -3542,7 +3542,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3554,7 +3554,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3566,7 +3566,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3578,7 +3578,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3590,7 +3590,7 @@ gTrainers:: @ 81F04FC
@ VICTORIA
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "VIKTORIA$", 12
@@ -3602,7 +3602,7 @@ gTrainers:: @ 81F04FC
@ VANESSA
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "VANESSA$", 12
@@ -3614,7 +3614,7 @@ gTrainers:: @ 81F04FC
@ MARISSA
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "EVELYN$", 12
@@ -3626,7 +3626,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3638,7 +3638,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3650,7 +3650,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3662,7 +3662,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3674,7 +3674,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3686,7 +3686,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "THEOBALD$", 12
@@ -3698,7 +3698,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "THEOBALD$", 12
@@ -3710,7 +3710,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "THEOBALD$", 12
@@ -3722,7 +3722,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "THEOBALD$", 12
@@ -3734,7 +3734,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "THEOBALD$", 12
@@ -3746,7 +3746,7 @@ gTrainers:: @ 81F04FC
@ VICKY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "VICKY$", 12
@@ -3758,7 +3758,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "WALTRAUD$", 12
@@ -3770,7 +3770,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "WALTRAUD$", 12
@@ -3782,7 +3782,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "WALTRAUD$", 12
@@ -3794,7 +3794,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "WALTRAUD$", 12
@@ -3806,7 +3806,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "WALTRAUD$", 12
@@ -3818,7 +3818,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ANSGAR$", 12
@@ -3830,7 +3830,7 @@ gTrainers:: @ 81F04FC
@ BILLY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "FRIDOLIN$", 12
@@ -3842,7 +3842,7 @@ gTrainers:: @ 81F04FC
@ JOSH
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "GASTON$", 12
@@ -3854,7 +3854,7 @@ gTrainers:: @ 81F04FC
@ TOMMY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "DOMINIK$", 12
@@ -3866,7 +3866,7 @@ gTrainers:: @ 81F04FC
@ JOEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "LUDGER$", 12
@@ -3878,7 +3878,7 @@ gTrainers:: @ 81F04FC
@ BEN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "EGON$", 12
@@ -3890,7 +3890,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -3902,7 +3902,7 @@ gTrainers:: @ 81F04FC
@ KEVIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "JULIUS$", 12
@@ -3914,7 +3914,7 @@ gTrainers:: @ 81F04FC
@ NEAL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "MORITZ$", 12
@@ -3926,7 +3926,7 @@ gTrainers:: @ 81F04FC
@ DILLON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "SÖNCKE$", 12
@@ -3938,7 +3938,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ANSGAR$", 12
@@ -3950,7 +3950,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ANSGAR$", 12
@@ -3962,7 +3962,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ANSGAR$", 12
@@ -3974,7 +3974,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ANSGAR$", 12
@@ -3986,7 +3986,7 @@ gTrainers:: @ 81F04FC
@ EDDIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "HENRY$", 12
@@ -3998,7 +3998,7 @@ gTrainers:: @ 81F04FC
@ ALLEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "HUGO$", 12
@@ -4010,7 +4010,7 @@ gTrainers:: @ 81F04FC
@ TIMMY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "FRIEDER$", 12
@@ -4022,7 +4022,7 @@ gTrainers:: @ 81F04FC
@ STEVEN
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_CHAMPION
+ .byte TRAINER_CLASS_CHAMPION
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_STEVEN
.string "TROY$", 12
@@ -4034,7 +4034,7 @@ gTrainers:: @ 81F04FC
@ ANDREW
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ANSGAR$", 12
@@ -4046,7 +4046,7 @@ gTrainers:: @ 81F04FC
@ IVAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ANGELO$", 12
@@ -4058,7 +4058,7 @@ gTrainers:: @ 81F04FC
@ CLAUDE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ANSELM$", 12
@@ -4070,7 +4070,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALOIS$", 12
@@ -4082,7 +4082,7 @@ gTrainers:: @ 81F04FC
@ NED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ARTHUR$", 12
@@ -4094,7 +4094,7 @@ gTrainers:: @ 81F04FC
@ DALE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALBIN$", 12
@@ -4106,7 +4106,7 @@ gTrainers:: @ 81F04FC
@ NOLAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "AMADEUS$", 12
@@ -4118,7 +4118,7 @@ gTrainers:: @ 81F04FC
@ BARNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALBRECHT$", 12
@@ -4130,7 +4130,7 @@ gTrainers:: @ 81F04FC
@ WADE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALAIN$", 12
@@ -4142,7 +4142,7 @@ gTrainers:: @ 81F04FC
@ CARTER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ARMIN$", 12
@@ -4154,7 +4154,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALOIS$", 12
@@ -4166,7 +4166,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALOIS$", 12
@@ -4178,7 +4178,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALOIS$", 12
@@ -4190,7 +4190,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALOIS$", 12
@@ -4202,7 +4202,7 @@ gTrainers:: @ 81F04FC
@ RONALD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ACHMED$", 12
@@ -4214,7 +4214,7 @@ gTrainers:: @ 81F04FC
@ JACOB
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "ROMAN$", 12
@@ -4226,7 +4226,7 @@ gTrainers:: @ 81F04FC
@ ANTHONY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "EMIL$", 12
@@ -4238,7 +4238,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "EGIDIUS$", 12
@@ -4250,7 +4250,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "EGIDIUS$", 12
@@ -4262,7 +4262,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "EGIDIUS$", 12
@@ -4274,7 +4274,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "EGIDIUS$", 12
@@ -4286,7 +4286,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "EGIDIUS$", 12
@@ -4298,7 +4298,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "IRMGARD$", 12
@@ -4310,7 +4310,7 @@ gTrainers:: @ 81F04FC
@ JASMINE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "MARTHA$", 12
@@ -4322,7 +4322,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "IRMGARD$", 12
@@ -4334,7 +4334,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "IRMGARD$", 12
@@ -4346,7 +4346,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "IRMGARD$", 12
@@ -4358,7 +4358,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "IRMGARD$", 12
@@ -4370,7 +4370,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "IGOR$", 12
@@ -4382,7 +4382,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "IGOR$", 12
@@ -4394,7 +4394,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "IGOR$", 12
@@ -4406,7 +4406,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "IGOR$", 12
@@ -4418,7 +4418,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "IGOR$", 12
@@ -4430,7 +4430,7 @@ gTrainers:: @ 81F04FC
@ MARIA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "JUTTA$", 12
@@ -4442,7 +4442,7 @@ gTrainers:: @ 81F04FC
@ MARIA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "JUTTA$", 12
@@ -4454,7 +4454,7 @@ gTrainers:: @ 81F04FC
@ MARIA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "JUTTA$", 12
@@ -4466,7 +4466,7 @@ gTrainers:: @ 81F04FC
@ MARIA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "JUTTA$", 12
@@ -4478,7 +4478,7 @@ gTrainers:: @ 81F04FC
@ MARIA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "JUTTA$", 12
@@ -4490,7 +4490,7 @@ gTrainers:: @ 81F04FC
@ CALEB
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "OLEG$", 12
@@ -4502,7 +4502,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "$", 12
@@ -4514,7 +4514,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "KASPAR$", 12
@@ -4526,7 +4526,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "$", 12
@@ -4538,7 +4538,7 @@ gTrainers:: @ 81F04FC
@ CHASE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "FERDINAND$", 12
@@ -4550,7 +4550,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "KASPAR$", 12
@@ -4562,7 +4562,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "KASPAR$", 12
@@ -4574,7 +4574,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "KASPAR$", 12
@@ -4586,7 +4586,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "KASPAR$", 12
@@ -4598,7 +4598,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "$", 12
@@ -4610,7 +4610,7 @@ gTrainers:: @ 81F04FC
@ CONNOR
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "MIRA$", 12
@@ -4622,7 +4622,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "$", 12
@@ -4634,7 +4634,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "MECHTHILD$", 12
@@ -4646,7 +4646,7 @@ gTrainers:: @ 81F04FC
@ ALLISON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "LOTTE$", 12
@@ -4658,7 +4658,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "MECHTHILD$", 12
@@ -4670,7 +4670,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "MECHTHILD$", 12
@@ -4682,7 +4682,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "MECHTHILD$", 12
@@ -4694,7 +4694,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "MECHTHILD$", 12
@@ -4706,7 +4706,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "ALFONS$", 12
@@ -4718,7 +4718,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "ALFONS$", 12
@@ -4730,7 +4730,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "ALFONS$", 12
@@ -4742,7 +4742,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "ALFONS$", 12
@@ -4754,7 +4754,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "ALFONS$", 12
@@ -4766,7 +4766,7 @@ gTrainers:: @ 81F04FC
@ AARON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "EDMUND$", 12
@@ -4778,7 +4778,7 @@ gTrainers:: @ 81F04FC
@ PERRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "JOSCHKA$", 12
@@ -4790,7 +4790,7 @@ gTrainers:: @ 81F04FC
@ HUGH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ENRICO$", 12
@@ -4802,7 +4802,7 @@ gTrainers:: @ 81F04FC
@ PHIL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "HENRY$", 12
@@ -4814,7 +4814,7 @@ gTrainers:: @ 81F04FC
@ JARED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "HIOB$", 12
@@ -4826,7 +4826,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "$", 12
@@ -4838,7 +4838,7 @@ gTrainers:: @ 81F04FC
@ TANNER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ANATOL$", 12
@@ -4850,7 +4850,7 @@ gTrainers:: @ 81F04FC
@ WILL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "BJÖRN$", 12
@@ -4862,7 +4862,7 @@ gTrainers:: @ 81F04FC
@ COLIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "WIM$", 12
@@ -4874,7 +4874,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "FRITJOF$", 12
@@ -4886,7 +4886,7 @@ gTrainers:: @ 81F04FC
@ BENNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "GENADI$", 12
@@ -4898,7 +4898,7 @@ gTrainers:: @ 81F04FC
@ CHESTER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "VITALI$", 12
@@ -4910,7 +4910,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "FRITJOF$", 12
@@ -4922,7 +4922,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "FRITJOF$", 12
@@ -4934,7 +4934,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "FRITJOF$", 12
@@ -4946,7 +4946,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "FRITJOF$", 12
@@ -4958,7 +4958,7 @@ gTrainers:: @ 81F04FC
@ ALEX
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ARNE$", 12
@@ -4970,7 +4970,7 @@ gTrainers:: @ 81F04FC
@ BECK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "VINCENT$", 12
@@ -4982,7 +4982,7 @@ gTrainers:: @ 81F04FC
@ YASU
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "VALENTIN$", 12
@@ -4994,7 +4994,7 @@ gTrainers:: @ 81F04FC
@ TAKASHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "EUGEN$", 12
@@ -5006,7 +5006,7 @@ gTrainers:: @ 81F04FC
@ MAKOTO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "HERIBERT$", 12
@@ -5018,7 +5018,7 @@ gTrainers:: @ 81F04FC
@ HIDEO_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "SAUL$", 12
@@ -5030,7 +5030,7 @@ gTrainers:: @ 81F04FC
@ LAO_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "EDUARD$", 12
@@ -5042,7 +5042,7 @@ gTrainers:: @ 81F04FC
@ LUNG
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "ARND$", 12
@@ -5054,7 +5054,7 @@ gTrainers:: @ 81F04FC
@ LAO_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "EDUARD$", 12
@@ -5066,7 +5066,7 @@ gTrainers:: @ 81F04FC
@ LAO_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "EDUARD$", 12
@@ -5078,7 +5078,7 @@ gTrainers:: @ 81F04FC
@ LAO_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "EDUARD$", 12
@@ -5090,7 +5090,7 @@ gTrainers:: @ 81F04FC
@ LAO_5
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "EDUARD$", 12
@@ -5102,7 +5102,7 @@ gTrainers:: @ 81F04FC
@ TESSA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "TAMARA$", 12
@@ -5114,7 +5114,7 @@ gTrainers:: @ 81F04FC
@ LAURA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "LAURA$", 12
@@ -5126,7 +5126,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "ELFI$", 12
@@ -5138,7 +5138,7 @@ gTrainers:: @ 81F04FC
@ CORA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "THEA$", 12
@@ -5150,7 +5150,7 @@ gTrainers:: @ 81F04FC
@ JILL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "AGNES$", 12
@@ -5162,7 +5162,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "ELFI$", 12
@@ -5174,7 +5174,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "ELFI$", 12
@@ -5186,7 +5186,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "ELFI$", 12
@@ -5198,7 +5198,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "ELFI$", 12
@@ -5210,7 +5210,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "SASKIA$", 12
@@ -5222,7 +5222,7 @@ gTrainers:: @ 81F04FC
@ CLARISSA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "GERDA$", 12
@@ -5234,7 +5234,7 @@ gTrainers:: @ 81F04FC
@ ANGELICA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "MARIKA$", 12
@@ -5246,7 +5246,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "SASKIA$", 12
@@ -5258,7 +5258,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "SASKIA$", 12
@@ -5270,7 +5270,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "SASKIA$", 12
@@ -5282,7 +5282,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "SASKIA$", 12
@@ -5294,7 +5294,7 @@ gTrainers:: @ 81F04FC
@ BEVERLY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DAGMAR$", 12
@@ -5306,7 +5306,7 @@ gTrainers:: @ 81F04FC
@ DAWN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "HEIDRUN$", 12
@@ -5318,7 +5318,7 @@ gTrainers:: @ 81F04FC
@ NICOLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "NICOLE$", 12
@@ -5330,7 +5330,7 @@ gTrainers:: @ 81F04FC
@ DENISE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DENISE$", 12
@@ -5342,7 +5342,7 @@ gTrainers:: @ 81F04FC
@ BETH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ALMUT$", 12
@@ -5354,7 +5354,7 @@ gTrainers:: @ 81F04FC
@ TARA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "SIEGLINDE$", 12
@@ -5366,7 +5366,7 @@ gTrainers:: @ 81F04FC
@ MISSY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MARION$", 12
@@ -5378,7 +5378,7 @@ gTrainers:: @ 81F04FC
@ ALICE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ALICE$", 12
@@ -5390,7 +5390,7 @@ gTrainers:: @ 81F04FC
@ JENNY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MONIKA$", 12
@@ -5402,7 +5402,7 @@ gTrainers:: @ 81F04FC
@ GRACE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ILONA$", 12
@@ -5414,7 +5414,7 @@ gTrainers:: @ 81F04FC
@ TANYA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "EMILIE$", 12
@@ -5426,7 +5426,7 @@ gTrainers:: @ 81F04FC
@ SHARON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "GUDRUN$", 12
@@ -5438,7 +5438,7 @@ gTrainers:: @ 81F04FC
@ NIKKI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ASTRID$", 12
@@ -5450,7 +5450,7 @@ gTrainers:: @ 81F04FC
@ BRENDA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "OTTILIE$", 12
@@ -5462,7 +5462,7 @@ gTrainers:: @ 81F04FC
@ KATIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "SENTA$", 12
@@ -5474,7 +5474,7 @@ gTrainers:: @ 81F04FC
@ SUSIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "JANKA$", 12
@@ -5486,7 +5486,7 @@ gTrainers:: @ 81F04FC
@ KARA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "RENATE$", 12
@@ -5498,7 +5498,7 @@ gTrainers:: @ 81F04FC
@ DANA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "VICKI$", 12
@@ -5510,7 +5510,7 @@ gTrainers:: @ 81F04FC
@ ERIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "REBECCA$", 12
@@ -5522,7 +5522,7 @@ gTrainers:: @ 81F04FC
@ DEBRA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ANJA$", 12
@@ -5534,7 +5534,7 @@ gTrainers:: @ 81F04FC
@ LINDA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "GISELA$", 12
@@ -5546,7 +5546,7 @@ gTrainers:: @ 81F04FC
@ KAYLEE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "PAOLA$", 12
@@ -5558,7 +5558,7 @@ gTrainers:: @ 81F04FC
@ LAUREL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "BIRTE$", 12
@@ -5570,7 +5570,7 @@ gTrainers:: @ 81F04FC
@ DARCY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DOROTHEA$", 12
@@ -5582,7 +5582,7 @@ gTrainers:: @ 81F04FC
@ JENNY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MONIKA$", 12
@@ -5594,7 +5594,7 @@ gTrainers:: @ 81F04FC
@ JENNY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MONIKA$", 12
@@ -5606,7 +5606,7 @@ gTrainers:: @ 81F04FC
@ JENNY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MONIKA$", 12
@@ -5618,7 +5618,7 @@ gTrainers:: @ 81F04FC
@ JENNY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MONIKA$", 12
@@ -5630,7 +5630,7 @@ gTrainers:: @ 81F04FC
@ HEIDI
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "JANA$", 12
@@ -5642,7 +5642,7 @@ gTrainers:: @ 81F04FC
@ BECKY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "HEIDI$", 12
@@ -5654,7 +5654,7 @@ gTrainers:: @ 81F04FC
@ CAROL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "NATALIE$", 12
@@ -5666,7 +5666,7 @@ gTrainers:: @ 81F04FC
@ NANCY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "NANCY$", 12
@@ -5678,7 +5678,7 @@ gTrainers:: @ 81F04FC
@ MARTHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "MARTHA$", 12
@@ -5690,7 +5690,7 @@ gTrainers:: @ 81F04FC
@ DIANA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "GWENDOLIN$", 12
@@ -5702,7 +5702,7 @@ gTrainers:: @ 81F04FC
@ NINA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "NADJA$", 12
@@ -5714,7 +5714,7 @@ gTrainers:: @ 81F04FC
@ IRENE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "IRENE$", 12
@@ -5726,7 +5726,7 @@ gTrainers:: @ 81F04FC
@ DIANA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "GWENDOLIN$", 12
@@ -5738,7 +5738,7 @@ gTrainers:: @ 81F04FC
@ DIANA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "GWENDOLIN$", 12
@@ -5750,7 +5750,7 @@ gTrainers:: @ 81F04FC
@ DIANA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "GWENDOLIN$", 12
@@ -5762,7 +5762,7 @@ gTrainers:: @ 81F04FC
@ DIANA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "GWENDOLIN$", 12
@@ -5774,7 +5774,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "NORA & JO$", 12
@@ -5786,7 +5786,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "NORA & JO$", 12
@@ -5798,7 +5798,7 @@ gTrainers:: @ 81F04FC
@ GINA_AND_MIA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "GINA & MIA$", 12
@@ -5810,7 +5810,7 @@ gTrainers:: @ 81F04FC
@ MIU_AND_YUKI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "LEA & GRIT$", 12
@@ -5822,7 +5822,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "NORA & JO$", 12
@@ -5834,7 +5834,7 @@ gTrainers:: @ 81F04FC
@ GINA_AND_MIA_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "GINA & MIA$", 12
@@ -5846,7 +5846,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "NORA & JO$", 12
@@ -5858,7 +5858,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "NORA & JO$", 12
@@ -5870,7 +5870,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_6
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "NORA & JO$", 12
@@ -5882,7 +5882,7 @@ gTrainers:: @ 81F04FC
@ HUEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "TASSILO$", 12
@@ -5894,7 +5894,7 @@ gTrainers:: @ 81F04FC
@ EDMOND
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "MONTY$", 12
@@ -5906,7 +5906,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ELERT$", 12
@@ -5918,7 +5918,7 @@ gTrainers:: @ 81F04FC
@ DWAYNE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "RETO$", 12
@@ -5930,7 +5930,7 @@ gTrainers:: @ 81F04FC
@ PHILLIP
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "GUNNAR$", 12
@@ -5942,7 +5942,7 @@ gTrainers:: @ 81F04FC
@ LEONARD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "LEONARD$", 12
@@ -5954,7 +5954,7 @@ gTrainers:: @ 81F04FC
@ DUNCAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "PIERRE$", 12
@@ -5966,7 +5966,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ELERT$", 12
@@ -5978,7 +5978,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ELERT$", 12
@@ -5990,7 +5990,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ELERT$", 12
@@ -6002,7 +6002,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ELERT$", 12
@@ -6014,7 +6014,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -6026,7 +6026,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -6038,7 +6038,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_13
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -6050,7 +6050,7 @@ gTrainers:: @ 81F04FC
@ SONNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "WENZEL$", 12
@@ -6062,7 +6062,7 @@ gTrainers:: @ 81F04FC
@ DONOVAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "STANISLAUS$", 12
@@ -6074,7 +6074,7 @@ gTrainers:: @ 81F04FC
@ GERALD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "GERALD$", 12
@@ -6086,7 +6086,7 @@ gTrainers:: @ 81F04FC
@ KELVIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "AARON$", 12
@@ -6098,7 +6098,7 @@ gTrainers:: @ 81F04FC
@ KODY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ALBERT$", 12
@@ -6110,7 +6110,7 @@ gTrainers:: @ 81F04FC
@ TEVIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ANDRE$", 12
@@ -6122,7 +6122,7 @@ gTrainers:: @ 81F04FC
@ DAMON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "AMON$", 12
@@ -6134,7 +6134,7 @@ gTrainers:: @ 81F04FC
@ PABLO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "PABLO$", 12
@@ -6146,7 +6146,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6158,7 +6158,7 @@ gTrainers:: @ 81F04FC
@ HECTOR_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "HEKTOR$", 12
@@ -6170,7 +6170,7 @@ gTrainers:: @ 81F04FC
@ HECTOR_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "HEKTOR$", 12
@@ -6182,7 +6182,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6194,7 +6194,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6206,7 +6206,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6218,7 +6218,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6230,7 +6230,7 @@ gTrainers:: @ 81F04FC
@ WALLY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "HEIKO$", 12
@@ -6242,7 +6242,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6254,7 +6254,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6266,7 +6266,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6278,7 +6278,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6290,7 +6290,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6302,7 +6302,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6314,7 +6314,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6326,7 +6326,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6338,7 +6338,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -6350,7 +6350,7 @@ gTrainers:: @ 81F04FC
@ MAY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6362,7 +6362,7 @@ gTrainers:: @ 81F04FC
@ MAY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6374,7 +6374,7 @@ gTrainers:: @ 81F04FC
@ MAY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6386,7 +6386,7 @@ gTrainers:: @ 81F04FC
@ MAY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6398,7 +6398,7 @@ gTrainers:: @ 81F04FC
@ MAY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6410,7 +6410,7 @@ gTrainers:: @ 81F04FC
@ MAY_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6422,7 +6422,7 @@ gTrainers:: @ 81F04FC
@ MAY_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6434,7 +6434,7 @@ gTrainers:: @ 81F04FC
@ MAY_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6446,7 +6446,7 @@ gTrainers:: @ 81F04FC
@ MAY_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -6458,7 +6458,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "BLASIUS$", 12
@@ -6470,7 +6470,7 @@ gTrainers:: @ 81F04FC
@ RILEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "CLIFF$", 12
@@ -6482,7 +6482,7 @@ gTrainers:: @ 81F04FC
@ AIDAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "DARIO$", 12
@@ -6494,7 +6494,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "BLASIUS$", 12
@@ -6506,7 +6506,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "BLASIUS$", 12
@@ -6518,7 +6518,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "BLASIUS$", 12
@@ -6530,7 +6530,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "BLASIUS$", 12
@@ -6542,7 +6542,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6554,7 +6554,7 @@ gTrainers:: @ 81F04FC
@ ALEXIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "DORIS$", 12
@@ -6566,7 +6566,7 @@ gTrainers:: @ 81F04FC
@ DANIELLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "DUNJA$", 12
@@ -6578,7 +6578,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6590,7 +6590,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6602,7 +6602,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6614,7 +6614,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6626,7 +6626,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "ECKBERT$", 12
@@ -6638,7 +6638,7 @@ gTrainers:: @ 81F04FC
@ CARLOS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "EDWARD$", 12
@@ -6650,7 +6650,7 @@ gTrainers:: @ 81F04FC
@ SEBASTIAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "EILMAR$", 12
@@ -6662,7 +6662,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "ECKBERT$", 12
@@ -6674,7 +6674,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "ECKBERT$", 12
@@ -6686,7 +6686,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "ECKBERT$", 12
@@ -6698,7 +6698,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "ECKBERT$", 12
@@ -6710,7 +6710,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "HANNELORE$", 12
@@ -6722,7 +6722,7 @@ gTrainers:: @ 81F04FC
@ JENNA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "INGEBORG$", 12
@@ -6734,7 +6734,7 @@ gTrainers:: @ 81F04FC
@ SOPHIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "SOPHIA$", 12
@@ -6746,7 +6746,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "HANNELORE$", 12
@@ -6758,7 +6758,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "HANNELORE$", 12
@@ -6770,7 +6770,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "HANNELORE$", 12
@@ -6782,7 +6782,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "HANNELORE$", 12
@@ -6794,7 +6794,7 @@ gTrainers:: @ 81F04FC
@ MAXIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER
+ .byte TRAINER_CLASS_MAGMA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAXIE
.string "MARC$", 12
@@ -6806,7 +6806,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_28
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6818,7 +6818,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_29
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6830,7 +6830,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_30
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6842,7 +6842,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_31
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6854,7 +6854,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_32
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6866,7 +6866,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_33
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6878,7 +6878,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_34
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6890,7 +6890,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_35
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6902,7 +6902,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_36
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6914,7 +6914,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_37
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6926,7 +6926,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_38
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6938,7 +6938,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_39
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6950,7 +6950,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_40
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6962,7 +6962,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_41
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6974,7 +6974,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_42
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6986,7 +6986,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_43
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -6998,7 +6998,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_44
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7010,7 +7010,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_45
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7022,7 +7022,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_46
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7034,7 +7034,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_47
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7046,7 +7046,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_48
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7058,7 +7058,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_49
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7070,7 +7070,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_50
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7082,7 +7082,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_51
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "RÜPEL$", 12
@@ -7094,7 +7094,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_52
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_F
.string "RÜPEL$", 12
@@ -7106,7 +7106,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_53
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_F
.string "RÜPEL$", 12
@@ -7118,7 +7118,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_54
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_F
.string "RÜPEL$", 12
@@ -7130,7 +7130,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_14
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "$", 12
@@ -7142,7 +7142,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_15
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "$", 12
@@ -7154,7 +7154,7 @@ gTrainers:: @ 81F04FC
@ TABITHA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "KALLE$", 12
@@ -7166,7 +7166,7 @@ gTrainers:: @ 81F04FC
@ TABITHA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "KALLE$", 12
@@ -7178,7 +7178,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_16
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "$", 12
@@ -7190,7 +7190,7 @@ gTrainers:: @ 81F04FC
@ COURTNEY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_F
.string "JÖRDIS$", 12
@@ -7202,7 +7202,7 @@ gTrainers:: @ 81F04FC
@ COURTNEY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_F
.string "JÖRDIS$", 12
@@ -7214,7 +7214,7 @@ gTrainers:: @ 81F04FC
@ MAXIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER
+ .byte TRAINER_CLASS_MAGMA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAXIE
.string "MARC$", 12
@@ -7226,7 +7226,7 @@ gTrainers:: @ 81F04FC
@ MAXIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER
+ .byte TRAINER_CLASS_MAGMA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAXIE
.string "MARC$", 12
@@ -7238,7 +7238,7 @@ gTrainers:: @ 81F04FC
@ TIANA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "KARIN$", 12
@@ -7250,7 +7250,7 @@ gTrainers:: @ 81F04FC
@ HALEY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ELISA$", 12
@@ -7262,7 +7262,7 @@ gTrainers:: @ 81F04FC
@ JANICE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "RICARDA$", 12
@@ -7274,7 +7274,7 @@ gTrainers:: @ 81F04FC
@ VIVI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "SIEGLINDE$", 12
@@ -7286,7 +7286,7 @@ gTrainers:: @ 81F04FC
@ HALEY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ELISA$", 12
@@ -7298,7 +7298,7 @@ gTrainers:: @ 81F04FC
@ HALEY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ELISA$", 12
@@ -7310,7 +7310,7 @@ gTrainers:: @ 81F04FC
@ HALEY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ELISA$", 12
@@ -7322,7 +7322,7 @@ gTrainers:: @ 81F04FC
@ HALEY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ELISA$", 12
@@ -7334,7 +7334,7 @@ gTrainers:: @ 81F04FC
@ SALLY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "FREDERIKE$", 12
@@ -7346,7 +7346,7 @@ gTrainers:: @ 81F04FC
@ ROBIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ROBIN$", 12
@@ -7358,7 +7358,7 @@ gTrainers:: @ 81F04FC
@ ANDREA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "FRIEDA$", 12
@@ -7370,7 +7370,7 @@ gTrainers:: @ 81F04FC
@ CRISSY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ADELHEID$", 12
@@ -7382,7 +7382,7 @@ gTrainers:: @ 81F04FC
@ RICK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "BALDUR$", 12
@@ -7394,7 +7394,7 @@ gTrainers:: @ 81F04FC
@ LYLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "DETWIN$", 12
@@ -7406,7 +7406,7 @@ gTrainers:: @ 81F04FC
@ JOSE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "EROS$", 12
@@ -7418,7 +7418,7 @@ gTrainers:: @ 81F04FC
@ DOUG
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "EUSEBIUS$", 12
@@ -7430,7 +7430,7 @@ gTrainers:: @ 81F04FC
@ GREG
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GANGOLF$", 12
@@ -7442,7 +7442,7 @@ gTrainers:: @ 81F04FC
@ KENT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GERIT$", 12
@@ -7454,7 +7454,7 @@ gTrainers:: @ 81F04FC
@ JAMES_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GERNOT$", 12
@@ -7466,7 +7466,7 @@ gTrainers:: @ 81F04FC
@ JAMES_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GERNOT$", 12
@@ -7478,7 +7478,7 @@ gTrainers:: @ 81F04FC
@ JAMES_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GERNOT$", 12
@@ -7490,7 +7490,7 @@ gTrainers:: @ 81F04FC
@ JAMES_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GERNOT$", 12
@@ -7502,7 +7502,7 @@ gTrainers:: @ 81F04FC
@ JAMES_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GERNOT$", 12
@@ -7514,7 +7514,7 @@ gTrainers:: @ 81F04FC
@ BRICE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "GISBERT$", 12
@@ -7526,7 +7526,7 @@ gTrainers:: @ 81F04FC
@ TRENT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "HEIMKE$", 12
@@ -7538,7 +7538,7 @@ gTrainers:: @ 81F04FC
@ LENNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "JANNO$", 12
@@ -7550,7 +7550,7 @@ gTrainers:: @ 81F04FC
@ LUCAS_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "KLODWIG$", 12
@@ -7562,7 +7562,7 @@ gTrainers:: @ 81F04FC
@ ALAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "LANZELOT$", 12
@@ -7574,7 +7574,7 @@ gTrainers:: @ 81F04FC
@ CLARK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "LUZIUS$", 12
@@ -7586,7 +7586,7 @@ gTrainers:: @ 81F04FC
@ ERIC
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "MAURIZIO$", 12
@@ -7598,7 +7598,7 @@ gTrainers:: @ 81F04FC
@ LUCAS_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "KLODWIG$", 12
@@ -7610,7 +7610,7 @@ gTrainers:: @ 81F04FC
@ MIKE_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "MELVIN$", 12
@@ -7622,7 +7622,7 @@ gTrainers:: @ 81F04FC
@ MIKE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "MELVIN$", 12
@@ -7634,7 +7634,7 @@ gTrainers:: @ 81F04FC
@ TRENT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "HEIMKE$", 12
@@ -7646,7 +7646,7 @@ gTrainers:: @ 81F04FC
@ TRENT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "HEIMKE$", 12
@@ -7658,7 +7658,7 @@ gTrainers:: @ 81F04FC
@ TRENT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "HEIMKE$", 12
@@ -7670,7 +7670,7 @@ gTrainers:: @ 81F04FC
@ TRENT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "HEIMKE$", 12
@@ -7682,7 +7682,7 @@ gTrainers:: @ 81F04FC
@ DEZ_AND_LUKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "INA & LEIF$", 12
@@ -7694,7 +7694,7 @@ gTrainers:: @ 81F04FC
@ LEA_AND_JED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LENA & UWE$", 12
@@ -7706,7 +7706,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "GESA & PIT$", 12
@@ -7718,7 +7718,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "GESA & PIT$", 12
@@ -7730,7 +7730,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "GESA & PIT$", 12
@@ -7742,7 +7742,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "GESA & PIT$", 12
@@ -7754,7 +7754,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "GESA & PIT$", 12
@@ -7766,7 +7766,7 @@ gTrainers:: @ 81F04FC
@ JOHANNA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "CORDULA$", 12
@@ -7778,7 +7778,7 @@ gTrainers:: @ 81F04FC
@ ZANE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "OTBERT$", 12
@@ -7790,7 +7790,7 @@ gTrainers:: @ 81F04FC
@ VIVIAN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "BÄRBEL$", 12
@@ -7802,7 +7802,7 @@ gTrainers:: @ 81F04FC
@ SADIE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CHANTAL$", 12
@@ -7814,7 +7814,7 @@ gTrainers:: @ 81F04FC
@ HIDEO_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "SAUL$", 12
@@ -7826,7 +7826,7 @@ gTrainers:: @ 81F04FC
@ KEIGO
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "NELSON$", 12
@@ -7838,7 +7838,7 @@ gTrainers:: @ 81F04FC
@ TSUNAO
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "NIKODEMUS$", 12
@@ -7850,7 +7850,7 @@ gTrainers:: @ 81F04FC
@ TERRELL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "NESTOR$", 12
@@ -7862,7 +7862,7 @@ gTrainers:: @ 81F04FC
@ KYLEE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "MIREILLE$", 12
@@ -7874,7 +7874,7 @@ gTrainers:: @ 81F04FC
@ WALLY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "HEIKO$", 12
@@ -7886,7 +7886,7 @@ gTrainers:: @ 81F04FC
@ WALLY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "HEIKO$", 12
@@ -7898,7 +7898,7 @@ gTrainers:: @ 81F04FC
@ WALLY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "HEIKO$", 12
@@ -7910,7 +7910,7 @@ gTrainers:: @ 81F04FC
@ WALLY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "HEIKO$", 12
@@ -7922,7 +7922,7 @@ gTrainers:: @ 81F04FC
@ WALLY_6
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "HEIKO$", 12
@@ -7934,7 +7934,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -7946,7 +7946,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -7958,7 +7958,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRIX$", 12
@@ -7970,7 +7970,7 @@ gTrainers:: @ 81F04FC
@ MAY_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -7982,7 +7982,7 @@ gTrainers:: @ 81F04FC
@ MAY_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -7994,7 +7994,7 @@ gTrainers:: @ 81F04FC
@ MAY_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAIKE$", 12
@@ -8006,7 +8006,7 @@ gTrainers:: @ 81F04FC
@ JONAH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "OLOF$", 12
@@ -8018,7 +8018,7 @@ gTrainers:: @ 81F04FC
@ HENRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "PIUS$", 12
@@ -8030,7 +8030,7 @@ gTrainers:: @ 81F04FC
@ ROGER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "AMATUS$", 12
@@ -8042,7 +8042,7 @@ gTrainers:: @ 81F04FC
@ ALEXA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "ANNABEL$", 12
@@ -8054,7 +8054,7 @@ gTrainers:: @ 81F04FC
@ RUBEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "TRUTZ$", 12
@@ -8066,7 +8066,7 @@ gTrainers:: @ 81F04FC
@ KOJI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "REMIGIUS$", 12
@@ -8078,7 +8078,7 @@ gTrainers:: @ 81F04FC
@ WAYNE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ALVARO$", 12
@@ -8090,7 +8090,7 @@ gTrainers:: @ 81F04FC
@ BYRON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "AMALRICH$", 12
@@ -8102,7 +8102,7 @@ gTrainers:: @ 81F04FC
@ REED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "ANDOLIN$", 12
@@ -8114,7 +8114,7 @@ gTrainers:: @ 81F04FC
@ TISHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "IMKE$", 12
@@ -8126,7 +8126,7 @@ gTrainers:: @ 81F04FC
@ TORI_AND_TIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "LI & FLO$", 12
@@ -8138,7 +8138,7 @@ gTrainers:: @ 81F04FC
@ KIM_AND_IRIS
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "ZOE & IRIS$", 12
@@ -8150,7 +8150,7 @@ gTrainers:: @ 81F04FC
@ TYRA_AND_IVY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "TYRA & IVY$", 12
@@ -8162,7 +8162,7 @@ gTrainers:: @ 81F04FC
@ MEL_AND_PAUL
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "GELI & OLE$", 12
@@ -8174,7 +8174,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "URS & EVI$", 12
@@ -8186,7 +8186,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "URS & EVI$", 12
@@ -8198,7 +8198,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "URS & EVI$", 12
@@ -8210,7 +8210,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "URS & EVI$", 12
@@ -8222,7 +8222,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "URS & EVI$", 12
@@ -8234,7 +8234,7 @@ gTrainers:: @ 81F04FC
@ RELI_AND_IAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "TOBI & UNA$", 12
@@ -8246,7 +8246,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "TOM & UTA$", 12
@@ -8258,7 +8258,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "TOM & UTA$", 12
@@ -8270,7 +8270,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "TOM & UTA$", 12
@@ -8282,7 +8282,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "TOM & UTA$", 12
@@ -8294,7 +8294,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "TOM & UTA$", 12
@@ -8306,7 +8306,7 @@ gTrainers:: @ 81F04FC
@ LISA_AND_RAY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "ERKO & BEA$", 12
@@ -8318,7 +8318,7 @@ gTrainers:: @ 81F04FC
@ EUGENE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ABELKE$", 12
diff --git a/data/battle_7.s b/data/battle_7.s
new file mode 100644
index 000000000..50fad468a
--- /dev/null
+++ b/data/battle_7.s
@@ -0,0 +1,25 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gUnknown_081FAF24:: @ 81FAF24
+ obj_tiles gEnemyMonShadow_Gfx, 128, 0xD759
+
+ .align 2
+gOamData_81FAF2C:: @ 81FAF2C
+ .2byte 0x4000
+ .2byte 0x4000
+ .2byte 0x0C00
+
+ .align 2
+gSpriteTemplate_81FAF34:: @ 81FAF34
+ spr_template 55129, 55039, gOamData_81FAF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8032978
+
+ .align 2
+gUnknown_081FAF4C:: @ 81FAF4C
+ .4byte gSharedMem + 0x8000
+ .4byte gSharedMem + 0xA000
+ .4byte gSharedMem + 0xC000
+ .4byte gSharedMem + 0xE000
diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s
index 270386359..17b27fae5 100644
--- a/data/battle_ai_scripts.s
+++ b/data/battle_ai_scripts.s
@@ -3,9 +3,9 @@
#include "constants/hold_effects.h"
#include "constants/items.h"
#include "constants/moves.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
- .include "asm/macros/battle_ai_script.inc"
+ .include "include/macros/battle_ai_script.inc"
.section script_data, "aw", %progbits
diff --git a/data/battle_anim.s b/data/battle_anim.s
deleted file mode 100644
index ed880ba77..000000000
--- a/data/battle_anim.s
+++ /dev/null
@@ -1,1051 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gOamData_837DF24:: @ 837DF24
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF2C:: @ 837DF2C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF34:: @ 837DF34
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF3C:: @ 837DF3C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF44:: @ 837DF44
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF4C:: @ 837DF4C
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF54:: @ 837DF54
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF5C:: @ 837DF5C
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF64:: @ 837DF64
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF6C:: @ 837DF6C
- .2byte 0x8000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF74:: @ 837DF74
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF7C:: @ 837DF7C
- .2byte 0x8000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF84:: @ 837DF84
- .2byte 0x0100
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF8C:: @ 837DF8C
- .2byte 0x0100
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF94:: @ 837DF94
- .2byte 0x0100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DF9C:: @ 837DF9C
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFA4:: @ 837DFA4
- .2byte 0x4100
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFAC:: @ 837DFAC
- .2byte 0x4100
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFB4:: @ 837DFB4
- .2byte 0x4100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFBC:: @ 837DFBC
- .2byte 0x4100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFC4:: @ 837DFC4
- .2byte 0x8100
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFCC:: @ 837DFCC
- .2byte 0x8100
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFD4:: @ 837DFD4
- .2byte 0x8100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFDC:: @ 837DFDC
- .2byte 0x8100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFE4:: @ 837DFE4
- .2byte 0x0300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFEC:: @ 837DFEC
- .2byte 0x0300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFF4:: @ 837DFF4
- .2byte 0x0300
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837DFFC:: @ 837DFFC
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837D004:: @ 837D004
- .2byte 0x4300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837D00C:: @ 837D00C
- .2byte 0x4300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E014:: @ 837E014
- .2byte 0x4300
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E01C:: @ 837E01C
- .2byte 0x4300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E024:: @ 837E024
- .2byte 0x8300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E02C:: @ 837E02C
- .2byte 0x8300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E034:: @ 837E034
- .2byte 0x8300
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E03C:: @ 837E03C
- .2byte 0x8300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E044:: @ 837E044
- .2byte 0x0400
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E04C:: @ 837E04C
- .2byte 0x0400
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E054:: @ 837E054
- .2byte 0x0400
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E05C:: @ 837E05C
- .2byte 0x0400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E064:: @ 837E064
- .2byte 0x4400
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E06C:: @ 837E06C
- .2byte 0x4400
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E074:: @ 837E074
- .2byte 0x4400
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E07C:: @ 837E07C
- .2byte 0x4400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E084:: @ 837E084
- .2byte 0x8400
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E08C:: @ 837E08C
- .2byte 0x8400
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E094:: @ 837E094
- .2byte 0x8400
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E09C:: @ 837E09C
- .2byte 0x8400
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0A4:: @ 837E0A4
- .2byte 0x0500
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0AC:: @ 837E0AC
- .2byte 0x0500
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0B4:: @ 837E0B4
- .2byte 0x0500
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0BC:: @ 837E0BC
- .2byte 0x0500
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0C4:: @ 837E0C4
- .2byte 0x4500
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0CC:: @ 837E0CC
- .2byte 0x4500
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0D4:: @ 837E0D4
- .2byte 0x4500
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0DC:: @ 837E0DC
- .2byte 0x4500
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0E4:: @ 837E0E4
- .2byte 0x8500
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0EC:: @ 837E0EC
- .2byte 0x8500
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0F4:: @ 837E0F4
- .2byte 0x8500
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E0FC:: @ 837E0FC
- .2byte 0x8500
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E104:: @ 837E104
- .2byte 0x0700
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E10C:: @ 837E10C
- .2byte 0x0700
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E114:: @ 837E114
- .2byte 0x0700
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E11C:: @ 837E11C
- .2byte 0x0700
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E124:: @ 837E124
- .2byte 0x4700
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E12C:: @ 837E12C
- .2byte 0x4700
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E134:: @ 837E134
- .2byte 0x4700
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E13C:: @ 837E13C
- .2byte 0x4700
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_837E144:: @ 837E144
- .2byte 0x8700
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_837E14C:: @ 837E14C
- .2byte 0x8700
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_837E154:: @ 837E154
- .2byte 0x8700
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_837E15C:: @ 837E15C
- .2byte 0x8700
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gBattleAnimPicTable:: @ 837E164
- obj_tiles gBattleAnimSpriteSheet_000, 0x200, 10000
- obj_tiles gBattleAnimSpriteSheet_001, 0x300, 10001
- obj_tiles gBattleAnimSpriteSheet_002, 0x200, 10002
- obj_tiles gBattleAnimSpriteSheet_003, 0x100, 10003
- obj_tiles gBattleAnimSpriteSheet_004, 0x200, 10004
- obj_tiles gBattleAnimSpriteSheet_005, 0x400, 10005
- obj_tiles gBattleAnimSpriteSheet_006, 0x180, 10006
- obj_tiles gBattleAnimSpriteSheet_007, 0x800, 10007
- obj_tiles gBattleAnimSpriteSheet_008, 0x20, 10008
- obj_tiles gBattleAnimSpriteSheet_009, 0x400, 10009
- obj_tiles gBattleAnimSpriteSheet_010, 0x1200, 10010
- obj_tiles gBattleAnimSpriteSheet_011, 0x180, 10011
- obj_tiles gBattleAnimSpriteSheet_012, 0x80, 10012
- obj_tiles gBattleAnimSpriteSheet_013, 0x80, 10013
- obj_tiles gBattleAnimSpriteSheet_014, 0x280, 10014
- obj_tiles gBattleAnimSpriteSheet_015, 0x80, 10015
- obj_tiles gBattleAnimSpriteSheet_016, 0x100, 10016
- obj_tiles gBattleAnimSpriteSheet_017, 0x20, 10017
- obj_tiles gBattleAnimSpriteSheet_018, 0x80, 10018
- obj_tiles gBattleAnimSpriteSheet_019, 0x400, 10019
- obj_tiles gBattleAnimSpriteSheet_020, 0x200, 10020
- obj_tiles gBattleAnimSpriteSheet_021, 0xA00, 10021
- obj_tiles gBattleAnimSpriteSheet_021, 0xA00, 10022
- obj_tiles gBattleAnimSpriteSheet_023, 0x380, 10023
- obj_tiles gBattleAnimSpriteSheet_024, 0x300, 10024
- obj_tiles gBattleAnimSpriteSheet_025, 0xA00, 10025
- obj_tiles gBattleAnimSpriteSheet_026, 0xA00, 10026
- obj_tiles gBattleAnimSpriteSheet_027, 0xA00, 10027
- obj_tiles gBattleAnimSpriteSheet_028, 0xA00, 10028
- obj_tiles gBattleAnimSpriteSheet_029, 0xA00, 10029
- obj_tiles gBattleAnimSpriteSheet_030, 0xA00, 10030
- obj_tiles gBattleAnimSpriteSheet_031, 0xE00, 10031
- obj_tiles gBattleAnimSpriteSheet_032, 0x380, 10032
- obj_tiles gBattleAnimSpriteSheet_033, 0x1000, 10033
- obj_tiles gBattleAnimSpriteSheet_034, 0x800, 10034
- obj_tiles gBattleAnimSpriteSheet_035, 0xA00, 10035
- obj_tiles gBattleAnimSpriteSheet_036, 0x800, 10036
- obj_tiles gBattleAnimSpriteSheet_037, 0xA00, 10037
- obj_tiles gBattleAnimSpriteSheet_038, 0xA00, 10038
- obj_tiles gBattleAnimSpriteSheet_039, 0xA00, 10039
- obj_tiles gBattleAnimSpriteSheet_040, 0xA00, 10040
- obj_tiles gBattleAnimSpriteSheet_041, 0xA00, 10041
- obj_tiles gBattleAnimSpriteSheet_042, 0xA00, 10042
- obj_tiles gBattleAnimSpriteSheet_043, 0xA00, 10043
- obj_tiles gBattleAnimSpriteSheet_044, 0xA00, 10044
- obj_tiles gBattleAnimSpriteSheet_045, 0xA00, 10045
- obj_tiles gBattleAnimSpriteSheet_046, 0x1000, 10046
- obj_tiles gBattleAnimSpriteSheet_046, 0x1000, 10047
- obj_tiles gBattleAnimSpriteSheet_048, 0x1000, 10048
- obj_tiles gBattleAnimSpriteSheet_048, 0x1000, 10049
- obj_tiles gBattleAnimSpriteSheet_050, 0x200, 10050
- obj_tiles gBattleAnimSpriteSheet_051, 0x200, 10051
- obj_tiles gBattleAnimSpriteSheet_052, 0x200, 10052
- obj_tiles gBattleAnimSpriteSheet_053, 0x800, 10053
- obj_tiles gBattleAnimSpriteSheet_054, 0x80, 10054
- obj_tiles gBattleAnimSpriteSheet_055, 0x200, 10055
- obj_tiles gBattleAnimSpriteSheet_056, 0x1000, 10056
- obj_tiles gBattleAnimSpriteSheet_057, 0x180, 10057
- obj_tiles gBattleAnimSpriteSheet_058, 0xC00, 10058
- obj_tiles gBattleAnimSpriteSheet_059, 0x100, 10059
- obj_tiles gBattleAnimSpriteSheet_060, 0x40, 10060
- obj_tiles gBattleAnimSpriteSheet_061, 0x180, 10061
- obj_tiles gBattleAnimSpriteSheet_062, 0x800, 10062
- obj_tiles gBattleAnimSpriteSheet_063, 0x480, 10063
- obj_tiles gBattleAnimSpriteSheet_064, 0x200, 10064
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10065
- obj_tiles gBattleAnimSpriteSheet_066, 0x100, 10066
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10067
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10068
- obj_tiles gBattleAnimSpriteSheet_065, 0x200, 10069
- obj_tiles gBattleAnimSpriteSheet_070, 0x200, 10070
- obj_tiles gBattleAnimSpriteSheet_071, 0xA00, 10071
- obj_tiles gBattleAnimSpriteSheet_072, 0x300, 10072
- obj_tiles gBattleAnimSpriteSheet_073, 0x180, 10073
- obj_tiles gBattleAnimSpriteSheet_074, 0xA0, 10074
- obj_tiles gBattleAnimSpriteSheet_075, 0x700, 10075
- obj_tiles gBattleAnimSpriteSheet_076, 0x400, 10076
- obj_tiles gBattleAnimSpriteSheet_077, 0x200, 10077
- obj_tiles gBattleAnimSpriteSheet_078, 0x300, 10078
- obj_tiles gBattleAnimSpriteSheet_079, 0xC00, 10079
- obj_tiles gBattleAnimSpriteSheet_080, 0xA00, 10080
- obj_tiles gBattleAnimSpriteSheet_081, 0x80, 10081
- obj_tiles gBattleAnimSpriteSheet_082, 0x40, 10082
- obj_tiles gBattleAnimSpriteSheet_083, 0xE00, 10083
- obj_tiles gBattleAnimSpriteSheet_084, 0xE00, 10084
- obj_tiles gBattleAnimSpriteSheet_085, 0x280, 10085
- obj_tiles gBattleAnimSpriteSheet_086, 0x200, 10086
- obj_tiles gBattleAnimSpriteSheet_087, 0x80, 10087
- obj_tiles gBattleAnimSpriteSheet_088, 0xC0, 10088
- obj_tiles gBattleAnimSpriteSheet_089, 0xA00, 10089
- obj_tiles gBattleAnimSpriteSheet_090, 0x200, 10090
- obj_tiles gBattleAnimSpriteSheet_091, 0x180, 10091
- obj_tiles gBattleAnimSpriteSheet_092, 0x80, 10092
- obj_tiles gBattleAnimSpriteSheet_093, 0x1000, 10093
- obj_tiles gBattleAnimSpriteSheet_094, 0xA00, 10094
- obj_tiles gBattleAnimSpriteSheet_095, 0x180, 10095
- obj_tiles gBattleAnimSpriteSheet_096, 0x380, 10096
- obj_tiles gBattleAnimSpriteSheet_097, 0xC00, 10097
- obj_tiles gBattleAnimSpriteSheet_098, 0x200, 10098
- obj_tiles gBattleAnimSpriteSheet_099, 0x200, 10099
- obj_tiles gBattleAnimSpriteSheet_100, 0x200, 10100
- obj_tiles gBattleAnimSpriteSheet_101, 0x200, 10101
- obj_tiles gBattleAnimSpriteSheet_102, 0x400, 10102
- obj_tiles gBattleAnimSpriteSheet_103, 0x80, 10103
- obj_tiles gBattleAnimSpriteSheet_104, 0x400, 10104
- obj_tiles gBattleAnimSpriteSheet_105, 0xC00, 10105
- obj_tiles gBattleAnimSpriteSheet_106, 0x200, 10106
- obj_tiles gBattleAnimSpriteSheet_107, 0x1000, 10107
- obj_tiles gBattleAnimSpriteSheet_108, 0xA00, 10108
- obj_tiles gBattleAnimSpriteSheet_109, 0x20, 10109
- obj_tiles gBattleAnimSpriteSheet_110, 0xE00, 10110
- obj_tiles gBattleAnimSpriteSheet_111, 0x80, 10111
- obj_tiles gBattleAnimSpriteSheet_112, 0xA00, 10112
- obj_tiles gBattleAnimSpriteSheet_113, 0x400, 10113
- obj_tiles gBattleAnimSpriteSheet_114, 0x200, 10114
- obj_tiles gBattleAnimSpriteSheet_115, 0x700, 10115
- obj_tiles gBattleAnimSpriteSheet_116, 0x800, 10116
- obj_tiles gBattleAnimSpriteSheet_117, 0xA00, 10117
- obj_tiles gBattleAnimSpriteSheet_118, 0x600, 10118
- obj_tiles gBattleAnimSpriteSheet_119, 0x800, 10119
- obj_tiles gBattleAnimSpriteSheet_120, 0x200, 10120
- obj_tiles gBattleAnimSpriteSheet_121, 0x40, 10121
- obj_tiles gBattleAnimSpriteSheet_122, 0x180, 10122
- obj_tiles gBattleAnimSpriteSheet_123, 0x600, 10123
- obj_tiles gBattleAnimSpriteSheet_124, 0x600, 10124
- obj_tiles gBattleAnimSpriteSheet_125, 0x200, 10125
- obj_tiles gBattleAnimSpriteSheet_126, 0x80, 10126
- obj_tiles gBattleAnimSpriteSheet_127, 0x200, 10127
- obj_tiles gBattleAnimSpriteSheet_128, 0x800, 10128
- obj_tiles gBattleAnimSpriteSheet_129, 0x80, 10129
- obj_tiles gBattleAnimSpriteSheet_130, 0xA00, 10130
- obj_tiles gBattleAnimSpriteSheet_131, 0x280, 10131
- obj_tiles gBattleAnimSpriteSheet_132, 0x280, 10132
- obj_tiles gBattleAnimSpriteSheet_133, 0x100, 10133
- obj_tiles gBattleAnimSpriteSheet_134, 0x200, 10134
- obj_tiles gBattleAnimSpriteSheet_135, 0x200, 10135
- obj_tiles gBattleAnimSpriteSheet_136, 0x20, 10136
- obj_tiles gBattleAnimSpriteSheet_137, 0xA00, 10137
- obj_tiles gBattleAnimSpriteSheet_138, 0x800, 10138
- obj_tiles gBattleAnimSpriteSheet_139, 0x800, 10139
- obj_tiles gBattleAnimSpriteSheet_140, 0xC0, 10140
- obj_tiles gBattleAnimSpriteSheet_141, 0x1C0, 10141
- obj_tiles gBattleAnimSpriteSheet_142, 0x100, 10142
- obj_tiles gBattleAnimSpriteSheet_143, 0x800, 10143
- obj_tiles gBattleAnimSpriteSheet_144, 0x200, 10144
- obj_tiles gBattleAnimSpriteSheet_145, 0x800, 10145
- obj_tiles gBattleAnimSpriteSheet_146, 0x180, 10146
- obj_tiles gBattleAnimSpriteSheet_147, 0x180, 10147
- obj_tiles gBattleAnimSpriteSheet_148, 0x200, 10148
- obj_tiles gBattleAnimSpriteSheet_149, 0x200, 10149
- obj_tiles gBattleAnimSpriteSheet_150, 0x180, 10150
- obj_tiles gBattleAnimSpriteSheet_151, 0x400, 10151
- obj_tiles gBattleAnimSpriteSheet_152, 0x80, 10152
- obj_tiles gBattleAnimSpriteSheet_153, 0x100, 10153
- obj_tiles gBattleAnimSpriteSheet_154, 0x100, 10154
- obj_tiles gBattleAnimSpriteSheet_155, 0x140, 10155
- obj_tiles gBattleAnimSpriteSheet_156, 0x800, 10156
- obj_tiles gBattleAnimSpriteSheet_157, 0x200, 10157
- obj_tiles gBattleAnimSpriteSheet_158, 0x100, 10158
- obj_tiles gBattleAnimSpriteSheet_159, 0xA0, 10159
- obj_tiles gBattleAnimSpriteSheet_160, 0x100, 10160
- obj_tiles gBattleAnimSpriteSheet_161, 0x80, 10161
- obj_tiles gBattleAnimSpriteSheet_162, 0x300, 10162
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10163
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10164
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10165
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10166
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10167
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10168
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10169
- obj_tiles gBattleAnimSpriteSheet_166, 0x800, 10170
- obj_tiles gBattleAnimSpriteSheet_171, 0x80, 10171
- obj_tiles gBattleAnimSpriteSheet_144, 0x200, 10172
- obj_tiles gBattleAnimSpriteSheet_173, 0x200, 10173
- obj_tiles gBattleAnimSpriteSheet_174, 0x200, 10174
- obj_tiles gBattleAnimSpriteSheet_175, 0x80, 10175
- obj_tiles gBattleAnimSpriteSheet_176, 0x200, 10176
- obj_tiles gBattleAnimSpriteSheet_177, 0x500, 10177
- obj_tiles gBattleAnimSpriteSheet_178, 0x800, 10178
- obj_tiles gBattleAnimSpriteSheet_179, 0x400, 10179
- obj_tiles gBattleAnimSpriteSheet_180, 0x20, 10180
- obj_tiles gBattleAnimSpriteSheet_181, 0x800, 10181
- obj_tiles gBattleAnimSpriteSheet_182, 0x100, 10182
- obj_tiles gBattleAnimSpriteSheet_183, 0x800, 10183
- obj_tiles gBattleAnimSpriteSheet_184, 0x400, 10184
- obj_tiles gBattleAnimSpriteSheet_185, 0xA00, 10185
- obj_tiles gBattleAnimSpriteSheet_186, 0x1000, 10186
- obj_tiles gBattleAnimSpriteSheet_187, 0x800, 10187
- obj_tiles gBattleAnimSpriteSheet_188, 0x400, 10188
- obj_tiles gBattleAnimSpriteSheet_189, 0x200, 10189
- obj_tiles gBattleAnimSpriteSheet_190, 0x800, 10190
- obj_tiles gBattleAnimSpriteSheet_191, 0x800, 10191
- obj_tiles gBattleAnimSpriteSheet_192, 0x800, 10192
- obj_tiles gBattleAnimSpriteSheet_193, 0x200, 10193
- obj_tiles gBattleAnimSpriteSheet_194, 0x800, 10194
- obj_tiles gBattleAnimSpriteSheet_195, 0x200, 10195
- obj_tiles gBattleAnimSpriteSheet_196, 0x800, 10196
- obj_tiles gBattleAnimSpriteSheet_197, 0x200, 10197
- obj_tiles gBattleAnimSpriteSheet_198, 0x800, 10198
- obj_tiles gBattleAnimSpriteSheet_199, 0x400, 10199
- obj_tiles gBattleAnimSpriteSheet_200, 0x200, 10200
- obj_tiles gBattleAnimSpriteSheet_201, 0xA80, 10201
- obj_tiles gBattleAnimSpriteSheet_202, 0x600, 10202
- obj_tiles gBattleAnimSpriteSheet_203, 0x800, 10203
- obj_tiles gBattleAnimSpriteSheet_204, 0x200, 10204
- obj_tiles gBattleAnimSpriteSheet_205, 0x600, 10205
- obj_tiles gBattleAnimSpriteSheet_206, 0x800, 10206
- obj_tiles gBattleAnimSpriteSheet_207, 0x180, 10207
- obj_tiles gBattleAnimSpriteSheet_208, 0x800, 10208
- obj_tiles gBattleAnimSpriteSheet_209, 0x800, 10209
- obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10210
- obj_tiles gBattleAnimSpriteSheet_211, 0x80, 10211
- obj_tiles gBattleAnimSpriteSheet_212, 0x800, 10212
- obj_tiles gBattleAnimSpriteSheet_213, 0x800, 10213
- obj_tiles gBattleAnimSpriteSheet_214, 0x600, 10214
- obj_tiles gBattleAnimSpriteSheet_215, 0x600, 10215
- obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10216
- obj_tiles gBattleAnimSpriteSheet_217, 0x80, 10217
- obj_tiles gBattleAnimSpriteSheet_218, 0x180, 10218
- obj_tiles gBattleAnimSpriteSheet_210, 0x80, 10219
- obj_tiles gBattleAnimSpriteSheet_220, 0x200, 10220
- obj_tiles gBattleAnimSpriteSheet_221, 0x400, 10221
- obj_tiles gBattleAnimSpriteSheet_222, 0xA00, 10222
- obj_tiles gBattleAnimSpriteSheet_223, 0x800, 10223
- obj_tiles gBattleAnimSpriteSheet_224, 0x200, 10224
- obj_tiles gBattleAnimSpriteSheet_225, 0x400, 10225
- obj_tiles gBattleAnimSpriteSheet_226, 0x80, 10226
- obj_tiles gBattleAnimSpriteSheet_227, 0x800, 10227
- obj_tiles gBattleAnimSpriteSheet_228, 0x200, 10228
- obj_tiles gBattleAnimSpriteSheet_229, 0x300, 10229
- obj_tiles gBattleAnimSpriteSheet_230, 0x800, 10230
- obj_tiles gBattleAnimSpriteSheet_231, 0x380, 10231
- obj_tiles gBattleAnimSpriteSheet_232, 0x800, 10232
- obj_tiles gBattleAnimSpriteSheet_233, 0xC0, 10233
- obj_tiles gBattleAnimSpriteSheet_234, 0x800, 10234
- obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10235
- obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10236
- obj_tiles gBattleAnimSpriteSheet_235, 0x60, 10237
- obj_tiles gBattleAnimSpriteSheet_238, 0x80, 10238
- obj_tiles gBattleAnimSpriteSheet_239, 0x180, 10239
- obj_tiles gBattleAnimSpriteSheet_240, 0x180, 10240
- obj_tiles gBattleAnimSpriteSheet_241, 0x200, 10241
- obj_tiles gBattleAnimSpriteSheet_242, 0x200, 10242
- obj_tiles gBattleAnimSpriteSheet_243, 0x20, 10243
- obj_tiles gBattleAnimSpriteSheet_244, 0x400, 10244
- obj_tiles gBattleAnimSpriteSheet_245, 0x600, 10245
- obj_tiles gBattleAnimSpriteSheet_246, 0x1000, 10246
- obj_tiles gBattleAnimSpriteSheet_247, 0x400, 10247
- obj_tiles gBattleAnimSpriteSheet_248, 0x20, 10248
- obj_tiles gBattleAnimSpriteSheet_249, 0x80, 10249
- obj_tiles gBattleAnimSpriteSheet_250, 0x800, 10250
- obj_tiles gBattleAnimSpriteSheet_251, 0x80, 10251
- obj_tiles gBattleAnimSpriteSheet_252, 0x200, 10252
- obj_tiles gBattleAnimSpriteSheet_253, 0x400, 10253
- obj_tiles gBattleAnimSpriteSheet_254, 0x200, 10254
- obj_tiles gBattleAnimSpriteSheet_255, 0x200, 10255
- obj_tiles gBattleAnimSpriteSheet_256, 0x800, 10256
- obj_tiles gBattleAnimSpriteSheet_257, 0x280, 10257
- obj_tiles gBattleAnimSpriteSheet_258, 0x200, 10258
- obj_tiles gBattleAnimSpriteSheet_149, 0x200, 10259
- obj_tiles gBattleAnimSpriteSheet_260, 0x400, 10260
- obj_tiles gBattleAnimSpriteSheet_261, 0x200, 10261
- obj_tiles gBattleAnimSpriteSheet_262, 0x200, 10262
- obj_tiles gBattleAnimSpriteSheet_263, 0x80, 10263
- obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10264
- obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10265
- obj_tiles gBattleAnimSpriteSheet_266, 0x80, 10266
- obj_tiles gBattleAnimSpriteSheet_212, 0x800, 10267
- obj_tiles gBattleAnimSpriteSheet_264, 0x20, 10268
- obj_tiles gBattleAnimSpriteSheet_269, 0x80, 10269
- obj_tiles gBattleAnimSpriteSheet_270, 0x400, 10270
- obj_tiles gBattleAnimSpriteSheet_271, 0x80, 10271
- obj_tiles gBattleAnimSpriteSheet_272, 0x800, 10272
- obj_tiles gBattleAnimSpriteSheet_273, 0x20, 10273
- obj_tiles gBattleAnimSpriteSheet_274, 0x800, 10274
- obj_tiles gBattleAnimSpriteSheet_275, 0x800, 10275
- obj_tiles gBattleAnimSpriteSheet_276, 0x800, 10276
- obj_tiles gBattleAnimSpriteSheet_277, 0x1000, 10277
- obj_tiles gBattleAnimSpriteSheet_278, 0x800, 10278
- obj_tiles gBattleAnimSpriteSheet_279, 0xA0, 10279
- obj_tiles gBattleAnimSpriteSheet_280, 0x800, 10280
- obj_tiles gBattleAnimSpriteSheet_281, 0x200, 10281
- obj_tiles gBattleAnimSpriteSheet_282, 0x600, 10282
- obj_tiles gBattleAnimSpriteSheet_283, 0x200, 10283
- obj_tiles gBattleAnimSpriteSheet_284, 0x800, 10284
- obj_tiles gBattleAnimSpriteSheet_285, 0x200, 10285
- obj_tiles gBattleAnimSpriteSheet_183, 0x800, 10286
- obj_tiles gBattleAnimSpriteSheet_056, 0x1000, 10287
- obj_tiles gBattleAnimSpriteSheet_163, 0x100, 10288
-
- .align 2
-gBattleAnimPaletteTable:: @ 837EA6C
- obj_pal gBattleAnimSpritePalette_000, 10000
- obj_pal gBattleAnimSpritePalette_001, 10001
- obj_pal gBattleAnimSpritePalette_002, 10002
- obj_pal gBattleAnimSpritePalette_003, 10003
- obj_pal gBattleAnimSpritePalette_004, 10004
- obj_pal gBattleAnimSpritePalette_005, 10005
- obj_pal gBattleAnimSpritePalette_006, 10006
- obj_pal gBattleAnimSpritePalette_007, 10007
- obj_pal gBattleAnimSpritePalette_008, 10008
- obj_pal gBattleAnimSpritePalette_009, 10009
- obj_pal gBattleAnimSpritePalette_010, 10010
- obj_pal gBattleAnimSpritePalette_011, 10011
- obj_pal gBattleAnimSpritePalette_012, 10012
- obj_pal gBattleAnimSpritePalette_013, 10013
- obj_pal gBattleAnimSpritePalette_014, 10014
- obj_pal gBattleAnimSpritePalette_015, 10015
- obj_pal gBattleAnimSpritePalette_016, 10016
- obj_pal gBattleAnimSpritePalette_016, 10017
- obj_pal gBattleAnimSpritePalette_018, 10018
- obj_pal gBattleAnimSpritePalette_019, 10019
- obj_pal gBattleAnimSpritePalette_020, 10020
- obj_pal gBattleAnimSpritePalette_021, 10021
- obj_pal gBattleAnimSpritePalette_022, 10022
- obj_pal gBattleAnimSpritePalette_023, 10023
- obj_pal gBattleAnimSpritePalette_024, 10024
- obj_pal gBattleAnimSpritePalette_025, 10025
- obj_pal gBattleAnimSpritePalette_026, 10026
- obj_pal gBattleAnimSpritePalette_027, 10027
- obj_pal gBattleAnimSpritePalette_028, 10028
- obj_pal gBattleAnimSpritePalette_029, 10029
- obj_pal gBattleAnimSpritePalette_030, 10030
- obj_pal gBattleAnimSpritePalette_031, 10031
- obj_pal gBattleAnimSpritePalette_032, 10032
- obj_pal gBattleAnimSpritePalette_033, 10033
- obj_pal gBattleAnimSpritePalette_033, 10034
- obj_pal gBattleAnimSpritePalette_033, 10035
- obj_pal gBattleAnimSpritePalette_036, 10036
- obj_pal gBattleAnimSpritePalette_036, 10037
- obj_pal gBattleAnimSpritePalette_038, 10038
- obj_pal gBattleAnimSpritePalette_039, 10039
- obj_pal gBattleAnimSpritePalette_038, 10040
- obj_pal gBattleAnimSpritePalette_038, 10041
- obj_pal gBattleAnimSpritePalette_042, 10042
- obj_pal gBattleAnimSpritePalette_043, 10043
- obj_pal gBattleAnimSpritePalette_044, 10044
- obj_pal gBattleAnimSpritePalette_045, 10045
- obj_pal gBattleAnimSpritePalette_046, 10046
- obj_pal gBattleAnimSpritePalette_047, 10046
- obj_pal gBattleAnimSpritePalette_048, 10048
- obj_pal gBattleAnimSpritePalette_049, 10049
- obj_pal gBattleAnimSpritePalette_050, 10050
- obj_pal gBattleAnimSpritePalette_050, 10051
- obj_pal gBattleAnimSpritePalette_050, 10052
- obj_pal gBattleAnimSpritePalette_026, 10053
- obj_pal gBattleAnimSpritePalette_054, 10054
- obj_pal gBattleAnimSpritePalette_050, 10055
- obj_pal gBattleAnimSpritePalette_056, 10056
- obj_pal gBattleAnimSpritePalette_057, 10057
- obj_pal gBattleAnimSpritePalette_058, 10058
- obj_pal gBattleAnimSpritePalette_059, 10059
- obj_pal gBattleAnimSpritePalette_060, 10060
- obj_pal gBattleAnimSpritePalette_061, 10061
- obj_pal gBattleAnimSpritePalette_062, 10062
- obj_pal gBattleAnimSpritePalette_063, 10063
- obj_pal gBattleAnimSpritePalette_064, 10064
- obj_pal gBattleAnimSpritePalette_065, 10065
- obj_pal gBattleAnimSpritePalette_066, 10066
- obj_pal gBattleAnimSpritePalette_067, 10067
- obj_pal gBattleAnimSpritePalette_068, 10068
- obj_pal gBattleAnimSpritePalette_065, 10069
- obj_pal gBattleAnimSpritePalette_070, 10070
- obj_pal gBattleAnimSpritePalette_070, 10071
- obj_pal gBattleAnimSpritePalette_072, 10072
- obj_pal gBattleAnimSpritePalette_073, 10073
- obj_pal gBattleAnimSpritePalette_074, 10074
- obj_pal gBattleAnimSpritePalette_075, 10075
- obj_pal gBattleAnimSpritePalette_076, 10076
- obj_pal gBattleAnimSpritePalette_076, 10077
- obj_pal gBattleAnimSpritePalette_078, 10078
- obj_pal gBattleAnimSpritePalette_078, 10079
- obj_pal gBattleAnimSpritePalette_080, 10080
- obj_pal gBattleAnimSpritePalette_081, 10081
- obj_pal gBattleAnimSpritePalette_082, 10082
- obj_pal gBattleAnimSpritePalette_083, 10083
- obj_pal gBattleAnimSpritePalette_084, 10084
- obj_pal gBattleAnimSpritePalette_085, 10085
- obj_pal gBattleAnimSpritePalette_086, 10086
- obj_pal gBattleAnimSpritePalette_087, 10087
- obj_pal gBattleAnimSpritePalette_088, 10088
- obj_pal gBattleAnimSpritePalette_089, 10089
- obj_pal gBattleAnimSpritePalette_090, 10090
- obj_pal gBattleAnimSpritePalette_091, 10091
- obj_pal gBattleAnimSpritePalette_092, 10092
- obj_pal gBattleAnimSpritePalette_093, 10093
- obj_pal gBattleAnimSpritePalette_094, 10094
- obj_pal gBattleAnimSpritePalette_095, 10095
- obj_pal gBattleAnimSpritePalette_096, 10096
- obj_pal gBattleAnimSpritePalette_097, 10097
- obj_pal gBattleAnimSpritePalette_094, 10098
- obj_pal gBattleAnimSpritePalette_099, 10099
- obj_pal gBattleAnimSpritePalette_100, 10100
- obj_pal gBattleAnimSpritePalette_101, 10101
- obj_pal gBattleAnimSpritePalette_101, 10102
- obj_pal gBattleAnimSpritePalette_103, 10103
- obj_pal gBattleAnimSpritePalette_104, 10104
- obj_pal gBattleAnimSpritePalette_105, 10105
- obj_pal gBattleAnimSpritePalette_105, 10106
- obj_pal gBattleAnimSpritePalette_107, 10107
- obj_pal gBattleAnimSpritePalette_107, 10108
- obj_pal gBattleAnimSpritePalette_109, 10109
- obj_pal gBattleAnimSpritePalette_109, 10110
- obj_pal gBattleAnimSpritePalette_111, 10111
- obj_pal gBattleAnimSpritePalette_112, 10112
- obj_pal gBattleAnimSpritePalette_113, 10113
- obj_pal gBattleAnimSpritePalette_114, 10114
- obj_pal gBattleAnimSpritePalette_115, 10115
- obj_pal gBattleAnimSpritePalette_116, 10116
- obj_pal gBattleAnimSpritePalette_117, 10117
- obj_pal gBattleAnimSpritePalette_118, 10118
- obj_pal gBattleAnimSpritePalette_119, 10119
- obj_pal gBattleAnimSpritePalette_120, 10120
- obj_pal gBattleAnimSpritePalette_121, 10121
- obj_pal gBattleAnimSpritePalette_122, 10122
- obj_pal gBattleAnimSpritePalette_122, 10123
- obj_pal gBattleAnimSpritePalette_124, 10124
- obj_pal gBattleAnimSpritePalette_125, 10125
- obj_pal gBattleAnimSpritePalette_126, 10126
- obj_pal gBattleAnimSpritePalette_127, 10127
- obj_pal gBattleAnimSpritePalette_128, 10128
- obj_pal gBattleAnimSpritePalette_128, 10129
- obj_pal gBattleAnimSpritePalette_130, 10130
- obj_pal gBattleAnimSpritePalette_130, 10131
- obj_pal gBattleAnimSpritePalette_132, 10132
- obj_pal gBattleAnimSpritePalette_133, 10133
- obj_pal gBattleAnimSpritePalette_133, 10134
- obj_pal gBattleAnimSpritePalette_135, 10135
- obj_pal gBattleAnimSpritePalette_136, 10136
- obj_pal gBattleAnimSpritePalette_135, 10137
- obj_pal gBattleAnimSpritePalette_135, 10138
- obj_pal gBattleAnimSpritePalette_139, 10139
- obj_pal gBattleAnimSpritePalette_140, 10140
- obj_pal gBattleAnimSpritePalette_141, 10141
- obj_pal gBattleAnimSpritePalette_141, 10142
- obj_pal gBattleAnimSpritePalette_143, 10143
- obj_pal gBattleAnimSpritePalette_144, 10144
- obj_pal gBattleAnimSpritePalette_139, 10145
- obj_pal gBattleAnimSpritePalette_115, 10146
- obj_pal gBattleAnimSpritePalette_147, 10147
- obj_pal gBattleAnimSpritePalette_148, 10148
- obj_pal gBattleAnimSpritePalette_148, 10149
- obj_pal gBattleAnimSpritePalette_150, 10150
- obj_pal gBattleAnimSpritePalette_150, 10151
- obj_pal gBattleAnimSpritePalette_152, 10152
- obj_pal gBattleAnimSpritePalette_153, 10153
- obj_pal gBattleAnimSpritePalette_154, 10154
- obj_pal gBattleAnimSpritePalette_155, 10155
- obj_pal gBattleAnimSpritePalette_156, 10156
- obj_pal gBattleAnimSpritePalette_157, 10157
- obj_pal gBattleAnimSpritePalette_158, 10158
- obj_pal gBattleAnimSpritePalette_159, 10159
- obj_pal gBattleAnimSpritePalette_160, 10160
- obj_pal gBattleAnimSpritePalette_161, 10161
- obj_pal gBattleAnimSpritePalette_162, 10162
- obj_pal gBattleAnimSpritePalette_163, 10163
- obj_pal gBattleAnimSpritePalette_164, 10164
- obj_pal gBattleAnimSpritePalette_165, 10165
- obj_pal gBattleAnimSpritePalette_166, 10166
- obj_pal gBattleAnimSpritePalette_167, 10167
- obj_pal gBattleAnimSpritePalette_168, 10168
- obj_pal gBattleAnimSpritePalette_169, 10169
- obj_pal gBattleAnimSpritePalette_170, 10170
- obj_pal gBattleAnimSpritePalette_171, 10171
- obj_pal gBattleAnimSpritePalette_172, 10172
- obj_pal gBattleAnimSpritePalette_001, 10173
- obj_pal gBattleAnimSpritePalette_174, 10174
- obj_pal gBattleAnimSpritePalette_175, 10175
- obj_pal gBattleAnimSpritePalette_176, 10176
- obj_pal gBattleAnimSpritePalette_177, 10177
- obj_pal gBattleAnimSpritePalette_178, 10178
- obj_pal gBattleAnimSpritePalette_179, 10179
- obj_pal gBattleAnimSpritePalette_179, 10180
- obj_pal gBattleAnimSpritePalette_179, 10181
- obj_pal gBattleAnimSpritePalette_182, 10182
- obj_pal gBattleAnimSpritePalette_183, 10183
- obj_pal gBattleAnimSpritePalette_184, 10184
- obj_pal gBattleAnimSpritePalette_185, 10185
- obj_pal gBattleAnimSpritePalette_186, 10186
- obj_pal gBattleAnimSpritePalette_187, 10187
- obj_pal gBattleAnimSpritePalette_188, 10188
- obj_pal gBattleAnimSpritePalette_189, 10189
- obj_pal gBattleAnimSpritePalette_190, 10190
- obj_pal gBattleAnimSpritePalette_191, 10191
- obj_pal gBattleAnimSpritePalette_192, 10192
- obj_pal gBattleAnimSpritePalette_193, 10193
- obj_pal gBattleAnimSpritePalette_194, 10194
- obj_pal gBattleAnimSpritePalette_195, 10195
- obj_pal gBattleAnimSpritePalette_196, 10196
- obj_pal gBattleAnimSpritePalette_197, 10197
- obj_pal gBattleAnimSpritePalette_198, 10198
- obj_pal gBattleAnimSpritePalette_199, 10199
- obj_pal gBattleAnimSpritePalette_200, 10200
- obj_pal gBattleAnimSpritePalette_201, 10201
- obj_pal gBattleAnimSpritePalette_202, 10202
- obj_pal gBattleAnimSpritePalette_203, 10203
- obj_pal gBattleAnimSpritePalette_204, 10204
- obj_pal gBattleAnimSpritePalette_205, 10205
- obj_pal gBattleAnimSpritePalette_206, 10206
- obj_pal gBattleAnimSpritePalette_207, 10207
- obj_pal gBattleAnimSpritePalette_167, 10208
- obj_pal gBattleAnimSpritePalette_209, 10209
- obj_pal gBattleAnimSpritePalette_210, 10210
- obj_pal gBattleAnimSpritePalette_211, 10211
- obj_pal gBattleAnimSpritePalette_211, 10212
- obj_pal gBattleAnimSpritePalette_211, 10213
- obj_pal gBattleAnimSpritePalette_064, 10214
- obj_pal gBattleAnimSpritePalette_215, 10215
- obj_pal gBattleAnimSpritePalette_216, 10216
- obj_pal gBattleAnimSpritePalette_217, 10217
- obj_pal gBattleAnimSpritePalette_218, 10218
- obj_pal gBattleAnimSpritePalette_219, 10219
- obj_pal gBattleAnimSpritePalette_220, 10220
- obj_pal gBattleAnimSpritePalette_221, 10221
- obj_pal gBattleAnimSpritePalette_222, 10222
- obj_pal gBattleAnimSpritePalette_223, 10223
- obj_pal gBattleAnimSpritePalette_224, 10224
- obj_pal gBattleAnimSpritePalette_225, 10225
- obj_pal gBattleAnimSpritePalette_226, 10226
- obj_pal gBattleAnimSpritePalette_226, 10227
- obj_pal gBattleAnimSpritePalette_228, 10228
- obj_pal gBattleAnimSpritePalette_229, 10229
- obj_pal gBattleAnimSpritePalette_230, 10230
- obj_pal gBattleAnimSpritePalette_231, 10231
- obj_pal gBattleAnimSpritePalette_231, 10232
- obj_pal gBattleAnimSpritePalette_233, 10233
- obj_pal gBattleAnimSpritePalette_234, 10234
- obj_pal gBattleAnimSpritePalette_235, 10235
- obj_pal gBattleAnimSpritePalette_236, 10236
- obj_pal gBattleAnimSpritePalette_237, 10237
- obj_pal gBattleAnimSpritePalette_238, 10238
- obj_pal gBattleAnimSpritePalette_239, 10239
- obj_pal gBattleAnimSpritePalette_240, 10240
- obj_pal gBattleAnimSpritePalette_241, 10241
- obj_pal gBattleAnimSpritePalette_242, 10242
- obj_pal gBattleAnimSpritePalette_243, 10243
- obj_pal gBattleAnimSpritePalette_244, 10244
- obj_pal gBattleAnimSpritePalette_245, 10245
- obj_pal gBattleAnimSpritePalette_245, 10246
- obj_pal gBattleAnimSpritePalette_064, 10247
- obj_pal gBattleAnimSpritePalette_248, 10248
- obj_pal gBattleAnimSpritePalette_249, 10249
- obj_pal gBattleAnimSpritePalette_249, 10250
- obj_pal gBattleAnimSpritePalette_251, 10251
- obj_pal gBattleAnimSpritePalette_252, 10252
- obj_pal gBattleAnimSpritePalette_253, 10253
- obj_pal gBattleAnimSpritePalette_254, 10254
- obj_pal gBattleAnimSpritePalette_255, 10255
- obj_pal gBattleAnimSpritePalette_256, 10256
- obj_pal gBattleAnimSpritePalette_257, 10257
- obj_pal gBattleAnimSpritePalette_258, 10258
- obj_pal gBattleAnimSpritePalette_259, 10259
- obj_pal gBattleAnimSpritePalette_260, 10260
- obj_pal gBattleAnimSpritePalette_261, 10261
- obj_pal gBattleAnimSpritePalette_262, 10262
- obj_pal gBattleAnimSpritePalette_263, 10263
- obj_pal gBattleAnimSpritePalette_264, 10264
- obj_pal gBattleAnimSpritePalette_265, 10265
- obj_pal gBattleAnimSpritePalette_266, 10266
- obj_pal gBattleAnimSpritePalette_267, 10267
- obj_pal gBattleAnimSpritePalette_268, 10268
- obj_pal gBattleAnimSpritePalette_269, 10269
- obj_pal gBattleAnimSpritePalette_270, 10270
- obj_pal gBattleAnimSpritePalette_271, 10271
- obj_pal gBattleAnimSpritePalette_272, 10272
- obj_pal gBattleAnimSpritePalette_272, 10273
- obj_pal gBattleAnimSpritePalette_274, 10274
- obj_pal gBattleAnimSpritePalette_274, 10275
- obj_pal gBattleAnimSpritePalette_274, 10276
- obj_pal gBattleAnimSpritePalette_277, 10277
- obj_pal gBattleAnimSpritePalette_278, 10278
- obj_pal gBattleAnimSpritePalette_279, 10279
- obj_pal gBattleAnimSpritePalette_280, 10280
- obj_pal gBattleAnimSpritePalette_281, 10281
- obj_pal gBattleAnimSpritePalette_282, 10282
- obj_pal gBattleAnimSpritePalette_283, 10283
- obj_pal gBattleAnimSpritePalette_284, 10284
- obj_pal gBattleAnimSpritePalette_285, 10285
- obj_pal gBattleAnimSpritePalette_286, 10286
- obj_pal gBattleAnimSpritePalette_287, 10287
- obj_pal gBattleAnimSpritePalette_288, 10288
-
- .align 2
-gBattleAnimBackgroundTable:: @ 837F374
- .4byte gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00
- .4byte gBattleAnimBackgroundImage_00, gBattleAnimBackgroundPalette_00, gBattleAnimBackgroundTilemap_00
- .4byte gBattleAnimBackgroundImage_02, gBattleAnimBackgroundPalette_02, gBattleAnimBackgroundTilemap_02
- .4byte gBattleAnimBackgroundImage_03, gBattleAnimBackgroundPalette_03, gBattleAnimBackgroundTilemap_03
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_04
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_05
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_04, gBattleAnimBackgroundTilemap_06
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_07
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_07, gBattleAnimBackgroundTilemap_08
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_09
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_09, gBattleAnimBackgroundTilemap_10
- .4byte gBattleAnimBackgroundImage_11, gBattleAnimBackgroundPalette_11, gBattleAnimBackgroundTilemap_11
- .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_12
- .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_13
- .4byte gBattleAnimBackgroundImage_12, gBattleAnimBackgroundPalette_12, gBattleAnimBackgroundTilemap_14
- .4byte gBattleAnimBackgroundImage_15, gBattleAnimBackgroundPalette_15, gBattleAnimBackgroundTilemap_15
- .4byte gBattleAnimBackgroundImage_16, gBattleAnimBackgroundPalette_16, gBattleAnimBackgroundTilemap_16
- .4byte gBattleAnimBackgroundImage_17, gBattleAnimBackgroundPalette_17, gBattleAnimBackgroundTilemap_17
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_07
- .4byte gBattleAnimBackgroundImage_07, gBattleAnimBackgroundPalette_18, gBattleAnimBackgroundTilemap_08
- .4byte gBattleAnimBackgroundImage_20, gBattleAnimBackgroundPalette_20, gBattleAnimBackgroundTilemap_20
- .4byte gBattleAnimBackgroundImage_21, gBattleAnimBackgroundPalette_21, gBattleAnimBackgroundTilemap_21
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_09
- .4byte gBattleAnimBackgroundImage_09, gBattleAnimBackgroundPalette_22, gBattleAnimBackgroundTilemap_10
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_04
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_05
- .4byte gBattleAnimBackgroundImage_04, gBattleAnimBackgroundPalette_24, gBattleAnimBackgroundTilemap_06
-
diff --git a/data/battle_anim_80A7E7C.s b/data/battle_anim_80A7E7C.s
deleted file mode 100644
index d7da20315..000000000
--- a/data/battle_anim_80A7E7C.s
+++ /dev/null
@@ -1,24 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FB0:: @ 83C1FB0
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8530
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FC8:: @ 83C1FC8
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A85C8
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FE0:: @ 83C1FE0
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8638
-
- .align 2
-gBattleAnimSpriteTemplate_83C1FF8:: @ 83C1FF8
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8764
-
- .align 2
-gBattleAnimSpriteTemplate_83C2010:: @ 83C2010
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8818
diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s
index 4430cd372..562bd3090 100644
--- a/data/battle_anim_80CA710.s
+++ b/data/battle_anim_80CA710.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
@@ -4649,16 +4649,3 @@ gBattleAnimSpriteTemplate_83DB550:: @ 83DB550
gUnknown_083DB568:: @ 83DB568
@ seems to be a src element in a LoadPalette call.
.2byte 0x7FFF
-
- .align 2
-gUnknown_083DB56C:: @ 83DB56C
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_80BC47C
- .4byte task00_battle_intro_80BC6C8
- .4byte task00_battle_intro_80BC6C8
- .4byte task00_battle_intro_80BC6C8
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_80BC47C
- .4byte task_battle_intro_anim
- .4byte task_battle_intro_anim
diff --git a/data/battle_anim_812C144.s b/data/battle_anim_812C144.s
index 188173252..dc0ebf9e3 100644
--- a/data/battle_anim_812C144.s
+++ b/data/battle_anim_812C144.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/battle_anim_813F0F4.s b/data/battle_anim_813F0F4.s
index de29622ad..fd24d95b6 100644
--- a/data/battle_anim_813F0F4.s
+++ b/data/battle_anim_813F0F4.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index e0d11637d..2068db4ff 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -1,6 +1,6 @@
#include "constants/songs.h"
- .include "asm/macros.inc"
- .include "asm/macros/battle_anim.inc"
+ .include "include/macros.inc"
+ .include "include/macros/battle_anim.inc"
.include "constants/constants.inc"
.section script_data, "aw", %progbits
diff --git a/data/battle_interface.s b/data/battle_interface.s
index 040b1b9d3..3c79b9f4b 100644
--- a/data/battle_interface.s
+++ b/data/battle_interface.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/battle_moves.s b/data/battle_moves.s
index 2c65bd3a5..b56457a96 100644
--- a/data/battle_moves.s
+++ b/data/battle_moves.s
@@ -1,6 +1,6 @@
#include "constants/battle_constants.h"
#include "constants/battle_move_effects.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 3c255b461..d309aea7e 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -2,8 +2,8 @@
#include "constants/battle_constants.h"
#include "constants/moves.h"
#include "constants/songs.h"
- .include "asm/macros.inc"
- .include "asm/macros/battle_script.inc"
+ .include "include/macros.inc"
+ .include "include/macros/battle_script.inc"
.include "constants/constants.inc"
.include "constants/battle_script_constants.inc"
@@ -2589,12 +2589,12 @@ BattleScript_EffectEndeavor: @ 81D8852
attackstring
ppreduce
setdamagetohealthdifference BattleScript_ButItFailed
- copyword gHP_dealt, gBattleMoveDamage
+ copyword gHpDealt, gBattleMoveDamage
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
typecalc
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
- copyword gBattleMoveDamage, gHP_dealt
+ copyword gBattleMoveDamage, gHpDealt
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
@@ -3065,7 +3065,7 @@ BattleScript_LocalBattleLost:: @ 81D8DD1
BattleScript_LocalBattleLostEnd: @ 81D8E01
end2
-gUnknown_081D8E02:: @ 81D8E02
+BattleScript_LinkBattleWonOrLost:: @ 81D8E02
printstring 5
waitmessage 64
atk57
@@ -3248,7 +3248,7 @@ BattleScript_DamagingWeatherContinues:: @ 81D8F7D
setbyte gBattleCommunication, 0
BattleScript_DamagingWeatherLoop: @ 81D8F95
- copyarraywithindex gBankAttacker, gTurnOrder, gBattleCommunication, 1
+ copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 1
weatherdamage
jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement
printfromtable gSandStormHailDmgStringIds
@@ -3314,7 +3314,7 @@ BattleScript_LeechSeedTurnDrain:: @ 81D904B
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000
healthbarupdate USER
datahpupdate USER
- copyword gBattleMoveDamage, gHP_dealt
+ copyword gBattleMoveDamage, gHpDealt
jumpifability USER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
manipulatedamage 0
setbyte cMULTISTRING_CHOOSER, 3
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index 26f28726d..2c5c391ad 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -1,8 +1,8 @@
#include "constants/battle_constants.h"
#include "constants/items.h"
#include "constants/songs.h"
- .include "asm/macros.inc"
- .include "asm/macros/battle_script.inc"
+ .include "include/macros.inc"
+ .include "include/macros/battle_script.inc"
.include "constants/constants.inc"
.include "constants/battle_script_constants.inc"
@@ -164,7 +164,7 @@ BattleScript_OpponentUsesGuardSpecs: @ 81D9FBB
finishaction
BattleScript_RunByUsingItem: @ 81D9FDA
- playse 17
+ playse SE_NIGERU
setbyte gBattleOutcome, BATTLE_RAN
finishturn
diff --git a/data/btl_attrs.s b/data/btl_attrs.s
new file mode 100644
index 000000000..5955c487d
--- /dev/null
+++ b/data/btl_attrs.s
@@ -0,0 +1,452 @@
+@ the second big chunk of data
+
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+@ 81ECAD8
+ .include "data/graphics/trainers/back_pic_coords.inc"
+
+@ 81ECAE4
+ .include "data/graphics/trainers/back_pic_table.inc"
+
+@ 81ECAFC
+ .include "data/graphics/trainers/back_pic_palette_table.inc"
+
+@ 81ECB14
+ .include "data/enemy_mon_elevation.inc"
+
+@ 81ECCB0
+ .include "data/trainer_parties.inc"
+
+@ 81F0208
+ .include "data/text/trainer_class_names.inc"
+
+@ 81F04FC
+ .include "data/trainers.inc"
+
+@ 81F716C
+ .include "data/text/species_names.inc"
+
+@ 81F8320
+ .include "data/text/move_names.inc"
+
+ .align 2
+@ 81F9528
+ .4byte 0x101 @ unknown data
+
+ .align 2
+gOamData_81F952C:: @ 81F952C
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x0000
+
+ .align 2
+gOamData_81F9534:: @ 81F9534
+ .2byte 0x0300
+ .2byte 0xC000
+ .2byte 0x0040
+
+ .align 2
+gSpriteAffineAnim_81F953C:: @ 81F953C
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnim_81F954C:: @ 81F954C
+ obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
+ obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
+ obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
+ obj_rot_scal_anim_end
+
+ .align 2
+gSpriteAffineAnimTable_81F956C:: @ 81F956C
+ .4byte gSpriteAffineAnim_81F953C
+ .4byte gSpriteAffineAnim_81F954C
+
+ .align 2
+gSpriteTemplate_81F9574:: @ 81F9574
+ spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
+
+ .align 2
+gSpriteTemplate_81F958C:: @ 81F958C
+ spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
+
+ .align 2
+gUnknown_081F95A4:: @ 81F95A4
+ obj_tiles gUnknown_08E5DC2C, 4096, 0x2710
+
+ .align 2
+gBattleTerrainTable:: @ 81F95AC
+ @ tall_grass
+ .4byte gBattleTerrainTiles_TallGrass
+ .4byte gBattleTerrainTilemap_TallGrass
+ .4byte gBattleTerrainAnimTiles_TallGrass
+ .4byte gBattleTerrainAnimTilemap_TallGrass
+ .4byte gBattleTerrainPalette_TallGrass
+
+ @ long_grass
+ .4byte gBattleTerrainTiles_LongGrass
+ .4byte gBattleTerrainTilemap_LongGrass
+ .4byte gBattleTerrainAnimTiles_LongGrass
+ .4byte gBattleTerrainAnimTilemap_LongGrass
+ .4byte gBattleTerrainPalette_LongGrass
+
+ @ sand
+ .4byte gBattleTerrainTiles_Sand
+ .4byte gBattleTerrainTilemap_Sand
+ .4byte gBattleTerrainAnimTiles_Sand
+ .4byte gBattleTerrainAnimTilemap_Sand
+ .4byte gBattleTerrainPalette_Sand
+
+ @ underwater
+ .4byte gBattleTerrainTiles_Underwater
+ .4byte gBattleTerrainTilemap_Underwater
+ .4byte gBattleTerrainAnimTiles_Underwater
+ .4byte gBattleTerrainAnimTilemap_Underwater
+ .4byte gBattleTerrainPalette_Underwater
+
+ @ water
+ .4byte gBattleTerrainTiles_Water
+ .4byte gBattleTerrainTilemap_Water
+ .4byte gBattleTerrainAnimTiles_Water
+ .4byte gBattleTerrainAnimTilemap_Water
+ .4byte gBattleTerrainPalette_Water
+
+ @ pond_water
+ .4byte gBattleTerrainTiles_PondWater
+ .4byte gBattleTerrainTilemap_PondWater
+ .4byte gBattleTerrainAnimTiles_PondWater
+ .4byte gBattleTerrainAnimTilemap_PondWater
+ .4byte gBattleTerrainPalette_PondWater
+
+ @ rock
+ .4byte gBattleTerrainTiles_Rock
+ .4byte gBattleTerrainTilemap_Rock
+ .4byte gBattleTerrainAnimTiles_Rock
+ .4byte gBattleTerrainAnimTilemap_Rock
+ .4byte gBattleTerrainPalette_Rock
+
+ @ cave
+ .4byte gBattleTerrainTiles_Cave
+ .4byte gBattleTerrainTilemap_Cave
+ .4byte gBattleTerrainAnimTiles_Cave
+ .4byte gBattleTerrainAnimTilemap_Cave
+ .4byte gBattleTerrainPalette_Cave
+
+ @ building
+ .4byte gBattleTerrainTiles_Building
+ .4byte gBattleTerrainTilemap_Building
+ .4byte gBattleTerrainAnimTiles_Building
+ .4byte gBattleTerrainAnimTilemap_Building
+ .4byte gBattleTerrainPalette_Building
+
+ @ plain
+ .4byte gBattleTerrainTiles_Building
+ .4byte gBattleTerrainTilemap_Building
+ .4byte gBattleTerrainAnimTiles_Building
+ .4byte gBattleTerrainAnimTilemap_Building
+ .4byte gBattleTerrainPalette_Plain
+
+ .align 2
+gUnknown_081F9674:: @ 81F9674
+ .4byte REG_BG3HOFS
+ .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
+ .4byte 1
+
+ .align 2
+gUnknown_081F9680:: @ 81F9680
+ .4byte gUnknown_030041D0
+ .2byte 0x20
+ .byte 0x13
+ .byte 0x10
+ .4byte BG_VRAM + 0xE104
+
+ .4byte gUnknown_03004250
+ .2byte 0x40
+ .byte 0x13
+ .byte 0x10
+ .4byte BG_VRAM + 0xF104
+
+ .4byte gUnknown_030041D0
+ .2byte 0x60
+ .byte 0x13
+ .byte 0x30
+ .4byte BG_VRAM + 0xE204
+
+ .4byte gUnknown_03004250
+ .2byte 0x80
+ .byte 0x13
+ .byte 0x30
+ .4byte BG_VRAM + 0xF204
+
+ .4byte gUnknown_030041D0
+ .2byte 0x20
+ .byte 0x13
+ .byte 0x18
+ .4byte BG_VRAM + 0xE1C4
+
+ .4byte gUnknown_03004250
+ .2byte 0x40
+ .byte 0x13
+ .byte 0x18
+ .4byte BG_VRAM + 0xF1C4
+
+gUnknown_081F96C8:: @ 81F96C8
+ .string "ヌケニン$" @ "Nukenin" (Shedinja)
+
+ .align 2
+gSpriteTemplate_81F96D0:: @ 81F96D0
+ spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_800F828
+
+.if DEBUG
+
+UnkDebug0:: @ 0x821F3B8
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+gUnknown_Debug_821F424::
+ .byte 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x9b, 0x01, 0x01, 0x00, 0x12, 0x00, 0x0a, 0x00, 0x02, 0x00, 0x64, 0x00, 0x01, 0x00, 0x18, 0x00, 0x0e, 0x00, 0x02, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x2e, 0x00
+ .byte 0x1a, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x30, 0x00, 0x1c, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x04, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x44, 0x00, 0x0a, 0x00
+ .byte 0x04, 0x00, 0x64, 0x00, 0x01, 0x00, 0x4a, 0x00, 0x0e, 0x00, 0x04, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x60, 0x00, 0x1a, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, 0x62, 0x00, 0x1c, 0x00, 0x04, 0x00
+ .byte 0x02, 0x00, 0x00, 0x00, 0x66, 0x00, 0x01, 0x00, 0x06, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x76, 0x00, 0x0a, 0x00, 0x06, 0x00, 0x64, 0x00, 0x01, 0x00, 0x7c, 0x00, 0x0e, 0x00, 0x06, 0x00, 0x5c, 0x01
+ .byte 0x00, 0x00, 0x92, 0x00, 0x1a, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x94, 0x00, 0x1c, 0x00, 0x06, 0x00, 0x02, 0x00, 0x00, 0x00, 0x98, 0x00, 0x01, 0x00, 0x08, 0x00, 0x9b, 0x01, 0x00, 0x00
+ .byte 0xa8, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x64, 0x00, 0x01, 0x00, 0xae, 0x00, 0x0e, 0x00, 0x08, 0x00, 0x5c, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x1a, 0x00, 0x08, 0x00, 0x05, 0x00, 0x00, 0x00, 0xc6, 0x00
+ .byte 0x1c, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0xca, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x9b, 0x01, 0x00, 0x00, 0xda, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x64, 0x00, 0x01, 0x00, 0xe0, 0x00, 0x0e, 0x00
+ .byte 0x0a, 0x00, 0x5c, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x1a, 0x00, 0x0a, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x1c, 0x00, 0x0a, 0x00, 0x02, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x01, 0x00, 0x0c, 0x00
+ .byte 0x9b, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x0a, 0x00, 0x0c, 0x00, 0x64, 0x00, 0x01, 0x00, 0x12, 0x01, 0x0e, 0x00, 0x0c, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x28, 0x01, 0x1a, 0x00, 0x0c, 0x00, 0x05, 0x00
+ .byte 0x00, 0x00, 0x2a, 0x01, 0x1c, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x06, 0x00, 0x12, 0x00, 0x09, 0x00, 0x01, 0x00, 0x34, 0x01, 0x1a, 0x00, 0x12, 0x00, 0x09, 0x00, 0x01, 0x00
+
+gUnknown_Debug_821F564::
+ .byte 0x36, 0x01
+
+gUnknown_Debug_821F566::
+ .byte 0x01, 0x00
+
+gUnknown_Debug_821F568::
+ .byte 0x0e, 0x00, 0x62, 0x01
+
+gUnknown_Debug_821F56C::
+ .byte 0x01, 0x00, 0x4a, 0x01, 0x0c, 0x00, 0x0e, 0x00, 0x62, 0x01, 0x00, 0x00, 0x5e, 0x01, 0x01, 0x00, 0x10, 0x00, 0x62, 0x01, 0x00, 0x00, 0x72, 0x01, 0x0c, 0x00, 0x10, 0x00, 0x62, 0x01, 0x00, 0x00
+
+gUnknown_Debug_821F58C::
+ .byte 0x86, 0x01, 0x17, 0x00, 0x0e, 0x00, 0x94, 0x01, 0x17, 0x00, 0x10, 0x00
+
+gUnknown_Debug_821F598::
+ .byte 0x00, 0x00, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x4b, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00
+
+gUnknown_Debug_821F5AC::
+ .byte 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x00, 0x14, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x00, 0x06, 0x14, 0x00, 0x14, 0x00, 0x00, 0x14, 0x00, 0x07, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x00, 0x14, 0x00, 0x14, 0x14, 0x00
+ .byte 0x09, 0x14, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0a, 0x00, 0x14, 0x00, 0x00, 0x14, 0x14, 0x00, 0x0b, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
+ .byte 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+Str_821F624:: @ 0x821F624
+ .string "ーーーーーーーーーーーー$"
+
+str_821F631:: @ 0x821F631
+ .string "ジュンイチ$"
+ .string "ダイゴロウ$"
+ .string "バレンシア$"
+ .string "ハルコマチ$"
+
+Str_821F649:: @ 0x821F649
+ .string "てつじ$"
+
+debug_unk_0b::
+@ 0x821F64D
+ .string "  オン$"
+
+@ 0x821F652
+ .string "オフ$"
+
+@ 0x821F655
+ .string "モノラル$"
+
+@ 0x821F65A
+ .string "ステレオ$"
+
+@ 0x821F65F
+ .string "テストです$"
+
+@ 0x821F665
+ .string "うけとったって$"
+
+@ 0x821F66D
+ .string "せつぞくエラー$"
+
+@ 0x821f675
+ .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
+
+gUnknown_Debug_821F680::
+ .byte 0xc0, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00
+ .byte 0x72, 0x01, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0xf2, 0x01, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00
+ .byte 0x52, 0x02, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, 0x72, 0x02, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0xd2, 0x02, 0x00, 0x00, 0xda, 0x02, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00
+ .byte 0xf6, 0x02, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x52, 0x03, 0x00, 0x00, 0x5a, 0x03, 0x00, 0x00, 0x72, 0x03, 0x00, 0x00, 0x76, 0x03, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0xd4, 0x04, 0x00, 0x00
+ .byte 0xde, 0x04, 0x00, 0x00, 0xe8, 0x04, 0x00, 0x00, 0xf2, 0x04, 0x00, 0x00, 0xc0, 0x08, 0x00, 0x00, 0xd2, 0x08, 0x00, 0x00, 0xda, 0x08, 0x00, 0x00, 0xf2, 0x08, 0x00, 0x00, 0xf6, 0x08, 0x00, 0x00
+ .byte 0x40, 0x09, 0x00, 0x00, 0x52, 0x09, 0x00, 0x00, 0x5a, 0x09, 0x00, 0x00, 0x72, 0x09, 0x00, 0x00, 0x76, 0x09, 0x00, 0x00, 0xc0, 0x09, 0x00, 0x00, 0xd2, 0x09, 0x00, 0x00, 0xda, 0x09, 0x00, 0x00
+ .byte 0xf2, 0x09, 0x00, 0x00, 0xf6, 0x09, 0x00, 0x00, 0x40, 0x0a, 0x00, 0x00, 0x52, 0x0a, 0x00, 0x00, 0x5a, 0x0a, 0x00, 0x00, 0x72, 0x0a, 0x00, 0x00, 0x76, 0x0a, 0x00, 0x00, 0xc0, 0x0a, 0x00, 0x00
+ .byte 0xd2, 0x0a, 0x00, 0x00, 0xda, 0x0a, 0x00, 0x00, 0xf2, 0x0a, 0x00, 0x00, 0xf6, 0x0a, 0x00, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x52, 0x0b, 0x00, 0x00, 0x5a, 0x0b, 0x00, 0x00, 0x72, 0x0b, 0x00, 0x00
+ .byte 0x76, 0x0b, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0xd4, 0x0c, 0x00, 0x00, 0xde, 0x0c, 0x00, 0x00, 0xe8, 0x0c, 0x00, 0x00, 0xf2, 0x0c, 0x00, 0x00
+
+gUnknown_Debug_821F798::
+ .byte 0xc0, 0x03, 0x00, 0x00, 0xd6, 0x03, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x56, 0x04, 0x00, 0x00, 0xc0, 0x0b, 0x00, 0x00, 0xd6, 0x0b, 0x00, 0x00, 0x40, 0x0c, 0x00, 0x00, 0x56, 0x0c, 0x00, 0x00
+
+Str_821F7B8:: @ 0x821F7B8
+ .string "たかさ $"
+
+Str_821F7BD:: @ 0x821F7BD
+ .string "{PALETTE 1}{COLOR_HIGHLIGHT_SHADOW BLUE YELLOW MAGENTA}たかさ   ひこう\n"
+ .string "ポケモン  ファイル$"
+
+Str_821F7DA:: @ 0x821F7DA
+ .string "{PALETTE 1}{COLOR_HIGHLIGHT_SHADOW BLUE YELLOW MAGENTA}ロード\n"
+ .string "セーブ$"
+
+Str_821F7EA:: @ 0x821F7EA
+ .string "ロードしますか?$"
+
+@ 0x821F7F3
+gUnknown_Debug_821F7F3::
+ .string "セーブしますか?$"
+
+.endif
+
+ .align 2
+gOamData_81F96E8:: @ 81F96E8
+ .2byte 0x0100
+ .2byte 0xC000
+ .2byte 0x0800
+
+ .align 2
+gOamData_81F96F0:: @ 81F96F0
+ .2byte 0x0100
+ .2byte 0xC000
+ .2byte 0x2800
+
+ .align 2
+gSpriteAnim_81F96F8:: @ 81F96F8
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_81F9700:: @ 81F9700
+ .4byte gSpriteAnim_81F96F8
+
+ .align 2
+gSpriteAffineAnim_81F9704:: @ 81F9704
+ obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 4
+ obj_rot_scal_anim_frame 0x0, 0x0, 0, 60
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_81F971C:: @ 81F971C
+ .4byte gSpriteAffineAnim_81F9704
+
+@ 81F9720
+ .include "data/type_effectiveness.inc"
+
+@ 81F9870
+ .include "data/text/type_names.inc"
+
+@ 81F98F0
+ .include "data/trainer_money.inc"
+
+@ 81F99CC
+ .include "data/text/ability_descriptions.inc"
+
+@ 81FA248
+ .include "data/text/ability_names.inc"
+
+ .align 2
+gUnknown_081FA640:: @ 81FA640
+ .4byte HandleAction_UseMove
+ .4byte HandleAction_UseItem
+ .4byte HandleAction_Switch
+ .4byte HandleAction_Run
+ .4byte HandleAction_WatchesCarefully
+ .4byte HandleAction_SafariZoneBallThrow
+ .4byte HandleAction_ThrowPokeblock
+ .4byte HandleAction_GoNear
+ .4byte HandleAction_SafriZoneRun
+ .4byte HandleAction_Action9
+ .4byte sub_801B594
+ .4byte HandleAction_Action11
+ .4byte HandleAction_ActionFinished
+ .4byte HandleAction_NothingIsFainted
+
+ .align 2
+gUnknown_081FA678:: @ 81FA678
+ .4byte bc_8013B1C
+ .4byte HandleEndTurn_BattleWon
+ .4byte HandleEndTurn_BattleLost
+ .4byte HandleEndTurn_BattleLost
+ .4byte HandleEndTurn_RanFromBattle
+ .4byte HandleEndTurn_FinishBattle
+ .4byte HandleEndTurn_MonFled
+ .4byte HandleEndTurn_FinishBattle
+ .4byte HandleEndTurn_FinishBattle
+
+gStatusConditionString_PoisonJpn:: @ 81FA69C
+ .string "どく$$$$$$"
+
+gStatusConditionString_SleepJpn:: @ 81FA6A4
+ .string "ねむり$$$$$"
+
+gStatusConditionString_ParalysisJpn:: @ 81FA6AC
+ .string "まひ$$$$$$"
+
+gStatusConditionString_BurnJpn:: @ 81FA6B4
+ .string "やけど$$$$$"
+
+gStatusConditionString_IceJpn:: @ 81FA6BC
+ .string "こおり$$$$$"
+
+gStatusConditionString_ConfusionJpn:: @ 81FA6C4
+ .string "こんらん$$$$"
+
+gStatusConditionString_LoveJpn:: @ 81FA6CC
+ .string "メロメロ$$$$"
+
+ .align 2
+gUnknown_081FA6D4:: @ 81FA6D4
+ .4byte gStatusConditionString_PoisonJpn, BattleText_PoisonStatus
+ .4byte gStatusConditionString_SleepJpn, BattleText_Sleep
+ .4byte gStatusConditionString_ParalysisJpn, BattleText_Paralysis
+ .4byte gStatusConditionString_BurnJpn, BattleText_Burn
+ .4byte gStatusConditionString_IceJpn, BattleText_IceStatus
+ .4byte gStatusConditionString_ConfusionJpn, BattleText_Confusion
+ .4byte gStatusConditionString_LoveJpn, BattleText_Love
+
+gUnknown_081FA70C:: @ 81FA70C
+ .byte 0, 0, 0
+ .byte 3, 5, 0
+ .byte 2, 3, 0
+ .byte 1, 2, 0
+ .byte 1, 1, 0
+
+gUnknown_081FA71B:: @ 81FA71B
+ .byte 4, 3, 2, 1
+
+gUnknown_081FA71F:: @ 81FA71F
+ .byte 4, 4, 4, 4
+
+ .align 1
+gSoundMovesTable:: @ 81FA724
+ .2byte 0x2D
+ .2byte 0x2E
+ .2byte 0x2F
+ .2byte 0x30
+ .2byte 0x67
+ .2byte 0xAD
+ .2byte 0xFD
+ .2byte 0x13F
+ .2byte 0x140
+ .2byte 0x130
+ .2byte 0xFFFF
diff --git a/data/cable_car.s b/data/cable_car.s
deleted file mode 100644
index 775e53b6a..000000000
--- a/data/cable_car.s
+++ /dev/null
@@ -1,102 +0,0 @@
-#include "constants/map_objects.h"
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gCableCarMtChimneyTilemap:: @ 8401820
- .incbin "graphics/misc/cable_car_mt_chimney_map.bin.lz"
-
- .align 2
-gCableCarTreeTilemap:: @ 8401978
- .incbin "graphics/misc/cable_car_tree_map.bin.lz"
-
- .align 2
-gCableCarMountainTilemap:: @ 8401AFC
- .incbin "graphics/misc/cable_car_mountain_map.bin.lz"
-
- .align 2
-gCableCarPylonHookTilemapEntries:: @ 8401CC0
- .2byte 0x3000
- .2byte 0x3001
- .2byte 0x3002
- .2byte 0x3003
- .2byte 0x3004
- .2byte 0x3005
- .2byte 0x3006
- .2byte 0x3007
- .2byte 0x3008
- .2byte 0x3009
-
- .align 2
-gCableCarPylonStemTilemap:: @ 8401CD4
- .incbin "graphics/misc/cable_car_pylon_stem_map.bin.lz"
-
- .align 2
-gUnknown_08401CF8:: @ 8401CF8
- obj_tiles gCableCar_Gfx, 0x800, 1
- obj_tiles gCableCarDoor_Gfx, 0x40, 2
- obj_tiles gCableCarCord_Gfx, 0x80, 3
- .space 8
-
- .align 2
-gUnknown_08401D18:: @ 8401D18
- obj_pal gCableCar_Pal, 1
- .space 8
-
- .align 2
-gOamData_8401D28:: @ 8401D28
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_8401D30:: @ 8401D30
- .2byte 0x4300
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gOamData_8401D38:: @ 8401D38
- .2byte 0x0300
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteTemplate_8401D40:: @ 8401D40
- spr_template 1, 1, gOamData_8401D28, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8123CB8
-
- .align 2
-gSpriteTemplate_8401D58:: @ 8401D58
- spr_template 2, 1, gOamData_8401D30, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8123CB8
-
- .align 2
-gSpriteTemplate_8401D70:: @ 8401D70
- spr_template 3, 1, gOamData_8401D38, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, nullsub_76
-
-gCableCarPlayerGraphicsIDs:: @ 8401D88
- .byte MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL
- .byte MAP_OBJ_GFX_RIVAL_MAY_NORMAL
-
-gMtChimneyHikerGraphicsIDs:: @ 8401D8A
- .byte MAP_OBJ_GFX_HIKER
- .byte MAP_OBJ_GFX_CAMPER
- .byte MAP_OBJ_GFX_PICNICKER
- .byte MAP_OBJ_GFX_POOCHYENA @ not used
-
- .align 1
-gMtChimneyHikerCoords:: @ 8401D8E
- .2byte 0, 80
- .2byte 240, 146
-
-gMtChimneyHikerMovementDelayTable:: @ 8401D96
- .byte 0
- .byte 60
- .byte 120
- .byte 170
-
- .align 2
-gUnknown_08401D9C:: @ 8401D9C
- .4byte sub_8123EB8
- .4byte sub_8123F44
diff --git a/data/contest.s b/data/contest.s
index 0ffcfc636..63988987d 100644
--- a/data/contest.s
+++ b/data/contest.s
@@ -1,6 +1,6 @@
#include "constants/moves.h"
#include "constants/species.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/contest_ai.s b/data/contest_ai.s
deleted file mode 100644
index 78f926df3..000000000
--- a/data/contest_ai.s
+++ /dev/null
@@ -1,143 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-sContestAICmdTable:: @ 8401E60
- .4byte ContestAICmd_unk_00
- .4byte ContestAICmd_get_turn
- .4byte ContestAICmd_unk_02
- .4byte ContestAICmd_unk_03
- .4byte ContestAICmd_unk_04
- .4byte ContestAICmd_unk_05
- .4byte ContestAICmd_get_excitement
- .4byte ContestAICmd_unk_07
- .4byte ContestAICmd_unk_08
- .4byte ContestAICmd_unk_09
- .4byte ContestAICmd_unk_0A
- .4byte ContestAICmd_get_user_order
- .4byte ContestAICmd_unk_0C
- .4byte ContestAICmd_unk_0D
- .4byte ContestAICmd_unk_0E
- .4byte ContestAICmd_unk_0F
- .4byte ContestAICmd_get_user_condition_maybe
- .4byte ContestAICmd_unk_11
- .4byte ContestAICmd_unk_12
- .4byte ContestAICmd_unk_13
- .4byte ContestAICmd_unk_14
- .4byte ContestAICmd_unk_15
- .4byte ContestAICmd_unk_16
- .4byte ContestAICmd_unk_17
- .4byte ContestAICmd_unk_18
- .4byte ContestAICmd_unk_19
- .4byte ContestAICmd_unk_1A
- .4byte ContestAICmd_unk_1B
- .4byte ContestAICmd_unk_1C
- .4byte ContestAICmd_unk_1D
- .4byte ContestAICmd_unk_1E
- .4byte ContestAICmd_get_contest_type
- .4byte ContestAICmd_unk_20
- .4byte ContestAICmd_unk_21
- .4byte ContestAICmd_get_move_excitement
- .4byte ContestAICmd_unk_23
- .4byte ContestAICmd_unk_24
- .4byte ContestAICmd_unk_25
- .4byte ContestAICmd_unk_26
- .4byte ContestAICmd_get_move_effect
- .4byte ContestAICmd_unk_28
- .4byte ContestAICmd_unk_29
- .4byte ContestAICmd_get_move_effect_type
- .4byte ContestAICmd_unk_2B
- .4byte ContestAICmd_unk_2C
- .4byte ContestAICmd_check_move_has_highest_appeal
- .4byte ContestAICmd_unk_2E
- .4byte ContestAICmd_unk_2F
- .4byte ContestAICmd_unk_30
- .4byte ContestAICmd_unk_31
- .4byte ContestAICmd_unk_32
- .4byte ContestAICmd_unk_33
- .4byte ContestAICmd_unk_34
- .4byte ContestAICmd_unk_35
- .4byte ContestAICmd_unk_36
- .4byte ContestAICmd_unk_37
- .4byte ContestAICmd_unk_38
- .4byte ContestAICmd_unk_39
- .4byte ContestAICmd_unk_3A
- .4byte ContestAICmd_get_move_used_count
- .4byte ContestAICmd_unk_3C
- .4byte ContestAICmd_unk_3D
- .4byte ContestAICmd_unk_3E
- .4byte ContestAICmd_unk_3F
- .4byte ContestAICmd_check_combo_starter
- .4byte ContestAICmd_unk_41
- .4byte ContestAICmd_unk_42
- .4byte ContestAICmd_check_combo_finisher
- .4byte ContestAICmd_unk_44
- .4byte ContestAICmd_unk_45
- .4byte ContestAICmd_check_would_finish_combo
- .4byte ContestAICmd_unk_47
- .4byte ContestAICmd_unk_48
- .4byte ContestAICmd_get_condition
- .4byte ContestAICmd_unk_4A
- .4byte ContestAICmd_unk_4B
- .4byte ContestAICmd_unk_4C
- .4byte ContestAICmd_unk_4D
- .4byte ContestAICmd_get_used_combo_starter
- .4byte ContestAICmd_unk_4F
- .4byte ContestAICmd_unk_50
- .4byte ContestAICmd_unk_51
- .4byte ContestAICmd_unk_52
- .4byte ContestAICmd_check_can_participate
- .4byte ContestAICmd_unk_54
- .4byte ContestAICmd_unk_55
- .4byte ContestAICmd_get_val_812A188
- .4byte ContestAICmd_unk_57
- .4byte ContestAICmd_unk_58
- .4byte ContestAICmd_unk_59
- .4byte ContestAICmd_unk_5A
- .4byte ContestAICmd_unk_5B
- .4byte ContestAICmd_unk_5C
- .4byte ContestAICmd_unk_5D
- .4byte ContestAICmd_unk_5E
- .4byte ContestAICmd_unk_5F
- .4byte ContestAICmd_unk_60
- .4byte ContestAICmd_unk_61
- .4byte ContestAICmd_unk_62
- .4byte ContestAICmd_unk_63
- .4byte ContestAICmd_unk_64
- .4byte ContestAICmd_unk_65
- .4byte ContestAICmd_unk_66
- .4byte ContestAICmd_unk_67
- .4byte ContestAICmd_unk_68
- .4byte ContestAICmd_unk_69
- .4byte ContestAICmd_unk_6A
- .4byte ContestAICmd_unk_6B
- .4byte ContestAICmd_unk_6C
- .4byte ContestAICmd_unk_6D
- .4byte ContestAICmd_unk_6E
- .4byte ContestAICmd_unk_6F
- .4byte ContestAICmd_unk_70
- .4byte ContestAICmd_unk_71
- .4byte ContestAICmd_unk_72
- .4byte ContestAICmd_unk_73
- .4byte ContestAICmd_unk_74
- .4byte ContestAICmd_unk_75
- .4byte ContestAICmd_unk_76
- .4byte ContestAICmd_unk_77
- .4byte ContestAICmd_unk_78
- .4byte ContestAICmd_unk_79
- .4byte ContestAICmd_unk_7A
- .4byte ContestAICmd_unk_7B
- .4byte ContestAICmd_unk_7C
- .4byte ContestAICmd_unk_7D
- .4byte ContestAICmd_unk_7E
- .4byte ContestAICmd_unk_7F
- .4byte ContestAICmd_unk_80
- .4byte ContestAICmd_unk_81
- .4byte ContestAICmd_check_for_exciting_move
- .4byte ContestAICmd_unk_83
- .4byte ContestAICmd_unk_84
- .4byte ContestAICmd_unk_85
- .4byte ContestAICmd_unk_86
- .4byte ContestAICmd_unk_87
diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s
index 2c709ba09..b0b74c584 100644
--- a/data/contest_ai_scripts.s
+++ b/data/contest_ai_scripts.s
@@ -1,5 +1,5 @@
- .include "asm/macros.inc"
- .include "asm/macros/contest_ai_script.inc"
+ .include "include/macros.inc"
+ .include "include/macros/contest_ai_script.inc"
.include "constants/constants.inc"
.section script_data, "aw", %progbits
diff --git a/data/contest_effect.s b/data/contest_effect.s
index 7bcb36bf1..cd960fb52 100644
--- a/data/contest_effect.s
+++ b/data/contest_effect.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/contest_link_80C2020.s b/data/contest_link_80C2020.s
index 0b74e5908..f0ad06a32 100644
--- a/data/contest_link_80C2020.s
+++ b/data/contest_link_80C2020.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/cute_sketch.s b/data/cute_sketch.s
index b59a4b804..e3e75753d 100644
--- a/data/cute_sketch.s
+++ b/data/cute_sketch.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/data_8393054.s b/data/data_8393054.s
deleted file mode 100644
index 5d2f79e07..000000000
--- a/data/data_8393054.s
+++ /dev/null
@@ -1,110 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gSpriteAnim_8393054:: @ 8393054
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 4, 3
- obj_image_anim_frame 8, 3
- obj_image_anim_frame 12, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_8393068:: @ 8393068
- .4byte gSpriteAnim_8393054
-
- .align 2
-gSpriteTemplate_839306C:: @ 839306C
- spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
-
- .align 2
-gSpriteTemplate_8393084:: @ 8393084
- spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A544
-
- .align 2
-gSpriteAnim_839309C:: @ 839309C
- obj_image_anim_frame 0, 3
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83930A4:: @ 83930A4
- .4byte gSpriteAnim_839309C
-
- .align 2
-gBattleAnimSpriteTemplate_83930A8:: @ 83930A8
- spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A908
-
- .align 2
-gBattleAnimSpriteTemplate_83930C0:: @ 83930C0
- spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A9BC
-
- .align 2
-gSpriteAnim_83930D8:: @ 83930D8
- obj_image_anim_frame 0, 3
- obj_image_anim_frame 16, 3
- obj_image_anim_frame 32, 3
- obj_image_anim_frame 48, 3
- obj_image_anim_frame 64, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83930F0:: @ 83930F0
- .4byte gSpriteAnim_83930D8
-
- .align 2
-gBattleAnimSpriteTemplate_83930F4:: @ 83930F4
- spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83930F0, NULL, gDummySpriteAffineAnimTable, sub_807A63C
-
- .align 2
-gSpriteTemplate_839310C:: @ 839310C
- spr_template 10051, 10051, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
-
- .align 2
-gSpriteAnim_8393124:: @ 8393124
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_839312C:: @ 839312C
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_8393134:: @ 8393134
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_839313C:: @ 839313C
- .4byte gSpriteAnim_8393124
- .4byte gSpriteAnim_839312C
- .4byte gSpriteAnim_8393134
-
- .align 2
-gSpriteTemplate_8393148:: @ 8393148
- spr_template 10135, 10135, gOamData_837DF34, gSpriteAnimTable_839313C, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
-
- .align 2
-gSpriteAnim_8393160:: @ 8393160
- obj_image_anim_frame 0, 15
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_8393168:: @ 8393168
- .4byte gSpriteAnim_8393160
-
- .align 2
-gSpriteAffineAnim_839316C:: @ 839316C
- obj_rot_scal_anim_frame 0x60, 0x60, 0, 0
- obj_rot_scal_anim_frame 0x2, 0x2, 0, 1
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_8393184:: @ 8393184
- .4byte gSpriteAffineAnim_839316C
-
- .align 2
-gSpriteTemplate_8393188:: @ 8393188
- spr_template 10004, 10004, gOamData_837DFEC, gSpriteAnimTable_8393168, NULL, gSpriteAffineAnimTable_8393184, sub_807A544
diff --git a/data/debug_menu_3.s b/data/debug_menu_3.s
new file mode 100644
index 000000000..ed4bb599b
--- /dev/null
+++ b/data/debug_menu_3.s
@@ -0,0 +1,106 @@
+.if DEBUG
+
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+gUnknown_Debug_845DAE1::
+ .byte 0x01, 0xe1, 0xda, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xda, 0x45, 0x08, 0xb2, 0xdd, 0x45, 0x08, 0x06, 0x08
+ .byte 0x01, 0x01, 0x56, 0xdb, 0x45, 0x08, 0x0d, 0xdd, 0x45, 0x08, 0x0b, 0x01, 0x05, 0x13, 0x01, 0x05, 0x0d, 0xdd, 0x45, 0x08, 0x02, 0xc6, 0xd5, 0xe9, 0xda, 0x00, 0xe9, 0xe2, 0xd8, 0x00, 0xd6, 0xd9
+ .byte 0xe7, 0xe9, 0xd7, 0xdc, 0xd9, 0x00, 0xd8, 0xd9, 0xdd, 0xe2, 0xd9, 0xe2, 0x00, 0xd0, 0xd5, 0xe8, 0xd9, 0xe6, 0x00, 0xdd, 0xe2, 0x00, 0xd8, 0xd9, 0xe6, 0xfe, 0xbb, 0xcc, 0xbf, 0xc8, 0xbb, 0x00
+ .byte 0xea, 0xe3, 0xe2, 0x00, 0xbc, 0xc6, 0xf3, 0xce, 0xbf, 0xc8, 0xbc, 0xcf, 0xcc, 0xc1, 0x00, 0xbd, 0xc3, 0xce, 0xd3, 0xad, 0xff, 0xb8, 0x56, 0xdb, 0x45, 0x08, 0x47, 0x13, 0x01, 0x01, 0x00, 0x21
+ .byte 0x0d, 0x80, 0x01, 0x00, 0xbb, 0x01, 0xb4, 0xdb, 0x45, 0x08, 0x4a, 0x13, 0x01, 0x01, 0x00, 0x21, 0x0d, 0x80, 0x01, 0x00, 0xbb, 0x01, 0xb4, 0xdb, 0x45, 0x08, 0x2b, 0xce, 0x00, 0xbb, 0x01, 0xb4
+ .byte 0xdb, 0x45, 0x08, 0x6a, 0x5a, 0xbd, 0xbe, 0xdb, 0x45, 0x08, 0x66, 0x6d, 0x46, 0x13, 0x01, 0x01, 0x00, 0x21, 0x0d, 0x80, 0x00, 0x00, 0xbb, 0x01, 0xb5, 0xdb, 0x45, 0x08, 0x1a, 0x00, 0x80, 0x13
+ .byte 0x01, 0x1a, 0x01, 0x80, 0x01, 0x00, 0x09, 0x00, 0x29, 0x53, 0x08, 0xbd, 0x00, 0xdc, 0x45, 0x08, 0x66, 0x6d, 0x6c, 0x0d, 0xbd, 0x94, 0xdc, 0x45, 0x08, 0x66, 0x6d, 0x6c, 0x02, 0xd0, 0xbb, 0xce
+ .byte 0xbf, 0xcc, 0xf0, 0x00, 0xfd, 0x01, 0xab, 0x00, 0xcd, 0xd7, 0xdc, 0xf5, 0xe2, 0xb8, 0x00, 0xd8, 0xdd, 0xd7, 0xdc, 0x00, 0xee, 0xe9, 0x00, 0xe7, 0xd9, 0xdc, 0xd9, 0xe2, 0xab, 0xfe, 0xc2, 0xdd
+ .byte 0xd9, 0xe6, 0x00, 0xdd, 0xe7, 0xe8, 0x00, 0xd9, 0xdd, 0xe2, 0x00, 0xbc, 0xe6, 0xdd, 0xd9, 0xda, 0x00, 0xda, 0xf6, 0xe6, 0x00, 0xd8, 0xdd, 0xd7, 0xdc, 0xb8, 0x00, 0xfd, 0x01, 0xad, 0xff, 0xd0
+ .byte 0xbb, 0xce, 0xbf, 0xcc, 0xf0, 0x00, 0xc3, 0xd7, 0xdc, 0x00, 0xd6, 0xdd, 0xe2, 0x00, 0xe1, 0xdd, 0xe6, 0x00, 0xe2, 0xdd, 0xd7, 0xdc, 0xe8, 0x00, 0xe7, 0xdd, 0xd7, 0xdc, 0xd9, 0xe6, 0xb8, 0x00
+ .byte 0xd9, 0xe7, 0xfe, 0xdf, 0xf5, 0xe2, 0xe2, 0xe8, 0xd9, 0x00, 0xd9, 0xdd, 0xe2, 0x00, 0xce, 0xc3, 0xbd, 0xc5, 0xbf, 0xce, 0x00, 0xda, 0xf6, 0xe6, 0x00, 0xd9, 0xdd, 0xe2, 0xd9, 0x00, 0xc0, 0xf4
+ .byte 0xdc, 0xe6, 0xd9, 0x00, 0xe7, 0xd9, 0xdd, 0xe2, 0xad, 0xfb, 0xbe, 0xe9, 0x00, 0xe7, 0xe3, 0xe0, 0xe0, 0xe8, 0xd9, 0xe7, 0xe8, 0x00, 0xe2, 0xd5, 0xd7, 0xdc, 0x00, 0xcd, 0xbf, 0xbf, 0xc1, 0xcc
+ .byte 0xbb, 0xcd, 0xcf, 0xc6, 0xbc, 0x00, 0xbd, 0xc3, 0xce, 0xd3, 0x00, 0xdb, 0xd9, 0xdc, 0xd9, 0xe2, 0xfe, 0xe9, 0xe2, 0xd8, 0x00, 0xd8, 0xdd, 0xd7, 0xdc, 0x00, 0xd8, 0xe3, 0xe6, 0xe8, 0x00, 0xdb
+ .byte 0xd9, 0xe2, 0xd5, 0xe9, 0xd9, 0xe6, 0x00, 0xd9, 0xe6, 0xdf, 0xe9, 0xe2, 0xd8, 0xdd, 0xdb, 0xd9, 0xe2, 0xad, 0xff, 0xd0, 0xbb, 0xce, 0xbf, 0xcc, 0xf0, 0x00, 0xfd, 0x01, 0xb8, 0x00, 0xd8, 0xdd
+ .byte 0xd9, 0x00, 0xbc, 0xbb, 0xcd, 0xc3, 0xcd, 0xae, 0xce, 0xbb, 0xcd, 0xbd, 0xc2, 0xbf, 0xfe, 0xd8, 0xd9, 0xdd, 0xe2, 0xd9, 0xe7, 0x00, 0xbc, 0xbf, 0xcf, 0xce, 0xbf, 0xc6, 0xcd, 0x00, 0xdd, 0xe7
+ .byte 0xe8, 0x00, 0xea, 0xe3, 0xe0, 0xe0, 0xad, 0xfb, 0xc6, 0xd5, 0xdb, 0xd9, 0xe6, 0xd9, 0x00, 0xd9, 0xdd, 0xe2, 0xdd, 0xdb, 0xd9, 0x00, 0xd8, 0xd9, 0xdd, 0xe2, 0xd9, 0xe6, 0x00, 0xbc, 0xd5, 0xe7
+ .byte 0xdd, 0xe7, 0xae, 0xc3, 0xe8, 0xd9, 0xe1, 0xe7, 0x00, 0xdd, 0xe2, 0xfe, 0xd8, 0xd9, 0xdd, 0xe2, 0xd9, 0xe1, 0x00, 0xca, 0xbd, 0x00, 0xe9, 0xe2, 0xd8, 0x00, 0xdf, 0xe3, 0xe1, 0xe1, 0x00, 0xd8
+ .byte 0xd5, 0xe2, 0xe2, 0x00, 0xeb, 0xdd, 0xd9, 0xd8, 0xd9, 0xe6, 0xad, 0xff, 0xb8, 0x0d, 0xdd, 0x45, 0x08, 0x47, 0x13, 0x01, 0x01, 0x00, 0x21, 0x0d, 0x80, 0x01, 0x00, 0xbb, 0x01, 0x53, 0xdd, 0x45
+ .byte 0x08, 0x4a, 0x13, 0x01, 0x01, 0x00, 0x21, 0x0d, 0x80, 0x01, 0x00, 0xbb, 0x01, 0x53, 0xdd, 0x45, 0x08, 0x2b, 0xce, 0x00, 0xbb, 0x01, 0x53, 0xdd, 0x45, 0x08, 0x46, 0x13, 0x01, 0x01, 0x00, 0x21
+ .byte 0x0d, 0x80, 0x00, 0x00, 0xbb, 0x01, 0x5b, 0xdd, 0x45, 0x08, 0xbe, 0x16, 0xdb, 0x45, 0x08, 0x0e, 0x02, 0x02, 0xbe, 0x63, 0xdd, 0x45, 0x08, 0x0e, 0x03, 0x02, 0xbe, 0x95, 0xdd, 0x45, 0x08, 0x0e
+ .byte 0x03, 0x02, 0xbe, 0xdd, 0xd9, 0xe7, 0xd9, 0xe7, 0x00, 0xc1, 0xbf, 0xcd, 0xbd, 0xc2, 0xbf, 0xc2, 0xbf, 0xc8, 0x00, 0xdf, 0xd5, 0xe2, 0xe2, 0x00, 0xe2, 0xe9, 0xe6, 0x00, 0xd9, 0xdd, 0xe2, 0xe1
+ .byte 0xd5, 0xe0, 0xfe, 0xdb, 0xd9, 0xe7, 0xe4, 0xdd, 0xd9, 0xe0, 0xe8, 0x00, 0xeb, 0xd9, 0xe6, 0xd8, 0xd9, 0xe2, 0xad, 0xff, 0xbe, 0xd9, 0xdd, 0xe2, 0xd9, 0x00, 0xbc, 0xbb, 0xcd, 0xc3, 0xcd, 0xae
+ .byte 0xce, 0xbb, 0xcd, 0xbd, 0xc2, 0xbf, 0x00, 0xdd, 0xe7, 0xe8, 0x00, 0xea, 0xe3, 0xe0, 0xe0, 0xad, 0xff
+
+gUnknown_Debug_845DDB2::
+ .byte 0x01, 0xb2, 0xdd, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xdd, 0x45, 0x08, 0x06, 0xe3, 0x45, 0x08, 0x07, 0xd6
+ .byte 0xdd, 0x45, 0x08, 0x02
+
+gUnknown_Debug_845DDD6::
+ .space 0x530
+
+gUnknown_Debug_845E306::
+ .byte 0x01, 0x06, 0xe3, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x05, 0x29, 0xe3, 0x45, 0x08, 0x03, 0x02, 0x4f, 0xe3, 0x45, 0x08, 0x03, 0x03, 0x87, 0xe3
+ .byte 0x45, 0x08, 0x02, 0xb8, 0x29, 0xe3, 0x45, 0x08, 0x43, 0x21, 0x0d, 0x80, 0x06, 0x00, 0xbb, 0x01, 0x4c, 0xe3, 0x45, 0x08, 0x79, 0x45, 0x01, 0x0f, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x0e, 0x02, 0x02, 0x0e, 0x03, 0x02, 0xbf, 0xdd, 0xe2, 0x00, 0xca, 0xc9, 0xc5, 0x1b, 0xc7, 0xc9, 0xc8, 0x00, 0xeb, 0xe9, 0xe6, 0xd8, 0xd9, 0x00, 0xdd, 0xe2, 0x00, 0xd8, 0xd5
+ .byte 0xe7, 0x00, 0xce, 0xd9, 0xd5, 0xe1, 0x00, 0xd8, 0xd9, 0xe7, 0xfe, 0xcd, 0xe4, 0xdd, 0xd9, 0xe0, 0xd9, 0xe6, 0xe7, 0x00, 0xd5, 0xe9, 0xda, 0xdb, 0xd9, 0xe2, 0xe3, 0xe1, 0xe1, 0xd9, 0xe2, 0xad
+ .byte 0xff, 0xbe, 0xd5, 0xe7, 0x00, 0xce, 0xd9, 0xd5, 0xe1, 0x00, 0xd8, 0xd9, 0xe7, 0x00, 0xcd, 0xe4, 0xdd, 0xd9, 0xe0, 0xd9, 0xe6, 0xe7, 0x00, 0xdd, 0xe7, 0xe8, 0x00, 0xea, 0xe3, 0xe0, 0xe0, 0xe7
+ .byte 0xe8, 0xf4, 0xe2, 0xd8, 0xdd, 0xdb, 0xad, 0xfe, 0xbf, 0xe7, 0x00, 0xdf, 0xd5, 0xe2, 0xe2, 0x00, 0xdf, 0xd9, 0xdd, 0xe2, 0x00, 0xeb, 0xd9, 0xdd, 0xe8, 0xd9, 0xe6, 0xd9, 0xe7, 0x00, 0xca, 0xc9
+ .byte 0xc5, 0x1b, 0xc7, 0xc9, 0xc8, 0xfa, 0xd5, 0xe9, 0xda, 0xdb, 0xd9, 0xe2, 0xe3, 0xe1, 0xe1, 0xd9, 0xe2, 0x00, 0xeb, 0xd9, 0xe6, 0xd8, 0xd9, 0xe2, 0xad, 0xff
+
+gUnknown_Debug_845E3E0::
+ .byte 0x01, 0xe0, 0xe3, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xe3, 0x45, 0x08, 0x02, 0xe4, 0x45, 0x08, 0x08, 0x00
+ .byte 0x01, 0x02
+
+gUnknown_Debug_845E402::
+ .byte 0x01, 0x02, 0xe4, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe4, 0x45, 0x08, 0x22, 0xe4, 0x45, 0x08, 0x09, 0x02
+
+gUnknown_Debug_845E422::
+ .byte 0x01, 0x22, 0xe4, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe4, 0x45, 0x08, 0x43, 0xe4, 0x45, 0x08, 0x0a, 0x01
+ .byte 0x02
+
+gUnknown_Debug_845E443::
+ .byte 0x01, 0x43, 0xe4, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0xe4, 0x45, 0x08, 0xef, 0xe4, 0x45, 0x08, 0x0c, 0x67
+ .byte 0xe4, 0x45, 0x08, 0x02
+
+gUnknown_Debug_845E467::
+ .space 100
+
+gUnknown_Debug_845E4CB::
+ .space 36
+
+gUnknown_Debug_845E4EF::
+ .byte 0x01, 0xef, 0xe4, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0d, 0x06, 0xe5, 0x45, 0x08, 0x02
+
+gUnknown_Debug_845E506::
+ .space 256
+
+gUnknown_Debug_845E606::
+ .byte 0x01, 0x06, 0xe6, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0e, 0x02
+
+gUnknown_Debug_845E619::
+ .byte 0x01, 0x19, 0xe6, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x37, 0xe6, 0x45, 0x08, 0x12, 0xe7, 0x45, 0x08, 0x06, 0x08
+ .byte 0x01, 0x01, 0x83, 0xe6, 0x45, 0x08, 0x12, 0xe7, 0x45, 0x08, 0x03, 0xff, 0x4c, 0xe6, 0x45, 0x08, 0x04, 0x02, 0x02, 0xbc, 0xd9, 0xe7, 0xe9, 0xd7, 0xdc, 0xd9, 0x00, 0xd8, 0xd9, 0xdd, 0xe2, 0xd9
+ .byte 0xe2, 0x00, 0xd0, 0xd5, 0xe8, 0xd9, 0xe6, 0x00, 0xdd, 0xe2, 0x00, 0xd8, 0xd9, 0xe6, 0x00, 0xbb, 0xcc, 0xbf, 0xc8, 0xbb, 0xfe, 0xea, 0xe3, 0xe2, 0x00, 0xbc, 0xc6, 0xf3, 0xce, 0xbf, 0xc8, 0xbc
+ .byte 0xcf, 0xcc, 0xc1, 0x00, 0xbd, 0xc3, 0xce, 0xd3, 0xad, 0xff, 0xb8, 0x83, 0xe6, 0x45, 0x08, 0x47, 0xa9, 0x00, 0x01, 0x00, 0x21, 0x0d, 0x80, 0x01, 0x00, 0xbb, 0x01, 0xbf, 0xe6, 0x45, 0x08, 0x4a
+ .byte 0xa9, 0x00, 0x01, 0x00, 0x21, 0x0d, 0x80, 0x01, 0x00, 0xbb, 0x01, 0xbf, 0xe6, 0x45, 0x08, 0x6a, 0x5a, 0xbd, 0xc0, 0xe6, 0x45, 0x08, 0x66, 0x6d, 0x1a, 0x00, 0x80, 0xa9, 0x00, 0x1a, 0x01, 0x80
+ .byte 0x01, 0x00, 0x09, 0x00, 0x6c, 0x0d, 0x0c, 0xd0, 0xbb, 0xce, 0xbf, 0xcc, 0xf0, 0x00, 0xc2, 0xdd, 0xb8, 0x00, 0xfd, 0x01, 0xab, 0xfb, 0xc3, 0xd7, 0xdc, 0x00, 0xdc, 0xd5, 0xd6, 0xd9, 0x00, 0xdb
+ .byte 0xd9, 0xe6, 0xd5, 0xd8, 0xd9, 0x00, 0xd8, 0xdd, 0xd9, 0xe7, 0xd9, 0x00, 0xe7, 0xd9, 0xe0, 0xe8, 0xd9, 0xe2, 0xd9, 0x00, 0xbc, 0xbf, 0xbf, 0xcc, 0xbf, 0xfe, 0xd9, 0xe6, 0xdc, 0xd5, 0xe0, 0xe8
+ .byte 0xd9, 0xe2, 0xad, 0x00, 0xc3, 0xd7, 0xdc, 0x00, 0xe7, 0xd7, 0xdc, 0xd9, 0xe2, 0xdf, 0xd9, 0x00, 0xe7, 0xdd, 0xd9, 0x00, 0xd8, 0xdd, 0xe6, 0xab, 0xff
+
+gUnknown_Debug_845E712::
+ .byte 0x01, 0x12, 0xe7, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe7, 0x45, 0x08, 0x97, 0xe7, 0x45, 0x08, 0x05, 0x36
+ .byte 0xe7, 0x45, 0x08, 0x02, 0xb8, 0x36, 0xe7, 0x45, 0x08, 0x81, 0x00, 0x78, 0x00, 0x4b, 0x78, 0x00, 0x21, 0x0d, 0x80, 0x00, 0x00, 0xbb, 0x01, 0x55, 0xe7, 0x45, 0x08, 0xbe, 0x5d, 0xe7, 0x45, 0x08
+ .byte 0x0e, 0x02, 0x02, 0xbe, 0x71, 0xe7, 0x45, 0x08, 0x0e, 0x03, 0x02, 0xfd, 0x02, 0x00, 0xeb, 0xe9, 0xe6, 0xd8, 0xd9, 0x00, 0xf6, 0xd6, 0xd9, 0xe6, 0xdb, 0xd9, 0xd6, 0xd9, 0xe2, 0xad, 0xff, 0xbf
+ .byte 0xe7, 0x00, 0xdd, 0xe7, 0xe8, 0x00, 0xdf, 0xd9, 0xdd, 0xe2, 0x00, 0xca, 0xe0, 0xd5, 0xe8, 0xee, 0x00, 0xda, 0xf6, 0xe6, 0x00, 0xfd, 0x02, 0xfe, 0xea, 0xe3, 0xe6, 0xdc, 0xd5, 0xe2, 0xd8, 0xd9
+ .byte 0xe2, 0xad, 0xad, 0xad, 0xff
+
+gUnknown_Debug_845E797::
+ .byte 0x01, 0x97, 0xe7, 0x45, 0x08, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xe7, 0x45, 0x08, 0xbb, 0xe7, 0x45, 0x08
+
+gUnknown_Debug_845E7B5::
+ .byte 0x0b, 0x01, 0x03, 0x0d, 0x00, 0x02
+
+gUnknown_Debug_845E7BB::
+ .byte 0x00
+
+.endif
+
diff --git a/data/debug_menu_nohara.s b/data/debug_menu_nohara.s
new file mode 100644
index 000000000..269a0d550
--- /dev/null
+++ b/data/debug_menu_nohara.s
@@ -0,0 +1,229 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .if DEBUG
+
+ .align 2
+gUnknown_Debug_083C48C4:: @ 0x83C48C4
+ .string "TV$"
+
+gUnknown_Debug_083C48C7:: @ 0x83C48C7
+ .string "Fan$"
+
+gUnknown_Debug_083C48CB:: @ 0x83C48CB
+ .string "Battle (vs Dad)$"
+
+gUnknown_Debug_083C48DB:: @ 0x83C48DB
+ .string "Dad after battle$"
+
+gUnknown_Debug_083C48EC:: @ 0x83C48EC
+ .string "SOOTOPOLIS CITY$"
+
+gUnknown_Debug_083C48FC:: @ 0x83C48FC
+ .string "Embark$"
+
+gUnknown_Debug_083C4903:: @ 0x83C4903
+ .string "Yes 9999$"
+
+gUnknown_Debug_083C490C:: @ 0x83C490C
+ .string "Legends flag ON$"
+
+gUnknown_Debug_083C491C:: @ 0x83C491C
+ .string "Add num of winning streaks$"
+
+ .align 2
+gUnknown_Debug_083C4938:: @ 0x83C4938
+ .4byte gUnknown_Debug_083C48C4, NoharaDebugMenu_TV+1
+ .4byte gUnknown_Debug_083C48C7, NoharaDebugMenu_Fan+1
+ .4byte gUnknown_Debug_083C48CB, NoharaDebugMenu_BattleVSDad+1
+ .4byte gUnknown_Debug_083C48DB, NoharaDebugMenu_DadAfterBattle+1
+ .4byte gUnknown_Debug_083C48EC, NoharaDebugMenu_SootopolisCity+1
+ .4byte gUnknown_Debug_083C48FC, NoharaDebugMenu_Embark+1
+ .4byte gUnknown_Debug_083C4903, NoharaDebugMenu_Yes9999+1
+ .4byte gUnknown_Debug_083C490C, NoharaDebugMenu_LegendsFlagOn+1
+ .4byte gUnknown_Debug_083C491C, NoharaDebugMenu_AddNumWinningStreaks+1
+
+gUnknown_Debug_083C4980:: @ 0x83C4980
+ .string "Want to change data type{CLEAR_TO 143}Press Left\n"
+ .string "to see secret type now?{CLEAR_TO 143}to switch$"
+
+gUnknown_Debug_083C49CA:: @ 0x83C49CA
+ .string "Choose the TV data you wish to\n"
+ .string "create to check a transmission。$"
+
+gUnknown_Debug_083C4A09:: @ 0x83C4A09
+ .string "ほうそうの はっせいりつを セット\n"
+ .string "してください ?ぶんの1に なります$"
+
+gUnknown_Debug_083C4A2E:: @ 0x83C4A2E
+ .string "SURVEY$"
+
+gUnknown_Debug_083C4A35:: @ 0x83C4A35
+ .string "RECENT HAPPENINGS$"
+
+gUnknown_Debug_083C4A47:: @ 0x83C4A47
+ .string "POKひMON FAN CLUB$"
+
+gUnknown_Debug_083C4A58:: @ 0x83C4A58
+ .string "ジム$"
+
+gUnknown_Debug_083C4A5B:: @ 0x83C4A5B
+ .string "OUTBREAKS$"
+
+gUnknown_Debug_083C4A65:: @ 0x83C4A65
+ .string "NAME RATER$"
+
+gUnknown_Debug_083C4A70:: @ 0x83C4A70
+ .string "CONTEST$"
+
+gUnknown_Debug_083C4A78:: @ 0x83C4A78
+ .string "INTRODUCTION$"
+
+gUnknown_Debug_083C4A85:: @ 0x83C4A85
+ .string "SHOPPING$"
+
+gUnknown_Debug_083C4A8E:: @ 0x83C4A8E
+ .string "MISFORTUNE$"
+
+gUnknown_Debug_083C4A99:: @ 0x83C4A99
+ .string "FISHING$"
+
+gUnknown_Debug_083C4AA1:: @ 0x83C4AA1
+ .string "MEMORABLE DAY$"
+
+gUnknown_Debug_083C4AAF:: @ 0x83C4AAF
+ .string "BRAVO TRAINER$"
+
+gUnknown_Debug_083C4ABD:: @ 0x83C4ABD
+ .string "あいうるおかなにぬねのき   んぼざくゅぼざくびぼざくサぼざくナぼざくミぼざくリぼざくュぼざくズぼざくベぼざく0ぼざく·ぼざくBIG SALE$"
+
+gUnknown_Debug_083C4B05:: @ 0x83C4B05
+ .string "SERVICE DAY$"
+
+gUnknown_Debug_083C4B11:: @ 0x83C4B11
+ .string "CLEARーOUT SALE$"
+
+gUnknown_Debug_083C4B20:: @ 0x83C4B20
+ .string "あいう {0xFC}ぼざくおぱざくちぱざく"
+
+gUnknown_Debug_083C4B30:: @ 0x83C4B30
+ .string "Secret type$"
+
+gUnknown_Debug_083C4B3C:: @ 0x83C4B3C
+ .string "Start$"
+
+gUnknown_Debug_083C4B42:: @ 0x83C4B42
+ .string "Create TV$"
+
+gUnknown_Debug_083C4B4C:: @ 0x83C4B4C
+ .string "All clear$"
+
+gUnknown_Debug_083C4B56:: @ 0x83C4B56
+ .string "All seen$"
+
+gUnknown_Debug_083C4B5F:: @ 0x83C4B5F
+ .string "Create CM$"
+
+gUnknown_Debug_083C4B69:: @ 0x83C4B69
+ .string "Not yet seen$"
+
+gUnknown_Debug_083C4B76:: @ 0x83C4B76
+ .string "Hit Table$"
+
+gUnknown_Debug_083C4B80:: @ 0x83C4B80
+ .string "Set full$"
+
+ .align 2
+gUnknown_Debug_083C4B8C:: @ 0x83C4B8C
+ .4byte gUnknown_Debug_083C4B30, debug_sub_808F4EC+1
+ .4byte gUnknown_Debug_083C4B3C, debug_sub_808F8AC+1
+ .4byte gUnknown_Debug_083C4B42, debug_sub_808F8CC+1
+ .4byte gUnknown_Debug_083C4B4C, debug_sub_808FEBC+1
+ .4byte gUnknown_Debug_083C4B56, debug_sub_808F560+1
+ .4byte gUnknown_Debug_083C4B5F, debug_sub_808FECC+1
+ .4byte gUnknown_Debug_083C4B69, debug_sub_808F594+1
+ .4byte gUnknown_Debug_083C4B76, debug_sub_808F5D8+1
+ .4byte gUnknown_Debug_083C4B80, debug_sub_80900AC+1
+
+gUnknown_Debug_083C4BD4:: @ 0x83C4BD4
+ .string "しえ          しく          しこ          せか          せく          せこ          たえ          たか          たこ          つえ          つか          つこ          "
+
+gUnknown_Debug_083C4C64:: @ 0x83C4C64
+ .string "TERUKUN$"
+
+gUnknown_Debug_083C4C6C:: @ 0x83C4C6C
+ .string "TERUTERUDA$"
+
+gUnknown_Debug_083C4C77:: @ 0x83C4C77
+ .string "1 スクル$"
+
+gUnknown_Debug_083C4C7D:: @ 0x83C4C7D
+ .string "2 ミドル$"
+
+gUnknown_Debug_083C4C83:: @ 0x83C4C83
+ .string "3 オジヨ$"
+
+gUnknown_Debug_083C4C89:: @ 0x83C4C89
+ .string "4 ボーヤ$"
+
+gUnknown_Debug_083C4C8F:: @ 0x83C4C8F
+ .string "5 ボーイ$"
+
+gUnknown_Debug_083C4C95:: @ 0x83C4C95
+ .string "6 ヤング$"
+
+gUnknown_Debug_083C4C9B:: @ 0x83C4C9B
+ .string "7 ヲーカ$"
+
+gUnknown_Debug_083C4CA1:: @ 0x83C4CA1
+ .string "8 オルド$"
+
+ .align 2
+gUnknown_Debug_083C4CA8:: @ 0x83C4CA8
+ .4byte gUnknown_Debug_083C4C77, gUnknown_Debug_083C4C7D
+ .4byte gUnknown_Debug_083C4C83, gUnknown_Debug_083C4C89
+ .4byte gUnknown_Debug_083C4C8F, gUnknown_Debug_083C4C95
+ .4byte gUnknown_Debug_083C4C9B, gUnknown_Debug_083C4CA1
+
+gUnknown_Debug_083C4CC8:: @ 0x83C4CC8
+ .string "Start$"
+
+gUnknown_Debug_083C4CCE:: @ 0x83C4CCE
+ .string "Increase$"
+
+gUnknown_Debug_083C4CD7:: @ 0x83C4CD7
+ .string "Reduce$"
+
+gUnknown_Debug_083C4CDE:: @ 0x83C4CDE
+ .string "Points$"
+
+gUnknown_Debug_083C4CE5:: @ 0x83C4CE5
+ .string "Play time 6$"
+
+gUnknown_Debug_083C4CF1:: @ 0x83C4CF1
+ .string "P ELITE FOUR$"
+
+gUnknown_Debug_083C4CFE:: @ 0x83C4CFE
+ .string "P SECRET BASE$"
+
+gUnknown_Debug_083C4D0C:: @ 0x83C4D0C
+ .string "P CONTEST$"
+
+gUnknown_Debug_083C4D16:: @ 0x83C4D16
+ .string "P BATTLE TOWER$"
+
+ .align 2
+gUnknown_Debug_083C4D28:: @ 0x83C4D28
+ .4byte gUnknown_Debug_083C4CC8, debug_sub_80901E4+1
+ .4byte gUnknown_Debug_083C4CCE, debug_sub_80901F8+1
+ .4byte gUnknown_Debug_083C4CD7, debug_sub_8090238+1
+ .4byte gUnknown_Debug_083C4CDE, debug_sub_809029C+1
+ .4byte gUnknown_Debug_083C4CE5, debug_sub_80902E4+1
+ .4byte gUnknown_Debug_083C4CF1, debug_sub_80902FC+1
+ .4byte gUnknown_Debug_083C4CFE, debug_sub_8090310+1
+ .4byte gUnknown_Debug_083C4D0C, debug_sub_8090324+1
+ .4byte gUnknown_Debug_083C4D16, debug_sub_8090338+1
+
+ .endif
diff --git a/data/debug_menu_taya.s b/data/debug_menu_taya.s
new file mode 100644
index 000000000..4bd8239f4
--- /dev/null
+++ b/data/debug_menu_taya.s
@@ -0,0 +1,219 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .if DEBUG
+
+gUnknown_Debug_083C4E54:: @ 0x83C4E54
+ .string "Profile$"
+
+gUnknown_Debug_083C4E5C:: @ 0x83C4E5C
+ .string "Battle’s start$"
+
+gUnknown_Debug_083C4E6B:: @ 0x83C4E6B
+ .string "Good saying$"
+
+gUnknown_Debug_083C4E77:: @ 0x83C4E77
+ .string "Lose a battle$"
+
+gUnknown_Debug_083C4E85:: @ 0x83C4E85
+ .string "MAIL$"
+
+gUnknown_Debug_083C4E8A:: @ 0x83C4E8A
+ .string "MAIL salutation$"
+
+gUnknown_Debug_083C4E9A:: @ 0x83C4E9A
+ .string "BARD’s song$"
+
+gUnknown_Debug_083C4EA6:: @ 0x83C4EA6
+ .string "Interview$"
+
+gUnknown_Debug_083C4EB0:: @ 0x83C4EB0
+ .string "InterviewシBTス$"
+
+ .align 2
+gUnknown_Debug_083C4EC0:: @ 0x83C4EC0
+ .4byte gUnknown_Debug_083C4E54, 0x0
+ .4byte gUnknown_Debug_083C4E5C, 0x1
+ .4byte gUnknown_Debug_083C4E6B, 0xD
+ .4byte gUnknown_Debug_083C4E77, 0x3
+ .4byte gUnknown_Debug_083C4E85, 0x4
+ .4byte gUnknown_Debug_083C4E8A, 0x5
+ .4byte gUnknown_Debug_083C4E9A, 0x6
+ .4byte gUnknown_Debug_083C4EA6, 0x7
+ .4byte gUnknown_Debug_083C4EB0, 0xC
+
+gUnknown_Debug_083C4F08:: @ 0x83C4F08
+ .string "サえぃえそい"
+
+gUnknown_Debug_083C4F0E:: @ 0x83C4F0E
+ .string "BARD$"
+
+gUnknown_Debug_083C4F13:: @ 0x83C4F13
+ .string "HIPSTER$"
+
+gUnknown_Debug_083C4F1B:: @ 0x83C4F1B
+ .string "RECYCLE$"
+
+gUnknown_Debug_083C4F23:: @ 0x83C4F23
+ .string "STORYTELLER$"
+
+gUnknown_Debug_083C4F2F:: @ 0x83C4F2F
+ .string "GIDDY GUY$"
+
+gUnknown_Debug_083C4F39:: @ 0x83C4F39
+ .string "Flag OFF$"
+
+gUnknown_Debug_083C4F42:: @ 0x83C4F42
+ .string "21 letters$"
+
+gUnknown_Debug_083C4F4D:: @ 0x83C4F4D
+ .string "ナウくなる$"
+
+ .align 2
+gUnknown_Debug_083C4F54:: @ 0x83C4F54
+ .4byte gUnknown_Debug_083C4F0E, 0x0
+ .4byte gUnknown_Debug_083C4F13, 0x0
+ .4byte gUnknown_Debug_083C4F1B, 0x0
+ .4byte gUnknown_Debug_083C4F23, 0x0
+ .4byte gUnknown_Debug_083C4F2F, 0x0
+ .4byte gUnknown_Debug_083C4F39, 0x0
+ .4byte gUnknown_Debug_083C4F42, 0x0
+ .4byte gUnknown_Debug_083C4F4D, 0x0
+
+gUnknown_Debug_083C4F94:: @ 0x83C4F94
+ .string "しょうしょうおまちください!$"
+
+gUnknown_Debug_083C4FA3:: @ 0x83C4FA3
+ .string "Weather$"
+
+gUnknown_Debug_083C4FAB:: @ 0x83C4FAB
+ .string "LANETTE’S PC$"
+
+gUnknown_Debug_083C4FB8:: @ 0x83C4FB8
+ .string "SimpleText$"
+
+gUnknown_Debug_083C4FC3:: @ 0x83C4FC3
+ .string "Old man$"
+
+gUnknown_Debug_083C4FCB:: @ 0x83C4FCB
+ .string "Trend$"
+
+gUnknown_Debug_083C4FD1:: @ 0x83C4FD1
+ .string "Trend R$"
+
+gUnknown_Debug_083C4FD9:: @ 0x83C4FD9
+ .string "Town flag$"
+
+gUnknown_Debug_083C4FE3:: @ 0x83C4FE3
+ .string "Award a ribbon$"
+
+gUnknown_Debug_083C4FF2:: @ 0x83C4FF2
+ .string "{PKMN}LOTTERY$"
+
+gUnknown_Debug_083C4FFC:: @ 0x83C4FFC
+ .string "Trainer$"
+
+gUnknown_Debug_083C5004:: @ 0x83C5004
+ .string "POKéNAV D$"
+
+ .align 2
+gUnknown_Debug_083C5010:: @ 0x83C5010
+ .4byte gUnknown_Debug_083C4FA3, debug_sub_808560C+1
+ .4byte gUnknown_Debug_083C4FAB, TayaDebugMenu_LanettesPC+1
+ .4byte gUnknown_Debug_083C4FB8, TayaDebugMenu_SimpleText+1
+ .4byte gUnknown_Debug_083C4FC3, TayaDebugMenu_OldMan+1
+ .4byte gUnknown_Debug_083C4FCB, TayaDebugMenu_Trend+1
+ .4byte gUnknown_Debug_083C4FD1, TayaDebugMenu_TrendR+1
+ .4byte gUnknown_Debug_083C4FD9, TayaDebugMenu_TownFlags+1
+ .4byte gUnknown_Debug_083C4FE3, TayaDebugMenu_AwardARibbon+1
+ .4byte gUnknown_Debug_083C4FF2, TayaDebugMenu_PKMNLottery+1
+
+gUnknown_Debug_083C5058:: @ 0x83C5058
+ .4byte gUnknown_Debug_083C4FFC, TayaDebugMenu_Trainer+1
+ .4byte gUnknown_Debug_083C5004, TayaDebugMenu_PokenavD+1
+
+gUnknown_Debug_83C5068::
+ .4byte gUnknown_Debug_083C5010, 0x9
+ .4byte gUnknown_Debug_083C5058, 0x2
+
+gUnknown_Debug_083C5078:: @ 0x83C5078
+ .string "CHANP$"
+
+gUnknown_Debug_083C507E:: @ 0x83C507E
+ .string "COOL$"
+
+gUnknown_Debug_083C5083:: @ 0x83C5083
+ .string "BEAUTY$"
+
+gUnknown_Debug_083C508A:: @ 0x83C508A
+ .string "CUTE$"
+
+gUnknown_Debug_083C508F:: @ 0x83C508F
+ .string "SMART$"
+
+gUnknown_Debug_083C5095:: @ 0x83C5095
+ .string "TOUGH$"
+
+gUnknown_Debug_083C509B:: @ 0x83C509B
+ .string "WIN$"
+
+gUnknown_Debug_083C509F:: @ 0x83C509F
+ .string "VICTORY$"
+
+gUnknown_Debug_083C50A7:: @ 0x83C50A7
+ .string "BROMIDE$"
+
+gUnknown_Debug_083C50AF:: @ 0x83C50AF
+ .string "ACCESSIT$"
+
+gUnknown_Debug_083C50B8:: @ 0x83C50B8
+ .string "MARINE$"
+
+gUnknown_Debug_083C50BF:: @ 0x83C50BF
+ .string "LAND$"
+
+gUnknown_Debug_083C50C4:: @ 0x83C50C4
+ .string "SKY$"
+
+gUnknown_Debug_083C50C8:: @ 0x83C50C8
+ .string "COUNTRY$"
+
+gUnknown_Debug_083C50D0:: @ 0x83C50D0
+ .string "NATIONAL$"
+
+gUnknown_Debug_083C50D9:: @ 0x83C50D9
+ .string "EARTH$"
+
+gUnknown_Debug_083C50DF:: @ 0x83C50DF
+ .string "WORLD$"
+
+gUnknown_Debug_083C50E5:: @ 0x83C50E5
+ .string "     $"
+
+ .align 2
+gUnknown_Debug_083C50EC:: @ 0x83C50EC
+ .4byte gUnknown_Debug_083C5078, 0x43
+ .4byte gUnknown_Debug_083C507E, 0x32
+ .4byte gUnknown_Debug_083C5083, 0x33
+ .4byte gUnknown_Debug_083C508A, 0x34
+ .4byte gUnknown_Debug_083C508F, 0x35
+ .4byte gUnknown_Debug_083C5095, 0x36
+ .4byte gUnknown_Debug_083C509B, 0x44
+ .4byte gUnknown_Debug_083C509F, 0x45
+ .4byte gUnknown_Debug_083C50A7, 0x46
+ .4byte gUnknown_Debug_083C50AF, 0x47
+ .4byte gUnknown_Debug_083C50B8, 0x48
+ .4byte gUnknown_Debug_083C50BF, 0x49
+ .4byte gUnknown_Debug_083C50C4, 0x4A
+ .4byte gUnknown_Debug_083C50C8, 0x4B
+ .4byte gUnknown_Debug_083C50D0, 0x4C
+ .4byte gUnknown_Debug_083C50D9, 0x4D
+ .4byte gUnknown_Debug_083C50DF, 0x4E
+ .4byte gUnknown_Debug_083C50E5, 0x0
+
+gUnknown_Debug_083C517C:: @ 0x83C517C
+ .string "Select Ribbon$"
+
+ .endif
diff --git a/data/debug_menu_tomomichi.s b/data/debug_menu_tomomichi.s
new file mode 100644
index 000000000..19401bb85
--- /dev/null
+++ b/data/debug_menu_tomomichi.s
@@ -0,0 +1,2711 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .if DEBUG
+
+gUnknown_Debug_083C0C54:: @ 0x83C0C54
+ .string "Contest graphics$"
+
+gUnknown_Debug_083C0C65:: @ 0x83C0C65
+ .string "Art Mus. graphics$"
+
+gUnknown_Debug_083C0C77:: @ 0x83C0C77
+ .string "Preview data$"
+
+gUnknown_Debug_083C0C84:: @ 0x83C0C84
+ .string "TRICK HOUSE$"
+
+gUnknown_Debug_083C0C90:: @ 0x83C0C90
+ .string "Control events$"
+
+gUnknown_Debug_083C0C9F:: @ 0x83C0C9F
+ .string "Control flags$"
+
+gUnknown_Debug_083C0CAD:: @ 0x83C0CAD
+ .string "Control WORK$"
+
+ .align 2
+gUnknown_Debug_083C0CBA:: @ 0x83C0CBA
+ .4byte gUnknown_Debug_083C0C54, TomomichiDebugMenu_ContestGraphics+1
+ .4byte gUnknown_Debug_083C0C65, TomomichiDebugMenu_ArtMusGraphics+1
+ .4byte gUnknown_Debug_083C0C77, TomomichiDebugMenu_PreviewData+1
+ .4byte gUnknown_Debug_083C0C84, TomomichiDebugMenu_TrickHouse+1
+ .4byte gUnknown_Debug_083C0C90, TomomichiDebugMenu_ControlEvents+1
+ .4byte gUnknown_Debug_083C0C9F, TomomichiDebugMenu_ControlFlags+1
+ .4byte gUnknown_Debug_083C0CAD, TomomichiDebugMenu_ControlWorks+1
+
+gUnknown_Debug_083C0CF4:: @ 0x83C0CF4
+ .string "Contest$"
+
+gUnknown_Debug_083C0CFC:: @ 0x83C0CFC
+ .string "Pokémon No.$"
+
+gUnknown_Debug_083C0D08:: @ 0x83C0D08
+ .string "ID rnd. digit$"
+
+gUnknown_Debug_083C0D16:: @ 0x83C0D16
+ .string "Contest Type$"
+
+gUnknown_Debug_083C0D23:: @ 0x83C0D23
+ .string "Poké Art$"
+
+ .align 2
+gUnknown_Debug_083C0D2C:: @ 0x83C0D2C
+ .4byte gUnknown_Debug_083C0CFC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0D08, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0D16, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0D23, TomomichiDebugMenu_ContestGraphics_Show+1
+
+gUnknown_Debug_083C0D4C:: @ 0x83C0D4C
+ .string "Art Mus.$"
+
+gUnknown_Debug_083C0D55:: @ 0x83C0D55
+ .string "Pokémon No.$"
+
+gUnknown_Debug_083C0D61:: @ 0x83C0D61
+ .string "ID rnd. digit$"
+
+gUnknown_Debug_083C0D6F:: @ 0x83C0D6F
+ .string "Title Type$"
+
+gUnknown_Debug_083C0D7A:: @ 0x83C0D7A
+ .string "Poké Art$"
+
+ .align 2
+gUnknown_Debug_083C0D83:: @ 0x83C0D83
+ .4byte gUnknown_Debug_083C0D55, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0D61, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0D6F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0D7A, TomomichiDebugMenu_MuseumGraphics_Show+1
+
+gUnknown_Debug_083C0DA4:: @ 0x83C0DA4
+ .string "Preview$"
+
+gUnknown_Debug_083C0DAC:: @ 0x83C0DAC
+ .string "Pokémon No.$"
+
+gUnknown_Debug_083C0DB8:: @ 0x83C0DB8
+ .string "ID rnd. digit$"
+
+gUnknown_Debug_083C0DC6:: @ 0x83C0DC6
+ .string "Type$"
+
+gUnknown_Debug_083C0DCB:: @ 0x83C0DCB
+ .string "Poké Art$"
+
+ .align 2
+gUnknown_Debug_083C0DD4:: @ 0x83C0DD4
+ .4byte gUnknown_Debug_083C0DAC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0DB8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0DC6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C0DCB, debug_sub_808ECA4+1
+
+gUnknown_Debug_083C0DF4:: @ 0x83C0DF4
+ .string "Trick related$"
+
+gUnknown_Debug_083C0E02:: @ 0x83C0E02
+ .string "Level$"
+
+gUnknown_Debug_083C0E08:: @ 0x83C0E08
+ .string "Trick Master$"
+
+ .align 2
+gUnknown_Debug_083C0E15:: @ 0x83C0E15
+ .4byte gUnknown_Debug_083C0E02, debug_sub_808EB58+1
+ .4byte gUnknown_Debug_083C0E08, debug_sub_808EBB4+1
+
+gUnknown_Debug_083C0E28:: @ 0x83C0E28
+ .string "パート1$"
+
+gUnknown_Debug_083C0E2D:: @ 0x83C0E2D
+ .string "パート2$"
+
+ .align 2
+gUnknown_Debug_083C0E32:: @ 0x83C0E32
+ .4byte gUnknown_Debug_083C0E28, debug_sub_808BFC4+1
+ .4byte gUnknown_Debug_083C0E2D, debug_sub_808C014+1
+
+gUnknown_Debug_083C0E44:: @ 0x83C0E44
+ .string "イベントFLAG$"
+
+gUnknown_Debug_083C0E4D:: @ 0x83C0E4D
+ .string "バニシュFLAG$"
+
+gUnknown_Debug_083C0E56:: @ 0x83C0E56
+ .string "トレーナーFLAG$"
+
+gUnknown_Debug_083C0E60:: @ 0x83C0E60
+ .string "SYSFLAG$"
+
+gUnknown_Debug_083C0E68:: @ 0x83C0E68
+ .string "BALLバニシュFLAG$"
+
+gUnknown_Debug_083C0E75:: @ 0x83C0E75
+ .string "FH$"
+
+gUnknown_Debug_083C0E78:: @ 0x83C0E78
+ .string "FH-OBJ$"
+
+ .align 2
+gUnknown_Debug_083C0E7F:: @ 0x83C0E7F
+ .4byte gUnknown_Debug_083C0E44, debug_sub_808C31C+1
+ .4byte gUnknown_Debug_083C0E4D, debug_sub_808C7C8+1
+ .4byte gUnknown_Debug_083C0E56, debug_sub_808CC74+1
+ .4byte gUnknown_Debug_083C0E60, debug_sub_808CF10+1
+ .4byte gUnknown_Debug_083C0E68, debug_sub_808D844+1
+ .4byte gUnknown_Debug_083C0E75, debug_sub_808D600+1
+ .4byte gUnknown_Debug_083C0E78, debug_sub_808D3BC+1
+
+gUnknown_Debug_083C0EB8:: @ 0x83C0EB8
+ .string "SAVEWORK$"
+
+gUnknown_Debug_083C0EC1:: @ 0x83C0EC1
+ .string "SYSWORK$"
+
+gUnknown_Debug_083C0EC9:: @ 0x83C0EC9
+ .string "LOCALWORK$"
+
+gUnknown_Debug_083C0ED3:: @ 0x83C0ED3
+ .string "OBJWORK$"
+
+gUnknown_Debug_083C0EDB:: @ 0x83C0EDB
+ .string "ANSWORK$"
+
+gUnknown_Debug_083C0EE3:: @ 0x83C0EE3
+ .string "SAVEWORK パート2$"
+
+ .align 2
+gUnknown_Debug_083C0EF1:: @ 0x83C0EF1
+ .4byte gUnknown_Debug_083C0EB8, debug_sub_808DB0C+1
+ .4byte gUnknown_Debug_083C0EC1, debug_sub_808E36C+1
+ .4byte gUnknown_Debug_083C0EC9, debug_sub_808E6C0+1
+ .4byte gUnknown_Debug_083C0ED3, debug_sub_808E90C+1
+ .4byte gUnknown_Debug_083C0EDB, debug_sub_808DA30+1
+ .4byte gUnknown_Debug_083C0EE3, debug_sub_808DFC0+1
+
+gUnknown_Debug_083C0F24:: @ 0x83C0F24
+ .string "クリアご$"
+
+gUnknown_Debug_083C0F29:: @ 0x83C0F29
+ .string "コインこうにゅうかのう$"
+
+gUnknown_Debug_083C0F35:: @ 0x83C0F35
+ .string "コトキサポーターセット$"
+
+gUnknown_Debug_083C0F41:: @ 0x83C0F41
+ .string "ニューキンセツOPEN$"
+
+gUnknown_Debug_083C0F4D:: @ 0x83C0F4D
+ .string "れんらくせんにのれる$"
+
+gUnknown_Debug_083C0F58:: @ 0x83C0F58
+ .string "タマゴついか$"
+
+gUnknown_Debug_083C0F5F:: @ 0x83C0F5F
+ .string "アイテムいっぱい$"
+
+gUnknown_Debug_083C0F68:: @ 0x83C0F68
+ .string "グッズいっぱい$"
+
+gUnknown_Debug_083C0F70:: @ 0x83C0F70
+ .string "COINいっぱい$"
+
+ .align 2
+gUnknown_Debug_083C0F79:: @ 0x83C0F79
+ .4byte gUnknown_Debug_083C0F24, debug_sub_808C0EC+1
+ .4byte gUnknown_Debug_083C0F29, debug_sub_808C104+1
+ .4byte gUnknown_Debug_083C0F35, debug_sub_808C11C+1
+ .4byte gUnknown_Debug_083C0F41, debug_sub_808C134+1
+ .4byte gUnknown_Debug_083C0F4D, debug_sub_808C14C+1
+ .4byte gUnknown_Debug_083C0F58, debug_sub_808C164+1
+ .4byte gUnknown_Debug_083C0F5F, debug_sub_808C17C+1
+ .4byte gUnknown_Debug_083C0F68, debug_sub_808C194+1
+ .4byte gUnknown_Debug_083C0F70, debug_sub_808C1AC+1
+
+gUnknown_Debug_083C0FC4:: @ 0x83C0FC4
+ .string "ムロジムOPEN$"
+
+gUnknown_Debug_083C0FCD:: @ 0x83C0FCD
+ .string "おかねを0へ$"
+
+gUnknown_Debug_083C0FD4:: @ 0x83C0FD4
+ .string "ドジョッチ FULL$"
+
+gUnknown_Debug_083C0FDF:: @ 0x83C0FDF
+ .string "キノココ FULL$"
+
+gUnknown_Debug_083C0FE9:: @ 0x83C0FE9
+ .string "ドジョッチ タマゴ$"
+
+gUnknown_Debug_083C0FF3:: @ 0x83C0FF3
+ .string "キノココ タマゴ$"
+
+ .align 2
+gUnknown_Debug_083C0FFC:: @ 0x83C0FFC
+ .4byte gUnknown_Debug_083C0FC4, debug_sub_808C1C4+1
+ .4byte gUnknown_Debug_083C0FCD, debug_sub_808C1DC+1
+ .4byte gUnknown_Debug_083C0FD4, debug_sub_808C1F4+1
+ .4byte gUnknown_Debug_083C0FDF, debug_sub_808C20C+1
+ .4byte gUnknown_Debug_083C0FE9, debug_sub_808C224+1
+ .4byte gUnknown_Debug_083C0FF3, debug_sub_808C23C+1
+
+gUnknown_Debug_083C102C:: @ 0x83C102C
+ .string "ANSWORK みかんせい$"
+
+ .align 2
+gUnknown_Debug_083C103A:: @ 0x83C103A
+ .4byte gUnknown_Debug_083C102C, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1044:: @ 0x83C1044
+ .string "FHーOBJ00ー08$"
+
+gUnknown_Debug_083C1050:: @ 0x83C1050
+ .string "FHーOBJ09ー15$"
+
+ .align 2
+gUnknown_Debug_083C105C:: @ 0x83C105C
+ .4byte gUnknown_Debug_083C1044, debug_sub_808D450+1
+ .4byte gUnknown_Debug_083C1050, debug_sub_808D4A8+1
+
+gUnknown_Debug_083C106C:: @ 0x83C106C
+ .string "FHーOBJ00$"
+
+gUnknown_Debug_083C1075:: @ 0x83C1075
+ .string "FHーOBJ01$"
+
+gUnknown_Debug_083C107E:: @ 0x83C107E
+ .string "FHーOBJ02$"
+
+gUnknown_Debug_083C1087:: @ 0x83C1087
+ .string "FHーOBJ03$"
+
+gUnknown_Debug_083C1090:: @ 0x83C1090
+ .string "FHーOBJ04$"
+
+gUnknown_Debug_083C1099:: @ 0x83C1099
+ .string "FHーOBJ05$"
+
+gUnknown_Debug_083C10A2:: @ 0x83C10A2
+ .string "FHーOBJ06$"
+
+gUnknown_Debug_083C10AB:: @ 0x83C10AB
+ .string "FHーOBJ07$"
+
+gUnknown_Debug_083C10B4:: @ 0x83C10B4
+ .string "FHーOBJ08$"
+
+ .align 2
+gUnknown_Debug_083C10BD:: @ 0x83C10BD
+ .4byte gUnknown_Debug_083C106C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1075, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C107E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1087, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1090, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1099, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C10A2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C10AB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C10B4, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1108:: @ 0x83C1108
+ .string "FH-OBJ09$"
+
+gUnknown_Debug_083C1111:: @ 0x83C1111
+ .string "FH-OBJ10$"
+
+gUnknown_Debug_083C111A:: @ 0x83C111A
+ .string "FH-OBJ11$"
+
+gUnknown_Debug_083C1123:: @ 0x83C1123
+ .string "FH-OBJ12$"
+
+gUnknown_Debug_083C112C:: @ 0x83C112C
+ .string "FH-OBJ13$"
+
+gUnknown_Debug_083C1135:: @ 0x83C1135
+ .string "FH-OBJ14$"
+
+gUnknown_Debug_083C113E:: @ 0x83C113E
+ .string "FH-OBJ15$"
+
+gUnknown_Debug_083C1147:: @ 0x83C1147
+ .string "$"
+
+gUnknown_Debug_083C1148:: @ 0x83C1148
+ .string "$"
+
+ .align 2
+gUnknown_Debug_083C1149:: @ 0x83C1149
+ .4byte gUnknown_Debug_083C1108, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1111, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C111A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1123, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C112C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1135, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C113E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1147, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1148, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1194:: @ 0x83C1194
+ .byte 9, 7
+
+gUnknown_Debug_083C1196:: @ 0x83C1196
+ .2byte 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019
+ .2byte 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0000, 0x0000
+
+gUnknown_Debug_083C11BA:: @ 0x83C11BA
+ .string "FH-00-08$"
+
+gUnknown_Debug_083C11C3:: @ 0x83C11C3
+ .string "FH-09-15$"
+
+ .align 2
+gUnknown_Debug_083C11CC:: @ 0x83C11CC
+ .4byte gUnknown_Debug_083C11BA, debug_sub_808D694+1
+ .4byte gUnknown_Debug_083C11C3, debug_sub_808D6EC+1
+
+gUnknown_Debug_083C11DC:: @ 0x83C11DC
+ .string "FH-00$"
+
+gUnknown_Debug_083C11E2:: @ 0x83C11E2
+ .string "FH-01$"
+
+gUnknown_Debug_083C11E8:: @ 0x83C11E8
+ .string "FH-02$"
+
+gUnknown_Debug_083C11EE:: @ 0x83C11EE
+ .string "FH-03$"
+
+gUnknown_Debug_083C11F4:: @ 0x83C11F4
+ .string "FH-04$"
+
+gUnknown_Debug_083C11FA:: @ 0x83C11FA
+ .string "FH-05$"
+
+gUnknown_Debug_083C1200:: @ 0x83C1200
+ .string "FH-06$"
+
+gUnknown_Debug_083C1206:: @ 0x83C1206
+ .string "FH-07$"
+
+gUnknown_Debug_083C120C:: @ 0x83C120C
+ .string "FH-08$"
+
+ .align 2
+gUnknown_Debug_083C1212:: @ 0x83C1212
+ .4byte gUnknown_Debug_083C11DC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C11E2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C11E8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C11EE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C11F4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C11FA, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1200, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1206, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C120C, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C125C:: @ 0x83C125C
+ .string "FHー09$"
+
+gUnknown_Debug_083C1262:: @ 0x83C1262
+ .string "FHー10$"
+
+gUnknown_Debug_083C1268:: @ 0x83C1268
+ .string "FHー11$"
+
+gUnknown_Debug_083C126E:: @ 0x83C126E
+ .string "FHー12$"
+
+gUnknown_Debug_083C1274:: @ 0x83C1274
+ .string "FHー13$"
+
+gUnknown_Debug_083C127A:: @ 0x83C127A
+ .string "FHー14$"
+
+gUnknown_Debug_083C1280:: @ 0x83C1280
+ .string "FHー15$"
+
+gUnknown_Debug_083C1286:: @ 0x83C1286
+ .string "$"
+
+gUnknown_Debug_083C1287:: @ 0x83C1287
+ .string "$"
+
+ .align 2
+gUnknown_Debug_083C1288:: @ 0x83C1288
+ .4byte gUnknown_Debug_083C125C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1262, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1268, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C126E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1274, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C127A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1280, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1286, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1287, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C12D0:: @ 0x83C12D0
+ .byte 9, 7
+
+gUnknown_Debug_083C12D2:: @ 0x83C12D2
+ .2byte 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009
+ .2byte 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0000, 0x0000
+
+gUnknown_Debug_083C12F6:: @ 0x83C12F6
+ .string "BATCH$"
+
+gUnknown_Debug_083C12FC:: @ 0x83C12FC
+ .string "タウンとうちゃく$"
+
+gUnknown_Debug_083C1305:: @ 0x83C1305
+ .string "シティとうちゃく$"
+
+gUnknown_Debug_083C130E:: @ 0x83C130E
+ .string "GET$"
+
+gUnknown_Debug_083C1312:: @ 0x83C1312
+ .string "そのた1$"
+
+gUnknown_Debug_083C1317:: @ 0x83C1317
+ .string "そのた2$"
+
+gUnknown_Debug_083C131C:: @ 0x83C131C
+ .string "そのた3$"
+
+gUnknown_Debug_083C1321:: @ 0x83C1321
+ .string "そのた4$"
+
+gUnknown_Debug_083C1326:: @ 0x83C1326
+ .string "そのた とうちゃく$"
+
+gUnknown_Debug_083C1330:: @ 0x83C1330
+ .4byte gUnknown_Debug_083C12F6, debug_sub_808CFA4+1
+ .4byte gUnknown_Debug_083C12FC, debug_sub_808CFFC+1
+ .4byte gUnknown_Debug_083C1305, debug_sub_808D054+1
+ .4byte gUnknown_Debug_083C130E, debug_sub_808D0AC+1
+ .4byte gUnknown_Debug_083C1312, debug_sub_808D104+1
+ .4byte gUnknown_Debug_083C1317, debug_sub_808D15C+1
+ .4byte gUnknown_Debug_083C131C, debug_sub_808D1B4+1
+ .4byte gUnknown_Debug_083C1321, debug_sub_808D20C+1
+ .4byte gUnknown_Debug_083C1326, debug_sub_808D264+1
+
+gUnknown_Debug_083C1378:: @ 0x83C1378
+ .string "BATCH01ーGET$"
+
+gUnknown_Debug_083C1384:: @ 0x83C1384
+ .string "BATCH02ーGET$"
+
+gUnknown_Debug_083C1390:: @ 0x83C1390
+ .string "BATCH03ーGET$"
+
+gUnknown_Debug_083C139C:: @ 0x83C139C
+ .string "BATCH04ーGET$"
+
+gUnknown_Debug_083C13A8:: @ 0x83C13A8
+ .string "BATCH05ーGET$"
+
+gUnknown_Debug_083C13B4:: @ 0x83C13B4
+ .string "BATCH06ーGET$"
+
+gUnknown_Debug_083C13C0:: @ 0x83C13C0
+ .string "BATCH07ーGET$"
+
+gUnknown_Debug_083C13CC:: @ 0x83C13CC
+ .string "BATCH08ーGET$"
+
+gUnknown_Debug_083C13D8:: @ 0x83C13D8
+ .4byte gUnknown_Debug_083C1378, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1384, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1390, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C139C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C13A8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C13B4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C13C0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C13CC, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1418:: @ 0x83C1418
+ .string "T101ARRIVE$"
+
+gUnknown_Debug_083C1423:: @ 0x83C1423
+ .string "T102ARRIVE$"
+
+gUnknown_Debug_083C142E:: @ 0x83C142E
+ .string "T103ARRIVE$"
+
+gUnknown_Debug_083C1439:: @ 0x83C1439
+ .string "T104ARRIVE$"
+
+gUnknown_Debug_083C1444:: @ 0x83C1444
+ .string "T105ARRIVE$"
+
+gUnknown_Debug_083C144F:: @ 0x83C144F
+ .string "T106ARRIVE$"
+
+gUnknown_Debug_083C145A:: @ 0x83C145A
+ .string "T107ARRIVE$"
+
+ .align 2
+gUnknown_Debug_083C1465:: @ 0x83C1465
+ .4byte gUnknown_Debug_083C1418, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1423, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C142E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1439, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1444, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C144F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C145A, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C14A0:: @ 0x83C14A0
+ .string "C101ARRIVE$"
+
+gUnknown_Debug_083C14AB:: @ 0x83C14AB
+ .string "C102ARRIVE$"
+
+gUnknown_Debug_083C14B6:: @ 0x83C14B6
+ .string "C103ARRIVE$"
+
+gUnknown_Debug_083C14C1:: @ 0x83C14C1
+ .string "C104ARRIVE$"
+
+gUnknown_Debug_083C14CC:: @ 0x83C14CC
+ .string "C105ARRIVE$"
+
+gUnknown_Debug_083C14D7:: @ 0x83C14D7
+ .string "C106ARRIVE$"
+
+gUnknown_Debug_083C14E2:: @ 0x83C14E2
+ .string "C107ARRIVE$"
+
+gUnknown_Debug_083C14ED:: @ 0x83C14ED
+ .string "C108ARRIVE$"
+
+gUnknown_Debug_083C14F8:: @ 0x83C14F8
+ .string "C109ARRIVE$"
+
+ .align 2
+gUnknown_Debug_083C1503:: @ 0x83C1503
+ .4byte gUnknown_Debug_083C14A0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14AB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14B6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14C1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14CC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14D7, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14E2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14ED, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C14F8, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C154C:: @ 0x83C154C
+ .string "SYSーPOKEMONーGET$"
+
+gUnknown_Debug_083C155C:: @ 0x83C155C
+ .string "SYSーZUKANーGET$"
+
+gUnknown_Debug_083C156A:: @ 0x83C156A
+ .string "SYSーPOKEGEARーGET$"
+
+gUnknown_Debug_083C157B:: @ 0x83C157B
+ .string "SYSーRIBBONーGET$"
+
+ .align 2
+gUnknown_Debug_083C158A:: @ 0x83C158A
+ .4byte gUnknown_Debug_083C154C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C155C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C156A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C157B, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C15AC:: @ 0x83C15AC
+ .string "SYSーGAMEーCLEAR$"
+
+gUnknown_Debug_083C15BB:: @ 0x83C15BB
+ .string "SYSーKAIWAーUSED$"
+
+gUnknown_Debug_083C15CA:: @ 0x83C15CA
+ .string "SYSーNOWーOYAJIーMEET$"
+
+gUnknown_Debug_083C15DD:: @ 0x83C15DD
+ .string "SYSーUSEーWAZAーFLASH$"
+
+gUnknown_Debug_083C15F0:: @ 0x83C15F0
+ .string "SYSーUSEーWAZAーKAIRIKI$"
+
+gUnknown_Debug_083C1605:: @ 0x83C1605
+ .string "SYSーWEATHERーCTRL$"
+
+gUnknown_Debug_083C1616:: @ 0x83C1616
+ .string "SYSーCYCLINGーROAD$"
+
+gUnknown_Debug_083C1627:: @ 0x83C1627
+ .string "SYSーSAFARIーMODE$"
+
+gUnknown_Debug_083C1637:: @ 0x83C1637
+ .string "SYSーCRUISEーMODE$"
+
+ .align 2
+gUnknown_Debug_083C1647:: @ 0x83C1647
+ .4byte gUnknown_Debug_083C15AC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C15BB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C15CA, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C15DD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C15F0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1605, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1616, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1627, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1637, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1690:: @ 0x83C1690
+ .string "SYSーTVーHOME$"
+
+gUnknown_Debug_083C169C:: @ 0x83C169C
+ .string "SYSーTVーWATCH$"
+
+gUnknown_Debug_083C16A9:: @ 0x83C16A9
+ .string "SYSーTVSTART$"
+
+gUnknown_Debug_083C16B5:: @ 0x83C16B5
+ .string "SYSーPOPWORDーINPUT$"
+
+gUnknown_Debug_083C16C7:: @ 0x83C16C7
+ .string "SYSーMIXーRECORD$"
+
+gUnknown_Debug_083C16D6:: @ 0x83C16D6
+ .string "SYSーCLOCKーSET$"
+
+gUnknown_Debug_083C16E4:: @ 0x83C16E4
+ .string "SYSーCAVEーSHIP$"
+
+gUnknown_Debug_083C16F2:: @ 0x83C16F2
+ .string "SYSーCAVEーWONDER$"
+
+gUnknown_Debug_083C1702:: @ 0x83C1702
+ .string "SYSーCAVEーBATTLE$"
+
+ .align 2
+gUnknown_Debug_083C1712:: @ 0x83C1712
+ .4byte gUnknown_Debug_083C1690, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C169C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C16A9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C16B5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C16C7, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C16D6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C16E4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C16F2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1702, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C175C:: @ 0x83C175C
+ .string "SYSーSPECIALーZUKAN$"
+
+gUnknown_Debug_083C176E:: @ 0x83C176E
+ .string "SYSーASASEーTIDE$"
+
+gUnknown_Debug_083C177D:: @ 0x83C177D
+ .string "SYSーRIBBONーGET$"
+
+gUnknown_Debug_083C178C:: @ 0x83C178C
+ .string "SYSーPASOーMAYUMI$"
+
+gUnknown_Debug_083C179C:: @ 0x83C179C
+ .string "SYSーEXDATAーENABLE$"
+
+gUnknown_Debug_083C17AE:: @ 0x83C17AE
+ .string "SYSーTENJIーANAWOHORU$"
+
+gUnknown_Debug_083C17C2:: @ 0x83C17C2
+ .string "SYSーTENJIーKAIRIKI$"
+
+gUnknown_Debug_083C17D4:: @ 0x83C17D4
+ .string "SYSーTENJIーWAIT$"
+
+gUnknown_Debug_083C17E3:: @ 0x83C17E3
+ .string "SYSーTENJIーSORAWOTOBU$"
+
+gUnknown_Debug_083C17F8:: @ 0x83C17F8
+ .4byte gUnknown_Debug_083C175C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C176E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C177D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C178C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C179C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C17AE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C17C2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C17D4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C17E3, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1840:: @ 0x83C1840
+ .string "SYSーENCーUPーITEM$"
+
+gUnknown_Debug_083C1850:: @ 0x83C1850
+ .string "SYSーENEーDOWNーITEM$"
+
+gUnknown_Debug_083C1862:: @ 0x83C1862
+ .string "SYSーKOKOROーEVENT$"
+
+gUnknown_Debug_083C1873:: @ 0x83C1873
+ .string "SYSーMOVEーPOKEーNEWS$"
+
+gUnknown_Debug_083C1886:: @ 0x83C1886
+ .string "SYSーASASEーITEM$"
+
+gUnknown_Debug_083C1895:: @ 0x83C1895
+ .string "SYSーBーDASH$"
+
+gUnknown_Debug_083C18A0:: @ 0x83C18A0
+ .string "SYSーCTRLーOBJーDELETE$"
+
+gUnknown_Debug_083C18B4:: @ 0x83C18B4
+ .string "$"
+
+gUnknown_Debug_083C18B5:: @ 0x83C18B5
+ .string "$"
+
+ .align 2
+gUnknown_Debug_083C18B8:: @ 0x83C18B8
+ .4byte gUnknown_Debug_083C1840, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1850, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1862, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1873, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1886, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1895, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C18A0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C18B4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C18B5, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1900:: @ 0x83C1900
+ .string "SYSーARRIVEーSUBMARINECAVE$"
+
+gUnknown_Debug_083C1919:: @ 0x83C1919
+ .string "SYSーARRIVEーBATTLETOWER$"
+
+gUnknown_Debug_083C1930:: @ 0x83C1930
+ .string "SYSーARRIVEーISLAND$"
+
+gUnknown_Debug_083C1942:: @ 0x83C1942
+ .string "SYSーARRIVEーLEAGUE$"
+
+gUnknown_Debug_083C1954:: @ 0x83C1954
+ .string "SYSーARRIVEーSORANOHASHIRA$"
+
+gUnknown_Debug_083C196D:: @ 0x83C196D
+ .string "$"
+
+gUnknown_Debug_083C196E:: @ 0x83C196E
+ .string "$"
+
+gUnknown_Debug_083C196F:: @ 0x83C196F
+ .string "$"
+
+gUnknown_Debug_083C1970:: @ 0x83C1970
+ .string "$"
+
+ .align 2
+gDebug_0x83C1974:: @ 0x83C1974
+ .4byte gUnknown_Debug_083C1900, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1919, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1930, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1942, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1954, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C196D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C196E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C196F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1970, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C19BC:: @ 0x83C19BC
+ .byte 0x08, 0x07, 0x09, 0x04, 0x09, 0x09, 0x09, 0x07, 0x05, 0x00
+
+gUnknown_Debug_083C19C6:: @ 0x83C19C6
+ .2byte 0x0807, 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e, 0x0000
+ .2byte 0x080f, 0x0810, 0x0811, 0x0812, 0x0813, 0x0814, 0x0815, 0x0000, 0x0000
+ .2byte 0x0816, 0x0817, 0x0818, 0x0819, 0x081a, 0x081b, 0x081c, 0x081d, 0x081e
+ .2byte 0x0800, 0x0801, 0x0802, 0x083b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
+ .2byte 0x0804, 0x0805, 0x0806, 0x0828, 0x0829, 0x082a, 0x082b, 0x082c, 0x082d
+ .2byte 0x0830, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0837, 0x0838, 0x0839
+ .2byte 0x0836, 0x083a, 0x083b, 0x084b, 0x084c, 0x084f, 0x0850, 0x0851, 0x0852
+ .2byte 0x084d, 0x084e, 0x0853, 0x085d, 0x085f, 0x0860, 0x0861, 0x0000, 0x0000
+ .2byte 0x0847, 0x0848, 0x0849, 0x0854, 0x085e, 0x0000, 0x0000, 0x0000, 0x0000
+
+gDebug_0x83C1A68:: @ 0x83C1A68
+ .string "FVーBALL パート1$"
+
+ .align 2
+gUnknown_Debug_083C1A78:: @ 0x83C1A78
+ .4byte gDebug_0x83C1A68, debug_sub_808D8D8+1
+
+gUnknown_Debug_083C1A80:: @ 0x83C1A80
+ .string "FVーBALL1ー78$"
+
+gUnknown_Debug_083C1A8C:: @ 0x83C1A8C
+ .string "FVーBALL1ー133$"
+
+ .align 2
+gUnknown_Debug_083C1A9C:: @ 0x83C1A9C
+ .4byte gUnknown_Debug_083C1A80, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1A8C, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C1AAC:: @ 0x83C1AAC
+ .string "い "
+gUnknown_Debug_083C1AAE:: @ 0x83C1AAE
+ .string "ょえヘえ              "
+
+gUnknown_Debug_083C1AC0:: @ 0x83C1AC0
+ .string "ジムリーダー$"
+
+gUnknown_Debug_083C1AC7:: @ 0x83C1AC7
+ .string "してんのう$"
+
+gUnknown_Debug_083C1ACD:: @ 0x83C1ACD
+ .string "みつる/Champロード$"
+
+ .align 2
+gUnknown_Debug_083C1ADC:: @ 0x83C1ADC
+ .4byte gUnknown_Debug_083C1AC0, debug_sub_808CD08+1
+ .4byte gUnknown_Debug_083C1AC7, debug_sub_808CD60+1
+ .4byte gUnknown_Debug_083C1ACD, debug_sub_808CDB8+1
+
+gUnknown_Debug_083C1AF4:: @ 0x83C1AF4
+ .string "FTーGYMー01ーLEADER$"
+
+gUnknown_Debug_083C1B05:: @ 0x83C1B05
+ .string "FTーGYMー02ーLEADER$"
+
+gUnknown_Debug_083C1B16:: @ 0x83C1B16
+ .string "FTーGYMー03ーLEADER$"
+
+gUnknown_Debug_083C1B27:: @ 0x83C1B27
+ .string "FTーGYMー04ーLEADER$"
+
+gUnknown_Debug_083C1B38:: @ 0x83C1B38
+ .string "FTーGYMー05ーLEADER$"
+
+gUnknown_Debug_083C1B49:: @ 0x83C1B49
+ .string "FTーGYMー06ーLEADER$"
+
+gUnknown_Debug_083C1B5A:: @ 0x83C1B5A
+ .string "FTーGYMー07ーLEADER$"
+
+gUnknown_Debug_083C1B6B:: @ 0x83C1B6B
+ .string "FTーGYMー08ーLEADER$"
+
+gUnknown_Debug_083C1B7C:: @ 0x83C1B7C
+ .4byte gUnknown_Debug_083C1AF4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B05, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B16, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B27, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B38, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B49, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B5A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1B6B, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1BBC:: @ 0x83C1BBC
+ .string "FTーSHITENー01$"
+
+gUnknown_Debug_083C1BC9:: @ 0x83C1BC9
+ .string "FTーSHITENー02$"
+
+gUnknown_Debug_083C1BD6:: @ 0x83C1BD6
+ .string "FTーSHITENー03$"
+
+gUnknown_Debug_083C1BE3:: @ 0x83C1BE3
+ .string "FTーSHITENー04$"
+
+gUnknown_Debug_083C1BF0:: @ 0x83C1BF0
+ .4byte gUnknown_Debug_083C1BBC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1BC9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1BD6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1BE3, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1C10:: @ 0x83C1C10
+ .string "FTーMITSURUー01ーCAVEーD1301$"
+
+ .align 2
+gUnknown_Debug_083C1C2C:: @ 0x83C1C2C
+ .4byte gUnknown_Debug_083C1C10, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C1C34:: @ 0x83C1C34
+ .string "くえあ "
+gUnknown_Debug_083C1C38:: @ 0x83C1C38
+ .string "“え’え,えCえGえOえSえZえ  iえjえkえlえ          mえ                "
+
+gUnknown_Debug_083C1C6E:: @ 0x83C1C6E
+ .string "120/119ばんどうろカクレオン$"
+
+gUnknown_Debug_083C1C80:: @ 0x83C1C80
+ .string "そのた1 / SUPPORTM/W$"
+
+gUnknown_Debug_083C1C92:: @ 0x83C1C92
+ .string "ODAMAKI/FIGHTER1$"
+
+gUnknown_Debug_083C1CA3:: @ 0x83C1CA3
+ .string "MITSURU/TENKI$"
+
+gUnknown_Debug_083C1CB1:: @ 0x83C1CB1
+ .string "そのた2 /DAIGO$"
+
+gUnknown_Debug_083C1CBD:: @ 0x83C1CBD
+ .string "POKE/POKEMON$"
+
+gUnknown_Debug_083C1CCA:: @ 0x83C1CCA
+ .string "MAMA/SUPPORT02$"
+
+gUnknown_Debug_083C1CD9:: @ 0x83C1CD9
+ .string "HAGI$"
+
+gUnknown_Debug_083C1CDE:: @ 0x83C1CDE
+ .string "SUPPORT01$"
+
+gUnknown_Debug_083C1CE8:: @ 0x83C1CE8
+ .4byte gUnknown_Debug_083C1C6E, debug_sub_808C85C+1
+ .4byte gUnknown_Debug_083C1C80, debug_sub_808C8B4+1
+ .4byte gUnknown_Debug_083C1C92, debug_sub_808C90C+1
+ .4byte gUnknown_Debug_083C1CA3, debug_sub_808C964+1
+ .4byte gUnknown_Debug_083C1CB1, debug_sub_808C9BC+1
+ .4byte gUnknown_Debug_083C1CBD, debug_sub_808CA14+1
+ .4byte gUnknown_Debug_083C1CCA, debug_sub_808CA6C+1
+ .4byte gUnknown_Debug_083C1CD9, debug_sub_808CAC4+1
+ .4byte gUnknown_Debug_083C1CDE, debug_sub_808CB1C+1
+
+gUnknown_Debug_083C1D30:: @ 0x83C1D30
+ .string "FVーKAKUREONBー01ーFIELDーR120$"
+
+gUnknown_Debug_083C1D4B:: @ 0x83C1D4B
+ .string "FVーKAKUREー01ーFIELDーR120$"
+
+gUnknown_Debug_083C1D63:: @ 0x83C1D63
+ .string "FVーKAKUREー02ーFIELDーR120$"
+
+gUnknown_Debug_083C1D7B:: @ 0x83C1D7B
+ .string "FVーKAKUREー03ーFIELDーR120$"
+
+gUnknown_Debug_083C1D93:: @ 0x83C1D93
+ .string "FVーKAKUREー04ーFIELDーR120$"
+
+gUnknown_Debug_083C1DAB:: @ 0x83C1DAB
+ .string "FVーKAKUREー05ーFIELDーR120$"
+
+gUnknown_Debug_083C1DC3:: @ 0x83C1DC3
+ .string "FVーKAKUREー06ーFIELDーR120$"
+
+gUnknown_Debug_083C1DDB:: @ 0x83C1DDB
+ .string "FVーKAKUREー01ーFIELDーR119$"
+
+gUnknown_Debug_083C1DF3:: @ 0x83C1DF3
+ .string "FVーKAKUREー02ーFIELDーR119$"
+
+ .align 2
+gUnknown_Debug_083C1E0C:: @ 0x83C1E0C
+ .4byte gUnknown_Debug_083C1D30, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1D4B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1D63, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1D7B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1D93, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1DAB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1DC3, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1DDB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1DF3, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1E54:: @ 0x83C1E54
+ .string "FVーBALLー01ーC107ーR0501$"
+
+gUnknown_Debug_083C1E6A:: @ 0x83C1E6A
+ .string "FVーWORKERM1ー04ーFIELDーC104$"
+
+gUnknown_Debug_083C1E84:: @ 0x83C1E84
+ .string "FVーSUBMARINEー06ーCAVEーD1101$"
+
+gUnknown_Debug_083C1E9F:: @ 0x83C1E9F
+ .string "FVーGUESTーALLーC106ーR0102$"
+
+gUnknown_Debug_083C1EB7:: @ 0x83C1EB7
+ .string "FVーHORIDASIー01ーC106ーR1106$"
+
+gUnknown_Debug_083C1ED1:: @ 0x83C1ED1
+ .string "FVーMIDDLEM1ー01ーR110ーR0101$"
+
+gUnknown_Debug_083C1EEB:: @ 0x83C1EEB
+ .string "FVーFUNEー01ーC102ーR0601$"
+
+gUnknown_Debug_083C1F01:: @ 0x83C1F01
+ .string "FVーSUPPORTWー01ーT101ーR0202$"
+
+gUnknown_Debug_083C1F1B:: @ 0x83C1F1B
+ .string "FVーSUPPORTMー01ーT101ーR0102$"
+
+ .align 2
+gUnknown_Debug_083C1F38:: @ 0x83C1F38
+ .4byte gUnknown_Debug_083C1E54, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1E6A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1E84, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1E9F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1EB7, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1ED1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1EEB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1F01, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1F1B, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C1F80:: @ 0x83C1F80
+ .string "FVーODAMAKIー01ーFIELDーR101$"
+
+gUnknown_Debug_083C1F99:: @ 0x83C1F99
+ .string "FVーODAMAKIー01ーT101ーR0301$"
+
+gUnknown_Debug_083C1FB2:: @ 0x83C1FB2
+ .string "FVーODAMAKIーHYOKAーT101ーR0301$"
+
+gUnknown_Debug_083C1FCE:: @ 0x83C1FCE
+ .string "FVーODAMAKIーHYOKAーFIELDーR101$"
+
+gUnknown_Debug_083C1FEA:: @ 0x83C1FEA
+ .string "FVーODAMAKIーHYOKAーFIELDーR103$"
+
+gUnknown_Debug_083C2006:: @ 0x83C2006
+ .string "FVーODAMAKIー01ーC109ーR0105$"
+
+gUnknown_Debug_083C201F:: @ 0x83C201F
+ .string "FVーFIGHTERー01ーCAVEーD0201$"
+
+gUnknown_Debug_083C2038:: @ 0x83C2038
+ .string "FVーFIGHTERー01ーT106ーR0201$"
+
+gUnknown_Debug_083C2051:: @ 0x83C2051
+ .string "FVーFIGHTERー01ーFIELDーR116$"
+
+ .align 2
+gUnknown_Debug_083C206C:: @ 0x83C206C
+ .4byte gUnknown_Debug_083C1F80, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1F99, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1FB2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1FCE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C1FEA, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2006, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C201F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2038, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2051, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C20B4:: @ 0x83C20B4
+ .string "FVーMITSURUー01ーFIELDーC101$"
+
+gUnknown_Debug_083C20CD:: @ 0x83C20CD
+ .string "FVーMITSURUー02ーCAVEーD1301$"
+
+gUnknown_Debug_083C20E6:: @ 0x83C20E6
+ .string "FVーMITSURUー01ーFIELDーC103$"
+
+gUnknown_Debug_083C20FF:: @ 0x83C20FF
+ .string "FVーMITSURUー01ーT106ーR0201$"
+
+gUnknown_Debug_083C2118:: @ 0x83C2118
+ .string "FVーMITSURUー01ーCAVEーD1301$"
+
+gUnknown_Debug_083C2131:: @ 0x83C2131
+ .string "FVーMITSURUー01ーC101ーR0201$"
+
+gUnknown_Debug_083C214A:: @ 0x83C214A
+ .string "FVーMITSURUー01ーFIELDーR102$"
+
+gUnknown_Debug_083C2163:: @ 0x83C2163
+ .string "FVーTENKIー01ーR119ーR101$"
+
+gUnknown_Debug_083C2179:: @ 0x83C2179
+ .string "FVーTENKIー01ーR119ーR102$"
+
+ .align 2
+gUnknown_Debug_083C2190:: @ 0x83C2190
+ .4byte gUnknown_Debug_083C20B4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C20CD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C20E6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C20FF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2118, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2131, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C214A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2163, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2179, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C21D8:: @ 0x83C21D8
+ .string "FVーDAIGOー01ーCAVEーD0504$"
+
+gUnknown_Debug_083C21EF:: @ 0x83C21EF
+ .string "FVーDAIGOー01ーFIELDーR128$"
+
+gUnknown_Debug_083C2206:: @ 0x83C2206
+ .string "FVーDAIGOー01ーFIELDーR118$"
+
+gUnknown_Debug_083C221D:: @ 0x83C221D
+ .string "FVーDAIGOー01ーC107ーR0501$"
+
+gUnknown_Debug_083C2234:: @ 0x83C2234
+ .string "FVーDAIGOー01ーFIELDーR120$"
+
+gUnknown_Debug_083C224B:: @ 0x83C224B
+ .string "FVーDAIGOー01ーFIELDーR108$"
+
+ .align 2
+gUnknown_Debug_083C2264:: @ 0x83C2264
+ .4byte gUnknown_Debug_083C21D8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C21EF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2206, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C221D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2234, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C224B, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2294:: @ 0x83C2294
+ .string "FVーPOKE1ー02ーCAVEーD1111$"
+
+gUnknown_Debug_083C22AB:: @ 0x83C22AB
+ .string "FVーPOKE1ー01ーCAVEーD0601$"
+
+gUnknown_Debug_083C22C2:: @ 0x83C22C2
+ .string "FVーPOKE1ー02ーCAVEーD0601$"
+
+gUnknown_Debug_083C22D9:: @ 0x83C22D9
+ .string "FVーPOKE1ー01ーFIELDーR101$"
+
+gUnknown_Debug_083C22F0:: @ 0x83C22F0
+ .string "FVーPOKE1ー01ーOPENINGーROOM01$"
+
+gUnknown_Debug_083C230B:: @ 0x83C230B
+ .string "FVーPOKE1ー02ーOPENINGーROOM01$"
+
+gUnknown_Debug_083C2326:: @ 0x83C2326
+ .string "FVーPOKE1ー01ーCAVEーD2308$"
+
+gUnknown_Debug_083C233D:: @ 0x83C233D
+ .string "FVーPOKEMONー01ーCAVEーD0201$"
+
+gUnknown_Debug_083C2356:: @ 0x83C2356
+ .string "FVーPOKEMONー01ーR104ーR0101$"
+
+ .align 2
+gUnknown_Debug_083C2370:: @ 0x83C2370
+ .4byte gUnknown_Debug_083C2294, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C22AB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C22C2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C22D9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C22F0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C230B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2326, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C233D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2356, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C23B8:: @ 0x83C23B8
+ .string "FVーMAMAー01ーFIELDーT101$"
+
+gUnknown_Debug_083C23CE:: @ 0x83C23CE
+ .string "FVーMAMAー01ーOPENINGーROOM02$"
+
+gUnknown_Debug_083C23E8:: @ 0x83C23E8
+ .string "FVーMAMAー01ーT101ーR0101$"
+
+gUnknown_Debug_083C23FE:: @ 0x83C23FE
+ .string "FVーMAMAー01ーT101ーR0201$"
+
+gUnknown_Debug_083C2414:: @ 0x83C2414
+ .string "FVーMAMAー02ーT101ーR0101$"
+
+gUnknown_Debug_083C242A:: @ 0x83C242A
+ .string "FVーMAMAー02ーT101ーR0201$"
+
+gUnknown_Debug_083C2440:: @ 0x83C2440
+ .string "FVーSUPPORTー02ーFIELDーR110$"
+
+gUnknown_Debug_083C2459:: @ 0x83C2459
+ .string "FVーSUPPORTー02ーFIELDーR119$"
+
+gUnknown_Debug_083C2472:: @ 0x83C2472
+ .string "FVーSUPPORTー02ーFIELDーT104$"
+
+ .align 2
+gUnknown_Debug_083C248C:: @ 0x83C248C
+ .4byte gUnknown_Debug_083C23B8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C23CE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C23E8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C23FE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2414, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C242A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2440, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2459, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2472, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C24D4:: @ 0x83C24D4
+ .string "FVーHAGIー01ーFIELDーR104$"
+
+gUnknown_Debug_083C24EA:: @ 0x83C24EA
+ .string "FVーHAGIー01ーR104ーR0101$"
+
+gUnknown_Debug_083C2500:: @ 0x83C2500
+ .string "FVーHAGIー01ーFIELDーT103$"
+
+gUnknown_Debug_083C2516:: @ 0x83C2516
+ .string "FVーHAGIー01ーFIELDーR109$"
+
+gUnknown_Debug_083C252C:: @ 0x83C252C
+ .string "FVーHAGIー01ーC102ーR0601$"
+
+gUnknown_Debug_083C2542:: @ 0x83C2542
+ .string "FVーHAGIー01ーC102ーR0101$"
+
+gUnknown_Debug_083C2558:: @ 0x83C2558
+ .string "FVーHAGIー01ーCAVEーD0201$"
+
+gUnknown_Debug_083C256E:: @ 0x83C256E
+ .string "FVーHAGIー01ーFIELDーR116$"
+
+gUnknown_Debug_083C2584:: @ 0x83C2584
+ .string "FVーHAGIー01ーSPーSHIP01$"
+
+ .align 2
+gUnknown_Debug_083C259C:: @ 0x83C259C
+ .4byte gUnknown_Debug_083C24D4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C24EA, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2500, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2516, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C252C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2542, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2558, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C256E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2584, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C25E4:: @ 0x83C25E4
+ .string "FVーSUPPORTー01ーT101ーR0301$"
+
+gUnknown_Debug_083C25FD:: @ 0x83C25FD
+ .string "FVーSUPPORTー01ーC109ーR0105$"
+
+gUnknown_Debug_083C2616:: @ 0x83C2616
+ .string "FVーSUPPORTー01ーFIELDーC104$"
+
+gUnknown_Debug_083C262F:: @ 0x83C262F
+ .string "FVーSUPPORTー01ーFIELDーC106$"
+
+gUnknown_Debug_083C2648:: @ 0x83C2648
+ .string "FVーSUPPORTー01ーFIELDーR103$"
+
+gUnknown_Debug_083C2661:: @ 0x83C2661
+ .string "FVーSUPPORTー01ーFIELDーR110$"
+
+gUnknown_Debug_083C267A:: @ 0x83C267A
+ .string "FVーSUPPORTー01ーFIELDーR119$"
+
+gUnknown_Debug_083C2693:: @ 0x83C2693
+ .string "FVーSUPPORTー01ーFIELDーT104$"
+
+gUnknown_Debug_083C26AC:: @ 0x83C26AC
+ .string "FVーSUPPORTー01ーFIELDーT102$"
+
+ .align 2
+gUnknown_Debug_083C26C8:: @ 0x83C26C8
+ .4byte gUnknown_Debug_083C25E4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C25FD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2616, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C262F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2648, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2661, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C267A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2693, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C26AC, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C2710:: @ 0x83C2710
+ .string "けけけけかけけけけ "
+gUnknown_Debug_083C271A:: @ 0x83C271A
+ .string "aうPうbうeうfうgうhうiうjうNうhいZうプうHうネうイうXい{0xF8}いVいWいィうゥうェうベうらうりうンうbい▶いやうようコうツうテうワうヲうだうぢうLうMうRうSう      iいmいxいzいÖいÜいおうミうムう:いöいüい{0xF7}いせうそうボうパう1うnいoいpいqいぽうナうマうロう♀うルうブうんうQうYいビうウう0うYう"
+
+gUnknown_Debug_083C27BC:: @ 0x83C27BC
+ .string "FEひでんわざ/デボンかんれん$"
+
+gUnknown_Debug_083C27CC:: @ 0x83C27CC
+ .string "FEだいじなアイテムPART1$"
+
+gUnknown_Debug_083C27DC:: @ 0x83C27DC
+ .string "そのた1$"
+
+gUnknown_Debug_083C27E1:: @ 0x83C27E1
+ .string "MITSURU/DOOR$"
+
+gUnknown_Debug_083C27EE:: @ 0x83C27EE
+ .string "カラクリやしき10のやじるし/GYM07$"
+
+gUnknown_Debug_083C2803:: @ 0x83C2803
+ .string "SUPPORT/そのた4$"
+
+gUnknown_Debug_083C2810:: @ 0x83C2810
+ .string "DAISUKI/そのた5$"
+
+gUnknown_Debug_083C281D:: @ 0x83C281D
+ .string "そのた2$"
+
+gUnknown_Debug_083C2822:: @ 0x83C2822
+ .string "そのた6$"
+
+ .align 2
+gUnknown_Debug_083C2828:: @ 0x83C2828
+ .4byte gUnknown_Debug_083C27BC, debug_sub_808C3B0+1
+ .4byte gUnknown_Debug_083C27CC, debug_sub_808C408+1
+ .4byte gUnknown_Debug_083C27DC, debug_sub_808C460+1
+ .4byte gUnknown_Debug_083C27E1, debug_sub_808C4B8+1
+ .4byte gUnknown_Debug_083C27EE, debug_sub_808C510+1
+ .4byte gUnknown_Debug_083C2803, debug_sub_808C568+1
+ .4byte gUnknown_Debug_083C2810, debug_sub_808C5C0+1
+ .4byte gUnknown_Debug_083C281D, debug_sub_808C618+1
+ .4byte gUnknown_Debug_083C2822, debug_sub_808C670+1
+
+gUnknown_Debug_083C2870:: @ 0x83C2870
+ .string "FEーHWAZA01ーGET$"
+
+gUnknown_Debug_083C287F:: @ 0x83C287F
+ .string "FEーHWAZA02ー01ーFIELDR119$"
+
+gUnknown_Debug_083C2897:: @ 0x83C2897
+ .string "FEーHWAZA03ーGET$"
+
+gUnknown_Debug_083C28A6:: @ 0x83C28A6
+ .string "FEーHWAZA04ー01ーT106ーR0201$"
+
+gUnknown_Debug_083C28BF:: @ 0x83C28BF
+ .string "FEーHWAZA05ー01ーCAVEーD0502$"
+
+gUnknown_Debug_083C28D8:: @ 0x83C28D8
+ .string "FEーHWAZA04ー01ーC103ーR0301$"
+
+gUnknown_Debug_083C28F1:: @ 0x83C28F1
+ .string "FEーDEBONーNIMOTSUーRETURN$"
+
+gUnknown_Debug_083C2909:: @ 0x83C2909
+ .string "FEーDEBONー01ーFIELDーC104$"
+
+gUnknown_Debug_083C2920:: @ 0x83C2920
+ .string "FEーDEBONー02ーFIELDーC104$"
+
+ .align 2
+gUnknown_Debug_083C2938:: @ 0x83C2938
+ .4byte gUnknown_Debug_083C2870, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C287F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2897, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C28A6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C28BF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C28D8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C28F1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2909, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2920, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2980:: @ 0x83C2980
+ .string "FEーCYCLEー01ーP01ーP01ーC103ーR0201$"
+
+gUnknown_Debug_083C299F:: @ 0x83C299F
+ .string "FEーSCOOPー01ーP01ーFIELDーR115$"
+
+gUnknown_Debug_083C29BA:: @ 0x83C29BA
+ .string "FEーROPEー01ーP01ーFIELDーR114$"
+
+gUnknown_Debug_083C29D4:: @ 0x83C29D4
+ .string "FEーKAMAー01ーP01ーFIELDーR119$"
+
+gUnknown_Debug_083C29EE:: @ 0x83C29EE
+ .string "FEーZYOUROーGET$"
+
+gUnknown_Debug_083C29FC:: @ 0x83C29FC
+ .string "FEーCUBECASEーGET$"
+
+gUnknown_Debug_083C2A0C:: @ 0x83C2A0C
+ .string "FEーBORONOTURIZAOーGET$"
+
+gUnknown_Debug_083C2A21:: @ 0x83C2A21
+ .string "FEーIITURIZAOーGET$"
+
+gUnknown_Debug_083C2A32:: @ 0x83C2A32
+ .string "FEーSUGOITURIZAOーGET$"
+
+ .align 2
+gUnknown_Debug_083C2A48:: @ 0x83C2A48
+ .4byte gUnknown_Debug_083C2980, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C299F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C29BA, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C29D4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C29EE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C29FC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2A0C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2A21, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2A32, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2A90:: @ 0x83C2A90
+ .string "FEーBOSSー01ーCAVEーD0701$"
+
+gUnknown_Debug_083C2AA6:: @ 0x83C2AA6
+ .string "FEーTANTIKIーRETURN$"
+
+gUnknown_Debug_083C2AB8:: @ 0x83C2AB8
+ .string "FEーPOKE1ー01ーCAVEーD1111$"
+
+gUnknown_Debug_083C2ACF:: @ 0x83C2ACF
+ .string "FEーPOKE1ー01ーCAVEーD1206$"
+
+gUnknown_Debug_083C2AE6:: @ 0x83C2AE6
+ .string "FEーSHOPー01ーC104ーFS01$"
+
+gUnknown_Debug_083C2AFB:: @ 0x83C2AFB
+ .string "FEーHUNENOTIKETTーGET$"
+
+gUnknown_Debug_083C2B0F:: @ 0x83C2B0F
+ .string "FEーKAKUREー01ーFIELDーC105$"
+
+gUnknown_Debug_083C2B27:: @ 0x83C2B27
+ .string "FEーKASEKIーRETURN$"
+
+gUnknown_Debug_083C2B38:: @ 0x83C2B38
+ .string "FEーWINー01ーSPーSHIP01$"
+
+gUnknown_Debug_083C2B4C:: @ 0x83C2B4C
+ .4byte gUnknown_Debug_083C2A90, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2AA6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2AB8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2ACF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2AE6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2AFB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2B0F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2B27, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2B38, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2B94:: @ 0x83C2B94
+ .string "FEーMITSURUー01ーT106ーR0201$"
+
+gUnknown_Debug_083C2BAD:: @ 0x83C2BAD
+ .string "FEーMITSURUー01ーCAVEーD1301$"
+
+gUnknown_Debug_083C2BC6:: @ 0x83C2BC6
+ .string "FEーMITSURUー02ーFIELDーC103$"
+
+gUnknown_Debug_083C2BDF:: @ 0x83C2BDF
+ .string "FEーMITSURUー02ーT106ーR0201$"
+
+gUnknown_Debug_083C2BF8:: @ 0x83C2BF8
+ .string "FEーMITSURUー01ーFIELDーC103$"
+
+gUnknown_Debug_083C2C11:: @ 0x83C2C11
+ .string "FEーDOORーOPENー01ーCAVEーD1712$"
+
+gUnknown_Debug_083C2C2C:: @ 0x83C2C2C
+ .string "FEーDOORーOPENー02ーCAVEーD1712$"
+
+gUnknown_Debug_083C2C47:: @ 0x83C2C47
+ .string "FEーDOORーOPENー04ーCAVEーD1712$"
+
+gUnknown_Debug_083C2C62:: @ 0x83C2C62
+ .string "FEーDOORーOPENー06ーCAVEーD1712$"
+
+ .align 2
+gUnknown_Debug_083C2C80:: @ 0x83C2C80
+ .4byte gUnknown_Debug_083C2B94, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2BAD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2BC6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2BDF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2BF8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2C11, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2C2C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2C47, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2C62, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2CC8:: @ 0x83C2CC8
+ .string "FEーKARAKURI10ーSWITCHー01$"
+
+gUnknown_Debug_083C2CE0:: @ 0x83C2CE0
+ .string "FEーKARAKURI10ーSWITCHー02$"
+
+gUnknown_Debug_083C2CF8:: @ 0x83C2CF8
+ .string "FEーKARAKURI10ーSWITCHー03$"
+
+gUnknown_Debug_083C2D10:: @ 0x83C2D10
+ .string "FEーKARAKURI10ーSWITCHー04$"
+
+gUnknown_Debug_083C2D28:: @ 0x83C2D28
+ .string "FEーKARAKURI10ーSWITCHー05$"
+
+gUnknown_Debug_083C2D40:: @ 0x83C2D40
+ .string "FEーGYM07ーSWITCHー01$"
+
+gUnknown_Debug_083C2D53:: @ 0x83C2D53
+ .string "FEーGYM07ーSWITCHー02$"
+
+gUnknown_Debug_083C2D66:: @ 0x83C2D66
+ .string "FEーGYM07ーSWITCHー03$"
+
+gUnknown_Debug_083C2D79:: @ 0x83C2D79
+ .string "FEーGYM07ーSWITCHー04$"
+
+gUnknown_Debug_083C2D8C:: @ 0x83C2D8C
+ .4byte gUnknown_Debug_083C2CC8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2CE0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2CF8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2D10, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2D28, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2D40, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2D53, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2D66, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2D79, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2DD4:: @ 0x83C2DD4
+ .string "FEーSUPPORTー01ーFIELDーR103$"
+
+gUnknown_Debug_083C2DED:: @ 0x83C2DED
+ .string "FEーSUPPORTー01ーFIELDーC106$"
+
+gUnknown_Debug_083C2E06:: @ 0x83C2E06
+ .string "FEーSUPPORTー01ーFIELDーR104$"
+
+gUnknown_Debug_083C2E1F:: @ 0x83C2E1F
+ .string "FEーSUPPORTー02ーFIELDーC106$"
+
+gUnknown_Debug_083C2E38:: @ 0x83C2E38
+ .string "FEーSUPPORTー01ーT101ーR0202$"
+
+gUnknown_Debug_083C2E51:: @ 0x83C2E51
+ .string "FEーMAMAー01ーP01ーT101ーR0101$"
+
+gUnknown_Debug_083C2E6B:: @ 0x83C2E6B
+ .string "FEーCLOCKーSET$"
+
+gUnknown_Debug_083C2E78:: @ 0x83C2E78
+ .string "FEーODAMAKIー01ーP01ーT101ーR03$"
+
+gUnknown_Debug_083C2E93:: @ 0x83C2E93
+ .string "FEーPAPAー01ーP01ーC101ーR0201$"
+
+ .align 2
+gUnknown_Debug_083C2EB0:: @ 0x83C2EB0
+ .4byte gUnknown_Debug_083C2DD4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2DED, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E06, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E1F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E38, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E51, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E6B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E78, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2E93, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C2EF8:: @ 0x83C2EF8
+ .string "FEーDAISUKIーGOODSーFLAG01$"
+
+gUnknown_Debug_083C2F10:: @ 0x83C2F10
+ .string "FEーDAISUKIーGOODSーFLAG02$"
+
+gUnknown_Debug_083C2F28:: @ 0x83C2F28
+ .string "FEーDAISUKIーGOODSーFLAG03$"
+
+gUnknown_Debug_083C2F40:: @ 0x83C2F40
+ .string "FEーDAISUKIーGOODSーFLAG04$"
+
+gUnknown_Debug_083C2F58:: @ 0x83C2F58
+ .string "FEーDAISUKIーGOODSーFLAG05$"
+
+gUnknown_Debug_083C2F70:: @ 0x83C2F70
+ .string "FEーBASHAー01ーP01ーFIELDーC101ー$"
+
+gUnknown_Debug_083C2F8C:: @ 0x83C2F8C
+ .string "FEーBASHAー01ーP02ーFIELDーC101ー$"
+
+gUnknown_Debug_083C2FA8:: @ 0x83C2FA8
+ .string "FEーBALLー01ーP01ーSPーCONTEST$"
+
+gUnknown_Debug_083C2FC2:: @ 0x83C2FC2
+ .string "FEーWOMAN2ー01ーP01ーT101ーR0201$"
+
+ .align 2
+gUnknown_Debug_083C2FE0:: @ 0x83C2FE0
+ .4byte gUnknown_Debug_083C2EF8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2F10, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2F28, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2F40, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2F58, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2F70, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2F8C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2FA8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C2FC2, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C3028:: @ 0x83C3028
+ .string "FEーSOUKOーOPENーCAVEーD1704$"
+
+gUnknown_Debug_083C3041:: @ 0x83C3041
+ .string "FEーSORAISIー01ーCAVEーD0101$"
+
+gUnknown_Debug_083C305A:: @ 0x83C305A
+ .string "FEーMAYUMIー01ーーR114ーR0201$"
+
+gUnknown_Debug_083C3073:: @ 0x83C3073
+ .string "FEーKUSUNOKIー01ーC102ーR0601$"
+
+gUnknown_Debug_083C308D:: @ 0x83C308D
+ .string "FEーOLDWOMAN1ー01ーCAVEーD0808$"
+
+gUnknown_Debug_083C30A8:: @ 0x83C30A8
+ .string "FEーTRAINERM1ー01ーC109ーR0206$"
+
+gUnknown_Debug_083C30C3:: @ 0x83C30C3
+ .string "FEーSOONANOーTAMAGOーGET$"
+
+gUnknown_Debug_083C30D9:: @ 0x83C30D9
+ .string "FEーDASHーSHOESーGET$"
+
+gUnknown_Debug_083C30EB:: @ 0x83C30EB
+ .string "FEーDEBONSUKOOPUーGET$"
+
+ .align 2
+gUnknown_Debug_083C3100:: @ 0x83C3100
+ .4byte gUnknown_Debug_083C3028, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3041, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C305A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3073, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C308D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C30A8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C30C3, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C30D9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C30EB, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C3148:: @ 0x83C3148
+ .string "FEーSTUDYM1ー01ーP01ーT101R0301$"
+
+gUnknown_Debug_083C3164:: @ 0x83C3164
+ .string "FEーWORKERM1ー01ーC103ーR0201$"
+
+gUnknown_Debug_083C317E:: @ 0x83C317E
+ .string "FEーHIMITSUーGET$"
+
+gUnknown_Debug_083C318D:: @ 0x83C318D
+ .string "$"
+
+gUnknown_Debug_083C318E:: @ 0x83C318E
+ .string "$"
+
+gUnknown_Debug_083C318F:: @ 0x83C318F
+ .string "$"
+
+gUnknown_Debug_083C3190:: @ 0x83C3190
+ .string "$"
+
+gUnknown_Debug_083C3191:: @ 0x83C3191
+ .string "$"
+
+gUnknown_Debug_083C3192:: @ 0x83C3192
+ .string "$"
+
+ .align 2
+gUnknown_Debug_083C3194:: @ 0x83C3194
+ .4byte gUnknown_Debug_083C3148, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3164, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C317E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C318D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C318E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C318F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3190, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3191, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3192, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C31DC:: @ 0x83C31DC
+ .byte 9, 9, 9, 9, 9, 9, 9, 9, 3, 0
+
+ @ This is not a string. I don't feel like converting it right now.
+gUnknown_Debug_83C31E6:: @ 0x83C31E6
+ .string "グ ホ レ ハ ヘ ヒ ゾ ズ ゼ コ サ シ ス セ ソ ああo ブ ゴ よあゥ ム  あもあらあさあ{0xF7} フ ン D G ふあ: Ä Ö Ü H I J K L ト ナ ニ ヌ ェ ほあみあやあゆあっ ア イ オ N O P Q R ウ エ カ キ ▶ ä ォ そあうあきあこあつあへあク ケ タ             "
+
+gUnknown_Debug_083C3288:: @ 0x83C3288
+ .string "CYCLEかんれん$"
+
+gUnknown_Debug_083C3292:: @ 0x83C3292
+ .string "おおきさくらべ$"
+
+gUnknown_Debug_083C329A:: @ 0x83C329A
+ .string "カウンタ$"
+
+gUnknown_Debug_083C329F:: @ 0x83C329F
+ .string "そのた1$"
+
+gUnknown_Debug_083C32A4:: @ 0x83C32A4
+ .string "そのた2$"
+
+ .align 2
+gUnknown_Debug_083C32AC:: @ 0x83C32AC
+ .4byte gUnknown_Debug_083C3288, debug_sub_808E400+1
+ .4byte gUnknown_Debug_083C3292, debug_sub_808E458+1
+ .4byte gUnknown_Debug_083C329A, debug_sub_808E4B0+1
+ .4byte gUnknown_Debug_083C329F, debug_sub_808E508+1
+ .4byte gUnknown_Debug_083C32A4, debug_sub_808E560+1
+
+gUnknown_Debug_083C32D4:: @ 0x83C32D4
+ .string "WKーCYCLEーROADーHIT$"
+
+gUnknown_Debug_083C32E6:: @ 0x83C32E6
+ .string "WKーCYCLEーROADーTIMエ1$"
+
+gUnknown_Debug_083C32FA:: @ 0x83C32FA
+ .string "WKーCYCLEーROADーTIMエ2$"
+
+gUnknown_Debug_083C330E:: @ 0x83C330E
+ .string "WKーSIZEーKINOKOKOーOYAJI$"
+
+gUnknown_Debug_083C3325:: @ 0x83C3325
+ .string "WKーSIZEーNAMAZOーOYAJI$"
+
+gUnknown_Debug_083C333A:: @ 0x83C333A
+ .string "WKーSPRAYーCOUNT$"
+
+gUnknown_Debug_083C3349:: @ 0x83C3349
+ .string "WKーICEーCOUNT$"
+
+gUnknown_Debug_083C3356:: @ 0x83C3356
+ .string "WKーASHーGATHERーCOUNT$"
+
+gUnknown_Debug_083C336A:: @ 0x83C336A
+ .string "WKーCRUISEーCOUNT$"
+
+gUnknown_Debug_083C337A:: @ 0x83C337A
+ .string "WKーFRIENDLYーSTEPーCOUNT$"
+
+gUnknown_Debug_083C3391:: @ 0x83C3391
+ .string "WKーPOISONーSTEPーCOUNT$"
+
+gUnknown_Debug_083C33A6:: @ 0x83C33A6
+ .string "WKRECYCLEーGOODS$"
+
+gUnknown_Debug_083C33B6:: @ 0x83C33B6
+ .string "WKーFIRSTーPOKE$"
+
+gUnknown_Debug_083C33C4:: @ 0x83C33C4
+ .string "WKーMABOROSIRNDーH$"
+
+gUnknown_Debug_083C33D5:: @ 0x83C33D5
+ .string "WKーMABOROSIRNDーL$"
+
+gUnknown_Debug_083C33E6:: @ 0x83C33E6
+ .string "EVーONEーDAYーWORK$"
+
+gUnknown_Debug_083C33F6:: @ 0x83C33F6
+ .string "EVーFANWORK$"
+
+gUnknown_Debug_083C3401:: @ 0x83C3401
+ .string "EVーFANTIME$"
+
+gUnknown_Debug_083C340C:: @ 0x83C340C
+ .string "WKーKARAKURIーLEVEL$"
+
+gUnknown_Debug_083C341E:: @ 0x83C341E
+ .string "WKーPOKELOTーPRIZE$"
+
+gUnknown_Debug_083C342F:: @ 0x83C342F
+ .string "WKーSPECIALーZUKN$"
+
+gUnknown_Debug_083C343F:: @ 0x83C343F
+ .string "WKーHYOUKAーDAYS$"
+
+gUnknown_Debug_083C344E:: @ 0x83C344E
+ .string "WKーPOKELOTーRND1$"
+
+gUnknown_Debug_083C345E:: @ 0x83C345E
+ .string "WKーPOKELOTーRND2$"
+
+gUnknown_Debug_083C346E:: @ 0x83C346E
+ .string "WKーBASEーMAPNO$"
+
+ .align 2
+gUnknown_Debug_083C347C:: @ 0x83C347C
+ .4byte gUnknown_Debug_083C32D4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C32E6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C32FA, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C3494::
+ .4byte gUnknown_Debug_083C330E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3325, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C34A4::
+ .4byte gUnknown_Debug_083C333A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3349, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3356, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C336A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C337A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3391, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C34D4::
+ .4byte gUnknown_Debug_083C33A6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C33B6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C33C4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C33D5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C33E6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C33F6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3401, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C340C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C341E, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C351C::
+ .4byte gUnknown_Debug_083C342F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C343F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C344E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C345E, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C346E, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C3544:: @ 0x83C3544
+ .string "ういかけお "
+gUnknown_Debug_083C354A::
+ .string "らぞりぞるぞ            びぞぽぞ              むぞめぞぶぞぼぞれぞろぞ      みぞもぞやぞゆぞぞぞだぞぢぞでぞどぞばぞべぞぱぞぴぞよぞ        "
+
+gUnknown_Debug_083C35A4:: @ 0x83C35A4
+ .string "OBJCHRWORK0ー8$"
+
+gUnknown_Debug_083C35B2:: @ 0x83C35B2
+ .string "OBJCHRWORK9ー15$"
+
+ .align 2
+gUnknown_Debug_083C35C4:: @ 0x83C35C4
+ .4byte gUnknown_Debug_083C35A4, debug_sub_808E9A0+1
+ .4byte gUnknown_Debug_083C35B2, debug_sub_808E9F8+1
+
+gUnknown_Debug_083C35D4:: @ 0x83C35D4
+ .string "OBJCHRWORK1$"
+
+gUnknown_Debug_083C35E0:: @ 0x83C35E0
+ .string "OBJCHRWORK2$"
+
+gUnknown_Debug_083C35EC:: @ 0x83C35EC
+ .string "OBJCHRWORK3$"
+
+gUnknown_Debug_083C35F8:: @ 0x83C35F8
+ .string "OBJCHRWORK4$"
+
+gUnknown_Debug_083C3604:: @ 0x83C3604
+ .string "OBJCHRWORK5$"
+
+gUnknown_Debug_083C3610:: @ 0x83C3610
+ .string "OBJCHRWORK6$"
+
+gUnknown_Debug_083C361C:: @ 0x83C361C
+ .string "OBJCHRWORK7$"
+
+gUnknown_Debug_083C3628:: @ 0x83C3628
+ .string "OBJCHRWORK8$"
+
+gUnknown_Debug_083C3634:: @ 0x83C3634
+ .string "OBJCHRWORK9$"
+
+gUnknown_Debug_083C3640:: @ 0x83C3640
+ .string "OBJCHRWORK10$"
+
+gUnknown_Debug_083C364D:: @ 0x83C364D
+ .string "OBJCHRWORK11$"
+
+gUnknown_Debug_083C365A:: @ 0x83C365A
+ .string "OBJCHRWORK12$"
+
+gUnknown_Debug_083C3667:: @ 0x83C3667
+ .string "OBJCHRWORK13$"
+
+gUnknown_Debug_083C3674:: @ 0x83C3674
+ .string "OBJCHRWORK14$"
+
+gUnknown_Debug_083C3681:: @ 0x83C3681
+ .string "OBJCHRWORK15$"
+
+gUnknown_Debug_083C368E:: @ 0x83C368E
+ .string "OBJCHRWORK16$"
+
+ .align 2
+gUnknown_Debug_083C369C:: @ 0x83C369C
+ .4byte gUnknown_Debug_083C35D4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C35E0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C35EC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C35F8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3604, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3610, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C361C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3628, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3634, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C36E4::
+ .4byte gUnknown_Debug_083C3640, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C364D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C365A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3667, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3674, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3681, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C368E, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C371C:: @ 0x83C371C
+ .string "けき"
+gUnknown_Debug_083C371E:: @ 0x83C371E
+ .string "たぞちぞつぞてぞとぞなぞにぞぬぞねぞのぞはぞひぞふぞへぞほぞまぞ    "
+
+gUnknown_Debug_083C3742:: @ 0x83C3742
+ .string "SP$"
+
+gUnknown_Debug_083C3745:: @ 0x83C3745
+ .string "ルーム R110 PART1/カラクリ$"
+
+gUnknown_Debug_083C3759:: @ 0x83C3759
+ .string "ルーム R110 PART2$"
+
+gUnknown_Debug_083C3768:: @ 0x83C3768
+ .string "ルーム ロード$"
+
+gUnknown_Debug_083C3770:: @ 0x83C3770
+ .string "ソノタ1$"
+
+gUnknown_Debug_083C3775:: @ 0x83C3775
+ .string "ソノタ2$"
+
+ .align 2
+gUnknown_Debug_083C377C:: @ 0x83C377C
+ .4byte gUnknown_Debug_083C3742, debug_sub_808E054+1
+ .4byte gUnknown_Debug_083C3745, debug_sub_808E0AC+1
+ .4byte gUnknown_Debug_083C3759, debug_sub_808E104+1
+ .4byte gUnknown_Debug_083C3768, debug_sub_808E15C+1
+ .4byte gUnknown_Debug_083C3770, debug_sub_808E1B4+1
+ .4byte gUnknown_Debug_083C3775, debug_sub_808E20C+1
+
+gUnknown_Debug_083C37AC:: @ 0x83C37AC
+ .string "WKーSCENEーSPーCONTEST$"
+
+gUnknown_Debug_083C37C0:: @ 0x83C37C0
+ .string "WKーSCENEーSPーPC$"
+
+gUnknown_Debug_083C37CF:: @ 0x83C37CF
+ .string "WKーSCENEーSPーCONTEST03$"
+
+gUnknown_Debug_083C37E5:: @ 0x83C37E5
+ .string "WKーSCENEーSPーCONTESTITEM$"
+
+gUnknown_Debug_083C37FD:: @ 0x83C37FD
+ .string "WKーSCENEーSPーOPENING$"
+
+gUnknown_Debug_083C3811:: @ 0x83C3811
+ .string "WKーSCENEーSPーSHIP01$"
+
+gUnknown_Debug_083C3824:: @ 0x83C3824
+ .string "$"
+
+gUnknown_Debug_083C3825:: @ 0x83C3825
+ .string "$"
+
+gUnknown_Debug_083C3826:: @ 0x83C3826
+ .string "$"
+
+gUnknown_Debug_083C3827:: @ 0x83C3827
+ .string "WKーSCENEーR110ーR0101$"
+
+gUnknown_Debug_083C383B:: @ 0x83C383B
+ .string "WKーSCENEーR110ーR0102$"
+
+gUnknown_Debug_083C384F:: @ 0x83C384F
+ .string "WKーSCENEーR110ーR0103$"
+
+gUnknown_Debug_083C3863:: @ 0x83C3863
+ .string "WKーKARAKURIーDAIOU$"
+
+gUnknown_Debug_083C3875:: @ 0x83C3875
+ .string "WKーSCENEーSHISEN$"
+
+gUnknown_Debug_083C3885:: @ 0x83C3885
+ .string "$"
+
+gUnknown_Debug_083C3886:: @ 0x83C3886
+ .string "$"
+
+gUnknown_Debug_083C3887:: @ 0x83C3887
+ .string "$"
+
+gUnknown_Debug_083C3888:: @ 0x83C3888
+ .string "$"
+
+gUnknown_Debug_083C3889:: @ 0x83C3889
+ .string "WKーSCENEーR110ーR0104$"
+
+gUnknown_Debug_083C389D:: @ 0x83C389D
+ .string "WKーSCENEーR110ーR0105$"
+
+gUnknown_Debug_083C38B1:: @ 0x83C38B1
+ .string "WKーSCENEーR110ーR0106$"
+
+gUnknown_Debug_083C38C5:: @ 0x83C38C5
+ .string "WKーSCENEーR110ーR0107$"
+
+gUnknown_Debug_083C38D9:: @ 0x83C38D9
+ .string "WKーSCENEーR110ーR0108$"
+
+gUnknown_Debug_083C38ED:: @ 0x83C38ED
+ .string "WKーSCENEーR110ーR0109$"
+
+gUnknown_Debug_083C3901:: @ 0x83C3901
+ .string "WKーSCENEーR110ーR0110$"
+
+gUnknown_Debug_083C3915:: @ 0x83C3915
+ .string "WKーSCENEーR110ーR0111$"
+
+gUnknown_Debug_083C3929:: @ 0x83C3929
+ .string "WKーSCENEー02ーR110ーR0110$"
+
+gUnknown_Debug_083C3940:: @ 0x83C3940
+ .string "WKーSCENEーR104ーR0101$"
+
+gUnknown_Debug_083C3954:: @ 0x83C3954
+ .string "WKーSCENEーR113ーR0101$"
+
+gUnknown_Debug_083C3968:: @ 0x83C3968
+ .string "$"
+
+gUnknown_Debug_083C3969:: @ 0x83C3969
+ .string "$"
+
+gUnknown_Debug_083C396A:: @ 0x83C396A
+ .string "$"
+
+gUnknown_Debug_083C396B:: @ 0x83C396B
+ .string "$"
+
+gUnknown_Debug_083C396C:: @ 0x83C396C
+ .string "$"
+
+gUnknown_Debug_083C396D:: @ 0x83C396D
+ .string "$"
+
+gUnknown_Debug_083C396E:: @ 0x83C396E
+ .string "$"
+
+gUnknown_Debug_083C396F:: @ 0x83C396F
+ .string "WKーSCENEーBASEーGDOODS$"
+
+gUnknown_Debug_083C3984:: @ 0x83C3984
+ .string "WKーSCENEーHAGIーFUNE$"
+
+gUnknown_Debug_083C3997:: @ 0x83C3997
+ .string "WKーSCENEーFUNEーPOS$"
+
+gUnknown_Debug_083C39A9:: @ 0x83C39A9
+ .string "WKーSCENEーBASEーMAKE$"
+
+gUnknown_Debug_083C39BC:: @ 0x83C39BC
+ .string "WKーSCENEーARTISTーC106ーR$"
+
+gUnknown_Debug_083C39D3:: @ 0x83C39D3
+ .string "WKーSCENEーPOKEーLEAGUE$"
+
+gUnknown_Debug_083C39E8:: @ 0x83C39E8
+ .string "WKーSCENEーROPEWAY$"
+
+gUnknown_Debug_083C39F9:: @ 0x83C39F9
+ .string "WKーSCENEーSAFARIーZONE$"
+
+gUnknown_Debug_083C3A0E:: @ 0x83C3A0E
+ .string "WKーSCENEーCYCLEーROAD$"
+
+gUnknown_Debug_083C3A22:: @ 0x83C3A22
+ .string "WKーSCENEーR119ーTENKI$"
+
+gUnknown_Debug_083C3A36:: @ 0x83C3A36
+ .string "WKーSCENEー01ーC102ーR0401$"
+
+gUnknown_Debug_083C3A4D:: @ 0x83C3A4D
+ .string "WKーFUTAGOー01ーFIELDーR104$"
+
+gUnknown_Debug_083C3A65:: @ 0x83C3A65
+ .string "WKーSCENEーBATTLEーTOWER$"
+
+gUnknown_Debug_083C3A7B:: @ 0x83C3A7B
+ .string "WKーSCENEーTRーHOUSE$"
+
+gUnknown_Debug_083C3A8D:: @ 0x83C3A8D
+ .string "WKーKASEKIーTYPE$"
+
+gUnknown_Debug_083C3A9C:: @ 0x83C3A9C
+ .string "$"
+
+gUnknown_Debug_083C3A9D:: @ 0x83C3A9D
+ .string "$"
+
+gUnknown_Debug_083C3A9E:: @ 0x83C3A9E
+ .string "$"
+
+ .align 2
+gUnknown_Debug_083C3AA0:: @ 0x83C3AA0
+ .4byte gUnknown_Debug_083C37AC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C37C0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C37CF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C37E5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C37FD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3811, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3824, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3825, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C3AE0:: @ 0x83C3AE0
+ .4byte gUnknown_Debug_083C3827, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C383B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C384F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3863, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3875, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3885, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3886, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3887, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3888, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C3B28:: @ 0x83C3B28
+ .4byte gUnknown_Debug_083C3889, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C389D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C38B1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C38C5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C38D9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C38ED, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3901, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3915, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3929, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C3B70:: @ 0x83C3B70
+ .4byte gUnknown_Debug_083C3940, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3954, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3968, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3969, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C396A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C396B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C396C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C396D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C396E, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C3BB8::
+ .4byte gUnknown_Debug_083C396F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3984, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3997, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C39A9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C39BC, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C39D3, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C39E8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C39F9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A0E, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C3C00::
+ .4byte gUnknown_Debug_083C3A22, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A36, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A4D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A65, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A7B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A8D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A9C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A9D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3A9E, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C3C48:: @ 0x83C3C48
+ .string "かおけいけか"
+
+gUnknown_Debug_83C3C4E:: @ 0x83C3C4E
+ .string "ョぞガぞギぞゲぞヂぞ’ぞ      5ぞGぞ♂ぞ6ぞ4ぞ        !ぞ?ぞ。ぞーぞ·ぞ‥ぞ“ぞ”ぞ♀ぞゾぞDぞ              グぞズぞバぞビぞベぞピぞ2ぞ3ぞ8ぞ‘ぞ¥ぞAぞBぞFぞKぞ      "
+
+ @ But these are strings
+gUnknown_Debug_083C3CBA:: @ 0x83C3CBA
+ .string "タウン$"
+
+gUnknown_Debug_083C3CBE:: @ 0x83C3CBE
+ .string "シティ$"
+
+gUnknown_Debug_083C3CC2:: @ 0x83C3CC2
+ .string "ロード101ー109$"
+
+gUnknown_Debug_083C3CCD:: @ 0x83C3CCD
+ .string "ロード110ー118$"
+
+gUnknown_Debug_083C3CD8:: @ 0x83C3CD8
+ .string "ロード119ー127$"
+
+gUnknown_Debug_083C3CE3:: @ 0x83C3CE3
+ .string "ロード128ー134$"
+
+gUnknown_Debug_083C3CEE:: @ 0x83C3CEE
+ .string "ルーム タウン$"
+
+gUnknown_Debug_083C3CF6:: @ 0x83C3CF6
+ .string "ルーム シティ$"
+
+gUnknown_Debug_083C3CFE:: @ 0x83C3CFE
+ .string "ダンジョンない$"
+
+ .align 2
+gUnknown_Debug_083C3D08:: @ 0x83C3D08
+ .4byte gUnknown_Debug_083C3CBA, debug_sub_808DBA0+1
+ .4byte gUnknown_Debug_083C3CBE, debug_sub_808DBF8+1
+ .4byte gUnknown_Debug_083C3CC2, debug_sub_808DC50+1
+ .4byte gUnknown_Debug_083C3CCD, debug_sub_808DCA8+1
+ .4byte gUnknown_Debug_083C3CD8, debug_sub_808DD00+1
+ .4byte gUnknown_Debug_083C3CE3, debug_sub_808DD58+1
+ .4byte gUnknown_Debug_083C3CEE, debug_sub_808DDB0+1
+ .4byte gUnknown_Debug_083C3CF6, debug_sub_808DE08+1
+ .4byte gUnknown_Debug_083C3CFE, debug_sub_808DE60+1
+
+gUnknown_Debug_083C3D50:: @ 0x83C3D50
+ .string "WKーSCENEーFIELDーT101$"
+
+gUnknown_Debug_083C3D64:: @ 0x83C3D64
+ .string "WKーSCENEーFIELDーT102$"
+
+gUnknown_Debug_083C3D78:: @ 0x83C3D78
+ .string "WKーSCENEーFIELDーT103$"
+
+gUnknown_Debug_083C3D8C:: @ 0x83C3D8C
+ .string "WKーSCENEーFIELDーT104$"
+
+gUnknown_Debug_083C3DA0:: @ 0x83C3DA0
+ .string "WKーBASEーPOSNO$"
+
+gUnknown_Debug_083C3DAE:: @ 0x83C3DAE
+ .string "WKーSCENEーFIELDーT106$"
+
+gUnknown_Debug_083C3DC2:: @ 0x83C3DC2
+ .string "WKーSCENEーFIELDーT107$"
+
+gUnknown_Debug_083C3DD6:: @ 0x83C3DD6
+ .string "WKーSCENEー02ーFIELDーT102$"
+
+gUnknown_Debug_083C3DED:: @ 0x83C3DED
+ .string "WKーSCENEーFIELDーC101$"
+
+gUnknown_Debug_083C3E01:: @ 0x83C3E01
+ .string "WKーSCENEーFIELDーC102$"
+
+gUnknown_Debug_083C3E15:: @ 0x83C3E15
+ .string "WKーSCENEーFIELDーC103$"
+
+gUnknown_Debug_083C3E29:: @ 0x83C3E29
+ .string "WKーSCENEーFIELDーC104$"
+
+gUnknown_Debug_083C3E3D:: @ 0x83C3E3D
+ .string "WKーSCENEーFIELDーC105$"
+
+gUnknown_Debug_083C3E51:: @ 0x83C3E51
+ .string "WKーSCENEーFIELDーC106$"
+
+gUnknown_Debug_083C3E65:: @ 0x83C3E65
+ .string "WKーSCENEーFIELDーC107$"
+
+gUnknown_Debug_083C3E79:: @ 0x83C3E79
+ .string "WKーSCENEーFIELDーC108$"
+
+gUnknown_Debug_083C3E8D:: @ 0x83C3E8D
+ .string "WKーSCENEーFIELDーC109$"
+
+gUnknown_Debug_083C3EA1:: @ 0x83C3EA1
+ .string "WKーSCENEーFIELDーR101$"
+
+gUnknown_Debug_083C3EB5:: @ 0x83C3EB5
+ .string "WKーSCENEーFIELDーR102$"
+
+gUnknown_Debug_083C3EC9:: @ 0x83C3EC9
+ .string "WKーSCENEーFIELDーR103$"
+
+gUnknown_Debug_083C3EDD:: @ 0x83C3EDD
+ .string "WKーSCENEーFIELDーR104$"
+
+gUnknown_Debug_083C3EF1:: @ 0x83C3EF1
+ .string "WKーSCENEーFIELDーR105$"
+
+gUnknown_Debug_083C3F05:: @ 0x83C3F05
+ .string "WKーSCENEーFIELDーR106$"
+
+gUnknown_Debug_083C3F19:: @ 0x83C3F19
+ .string "WKーSCENEーFIELDーR107$"
+
+gUnknown_Debug_083C3F2D:: @ 0x83C3F2D
+ .string "WKーSCENEーFIELDーR108$"
+
+gUnknown_Debug_083C3F41:: @ 0x83C3F41
+ .string "WKーSCENEーFIELDーR109$"
+
+gUnknown_Debug_083C3F55:: @ 0x83C3F55
+ .string "WKーSCENEーFIELDーR110$"
+
+gUnknown_Debug_083C3F69:: @ 0x83C3F69
+ .string "WKーSCENEーFIELDーR111$"
+
+gUnknown_Debug_083C3F7D:: @ 0x83C3F7D
+ .string "WKーSCENEーFIELDーR112$"
+
+gUnknown_Debug_083C3F91:: @ 0x83C3F91
+ .string "WKーSCENEーFIELDーR113$"
+
+gUnknown_Debug_083C3FA5:: @ 0x83C3FA5
+ .string "WKーSCENEーFIELDーR114$"
+
+gUnknown_Debug_083C3FB9:: @ 0x83C3FB9
+ .string "WKーSCENEーFIELDーR115$"
+
+gUnknown_Debug_083C3FCD:: @ 0x83C3FCD
+ .string "WKーSCENEーFIELDーR116$"
+
+gUnknown_Debug_083C3FE1:: @ 0x83C3FE1
+ .string "WKーSCENEーFIELDーR117$"
+
+gUnknown_Debug_083C3FF5:: @ 0x83C3FF5
+ .string "WKーSCENEーFIELDーR118$"
+
+gUnknown_Debug_083C4009:: @ 0x83C4009
+ .string "WKーSCENEーFIELDーR119$"
+
+gUnknown_Debug_083C401D:: @ 0x83C401D
+ .string "WKーSCENEーFIELDーR120$"
+
+gUnknown_Debug_083C4031:: @ 0x83C4031
+ .string "WKーSCENEーFIELDーR121$"
+
+gUnknown_Debug_083C4045:: @ 0x83C4045
+ .string "WKーSCENEーFIELDーR122$"
+
+gUnknown_Debug_083C4059:: @ 0x83C4059
+ .string "WKーSCENEーFIELDーR123$"
+
+gUnknown_Debug_083C406D:: @ 0x83C406D
+ .string "WKーSCENEーFIELDーR124$"
+
+gUnknown_Debug_083C4081:: @ 0x83C4081
+ .string "WKーSCENEーFIELDーR125$"
+
+gUnknown_Debug_083C4095:: @ 0x83C4095
+ .string "WKーSCENEーFIELDーR126$"
+
+gUnknown_Debug_083C40A9:: @ 0x83C40A9
+ .string "WKーSCENEーFIELDーR127$"
+
+gUnknown_Debug_083C40BD:: @ 0x83C40BD
+ .string "WKーSCENEーFIELDーR128$"
+
+gUnknown_Debug_083C40D1:: @ 0x83C40D1
+ .string "WKーSCENEーFIELDーR129$"
+
+gUnknown_Debug_083C40E5:: @ 0x83C40E5
+ .string "WKーSCENEーFIELDーR130$"
+
+gUnknown_Debug_083C40F9:: @ 0x83C40F9
+ .string "WKーSCENEーFIELDーR131$"
+
+gUnknown_Debug_083C410D:: @ 0x83C410D
+ .string "WKーSCENEーFIELDーR132$"
+
+gUnknown_Debug_083C4121:: @ 0x83C4121
+ .string "WKーSCENEーFIELDーR133$"
+
+gUnknown_Debug_083C4135:: @ 0x83C4135
+ .string "WKーSCENEーFIELDーR134$"
+
+gUnknown_Debug_083C4149:: @ 0x83C4149
+ .string "WKーSCENEーT101ーR0101$"
+
+gUnknown_Debug_083C415D:: @ 0x83C415D
+ .string "WKーSCENEーT101ーR0102$"
+
+gUnknown_Debug_083C4171:: @ 0x83C4171
+ .string "WKーSCENEーT101ーR0301$"
+
+gUnknown_Debug_083C4185:: @ 0x83C4185
+ .string "WKーSCENEーT101ーR0201$"
+
+gUnknown_Debug_083C4199:: @ 0x83C4199
+ .string "WKーSCENEーT101ーR0202$"
+
+gUnknown_Debug_083C41AD:: @ 0x83C41AD
+ .string "WKーSCENEーT107ーR0201$"
+
+gUnknown_Debug_083C41C1:: @ 0x83C41C1
+ .string "WKーSCENEーC101ーR0201$"
+
+gUnknown_Debug_083C41D5:: @ 0x83C41D5
+ .string "WKーSCENEーC104ーR0103$"
+
+gUnknown_Debug_083C41E9:: @ 0x83C41E9
+ .string "WKーSCENEーC103ーR0101$"
+
+gUnknown_Debug_083C41FD:: @ 0x83C41FD
+ .string "WKーSCENEーC106ーR0202$"
+
+gUnknown_Debug_083C4211:: @ 0x83C4211
+ .string "WKーSCENEーC106ーR0401$"
+
+gUnknown_Debug_083C4225:: @ 0x83C4225
+ .string "WKーSCENEーC102ーR0601$"
+
+gUnknown_Debug_083C4239:: @ 0x83C4239
+ .string "WKーSCENEーC102ーR0501$"
+
+gUnknown_Debug_083C424D:: @ 0x83C424D
+ .string "WKーSCENEーC104ーR0102$"
+
+gUnknown_Debug_083C4261:: @ 0x83C4261
+ .string "WKーSCENEーC107ーR0501$"
+
+gUnknown_Debug_083C4275:: @ 0x83C4275
+ .string "WKーSCENEーCAVEーD0601$"
+
+gUnknown_Debug_083C4289:: @ 0x83C4289
+ .string "WKーSCENEーCAVEーD0201$"
+
+gUnknown_Debug_083C429D:: @ 0x83C429D
+ .string "WKーSCENEーCAVEーD1206$"
+
+gUnknown_Debug_083C42B1:: @ 0x83C42B1
+ .string "WKーSCENEーCAVEーD1111$"
+
+gUnknown_Debug_083C42C5:: @ 0x83C42C5
+ .string "WKーSCENEーCAVEーD0701$"
+
+gUnknown_Debug_083C42D9:: @ 0x83C42D9
+ .string "WKーSCENEーCAVEーD0808$"
+
+gUnknown_Debug_083C42ED:: @ 0x83C42ED
+ .string "WKーSCENEーCAVEーD1602$"
+
+gUnknown_Debug_083C4301:: @ 0x83C4301
+ .string "WKーSCENEーCAVEーD0101$"
+
+gUnknown_Debug_083C4315:: @ 0x83C4315
+ .string "WKーSCENEーCAVEーD1301$"
+
+ .align 2
+gUnknown_Debug_083C432C:: @ 0x83C432C
+ .4byte gUnknown_Debug_083C3D50, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3D64, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3D78, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3D8C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3DA0, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3DAE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3DC2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3DD6, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C436C::
+ .4byte gUnknown_Debug_083C3DED, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E01, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E15, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E29, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E3D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E51, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E65, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E79, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3E8D, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C43B4::
+ .4byte gUnknown_Debug_083C3EA1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3EB5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3EC9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3EDD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3EF1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F05, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F19, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F2D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F41, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C43FC::
+ .4byte gUnknown_Debug_083C3F55, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F69, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F7D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3F91, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3FA5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3FB9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3FCD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3FE1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C3FF5, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C4444::
+ .4byte gUnknown_Debug_083C4009, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C401D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4031, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4045, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4059, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C406D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4081, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4095, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C40A9, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C448C::
+ .4byte gUnknown_Debug_083C40BD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C40D1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C40E5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C40F9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C410D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4121, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4135, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C44C4::
+ .4byte gUnknown_Debug_083C4149, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C415D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4171, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4185, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4199, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_83C44EC::
+ .4byte gUnknown_Debug_083C41C1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C41D5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C41E9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C41FD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4211, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4225, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4239, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C424D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4261, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C4534::
+ .4byte gUnknown_Debug_083C4275, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4289, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C429D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C42B1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C42C5, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C42D9, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C42ED, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4301, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4315, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C457C:: @ 0x83C457C
+ .string "くけけけけきかけけ "
+gUnknown_Debug_083C4586:: @ 0x83C4586
+ .string "っぞアぞイぞウぞエぞオぞカぞMぞ  キぞクぞケぞコぞサぞシぞスぞセぞソぞタぞチぞツぞテぞトぞナぞニぞヌぞネぞノぞハぞヒぞフぞヘぞホぞマぞミぞムぞメぞモぞヤぞユぞヨぞラぞリぞルぞレぞロぞワぞヲぞンぞァぞィぞゥぞ    ェぞォぞャぞザぞジぞHぞ      ュぞゼぞヅぞデぞドぞッぞ9ぞJぞLぞブぞボぞパぞ1ぞ7ぞ×ぞ/ぞEぞIぞ"
+
+gUnknown_Debug_083C4628:: @ 0x83C4628
+ .string "LOCALWORK0ー8$"
+
+gUnknown_Debug_083C4635:: @ 0x83C4635
+ .string "LOCALWORK9ー15$"
+
+ .align 2
+gUnknown_Debug_083C4644:: @ 0x83C4644
+ .4byte gUnknown_Debug_083C4628, debug_sub_808E754+1
+ .4byte gUnknown_Debug_083C4635, debug_sub_808E7AC+1
+
+gUnknown_Debug_083C4654:: @ 0x83C4654
+ .string "LOCALWORK0$"
+
+gUnknown_Debug_083C465F:: @ 0x83C465F
+ .string "LOCALWORK1$"
+
+gUnknown_Debug_083C466A:: @ 0x83C466A
+ .string "LOCALWORK2$"
+
+gUnknown_Debug_083C4675:: @ 0x83C4675
+ .string "LOCALWORK3$"
+
+gUnknown_Debug_083C4680:: @ 0x83C4680
+ .string "LOCALWORK4$"
+
+gUnknown_Debug_083C468B:: @ 0x83C468B
+ .string "LOCALWORK5$"
+
+gUnknown_Debug_083C4696:: @ 0x83C4696
+ .string "LOCALWORK6$"
+
+gUnknown_Debug_083C46A1:: @ 0x83C46A1
+ .string "LOCALWORK7$"
+
+gUnknown_Debug_083C46AC:: @ 0x83C46AC
+ .string "LOCALWORK8$"
+
+gUnknown_Debug_083C46B7:: @ 0x83C46B7
+ .string "LOCALWORK9$"
+
+gUnknown_Debug_083C46C2:: @ 0x83C46C2
+ .string "LOCALWORK10$"
+
+gUnknown_Debug_083C46CE:: @ 0x83C46CE
+ .string "LOCALWORK11$"
+
+gUnknown_Debug_083C46DA:: @ 0x83C46DA
+ .string "LOCALWORK12$"
+
+gUnknown_Debug_083C46E6:: @ 0x83C46E6
+ .string "LOCALWORK13$"
+
+gUnknown_Debug_083C46F2:: @ 0x83C46F2
+ .string "LOCALWORK14$"
+
+gUnknown_Debug_083C46FE:: @ 0x83C46FE
+ .string "LOCALWORK15$"
+
+ .align 2
+gUnknown_Debug_083C470C:: @ 0x83C470C
+ .4byte gUnknown_Debug_083C4654, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C465F, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C466A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4675, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4680, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C468B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4696, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46A1, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46AC, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C4754C::
+ .4byte gUnknown_Debug_083C46B7, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46C2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46CE, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46DA, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46E6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46F2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C46FE, TomomichiDebugMenu_Config+1
+
+ @ These are not strings
+gUnknown_Debug_083C478C:: @ 0x83C478C
+ .string "けき"
+gUnknown_Debug_083C478E:: @ 0x83C478E
+ .string " ぞあぞいぞうぞえぞおぞかぞきぞくぞけぞこぞさぞしぞすぞせぞそぞ    "
+
+gUnknown_Debug_083C47B2::
+ .string "Level$"
+
+gUnknown_Debug_083C47B8:: @ 0x83C47B8
+ .string "Scene1$"
+
+gUnknown_Debug_083C47BF:: @ 0x83C47BF
+ .string "Scene2$"
+
+gUnknown_Debug_083C47C6:: @ 0x83C47C6
+ .string "Scene3$"
+
+gUnknown_Debug_083C47CD:: @ 0x83C47CD
+ .string "Scene4$"
+
+gUnknown_Debug_083C47D4:: @ 0x83C47D4
+ .string "Scene5$"
+
+gUnknown_Debug_083C47DB:: @ 0x83C47DB
+ .string "Scene6$"
+
+gUnknown_Debug_083C47E2:: @ 0x83C47E2
+ .string "Scene7$"
+
+gUnknown_Debug_083C47E9:: @ 0x83C47E9
+ .string "Scene8$"
+
+ .align 2
+gUnknown_Debug_083C47F0:: @ 0x83C47F0
+ .4byte gUnknown_Debug_083C47B8, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47BF, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47C6, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47CD, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47D4, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47DB, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47E2, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C47E9, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C4830:: @ 0x83C4830
+ .string "Trick Master$"
+
+gUnknown_Debug_083C483D:: @ 0x83C483D
+ .string "Hidden MASTER$"
+
+gUnknown_Debug_083C484B:: @ 0x83C484B
+ .string "Inside the HOUSE$"
+
+gUnknown_Debug_083C485C:: @ 0x83C485C
+ .string "Pass a reward$"
+
+gUnknown_Debug_083C486A:: @ 0x83C486A
+ .string "Rig a trick$"
+
+gUnknown_Debug_083C4876:: @ 0x83C4876
+ .string "MASTER is gone$"
+
+ .align 2
+gUnknown_Debug_083C4888:: @ 0x83C4888
+ .4byte gUnknown_Debug_083C483D, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C484B, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C485C, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C486A, TomomichiDebugMenu_Config+1
+ .4byte gUnknown_Debug_083C4876, TomomichiDebugMenu_Config+1
+
+gUnknown_Debug_083C48B0:: @ 0x83C48B0
+ .string "PMNICKNAME$"
+
+gUnknown_Debug_083C48BB:: @ 0x83C48BB
+ .string "BREEDER$"
+ .endif
diff --git a/data/debug_menu_watanabe.s b/data/debug_menu_watanabe.s
new file mode 100644
index 000000000..58f9b21fd
--- /dev/null
+++ b/data/debug_menu_watanabe.s
@@ -0,0 +1,744 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .if DEBUG
+
+gUnknown_Debug_083F7FD4:: @ 0x83F7FD4
+ .string "▶$"
+
+gUnknown_Debug_083F7FD6:: @ 0x83F7FD6
+ .string "ゆみあくひりつ$"
+
+gUnknown_Debug_083F7FDE:: @ 0x83F7FDE
+ .string "たかさ$"
+
+gUnknown_Debug_083F7FE2:: @ 0x83F7FE2
+ .string "Lキー▶しゅくしょう$"
+
+gUnknown_Debug_083F7FED:: @ 0x83F7FED
+ .string "Rキー▶かくだい$"
+
+gUnknown_Debug_083F7FF6:: @ 0x83F7FF6
+ .string "Uキー▶うえ いどう$"
+
+gUnknown_Debug_083F8001:: @ 0x83F8001
+ .string "Dキー▶した いどう$"
+
+gUnknown_Debug_083F800C:: @ 0x83F800C
+ .string "Aボタン▶そうさきりかえ$"
+
+gUnknown_Debug_083F8019:: @ 0x83F8019
+ .string "Bボタン▶やめる$"
+
+gUnknown_Debug_083F8022:: @ 0x83F8022
+ .string "スタート:$"
+
+gUnknown_Debug_083F8028:: @ 0x83F8028
+ .string ":セレクト$"
+
+gUnknown_Debug_083F802E:: @ 0x83F802E
+ .string "やせいたいせん$"
+
+gUnknown_Debug_083F8036:: @ 0x83F8036
+ .string "1VS1たいせん$"
+
+gUnknown_Debug_083F803F:: @ 0x83F803F
+ .string "2VS2たいせん$"
+
+gUnknown_Debug_083F8048:: @ 0x83F8048
+ .string "{COLOR BLUE}1VS1つうしんたいせん$"
+
+gUnknown_Debug_083F8058:: @ 0x83F8058
+ .string "{COLOR BLUE}2VS2つうしんたいせん$"
+
+gUnknown_Debug_083F8068:: @ 0x83F8068
+ .4byte gUnknown_Debug_083F802E, 0x100
+ .4byte gUnknown_Debug_083F8036, 0x108
+ .4byte gUnknown_Debug_083F803F, 0x209
+ .4byte gUnknown_Debug_083F8048, 0x10A
+ .4byte gUnknown_Debug_083F8058, 0x20B
+
+gUnknown_Debug_083F8090:: @ 0x83F8090
+ .string "きほんタイプ$"
+
+gUnknown_Debug_083F8097:: @ 0x83F8097
+ .string "AIタイプ2$"
+
+gUnknown_Debug_083F809E:: @ 0x83F809E
+ .string "AIタイプ3$"
+
+gUnknown_Debug_083F80A5:: @ 0x83F80A5
+ .string "AIタイプ4$"
+
+gUnknown_Debug_083F80AC:: @ 0x83F80AC
+ .string "AIタイプ5$"
+
+gUnknown_Debug_083F80B3:: @ 0x83F80B3
+ .string "AIタイプ6$"
+
+gUnknown_Debug_083F80BA:: @ 0x83F80BA
+ .string "AIタイプ7$"
+
+gUnknown_Debug_083F80C1:: @ 0x83F80C1
+ .string "AIタイプ8$"
+
+gUnknown_Debug_083F80C8:: @ 0x83F80C8
+ .string "AIタイプ9$"
+
+gUnknown_Debug_083F80CF:: @ 0x83F80CF
+ .string "AIタイプ10$"
+
+ .align 2
+gUnknown_Debug_083F80D8:: @ 0x83F80D8
+ .4byte gUnknown_Debug_083F8090, 0x1
+ .4byte gUnknown_Debug_083F8097, 0x2
+ .4byte gUnknown_Debug_083F809E, 0x4
+ .4byte gUnknown_Debug_083F80A5, 0x8
+ .4byte gUnknown_Debug_083F80AC, 0x10
+ .4byte gUnknown_Debug_083F80B3, 0x20
+ .4byte gUnknown_Debug_083F80BA, 0x40
+ .4byte gUnknown_Debug_083F80C1, 0x80
+ .4byte gUnknown_Debug_083F80C8, 0x100
+ .4byte gUnknown_Debug_083F80CF, 0x200
+
+gUnknown_Debug_083F8128:: @ 0x83F8128
+ .string "くさ$"
+
+gUnknown_Debug_083F812B:: @ 0x83F812B
+ .string "ながい くさ$"
+
+gUnknown_Debug_083F8132:: @ 0x83F8132
+ .string "すな$"
+
+gUnknown_Debug_083F8135:: @ 0x83F8135
+ .string "みず$"
+
+gUnknown_Debug_083F8138:: @ 0x83F8138
+ .string "うみ$"
+
+gUnknown_Debug_083F813B:: @ 0x83F813B
+ .string "いけ$"
+
+gUnknown_Debug_083F813E:: @ 0x83F813E
+ .string "いわ$"
+
+gUnknown_Debug_083F8141:: @ 0x83F8141
+ .string "どうくつ$"
+
+gUnknown_Debug_083F8146:: @ 0x83F8146
+ .string "そのた$"
+
+ .align 2
+gUnknown_Debug_083F814C:: @ 0x83F814C
+ .4byte gUnknown_Debug_083F8128, 0x0
+ .4byte gUnknown_Debug_083F812B, 0x1
+ .4byte gUnknown_Debug_083F8132, 0x2
+ .4byte gUnknown_Debug_083F8135, 0x3
+ .4byte gUnknown_Debug_083F8138, 0x4
+ .4byte gUnknown_Debug_083F813B, 0x5
+ .4byte gUnknown_Debug_083F813E, 0x6
+ .4byte gUnknown_Debug_083F8141, 0x7
+ .4byte gUnknown_Debug_083F8146, 0x8
+
+gUnknown_Debug_083F8194:: @ 0x83F8194
+ .string "ポケモンを えらんでね$"
+
+gUnknown_Debug_083F81A0:: @ 0x83F81A0
+ .string "{COLOR RED}START:つぎへ$"
+
+gUnknown_Debug_083F81AD:: @ 0x83F81AD
+ .string "{COLOR RED}じぶんの ポケモン$"
+
+gUnknown_Debug_083F81BA:: @ 0x83F81BA
+ .string "{COLOR RED}あいての ポケモン$"
+
+gUnknown_Debug_083F81C7:: @ 0x83F81C7
+ .string "たいせんモードを えらんでね$"
+
+gUnknown_Debug_083F81D6:: @ 0x83F81D6
+ .string "{COLOR RED}バトルモード せんたく$"
+
+gUnknown_Debug_083F81E5:: @ 0x83F81E5
+ .string "{COLOR RED}トレーナーAI せんたく$"
+
+gUnknown_Debug_083F81F5:: @ 0x83F81F5
+ .string "{COLOR RED}START:かいし$"
+
+gUnknown_Debug_083F8202:: @ 0x83F8202
+ .string "{COLOR RED}バトルちけい せんたく$"
+
+gUnknown_Debug_083F8211:: @ 0x83F8211
+ .string "じぶんの せいべつを えらんでね$"
+
+gUnknown_Debug_083F8222:: @ 0x83F8222
+ .string "{COLOR RED}せいべつ せんたく$"
+
+gUnknown_Debug_083F822F:: @ 0x83F822F
+ .string "おとこ$"
+
+gUnknown_Debug_083F8233:: @ 0x83F8233
+ .string "おんな$"
+Str_83F8237:
+ .string "Kind$"
+
+ .align 2
+_83F823C:
+ .4byte 1
+ .byte 0x82, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8248:
+ .string "Level$"
+
+ .align 2
+_83F8250:
+ .4byte 1
+ .byte 0x64, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F825C:
+ .string "EXP Points$"
+
+ .align 2
+_83F8268:
+ .4byte 1
+ .byte 0x80, 0x84, 0x1E, 0x00, 0x00, 0x07, 0x00, 0x00
+
+Str_83F8274:
+ .string "ID$"
+
+ .align 2
+_83F8278:
+ .4byte 0
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0A, 0x00, 0x00
+
+Str_83F8284:
+ .string "Rnd Numbers$"
+
+ .align 2
+_83F8290:
+ .4byte 0
+ .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0A, 0x00, 0x00
+
+Str_83F829C:
+ .string "Sex$"
+
+ .align 2
+_83F82A0:
+ .4byte 0
+ .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00
+
+Str_83F82AC:
+ .string "Character$"
+
+ .align 2
+_83F82B8:
+ .4byte 0
+ .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00
+
+Str_83F82C4:
+ .string "Move1$"
+
+ .align 2
+_83F82CC:
+ .4byte 0
+ .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F82D8:
+ .string "Move2$"
+
+ .align 2
+_83F82E0:
+ .4byte 0
+ .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F82EC:
+ .string "Move3$"
+
+ .align 2
+_83F82F4:
+ .4byte 0
+ .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8300:
+ .string "Move4$"
+
+ .align 2
+_83F8308:
+ .4byte 0
+ .byte 0x62, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8314:
+ .string "Hold$"
+
+ .align 2
+_83F831C:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8328:
+ .string "SP. Ability$"
+
+ .align 2
+_83F8334:
+ .4byte 0
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00
+
+Str_83F8340:
+ .string "HPrnd$"
+
+ .align 2
+_83F8348:
+ .4byte 0
+ .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+
+Str_83F8354:
+ .string "HPexp$"
+
+ .align 2
+_83F835C:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8368:
+ .string "ATKrnd$"
+
+ .align 2
+_83F8370:
+ .4byte 0
+ .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+
+Str_83F837C:
+ .string "ATKexp$"
+
+ .align 2
+_83F8384:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8390:
+ .string "DEFrnd$"
+
+ .align 2
+_83F8398:
+ .4byte 0
+ .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+
+Str_83F83A4:
+ .string "DEFexp$"
+
+ .align 2
+_83F83AC:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F83B8:
+ .string "SPDrnd$"
+
+ .align 2
+_83F83C0:
+ .4byte 0
+ .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+
+Str_83F83CC:
+ .string "SPDexp$"
+
+ .align 2
+_83F83D4:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F83E0:
+ .string "SP. ATK$"
+ .string "rnd$"
+
+ .align 2
+_83F83EC:
+ .4byte 0
+ .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+
+Str_83F83F8:
+ .string "SP. ATK$"
+ .string "exp$"
+
+ .align 2
+_83F8404:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8410:
+ .string "SP. DEF$"
+ .string "rnd$"
+
+ .align 2
+_83F841C:
+ .4byte 0
+ .byte 0x1F, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
+
+Str_83F8428:
+ .string "SP. DEF$"
+ .string "exp$"
+
+ .align 2
+_83F8434:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8440:
+ .string "Cool$"
+
+ .align 2
+_83F8448:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8454:
+ .string "Beauty$"
+
+ .align 2
+_83F845C:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8468:
+ .string "Cute$"
+
+ .align 2
+_83F8470:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F847C:
+ .string "Smart$"
+
+ .align 2
+_83F8484:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F8490:
+ .string "Tough$"
+
+ .align 2
+_83F8498:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F84A4:
+ .string "Sheen$"
+
+ .align 2
+_83F84AC:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F84B8:
+ .string "Tameness$"
+
+ .align 2
+_83F84C4:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F84D0:
+ .string "{PK}RUS$"
+
+ .align 2
+_83F84D8:
+ .4byte 0
+ .byte 0xFF, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00
+
+Str_83F84E4:
+ .string "EGG$"
+ .string "$"
+
+ .align 2
+_83F84EC:
+ .4byte 0
+ .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00
+
+Str_83F84F8:
+ .string "Status$"
+
+ .align 2
+_83F8500:
+ .4byte 0
+ .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00
+
+
+gUnknown_Debug_083F850A:: @ 0x83F850A
+ .string "{COLOR RED}HP  $"
+
+gUnknown_Debug_083F8514:: @ 0x83F8514
+ .string "{COLOR RED}ATK $"
+
+gUnknown_Debug_083F851C:: @ 0x83F851C
+ .string "{COLOR RED}DEF $"
+
+gUnknown_Debug_083F8524:: @ 0x83F8524
+ .string "{COLOR RED}SPEED$"
+
+gUnknown_Debug_083F852D:: @ 0x83F852D
+ .string "{COLOR RED}SP。ATK$"
+
+gUnknown_Debug_083F8537:: @ 0x83F8537
+ .string "{COLOR RED}SP。DEF$"
+
+gUnknown_Debug_083F8541:: @ 0x83F8541
+ .string "なし$"
+
+gUnknown_Debug_083F8544:: @ 0x83F8544
+ .string "♂$"
+
+gUnknown_Debug_083F8546:: @ 0x83F8546
+ .string "♀$"
+
+gUnknown_Debug_083F8548:: @ 0x83F8548
+ .string "ー$"
+
+gUnknown_Debug_083F854A:: @ 0x83F854A
+ .string "ON$"
+
+gUnknown_Debug_083F854D:: @ 0x83F854D
+ .string "OFF$"
+
+ .align 2
+gUnknown_Debug_083F8554:: @ 0x83F8554
+ .4byte Str_83F8237, _83F823C
+ .4byte Str_83F8248, _83F8250
+ .4byte Str_83F825C, _83F8268
+ .4byte Str_83F8274, _83F8278
+ .4byte Str_83F8284, _83F8290
+ .4byte Str_83F829C, _83F82A0
+ .4byte Str_83F82AC, _83F82B8
+ .4byte Str_83F82C4, _83F82CC
+ .4byte Str_83F82D8, _83F82E0
+ .4byte Str_83F82EC, _83F82F4
+ .4byte Str_83F8300, _83F8308
+ .4byte Str_83F8314, _83F831C
+ .4byte Str_83F8328, _83F8334
+ .4byte Str_83F8340, _83F8348
+ .4byte Str_83F8354, _83F835C
+ .4byte Str_83F8368, _83F8370
+ .4byte Str_83F837C, _83F8384
+ .4byte Str_83F8390, _83F8398
+ .4byte Str_83F83A4, _83F83AC
+ .4byte Str_83F83B8, _83F83C0
+ .4byte Str_83F83CC, _83F83D4
+ .4byte Str_83F83E0, _83F83EC
+ .4byte Str_83F83F8, _83F8404
+ .4byte Str_83F8410, _83F841C
+ .4byte Str_83F8428, _83F8434
+ .4byte Str_83F8440, _83F8448
+ .4byte Str_83F8454, _83F845C
+ .4byte Str_83F8468, _83F8470
+ .4byte Str_83F847C, _83F8484
+ .4byte Str_83F8490, _83F8498
+ .4byte Str_83F84A4, _83F84AC
+ .4byte Str_83F84B8, _83F84C4
+ .4byte Str_83F84D0, _83F84D8
+ .4byte Str_83F84E4, _83F84EC
+ .4byte Str_83F84F8, _83F8500
+
+gUnknown_Debug_083F866C:: @ 0x83F866C
+ .string " あいうえおか$"
+
+gUnknown_Debug_083F8674:: @ 0x83F8674
+ .string "めまみ$"
+
+gUnknown_Debug_083F8678:: @ 0x83F8678
+ .string "きくけこさし$"
+
+gUnknown_Debug_083F867F:: @ 0x83F867F
+ .string "すせそたちつ\n"
+ .string "$"
+
+gUnknown_Debug_083F8687:: @ 0x83F8687
+ .string "てとなにぬね{STRING 255}のはひふへほ$"
+
+ .align 2
+gUnknown_Debug_083F8698:: @ 0x83F8698
+ .4byte gUnknown_Debug_083F866C, 0x5
+ .4byte gUnknown_Debug_083F8674, 0x3
+ .4byte gUnknown_Debug_083F8678, 0x6
+ .4byte gUnknown_Debug_083F867F, 0x6
+ .4byte gUnknown_Debug_083F8687, 0x6
+ .4byte 0x83F868F, 0x6
+
+gUnknown_Debug_083F86C8:: @ 0x83F86C8
+ .string "ーーー$"
+
+gUnknown_Debug_083F86CC:: @ 0x83F86CC
+ .string "SLP$"
+
+gUnknown_Debug_083F86D0:: @ 0x83F86D0
+ .string "PSN$"
+
+gUnknown_Debug_083F86D4:: @ 0x83F86D4
+ .string "BRN$"
+
+gUnknown_Debug_083F86D8:: @ 0x83F86D8
+ .string "FRZ$"
+
+gUnknown_Debug_083F86DC:: @ 0x83F86DC
+ .string "PAR$"
+
+gUnknown_Debug_083F86E0:: @ 0x83F86E0
+ .string "PSN2$"
+
+ .align 2
+gUnknown_Debug_083F86E8:: @ 0x83F86E8
+ .4byte gUnknown_Debug_083F86C8, 0x0
+ .4byte gUnknown_Debug_083F86CC, 0x1
+ .4byte gUnknown_Debug_083F86D0, 0x8
+ .4byte gUnknown_Debug_083F86D4, 0x10
+ .4byte gUnknown_Debug_083F86D8, 0x20
+ .4byte gUnknown_Debug_083F86DC, 0x40
+ .4byte gUnknown_Debug_083F86E0, 0x80
+
+gUnknown_Debug_083F8720:: @ 0x83F8720
+ .string "PKMNワLIST$"
+
+gUnknown_Debug_083F872A:: @ 0x83F872A
+ .string "PKMNワBOX$"
+
+gUnknown_Debug_083F8733:: @ 0x83F8733
+ .string "Create POKひMON   LR:Shift  START:Add$"
+
+gUnknown_Debug_083F8758:: @ 0x83F8758
+ .string "たまご$"
+
+gUnknown_Debug_083F875C:: @ 0x83F875C
+ .string "DebugーG$"
+
+gUnknown_Debug_083F8764::
+ .string " $"
+ .byte 0, 0
+
+gUnknown_Debug_083F8768::
+ .4byte 0x00000001
+ .4byte 0x0000000a
+ .4byte 0x00000064
+ .4byte 0x000003e8
+ .4byte 0x00002710
+ .4byte 0x000186a0
+ .4byte 0x000f4240
+ .4byte 0x00989680
+ .4byte 0x05f5e100
+ .4byte 0x3b9aca00
+
+gUnknown_Debug_083F8790::
+ .2byte 0x0000
+ .2byte 0x0002
+ .2byte 0x0004
+ .2byte 0x0006
+ .2byte 0x0008
+ .2byte 0x000a
+ .2byte 0x000c
+ .2byte 0x000e
+ .2byte 0x0010
+ .2byte 0x0012
+ .2byte 0x0014
+ .2byte 0x0016
+ .2byte 0x0018
+ .2byte 0x001a
+ .2byte 0x001c
+ .2byte 0x001e
+ .2byte 0x001f
+ .2byte 0x001e
+ .2byte 0x001c
+ .2byte 0x001a
+ .2byte 0x0018
+ .2byte 0x0016
+ .2byte 0x0014
+ .2byte 0x0012
+ .2byte 0x0010
+ .2byte 0x000e
+ .2byte 0x000c
+ .2byte 0x000a
+ .2byte 0x0008
+ .2byte 0x0006
+ .2byte 0x0004
+ .2byte 0x0002
+
+gUnknown_Debug_083F87D0:: @ 0x83F87D0
+ .string "{COLOR RED}L{ESCAPE}ロ$"
+
+gUnknown_Debug_083F87D8:: @ 0x83F87D8
+ .string "{COLOR RED}{ESCAPE}ワR$"
+
+gUnknown_Debug_083F87E0:: @ 0x83F87E0
+ .string "かいはつナンバー$"
+
+gUnknown_Debug_083F87E9:: @ 0x83F87E9
+ .string "グラフィックナンバー$"
+
+gUnknown_Debug_083F87F4:: @ 0x83F87F4
+ .string "{COLOR RED}A:カラーせってい$"
+
+gUnknown_Debug_083F8801:: @ 0x83F8801
+ .string "{COLOR RED}A:けってい B:キャンセル$"
+
+gUnknown_Debug_083F8813:: @ 0x83F8813
+ .string ":$"
+
+gUnknown_Debug_083F8815::
+ .byte 0x00
+ .byte 0x10
+ .byte 0x20
+ .byte 0x20
+ .byte 0x20
+ .byte 0x21
+ .byte 0x20
+ .byte 0x20
+ .byte 0x20
+ .byte 0x21
+ .byte 0x20
+ .byte 0x20
+ .byte 0x20
+ .byte 0x21
+ .byte 0x20
+ .byte 0x20
+ .byte 0x20
+ .byte 0x21
+
+ .align 2
+stru_83F8828::
+ obj_tiles byte_83F88EC, 0x800, 0x1000
+ null_obj_tiles
+
+stru_83F8838::
+ obj_pal word_83F888C, 0x1000
+ null_obj_pal
+
+gOamData_83F8848:
+ .2byte 0x00a0
+ .2byte 0x0000
+ .2byte 0x0000
+
+ .align 2
+gSpriteAnim_83F8850:
+ obj_image_anim_frame 38, 30
+ obj_image_anim_end
+
+gSpriteAnim_83F8858:
+ obj_image_anim_frame 39, 30
+ obj_image_anim_end
+
+gSpriteAnim_83F8860:
+ obj_image_anim_frame 40, 30
+ obj_image_anim_end
+
+gSpriteAnimTable_83F8868::
+ .4byte gSpriteAnim_83F8850, gSpriteAnim_83F8858, gSpriteAnim_83F8860
+
+gSpriteTemplate_83F8874::
+ spr_template 0x1000, 0x1000, gOamData_83F8848, gSpriteAnimTable_83F8868, 0, gDummySpriteAffineAnimTable, debug_80C7584
+
+word_83F888C::
+ .incbin "graphics/debug/sprite_browser.gbapal"
+
+byte_83F88EC::
+ .incbin "graphics/debug/sprite_browser.4bpp"
+
+ .endif
diff --git a/data/debug_mystery_event_menu.s b/data/debug_mystery_event_menu.s
new file mode 100644
index 000000000..06bf18377
--- /dev/null
+++ b/data/debug_mystery_event_menu.s
@@ -0,0 +1,20 @@
+.if DEBUG
+
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+Str_843DA70::
+ .string "CARDーE emulation。。。$"
+
+Str_843DA84::
+ .string "LR: select A: send。$"
+
+Str_843DA98::
+ .string "sending。。。$"
+
+Str_843DAA3::
+ .string "completed。$"
+
+.endif
diff --git a/data/easy_chat.s b/data/easy_chat.s
index 99a03f8f5..bece4a499 100644
--- a/data/easy_chat.s
+++ b/data/easy_chat.s
@@ -1,490 +1,13 @@
#include "constants/easy_chat.h"
#include "constants/moves.h"
#include "constants/species.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
#define EC_DUPLICATES(count) (0xFF00 + (count))
.section .rodata
- .align 1
-gMysteryEventPhrase:: @ 83DB678
- .2byte EC_WORD_MYSTERY
- .2byte EC_WORD_EVENT
- .2byte EC_WORD_IS
- .2byte EC_WORD_EXCITING
-
- .align 1
-gBerryMasterWifePhrases:: @ 83DB680
-.ifdef ENGLISH
- .2byte EC_WORD_GREAT
- .2byte EC_WORD_BATTLE
-
- .2byte EC_WORD_CHALLENGE
- .2byte EC_WORD_CONTEST
-
- .2byte EC_WORD_OVERWHELMING
- .2byte EC_POKEMON(LATIAS)
-
- .2byte EC_WORD_COOL
- .2byte EC_POKEMON(LATIOS)
-
- .2byte EC_WORD_SUPER
- .2byte EC_WORD_HUSTLE
-.else
- .2byte EC_WORD_GREAT
- .2byte EC_WORD_FIGHT
-
- .2byte EC_WORD_CONTEST
- .2byte EC_WORD_CHALLENGE
-
- .2byte EC_POKEMON(LATIAS)
- .2byte EC_WORD_OVERWHELMING
-
- .2byte EC_POKEMON(LATIOS)
- .2byte EC_WORD_COOL
-
- .2byte EC_WORD_SUPER
- .2byte 0xFFFF
-.endif
-
-gUnknown_083DB694:: @ 83DB694
- .4byte gSharedMem + 0x1000
-
- .align 2
-gUnknown_083DB698:: @ 83DB698
- .4byte REG_BG3VOFS
- .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
- .4byte 1
-
-gUnknown_083DB6A4:: @ 83DB6A4
- .byte 4
- .byte 0
- .byte 0
- .byte 0
- .byte 1
- .byte 5
- .byte 0
- .byte 2
- .byte 2
- .byte 3
- .byte 2
- .byte 2
- .byte 2
- .byte 3
-
-gUnknown_083DB6B2:: @ 83DB6B2
- .string "ABCDEF $ "
- .string "GHIJKL$ "
- .string "MNOPQRS$ "
- .string "TUVWXYZ$ "
-
- .align 2
-gUnknown_083DB6F4:: @ 83DB6F4
- .4byte OtherText_MakeProfilePage1, OtherText_MakeProfilePage2, 0x1
- .4byte OtherText_MakeMessagePage1, OtherText_MakeMessagePage2, 0x1
- .4byte OtherText_CombineNinePhrasesPage1, OtherText_CombineNinePhrasesPage2, 0x1
- .4byte OtherText_DescribeFeelingsPage1, OtherText_DescribeFeelingsPage2, 0x1
- .4byte OtherText_ImproveBardSongPage1, OtherText_ImproveBardSongPage2, 0x1
- .4byte OtherText_CombineTwoPhrasesPage1, OtherText_CombineTwoPhrasesPage2, 0x1
- .4byte OtherText_YourProfile, OtherText_ConfirmTrendyPage2, 0x0
- .4byte OtherText_YourFeelingBattle, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_SetWinMessage, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_SetLossMessage, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_MailMessage, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_MailSalutation, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_NewSong, OtherText_ConfirmTrendyPage2, 0x0
- .4byte OtherText_TheAnswer, OtherText_ConfirmTrendyPage2, 0x0
- .4byte OtherText_ConfirmTrendyPage1, OtherText_ConfirmTrendyPage2, 0x1
- .4byte OtherText_HipsterPage1, OtherText_HipsterPage2, 0x1
- .4byte OtherText_WithFourPhrases, OtherText_CombineNinePhrasesPage2, 0x1
-
-gUnknown_083DB7C0:: @ 83DB7C0
- .byte 0, 6
- .byte 1, 7
- .byte 1, 8
- .byte 1, 9
- .byte 2, 10
- .byte 16, 13
- .byte 4, 12
- .byte 3, 13
- .byte 3, 13
- .byte 5, 14
- .byte 3, 13
- .byte 3, 13
- .byte 3, 13
- .byte 15, 13
-
- .align 2
-gUnknown_083DB7DC:: @ 83DB7DC
-.ifdef ENGLISH
- .4byte gSharedMem + 0xAC80
- .4byte gSharedMem + 0xACC9
- .4byte gSharedMem + 0xAD12
- .4byte gSharedMem + 0xAD5B
-.else
- .4byte gSharedMem + 0xAFAC
- .4byte gSharedMem + 0xAFF5
- .4byte gSharedMem + 0xB03E
- .4byte gSharedMem + 0xB087
-.endif
-
- .align 1
-gUnknown_083DB7EC:: @ 83DB7EC
-.ifdef ENGLISH
- .2byte EC_WORD_I_AM
- .2byte EC_WORD_A
- .2byte EC_WORD_POKEMON
- .2byte EC_WORD_GREAT
-.else
- .2byte EC_WORD_I_AM
- .2byte EC_WORD_BIG
- .2byte EC_WORD_IN
- .2byte EC_WORD_POKEMON
-.endif
-
- .align 1
-gUnknown_083DB7F4:: @ 83DB7F4
- .2byte EC_WORD_ARE
- .2byte EC_WORD_YOU
- .2byte EC_WORD_READY
- .2byte EC_WORD_QUES
- .2byte EC_WORD_HERE_I_COME
- .2byte EC_WORD_EXCL
-
- .align 2
-InterviewPalette_0:: @ 83DB800
- .incbin "graphics/misc/interview_pal0.gbapal"
-
- .align 2
-InterviewPalette_1:: @ 83DB820
- .incbin "graphics/misc/interview_pal1.gbapal"
-
- .align 2
-InterviewArrowTiles: @ 83DB840
- .incbin "graphics/misc/interview_arrow.4bpp"
-
- .align 2
-InterviewButtonTiles: @ 83DB940
- .incbin "graphics/misc/interview_buttons.4bpp"
-
- .align 2
-gMenuInterviewFrame_Pal::
- .incbin "graphics/misc/interview_frame.gbapal"
-
- .align 2
-gMenuInterviewFrame_Gfx::
- .incbin "graphics/misc/interview_frame.4bpp.lz"
-
- .align 2
-InterviewTriangleCursorTiles: @ 83DBB94
- .incbin "graphics/misc/interview_triangle_cursor.4bpp"
-
- .align 2
-gSpriteSheets_Interview:: @ 83DBBB4
- obj_tiles InterviewTriangleCursorTiles, 0x20, 0
- obj_tiles gInterviewOutlineCursorTiles, 0x700, 1
- obj_tiles InterviewArrowTiles, 0x100, 2
- obj_tiles InterviewButtonTiles, 0x100, 3
- null_obj_tiles
-
- .align 2
-gSpritePalettes_Interview:: @ 83DBBDC
- obj_pal InterviewPalette_0, 0
- obj_pal InterviewPalette_1, 1
- null_obj_pal
-
- .align 2
-gOamData_83DBBF4:: @ 83DBBF4
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83DBBFC:: @ 83DBBFC
- spr_template 0, 0, gOamData_83DBBF4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E82BC
-
- .align 2
-gOamData_83DBC14:: @ 83DBC14
- .2byte 0x4400
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83DBC1C:: @ 83DBC1C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC24:: @ 83DBC24
-.ifdef ENGLISH
- obj_image_anim_frame 8, 5
-.else
- obj_image_anim_frame 0, 5
-.endif
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC2C:: @ 83DBC2C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC34:: @ 83DBC34
- obj_image_anim_frame 24, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC3C:: @ 83DBC3C
- obj_image_anim_frame 32, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC44:: @ 83DBC44
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC4C:: @ 83DBC4C
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC54:: @ 83DBC54
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC5C:: @ 83DBC5C
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC64:: @ 83DBC64
-.ifdef ENGLISH
- obj_image_anim_frame 40, 5
-.else
- obj_image_anim_frame 16, 5
-.endif
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC6C:: @ 83DBC6C
- obj_image_anim_frame 48, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBC74:: @ 83DBC74
- obj_image_anim_frame 40, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBC7C:: @ 83DBC7C
- .4byte gSpriteAnim_83DBC1C
- .4byte gSpriteAnim_83DBC24
- .4byte gSpriteAnim_83DBC2C
- .4byte gSpriteAnim_83DBC34
-
- .align 2
-gSpriteAnimTable_83DBC8C:: @ 83DBC8C
- .4byte gSpriteAnim_83DBC3C
- .4byte gSpriteAnim_83DBC44
- .4byte gSpriteAnim_83DBC4C
- .4byte gSpriteAnim_83DBC54
-
- .align 2
-gSpriteAnimTable_83DBC9C:: @ 83DBC9C
- .4byte gSpriteAnim_83DBC5C
- .4byte gSpriteAnim_83DBC64
- .4byte gSpriteAnim_83DBC6C
- .4byte gSpriteAnim_83DBC74
-
- .align 2
-gSpriteTemplate_83DBCAC:: @ 83DBCAC
- spr_template 1, 1, gOamData_83DBC14, gSpriteAnimTable_83DBC7C, NULL, gDummySpriteAffineAnimTable, sub_80E85F8
-
- .align 2
-gUnknown_083DBCC4:: @ 83DBCC4
- .byte 1, 3, 5, 8, 10, 12, 15
- .byte 1, 3, 5, 8, 10, 12, 0
- .byte 1, 3, 5, 8, 10, 12, 14
- .byte 1, 3, 5, 8, 10, 12, 14
-
- .align 2
-gOamData_83DBCE0:: @ 83DBCE0
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83DBCE8:: @ 83DBCE8
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBCF0:: @ 83DBCF0
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBCF8:: @ 83DBCF8
- .4byte gSpriteAnim_83DBCE8
- .4byte gSpriteAnim_83DBCF0
-
- .align 2
-gSpriteAnim_83DBD00:: @ 83DBD00
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBD08:: @ 83DBD08
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBD10:: @ 83DBD10
- .4byte gSpriteAnim_83DBD00
- .4byte gSpriteAnim_83DBD08
-
- .align 2
-gSpriteTemplate_83DBD18:: @ 83DBD18
- spr_template 2, 0, gOamData_83DBCE0, gSpriteAnimTable_83DBCF8, NULL, gDummySpriteAffineAnimTable, sub_80E8B78
-
- .align 2
-gUnknown_083DBD30:: @ 83DBD30
- obj_tiles gMenuInterviewFrame_Gfx, 2048, 0x0006
-
- .align 2
-gUnknown_083DBD38:: @ 83DBD38
- obj_pal gMenuInterviewFrame_Pal, 0x0004
-
- .align 2
-gOamData_83DBD40:: @ 83DBD40
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteTemplate_83DBD48:: @ 83DBD48
- spr_template 6, 4, gOamData_83DBD40, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083DBD60:: @ 83DBD60
- obj_tiles gMenuWordGroupIndicator_Gfx, 4096, 0x0007
-
- .align 2
-gUnknown_083DBD68:: @ 83DBD68
- obj_pal gMenuWordGroupIndicator_Pal, 0x0005
-
- .align 2
-gOamData_83DBD70:: @ 83DBD70
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83DBD78:: @ 83DBD78
- obj_image_anim_frame 96, 3
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBD80:: @ 83DBD80
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 96, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBD94:: @ 83DBD94
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 96, 4
- obj_image_anim_frame 64, 4
- obj_image_anim_frame 32, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBDA8:: @ 83DBDA8
- obj_image_anim_frame 64, 2
- obj_image_anim_frame 32, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBDB4:: @ 83DBDB4
- obj_image_anim_frame 64, 2
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83DBDC0:: @ 83DBDC0
- obj_image_anim_frame 64, 2
- obj_image_anim_frame 96, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83DBDCC:: @ 83DBDCC
- .4byte gSpriteAnim_83DBD78
- .4byte gSpriteAnim_83DBD80
- .4byte gSpriteAnim_83DBD94
- .4byte gSpriteAnim_83DBDA8
- .4byte gSpriteAnim_83DBDB4
- .4byte gSpriteAnim_83DBDC0
-
- .align 2
-gSpriteTemplate_83DBDE4:: @ 83DBDE4
- spr_template 7, 5, gOamData_83DBD70, gSpriteAnimTable_83DBDCC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083DBDFC:: @ 83DBDFC
- .incbin "graphics/unknown/unknown_3DBDFC.gbapal"
-
- .align 1
-gUnknown_083DBE1C:: @ 83DBE1C
- .2byte 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300
- .2byte 0x301, 0x301, 0x301, 0x301, 0x301, 0x300, 0x300, 0x300, 0x300
-
-gUnknown_083DBE40:: @ 83DBE40
- .incbin "graphics/unknown/unknown_3DBE40.gbapal"
-
-@ unused tilemap?
- .2byte 0x5036, 0x5037, 0x5038, 0x5039, 0x503A, 0x503B
- .2byte 0x5046, 0x5047, 0x5048, 0x5049, 0x504A, 0x504B
- .2byte 0x5056, 0x5057, 0x5058, 0x5059, 0x505A, 0x505B
- .2byte 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035
- .2byte 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045
- .2byte 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055
-
-gUnknown_083DBEA8:: @ 83DBEA8
- .string "{CLEAR_TO 88}$"
-
-.ifdef GERMAN
-unk_83E7EB0:
- .string "{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}"
-unk_83E7EC5:
- .string "mehr$"
-unk_83E7ECA::
- .string "{UNKNOWN_14 8} G H I J K L $"
-unk_83E7EE1:
- .string "{UNKNOWN_14 8} M N O P Q R S $"
-unk_83E7EF8:
- .string "{UNKNOWN_14 8} T U V W X Y Z $"
-.endif
-
- .align 2
-gUnknown_083DBEAC:: @ 83DBEAC
-.ifdef ENGLISH
- .string "{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}others$", 0x20
- .string "{UNKNOWN_14 8} G H I J K L $", 0x20
- .string "{UNKNOWN_14 8} M N O P Q R S $", 0x20
- .string "{UNKNOWN_14 8} T U V W X Y Z $", 0x20
-.else
- .4byte unk_83E7EB0
- .4byte unk_83E7ECA
- .4byte unk_83E7EE1
- .4byte unk_83E7EF8
- .4byte unk_83E7EC5
-.endif
-
@ 83DBF2C
.include "data/text/easy_chat/group_words.inc"
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 7d59b5234..1839c3547 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -8,9 +8,10 @@
#include "constants/opponents.h"
#include "constants/songs.h"
#include "constants/species.h"
+#include "constants/weather.h"
#include "constants/vars.h"
- .include "asm/macros.inc"
- .include "asm/macros/event.inc"
+ .include "include/macros.inc"
+ .include "include/macros/event.inc"
.include "constants/constants.inc"
.section script_data, "aw", %progbits
@@ -396,21 +397,20 @@ gStdScripts_End::
gUnknown_0815F36C:: @ 815F36C
lockall
- playse 2
+ playse SE_PC_LOGON
message UnknownString_81A3A72
dofieldeffect 61
waitstate
waitmessage
waitbuttonpress
- playse 5
+ playse SE_SELECT
goto EventScript_15F384
end
EventScript_15F384:
message UnknownString_81A3A87
waitmessage
- checkflag FLAG_DECORATION_16
- goto_if_eq EventScript_15F3A0
+ goto_if_set FLAG_DECORATION_16, EventScript_15F3A0
goto EventScript_15F3E2
end
@@ -439,8 +439,8 @@ EventScript_15F3E2:
end
EventScript_15F419:
- msgbox UnknownString_81A38FB, 5
- compare RESULT, 0
+ msgbox UnknownString_81A38FB, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_15F384
closemessage
special SecretBasePC_PackUp
@@ -458,12 +458,12 @@ EventScript_15F436:
gUnknown_0815F43A:: @ 815F43A
lockall
message UnknownString_81A3A72
- playse 2
+ playse SE_PC_LOGON
dofieldeffect 61
waitstate
waitmessage
waitbuttonpress
- playse 5
+ playse SE_SELECT
goto EventScript_15F452
end
@@ -491,8 +491,8 @@ EventScript_15F4A1:
compare RESULT, 2
goto_if_eq EventScript_15F503
special BufferSecretBaseOwnerName
- msgbox UnknownString_81A3958, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3958, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A22, 3
special sub_80BC5BC
@@ -501,8 +501,8 @@ EventScript_15F4A1:
end
EventScript_15F4E0:
- msgbox UnknownString_81A3982, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3982, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_15F452
msgbox UnknownString_81A3A3A, 3
special sub_80BC5BC
@@ -947,7 +947,7 @@ gUnknown_0819F818:: @ 819F818
waitmovement 0
specialvar RESULT, ScrSpecial_HasTrainerBeenFought
compare RESULT, 0
- goto_if 5, EventScript_19F83F
+ goto_if_ne EventScript_19F83F
special PlayTrainerEncounterMusic
special sub_8082524
goto EventScript_19F8F2
@@ -961,10 +961,10 @@ gUnknown_0819F840:: @ 819F840
call EventScript_19F8E5
specialvar RESULT, ScrSpecial_HasTrainerBeenFought
compare RESULT, 0
- goto_if 5, EventScript_19F877
+ goto_if_ne EventScript_19F877
special CheckForAlivePartyMons
compare RESULT, 0
- goto_if 5, EventScript_19F870
+ goto_if_ne EventScript_19F870
special PlayTrainerEncounterMusic
special sub_8082524
goto EventScript_19F8F2
@@ -1010,7 +1010,7 @@ gUnknown_0819F8AE:: @ 819F8AE
goto_if_eq EventScript_19F8DD
special CheckForAlivePartyMons
compare RESULT, 0
- goto_if 5, EventScript_19F8DE
+ goto_if_ne EventScript_19F8DE
special PlayTrainerEncounterMusic
special sub_8082524
special ScrSpecial_ShowTrainerIntroSpeech
@@ -1301,14 +1301,10 @@ EverGrandeCity_HallOfFame_EventScript_19FC13:: @ 819FC13
clearflag FLAG_HIDE_SS_TIDAL_SLATEPORT_HARBOR
clearflag FLAG_HIDE_SS_TIDAL_LILYCOVE_HARBOR
special sub_810FAA0
- checkflag FLAG_RECEIVED_SS_TICKET
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC62
- checkflag FLAG_LATIOS_OR_LATIAS_ROAMING
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC70
- checkflag FLAG_RECEIVED_BELDUM
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5A
- checkflag FLAG_RECEIVED_HM08
- call_if 0, EverGrandeCity_HallOfFame_EventScript_19FC5E
+ call_if_unset FLAG_RECEIVED_SS_TICKET, EverGrandeCity_HallOfFame_EventScript_19FC62
+ call_if_unset FLAG_LATIOS_OR_LATIAS_ROAMING, EverGrandeCity_HallOfFame_EventScript_19FC70
+ call_if_unset FLAG_RECEIVED_BELDUM, EverGrandeCity_HallOfFame_EventScript_19FC5A
+ call_if_unset FLAG_RECEIVED_HM08, EverGrandeCity_HallOfFame_EventScript_19FC5E
return
EverGrandeCity_HallOfFame_EventScript_19FC5A:: @ 819FC5A
@@ -1336,10 +1332,8 @@ S_WhiteOut:: @ 819FC74
end
EventScript_19FC84:
- checkflag FLAG_RECEIVED_GO_GOGGLES
- goto_if_eq Route101_EventScript_1A14DC
- checkflag FLAG_DEFEATED_LAVARIDGE_GYM
- goto_if 0, Route101_EventScript_1A14DC
+ goto_if_set FLAG_RECEIVED_GO_GOGGLES, Route101_EventScript_1A14DC
+ goto_if_unset FLAG_DEFEATED_LAVARIDGE_GYM, Route101_EventScript_1A14DC
clearflag FLAG_HIDE_RIVAL_LAVARIDGE_1
setvar VAR_LAVARIDGE_RIVAL_STATE, 2
return
@@ -1402,16 +1396,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
RustboroCity_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
SlateportCity_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
VerdanturfTown_PokemonCenter_1F_EventScript_19FD1B:: @ 819FD1B
- checkflag FLAG_RECEIVED_POKENAV
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_1A14DC
- checkflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD49
- checkflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD4F
- checkflag FLAG_HIDE_MR_BRINEY_ROUTE109
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FD55
+ goto_if_unset FLAG_RECEIVED_POKENAV, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, OldaleTown_PokemonCenter_1F_EventScript_1A14DC
+ goto_if_unset FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104, OldaleTown_PokemonCenter_1F_EventScript_19FD49
+ goto_if_unset FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN, OldaleTown_PokemonCenter_1F_EventScript_19FD4F
+ goto_if_unset FLAG_HIDE_MR_BRINEY_ROUTE109, OldaleTown_PokemonCenter_1F_EventScript_19FD55
return
OldaleTown_PokemonCenter_1F_EventScript_19FD49:: @ 819FD49
@@ -1443,9 +1432,9 @@ VerdanturfTown_PokemonCenter_1F_EventScript_19FD5B:: @ 819FD5B
lock
faceplayer
msgbox gText_NurseJoy_Welcome, MSGBOX_YESNO
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq do_heal_party
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq dont_heal_party
end
@@ -1460,8 +1449,7 @@ do_heal_party:: @ 819FD7C
applymovement VAR_SPECIAL_B, OldaleTown_PokemonCenter_1F_Movement_1A0845
waitmovement 0
special ScrSpecial_HealPlayerParty
- checkflag FLAG_POKERUS_EXPLAINED
- goto_if 0, OldaleTown_PokemonCenter_1F_EventScript_19FDCE
+ goto_if_unset FLAG_POKERUS_EXPLAINED, OldaleTown_PokemonCenter_1F_EventScript_19FDCE
goto OldaleTown_PokemonCenter_1F_EventScript_19FDB0
end
@@ -1509,9 +1497,9 @@ Std_ObtainItem_: @ 819FE07
checkitemtype VAR_SPECIAL_0
call GetItem_HandlePocket
compare VAR_SPECIAL_7, 0x1
- call_if 1, Std_ObtainItem_Success
+ call_if_eq Std_ObtainItem_Success
compare VAR_SPECIAL_7, 0x0
- call_if 1, Std_ObtainItem_Fail
+ call_if_eq Std_ObtainItem_Fail
return
GetItem_HandlePocket:
@@ -1526,31 +1514,31 @@ GetItem_HandlePocket:
GetItem_HandlePocket_Items:
bufferstdstring 2, 0xE
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
GetItem_HandlePocket_KeyItems:
bufferstdstring 2, 0xF
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
GetItem_HandlePocket_PokeBalls:
bufferstdstring 2, 0x10
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
GetItem_HandlePocket_TMsHMs:
bufferstdstring 2, 0x11
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetTMHMFanfare
+ call_if_eq PlayGetTMHMFanfare
return
GetItem_HandlePocket_Berries:
bufferstdstring 2, 0x12
compare VAR_SPECIAL_7, 1
- call_if 1, PlayGetItemFanfare
+ call_if_eq PlayGetItemFanfare
return
Std_ObtainItem_Success: @ 819FEB7
@@ -1566,11 +1554,11 @@ Std_ObtainItem_Fail: @ 819FECC
return
PlayGetItemFanfare:
- playfanfare 0x172
+ playfanfare BGM_FANFA4
return
PlayGetTMHMFanfare:
- playfanfare 0x174
+ playfanfare BGM_ME_WAZA
return
Std_ObtainDecoration: @ 819FEDA
@@ -1582,13 +1570,13 @@ Std_ObtainDecoration: @ 819FEDA
Std_ObtainDecoration_: @ 819FEE8
bufferdecorationname 1, VAR_SPECIAL_0
compare VAR_SPECIAL_7, 1
- call_if 1, Std_ObtainDecoration_Success
+ call_if_eq Std_ObtainDecoration_Success
compare VAR_SPECIAL_7, 0
- call_if 1, Std_ObtainDecoration_Fail
+ call_if_eq Std_ObtainDecoration_Fail
return
Std_ObtainDecoration_Success: @ 819FF03
- playfanfare 0x172
+ playfanfare BGM_FANFA4
message Message_ObtainedDecoration
waitfanfare
waitmessage
@@ -1610,9 +1598,9 @@ Std_FindItem: @ 819FF21
checkitemtype VAR_SPECIAL_0
call GetItem_HandlePocket
compare VAR_SPECIAL_7, 1
- call_if 1, Std_FindItem_Success
+ call_if_eq Std_FindItem_Success
compare VAR_SPECIAL_7, 0
- call_if 1, Std_FindItem_Fail
+ call_if_eq Std_FindItem_Fail
release
return
@@ -1663,10 +1651,10 @@ HiddenItemScript_Fail:
UnusedMixRecordsScript: @ 819FFD5
lock
faceplayer
- msgbox UnusedMixRecordsPromptText, 5
- compare RESULT, 1
+ msgbox UnusedMixRecordsPromptText, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq UnusedMixRecordsScript_Yes
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq UnusedMixRecordsScript_Done
goto UnusedMixRecordsScript_Done
UnusedMixRecordsScript_Yes: @ 819FFFA
@@ -1685,7 +1673,7 @@ gUnknown_081A0009:: @ 81A0009
lockall
setvar VAR_SPECIAL_4, 0
special DoPCTurnOnEffect
- playse 4
+ playse SE_PC_ON
msgbox UnknownString_81A09EC, 4
goto EventScript_1A0023
end
@@ -1708,7 +1696,7 @@ EventScript_1A0033:
end
EventScript_1A0070:
- playse 2
+ playse SE_PC_LOGON
msgbox UnknownString_81A0A54, 4
special PlayerPC
waitstate
@@ -1716,11 +1704,9 @@ EventScript_1A0070:
end
EventScript_1A0085:
- playse 2
- checkflag FLAG_SYS_PC_LANETTE
- call_if 0, EventScript_1A00AC
- checkflag FLAG_SYS_PC_LANETTE
- call_if 1, EventScript_1A00B5
+ playse SE_PC_LOGON
+ call_if_unset FLAG_SYS_PC_LANETTE, EventScript_1A00AC
+ call_if_set FLAG_SYS_PC_LANETTE, EventScript_1A00B5
msgbox UnknownString_81A0A35, 4
special ShowPokemonStorageSystem
waitstate
@@ -1737,15 +1723,14 @@ EventScript_1A00B5:
EventScript_1A00BE:
setvar VAR_SPECIAL_4, 0
- playse 3
+ playse SE_PC_OFF
special DoPCTurnOffEffect
releaseall
end
EventScript_1A00CB:
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, EventScript_1A00BE
- playse 2
+ goto_if_unset FLAG_SYS_GAME_CLEAR, EventScript_1A00BE
+ playse SE_PC_LOGON
special AccessHallOfFamePC
waitstate
goto EventScript_1A0033
@@ -1826,8 +1811,8 @@ UseSurfScript:: @ 81A0117
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
lockall
- msgbox UseSurfPromptText, 5
- compare RESULT, 0
+ msgbox UseSurfPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq UseSurfScript_No
msgbox UsedSurfText, 4
dofieldeffect 9
@@ -2090,9 +2075,9 @@ Route127_EventScript_1A02C1:: @ 81A02C1
Route128_EventScript_1A02C1:: @ 81A02C1
SootopolisCity_EventScript_1A02C1:: @ 81A02C1
.ifdef SAPPHIRE
- setweather 13
+ setweather WEATHER_RAIN_HEAVY
.else
- setweather 12
+ setweather WEATHER_DROUGHT
.endif
return
@@ -2105,7 +2090,7 @@ MossdeepCity_Gym_EventScript_1A02C5:: @ 81A02C5
PetalburgCity_Gym_EventScript_1A02C5:: @ 81A02C5
RustboroCity_Gym_EventScript_1A02C5:: @ 81A02C5
SootopolisCity_Gym_1F_EventScript_1A02C5:: @ 81A02C5
- playfanfare 369
+ playfanfare BGM_ME_BACHI
waitfanfare
return
@@ -2114,7 +2099,7 @@ Route111_OldLadysRestStop_EventScript_1A02CA:: @ 81A02CA
Route119_WeatherInstitute_1F_EventScript_1A02CA:: @ 81A02CA
SSTidalRooms_EventScript_1A02CA:: @ 81A02CA
fadescreen 1
- playfanfare 368
+ playfanfare BGM_ME_ASA
waitfanfare
special ScrSpecial_HealPlayerParty
fadescreen 0
@@ -2133,7 +2118,7 @@ DewfordTown_EventScript_1A02E7:: @ 81A02E7
Route104_EventScript_1A02E7:: @ 81A02E7
Route109_EventScript_1A02E7:: @ 81A02E7
setflag FLAG_SPECIAL_FLAG_1
- playbgm 431, 0
+ playbgm BGM_M_BOAT, FALSE
return
DewfordTown_EventScript_1A02EF:: @ 81A02EF
@@ -2149,21 +2134,21 @@ Route103_EventScript_1A02F4:: @ 81A02F4
compare VAR_PETALBURG_GYM_STATE, 0
goto_if_eq Route101_EventScript_1A14DC
compare VAR_BIRCH_STATE, 0
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
compare VAR_BIRCH_STATE, 1
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
compare VAR_BIRCH_STATE, 2
- call_if 1, Route101_EventScript_1A0365
+ call_if_eq Route101_EventScript_1A0365
compare VAR_BIRCH_STATE, 3
- call_if 1, Route101_EventScript_1A0365
+ call_if_eq Route101_EventScript_1A0365
compare VAR_BIRCH_STATE, 4
- call_if 1, Route101_EventScript_1A0372
+ call_if_eq Route101_EventScript_1A0372
compare VAR_BIRCH_STATE, 5
- call_if 1, Route101_EventScript_1A0372
+ call_if_eq Route101_EventScript_1A0372
compare VAR_BIRCH_STATE, 6
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
compare VAR_BIRCH_STATE, 7
- call_if 1, Route101_EventScript_1A0358
+ call_if_eq Route101_EventScript_1A0358
return
Route101_EventScript_1A0358:: @ 81A0358
@@ -2192,8 +2177,8 @@ Route101_EventScript_1A037F:: @ 81A037F
Route103_EventScript_1A037F:: @ 81A037F
lock
faceplayer
- msgbox Route101_Text_1C4449, 5
- compare RESULT, 0
+ msgbox Route101_Text_1C4449, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route101_EventScript_1A039B
call Route101_EventScript_1A03B0
release
@@ -2290,9 +2275,9 @@ Movement_1A047A:
BattleTower_Outside_EventScript_1A047C:: @ 81A047C
SouthernIsland_Exterior_EventScript_1A047C:: @ 81A047C
compare FACING, 1
- call_if 1, BattleTower_Outside_EventScript_160B2F
+ call_if_eq BattleTower_Outside_EventScript_160B2F
compare FACING, 3
- call_if 1, BattleTower_Outside_EventScript_160B3A
+ call_if_eq BattleTower_Outside_EventScript_160B3A
delay 30
hideobjectat 255, MAP_PETALBURG_CITY
call BattleTower_Outside_EventScript_1A040E
@@ -2441,8 +2426,8 @@ Route120_EventScript_1A0594:: @ 81A0594
end
Route119_EventScript_1A05AE:: @ 81A05AE
- msgbox Route119_Text_171BB6, 5
- compare RESULT, 1
+ msgbox Route119_Text_171BB6, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route119_EventScript_1A05C3
release
end
@@ -2460,19 +2445,19 @@ Route119_EventScript_1A05C3:: @ 81A05C3
waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE
compare VAR_SPECIAL_4, 1
- call_if 1, Route119_EventScript_1A0646
+ call_if_eq Route119_EventScript_1A0646
compare VAR_SPECIAL_4, 2
- call_if 1, Route119_EventScript_1A064A
+ call_if_eq Route119_EventScript_1A064A
compare VAR_SPECIAL_4, 3
- call_if 1, Route119_EventScript_1A064E
+ call_if_eq Route119_EventScript_1A064E
compare VAR_SPECIAL_4, 4
- call_if 1, Route119_EventScript_1A0652
+ call_if_eq Route119_EventScript_1A0652
compare VAR_SPECIAL_4, 5
- call_if 1, Route119_EventScript_1A0656
+ call_if_eq Route119_EventScript_1A0656
compare VAR_SPECIAL_4, 6
- call_if 1, Route119_EventScript_1A065A
+ call_if_eq Route119_EventScript_1A065A
compare VAR_SPECIAL_4, 7
- call_if 1, Route119_EventScript_1A065E
+ call_if_eq Route119_EventScript_1A065E
setflag FLAG_SYS_CTRL_OBJ_DELETE
dowildbattle
clearflag FLAG_SYS_CTRL_OBJ_DELETE
@@ -2547,7 +2532,7 @@ GraniteCave_StevensRoom_EventScript_1A067F:: @ 81A067F
MtPyre_Summit_EventScript_1A067F:: @ 81A067F
SlateportCity_OceanicMuseum_2F_EventScript_1A067F:: @ 81A067F
bufferitemname 0, VAR_SPECIAL_4
- playfanfare 372
+ playfanfare BGM_ME_WAZA
message FallarborTown_House1_Text_1A1498
waitmessage
waitfanfare
@@ -2560,7 +2545,7 @@ EverGrandeCity_PhoebesRoom_EventScript_1A0693:: @ 81A0693
EverGrandeCity_SidneysRoom_EventScript_1A0693:: @ 81A0693
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0853
waitmovement 0
- playse 8
+ playse SE_DOOR
setmetatile 6, 1, 836, 0
setmetatile 6, 2, 837, 0
setmetatile 0, 2, 734, 1
@@ -2582,7 +2567,7 @@ EverGrandeCity_PhoebesRoom_EventScript_1A0710:: @ 81A0710
EverGrandeCity_SidneysRoom_EventScript_1A0710:: @ 81A0710
applymovement 255, EverGrandeCity_SidneysRoom_Movement_1A0847
waitmovement 0
- playse 52
+ playse SE_TRACK_DOOR
setmetatile 5, 12, 518, 1
setmetatile 6, 12, 518, 1
setmetatile 7, 12, 518, 1
@@ -3284,6 +3269,7 @@ PacifidlogTown_House2_EventScript_1A14DC:: @ 81A14DC
Route101_EventScript_1A14DC:: @ 81A14DC
return
+ .include "data/scripts/debug.inc"
.include "data/scripts/berry_tree.inc"
.include "data/text/berry_tree.inc"
@@ -3631,8 +3617,8 @@ EventScript_1A2CB0:
compare RESULT, 6
goto_if_eq EventScript_1A2CF1
bufferpartymonnick 0, RESULT
- msgbox UnknownString_8198F34, 5
- compare RESULT, 0
+ msgbox UnknownString_8198F34, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
msgbox UsedCutRockSmashText, 4
closemessage
@@ -3662,8 +3648,8 @@ EventScript_1A2D08:
compare RESULT, 6
goto_if_eq EventScript_1A2D49
bufferpartymonnick 0, RESULT
- msgbox UnknownString_81A197B, 5
- compare RESULT, 0
+ msgbox UnknownString_81A197B, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
msgbox UsedCutRockSmashText, 4
closemessage
@@ -3693,8 +3679,8 @@ EventScript_1A2D60:
compare RESULT, 6
goto_if_eq EventScript_1A2DA1
bufferpartymonnick 0, RESULT
- msgbox UnknownString_81A1A4B, 5
- compare RESULT, 0
+ msgbox UnknownString_81A1A4B, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
msgbox UsedCutRockSmashText, 4
closemessage
@@ -3721,7 +3707,7 @@ EventScript_1A2DAA:
EventScript_1A2DB8:
closemessage
- playse 9
+ playse SE_KAIDAN
setvar VAR_0x4097, 0
setflag FLAG_DECORATION_1
special sub_80BB8CC
@@ -3737,11 +3723,11 @@ SecretBase_RedCave1_EventScript_1A2DDE:: @ 81A2DDE
applymovement 255, SecretBase_RedCave1_Movement_1A2E11
waitmovement 0
setvar VAR_0x4097, 1
- msgbox SecretBase_RedCave1_Text_198F89, 5
- compare RESULT, 1
+ msgbox SecretBase_RedCave1_Text_198F89, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SecretBase_RedCave1_EventScript_1A2E08
closemessage
- playse 9
+ playse SE_KAIDAN
special sub_80BC440
end
@@ -3760,7 +3746,7 @@ SecretBase_RedCave1_Movement_1A2E11:: @ 81A2E11
gUnknown_081A2E14:: @ 81A2E14
lockall
setvar VAR_0x4097, 1
- playse 9
+ playse SE_KAIDAN
special sub_80BC114
compare RESULT, 0
goto_if_eq EventScript_1A2E38
@@ -3785,18 +3771,18 @@ EventScript_1A2E45:
setorcopyvar VAR_SPECIAL_4, RESULT
lockall
special GetSecretBaseNearbyMapName
- msgbox UnknownString_81A3C71, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3C71, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
- msgbox UnknownString_81A38FB, 5
- compare RESULT, 0
+ msgbox UnknownString_81A38FB, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
fadescreen 1
special MoveSecretBase
closemessage
fadescreen 0
- msgbox UnknownString_81A3CC9, 5
- compare RESULT, 0
+ msgbox UnknownString_81A3CC9, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq EventScript_1A2F3A
bufferpartymonnick 0, VAR_SPECIAL_4
buffermovename 1, MOVE_SECRET_POWER
@@ -3943,14 +3929,13 @@ SecretBase_YellowCave4_EventScript_1A2FC0:: @ 81A2FC0
end
SecretBase_RedCave1_EventScript_1A3032:: @ 81A3032
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3086
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3086
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A30A5
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A1AEA, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A1AEA, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A308F
setvar RESULT, 1
special sub_80BCE4C
@@ -3978,14 +3963,13 @@ SecretBase_RedCave1_EventScript_1A30A5:: @ 81A30A5
end
SecretBase_RedCave1_EventScript_1A30AE:: @ 81A30AE
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3102
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3102
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3121
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A1E67, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A1E67, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A310B
setvar RESULT, 1
special sub_80BCE4C
@@ -4013,14 +3997,13 @@ SecretBase_RedCave1_EventScript_1A3121:: @ 81A3121
end
SecretBase_RedCave1_EventScript_1A312A:: @ 81A312A
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A317E
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A317E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A319D
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A218F, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A218F, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A3187
setvar RESULT, 1
special sub_80BCE4C
@@ -4048,14 +4031,13 @@ SecretBase_RedCave1_EventScript_1A319D:: @ 81A319D
end
SecretBase_RedCave1_EventScript_1A31A6:: @ 81A31A6
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A31FA
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A31FA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3219
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A24E1, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A24E1, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A3203
setvar RESULT, 1
special sub_80BCE4C
@@ -4083,14 +4065,13 @@ SecretBase_RedCave1_EventScript_1A3219:: @ 81A3219
end
SecretBase_RedCave1_EventScript_1A3222:: @ 81A3222
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3276
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3276
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3295
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2830, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2830, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A327F
setvar RESULT, 1
special sub_80BCE4C
@@ -4118,14 +4099,13 @@ SecretBase_RedCave1_EventScript_1A3295:: @ 81A3295
end
SecretBase_RedCave1_EventScript_1A329E:: @ 81A329E
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A32F2
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A32F2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3311
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A1CB2, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A1CB2, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A32FB
setvar RESULT, 1
special sub_80BCE4C
@@ -4153,14 +4133,13 @@ SecretBase_RedCave1_EventScript_1A3311:: @ 81A3311
end
SecretBase_RedCave1_EventScript_1A331A:: @ 81A331A
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A336E
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A336E
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A338D
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2026, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2026, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A3377
setvar RESULT, 1
special sub_80BCE4C
@@ -4188,14 +4167,13 @@ SecretBase_RedCave1_EventScript_1A338D:: @ 81A338D
end
SecretBase_RedCave1_EventScript_1A3396:: @ 81A3396
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A33EA
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A33EA
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3409
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A236A, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A236A, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A33F3
setvar RESULT, 1
special sub_80BCE4C
@@ -4223,14 +4201,13 @@ SecretBase_RedCave1_EventScript_1A3409:: @ 81A3409
end
SecretBase_RedCave1_EventScript_1A3412:: @ 81A3412
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A3466
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A3466
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3485
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2663, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2663, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A346F
setvar RESULT, 1
special sub_80BCE4C
@@ -4258,14 +4235,13 @@ SecretBase_RedCave1_EventScript_1A3485:: @ 81A3485
end
SecretBase_RedCave1_EventScript_1A348E:: @ 81A348E
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, SecretBase_RedCave1_EventScript_1A34E2
+ goto_if_unset FLAG_SYS_GAME_CLEAR, SecretBase_RedCave1_EventScript_1A34E2
compare RESULT, 1
goto_if_eq SecretBase_RedCave1_EventScript_1A3501
lock
faceplayer
- msgbox SecretBase_RedCave1_Text_1A2A13, 5
- compare RESULT, 0
+ msgbox SecretBase_RedCave1_Text_1A2A13, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SecretBase_RedCave1_EventScript_1A34EB
setvar RESULT, 1
special sub_80BCE4C
@@ -4394,10 +4370,10 @@ SlateportCity_PokemonFanClub_EventScript_1ADE4D:: @ 81ADE4D
compare RESULT, 1
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADED6
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox SlateportCity_PokemonFanClub_Text_1A8704, 5
- compare RESULT, 1
+ msgbox SlateportCity_PokemonFanClub_Text_1A8704, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADE84
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADEB9
end
@@ -4439,21 +4415,20 @@ SlateportCity_OceanicMuseum_1F_EventScript_1ADEE0:: @ 81ADEE0
compare RESULT, 1
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF96
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- checkflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
- goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF25
+ goto_if_set FLAG_OCEANIC_MUSEUM_MET_REPORTER, SlateportCity_OceanicMuseum_1F_EventScript_1ADF25
setflag FLAG_OCEANIC_MUSEUM_MET_REPORTER
- msgbox SlateportCity_OceanicMuseum_1F_Text_1A927F, 5
- compare RESULT, 1
+ msgbox SlateportCity_OceanicMuseum_1F_Text_1A927F, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF44
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF79
end
SlateportCity_OceanicMuseum_1F_EventScript_1ADF25:: @ 81ADF25
- msgbox SlateportCity_OceanicMuseum_1F_Text_1A934C, 5
- compare RESULT, 1
+ msgbox SlateportCity_OceanicMuseum_1F_Text_1A934C, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF44
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_1ADF79
end
@@ -4498,10 +4473,10 @@ SlateportCity_PokemonFanClub_EventScript_1ADFA0:: @ 81ADFA0
compare RESULT, 1
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1AE0AC
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox SlateportCity_PokemonFanClub_Text_1A82F1, 5
- compare RESULT, 1
+ msgbox SlateportCity_PokemonFanClub_Text_1A82F1, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1ADFE9
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1AE0A2
end
@@ -4568,17 +4543,16 @@ SlateportCity_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
VerdanturfTown_ContestLobby_EventScript_1AE0B6:: @ 81AE0B6
lock
faceplayer
- checkflag FLAG_TEMP_2
- goto_if_eq FallarborTown_ContestLobby_EventScript_1AE17E
+ goto_if_set FLAG_TEMP_2, FallarborTown_ContestLobby_EventScript_1AE17E
setvar VAR_SPECIAL_5, 6
special InterviewBefore
compare RESULT, 1
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE17E
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox FallarborTown_ContestLobby_Text_1A6F7C, 5
- compare RESULT, 1
+ msgbox FallarborTown_ContestLobby_Text_1A6F7C, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE0F8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq FallarborTown_ContestLobby_EventScript_1AE12D
end
@@ -4629,7 +4603,7 @@ LilycoveCity_ContestLobby_EventScript_1AE188:: @ 81AE188
SlateportCity_ContestLobby_EventScript_1AE188:: @ 81AE188
VerdanturfTown_ContestLobby_EventScript_1AE188:: @ 81AE188
compare VAR_LINK_CONTEST_ROOM_STATE, 2
- goto_if 5, FallarborTown_ContestLobby_EventScript_1AE1FE
+ goto_if_ne FallarborTown_ContestLobby_EventScript_1AE1FE
setvar VAR_SPECIAL_5, 6
special InterviewBefore
compare RESULT, 1
@@ -4665,17 +4639,16 @@ FallarborTown_ContestLobby_EventScript_1AE1FE:: @ 81AE1FE
BattleTower_Lobby_EventScript_1AE1FF:: @ 81AE1FF
lock
faceplayer
- checkflag FLAG_TEMP_2
- goto_if_eq BattleTower_Lobby_EventScript_1AE2E3
+ goto_if_set FLAG_TEMP_2, BattleTower_Lobby_EventScript_1AE2E3
setvar VAR_SPECIAL_5, 7
special InterviewBefore
compare RESULT, 1
goto_if_eq BattleTower_Lobby_EventScript_1AE2E3
copyvar VAR_SPECIAL_9, VAR_SPECIAL_6
- msgbox BattleTower_Lobby_Text_1A776D, 5
- compare RESULT, 1
+ msgbox BattleTower_Lobby_Text_1A776D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq BattleTower_Lobby_EventScript_1AE241
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq BattleTower_Lobby_EventScript_1AE297
end
@@ -4685,9 +4658,9 @@ BattleTower_Lobby_EventScript_1AE241:: @ 81AE241
multichoice 19, 8, 45, 1
copyvar VAR_SPECIAL_8, RESULT
compare RESULT, 0
- call_if 1, BattleTower_Lobby_EventScript_1AE2A1
+ call_if_eq BattleTower_Lobby_EventScript_1AE2A1
compare RESULT, 1
- call_if 1, BattleTower_Lobby_EventScript_1AE2AA
+ call_if_eq BattleTower_Lobby_EventScript_1AE2AA
msgbox BattleTower_Lobby_Text_1A79EB, 4
setvar VAR_SPECIAL_4, 12
copyvar VAR_SPECIAL_5, VAR_SPECIAL_9
@@ -4883,7 +4856,7 @@ S_FallDownHole:: @ 81C6BC5
delay 20
applymovement 255, GraniteCave_B1F_Movement_1C6BF7
waitmovement 0
- playse 43
+ playse SE_RU_HYUU
delay 60
warphole MAP_UNDEFINED
waitstate
@@ -4894,7 +4867,7 @@ gUnknown_081C6BDE:: @ 81C6BDE
delay 20
applymovement 255, GraniteCave_B1F_Movement_1C6BF7
waitmovement 0
- playse 43
+ playse SE_RU_HYUU
delay 60
special sp13F_fall_to_last_warp
waitstate
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
index 900cc7009..45f8ce648 100644
--- a/data/field_effect_scripts.s
+++ b/data/field_effect_scripts.s
@@ -1,5 +1,5 @@
- .include "asm/macros.inc"
- .include "asm/macros/field_effect_script.inc"
+ .include "include/macros.inc"
+ .include "include/macros/field_effect_script.inc"
.include "constants/constants.inc"
.section script_data, "aw", %progbits
diff --git a/data/field_move_scripts.inc b/data/field_move_scripts.inc
index 0a7112125..f5ba25643 100644
--- a/data/field_move_scripts.inc
+++ b/data/field_move_scripts.inc
@@ -1,15 +1,14 @@
S_CuttableTree:: @ 81B0DCC
lockall
- checkflag FLAG_BADGE01_GET
- goto_if 0, CannotUseCut
+ goto_if_unset FLAG_BADGE01_GET, CannotUseCut
checkpartymove MOVE_CUT
compare RESULT, 6
goto_if_eq CannotUseCut
setfieldeffectargument 0, RESULT
bufferpartymonnick 0, RESULT
buffermovename 1, MOVE_CUT
- msgbox UseCutPromptText, 5
- compare RESULT, 0
+ msgbox UseCutPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Cut_ChoseNo
msgbox UsedCutRockSmashText, 4
closemessage
@@ -58,16 +57,15 @@ CannotUseCutText: @ 81B0E8E
S_BreakableRock:: @ 81B0EB7
lockall
- checkflag FLAG_BADGE03_GET
- goto_if 0, CannotUseRockSmash
+ goto_if_unset FLAG_BADGE03_GET, CannotUseRockSmash
checkpartymove MOVE_ROCK_SMASH
compare RESULT, 6
goto_if_eq CannotUseRockSmash
setfieldeffectargument 0, RESULT
bufferpartymonnick 0, RESULT
buffermovename 1, MOVE_ROCK_SMASH
- msgbox UseRockSmashPromptText, 5
- compare RESULT, 0
+ msgbox UseRockSmashPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq RockSmash_ChoseNo
msgbox UsedCutRockSmashText, 4
closemessage
@@ -125,16 +123,14 @@ CannotUseRockSmashText: @ 81B0F90
S_PushableBoulder:: @ 81B0FCB
lockall
- checkflag FLAG_BADGE04_GET
- goto_if 0, CannotUseStrength
- checkflag FLAG_SYS_USE_STRENGTH
- goto_if_eq AlreadyUsedStrength
+ goto_if_unset FLAG_BADGE04_GET, CannotUseStrength
+ goto_if_set FLAG_SYS_USE_STRENGTH, AlreadyUsedStrength
checkpartymove 70
compare RESULT, 6
goto_if_eq CannotUseStrength
setfieldeffectargument 0, RESULT
- msgbox UseStrengthPromptText, 5
- compare RESULT, 0
+ msgbox UseStrengthPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Strength_ChoseNo
closemessage
dofieldeffect 40
@@ -195,8 +191,8 @@ S_UseWaterfall:: @ 81B115A
goto_if_eq Waterfall_NoMonKnows
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
- msgbox UseWaterfallPromptText, 5
- compare RESULT, 0
+ msgbox UseWaterfallPromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Waterfall_Done
msgbox UsedWaterfallText, 4
dofieldeffect 43
@@ -229,8 +225,8 @@ UseDiveScript:: @ 81B1220
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
setfieldeffectargument 1, 1
- msgbox UseDivePromptText, 5
- compare RESULT, 0
+ msgbox UseDivePromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Dive_Done
msgbox UsedDiveText, 4
dofieldeffect 44
@@ -252,8 +248,8 @@ S_UseDiveUnderwater:: @ 81B1269
bufferpartymonnick 0, RESULT
setfieldeffectargument 0, RESULT
setfieldeffectargument 1, 1
- msgbox UnderwaterUseDivePromptText, 5
- compare RESULT, 0
+ msgbox UnderwaterUseDivePromptText, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq UnderwaterDive_Done
msgbox UsedDiveText, 4
dofieldeffect 44
diff --git a/data/graphics.s b/data/graphics.s
index 7792e8a9e..6d678ede9 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -18,8 +18,11 @@ gUnknown_08D00524:: @ 8D00524
.include "data/graphics/pokemon/circled_question_mark_graphics.inc"
@ 8D019E4
+gUnusedOldCharmap_Gfx_lz::
.incbin "graphics/unused/old_charmap.4bpp.lz" @ japanese table and bunch of stuff
+gUnusedOldCharmap_Tilemap_lz::
.incbin "graphics/unused/old_charmap.bin.lz"
+gUnusedOldCharmap_Pal_lz::
.incbin "graphics/unused/old_charmap.gbapal.lz"
.align 2
@@ -4522,7 +4525,7 @@ gPokenavRibbonPokeView_Gfx:: @ 8EA0028
.incbin "graphics/pokenav/ribbon_pokeview.4bpp"
.align 2
-gMessageBox_Gfx:: @ 8EA0108
+gDialogueFrame_Gfx:: @ 8EA0108
.incbin "graphics/text_window/message_box.4bpp"
.align 2
diff --git a/data/gray_sun.s b/data/gray_sun.s
new file mode 100644
index 000000000..bee64873a
--- /dev/null
+++ b/data/gray_sun.s
@@ -0,0 +1,21 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_839309C:: @ 839309C
+ obj_image_anim_frame 0, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_83930A4:: @ 83930A4
+ .4byte gSpriteAnim_839309C
+
+ .align 2
+gBattleAnimSpriteTemplate_83930A8:: @ 83930A8
+ spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A908
+
+ .align 2
+gBattleAnimSpriteTemplate_83930C0:: @ 83930C0
+ spr_template 10283, 10283, gOamData_837DF34, gSpriteAnimTable_83930A4, NULL, gDummySpriteAffineAnimTable, sub_807A9BC
diff --git a/data/item_ball_scripts.inc b/data/item_ball_scripts.inc
index aae704ab2..02acdeca4 100644
--- a/data/item_ball_scripts.inc
+++ b/data/item_ball_scripts.inc
@@ -43,7 +43,7 @@ Route110_EventScript_1B14BB:: @ 81B14BB
end
Route111_EventScript_1B14C8:: @ 81B14C8
- giveitem_std ITEM_TM37, 1, 1
+ giveitem_std ITEM_TM37_SANDSTORM, 1, 1
end
Route111_EventScript_1B14D5:: @ 81B14D5
@@ -79,7 +79,7 @@ Route115_EventScript_1B1530:: @ 81B1530
end
Route115_EventScript_1B153D:: @ 81B153D
- giveitem_std ITEM_TM01, 1, 1
+ giveitem_std ITEM_TM01_FOCUS_PUNCH, 1, 1
end
Route115_EventScript_1B154A:: @ 81B154A
@@ -291,11 +291,11 @@ FieryPath_EventScript_1B17E1:: @ 81B17E1
end
FieryPath_EventScript_1B17EE:: @ 81B17EE
- giveitem_std ITEM_TM06, 1, 1
+ giveitem_std ITEM_TM06_TOXIC, 1, 1
end
MeteorFalls_1F_1R_EventScript_1B17FB:: @ 81B17FB
- giveitem_std ITEM_TM23, 1, 1
+ giveitem_std ITEM_TM23_IRON_TAIL, 1, 1
end
MeteorFalls_1F_1R_EventScript_1B1808:: @ 81B1808
@@ -311,7 +311,7 @@ MeteorFalls_1F_1R_EventScript_1B1822:: @ 81B1822
end
MeteorFalls_B1F_2R_EventScript_1B182F:: @ 81B182F
- giveitem_std ITEM_TM02, 1, 1
+ giveitem_std ITEM_TM02_DRAGON_CLAW, 1, 1
end
NewMauville_Inside_EventScript_1B183C:: @ 81B183C
@@ -347,7 +347,7 @@ AbandonedShip_Rooms2_B1F_EventScript_1B1897:: @ 81B1897
end
AbandonedShip_Room_B1F_EventScript_1B18A4:: @ 81B18A4
- giveitem_std ITEM_TM13, 1, 1
+ giveitem_std ITEM_TM13_ICE_BEAM, 1, 1
end
AbandonedShip_Rooms2_1F_EventScript_1B18B1:: @ 81B18B1
@@ -371,15 +371,15 @@ AbandonedShip_HiddenFloorRooms_EventScript_1B18E5:: @ 81B18E5
end
AbandonedShip_HiddenFloorRooms_EventScript_1B18F2:: @ 81B18F2
- giveitem_std ITEM_TM18, 1, 1
+ giveitem_std ITEM_TM18_RAIN_DANCE, 1, 1
end
ScorchedSlab_EventScript_1B18FF:: @ 81B18FF
- giveitem_std ITEM_TM11, 1, 1
+ giveitem_std ITEM_TM11_SUNNY_DAY, 1, 1
end
SafariZone_Northwest_EventScript_1B190C:: @ 81B190C
- giveitem_std ITEM_TM22, 1, 1
+ giveitem_std ITEM_TM22_SOLARBEAM, 1, 1
end
SafariZone_Northeast_EventScript_1B1919:: @ 81B1919
@@ -407,7 +407,7 @@ MtPyre_5F_EventScript_1B195A:: @ 81B195A
end
MtPyre_6F_EventScript_1B1967:: @ 81B1967
- giveitem_std ITEM_TM30, 1, 1
+ giveitem_std ITEM_TM30_SHADOW_BALL, 1, 1
end
MtPyre_Exterior_EventScript_1B1974:: @ 81B1974
@@ -415,7 +415,7 @@ MtPyre_Exterior_EventScript_1B1974:: @ 81B1974
end
MtPyre_Exterior_EventScript_1B1981:: @ 81B1981
- giveitem_std ITEM_TM48, 1, 1
+ giveitem_std ITEM_TM48_SKILL_SWAP, 1, 1
end
AquaHideout_B1F_EventScript_1B198E:: @ 81B198E
@@ -463,7 +463,7 @@ ShoalCave_LowTideStairsRoom_EventScript_1B1A10:: @ 81B1A10
end
ShoalCave_LowTideIceRoom_EventScript_1B1A1D:: @ 81B1A1D
- giveitem_std ITEM_TM07, 1, 1
+ giveitem_std ITEM_TM07_HAIL, 1, 1
end
ShoalCave_LowTideIceRoom_EventScript_1B1A2A:: @ 81B1A2A
@@ -471,11 +471,11 @@ ShoalCave_LowTideIceRoom_EventScript_1B1A2A:: @ 81B1A2A
end
SeafloorCavern_Room9_EventScript_1B1A37:: @ 81B1A37
- giveitem_std ITEM_TM26, 1, 1
+ giveitem_std ITEM_TM26_EARTHQUAKE, 1, 1
end
CaveOfOrigin_B3F_EventScript_1B1A44:: @ 81B1A44
- giveitem_std ITEM_HM07, 1, 1
+ giveitem_std ITEM_HM07_WATERFALL, 1, 1
end
Route110_TrickHousePuzzle1_EventScript_1B1A51:: @ 81B1A51
@@ -523,7 +523,7 @@ VictoryRoad_1F_EventScript_1B1AD3:: @ 81B1AD3
end
VictoryRoad_B1F_EventScript_1B1AE0:: @ 81B1AE0
- giveitem_std ITEM_TM29, 1, 1
+ giveitem_std ITEM_TM29_PSYCHIC, 1, 1
end
VictoryRoad_B1F_EventScript_1B1AED:: @ 81B1AED
@@ -535,5 +535,5 @@ VictoryRoad_B2F_EventScript_1B1AFA:: @ 81B1AFA
end
@ 81B1B07
- giveitem_std ITEM_HM08, 1, 1
+ giveitem_std ITEM_HM08_DIVE, 1, 1
end
diff --git a/data/map_events.s b/data/map_events.s
index a06eb36d0..1531ec30e 100644
--- a/data/map_events.s
+++ b/data/map_events.s
@@ -5,7 +5,7 @@
#include "constants/secret_bases.h"
#include "constants/vars.h"
#include "constants/weather.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/maps.s b/data/maps.s
index 92f5544a1..727a48d0f 100644
--- a/data/maps.s
+++ b/data/maps.s
@@ -1,6 +1,6 @@
#include "constants/maps.h"
#include "constants/songs.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/maps/events/Route113.inc b/data/maps/events/Route113.inc
index dccaf6e82..1b895d571 100644
--- a/data/maps/events/Route113.inc
+++ b/data/maps/events/Route113.inc
@@ -42,7 +42,7 @@ Route113_MapBGEvents:: @ 8382BE0
bg_event 31, 5, 0, 0, 0, Route113_EventScript_150629
bg_secret_base_event 49, 8, 0, SECRET_BASE_RED_CAVE1_3
bg_hidden_item_event 72, 4, 3, ITEM_ETHER, FLAG_HIDDEN_ITEM_3
- bg_hidden_item_event 22, 5, 3, ITEM_TM32, FLAG_HIDDEN_ITEM_1E
+ bg_hidden_item_event 22, 5, 3, ITEM_TM32_DOUBLE_TEAM, FLAG_HIDDEN_ITEM_1E
Route113_MapEvents:: @ 8382C34
map_events Route113_MapObjects, Route113_MapWarps, Route113_MapCoordEvents, Route113_MapBGEvents
diff --git a/data/maps/events/Route124_DivingTreasureHuntersHouse.inc b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
index 17ec713de..17ec713de 100755..100644
--- a/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
+++ b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc
diff --git a/data/data2a.s b/data/mon_attrs.s
index 103b723e8..ea47c8de6 100644
--- a/data/data2a.s
+++ b/data/mon_attrs.s
@@ -3,7 +3,7 @@
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/species.h"
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
@@ -702,331 +702,3 @@ gUnknown_081ECACC:: @ 81ECACC
.4byte gSpriteAnimTable_81ECAB4
.4byte gSpriteAnimTable_81ECABC
.4byte gSpriteAnimTable_81ECAC4
-
-@ 81ECAD8
- .include "data/graphics/trainers/back_pic_coords.inc"
-
-@ 81ECAE4
- .include "data/graphics/trainers/back_pic_table.inc"
-
-@ 81ECAFC
- .include "data/graphics/trainers/back_pic_palette_table.inc"
-
-@ 81ECB14
- .include "data/enemy_mon_elevation.inc"
-
-@ 81ECCB0
- .include "data/trainer_parties.inc"
-
-@ 81F0208
- .include "data/text/trainer_class_names.inc"
-
-@ 81F04FC
- .include "data/trainers.inc"
-
-@ 81F716C
- .include "data/text/species_names.inc"
-
-@ 81F8320
- .include "data/text/move_names.inc"
-
- .align 2
-@ 81F9528
- .4byte 0x101 @ unknown data
-
- .align 2
-gOamData_81F952C:: @ 81F952C
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_81F9534:: @ 81F9534
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0040
-
- .align 2
-gSpriteAffineAnim_81F953C:: @ 81F953C
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81F954C:: @ 81F954C
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
- obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_81F956C:: @ 81F956C
- .4byte gSpriteAffineAnim_81F953C
- .4byte gSpriteAffineAnim_81F954C
-
- .align 2
-gSpriteTemplate_81F9574:: @ 81F9574
- spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
-
- .align 2
-gSpriteTemplate_81F958C:: @ 81F958C
- spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
-
- .align 2
-gUnknown_081F95A4:: @ 81F95A4
- obj_tiles gUnknown_08E5DC2C, 4096, 0x2710
-
- .align 2
-gBattleTerrainTable:: @ 81F95AC
- @ tall_grass
- .4byte gBattleTerrainTiles_TallGrass
- .4byte gBattleTerrainTilemap_TallGrass
- .4byte gBattleTerrainAnimTiles_TallGrass
- .4byte gBattleTerrainAnimTilemap_TallGrass
- .4byte gBattleTerrainPalette_TallGrass
-
- @ long_grass
- .4byte gBattleTerrainTiles_LongGrass
- .4byte gBattleTerrainTilemap_LongGrass
- .4byte gBattleTerrainAnimTiles_LongGrass
- .4byte gBattleTerrainAnimTilemap_LongGrass
- .4byte gBattleTerrainPalette_LongGrass
-
- @ sand
- .4byte gBattleTerrainTiles_Sand
- .4byte gBattleTerrainTilemap_Sand
- .4byte gBattleTerrainAnimTiles_Sand
- .4byte gBattleTerrainAnimTilemap_Sand
- .4byte gBattleTerrainPalette_Sand
-
- @ underwater
- .4byte gBattleTerrainTiles_Underwater
- .4byte gBattleTerrainTilemap_Underwater
- .4byte gBattleTerrainAnimTiles_Underwater
- .4byte gBattleTerrainAnimTilemap_Underwater
- .4byte gBattleTerrainPalette_Underwater
-
- @ water
- .4byte gBattleTerrainTiles_Water
- .4byte gBattleTerrainTilemap_Water
- .4byte gBattleTerrainAnimTiles_Water
- .4byte gBattleTerrainAnimTilemap_Water
- .4byte gBattleTerrainPalette_Water
-
- @ pond_water
- .4byte gBattleTerrainTiles_PondWater
- .4byte gBattleTerrainTilemap_PondWater
- .4byte gBattleTerrainAnimTiles_PondWater
- .4byte gBattleTerrainAnimTilemap_PondWater
- .4byte gBattleTerrainPalette_PondWater
-
- @ rock
- .4byte gBattleTerrainTiles_Rock
- .4byte gBattleTerrainTilemap_Rock
- .4byte gBattleTerrainAnimTiles_Rock
- .4byte gBattleTerrainAnimTilemap_Rock
- .4byte gBattleTerrainPalette_Rock
-
- @ cave
- .4byte gBattleTerrainTiles_Cave
- .4byte gBattleTerrainTilemap_Cave
- .4byte gBattleTerrainAnimTiles_Cave
- .4byte gBattleTerrainAnimTilemap_Cave
- .4byte gBattleTerrainPalette_Cave
-
- @ building
- .4byte gBattleTerrainTiles_Building
- .4byte gBattleTerrainTilemap_Building
- .4byte gBattleTerrainAnimTiles_Building
- .4byte gBattleTerrainAnimTilemap_Building
- .4byte gBattleTerrainPalette_Building
-
- @ plain
- .4byte gBattleTerrainTiles_Building
- .4byte gBattleTerrainTilemap_Building
- .4byte gBattleTerrainAnimTiles_Building
- .4byte gBattleTerrainAnimTilemap_Building
- .4byte gBattleTerrainPalette_Plain
-
- .align 2
-gUnknown_081F9674:: @ 81F9674
- .4byte REG_BG3HOFS
- .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
- .4byte 1
-
- .align 2
-gUnknown_081F9680:: @ 81F9680
- .4byte gUnknown_030041D0
- .2byte 0x20
- .byte 0x13
- .byte 0x10
- .4byte BG_VRAM + 0xE104
-
- .4byte gUnknown_03004250
- .2byte 0x40
- .byte 0x13
- .byte 0x10
- .4byte BG_VRAM + 0xF104
-
- .4byte gUnknown_030041D0
- .2byte 0x60
- .byte 0x13
- .byte 0x30
- .4byte BG_VRAM + 0xE204
-
- .4byte gUnknown_03004250
- .2byte 0x80
- .byte 0x13
- .byte 0x30
- .4byte BG_VRAM + 0xF204
-
- .4byte gUnknown_030041D0
- .2byte 0x20
- .byte 0x13
- .byte 0x18
- .4byte BG_VRAM + 0xE1C4
-
- .4byte gUnknown_03004250
- .2byte 0x40
- .byte 0x13
- .byte 0x18
- .4byte BG_VRAM + 0xF1C4
-
-gUnknown_081F96C8:: @ 81F96C8
- .string "ヌケニン$" @ "Nukenin" (Shedinja)
-
- .align 2
-gSpriteTemplate_81F96D0:: @ 81F96D0
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_800F828
-
- .align 2
-gOamData_81F96E8:: @ 81F96E8
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_81F96F0:: @ 81F96F0
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x2800
-
- .align 2
-gSpriteAnim_81F96F8:: @ 81F96F8
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_81F9700:: @ 81F9700
- .4byte gSpriteAnim_81F96F8
-
- .align 2
-gSpriteAffineAnim_81F9704:: @ 81F9704
- obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 60
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_81F971C:: @ 81F971C
- .4byte gSpriteAffineAnim_81F9704
-
-@ 81F9720
- .include "data/type_effectiveness.inc"
-
-@ 81F9870
- .include "data/text/type_names.inc"
-
-@ 81F98F0
- .include "data/trainer_money.inc"
-
-@ 81F99CC
- .include "data/text/ability_descriptions.inc"
-
-@ 81FA248
- .include "data/text/ability_names.inc"
-
- .align 2
-gUnknown_081FA640:: @ 81FA640
- .4byte sub_8013FE8
- .4byte sub_80147A0
- .4byte sub_80146F4
- .4byte sub_8014BF4
- .4byte sub_8014D50
- .4byte sub_8014D98
- .4byte sub_8014DF8
- .4byte sub_8014EBC
- .4byte bs8_exit_by_flight
- .4byte sub_8014FBC
- .4byte sub_801B594
- .4byte bsB_exit_by_move
- .4byte bsC_8016D70
- .4byte sub_8015060
-
- .align 2
-gUnknown_081FA678:: @ 81FA678
- .4byte bc_8013B1C
- .4byte sub_8013998
- .4byte sub_8013B64
- .4byte sub_8013B64
- .4byte sub_8013BDC
- .4byte sub_8013C9C
- .4byte sub_8013C48
- .4byte sub_8013C9C
- .4byte sub_8013C9C
-
-gStatusConditionString_PoisonJpn:: @ 81FA69C
- .string "どく$$$$$$"
-
-gStatusConditionString_SleepJpn:: @ 81FA6A4
- .string "ねむり$$$$$"
-
-gStatusConditionString_ParalysisJpn:: @ 81FA6AC
- .string "まひ$$$$$$"
-
-gStatusConditionString_BurnJpn:: @ 81FA6B4
- .string "やけど$$$$$"
-
-gStatusConditionString_IceJpn:: @ 81FA6BC
- .string "こおり$$$$$"
-
-gStatusConditionString_ConfusionJpn:: @ 81FA6C4
- .string "こんらん$$$$"
-
-gStatusConditionString_LoveJpn:: @ 81FA6CC
- .string "メロメロ$$$$"
-
- .align 2
-gUnknown_081FA6D4:: @ 81FA6D4
- .4byte gStatusConditionString_PoisonJpn, BattleText_PoisonStatus
- .4byte gStatusConditionString_SleepJpn, BattleText_Sleep
- .4byte gStatusConditionString_ParalysisJpn, BattleText_Paralysis
- .4byte gStatusConditionString_BurnJpn, BattleText_Burn
- .4byte gStatusConditionString_IceJpn, BattleText_IceStatus
- .4byte gStatusConditionString_ConfusionJpn, BattleText_Confusion
- .4byte gStatusConditionString_LoveJpn, BattleText_Love
-
-gUnknown_081FA70C:: @ 81FA70C
- .byte 0, 0, 0
- .byte 3, 5, 0
- .byte 2, 3, 0
- .byte 1, 2, 0
- .byte 1, 1, 0
-
-gUnknown_081FA71B:: @ 81FA71B
- .byte 4, 3, 2, 1
-
-gUnknown_081FA71F:: @ 81FA71F
- .byte 4, 4, 4, 4
-
- .align 1
-gSoundMovesTable:: @ 81FA724
- .2byte 0x2D
- .2byte 0x2E
- .2byte 0x2F
- .2byte 0x30
- .2byte 0x67
- .2byte 0xAD
- .2byte 0xFD
- .2byte 0x13F
- .2byte 0x140
- .2byte 0x130
- .2byte 0xFFFF
diff --git a/data/pc_screen_effect.s b/data/pc_screen_effect.s
index c33957945..1d6571149 100755..100644
--- a/data/pc_screen_effect.s
+++ b/data/pc_screen_effect.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/pokedex_area_screen.s b/data/pokedex_area_screen.s
index 0d15169d0..410f0d4c5 100644
--- a/data/pokedex_area_screen.s
+++ b/data/pokedex_area_screen.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/pokedex_cry_screen.s b/data/pokedex_cry_screen.s
index 0908ddacb..14ea1cfb8 100644
--- a/data/pokedex_cry_screen.s
+++ b/data/pokedex_cry_screen.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/pokemon_storage_system.s b/data/pokemon_storage_system.s
index b765656f7..ddb672e8e 100644
--- a/data/pokemon_storage_system.s
+++ b/data/pokemon_storage_system.s
@@ -1,688 +1,10 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
-gUnknown_083B600C:: @ 83B600C
- .4byte PCText_WithdrawPoke, PCText_MovePokeToParty
- .4byte PCText_DepositPoke, PCText_StorePokeInBox
- .4byte PCText_MovePoke, PCText_OrganizeBoxesParty
- .4byte PCText_SeeYa, PCText_ReturnToPrevMenu
- .align 2
-gSpriteAnim_83B602C:: @ 83B602C
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6034:: @ 83B6034
- obj_image_anim_frame 4, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B603C:: @ 83B603C
- obj_image_anim_frame 6, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6044:: @ 83B6044
- obj_image_anim_frame 10, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83B604C:: @ 83B604C
- .4byte gSpriteAnim_83B602C
- .4byte gSpriteAnim_83B6034
- .4byte gSpriteAnim_83B603C
- .4byte gSpriteAnim_83B6044
-
- .align 2
-gSpriteAffineAnim_83B605C:: @ 83B605C
- obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83B606C:: @ 83B606C
- .4byte gSpriteAffineAnim_83B605C
-
- .align 2
-gBoxSelectionPopupPalette:: @ 83B6070
- .incbin "graphics/pokemon_storage/box_selection_popup.gbapal"
-
- .align 2
-gBoxSelectionPopupCenterTiles:: @ 83B6090
- .incbin "graphics/pokemon_storage/box_selection_popup_center.4bpp"
-
- .align 2
-gBoxSelectionPopupSidesTiles:: @ 83B6890
- .incbin "graphics/pokemon_storage/box_selection_popup_sides.4bpp"
-
- .align 2
-gPokemonStorageScrollingBGPalette:: @ 83B6A10
- .incbin "graphics/pokemon_storage/scrolling_bg.gbapal"
-
- .align 2
-gPokemonStorageScrollingBGTile:: @ 83B6A30
- .incbin "graphics/pokemon_storage/scrolling_bg.4bpp"
-
- .align 2
-gPokemonStorageScrollingBGTilemap:: @ 83B6A50
- .incbin "graphics/pokemon_storage/scrolling_bg_map.bin.lz"
-
-@ unused tilemap?
- .2byte 0x1281
- .2byte 0x1282
- .2byte 0x1283
- .2byte 0x1284
- .2byte 0x1285
- .2byte 0x1286
- .2byte 0x1287
- .2byte 0x1288
- .2byte 0x128C
- .2byte 0x128D
- .2byte 0x128E
- .2byte 0x128F
- .2byte 0x1290
- .2byte 0x1291
- .2byte 0x1292
- .2byte 0x1293
- .2byte 0x0281
- .2byte 0x0282
- .2byte 0x0283
- .2byte 0x0284
- .2byte 0x0285
- .2byte 0x0286
- .2byte 0x0287
- .2byte 0x0288
- .2byte 0x028C
- .2byte 0x028D
- .2byte 0x028E
- .2byte 0x028F
- .2byte 0x0290
- .2byte 0x0291
- .2byte 0x0292
- .2byte 0x0293
- .2byte 0x12AD
- .2byte 0x12AE
- .2byte 0x12A8
- .2byte 0x12A8
-
- .align 2
-WaveformPalette: @ 83B6B94
- .incbin "graphics/pokemon_storage/waveform.gbapal"
-
- .align 2
-WaveformTiles: @ 83B6BB4
- .incbin "graphics/pokemon_storage/waveform.4bpp"
-
- .align 2
-gUnknown_083B6D74:: @ 83B6D74
- .incbin "graphics/pokemon_storage/83B6D74.gbapal"
-
- .align 2
-gUnknown_083B6D94:: @ 83B6D94
- .incbin "graphics/pokemon_storage/83B6D94.gbapal"
-
- .align 2
-gUnknown_083B6DB4:: @ 83B6DB4
- .4byte gSharedMem
-
- .align 2
-gUnknown_083B6DB8:: @ 83B6DB8
- .4byte gTileBuffer
-
- .align 2
-gWaveformSpritePalette:: @ 83B6DBC
- obj_pal WaveformPalette, 56013
-
- .align 2
-gWaveformSpriteSheet:: @ 83B6DC4
- obj_tiles WaveformTiles, 0x1C0, 5
-
- .align 2
-gUnknown_083B6DCC:: @ 83B6DCC
- obj_tiles gSharedMem + 0x2784, 0x800, 2
-
- .align 2
-gUnknown_083B6DD4:: @ 83B6DD4
- obj_pal gSharedMem + 0x2704, 56007
-
- .align 2
-gSpriteTemplate_83B6DDC:: @ 83B6DDC
- spr_template 2, 56007, gOamData_83B6EAC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_083B6DF4:: @ 83B6DF4
- .4byte PCText_ExitBox, 0
- .4byte PCText_WhatYouDo, 0
- .4byte PCText_PickATheme, 0
- .4byte PCText_PickAWallpaper, 0
- .4byte PCText_IsSelected, 1
- .4byte PCText_JumpToWhichBox, 0
- .4byte PCText_DepositInWhichBox, 0
- .4byte PCText_WasDeposited, 1
- .4byte PCText_BoxIsFull, 0
- .4byte PCText_ReleasePoke, 0
- .4byte PCText_WasReleased, 4
- .4byte PCText_ByeBye, 6
- .4byte PCText_MarkPoke, 0
- .4byte PCText_LastPoke, 0
- .4byte PCText_PartyFull, 0
- .4byte PCText_HoldingPoke, 0
- .4byte PCText_WhichOneWillTake, 0
- .4byte PCText_CantReleaseEgg, 0
- .4byte PCText_ContinueBox, 0
- .4byte PCText_CameBack, 1
- .4byte PCText_Worried, 0
- .4byte PCText_Surprise, 0
- .4byte PCText_PleaseRemoveMail, 0
-
- .align 2
-gOamData_83B6EAC:: @ 83B6EAC
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83B6EB4:: @ 83B6EB4
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gSpriteAnim_83B6EBC:: @ 83B6EBC
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6EC4:: @ 83B6EC4
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 6, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83B6ED4:: @ 83B6ED4
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83B6EDC:: @ 83B6EDC
- obj_image_anim_frame 10, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 12, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_83B6EEC:: @ 83B6EEC
- .4byte gSpriteAnim_83B6EBC
- .4byte gSpriteAnim_83B6EC4
- .4byte gSpriteAnim_83B6ED4
- .4byte gSpriteAnim_83B6EDC
-
- .align 2
-gSpriteTemplate_83B6EFC:: @ 83B6EFC
- spr_template 5, 56013, gOamData_83B6EB4, gSpriteAnimTable_83B6EEC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83B6F14:: @ 83B6F14
- spr_template 15, 56000, gOamData_83B6F2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83B6F2C:: @ 83B6F2C
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gSpriteAffineAnim_83B6F34:: @ 83B6F34
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 120
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83B6F44:: @ 83B6F44
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83B6F5C:: @ 83B6F5C
- .4byte gSpriteAffineAnim_83B6F34
- .4byte gSpriteAffineAnim_83B6F44
-
- .align 2
-gWallpaperPalettes_Forest: @ 83B6F64
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/forest_frame.gbapal"
- .incbin "graphics/pokemon_storage/forest_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Forest: @ 83B6FC4
- .incbin "graphics/pokemon_storage/forest.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Forest: @ 83B7394
- .incbin "graphics/pokemon_storage/forest.bin.lz"
-
- .align 2
-gWallpaperPalettes_City: @ 83B7470
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/city_frame.gbapal"
- .incbin "graphics/pokemon_storage/city_bg.gbapal"
-
- .align 2
-gWallpaperTiles_City: @ 83B74D0
- .incbin "graphics/pokemon_storage/city.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_City: @ 83B76D8
- .incbin "graphics/pokemon_storage/city.bin.lz"
-
- .align 2
-gWallpaperPalettes_Desert: @ 83B7788
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/desert_frame.gbapal"
- .incbin "graphics/pokemon_storage/desert_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Desert: @ 83B77E8
- .incbin "graphics/pokemon_storage/desert.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Desert: @ 83B7AD4
- .incbin "graphics/pokemon_storage/desert.bin.lz"
-
- .align 2
-gWallpaperPalettes_Savanna: @ 83B7BB8
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/savanna_frame.gbapal"
- .incbin "graphics/pokemon_storage/savanna_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Savanna: @ 83B7C18
- .incbin "graphics/pokemon_storage/savanna.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Savanna: @ 83B7E38
- .incbin "graphics/pokemon_storage/savanna.bin.lz"
-
- .align 2
-gWallpaperPalettes_Crag: @ 83B7F04
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/crag_frame.gbapal"
- .incbin "graphics/pokemon_storage/crag_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Crag: @ 83B7F64
- .incbin "graphics/pokemon_storage/crag.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Crag: @ 83B82B4
- .incbin "graphics/pokemon_storage/crag.bin.lz"
-
- .align 2
-gWallpaperPalettes_Volcano: @ 83B838C
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/volcano_frame.gbapal"
- .incbin "graphics/pokemon_storage/volcano_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Volcano: @ 83B83EC
- .incbin "graphics/pokemon_storage/volcano.4bpp.lz"
-
- .space 4
-
- .align 2
-gWallpaperTilemap_Volcano: @ 83B8720
- .incbin "graphics/pokemon_storage/volcano.bin.lz"
-
- .align 2
-gWallpaperPalettes_Snow: @ 83B87F8
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/snow_frame.gbapal"
- .incbin "graphics/pokemon_storage/snow_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Snow: @ 83B8858
- .incbin "graphics/pokemon_storage/snow.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Snow: @ 83B8B10
- .incbin "graphics/pokemon_storage/snow.bin.lz"
-
- .align 2
-gWallpaperPalettes_Cave: @ 83B8BDC
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/cave_frame.gbapal"
- .incbin "graphics/pokemon_storage/cave_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Cave: @ 83B8C3C
- .incbin "graphics/pokemon_storage/cave.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Cave: @ 83B8F80
- .incbin "graphics/pokemon_storage/cave.bin.lz"
-
- .align 2
-gWallpaperPalettes_Beach: @ 83B905C
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/beach_frame.gbapal"
- .incbin "graphics/pokemon_storage/beach_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Beach: @ 83B90BC
- .incbin "graphics/pokemon_storage/beach.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Beach: @ 83B9440
- .incbin "graphics/pokemon_storage/beach.bin.lz"
-
- .align 2
-gWallpaperPalettes_Seafloor: @ 83B9528
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/seafloor_frame.gbapal"
- .incbin "graphics/pokemon_storage/seafloor_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Seafloor: @ 83B9588
- .incbin "graphics/pokemon_storage/seafloor.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Seafloor: @ 83B983C
- .incbin "graphics/pokemon_storage/seafloor.bin.lz"
-
- .align 2
-gWallpaperPalettes_River: @ 83B9918
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/river_frame.gbapal"
- .incbin "graphics/pokemon_storage/river_bg.gbapal"
-
- .align 2
-gWallpaperTiles_River: @ 83B9978
- .incbin "graphics/pokemon_storage/river.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_River: @ 83B9C0C
- .incbin "graphics/pokemon_storage/river.bin.lz"
-
- .align 2
-gWallpaperPalettes_Sky: @ 83B9CF8
- .incbin "graphics/pokemon_storage/box_bg1.gbapal"
- .incbin "graphics/pokemon_storage/sky_frame.gbapal"
- .incbin "graphics/pokemon_storage/sky_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Sky: @ 83B9D58
- .incbin "graphics/pokemon_storage/sky.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Sky: @ 83B9FF0
- .incbin "graphics/pokemon_storage/sky.bin.lz"
-
- .align 2
-gWallpaperPalettes_Polkadot: @ 83BA0D0
- .incbin "graphics/pokemon_storage/box_bg2.gbapal"
- .incbin "graphics/pokemon_storage/polkadot_frame.gbapal"
- .incbin "graphics/pokemon_storage/polkadot_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Polkadot: @ 83BA130
- .incbin "graphics/pokemon_storage/polkadot.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Polkadot: @ 83BA32C
- .incbin "graphics/pokemon_storage/polkadot.bin.lz"
-
- .align 2
-gWallpaperPalettes_Pokecenter: @ 83BA3E4
- .incbin "graphics/pokemon_storage/box_bg2.gbapal"
- .incbin "graphics/pokemon_storage/pokecenter_frame.gbapal"
- .incbin "graphics/pokemon_storage/pokecenter_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Pokecenter: @ 83BA444
- .incbin "graphics/pokemon_storage/pokecenter.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Pokecenter: @ 83BA7E8
- .incbin "graphics/pokemon_storage/pokecenter.bin.lz"
-
- .align 2
-gWallpaperPalettes_Machine: @ 83BA8FC
- .incbin "graphics/pokemon_storage/box_bg3.gbapal"
- .incbin "graphics/pokemon_storage/machine_frame.gbapal"
- .incbin "graphics/pokemon_storage/machine_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Machine: @ 83BA95C
- .incbin "graphics/pokemon_storage/machine.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Machine: @ 83BAC4C
- .incbin "graphics/pokemon_storage/machine.bin.lz"
-
- .align 2
-gWallpaperPalettes_Plain: @ 83BAD18
- .incbin "graphics/pokemon_storage/box_bg4.gbapal"
- .incbin "graphics/pokemon_storage/plain_frame.gbapal"
- .incbin "graphics/pokemon_storage/plain_bg.gbapal"
-
- .align 2
-gWallpaperTiles_Plain: @ 83BAD78
- .incbin "graphics/pokemon_storage/plain.4bpp.lz"
-
- .align 2
-gWallpaperTilemap_Plain: @ 83BAE74
- .incbin "graphics/pokemon_storage/plain.bin.lz"
-
-@ 12×18 tilemap
- .incbin "graphics/unused/tilemap_3BAEF8.bin"
-
- .align 1
-gUnknown_083BB0A8:: @ 83BB0A8
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
- .2byte 0x1CE7, 0x7FFF
-
- .align 2
-gWallpaperTable:: @ 83BB0E8
- @ Forest
- .4byte gWallpaperTiles_Forest
- .4byte 0x3D0
- .4byte gWallpaperTilemap_Forest
- .4byte gWallpaperPalettes_Forest
-
- @ City
- .4byte gWallpaperTiles_City
- .4byte 0x208
- .4byte gWallpaperTilemap_City
- .4byte gWallpaperPalettes_City
-
- @ Desert
- .4byte gWallpaperTiles_Desert
- .4byte 0x2EC
- .4byte gWallpaperTilemap_Desert
- .4byte gWallpaperPalettes_Desert
-
- @ Savanna
- .4byte gWallpaperTiles_Savanna
- .4byte 0x220
- .4byte gWallpaperTilemap_Savanna
- .4byte gWallpaperPalettes_Savanna
-
- @ Crag
- .4byte gWallpaperTiles_Crag
- .4byte 0x350
- .4byte gWallpaperTilemap_Crag
- .4byte gWallpaperPalettes_Crag
-
- @ Volcano
- .4byte gWallpaperTiles_Volcano
- .4byte 0x334
- .4byte gWallpaperTilemap_Volcano
- .4byte gWallpaperPalettes_Volcano
-
- @ Snow
- .4byte gWallpaperTiles_Snow
- .4byte 0x2B8
- .4byte gWallpaperTilemap_Snow
- .4byte gWallpaperPalettes_Snow
-
- @ Cave
- .4byte gWallpaperTiles_Cave
- .4byte 0x344
- .4byte gWallpaperTilemap_Cave
- .4byte gWallpaperPalettes_Cave
-
- @ Beach
- .4byte gWallpaperTiles_Beach
- .4byte 0x384
- .4byte gWallpaperTilemap_Beach
- .4byte gWallpaperPalettes_Beach
-
- @ Seafloor
- .4byte gWallpaperTiles_Seafloor
- .4byte 0x2B4
- .4byte gWallpaperTilemap_Seafloor
- .4byte gWallpaperPalettes_Seafloor
-
- @ River
- .4byte gWallpaperTiles_River
- .4byte 0x294
- .4byte gWallpaperTilemap_River
- .4byte gWallpaperPalettes_River
-
- @ Sky
- .4byte gWallpaperTiles_Sky
- .4byte 0x298
- .4byte gWallpaperTilemap_Sky
- .4byte gWallpaperPalettes_Sky
-
- @ Polkadot
- .4byte gWallpaperTiles_Polkadot
- .4byte 0x1FC
- .4byte gWallpaperTilemap_Polkadot
- .4byte gWallpaperPalettes_Polkadot
-
- @ Pokecenter
- .4byte gWallpaperTiles_Pokecenter
- .4byte 0x3A4
- .4byte gWallpaperTilemap_Pokecenter
- .4byte gWallpaperPalettes_Pokecenter
-
- @ Machine
- .4byte gWallpaperTiles_Machine
- .4byte 0x2F0
- .4byte gWallpaperTilemap_Machine
- .4byte gWallpaperPalettes_Machine
-
- @ Plain
- .4byte gWallpaperTiles_Plain
- .4byte 0xFC
- .4byte gWallpaperTilemap_Plain
- .4byte gWallpaperPalettes_Plain
-
-PCPal_Arrow:
- .incbin "graphics/pokemon_storage/arrow.gbapal"
-PCGfx_Arrow:
- .incbin "graphics/pokemon_storage/arrow.4bpp"
-
- .align 2
-gUnknown_083BB288:: @ 83BB288
- obj_tiles PCGfx_Arrow, 128, 0x0006
-
- .align 2
-gUnknown_083BB290:: @ 83BB290
- obj_pal PCPal_Arrow, 0xDACF
-
- .align 2
-gOamData_83BB298:: @ 83BB298
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83BB2A0:: @ 83BB2A0
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BB2A8:: @ 83BB2A8
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83BB2B0:: @ 83BB2B0
- .4byte gSpriteAnim_83BB2A0
- .4byte gSpriteAnim_83BB2A8
-
- .align 2
-gSpriteTemplate_83BB2B8:: @ 83BB2B8
- spr_template 3, 56008, gOamData_83BB298, gSpriteAnimTable_83BB2B0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_83BB2D0:: @ 83BB2D0
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83BB2D8:: @ 83BB2D8
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83BB2E0:: @ 83BB2E0
- obj_image_anim_frame 2, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83BB2E8:: @ 83BB2E8
- .4byte gSpriteAnim_83BB2D8
- .4byte gSpriteAnim_83BB2E0
-
- .align 2
-gSpriteTemplate_83BB2F0:: @ 83BB2F0
- spr_template 6, 56015, gOamData_83BB2D0, gSpriteAnimTable_83BB2E8, NULL, gDummySpriteAffineAnimTable, sub_809A8C8
-
- .align 2
-HandCursorPalette: @ 83BB308
- .incbin "graphics/pokemon_storage/hand_cursor_pal.bin"
-
- .align 2
-HandCursorAltPalette: @ 83BB328
- .incbin "graphics/pokemon_storage/hand_cursor_alt_pal.bin"
-
- .align 2
-HandCursorTiles: @ 83BB348
- .incbin "graphics/pokemon_storage/hand_cursor.4bpp"
-
- .align 2
-HandCursorShadowTiles: @ 83BBB48
- .incbin "graphics/pokemon_storage/hand_cursor_shadow.4bpp"
-
- .align 2
-gUnknown_083BBBC8:: @ 83BBBC8
- .4byte sub_809B150
- .4byte sub_809B1D8
- .4byte sub_809B24C
-
- .align 2
gUnknown_083BBBD4:: @ 83BBBD4
.4byte sub_809C464, 0
.4byte sub_809C664, 1
@@ -750,6 +72,11 @@ gSpriteTemplate_83BBC70:: @ 83BBC70
gSpriteTemplate_83BBC88:: @ 83BBC88
spr_template 1, 56006, gOamData_83BBC34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_809CB74
+.if DEBUG
+gUnknown_Debug_0x83E6268:: @ 0x83E6268
+ .string "セットする$"
+.endif
+
.align 2
gUnknown_083BBCA0:: @ 83BBCA0
.4byte PCText_Cancel2
@@ -784,3 +111,6 @@ gUnknown_083BBCA0:: @ 83BBCA0
.4byte PCText_PokeCenter
.4byte PCText_Machine
.4byte PCText_Plain
+.if DEBUG
+ .4byte gUnknown_Debug_0x83E6268
+.endif
diff --git a/data/pokenav.s b/data/pokenav.s
index f84e45596..cb0e98472 100644
--- a/data/pokenav.s
+++ b/data/pokenav.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/roulette.s b/data/roulette.s
index 64b7b82e2..b9d096ac4 100644
--- a/data/roulette.s
+++ b/data/roulette.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
@@ -133,6 +133,13 @@ gUnknown_083F8EE8:: @ 83F8EE8
gUnknown_083F8EF4:: @ 83F8EF4
.byte 0, 3, 4, 6, 12
+.if DEBUG
+@ Could also be after English-only graphics
+gUnknown_Debug_0842510D:: @ 0x842510D
+ .string "Set COIN and Press START\n"
+ .string "Aーp1 Bーm1 R:Lー×10$"
+.endif
+
.ifdef ENGLISH
.align 2
RouletteSpritePalette_01:
diff --git a/data/scripts/berry_tree.inc b/data/scripts/berry_tree.inc
index 55b8e2439..9fb808074 100644
--- a/data/scripts/berry_tree.inc
+++ b/data/scripts/berry_tree.inc
@@ -31,10 +31,10 @@ Route102_EventScript_1A153D:: @ 81A153D
end
Route102_EventScript_1A1558:: @ 81A1558
- msgbox Route102_Text_1A16CD, 5
- compare RESULT, 1
+ msgbox Route102_Text_1A16CD, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route102_EventScript_1A1577
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route102_EventScript_1A1593
end
@@ -101,10 +101,10 @@ Route102_EventScript_1A15F9:: @ 81A15F9
buffernumberstring 1, VAR_SPECIAL_6
lock
faceplayer
- msgbox Route102_Text_1A17C0, 5
- compare RESULT, 1
+ msgbox Route102_Text_1A17C0, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route102_EventScript_1A161D
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route102_EventScript_1A164B
Route102_EventScript_1A161D:: @ 81A161D
@@ -113,7 +113,7 @@ Route102_EventScript_1A161D:: @ 81A161D
goto_if_eq Route102_EventScript_1A1642
special FieldObjectInteractionRemoveBerryTree
message Route102_Text_1A17FD
- playfanfare 387
+ playfanfare BGM_ME_KINOMI
waitmessage
waitfanfare
waitbuttonpress
@@ -148,10 +148,10 @@ Route102_EventScript_1A165F:: @ 81A165F
checkitem ITEM_WAILMER_PAIL, 1
compare RESULT, 0
goto_if_eq Route102_EventScript_1A168D
- msgbox Route102_Text_1A18E6, 5
- compare RESULT, 1
+ msgbox Route102_Text_1A18E6, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route102_EventScript_1A1693
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route102_EventScript_1A168D
Route102_EventScript_1A168D:: @ 81A168D
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index b3926af65..0e2012de9 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -136,7 +136,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A3E30:: @ 81A3E30
waitmovement 0
message OldaleTown_PokemonCenter_2F_Text_1A4E50
waitmessage
- playse 21
+ playse SE_PIN
message OldaleTown_PokemonCenter_2F_Text_1A4E79
waitmessage
applymovement 255, OldaleTown_PokemonCenter_2F_Movement_1A4358
@@ -174,8 +174,7 @@ RustboroCity_PokemonCenter_2F_EventScript_1A3EA6:: @ 81A3EA6
SlateportCity_PokemonCenter_2F_EventScript_1A3EA6:: @ 81A3EA6
SootopolisCity_PokemonCenter_2F_EventScript_1A3EA6:: @ 81A3EA6
VerdanturfTown_PokemonCenter_2F_EventScript_1A3EA6:: @ 81A3EA6
- checkflag FLAG_SYS_POKEDEX_GET
- goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A4342
+ goto_if_unset FLAG_SYS_POKEDEX_GET, OldaleTown_PokemonCenter_2F_EventScript_1A4342
copyvar VAR_SPECIAL_7, LAST_TALKED
lock
faceplayer
@@ -282,7 +281,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A403C:: @ 81A403C
OldaleTown_PokemonCenter_2F_EventScript_1A4042:: @ 81A4042
special CheckForAlivePartyMons
compare RESULT, 0
- goto_if 5, OldaleTown_PokemonCenter_2F_EventScript_1A4056
+ goto_if_ne OldaleTown_PokemonCenter_2F_EventScript_1A4056
setvar VAR_SPECIAL_4, 2
return
@@ -346,15 +345,14 @@ RustboroCity_PokemonCenter_2F_EventScript_1A40CC:: @ 81A40CC
SlateportCity_PokemonCenter_2F_EventScript_1A40CC:: @ 81A40CC
SootopolisCity_PokemonCenter_2F_EventScript_1A40CC:: @ 81A40CC
VerdanturfTown_PokemonCenter_2F_EventScript_1A40CC:: @ 81A40CC
- checkflag FLAG_SYS_POKEDEX_GET
- goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A4339
+ goto_if_unset FLAG_SYS_POKEDEX_GET, OldaleTown_PokemonCenter_2F_EventScript_1A4339
copyvar VAR_SPECIAL_7, LAST_TALKED
lock
faceplayer
- msgbox OldaleTown_PokemonCenter_2F_Text_1A457E, 5
- compare RESULT, 0
+ msgbox OldaleTown_PokemonCenter_2F_Text_1A457E, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_1A4319
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_1A40FA
OldaleTown_PokemonCenter_2F_EventScript_1A40FA:: @ 81A40FA
@@ -407,7 +405,7 @@ OldaleTown_PokemonCenter_2F_EventScript_1A4166:: @ 81A4166
OldaleTown_PokemonCenter_2F_EventScript_1A41BB:: @ 81A41BB
specialvar RESULT, CalculatePlayerPartyCount
compare RESULT, 2
- goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A41E1
+ goto_if_lt OldaleTown_PokemonCenter_2F_EventScript_1A41E1
specialvar RESULT, GetNameOfEnigmaBerryInPlayerParty
compare RESULT, 1
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_1A41EE
@@ -443,15 +441,14 @@ RustboroCity_PokemonCenter_2F_EventScript_1A41FB:: @ 81A41FB
SlateportCity_PokemonCenter_2F_EventScript_1A41FB:: @ 81A41FB
SootopolisCity_PokemonCenter_2F_EventScript_1A41FB:: @ 81A41FB
VerdanturfTown_PokemonCenter_2F_EventScript_1A41FB:: @ 81A41FB
- checkflag FLAG_VISITED_MAUVILLE_CITY
- goto_if 0, OldaleTown_PokemonCenter_2F_EventScript_1A434B
+ goto_if_unset FLAG_VISITED_MAUVILLE_CITY, OldaleTown_PokemonCenter_2F_EventScript_1A434B
copyvar VAR_SPECIAL_7, LAST_TALKED
lock
faceplayer
- msgbox OldaleTown_PokemonCenter_2F_Text_1A45FE, 5
- compare RESULT, 0
+ msgbox OldaleTown_PokemonCenter_2F_Text_1A45FE, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_1A4319
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq OldaleTown_PokemonCenter_2F_EventScript_1A4229
OldaleTown_PokemonCenter_2F_EventScript_1A4229:: @ 81A4229
@@ -691,7 +688,7 @@ RecordCorner_EventScript_1A4418:: @ 81A4418
special sub_80B929C
waitstate
compare VAR_TEMP_1, 0
- goto_if 5, RecordCorner_EventScript_1A446C
+ goto_if_ne RecordCorner_EventScript_1A446C
end
RecordCorner_EventScript_1A442D:: @ 81A442D
@@ -699,7 +696,7 @@ RecordCorner_EventScript_1A442D:: @ 81A442D
special sub_80B929C
waitstate
compare VAR_TEMP_1, 0
- goto_if 5, RecordCorner_EventScript_1A446C
+ goto_if_ne RecordCorner_EventScript_1A446C
end
RecordCorner_EventScript_1A4442:: @ 81A4442
@@ -707,7 +704,7 @@ RecordCorner_EventScript_1A4442:: @ 81A4442
special sub_80B929C
waitstate
compare VAR_TEMP_1, 0
- goto_if 5, RecordCorner_EventScript_1A446C
+ goto_if_ne RecordCorner_EventScript_1A446C
end
RecordCorner_EventScript_1A4457:: @ 81A4457
@@ -715,7 +712,7 @@ RecordCorner_EventScript_1A4457:: @ 81A4457
special sub_80B929C
waitstate
compare VAR_TEMP_1, 0
- goto_if 5, RecordCorner_EventScript_1A446C
+ goto_if_ne RecordCorner_EventScript_1A446C
end
RecordCorner_EventScript_1A446C:: @ 81A446C
@@ -771,7 +768,7 @@ TradeCenter_EventScript_1A44AD:: @ 81A44AD
RecordCorner_EventScript_1A44BC:: @ 81A44BC
compare VAR_TEMP_0, 0
- goto_if 5, RecordCorner_EventScript_1A44D6
+ goto_if_ne RecordCorner_EventScript_1A44D6
special sub_8064EAC
message RecordCorner_Text_1A4DD7
waitmessage
@@ -790,8 +787,8 @@ RecordCorner_EventScript_1A44D6:: @ 81A44D6
end
TradeRoom_PromptToCancelLink:: @ 81A44E5
- msgbox TradeRoom_WillLinkBeTerminated, 5
- compare RESULT, 1
+ msgbox TradeRoom_WillLinkBeTerminated, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq TradeRoom_TerminateLink
erasebox 0, 0, 29, 19
end
diff --git a/data/scripts/contest_hall.inc b/data/scripts/contest_hall.inc
index 9c5c246e2..7f0f6b710 100644
--- a/data/scripts/contest_hall.inc
+++ b/data/scripts/contest_hall.inc
@@ -6,11 +6,10 @@ VerdanturfTown_ContestLobby_EventScript_1A4E92:: @ 81A4E92
faceplayer
checkitem ITEM_CONTEST_PASS, 1
compare RESULT, 0
- call_if 1, FallarborTown_ContestLobby_EventScript_1A4EDD
+ call_if_eq FallarborTown_ContestLobby_EventScript_1A4EDD
compare VAR_CONTEST_PRIZE_PICKUP, 0
- goto_if 5, FallarborTown_ContestLobby_EventScript_1A4F4E
- checkflag FLAG_TEMP_1
- goto_if_eq FallarborTown_ContestLobby_EventScript_1A4F8F
+ goto_if_ne FallarborTown_ContestLobby_EventScript_1A4F4E
+ goto_if_set FLAG_TEMP_1, FallarborTown_ContestLobby_EventScript_1A4F8F
bufferstdstring 0, VAR_SPECIAL_B
msgbox FallarborTown_ContestLobby_Text_1A5DFC, 4
checkitem ITEM_CONTEST_PASS, 1
@@ -32,16 +31,15 @@ FallarborTown_ContestLobby_EventScript_1A4EE1:: @ 81A4EE1
end
FallarborTown_ContestLobby_EventScript_1A4EF6:: @ 81A4EF6
- msgbox FallarborTown_ContestLobby_Text_1A64F4, 5
- compare RESULT, 1
+ msgbox FallarborTown_ContestLobby_Text_1A64F4, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FallarborTown_ContestLobby_EventScript_1A4F13
msgbox FallarborTown_ContestLobby_Text_1A65EA, 4
releaseall
end
FallarborTown_ContestLobby_EventScript_1A4F13:: @ 81A4F13
- checkflag FLAG_RECEIVED_CONTEST_PASS
- goto_if_eq FallarborTown_ContestLobby_EventScript_1A4F44
+ goto_if_set FLAG_RECEIVED_CONTEST_PASS, FallarborTown_ContestLobby_EventScript_1A4F44
msgbox FallarborTown_ContestLobby_Text_1A6583, 4
giveitem_std ITEM_CONTEST_PASS
setflag FLAG_RECEIVED_CONTEST_PASS
@@ -153,17 +151,17 @@ FallarborTown_ContestLobby_EventScript_1A50C8:: @ 81A50C8
end
FallarborTown_ContestLobby_EventScript_1A50D7:: @ 81A50D7
- msgbox FallarborTown_ContestLobby_Text_1A67A3, 5
+ msgbox FallarborTown_ContestLobby_Text_1A67A3, MSGBOX_YESNO
switch RESULT
- case 0, FallarborTown_ContestLobby_EventScript_1A5048
- case 1, FallarborTown_ContestLobby_EventScript_1A513D
+ case NO, FallarborTown_ContestLobby_EventScript_1A5048
+ case YES, FallarborTown_ContestLobby_EventScript_1A513D
end
FallarborTown_ContestLobby_EventScript_1A50FB:: @ 81A50FB
- msgbox FallarborTown_ContestLobby_Text_1A6724, 5
+ msgbox FallarborTown_ContestLobby_Text_1A6724, MSGBOX_YESNO
switch RESULT
- case 0, FallarborTown_ContestLobby_EventScript_1A5048
- case 1, FallarborTown_ContestLobby_EventScript_1A513D
+ case NO, FallarborTown_ContestLobby_EventScript_1A5048
+ case YES, FallarborTown_ContestLobby_EventScript_1A513D
end
FallarborTown_ContestLobby_EventScript_1A511F:: @ 81A511F
@@ -288,7 +286,7 @@ LinkContestRoom1_EventScript_1A527A:: @ 81A527A
call LinkContestRoom1_EventScript_1A5880
addvar VAR_SPECIAL_6, 1
compare VAR_SPECIAL_6, 4
- goto_if 5, LinkContestRoom1_EventScript_1A527A
+ goto_if_ne LinkContestRoom1_EventScript_1A527A
call LinkContestRoom1_EventScript_1A5377
setvar VAR_TEMP_1, 6
return
@@ -345,13 +343,13 @@ LinkContestRoom1_EventScript_1A5323:: @ 81A5323
waitmovement 0
releaseall
addobject 13
- playse 10
+ playse SE_DANSA
lockall
applymovement VAR_SPECIAL_B, LinkContestRoom1_Movement_1A5D9C
waitmovement 0
releaseall
addvar VAR_SPECIAL_6, -1
- playse 15
+ playse SE_BOWA2
special ShowContestEntryMonPic
call LinkContestRoom1_EventScript_1A535E
return
@@ -371,7 +369,7 @@ LinkContestRoom1_EventScript_1A5370:: @ 81A5370
LinkContestRoom1_EventScript_1A5377:: @ 81A5377
call LinkContestRoom1_EventScript_1A53B3
call LinkContestRoom1_EventScript_1A53CE
- playse 223
+ playse SE_W227B
waitmessage
call LinkContestRoom1_EventScript_1A5A90
applymovement 1, LinkContestRoom1_Movement_1A5D9F
@@ -408,7 +406,7 @@ LinkContestRoom1_EventScript_1A53DF:: @ 81A53DF
LinkContestRoom1_EventScript_1A53E5:: @ 81A53E5
applymovement 1, LinkContestRoom1_Movement_1A5DAF
waitmovement 0
- playse 223
+ playse SE_W227B
call LinkContestRoom1_EventScript_1A5AE4
applymovement 9, LinkContestRoom1_Movement_1A5DB7
applymovement 12, LinkContestRoom1_Movement_1A5DBB
@@ -432,15 +430,15 @@ LinkContestRoom1_EventScript_1A53E5:: @ 81A53E5
LinkContestRoom1_EventScript_1A5455:: @ 81A5455
special sub_80C47A0
compare VAR_CONTEST_LOCATION, 1
- call_if 1, LinkContestRoom1_EventScript_1A555A
+ call_if_eq LinkContestRoom1_EventScript_1A555A
compare VAR_CONTEST_LOCATION, 2
- call_if 1, LinkContestRoom1_EventScript_1A55B8
+ call_if_eq LinkContestRoom1_EventScript_1A55B8
compare VAR_CONTEST_LOCATION, 3
- call_if 1, LinkContestRoom1_EventScript_1A5616
+ call_if_eq LinkContestRoom1_EventScript_1A5616
compare VAR_CONTEST_LOCATION, 4
- call_if 1, LinkContestRoom1_EventScript_1A5674
+ call_if_eq LinkContestRoom1_EventScript_1A5674
compare VAR_CONTEST_LOCATION, 5
- call_if 1, LinkContestRoom1_EventScript_1A56D2
+ call_if_eq LinkContestRoom1_EventScript_1A56D2
setvar VAR_TEMP_1, 9
setvar VAR_TEMP_2, 9
setvar VAR_TEMP_3, 9
@@ -450,7 +448,7 @@ LinkContestRoom1_EventScript_1A5455:: @ 81A5455
setvar VAR_TEMP_7, 9
setvar VAR_TEMP_8, 9
compare VAR_TEMP_0, 0
- call_if 2, LinkContestRoom1_EventScript_1A54EB
+ call_if_gt LinkContestRoom1_EventScript_1A54EB
setvar VAR_TEMP_1, 0
setvar VAR_TEMP_2, 0
setvar VAR_TEMP_3, 0
@@ -465,123 +463,123 @@ LinkContestRoom1_EventScript_1A54EB:: @ 81A54EB
setvar RESULT, 8
special ScriptRandom
compare RESULT, 0
- call_if 1, LinkContestRoom1_EventScript_1A5760
+ call_if_eq LinkContestRoom1_EventScript_1A5760
compare RESULT, 1
- call_if 1, LinkContestRoom1_EventScript_1A5784
+ call_if_eq LinkContestRoom1_EventScript_1A5784
compare RESULT, 2
- call_if 1, LinkContestRoom1_EventScript_1A57A8
+ call_if_eq LinkContestRoom1_EventScript_1A57A8
compare RESULT, 3
- call_if 1, LinkContestRoom1_EventScript_1A57CC
+ call_if_eq LinkContestRoom1_EventScript_1A57CC
compare RESULT, 4
- call_if 1, LinkContestRoom1_EventScript_1A57F0
+ call_if_eq LinkContestRoom1_EventScript_1A57F0
compare RESULT, 5
- call_if 1, LinkContestRoom1_EventScript_1A5814
+ call_if_eq LinkContestRoom1_EventScript_1A5814
compare RESULT, 6
- call_if 1, LinkContestRoom1_EventScript_1A5838
+ call_if_eq LinkContestRoom1_EventScript_1A5838
compare RESULT, 7
- call_if 1, LinkContestRoom1_EventScript_1A585C
+ call_if_eq LinkContestRoom1_EventScript_1A585C
compare VAR_TEMP_0, 0
- goto_if 2, LinkContestRoom1_EventScript_1A54EB
+ goto_if_gt LinkContestRoom1_EventScript_1A54EB
waitmovement 0
return
LinkContestRoom1_EventScript_1A555A:: @ 81A555A
compare VAR_SPECIAL_4, 80
- goto_if 2, LinkContestRoom1_EventScript_1A575A
+ goto_if_gt LinkContestRoom1_EventScript_1A575A
compare VAR_SPECIAL_4, 70
- goto_if 2, LinkContestRoom1_EventScript_1A5754
+ goto_if_gt LinkContestRoom1_EventScript_1A5754
compare VAR_SPECIAL_4, 60
- goto_if 2, LinkContestRoom1_EventScript_1A574E
+ goto_if_gt LinkContestRoom1_EventScript_1A574E
compare VAR_SPECIAL_4, 50
- goto_if 2, LinkContestRoom1_EventScript_1A5748
+ goto_if_gt LinkContestRoom1_EventScript_1A5748
compare VAR_SPECIAL_4, 40
- goto_if 2, LinkContestRoom1_EventScript_1A5742
+ goto_if_gt LinkContestRoom1_EventScript_1A5742
compare VAR_SPECIAL_4, 30
- goto_if 2, LinkContestRoom1_EventScript_1A573C
+ goto_if_gt LinkContestRoom1_EventScript_1A573C
compare VAR_SPECIAL_4, 20
- goto_if 2, LinkContestRoom1_EventScript_1A5736
+ goto_if_gt LinkContestRoom1_EventScript_1A5736
compare VAR_SPECIAL_4, 10
- goto_if 2, LinkContestRoom1_EventScript_1A5730
+ goto_if_gt LinkContestRoom1_EventScript_1A5730
setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_1A55B8:: @ 81A55B8
compare VAR_SPECIAL_4, 230
- goto_if 2, LinkContestRoom1_EventScript_1A575A
+ goto_if_gt LinkContestRoom1_EventScript_1A575A
compare VAR_SPECIAL_4, 210
- goto_if 2, LinkContestRoom1_EventScript_1A5754
+ goto_if_gt LinkContestRoom1_EventScript_1A5754
compare VAR_SPECIAL_4, 190
- goto_if 2, LinkContestRoom1_EventScript_1A574E
+ goto_if_gt LinkContestRoom1_EventScript_1A574E
compare VAR_SPECIAL_4, 170
- goto_if 2, LinkContestRoom1_EventScript_1A5748
+ goto_if_gt LinkContestRoom1_EventScript_1A5748
compare VAR_SPECIAL_4, 150
- goto_if 2, LinkContestRoom1_EventScript_1A5742
+ goto_if_gt LinkContestRoom1_EventScript_1A5742
compare VAR_SPECIAL_4, 130
- goto_if 2, LinkContestRoom1_EventScript_1A573C
+ goto_if_gt LinkContestRoom1_EventScript_1A573C
compare VAR_SPECIAL_4, 110
- goto_if 2, LinkContestRoom1_EventScript_1A5736
+ goto_if_gt LinkContestRoom1_EventScript_1A5736
compare VAR_SPECIAL_4, 90
- goto_if 2, LinkContestRoom1_EventScript_1A5730
+ goto_if_gt LinkContestRoom1_EventScript_1A5730
setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_1A5616:: @ 81A5616
compare VAR_SPECIAL_4, 380
- goto_if 2, LinkContestRoom1_EventScript_1A575A
+ goto_if_gt LinkContestRoom1_EventScript_1A575A
compare VAR_SPECIAL_4, 350
- goto_if 2, LinkContestRoom1_EventScript_1A5754
+ goto_if_gt LinkContestRoom1_EventScript_1A5754
compare VAR_SPECIAL_4, 320
- goto_if 2, LinkContestRoom1_EventScript_1A574E
+ goto_if_gt LinkContestRoom1_EventScript_1A574E
compare VAR_SPECIAL_4, 290
- goto_if 2, LinkContestRoom1_EventScript_1A5748
+ goto_if_gt LinkContestRoom1_EventScript_1A5748
compare VAR_SPECIAL_4, 260
- goto_if 2, LinkContestRoom1_EventScript_1A5742
+ goto_if_gt LinkContestRoom1_EventScript_1A5742
compare VAR_SPECIAL_4, 230
- goto_if 2, LinkContestRoom1_EventScript_1A573C
+ goto_if_gt LinkContestRoom1_EventScript_1A573C
compare VAR_SPECIAL_4, 200
- goto_if 2, LinkContestRoom1_EventScript_1A5736
+ goto_if_gt LinkContestRoom1_EventScript_1A5736
compare VAR_SPECIAL_4, 170
- goto_if 2, LinkContestRoom1_EventScript_1A5730
+ goto_if_gt LinkContestRoom1_EventScript_1A5730
setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_1A5674:: @ 81A5674
compare VAR_SPECIAL_4, 600
- goto_if 2, LinkContestRoom1_EventScript_1A575A
+ goto_if_gt LinkContestRoom1_EventScript_1A575A
compare VAR_SPECIAL_4, 560
- goto_if 2, LinkContestRoom1_EventScript_1A5754
+ goto_if_gt LinkContestRoom1_EventScript_1A5754
compare VAR_SPECIAL_4, 520
- goto_if 2, LinkContestRoom1_EventScript_1A574E
+ goto_if_gt LinkContestRoom1_EventScript_1A574E
compare VAR_SPECIAL_4, 480
- goto_if 2, LinkContestRoom1_EventScript_1A5748
+ goto_if_gt LinkContestRoom1_EventScript_1A5748
compare VAR_SPECIAL_4, 440
- goto_if 2, LinkContestRoom1_EventScript_1A5742
+ goto_if_gt LinkContestRoom1_EventScript_1A5742
compare VAR_SPECIAL_4, 400
- goto_if 2, LinkContestRoom1_EventScript_1A573C
+ goto_if_gt LinkContestRoom1_EventScript_1A573C
compare VAR_SPECIAL_4, 360
- goto_if 2, LinkContestRoom1_EventScript_1A5736
+ goto_if_gt LinkContestRoom1_EventScript_1A5736
compare VAR_SPECIAL_4, 320
- goto_if 2, LinkContestRoom1_EventScript_1A5730
+ goto_if_gt LinkContestRoom1_EventScript_1A5730
setvar VAR_TEMP_0, 0
return
LinkContestRoom1_EventScript_1A56D2:: @ 81A56D2
compare VAR_SPECIAL_4, 600
- goto_if 2, LinkContestRoom1_EventScript_1A575A
+ goto_if_gt LinkContestRoom1_EventScript_1A575A
compare VAR_SPECIAL_4, 550
- goto_if 2, LinkContestRoom1_EventScript_1A5754
+ goto_if_gt LinkContestRoom1_EventScript_1A5754
compare VAR_SPECIAL_4, 500
- goto_if 2, LinkContestRoom1_EventScript_1A574E
+ goto_if_gt LinkContestRoom1_EventScript_1A574E
compare VAR_SPECIAL_4, 450
- goto_if 2, LinkContestRoom1_EventScript_1A5748
+ goto_if_gt LinkContestRoom1_EventScript_1A5748
compare VAR_SPECIAL_4, 400
- goto_if 2, LinkContestRoom1_EventScript_1A5742
+ goto_if_gt LinkContestRoom1_EventScript_1A5742
compare VAR_SPECIAL_4, 300
- goto_if 2, LinkContestRoom1_EventScript_1A573C
+ goto_if_gt LinkContestRoom1_EventScript_1A573C
compare VAR_SPECIAL_4, 200
- goto_if 2, LinkContestRoom1_EventScript_1A5736
+ goto_if_gt LinkContestRoom1_EventScript_1A5736
compare VAR_SPECIAL_4, 100
- goto_if 2, LinkContestRoom1_EventScript_1A5730
+ goto_if_gt LinkContestRoom1_EventScript_1A5730
setvar VAR_TEMP_0, 0
return
@@ -621,7 +619,7 @@ LinkContestRoom1_EventScript_1A5760:: @ 81A5760
compare VAR_TEMP_1, 1
goto_if_eq LinkContestRoom1_EventScript_1A5783
applymovement 6, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_1, 1
addvar VAR_TEMP_0, -1
@@ -634,7 +632,7 @@ LinkContestRoom1_EventScript_1A5784:: @ 81A5784
compare VAR_TEMP_2, 1
goto_if_eq LinkContestRoom1_EventScript_1A57A7
applymovement 12, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_2, 1
addvar VAR_TEMP_0, -1
@@ -647,7 +645,7 @@ LinkContestRoom1_EventScript_1A57A8:: @ 81A57A8
compare VAR_TEMP_3, 1
goto_if_eq LinkContestRoom1_EventScript_1A57CB
applymovement 7, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_3, 1
addvar VAR_TEMP_0, -1
@@ -660,7 +658,7 @@ LinkContestRoom1_EventScript_1A57CC:: @ 81A57CC
compare VAR_TEMP_4, 1
goto_if_eq LinkContestRoom1_EventScript_1A57EF
applymovement 8, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_4, 1
addvar VAR_TEMP_0, -1
@@ -673,7 +671,7 @@ LinkContestRoom1_EventScript_1A57F0:: @ 81A57F0
compare VAR_TEMP_5, 1
goto_if_eq LinkContestRoom1_EventScript_1A5813
applymovement 9, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_5, 1
addvar VAR_TEMP_0, -1
@@ -686,7 +684,7 @@ LinkContestRoom1_EventScript_1A5814:: @ 81A5814
compare VAR_TEMP_6, 1
goto_if_eq LinkContestRoom1_EventScript_1A5837
applymovement 10, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_6, 1
addvar VAR_TEMP_0, -1
@@ -699,7 +697,7 @@ LinkContestRoom1_EventScript_1A5838:: @ 81A5838
compare VAR_TEMP_7, 1
goto_if_eq LinkContestRoom1_EventScript_1A585B
applymovement 11, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_7, 1
addvar VAR_TEMP_0, -1
@@ -712,7 +710,7 @@ LinkContestRoom1_EventScript_1A585C:: @ 81A585C
compare VAR_TEMP_8, 1
goto_if_eq LinkContestRoom1_EventScript_1A587F
applymovement 15, LinkContestRoom1_Movement_1A5D8D
- playse 21
+ playse SE_PIN
delay 14
setvar VAR_TEMP_8, 1
addvar VAR_TEMP_0, -1
@@ -805,7 +803,7 @@ LinkContestRoom1_EventScript_1A594A:: @ 81A594A
setvar VAR_TEMP_9, 1
showcontestresults
setvar VAR_TEMP_9, 0
- playbgm 439, 0
+ playbgm BGM_CON_FAN, FALSE
return
LinkContestRoom1_EventScript_1A5984:: @ 81A5984
@@ -890,7 +888,7 @@ LinkContestRoom1_EventScript_1A5A49:: @ 81A5A49
call LinkContestRoom1_EventScript_1A5A75
applymovement VAR_TEMP_3, LinkContestRoom1_Movement_1A5D99
waitmovement 0
- playse 223
+ playse SE_W227B
setvar VAR_TEMP_1, 0
return
@@ -909,7 +907,7 @@ LinkContestRoom1_EventScript_1A5A90:: @ 81A5A90
addvar VAR_TEMP_1, 1
lockall
compare VAR_CONTEST_LOCATION, 1
- call_if 2, LinkContestRoom1_EventScript_1A5AE4
+ call_if_gt LinkContestRoom1_EventScript_1A5AE4
applymovement 9, LinkContestRoom1_Movement_1A5DB7
applymovement 12, LinkContestRoom1_Movement_1A5DBB
applymovement 7, LinkContestRoom1_Movement_1A5DB7
@@ -919,7 +917,7 @@ LinkContestRoom1_EventScript_1A5A90:: @ 81A5A90
applymovement 6, LinkContestRoom1_Movement_1A5DB3
applymovement 8, LinkContestRoom1_Movement_1A5DAF
compare VAR_TEMP_1, 4
- goto_if 5, LinkContestRoom1_EventScript_1A5A90
+ goto_if_ne LinkContestRoom1_EventScript_1A5A90
delay 30
return
@@ -996,13 +994,12 @@ LinkContestRoom1_EventScript_1A5BAB:: @ 81A5BAB
compare VAR_CONTEST_LOCATION, 5
goto_if_eq LinkContestRoom1_EventScript_1A5C4C
call LinkContestRoom1_EventScript_1A5C12
- checkflag FLAG_TEMP_2
- goto_if_eq LinkContestRoom1_EventScript_1A5BF6
+ goto_if_set FLAG_TEMP_2, LinkContestRoom1_EventScript_1A5BF6
msgbox LinkContestRoom1_Text_1A6DC5, 3
waitmessage
call LinkContestRoom1_EventScript_1A5C7F
call LinkContestRoom1_EventScript_1A5CE5
- playse 223
+ playse SE_W227B
setvar VAR_TEMP_1, 0
call LinkContestRoom1_EventScript_1A5A90
delay 30
@@ -1118,7 +1115,7 @@ LinkContestRoom1_EventScript_1A5CE5:: @ 81A5CE5
LinkContestRoom1_EventScript_1A5CFC:: @ 81A5CFC
compare VAR_CONTEST_LOCATION, 2
- call_if 1, LinkContestRoom1_EventScript_1A5C42
+ call_if_eq LinkContestRoom1_EventScript_1A5C42
incrementgamestat GAME_STAT_WON_CONTEST
specialvar RESULT, sub_80C4440
compare RESULT, 0
@@ -1146,7 +1143,7 @@ LinkContestRoom1_EventScript_1A5D5B:: @ 81A5D5B
setflag FLAG_SYS_RIBBON_GET
lockall
msgbox LinkContestRoom1_Text_1A6D6A, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
msgbox LinkContestRoom1_Text_1A6D96, 4
waitfanfare
special sub_80C4858
diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc
index 8c2325e04..fc5df6abe 100644
--- a/data/scripts/day_care.inc
+++ b/data/scripts/day_care.inc
@@ -14,11 +14,11 @@ Route117_EventScript_1B222D:: @ 81B222D
end
Route117_EventScript_1B2262:: @ 81B2262
- msgbox Route117_Text_1B2659, 5
- compare RESULT, 1
+ msgbox Route117_Text_1B2659, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_EventScript_1B2298
- msgbox Route117_Text_1B28C4, 5
- compare RESULT, 1
+ msgbox Route117_Text_1B28C4, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_EventScript_1B2298
msgbox Route117_Text_1B2745, 4
clearflag FLAG_PENDING_DAYCARE_EGG
@@ -29,14 +29,14 @@ Route117_EventScript_1B2262:: @ 81B2262
Route117_EventScript_1B2298:: @ 81B2298
specialvar RESULT, CalculatePlayerPartyCount
compare RESULT, 6
- goto_if 5, Route117_EventScript_1B22B2
+ goto_if_ne Route117_EventScript_1B22B2
msgbox Route117_Text_1B2766, 4
release
end
Route117_EventScript_1B22B2:: @ 81B22B2
message Route117_Text_1B27A2
- playfanfare 367
+ playfanfare BGM_FANFA1
waitfanfare
waitmessage
waitbuttonpress
@@ -49,7 +49,7 @@ Route117_EventScript_1B22B2:: @ 81B22B2
Route117_EventScript_1B22CD:: @ 81B22CD
specialvar RESULT, sub_8042B4C
compare RESULT, 1
- call_if 1, Route117_EventScript_1B22DE
+ call_if_eq Route117_EventScript_1B22DE
return
Route117_EventScript_1B22DE:: @ 81B22DE
@@ -88,8 +88,8 @@ Route117_PokemonDayCare_EventScript_1B2327:: @ 81B2327
goto_if_eq Route117_PokemonDayCare_EventScript_1B242B
compare RESULT, 3
goto_if_eq Route117_PokemonDayCare_EventScript_1B2558
- msgbox Route117_PokemonDayCare_Text_1B28F2, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B28F2, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B236C
msgbox Route117_PokemonDayCare_Text_1B2A14, 4
release
@@ -127,8 +127,8 @@ Route117_PokemonDayCare_EventScript_1B23D0:: @ 81B23D0
end
Route117_PokemonDayCare_EventScript_1B23DA:: @ 81B23DA
- msgbox Route117_PokemonDayCare_Text_1B29AD, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B29AD, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B236C
goto Route117_PokemonDayCare_EventScript_1B23D0
end
@@ -155,18 +155,18 @@ Route117_PokemonDayCare_EventScript_1B2411:: @ 81B2411
Route117_PokemonDayCare_EventScript_1B241A:: @ 81B241A
specialvar RESULT, GetNumLevelsGainedFromDaycare
compare RESULT, 0
- call_if 5, Route117_PokemonDayCare_EventScript_1B2411
+ call_if_ne Route117_PokemonDayCare_EventScript_1B2411
return
Route117_PokemonDayCare_EventScript_1B242B:: @ 81B242B
msgbox Route117_PokemonDayCare_Text_1B2A88, 4
setvar VAR_SPECIAL_4, 0
call Route117_PokemonDayCare_EventScript_1B241A
- msgbox Route117_PokemonDayCare_Text_1B29AD, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B29AD, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B236C
- msgbox Route117_PokemonDayCare_Text_1B2BF6, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B2BF6, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B2469
goto Route117_PokemonDayCare_EventScript_1B23D0
end
@@ -189,8 +189,8 @@ Route117_PokemonDayCare_EventScript_1B2469:: @ 81B2469
Route117_PokemonDayCare_EventScript_1B24A8:: @ 81B24A8
special GetDaycareCost
- msgbox Route117_PokemonDayCare_Text_1B2B49, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B2B49, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B24C4
goto Route117_PokemonDayCare_EventScript_1B23D0
end
@@ -208,7 +208,7 @@ Route117_PokemonDayCare_EventScript_1B24DE:: @ 81B24DE
waitmovement 0
specialvar RESULT, TakePokemonFromDaycare
special PayMoneyFor
- playse 95
+ playse SE_REGI
msgbox Route117_PokemonDayCare_Text_1B2B75, 4
waitse
playmoncry RESULT, 0
@@ -221,8 +221,8 @@ Route117_PokemonDayCare_EventScript_1B24DE:: @ 81B24DE
end
Route117_PokemonDayCare_EventScript_1B2520:: @ 81B2520
- msgbox Route117_PokemonDayCare_Text_1B2A4F, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B2A4F, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B2469
goto Route117_PokemonDayCare_EventScript_1B23D0
end
@@ -263,8 +263,8 @@ Route117_PokemonDayCare_EventScript_1B2558:: @ 81B2558
call Route117_PokemonDayCare_EventScript_1B241A
setvar VAR_SPECIAL_4, 1
call Route117_PokemonDayCare_EventScript_1B241A
- msgbox Route117_PokemonDayCare_Text_1B2BF6, 5
- compare RESULT, 1
+ msgbox Route117_PokemonDayCare_Text_1B2BF6, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route117_PokemonDayCare_EventScript_1B2469
msgbox Route117_PokemonDayCare_Text_1B2A76, 4
release
diff --git a/data/scripts/debug.inc b/data/scripts/debug.inc
new file mode 100644
index 000000000..bc7805f72
--- /dev/null
+++ b/data/scripts/debug.inc
@@ -0,0 +1,536 @@
+.if DEBUG
+
+DebugScript_081C1CFE:: @ 81C1CFE
+ setflag 0x804
+ call EverGrandeCity_HallOfFame_EventScript_19FC13
+ end
+
+DebugScript_081C1D07:: @ 81C1D07
+ checkitem ITEM_COIN_CASE, 1
+ compare 0x800d, 1
+ goto_if_eq DebugScript_081C1D1D
+ giveitem ITEM_COIN_CASE, 1
+ end
+
+DebugScript_081C1D1D:: @ 81C1D1D
+ end
+
+DebugScript_081C1D1E:: @ 81C1D1E
+ goto Route103_EventScript_14ED46
+
+DebugScript_081C1D23:: @ 81C1D23
+ end
+
+DebugScript_081C1D24:: @ 81C1D24
+ setvar 0x40ba, 1
+ end
+
+DebugScript_081C1D2A:: @ 81C1D2A
+ giveitem ITEM_SS_TICKET, 1
+ goto DebugScript_081C1CFE
+
+DebugScript_081C1D34:: @ 81C1D34
+ end
+
+DebugScript_081C1D35:: @ 81C1D35
+ getpartysize
+ compare 0x800d, 6
+ goto_if_eq DebugScript_081C1D45
+ giveegg SPECIES_KYOGRE
+ end
+
+DebugScript_081C1D45:: @ 81C1D45
+ end
+
+DebugScript_081C1D46:: @ 81C1D46
+ giveitem ITEM_POTION, 99
+ giveitem ITEM_ANTIDOTE, 99
+ giveitem ITEM_BURN_HEAL, 99
+ giveitem ITEM_ICE_HEAL, 99
+ giveitem ITEM_AWAKENING, 99
+ giveitem ITEM_PARALYZE_HEAL, 99
+ giveitem ITEM_FULL_RESTORE, 99
+ giveitem ITEM_MAX_POTION, 99
+ giveitem ITEM_HYPER_POTION, 99
+ giveitem ITEM_SUPER_POTION, 99
+ giveitem ITEM_FULL_HEAL, 99
+ giveitem ITEM_REVIVE, 99
+ giveitem ITEM_MAX_REVIVE, 99
+ giveitem ITEM_FRESH_WATER, 99
+ giveitem ITEM_SODA_POP, 99
+ giveitem ITEM_LEMONADE, 99
+ giveitem ITEM_MOOMOO_MILK, 99
+ giveitem ITEM_ENERGY_POWDER, 99
+ giveitem ITEM_ENERGY_ROOT, 99
+ giveitem ITEM_HEAL_POWDER, 99
+ giveitem ITEM_ORANGE_MAIL, 92
+ giveitem ITEM_RETRO_MAIL, 94
+ giveitem ITEM_POTION, 89
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_ULTRA_BALL, 99
+ giveitem ITEM_GREAT_BALL, 99
+ giveitem ITEM_POKE_BALL, 99
+ giveitem ITEM_NET_BALL, 99
+ giveitem ITEM_DIVE_BALL, 99
+ giveitem ITEM_NEST_BALL, 99
+ giveitem ITEM_REPEAT_BALL, 99
+ giveitem ITEM_TIMER_BALL, 99
+ giveitem ITEM_LUXURY_BALL, 99
+ giveitem ITEM_PREMIER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_MASTER_BALL, 99
+ giveitem ITEM_GREAT_BALL, 79
+ giveitem ITEM_ULTRA_BALL, 84
+ giveitem ITEM_POKE_BALL, 89
+ giveitem ITEM_MASTER_BALL, 74
+ giveitem ITEM_TM01_FOCUS_PUNCH, 99
+ giveitem ITEM_TM02_DRAGON_CLAW, 99
+ giveitem ITEM_TM03_WATER_PULSE, 99
+ giveitem ITEM_TM04_CALM_MIND, 99
+ giveitem ITEM_TM05_ROAR, 99
+ giveitem ITEM_TM06_TOXIC, 99
+ giveitem ITEM_TM07_HAIL, 99
+ giveitem ITEM_TM08_BULK_UP, 99
+ giveitem ITEM_TM09_BULLET_SEED, 99
+ giveitem ITEM_TM10_HIDDEN_POWER, 99
+ giveitem ITEM_TM11_SUNNY_DAY, 99
+ giveitem ITEM_TM12_TAUNT, 99
+ giveitem ITEM_TM13_ICE_BEAM, 99
+ giveitem ITEM_TM14_BLIZZARD, 99
+ giveitem ITEM_TM15_HYPER_BEAM, 99
+ giveitem ITEM_TM16_LIGHT_SCREEN, 99
+ giveitem ITEM_TM17_PROTECT, 99
+ giveitem ITEM_TM18_RAIN_DANCE, 99
+ giveitem ITEM_TM19_GIGA_DRAIN, 99
+ giveitem ITEM_TM20_SAFEGUARD, 99
+ giveitem ITEM_TM21_FRUSTRATION, 99
+ giveitem ITEM_TM22_SOLARBEAM, 99
+ giveitem ITEM_TM23_IRON_TAIL, 99
+ giveitem ITEM_TM24_THUNDERBOLT, 99
+ giveitem ITEM_TM25_THUNDER, 99
+ giveitem ITEM_TM26_EARTHQUAKE, 99
+ giveitem ITEM_TM27_RETURN, 99
+ giveitem ITEM_TM28_DIG, 99
+ giveitem ITEM_TM29_PSYCHIC, 99
+ giveitem ITEM_TM30_SHADOW_BALL, 99
+ giveitem ITEM_TM31_BRICK_BREAK, 99
+ giveitem ITEM_TM32_DOUBLE_TEAM, 99
+ giveitem ITEM_TM33_REFLECT, 99
+ giveitem ITEM_TM34_SHOCK_WAVE, 99
+ giveitem ITEM_TM35_FLAMETHROWER, 99
+ giveitem ITEM_TM36_SLUDGE_BOMB, 99
+ giveitem ITEM_TM37_SANDSTORM, 99
+ giveitem ITEM_TM38_FIRE_BLAST, 99
+ giveitem ITEM_TM39_ROCK_TOMB, 99
+ giveitem ITEM_TM40_AERIAL_ACE, 99
+ giveitem ITEM_TM41_TORMENT, 99
+ giveitem ITEM_TM42_FACADE, 99
+ giveitem ITEM_TM43_SECRET_POWER, 99
+ giveitem ITEM_TM44_REST, 99
+ giveitem ITEM_TM45_ATTRACT, 99
+ giveitem ITEM_TM46_THIEF, 99
+ giveitem ITEM_TM47_STEEL_WING, 99
+ giveitem ITEM_TM48_SKILL_SWAP, 99
+ giveitem ITEM_TM49_SNATCH, 99
+ giveitem ITEM_TM50_OVERHEAT, 99
+ giveitem ITEM_CHERI_BERRY, 200
+ giveitem ITEM_CHERI_BERRY, 200
+ giveitem ITEM_CHERI_BERRY, 200
+ giveitem ITEM_CHERI_BERRY, 200
+ giveitem ITEM_CHERI_BERRY, 199
+ giveitem ITEM_CHESTO_BERRY, 200
+ giveitem ITEM_CHESTO_BERRY, 200
+ giveitem ITEM_CHESTO_BERRY, 200
+ giveitem ITEM_CHESTO_BERRY, 200
+ giveitem ITEM_CHESTO_BERRY, 199
+ giveitem ITEM_PECHA_BERRY, 200
+ giveitem ITEM_PECHA_BERRY, 200
+ giveitem ITEM_PECHA_BERRY, 200
+ giveitem ITEM_PECHA_BERRY, 200
+ giveitem ITEM_PECHA_BERRY, 199
+ giveitem ITEM_RAWST_BERRY, 200
+ giveitem ITEM_RAWST_BERRY, 200
+ giveitem ITEM_RAWST_BERRY, 200
+ giveitem ITEM_RAWST_BERRY, 200
+ giveitem ITEM_RAWST_BERRY, 199
+ giveitem ITEM_ASPEAR_BERRY, 200
+ giveitem ITEM_ASPEAR_BERRY, 200
+ giveitem ITEM_ASPEAR_BERRY, 200
+ giveitem ITEM_ASPEAR_BERRY, 200
+ giveitem ITEM_ASPEAR_BERRY, 199
+ giveitem ITEM_LEPPA_BERRY, 200
+ giveitem ITEM_LEPPA_BERRY, 200
+ giveitem ITEM_LEPPA_BERRY, 200
+ giveitem ITEM_LEPPA_BERRY, 200
+ giveitem ITEM_LEPPA_BERRY, 199
+ giveitem ITEM_ORAN_BERRY, 200
+ giveitem ITEM_ORAN_BERRY, 200
+ giveitem ITEM_ORAN_BERRY, 200
+ giveitem ITEM_ORAN_BERRY, 200
+ giveitem ITEM_ORAN_BERRY, 199
+ giveitem ITEM_PERSIM_BERRY, 200
+ giveitem ITEM_PERSIM_BERRY, 200
+ giveitem ITEM_PERSIM_BERRY, 200
+ giveitem ITEM_PERSIM_BERRY, 200
+ giveitem ITEM_PERSIM_BERRY, 199
+ giveitem ITEM_LUM_BERRY, 200
+ giveitem ITEM_LUM_BERRY, 200
+ giveitem ITEM_LUM_BERRY, 200
+ giveitem ITEM_LUM_BERRY, 200
+ giveitem ITEM_LUM_BERRY, 199
+ giveitem ITEM_SITRUS_BERRY, 200
+ giveitem ITEM_SITRUS_BERRY, 200
+ giveitem ITEM_SITRUS_BERRY, 200
+ giveitem ITEM_SITRUS_BERRY, 200
+ giveitem ITEM_SITRUS_BERRY, 199
+ giveitem ITEM_FIGY_BERRY, 200
+ giveitem ITEM_FIGY_BERRY, 200
+ giveitem ITEM_FIGY_BERRY, 200
+ giveitem ITEM_FIGY_BERRY, 200
+ giveitem ITEM_FIGY_BERRY, 199
+ giveitem ITEM_WIKI_BERRY, 200
+ giveitem ITEM_WIKI_BERRY, 200
+ giveitem ITEM_WIKI_BERRY, 200
+ giveitem ITEM_WIKI_BERRY, 200
+ giveitem ITEM_WIKI_BERRY, 199
+ giveitem ITEM_MAGO_BERRY, 200
+ giveitem ITEM_MAGO_BERRY, 200
+ giveitem ITEM_MAGO_BERRY, 200
+ giveitem ITEM_MAGO_BERRY, 200
+ giveitem ITEM_MAGO_BERRY, 199
+ giveitem ITEM_AGUAV_BERRY, 200
+ giveitem ITEM_AGUAV_BERRY, 200
+ giveitem ITEM_AGUAV_BERRY, 200
+ giveitem ITEM_AGUAV_BERRY, 200
+ giveitem ITEM_AGUAV_BERRY, 199
+ giveitem ITEM_IAPAPA_BERRY, 200
+ giveitem ITEM_IAPAPA_BERRY, 200
+ giveitem ITEM_IAPAPA_BERRY, 200
+ giveitem ITEM_IAPAPA_BERRY, 200
+ giveitem ITEM_IAPAPA_BERRY, 199
+ giveitem ITEM_RAZZ_BERRY, 200
+ giveitem ITEM_RAZZ_BERRY, 200
+ giveitem ITEM_RAZZ_BERRY, 200
+ giveitem ITEM_RAZZ_BERRY, 200
+ giveitem ITEM_RAZZ_BERRY, 199
+ giveitem ITEM_BLUK_BERRY, 200
+ giveitem ITEM_BLUK_BERRY, 200
+ giveitem ITEM_BLUK_BERRY, 200
+ giveitem ITEM_BLUK_BERRY, 200
+ giveitem ITEM_BLUK_BERRY, 199
+ giveitem ITEM_NANAB_BERRY, 200
+ giveitem ITEM_NANAB_BERRY, 200
+ giveitem ITEM_NANAB_BERRY, 200
+ giveitem ITEM_NANAB_BERRY, 200
+ giveitem ITEM_NANAB_BERRY, 199
+ giveitem ITEM_WEPEAR_BERRY, 200
+ giveitem ITEM_WEPEAR_BERRY, 200
+ giveitem ITEM_WEPEAR_BERRY, 200
+ giveitem ITEM_WEPEAR_BERRY, 200
+ giveitem ITEM_WEPEAR_BERRY, 199
+ giveitem ITEM_PINAP_BERRY, 200
+ giveitem ITEM_PINAP_BERRY, 200
+ giveitem ITEM_PINAP_BERRY, 200
+ giveitem ITEM_PINAP_BERRY, 200
+ giveitem ITEM_PINAP_BERRY, 199
+ giveitem ITEM_POMEG_BERRY, 200
+ giveitem ITEM_POMEG_BERRY, 200
+ giveitem ITEM_POMEG_BERRY, 200
+ giveitem ITEM_POMEG_BERRY, 200
+ giveitem ITEM_POMEG_BERRY, 199
+ giveitem ITEM_KELPSY_BERRY, 200
+ giveitem ITEM_KELPSY_BERRY, 200
+ giveitem ITEM_KELPSY_BERRY, 200
+ giveitem ITEM_KELPSY_BERRY, 200
+ giveitem ITEM_KELPSY_BERRY, 199
+ giveitem ITEM_QUALOT_BERRY, 200
+ giveitem ITEM_QUALOT_BERRY, 200
+ giveitem ITEM_QUALOT_BERRY, 200
+ giveitem ITEM_QUALOT_BERRY, 200
+ giveitem ITEM_QUALOT_BERRY, 199
+ giveitem ITEM_HONDEW_BERRY, 200
+ giveitem ITEM_HONDEW_BERRY, 200
+ giveitem ITEM_HONDEW_BERRY, 200
+ giveitem ITEM_HONDEW_BERRY, 200
+ giveitem ITEM_HONDEW_BERRY, 199
+ giveitem ITEM_GREPA_BERRY, 200
+ giveitem ITEM_GREPA_BERRY, 200
+ giveitem ITEM_GREPA_BERRY, 200
+ giveitem ITEM_GREPA_BERRY, 200
+ giveitem ITEM_GREPA_BERRY, 199
+ giveitem ITEM_TAMATO_BERRY, 200
+ giveitem ITEM_TAMATO_BERRY, 200
+ giveitem ITEM_TAMATO_BERRY, 200
+ giveitem ITEM_TAMATO_BERRY, 200
+ giveitem ITEM_TAMATO_BERRY, 199
+ giveitem ITEM_CORNN_BERRY, 200
+ giveitem ITEM_CORNN_BERRY, 200
+ giveitem ITEM_CORNN_BERRY, 200
+ giveitem ITEM_CORNN_BERRY, 200
+ giveitem ITEM_CORNN_BERRY, 199
+ giveitem ITEM_MAGOST_BERRY, 999
+ giveitem ITEM_RABUTA_BERRY, 999
+ giveitem ITEM_NOMEL_BERRY, 999
+ giveitem ITEM_SPELON_BERRY, 999
+ giveitem ITEM_PAMTRE_BERRY, 999
+ giveitem ITEM_WATMEL_BERRY, 999
+ giveitem ITEM_DURIN_BERRY, 999
+ giveitem ITEM_BELUE_BERRY, 999
+ giveitem ITEM_LIECHI_BERRY, 999
+ giveitem ITEM_GANLON_BERRY, 999
+ giveitem ITEM_SALAC_BERRY, 999
+ giveitem ITEM_PETAYA_BERRY, 999
+ giveitem ITEM_APICOT_BERRY, 999
+ giveitem ITEM_LANSAT_BERRY, 999
+ giveitem ITEM_STARF_BERRY, 999
+ giveitem ITEM_ENIGMA_BERRY, 999
+ end
+
+DebugScript_081C221F:: @ 81C221F
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_DESK
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_SMALL_CHAIR
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_PLANT
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_RED_BRICK
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_JUMP_MAT
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_BALL_POSTER
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_DUSKULL_DOLL
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ givedecoration DECOR_KISS_CUSHION
+ end
+
+DebugScript_081C23E2:: @ 81C23E2
+ givecoins 9999
+ end
+
+DebugScript_081C23E6:: @ 81C23E6
+ setflag 0x081
+ setflag 0x071
+ warp MAP_SOOTOPOLIS_CITY, 0xFF, 31, 33
+ waitstate
+ end
+
+DebugScript_081C23F6:: @ 81C23F6
+ takemoney 999999, 0x00
+ end
+
+DebugScript_081C23FD:: @ 81C23FD
+ getpartysize
+ compare 0x800d, 1
+ goto_if_eq DebugScript_081C2436
+ compare 0x800d, 2
+ goto_if_eq DebugScript_081C2445
+ compare 0x800d, 3
+ goto_if_eq DebugScript_081C2454
+ compare 0x800d, 4
+ goto_if_eq DebugScript_081C2463
+ compare 0x800d, 5
+ goto_if_eq DebugScript_081C2472
+ end
+
+DebugScript_081C2436:: @ 81C2436
+ givemon SPECIES_BARBOACH, 99, 0, 0, 0, 0
+DebugScript_081C2445:
+ givemon SPECIES_BARBOACH, 99, 0, 0, 0, 0
+DebugScript_081C2454:
+ givemon SPECIES_BARBOACH, 99, 0, 0, 0, 0
+DebugScript_081C2463:
+ givemon SPECIES_BARBOACH, 99, 0, 0, 0, 0
+DebugScript_081C2472:
+ givemon SPECIES_BARBOACH, 99, 0, 0, 0, 0
+ end
+
+DebugScript_081C2482:: @ 81C2482
+ getpartysize
+ compare 0x800d, 1
+ goto_if_eq DebugScript_081C24BB
+ compare 0x800d, 2
+ goto_if_eq DebugScript_081C24CA
+ compare 0x800d, 3
+ goto_if_eq DebugScript_081C24D9
+ compare 0x800d, 4
+ goto_if_eq DebugScript_081C24E8
+ compare 0x800d, 5
+ goto_if_eq DebugScript_081C24F7
+ end
+
+DebugScript_081C24BB:: @ 81C24BB
+ givemon SPECIES_SHROOMISH, 99, 0, 0, 0, 0
+DebugScript_081C24CA:
+ givemon SPECIES_SHROOMISH, 99, 0, 0, 0, 0
+DebugScript_081C24D9:
+ givemon SPECIES_SHROOMISH, 99, 0, 0, 0, 0
+DebugScript_081C24E8:
+ givemon SPECIES_SHROOMISH, 99, 0, 0, 0, 0
+DebugScript_081C24F7:
+ givemon SPECIES_SHROOMISH, 99, 0, 0, 0, 0
+ end
+
+DebugScript_081C2507:: @ 81C2507
+ getpartysize
+ compare 0x800d, 6
+ goto_if_eq DebugScript_081C2517
+ giveegg SPECIES_BARBOACH
+ end
+
+DebugScript_081C2517:: @ 81C2517
+ end
+
+DebugScript_081C2518:: @ 81C2518
+ getpartysize
+ compare 0x800d, 6
+ goto_if_eq DebugScript_081C2528
+ giveegg SPECIES_SHROOMISH
+ end
+
+DebugScript_081C2528:: @ 81C2528
+ end
+
+.endif
diff --git a/data/scripts/gabby_and_ty.inc b/data/scripts/gabby_and_ty.inc
index e2f43b77e..5ddcf4a65 100644
--- a/data/scripts/gabby_and_ty.inc
+++ b/data/scripts/gabby_and_ty.inc
@@ -203,14 +203,13 @@ Route111_EventScript_1AE5A2:: @ 81AE5A2
special GabbyAndTyBeforeInterview
special GabbyAndTySetScriptVarsToFieldObjectLocalIds
compare FACING, 2
- call_if 1, Route111_EventScript_1AE5E0
+ call_if_eq Route111_EventScript_1AE5E0
compare FACING, 1
- call_if 1, Route111_EventScript_1AE5EB
+ call_if_eq Route111_EventScript_1AE5EB
compare FACING, 4
- call_if 1, Route111_EventScript_1AE5FD
- checkflag FLAG_TEMP_1
- goto_if_eq Route111_EventScript_1AE73A
- msgbox Route111_Text_1AC015, 5
+ call_if_eq Route111_EventScript_1AE5FD
+ goto_if_set FLAG_TEMP_1, Route111_EventScript_1AE73A
+ msgbox Route111_Text_1AC015, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
@@ -237,13 +236,12 @@ Route120_EventScript_1AE60F:: @ 81AE60F
special GabbyAndTyBeforeInterview
special GabbyAndTySetScriptVarsToFieldObjectLocalIds
compare FACING, 2
- call_if 1, Route111_EventScript_1AE5E0
+ call_if_eq Route111_EventScript_1AE5E0
compare FACING, 1
- call_if 1, Route111_EventScript_1AE5EB
+ call_if_eq Route111_EventScript_1AE5EB
compare FACING, 4
- call_if 1, Route111_EventScript_1AE5FD
- checkflag FLAG_TEMP_1
- goto_if_eq Route111_EventScript_1AE73A
+ call_if_eq Route111_EventScript_1AE5FD
+ goto_if_set FLAG_TEMP_1, Route111_EventScript_1AE73A
specialvar RESULT, GabbyAndTyGetLastQuote
compare RESULT, 0
goto_if_eq Route111_EventScript_1AE69F
@@ -270,37 +268,37 @@ Route111_Movement_1AE69D:: @ 81AE69D
step_end
Route111_EventScript_1AE69F:: @ 81AE69F
- msgbox Route111_Text_1AC60B, 5
+ msgbox Route111_Text_1AC60B, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
Route111_EventScript_1AE6AD:: @ 81AE6AD
- msgbox Route111_Text_1AC3CF, 5
+ msgbox Route111_Text_1AC3CF, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
Route111_EventScript_1AE6BB:: @ 81AE6BB
- msgbox Route111_Text_1AC18D, 5
+ msgbox Route111_Text_1AC18D, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
Route111_EventScript_1AE6C9:: @ 81AE6C9
- msgbox Route111_Text_1AC219, 5
+ msgbox Route111_Text_1AC219, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
Route111_EventScript_1AE6D7:: @ 81AE6D7
- msgbox Route111_Text_1AC2D6, 5
+ msgbox Route111_Text_1AC2D6, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
Route111_EventScript_1AE6E5:: @ 81AE6E5
- msgbox Route111_Text_1AC355, 5
+ msgbox Route111_Text_1AC355, MSGBOX_YESNO
goto Route111_EventScript_1AE6F3
end
Route111_EventScript_1AE6F3:: @ 81AE6F3
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route111_EventScript_1AE72D
msgbox Route111_Text_1AC40F, 4
setvar VAR_SPECIAL_4, 10
diff --git a/data/scripts/magma_chimney.inc b/data/scripts/magma_chimney.inc
index d104b52d4..ed81e6628 100644
--- a/data/scripts/magma_chimney.inc
+++ b/data/scripts/magma_chimney.inc
@@ -1,10 +1,8 @@
MtChimney_EventScript_1B2C95:: @ 81B2C95
lock
faceplayer
- checkflag FLAG_EVIL_LEADER_PLEASE_STOP
- call_if 0, MtChimney_EventScript_1B2CB9
- checkflag FLAG_EVIL_LEADER_PLEASE_STOP
- call_if 1, MtChimney_EventScript_1B2CC2
+ call_if_unset FLAG_EVIL_LEADER_PLEASE_STOP, MtChimney_EventScript_1B2CB9
+ call_if_set FLAG_EVIL_LEADER_PLEASE_STOP, MtChimney_EventScript_1B2CC2
closemessage
applymovement 1, MtChimney_Movement_1A083D
waitmovement 0
@@ -37,7 +35,7 @@ MtChimney_EventScript_1B2CCB:: @ 81B2CCB
.endif
applymovement 2, MtChimney_Movement_1A0839
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 2, MtChimney_Movement_1A0833
waitmovement 0
applymovement 2, MtChimney_Movement_1A0835
@@ -68,9 +66,9 @@ MtChimney_EventScript_1B2CCB:: @ 81B2CCB
setobjectxyperm 1, 10, 12
addobject 1
compare FACING, 4
- call_if 1, MtChimney_EventScript_1B2D7D
+ call_if_eq MtChimney_EventScript_1B2D7D
compare FACING, 2
- call_if 1, MtChimney_EventScript_1B2D88
+ call_if_eq MtChimney_EventScript_1B2D88
applymovement 255, MtChimney_Movement_1A083F
waitmovement 0
.ifdef SAPPHIRE
@@ -80,9 +78,9 @@ MtChimney_EventScript_1B2CCB:: @ 81B2CCB
.endif
closemessage
compare FACING, 4
- call_if 1, MtChimney_EventScript_1B2D93
+ call_if_eq MtChimney_EventScript_1B2D93
compare FACING, 2
- call_if 1, MtChimney_EventScript_1B2D9E
+ call_if_eq MtChimney_EventScript_1B2D9E
removeobject 1
setflag FLAG_HIDE_OTEHR_TEAM_MT_CHIMNEY
setflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
diff --git a/data/scripts/maps/AbandonedShip_CaptainsOffice.inc b/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
index 2430ba4af..22c76847a 100644
--- a/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
+++ b/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
@@ -4,13 +4,11 @@ AbandonedShip_CaptainsOffice_MapScripts:: @ 815EAF4
AbandonedShip_CaptainsOffice_EventScript_15EAF5:: @ 815EAF5
lock
faceplayer
- checkflag FLAG_EXCHANGED_SCANNER
- goto_if_eq AbandonedShip_CaptainsOffice_EventScript_15EB2D
+ goto_if_set FLAG_EXCHANGED_SCANNER, AbandonedShip_CaptainsOffice_EventScript_15EB2D
checkitem ITEM_SCANNER, 1
compare RESULT, 1
goto_if_eq AbandonedShip_CaptainsOffice_EventScript_15EB23
- checkflag FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2
- goto_if_eq AbandonedShip_CaptainsOffice_EventScript_15EB2D
+ goto_if_set FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS_2, AbandonedShip_CaptainsOffice_EventScript_15EB2D
msgbox AbandonedShip_CaptainsOffice_Text_198C85, 4
release
end
diff --git a/data/scripts/maps/AbandonedShip_Corridors_B1F.inc b/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
index c27951abb..c34f2c28b 100644
--- a/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
+++ b/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
@@ -8,10 +8,8 @@ AbandonedShip_Corridors_B1F_MapScript1_15E99A:: @ 815E99A
end
AbandonedShip_Corridors_B1F_MapScript1_15E9A3:: @ 815E9A3
- checkflag FLAG_USED_STORAGE_KEY
- call_if 0, AbandonedShip_Corridors_B1F_EventScript_15E9B6
- checkflag FLAG_USED_STORAGE_KEY
- call_if 1, AbandonedShip_Corridors_B1F_EventScript_15E9C0
+ call_if_unset FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_15E9B6
+ call_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_15E9C0
end
AbandonedShip_Corridors_B1F_EventScript_15E9B6:: @ 815E9B6
@@ -28,13 +26,12 @@ AbandonedShip_Corridors_B1F_EventScript_15E9CA:: @ 815E9CA
AbandonedShip_Corridors_B1F_EventScript_15E9D3:: @ 815E9D3
lockall
- checkflag FLAG_USED_STORAGE_KEY
- goto_if_eq AbandonedShip_Corridors_B1F_EventScript_15EA14
+ goto_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_15EA14
checkitem ITEM_STORAGE_KEY, 1
compare RESULT, 0
goto_if_eq AbandonedShip_Corridors_B1F_EventScript_15EA0A
msgbox AbandonedShip_Corridors_B1F_Text_198692, 4
- playse 21
+ playse SE_PIN
takeitem ITEM_STORAGE_KEY, 1
setflag FLAG_USED_STORAGE_KEY
call AbandonedShip_Corridors_B1F_EventScript_15E9C0
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
index 35e86543b..e8e48a6f6 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
@@ -8,22 +8,14 @@ AbandonedShip_HiddenFloorCorridors_MapScript1_15EB51:: @ 815EB51
end
AbandonedShip_HiddenFloorCorridors_MapScript1_15EB5A:: @ 815EB5A
- checkflag FLAG_USED_ROOM_1_KEY
- call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBCB
- checkflag FLAG_USED_ROOM_2_KEY
- call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBD5
- checkflag FLAG_USED_ROOM_4_KEY
- call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBDF
- checkflag FLAG_USED_ROOM_6_KEY
- call_if 0, AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9
- checkflag FLAG_USED_ROOM_1_KEY
- call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
- checkflag FLAG_USED_ROOM_2_KEY
- call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
- checkflag FLAG_USED_ROOM_4_KEY
- call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
- checkflag FLAG_USED_ROOM_6_KEY
- call_if 1, AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
+ call_if_unset FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBCB
+ call_if_unset FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBD5
+ call_if_unset FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBDF
+ call_if_unset FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9
+ call_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
+ call_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
+ call_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
+ call_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
end
AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3:: @ 815EBA3
@@ -60,13 +52,12 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EBE9:: @ 815EBE9
AbandonedShip_HiddenFloorCorridors_EventScript_15EBF3:: @ 815EBF3
lockall
- checkflag FLAG_USED_ROOM_1_KEY
- goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ goto_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
checkitem ITEM_ROOM_1_KEY, 1
compare RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECCF
msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
- playse 21
+ playse SE_PIN
takeitem ITEM_ROOM_1_KEY, 1
setflag FLAG_USED_ROOM_1_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBA3
@@ -76,13 +67,12 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EBF3:: @ 815EBF3
AbandonedShip_HiddenFloorCorridors_EventScript_15EC2A:: @ 815EC2A
lockall
- checkflag FLAG_USED_ROOM_2_KEY
- goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ goto_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
checkitem ITEM_ROOM_2_KEY, 1
compare RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECD9
msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
- playse 21
+ playse SE_PIN
takeitem ITEM_ROOM_2_KEY, 1
setflag FLAG_USED_ROOM_2_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBAD
@@ -92,13 +82,12 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EC2A:: @ 815EC2A
AbandonedShip_HiddenFloorCorridors_EventScript_15EC61:: @ 815EC61
lockall
- checkflag FLAG_USED_ROOM_4_KEY
- goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ goto_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
checkitem ITEM_ROOM_4_KEY, 1
compare RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECE3
msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
- playse 21
+ playse SE_PIN
takeitem ITEM_ROOM_4_KEY, 1
setflag FLAG_USED_ROOM_4_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBB7
@@ -108,13 +97,12 @@ AbandonedShip_HiddenFloorCorridors_EventScript_15EC61:: @ 815EC61
AbandonedShip_HiddenFloorCorridors_EventScript_15EC98:: @ 815EC98
lockall
- checkflag FLAG_USED_ROOM_6_KEY
- goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
+ goto_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_15ECF7
checkitem ITEM_ROOM_6_KEY, 1
compare RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_15ECED
msgbox AbandonedShip_HiddenFloorCorridors_Text_198E90, 4
- playse 21
+ playse SE_PIN
takeitem ITEM_ROOM_6_KEY, 1
setflag FLAG_USED_ROOM_6_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_15EBC1
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
index 9ad419da1..7f9b06500 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
@@ -11,11 +11,11 @@ AbandonedShip_HiddenFloorRooms_EventScript_15ED11:: @ 815ED11
getplayerxy VAR_TEMP_2, VAR_TEMP_3
setvar VAR_TEMP_4, 1
compare VAR_TEMP_2, 21
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED89
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15ED89
compare VAR_TEMP_2, 36
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED8F
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15ED8F
compare VAR_TEMP_3, 2
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED95
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15ED95
switch VAR_TEMP_4
case 1, AbandonedShip_HiddenFloorRooms_EventScript_15ED9B
case 2, AbandonedShip_HiddenFloorRooms_EventScript_15EDC4
@@ -45,7 +45,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_15ED9B:: @ 815ED9B
dofieldeffect 54
specialvar RESULT, FoundAbandonedShipRoom4Key
compare RESULT, 0
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE8B
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE8B
waitfieldeffect 54
delay 10
end
@@ -59,7 +59,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EDC5:: @ 815EDC5
goto_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EDEA
delay 20
compare RESULT, 0
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE6B
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE6B
waitfieldeffect 54
delay 10
end
@@ -79,7 +79,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EDEB:: @ 815EDEB
dofieldeffect 54
specialvar RESULT, FoundAbandonedShipRoom6Key
compare RESULT, 0
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE9B
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE9B
waitfieldeffect 54
delay 10
end
@@ -100,7 +100,7 @@ AbandonedShip_HiddenFloorRooms_EventScript_15EE23:: @ 815EE23
dofieldeffect 54
specialvar RESULT, FoundAbandonedShipRoom2Key
compare RESULT, 0
- call_if 1, AbandonedShip_HiddenFloorRooms_EventScript_15EE7B
+ call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_15EE7B
waitfieldeffect 54
delay 10
end
diff --git a/data/scripts/maps/AncientTomb.inc b/data/scripts/maps/AncientTomb.inc
index b849f41ba..8ff39c0a4 100644
--- a/data/scripts/maps/AncientTomb.inc
+++ b/data/scripts/maps/AncientTomb.inc
@@ -5,8 +5,7 @@ AncientTomb_MapScripts:: @ 815EFBE
.byte 0
AncientTomb_MapScript1_15EFCE:: @ 815EFCE
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, AncientTomb_EventScript_15EFD8
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, AncientTomb_EventScript_15EFD8
end
AncientTomb_EventScript_15EFD8:: @ 815EFD8
@@ -18,8 +17,7 @@ AncientTomb_MapScript1_15EFDC:: @ 815EFDC
end
AncientTomb_MapScript1_15EFE0:: @ 815EFE0
- checkflag FLAG_SYS_BRAILLE_FLY
- call_if 0, AncientTomb_EventScript_15EFEA
+ call_if_unset FLAG_SYS_BRAILLE_FLY, AncientTomb_EventScript_15EFEA
end
AncientTomb_EventScript_15EFEA:: @ 815EFEA
@@ -33,8 +31,7 @@ AncientTomb_EventScript_15EFEA:: @ 815EFEA
AncientTomb_EventScript_15F021:: @ 815F021
lockall
- checkflag FLAG_SYS_BRAILLE_FLY
- goto_if_eq AncientTomb_EventScript_15F038
+ goto_if_set FLAG_SYS_BRAILLE_FLY, AncientTomb_EventScript_15F038
braillemessage AncientTomb_Braille_1C552E
waitbuttonpress
erasebox 0, 0, 29, 19
diff --git a/data/scripts/maps/AquaHideout_1F.inc b/data/scripts/maps/AquaHideout_1F.inc
index 028a0ee7b..ee49ba695 100644
--- a/data/scripts/maps/AquaHideout_1F.inc
+++ b/data/scripts/maps/AquaHideout_1F.inc
@@ -10,8 +10,7 @@ AquaHideout_1F_EventScript_15D7CE:: @ 815D7CE
MagmaHideout_1F_EventScript_15D7CE:: @ 815D7CE
lock
faceplayer
- checkflag FLAG_MT_PYRE_ORB_STOLEN
- goto_if_eq AquaHideout_1F_EventScript_15D7E3
+ goto_if_set FLAG_MT_PYRE_ORB_STOLEN, AquaHideout_1F_EventScript_15D7E3
msgbox AquaHideout_1F_Text_196AFD, 4
release
end
@@ -25,8 +24,7 @@ AquaHideout_1F_EventScript_15D7ED:: @ 815D7ED
MagmaHideout_1F_EventScript_15D7ED:: @ 815D7ED
lock
faceplayer
- checkflag FLAG_MT_PYRE_ORB_STOLEN
- goto_if_eq AquaHideout_1F_EventScript_15D802
+ goto_if_set FLAG_MT_PYRE_ORB_STOLEN, AquaHideout_1F_EventScript_15D802
msgbox AquaHideout_1F_Text_196C83, 4
release
end
diff --git a/data/scripts/maps/AquaHideout_B1F.inc b/data/scripts/maps/AquaHideout_B1F.inc
index 82d0c10c5..3be8d487d 100644
--- a/data/scripts/maps/AquaHideout_B1F.inc
+++ b/data/scripts/maps/AquaHideout_B1F.inc
@@ -4,8 +4,7 @@ AquaHideout_B1F_MapScripts:: @ 815D831
.byte 0
AquaHideout_B1F_MapScript1_15D83C:: @ 815D83C
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, AquaHideout_B1F_EventScript_15D846
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, AquaHideout_B1F_EventScript_15D846
end
AquaHideout_B1F_EventScript_15D846:: @ 815D846
diff --git a/data/scripts/maps/AquaHideout_B2F.inc b/data/scripts/maps/AquaHideout_B2F.inc
index 5ec8197f9..d7b47cdfd 100644
--- a/data/scripts/maps/AquaHideout_B2F.inc
+++ b/data/scripts/maps/AquaHideout_B2F.inc
@@ -10,7 +10,7 @@ AquaHideout_B2F_EventScript_15D8BD:: @ 815D8BD
MagmaHideout_B2F_EventScript_15D8BD:: @ 815D8BD
lockall
setvar VAR_SPECIAL_8, 1
- playse 21
+ playse SE_PIN
applymovement VAR_SPECIAL_8, AquaHideout_B2F_Movement_1A0833
waitmovement 0
.ifdef SAPPHIRE
diff --git a/data/scripts/maps/BattleTower_BattleRoom.inc b/data/scripts/maps/BattleTower_BattleRoom.inc
index 7853b3598..ce7d7c0e9 100644
--- a/data/scripts/maps/BattleTower_BattleRoom.inc
+++ b/data/scripts/maps/BattleTower_BattleRoom.inc
@@ -54,29 +54,29 @@ BattleTower_BattleRoom_EventScript_160961:: @ 8160961
special LoadPlayerParty
special SavePlayerParty
special SetBattleTowerParty
- playfanfare 368
+ playfanfare BGM_ME_ASA
waitfanfare
special ScrSpecial_HealPlayerParty
BattleTower_BattleRoom_EventScript_1609B2:: @ 81609B2
- msgbox BattleTower_BattleRoom_Text_19AD09, 5
+ msgbox BattleTower_BattleRoom_Text_19AD09, MSGBOX_YESNO
switch RESULT
- case 0, BattleTower_BattleRoom_EventScript_1609E0
- case 1, BattleTower_BattleRoom_EventScript_160A3C
+ case NO, BattleTower_BattleRoom_EventScript_1609E0
+ case YES, BattleTower_BattleRoom_EventScript_160A3C
case 127, BattleTower_BattleRoom_EventScript_1609E0
BattleTower_BattleRoom_EventScript_1609E0:: @ 81609E0
- msgbox BattleTower_BattleRoom_Text_19AD3C, 5
+ msgbox BattleTower_BattleRoom_Text_19AD3C, MSGBOX_YESNO
switch RESULT
- case 0, BattleTower_BattleRoom_EventScript_160A0E
- case 1, BattleTower_BattleRoom_EventScript_160A94
+ case NO, BattleTower_BattleRoom_EventScript_160A0E
+ case YES, BattleTower_BattleRoom_EventScript_160A94
case 127, BattleTower_BattleRoom_EventScript_160A0E
BattleTower_BattleRoom_EventScript_160A0E:: @ 8160A0E
- msgbox BattleTower_BattleRoom_Text_19AD66, 5
+ msgbox BattleTower_BattleRoom_Text_19AD66, MSGBOX_YESNO
switch RESULT
- case 0, BattleTower_BattleRoom_EventScript_1609B2
- case 1, BattleTower_BattleRoom_EventScript_160AB1
+ case NO, BattleTower_BattleRoom_EventScript_1609B2
+ case YES, BattleTower_BattleRoom_EventScript_160AB1
case 127, BattleTower_BattleRoom_EventScript_1609B2
BattleTower_BattleRoom_EventScript_160A3C:: @ 8160A3C
@@ -110,7 +110,7 @@ BattleTower_BattleRoom_EventScript_160A94:: @ 8160A94
message BattleTower_BattleRoom_Text_1C6CE1
delay 60
waitmessage
- playse 55
+ playse SE_SAVE
waitse
msgbox BattleTower_BattleRoom_Text_1C6D05, 4
diff --git a/data/scripts/maps/BattleTower_Lobby.inc b/data/scripts/maps/BattleTower_Lobby.inc
index 4058d5aae..57eb62dfe 100644
--- a/data/scripts/maps/BattleTower_Lobby.inc
+++ b/data/scripts/maps/BattleTower_Lobby.inc
@@ -13,13 +13,11 @@ BattleTower_Lobby_MapScript1_160293:: @ 8160293
BattleTower_Lobby_EventScript_16029C:: @ 816029C
setvar VAR_SPECIAL_4, 10
special SetBattleTowerProperty
- checkflag FLAG_RECEIVED_GOLD_SHIELD
- goto_if_eq BattleTower_Lobby_EventScript_1602E4
- checkflag FLAG_RECEIVED_SILVER_SHIELD
- goto_if_eq BattleTower_Lobby_EventScript_1602CD
+ goto_if_set FLAG_RECEIVED_GOLD_SHIELD, BattleTower_Lobby_EventScript_1602E4
+ goto_if_set FLAG_RECEIVED_SILVER_SHIELD, BattleTower_Lobby_EventScript_1602CD
specialvar VAR_SPECIAL_7, GetBestBattleTowerStreak
compare VAR_SPECIAL_7, 50
- goto_if 0, BattleTower_Lobby_EventScript_1602E4
+ goto_if_lt BattleTower_Lobby_EventScript_1602E4
clearflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
special sub_810F8FC
return
@@ -27,7 +25,7 @@ BattleTower_Lobby_EventScript_16029C:: @ 816029C
BattleTower_Lobby_EventScript_1602CD:: @ 81602CD
specialvar VAR_SPECIAL_7, GetBestBattleTowerStreak
compare VAR_SPECIAL_7, 100
- goto_if 0, BattleTower_Lobby_EventScript_1602E4
+ goto_if_lt BattleTower_Lobby_EventScript_1602E4
clearflag FLAG_HIDE_AWARD_MAN_BATTLE_TOWER
special sub_810F8FC
return
@@ -84,7 +82,7 @@ BattleTower_Lobby_EventScript_160342:: @ 8160342
goto_if_eq BattleTower_Lobby_EventScript_16037D
message BattleTower_Lobby_Text_19A6BE
waitmessage
- playfanfare 370
+ playfanfare BGM_FANFA4
waitfanfare
msgbox BattleTower_Lobby_Text_19A719, 4
@@ -100,7 +98,7 @@ BattleTower_Lobby_EventScript_16037D:: @ 816037D
special DetermineBattleTowerPrize
setvar VAR_SPECIAL_4, 3
special SaveBattleTowerProgress
- playse 55
+ playse SE_SAVE
waitse
BattleTower_Lobby_EventScript_1603AD:: @ 81603AD
@@ -114,12 +112,12 @@ BattleTower_Lobby_EventScript_1603AD:: @ 81603AD
case 0, BattleTower_Lobby_EventScript_160408
message BattleTower_Lobby_Text_19A506
waitmessage
- playfanfare 370
+ playfanfare BGM_FANFA4
waitfanfare
setvar VAR_SPECIAL_4, 9
special BattleTowerUtil
compare RESULT, 49
- goto_if 5, BattleTower_Lobby_EventScript_1603F8
+ goto_if_ne BattleTower_Lobby_EventScript_1603F8
msgbox BattleTower_Lobby_Text_19A617, 4
BattleTower_Lobby_EventScript_1603F8:: @ 81603F8
@@ -148,7 +146,7 @@ BattleTower_Lobby_EventScript_160419:: @ 8160419
special SetBattleTowerProperty
setvar VAR_SPECIAL_4, 0
special SaveBattleTowerProgress
- playse 55
+ playse SE_SAVE
waitse
msgbox BattleTower_Lobby_Text_199FA9, 4
closemessage
@@ -166,7 +164,7 @@ BattleTower_Lobby_EventScript_16044B:: @ 816044B
waitmessage
setvar VAR_SPECIAL_4, 1
special SaveBattleTowerProgress
- playse 55
+ playse SE_SAVE
waitse
setvar VAR_SPECIAL_4, 8
setvar VAR_SPECIAL_5, 0
@@ -221,10 +219,10 @@ BattleTower_Lobby_EventScript_1604FA:: @ 81604FA
waitstate
compare RESULT, 0
goto_if_eq BattleTower_Lobby_EventScript_16064F
- msgbox BattleTower_Lobby_Text_199FDA, 5
+ msgbox BattleTower_Lobby_Text_199FDA, MSGBOX_YESNO
switch RESULT
- case 0, BattleTower_Lobby_EventScript_16064F
- case 1, BattleTower_Lobby_EventScript_160587
+ case NO, BattleTower_Lobby_EventScript_16064F
+ case YES, BattleTower_Lobby_EventScript_160587
case 127, BattleTower_Lobby_EventScript_16064F
BattleTower_Lobby_EventScript_160587:: @ 8160587
@@ -334,10 +332,10 @@ BattleTower_Lobby_Movement_16069A:: @ 816069A
BattleTower_Lobby_EventScript_1606A5:: @ 81606A5
lock
faceplayer
- msgbox BattleTower_Lobby_Text_19A747, 5
+ msgbox BattleTower_Lobby_Text_19A747, MSGBOX_YESNO
switch RESULT
- case 1, BattleTower_Lobby_EventScript_1606CC
- case 0, BattleTower_Lobby_EventScript_1606F7
+ case YES, BattleTower_Lobby_EventScript_1606CC
+ case NO, BattleTower_Lobby_EventScript_1606F7
release
end
@@ -387,10 +385,8 @@ BattleTower_Lobby_EventScript_160727:: @ 8160727
BattleTower_Lobby_EventScript_160733:: @ 8160733
lock
faceplayer
- checkflag FLAG_RECEIVED_GOLD_SHIELD
- goto_if_eq BattleTower_Lobby_EventScript_1607C5
- checkflag FLAG_RECEIVED_SILVER_SHIELD
- goto_if_eq BattleTower_Lobby_EventScript_160773
+ goto_if_set FLAG_RECEIVED_GOLD_SHIELD, BattleTower_Lobby_EventScript_1607C5
+ goto_if_set FLAG_RECEIVED_SILVER_SHIELD, BattleTower_Lobby_EventScript_160773
msgbox BattleTower_Lobby_Text_19A9EE, 4
setvar VAR_SPECIAL_8, DECOR_SILVER_SHIELD
givedecoration_std DECOR_SILVER_SHIELD
@@ -404,7 +400,7 @@ BattleTower_Lobby_EventScript_160733:: @ 8160733
BattleTower_Lobby_EventScript_160773:: @ 8160773
specialvar RESULT, GetBestBattleTowerStreak
compare RESULT, 100
- goto_if 0, BattleTower_Lobby_EventScript_1607C5
+ goto_if_lt BattleTower_Lobby_EventScript_1607C5
msgbox BattleTower_Lobby_Text_19AAC4, 4
setvar VAR_SPECIAL_8, DECOR_GOLD_SHIELD
givedecoration_std DECOR_GOLD_SHIELD
diff --git a/data/scripts/maps/BattleTower_Outside.inc b/data/scripts/maps/BattleTower_Outside.inc
index 3992ffd2c..8f6cb4305 100644
--- a/data/scripts/maps/BattleTower_Outside.inc
+++ b/data/scripts/maps/BattleTower_Outside.inc
@@ -35,8 +35,8 @@ BattleTower_Outside_EventScript_1601C6:: @ 81601C6
end
BattleTower_Outside_EventScript_1601D0:: @ 81601D0
- msgbox BattleTower_Outside_Text_199DF2, 5
- compare RESULT, 0
+ msgbox BattleTower_Outside_Text_199DF2, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq BattleTower_Outside_EventScript_160226
msgbox BattleTower_Outside_Text_199E4B, 4
call BattleTower_Outside_EventScript_160232
@@ -46,8 +46,8 @@ BattleTower_Outside_EventScript_1601D0:: @ 81601D0
end
BattleTower_Outside_EventScript_1601FB:: @ 81601FB
- msgbox BattleTower_Outside_Text_199E0E, 5
- compare RESULT, 0
+ msgbox BattleTower_Outside_Text_199E0E, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq BattleTower_Outside_EventScript_160226
msgbox BattleTower_Outside_Text_199E4B, 4
call BattleTower_Outside_EventScript_160232
diff --git a/data/scripts/maps/CaveOfOrigin_1F.inc b/data/scripts/maps/CaveOfOrigin_1F.inc
index 6411aad49..58c6563f6 100644
--- a/data/scripts/maps/CaveOfOrigin_1F.inc
+++ b/data/scripts/maps/CaveOfOrigin_1F.inc
@@ -3,6 +3,5 @@ CaveOfOrigin_1F_MapScripts:: @ 815DD6C
.byte 0
CaveOfOrigin_1F_MapScript1_15DD72:: @ 815DD72
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 1, CaveOfOrigin_1F_EventScript_1A04E3
+ call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, CaveOfOrigin_1F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B1F.inc b/data/scripts/maps/CaveOfOrigin_B1F.inc
index b8d4149b6..c79eb088e 100644
--- a/data/scripts/maps/CaveOfOrigin_B1F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B1F.inc
@@ -3,6 +3,5 @@ CaveOfOrigin_B1F_MapScripts:: @ 815DD7C
.byte 0
CaveOfOrigin_B1F_MapScript1_15DD82:: @ 815DD82
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 1, CaveOfOrigin_B1F_EventScript_1A04E3
+ call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, CaveOfOrigin_B1F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B2F.inc b/data/scripts/maps/CaveOfOrigin_B2F.inc
index 9b014d0e9..66b02ee9f 100644
--- a/data/scripts/maps/CaveOfOrigin_B2F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B2F.inc
@@ -3,6 +3,5 @@ CaveOfOrigin_B2F_MapScripts:: @ 815DD8C
.byte 0
CaveOfOrigin_B2F_MapScript1_15DD92:: @ 815DD92
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 1, CaveOfOrigin_B2F_EventScript_1A04E3
+ call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, CaveOfOrigin_B2F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B3F.inc b/data/scripts/maps/CaveOfOrigin_B3F.inc
index d6f7bdaf1..8084ceb43 100644
--- a/data/scripts/maps/CaveOfOrigin_B3F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B3F.inc
@@ -3,6 +3,5 @@ CaveOfOrigin_B3F_MapScripts:: @ 815DD9C
.byte 0
CaveOfOrigin_B3F_MapScript1_15DDA2:: @ 815DDA2
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 1, CaveOfOrigin_B3F_EventScript_1A04E3
+ call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, CaveOfOrigin_B3F_EventScript_1A04E3
end
diff --git a/data/scripts/maps/CaveOfOrigin_B4F.inc b/data/scripts/maps/CaveOfOrigin_B4F.inc
index 669b0a5fe..aa79e1213 100644
--- a/data/scripts/maps/CaveOfOrigin_B4F.inc
+++ b/data/scripts/maps/CaveOfOrigin_B4F.inc
@@ -4,8 +4,7 @@ CaveOfOrigin_B4F_MapScripts:: @ 815DDAC
.byte 0
CaveOfOrigin_B4F_MapScript1_15DDB7:: @ 815DDB7
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, CaveOfOrigin_B4F_EventScript_15DDC1
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, CaveOfOrigin_B4F_EventScript_15DDC1
end
CaveOfOrigin_B4F_EventScript_15DDC1:: @ 815DDC1
@@ -19,8 +18,7 @@ CaveOfOrigin_B4F_MapScript1_15DDC5:: @ 815DDC5
setmaplayoutindex 313
.endif
call CaveOfOrigin_B4F_EventScript_1A01B5
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 1, CaveOfOrigin_B4F_EventScript_1A04E3
+ call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, CaveOfOrigin_B4F_EventScript_1A04E3
end
CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
@@ -33,11 +31,11 @@ CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
msgbox CaveOfOrigin_B4F_Text_1B4FE4, 4
.endif
closemessage
- setweather 0
+ setweather WEATHER_NONE
doweather
special WaitWeather
waitstate
- playse 209
+ playse SE_W197
setfieldeffectargument 0, 9
setfieldeffectargument 1, 13
setfieldeffectargument 2, 0
@@ -48,7 +46,7 @@ CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
.else
setvar RESULT, 2
.endif
- playse 107
+ playse SE_TAMA
special sub_80818A4
waitstate
special sub_80818FC
@@ -67,7 +65,7 @@ CaveOfOrigin_B4F_EventScript_15DDD7:: @ 815DDD7
clearflag FLAG_SYS_CTRL_OBJ_DELETE
specialvar RESULT, GetBattleOutcome
compare RESULT, 1
- call_if 1, CaveOfOrigin_B4F_EventScript_15DE73
+ call_if_eq CaveOfOrigin_B4F_EventScript_15DE73
setflag FLAG_HIDE_WALLACE_SOOTOPOLIS
setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_1
setflag FLAG_HIDE_CAVE_OF_ORIGIN_ENTRANCE_WOMAN_2
diff --git a/data/scripts/maps/DesertRuins.inc b/data/scripts/maps/DesertRuins.inc
index 7aa56a82d..2627a8261 100644
--- a/data/scripts/maps/DesertRuins.inc
+++ b/data/scripts/maps/DesertRuins.inc
@@ -5,8 +5,7 @@ DesertRuins_MapScripts:: @ 815CAF3
.byte 0
DesertRuins_MapScript1_15CB03:: @ 815CB03
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, DesertRuins_EventScript_15CB0D
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, DesertRuins_EventScript_15CB0D
end
DesertRuins_EventScript_15CB0D:: @ 815CB0D
@@ -14,8 +13,7 @@ DesertRuins_EventScript_15CB0D:: @ 815CB0D
return
DesertRuins_MapScript1_15CB11:: @ 815CB11
- checkflag FLAG_SYS_BRAILLE_STRENGTH
- call_if 0, DesertRuins_EventScript_15CB1B
+ call_if_unset FLAG_SYS_BRAILLE_STRENGTH, DesertRuins_EventScript_15CB1B
end
DesertRuins_EventScript_15CB1B:: @ 815CB1B
@@ -33,8 +31,7 @@ DesertRuins_MapScript1_15CB52:: @ 815CB52
DesertRuins_EventScript_15CB56:: @ 815CB56
lockall
- checkflag FLAG_SYS_BRAILLE_STRENGTH
- goto_if_eq DesertRuins_EventScript_15CB6D
+ goto_if_set FLAG_SYS_BRAILLE_STRENGTH, DesertRuins_EventScript_15CB6D
braillemessage DesertRuins_Braille_1C54C8
waitbuttonpress
erasebox 0, 0, 29, 19
diff --git a/data/scripts/maps/DewfordTown.inc b/data/scripts/maps/DewfordTown.inc
index dc733071f..e7aeccbd0 100644
--- a/data/scripts/maps/DewfordTown.inc
+++ b/data/scripts/maps/DewfordTown.inc
@@ -9,8 +9,7 @@ DewfordTown_MapScript1_14DFFE:: @ 814DFFE
DewfordTown_EventScript_14E002:: @ 814E002
lock
faceplayer
- checkflag FLAG_DELIVERED_STEVEN_LETTER
- goto_if 0, DewfordTown_EventScript_14E076
+ goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, DewfordTown_EventScript_14E076
message DewfordTown_Text_16B522
waitmessage
multichoicedefault 21, 6, 0, 2, 0
@@ -42,8 +41,8 @@ DewfordTown_EventScript_14E06B:: @ 814E06B
end
DewfordTown_EventScript_14E076:: @ 814E076
- msgbox DewfordTown_Text_16B3BC, 5
- compare RESULT, 1
+ msgbox DewfordTown_Text_16B3BC, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq DewfordTown_EventScript_14E093
msgbox DewfordTown_Text_16B471, 4
release
@@ -74,12 +73,11 @@ DewfordTown_EventScript_14E0BD:: @ 814E0BD
DewfordTown_EventScript_14E0C6:: @ 814E0C6
lock
faceplayer
- checkflag FLAG_RECEIVED_OLD_ROD
- goto_if_eq DewfordTown_EventScript_14E11B
- msgbox DewfordTown_Text_16B665, 5
- compare RESULT, 1
+ goto_if_set FLAG_RECEIVED_OLD_ROD, DewfordTown_EventScript_14E11B
+ msgbox DewfordTown_Text_16B665, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq DewfordTown_EventScript_14E0F0
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq DewfordTown_EventScript_14E111
end
@@ -176,10 +174,8 @@ DewfordTown_EventScript_14E1D8:: @ 814E1D8
clearflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
hideobjectat 4, MAP_DEWFORD_TOWN
- checkflag FLAG_DELIVERED_DEVON_GOODS
- call_if 0, DewfordTown_EventScript_14E281
- checkflag FLAG_DELIVERED_DEVON_GOODS
- call_if 1, DewfordTown_EventScript_14E28A
+ call_if_unset FLAG_DELIVERED_DEVON_GOODS, DewfordTown_EventScript_14E281
+ call_if_set FLAG_DELIVERED_DEVON_GOODS, DewfordTown_EventScript_14E28A
closemessage
copyvar VAR_BRINEY_LOCATION, VAR_SPECIAL_8
resetobjectpriority 255, MAP_DEWFORD_TOWN
@@ -598,10 +594,10 @@ DewfordTown_EventScript_14E413:: @ 814E413
lock
faceplayer
call DewfordTown_EventScript_1A0102
- msgbox DewfordTown_Text_16B9CE, 5
- compare RESULT, 1
+ msgbox DewfordTown_Text_16B9CE, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq DewfordTown_EventScript_14E439
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq DewfordTown_EventScript_14E443
end
diff --git a/data/scripts/maps/DewfordTown_Gym.inc b/data/scripts/maps/DewfordTown_Gym.inc
index ee7d77d6b..596f2c77f 100644
--- a/data/scripts/maps/DewfordTown_Gym.inc
+++ b/data/scripts/maps/DewfordTown_Gym.inc
@@ -7,8 +7,7 @@ DewfordTown_Gym_MapScript1_15306B:: @ 815306B
end
DewfordTown_Gym_EventScript_153071:: @ 8153071
- checktrainerflag OPPONENT_BRAWLY
- goto_if_eq DewfordTown_Gym_EventScript_1530AA
+ goto_if_trainer_defeated OPPONENT_BRAWLY, DewfordTown_Gym_EventScript_1530AA
call DewfordTown_Gym_EventScript_153122
copyvar VAR_SPECIAL_1, VAR_SPECIAL_0
compare VAR_SPECIAL_0, 0
@@ -56,43 +55,40 @@ DewfordTown_Gym_EventScript_1530F5:: @ 81530F5
return
DewfordTown_Gym_EventScript_1530F6:: @ 81530F6
- playse 35
+ playse SE_MU_PACHI
animateflash 3
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_153101:: @ 8153101
- playse 35
+ playse SE_MU_PACHI
animateflash 2
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_15310C:: @ 815310C
- playse 35
+ playse SE_MU_PACHI
animateflash 1
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_153117:: @ 8153117
- playse 35
+ playse SE_MU_PACHI
animateflash 0
call DewfordTown_Gym_EventScript_153071
return
DewfordTown_Gym_EventScript_153122:: @ 8153122
setvar VAR_SPECIAL_0, 0
- checktrainerflag OPPONENT_HIDEKI
- goto_if 0, DewfordTown_Gym_EventScript_153135
+ goto_if_trainer_not_defeated OPPONENT_HIDEKI, DewfordTown_Gym_EventScript_153135
addvar VAR_SPECIAL_0, 1
DewfordTown_Gym_EventScript_153135:: @ 8153135
- checktrainerflag OPPONENT_TESSA
- goto_if 0, DewfordTown_Gym_EventScript_153143
+ goto_if_trainer_not_defeated OPPONENT_TESSA, DewfordTown_Gym_EventScript_153143
addvar VAR_SPECIAL_0, 1
DewfordTown_Gym_EventScript_153143:: @ 8153143
- checktrainerflag OPPONENT_LAURA
- goto_if 0, DewfordTown_Gym_EventScript_153151
+ goto_if_trainer_not_defeated OPPONENT_LAURA, DewfordTown_Gym_EventScript_153151
addvar VAR_SPECIAL_0, 1
DewfordTown_Gym_EventScript_153151:: @ 8153151
@@ -100,8 +96,7 @@ DewfordTown_Gym_EventScript_153151:: @ 8153151
DewfordTown_Gym_EventScript_153152:: @ 8153152
trainerbattle 1, OPPONENT_BRAWLY, 0, DewfordTown_Gym_Text_175182, DewfordTown_Gym_Text_175246, DewfordTown_Gym_EventScript_153177
- checkflag FLAG_RECEIVED_TM08
- goto_if 0, DewfordTown_Gym_EventScript_1531B5
+ goto_if_unset FLAG_RECEIVED_TM08, DewfordTown_Gym_EventScript_1531B5
msgbox DewfordTown_Gym_Text_175412, 4
release
end
@@ -116,14 +111,14 @@ DewfordTown_Gym_EventScript_153177:: @ 8153177
setflag FLAG_BADGE02_GET
addvar VAR_PETALBURG_GYM_STATE, 1
compare VAR_PETALBURG_GYM_STATE, 6
- call_if 1, DewfordTown_Gym_EventScript_1A00FB
+ call_if_eq DewfordTown_Gym_EventScript_1A00FB
setvar VAR_SPECIAL_8, 2
call DewfordTown_Gym_EventScript_1A01C0
goto DewfordTown_Gym_EventScript_1531B5
end
DewfordTown_Gym_EventScript_1531B5:: @ 81531B5
- giveitem_std ITEM_TM08
+ giveitem_std ITEM_TM08_BULK_UP
compare RESULT, 0
goto_if_eq DewfordTown_Gym_EventScript_1A029B
msgbox DewfordTown_Gym_Text_1753BF, 4
@@ -164,8 +159,7 @@ DewfordTown_Gym_EventScript_153238:: @ 8153238
DewfordTown_Gym_EventScript_15323F:: @ 815323F
lock
faceplayer
- checkflag FLAG_DEFEATED_DEWFORD_GYM
- goto_if_eq DewfordTown_Gym_EventScript_153254
+ goto_if_set FLAG_DEFEATED_DEWFORD_GYM, DewfordTown_Gym_EventScript_153254
msgbox DewfordTown_Gym_Text_174D98, 4
release
end
@@ -177,15 +171,13 @@ DewfordTown_Gym_EventScript_153254:: @ 8153254
DewfordTown_Gym_EventScript_15325E:: @ 815325E
lockall
- checkflag FLAG_BADGE02_GET
- goto_if_eq DewfordTown_Gym_EventScript_15327E
+ goto_if_set FLAG_BADGE02_GET, DewfordTown_Gym_EventScript_15327E
goto DewfordTown_Gym_EventScript_153288
end
DewfordTown_Gym_EventScript_15326E:: @ 815326E
lockall
- checkflag FLAG_BADGE02_GET
- goto_if_eq DewfordTown_Gym_EventScript_15327E
+ goto_if_set FLAG_BADGE02_GET, DewfordTown_Gym_EventScript_15327E
goto DewfordTown_Gym_EventScript_153288
end
diff --git a/data/scripts/maps/DewfordTown_Hall.inc b/data/scripts/maps/DewfordTown_Hall.inc
index 530a4e04d..45d389b28 100644
--- a/data/scripts/maps/DewfordTown_Hall.inc
+++ b/data/scripts/maps/DewfordTown_Hall.inc
@@ -30,10 +30,10 @@ DewfordTown_Hall_EventScript_1532CD:: @ 81532CD
faceplayer
call DewfordTown_Hall_EventScript_1A0102
special BufferRandomHobbyOrLifestyleString
- msgbox DewfordTown_Hall_Text_1755F9, 5
- compare RESULT, 1
+ msgbox DewfordTown_Hall_Text_1755F9, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq DewfordTown_Hall_EventScript_1532F6
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq DewfordTown_Hall_EventScript_153300
end
@@ -218,9 +218,9 @@ DewfordTown_Hall_EventScript_153535:: @ 8153535
DewfordTown_Hall_EventScript_153556:: @ 8153556
compare FACING, 2
- call_if 1, DewfordTown_Hall_EventScript_15356D
+ call_if_eq DewfordTown_Hall_EventScript_15356D
compare FACING, 1
- call_if 1, DewfordTown_Hall_EventScript_153578
+ call_if_eq DewfordTown_Hall_EventScript_153578
return
DewfordTown_Hall_EventScript_15356D:: @ 815356D
@@ -252,10 +252,9 @@ DewfordTown_Hall_EventScript_15359D:: @ 815359D
lock
faceplayer
call DewfordTown_Hall_EventScript_1A0102
- checkflag FLAG_RECEIVED_TM36
- goto_if_eq DewfordTown_Hall_EventScript_1535D1
+ goto_if_set FLAG_RECEIVED_TM36, DewfordTown_Hall_EventScript_1535D1
msgbox DewfordTown_Hall_Text_175E13, 4
- giveitem_std ITEM_TM36
+ giveitem_std ITEM_TM36_SLUDGE_BOMB
compare RESULT, 0
goto_if_eq DewfordTown_Hall_EventScript_1A029B
setflag FLAG_RECEIVED_TM36
diff --git a/data/scripts/maps/DewfordTown_House2.inc b/data/scripts/maps/DewfordTown_House2.inc
index e704efa50..a2341bc76 100644
--- a/data/scripts/maps/DewfordTown_House2.inc
+++ b/data/scripts/maps/DewfordTown_House2.inc
@@ -4,8 +4,7 @@ DewfordTown_House2_MapScripts:: @ 81535DB
DewfordTown_House2_EventScript_1535DC:: @ 81535DC
lock
faceplayer
- checkflag FLAG_RECEIVED_SILK_SCARF
- goto_if_eq DewfordTown_House2_EventScript_153615
+ goto_if_set FLAG_RECEIVED_SILK_SCARF, DewfordTown_House2_EventScript_153615
msgbox DewfordTown_House2_Text_175EFE, 4
giveitem_std ITEM_SILK_SCARF
compare RESULT, 0
diff --git a/data/scripts/maps/EverGrandeCity.inc b/data/scripts/maps/EverGrandeCity.inc
index 9a1bd9fa7..293780716 100644
--- a/data/scripts/maps/EverGrandeCity.inc
+++ b/data/scripts/maps/EverGrandeCity.inc
@@ -3,8 +3,7 @@ EverGrandeCity_MapScripts:: @ 814D4D5
.byte 0
EverGrandeCity_MapScript1_14D4DB:: @ 814D4DB
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, EverGrandeCity_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, EverGrandeCity_EventScript_1A02C1
end
EverGrandeCity_EventScript_14D4E5:: @ 814D4E5
diff --git a/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
index 1ca62b61c..78009271b 100644
--- a/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
@@ -38,25 +38,25 @@ EverGrandeCity_ChampionsRoom_Movement_15B802:: @ 815B802
step_end
EverGrandeCity_ChampionsRoom_EventScript_15B805:: @ 815B805
- playbgm 454, 0
+ playbgm BGM_DAIGO, FALSE
msgbox EverGrandeCity_ChampionsRoom_Text_190F9C, 4
trainerbattle 3, OPPONENT_STEVEN, 0, EverGrandeCity_ChampionsRoom_Text_1910A0
goto EverGrandeCity_ChampionsRoom_EventScript_15B821
end
EverGrandeCity_ChampionsRoom_EventScript_15B821:: @ 815B821
- playse 8
+ playse SE_DOOR
setmetatile 6, 1, 838, 0
setmetatile 6, 2, 839, 0
special DrawWholeMapView
msgbox EverGrandeCity_ChampionsRoom_Text_1910FE, 4
closemessage
- playse 8
+ playse SE_DOOR
checkplayergender
compare RESULT, 0
- call_if 1, EverGrandeCity_ChampionsRoom_EventScript_15B87C
+ call_if_eq EverGrandeCity_ChampionsRoom_EventScript_15B87C
compare RESULT, 1
- call_if 1, EverGrandeCity_ChampionsRoom_EventScript_15B881
+ call_if_eq EverGrandeCity_ChampionsRoom_EventScript_15B881
addobject 2
call EverGrandeCity_ChampionsRoom_EventScript_15B9BD
checkplayergender
@@ -67,17 +67,17 @@ EverGrandeCity_ChampionsRoom_EventScript_15B821:: @ 815B821
end
EverGrandeCity_ChampionsRoom_EventScript_15B87C:: @ 815B87C
- playbgm 415, 0
+ playbgm BGM_GIRL_SUP, FALSE
return
EverGrandeCity_ChampionsRoom_EventScript_15B881:: @ 815B881
- playbgm 421, 0
+ playbgm BGM_BOY_SUP, FALSE
return
EverGrandeCity_ChampionsRoom_EventScript_15B886:: @ 815B886
msgbox EverGrandeCity_ChampionsRoom_Text_191225, 4
delay 40
- playse 21
+ playse SE_PIN
applymovement 2, EverGrandeCity_ChampionsRoom_Movement_1A0833
waitmovement 0
applymovement 2, EverGrandeCity_ChampionsRoom_Movement_1A0835
@@ -90,7 +90,7 @@ EverGrandeCity_ChampionsRoom_EventScript_15B886:: @ 815B886
EverGrandeCity_ChampionsRoom_EventScript_15B8BB:: @ 815B8BB
msgbox EverGrandeCity_ChampionsRoom_Text_1912B3, 4
delay 40
- playse 21
+ playse SE_PIN
applymovement 2, EverGrandeCity_ChampionsRoom_Movement_1A0833
waitmovement 0
applymovement 2, EverGrandeCity_ChampionsRoom_Movement_1A0835
@@ -129,9 +129,9 @@ EverGrandeCity_ChampionsRoom_EventScript_15B8F0:: @ 815B8F0
msgbox EverGrandeCity_ChampionsRoom_Text_191546, 4
checkplayergender
compare RESULT, 0
- call_if 1, EverGrandeCity_ChampionsRoom_EventScript_15B9AB
+ call_if_eq EverGrandeCity_ChampionsRoom_EventScript_15B9AB
compare RESULT, 1
- call_if 1, EverGrandeCity_ChampionsRoom_EventScript_15B9B4
+ call_if_eq EverGrandeCity_ChampionsRoom_EventScript_15B9B4
closemessage
applymovement 1, EverGrandeCity_ChampionsRoom_Movement_15B9FF
applymovement 255, EverGrandeCity_ChampionsRoom_Movement_15B9E0
diff --git a/data/scripts/maps/EverGrandeCity_DrakesRoom.inc b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
index d83745593..8eb7bbc45 100644
--- a/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
@@ -24,10 +24,9 @@ EverGrandeCity_DrakesRoom_EventScript_15B736:: @ 815B736
end
EverGrandeCity_DrakesRoom_MapScript1_15B743:: @ 815B743
- checkflag FLAG_DEFEATED_ELITE_4_DRAKE
- call_if 1, EverGrandeCity_DrakesRoom_EventScript_15B758
+ call_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_15B758
compare VAR_ELITE_4_STATE, 4
- call_if 1, EverGrandeCity_DrakesRoom_EventScript_15B75E
+ call_if_eq EverGrandeCity_DrakesRoom_EventScript_15B75E
end
EverGrandeCity_DrakesRoom_EventScript_15B758:: @ 815B758
@@ -41,9 +40,8 @@ EverGrandeCity_DrakesRoom_EventScript_15B75E:: @ 815B75E
EverGrandeCity_DrakesRoom_EventScript_15B764:: @ 815B764
lock
faceplayer
- checkflag FLAG_DEFEATED_ELITE_4_DRAKE
- goto_if_eq EverGrandeCity_DrakesRoom_EventScript_15B78B
- playbgm 450, 0
+ goto_if_set FLAG_DEFEATED_ELITE_4_DRAKE, EverGrandeCity_DrakesRoom_EventScript_15B78B
+ playbgm BGM_SITENNOU, FALSE
msgbox EverGrandeCity_DrakesRoom_Text_190CEB, 4
trainerbattle 3, OPPONENT_DRAKE, 0, EverGrandeCity_DrakesRoom_Text_190E42
goto EverGrandeCity_DrakesRoom_EventScript_15B795
diff --git a/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
index 0e5b493e2..a72b84440 100644
--- a/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
@@ -24,10 +24,9 @@ EverGrandeCity_GlaciasRoom_EventScript_15B69C:: @ 815B69C
end
EverGrandeCity_GlaciasRoom_MapScript1_15B6A9:: @ 815B6A9
- checkflag FLAG_DEFEATED_ELITE_4_GLACIA
- call_if 1, EverGrandeCity_GlaciasRoom_EventScript_15B6BE
+ call_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_15B6BE
compare VAR_ELITE_4_STATE, 3
- call_if 1, EverGrandeCity_GlaciasRoom_EventScript_15B6C4
+ call_if_eq EverGrandeCity_GlaciasRoom_EventScript_15B6C4
end
EverGrandeCity_GlaciasRoom_EventScript_15B6BE:: @ 815B6BE
@@ -41,9 +40,8 @@ EverGrandeCity_GlaciasRoom_EventScript_15B6C4:: @ 815B6C4
EverGrandeCity_GlaciasRoom_EventScript_15B6CA:: @ 815B6CA
lock
faceplayer
- checkflag FLAG_DEFEATED_ELITE_4_GLACIA
- goto_if_eq EverGrandeCity_GlaciasRoom_EventScript_15B6F1
- playbgm 450, 0
+ goto_if_set FLAG_DEFEATED_ELITE_4_GLACIA, EverGrandeCity_GlaciasRoom_EventScript_15B6F1
+ playbgm BGM_SITENNOU, FALSE
msgbox EverGrandeCity_GlaciasRoom_Text_190AF9, 4
trainerbattle 3, OPPONENT_GLACIA, 0, EverGrandeCity_GlaciasRoom_Text_190C01
goto EverGrandeCity_GlaciasRoom_EventScript_15B6FB
diff --git a/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
index 19219a626..2d09f1ebb 100644
--- a/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
@@ -24,10 +24,9 @@ EverGrandeCity_PhoebesRoom_EventScript_15B602:: @ 815B602
end
EverGrandeCity_PhoebesRoom_MapScript1_15B60F:: @ 815B60F
- checkflag FLAG_DEFEATED_ELITE_4_PHOEBE
- call_if 1, EverGrandeCity_PhoebesRoom_EventScript_15B624
+ call_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_15B624
compare VAR_ELITE_4_STATE, 2
- call_if 1, EverGrandeCity_PhoebesRoom_EventScript_15B62A
+ call_if_eq EverGrandeCity_PhoebesRoom_EventScript_15B62A
end
EverGrandeCity_PhoebesRoom_EventScript_15B624:: @ 815B624
@@ -41,9 +40,8 @@ EverGrandeCity_PhoebesRoom_EventScript_15B62A:: @ 815B62A
EverGrandeCity_PhoebesRoom_EventScript_15B630:: @ 815B630
lock
faceplayer
- checkflag FLAG_DEFEATED_ELITE_4_PHOEBE
- goto_if_eq EverGrandeCity_PhoebesRoom_EventScript_15B657
- playbgm 450, 0
+ goto_if_set FLAG_DEFEATED_ELITE_4_PHOEBE, EverGrandeCity_PhoebesRoom_EventScript_15B657
+ playbgm BGM_SITENNOU, FALSE
msgbox EverGrandeCity_PhoebesRoom_Text_1908F5, 4
trainerbattle 3, OPPONENT_PHOEBE, 0, EverGrandeCity_PhoebesRoom_Text_190A0C
goto EverGrandeCity_PhoebesRoom_EventScript_15B661
diff --git a/data/scripts/maps/EverGrandeCity_PokemonLeague.inc b/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
index 5957508ae..a8eb820ea 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
+++ b/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
@@ -5,8 +5,7 @@ EverGrandeCity_PokemonLeague_MapScripts:: @ 815BA75
EverGrandeCity_PokemonLeague_MapScript1_15BA7B:: @ 815BA7B
setrespawn 20
setflag FLAG_SYS_POKEMON_LEAGUE_FLY
- checkflag FLAG_ENTERED_ELITE_FOUR
- call_if 0, EverGrandeCity_PokemonLeague_EventScript_15BA8B
+ call_if_unset FLAG_ENTERED_ELITE_FOUR, EverGrandeCity_PokemonLeague_EventScript_15BA8B
end
EverGrandeCity_PokemonLeague_EventScript_15BA8B:: @ 815BA8B
@@ -47,24 +46,22 @@ EverGrandeCity_PokemonLeague_Items:: @ 815BAC0
EverGrandeCity_PokemonLeague_EventScript_15BAD2:: @ 815BAD2
lockall
- checkflag FLAG_ENTERED_ELITE_FOUR
- goto_if_eq EverGrandeCity_PokemonLeague_EventScript_15BB57
+ goto_if_set FLAG_ENTERED_ELITE_FOUR, EverGrandeCity_PokemonLeague_EventScript_15BB57
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_TEMP_0, 11
- call_if 4, EverGrandeCity_PokemonLeague_EventScript_15BB34
+ call_if_ge EverGrandeCity_PokemonLeague_EventScript_15BB34
compare VAR_TEMP_0, 8
- call_if 3, EverGrandeCity_PokemonLeague_EventScript_15BB3F
+ call_if_le EverGrandeCity_PokemonLeague_EventScript_15BB3F
message EverGrandeCity_PokemonLeague_Text_1916FD
waitmessage
delay 75
- checkflag FLAG_BADGE06_GET
- goto_if 0, EverGrandeCity_PokemonLeague_EventScript_15BB4A
+ goto_if_unset FLAG_BADGE06_GET, EverGrandeCity_PokemonLeague_EventScript_15BB4A
closemessage
applymovement 3, EverGrandeCity_PokemonLeague_Movement_15BB7E
applymovement 4, EverGrandeCity_PokemonLeague_Movement_15BB81
waitmovement 0
delay 10
- playfanfare 369
+ playfanfare BGM_ME_BACHI
message EverGrandeCity_PokemonLeague_Text_191804
waitmessage
waitfanfare
@@ -86,7 +83,7 @@ EverGrandeCity_PokemonLeague_EventScript_15BB3F:: @ 815BB3F
return
EverGrandeCity_PokemonLeague_EventScript_15BB4A:: @ 815BB4A
- playse 32
+ playse SE_HAZURE
msgbox EverGrandeCity_PokemonLeague_Text_19179C, 4
releaseall
end
diff --git a/data/scripts/maps/EverGrandeCity_SidneysRoom.inc b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
index f3df03b7d..45a729c0a 100644
--- a/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
+++ b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
@@ -5,10 +5,9 @@ EverGrandeCity_SidneysRoom_MapScripts:: @ 815B53F
.byte 0
EverGrandeCity_SidneysRoom_MapScript1_15B54F:: @ 815B54F
- checkflag FLAG_DEFEATED_ELITE_4_SYDNEY
- call_if 1, EverGrandeCity_SidneysRoom_EventScript_15B564
+ call_if_set FLAG_DEFEATED_ELITE_4_SYDNEY, EverGrandeCity_SidneysRoom_EventScript_15B564
compare VAR_ELITE_4_STATE, 1
- call_if 1, EverGrandeCity_SidneysRoom_EventScript_15B56A
+ call_if_eq EverGrandeCity_SidneysRoom_EventScript_15B56A
end
EverGrandeCity_SidneysRoom_EventScript_15B564:: @ 815B564
@@ -42,9 +41,8 @@ EverGrandeCity_SidneysRoom_EventScript_15B589:: @ 815B589
EverGrandeCity_SidneysRoom_EventScript_15B596:: @ 815B596
lock
faceplayer
- checkflag FLAG_DEFEATED_ELITE_4_SYDNEY
- goto_if_eq EverGrandeCity_SidneysRoom_EventScript_15B5BD
- playbgm 450, 0
+ goto_if_set FLAG_DEFEATED_ELITE_4_SYDNEY, EverGrandeCity_SidneysRoom_EventScript_15B5BD
+ playbgm BGM_SITENNOU, FALSE
msgbox EverGrandeCity_SidneysRoom_Text_190728, 4
trainerbattle 3, OPPONENT_SIDNEY, 0, EverGrandeCity_SidneysRoom_Text_190823
goto EverGrandeCity_SidneysRoom_EventScript_15B5C7
diff --git a/data/scripts/maps/FallarborTown.inc b/data/scripts/maps/FallarborTown.inc
index 23295f778..a168a0ef5 100644
--- a/data/scripts/maps/FallarborTown.inc
+++ b/data/scripts/maps/FallarborTown.inc
@@ -12,8 +12,7 @@ FallarborTown_MapScript1_14E7E6:: @ 814E7E6
FallarborTown_EventScript_14E7F5:: @ 814E7F5
lock
faceplayer
- checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
- goto_if_eq FallarborTown_EventScript_14E80A
+ goto_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FallarborTown_EventScript_14E80A
msgbox FallarborTown_Text_16C7FF, 4
release
end
diff --git a/data/scripts/maps/FallarborTown_ContestLobby.inc b/data/scripts/maps/FallarborTown_ContestLobby.inc
index 270575bcb..11dd6159e 100644
--- a/data/scripts/maps/FallarborTown_ContestLobby.inc
+++ b/data/scripts/maps/FallarborTown_ContestLobby.inc
@@ -22,13 +22,13 @@ FallarborTown_ContestLobby_EventScript_1539F8:: @ 81539F8
lockall
applymovement 1, FallarborTown_ContestLobby_Movement_153A7C
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 545, 1
setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, FallarborTown_ContestLobby_Movement_153A7F
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 721, 1
setmetatile 4, 3, 729, 1
special DrawWholeMapView
@@ -92,8 +92,7 @@ FallarborTown_ContestLobby_EventScript_153A8E:: @ 8153A8E
end
FallarborTown_ContestLobby_EventScript_153A97:: @ 8153A97
- checkflag FLAG_CONTEST_SKETCH_CREATED
- goto_if_eq FallarborTown_ContestLobby_EventScript_153AA9
+ goto_if_set FLAG_CONTEST_SKETCH_CREATED, FallarborTown_ContestLobby_EventScript_153AA9
msgbox FallarborTown_ContestLobby_Text_177246, 2
end
diff --git a/data/scripts/maps/FallarborTown_House1.inc b/data/scripts/maps/FallarborTown_House1.inc
index 3c5345f8f..f16b6e828 100644
--- a/data/scripts/maps/FallarborTown_House1.inc
+++ b/data/scripts/maps/FallarborTown_House1.inc
@@ -8,8 +8,7 @@ FallarborTown_House1_MapScript1_153BB4:: @ 8153BB4
FallarborTown_House1_EventScript_153BB5:: @ 8153BB5
lock
faceplayer
- checkflag FLAG_RECEIVED_TM27
- goto_if_eq FallarborTown_House1_EventScript_153C54
+ goto_if_set FLAG_RECEIVED_TM27, FallarborTown_House1_EventScript_153C54
checkitem ITEM_METEORITE, 1
compare RESULT, 1
goto_if_eq FallarborTown_House1_EventScript_153BDA
@@ -18,14 +17,12 @@ FallarborTown_House1_EventScript_153BB5:: @ 8153BB5
end
FallarborTown_House1_EventScript_153BDA:: @ 8153BDA
- checkflag FLAG_TEMP_2
- call_if 0, FallarborTown_House1_EventScript_153C2D
- checkflag FLAG_TEMP_2
- call_if 1, FallarborTown_House1_EventScript_153C3E
- compare RESULT, 0
+ call_if_unset FLAG_TEMP_2, FallarborTown_House1_EventScript_153C2D
+ call_if_set FLAG_TEMP_2, FallarborTown_House1_EventScript_153C3E
+ compare RESULT, NO
goto_if_eq FallarborTown_House1_EventScript_153C47
msgbox FallarborTown_House1_Text_1778C4, 4
- giveitem_std ITEM_TM27
+ giveitem_std ITEM_TM27_RETURN
compare RESULT, 0
goto_if_eq FallarborTown_House1_EventScript_1A029B
setvar VAR_SPECIAL_4, 280
@@ -37,11 +34,11 @@ FallarborTown_House1_EventScript_153BDA:: @ 8153BDA
FallarborTown_House1_EventScript_153C2D:: @ 8153C2D
msgbox FallarborTown_House1_Text_177755, 4
- msgbox FallarborTown_House1_Text_17780E, 5
+ msgbox FallarborTown_House1_Text_17780E, MSGBOX_YESNO
return
FallarborTown_House1_EventScript_153C3E:: @ 8153C3E
- msgbox FallarborTown_House1_Text_1779B8, 5
+ msgbox FallarborTown_House1_Text_1779B8, MSGBOX_YESNO
return
FallarborTown_House1_EventScript_153C47:: @ 8153C47
@@ -58,10 +55,8 @@ FallarborTown_House1_EventScript_153C54:: @ 8153C54
FallarborTown_House1_EventScript_153C5E:: @ 8153C5E
lock
faceplayer
- checkflag FLAG_RECEIVED_TM27
- goto_if_eq FallarborTown_House1_EventScript_153C86
- checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
- goto_if_eq FallarborTown_House1_EventScript_153C7C
+ goto_if_set FLAG_RECEIVED_TM27, FallarborTown_House1_EventScript_153C86
+ goto_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, FallarborTown_House1_EventScript_153C7C
msgbox FallarborTown_House1_Text_177A2B, 4
release
end
diff --git a/data/scripts/maps/FallarborTown_House2.inc b/data/scripts/maps/FallarborTown_House2.inc
index 0546ef5be..bb1656fc2 100644
--- a/data/scripts/maps/FallarborTown_House2.inc
+++ b/data/scripts/maps/FallarborTown_House2.inc
@@ -5,8 +5,7 @@ FallarborTown_House2_EventScript_153C91:: @ 8153C91
lockall
applymovement 1, FallarborTown_House2_Movement_1A0839
waitmovement 0
- checkflag FLAG_TEMP_1
- goto_if_eq FallarborTown_House2_EventScript_153CB6
+ goto_if_set FLAG_TEMP_1, FallarborTown_House2_EventScript_153CB6
msgbox FallarborTown_House2_Text_177AF4, 4
setflag FLAG_TEMP_1
goto FallarborTown_House2_EventScript_153CB6
@@ -16,9 +15,9 @@ FallarborTown_House2_EventScript_153CB6:: @ 8153CB6
checkitem ITEM_HEART_SCALE, 1
compare RESULT, 0
goto_if_eq FallarborTown_House2_EventScript_153D60
- msgbox FallarborTown_House2_Text_177BDB, 5
+ msgbox FallarborTown_House2_Text_177BDB, MSGBOX_YESNO
switch RESULT
- case 0, FallarborTown_House2_EventScript_153D60
+ case NO, FallarborTown_House2_EventScript_153D60
goto FallarborTown_House2_EventScript_153CE4
end
diff --git a/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc b/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
index 0c9880137..93a5115af 100644
--- a/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
@@ -46,7 +46,7 @@ FallarborTown_PokemonCenter_1F_EventScript_153B59:: @ 8153B59
end
FallarborTown_PokemonCenter_1F_EventScript_153B69:: @ 8153B69
- playse 18
+ playse SE_JIDO_DOA
removeobject 4
clearflag FLAG_HIDE_LANETTE
release
diff --git a/data/scripts/maps/FortreeCity.inc b/data/scripts/maps/FortreeCity.inc
index 239c1410d..e576df5bd 100644
--- a/data/scripts/maps/FortreeCity.inc
+++ b/data/scripts/maps/FortreeCity.inc
@@ -18,8 +18,7 @@ FortreeCity_EventScript_14C955:: @ 814C955
FortreeCity_EventScript_14C95E:: @ 814C95E
lock
faceplayer
- checkflag FLAG_KECLEON_FLED_FORTREE
- goto_if_eq FortreeCity_EventScript_14C973
+ goto_if_set FLAG_KECLEON_FLED_FORTREE, FortreeCity_EventScript_14C973
msgbox FortreeCity_Text_1675C2, 4
release
end
@@ -64,8 +63,8 @@ FortreeCity_EventScript_14C9B3:: @ 814C9B3
end
FortreeCity_EventScript_14C9CF:: @ 814C9CF
- msgbox FortreeCity_Text_16788B, 5
- compare RESULT, 1
+ msgbox FortreeCity_Text_16788B, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FortreeCity_EventScript_14C9E4
release
end
diff --git a/data/scripts/maps/FortreeCity_Gym.inc b/data/scripts/maps/FortreeCity_Gym.inc
index 9217ba8f4..c0de6bfee 100644
--- a/data/scripts/maps/FortreeCity_Gym.inc
+++ b/data/scripts/maps/FortreeCity_Gym.inc
@@ -17,8 +17,7 @@ FortreeCity_Gym_EventScript_157EEC:: @ 8157EEC
FortreeCity_Gym_EventScript_157EF0:: @ 8157EF0
trainerbattle 1, OPPONENT_WINONA, 0, FortreeCity_Gym_Text_185CCB, FortreeCity_Gym_Text_185DBA, FortreeCity_Gym_EventScript_157F15
- checkflag FLAG_RECEIVED_TM40
- goto_if 0, FortreeCity_Gym_EventScript_157F3E
+ goto_if_unset FLAG_RECEIVED_TM40, FortreeCity_Gym_EventScript_157F3E
msgbox FortreeCity_Gym_Text_185F98, 4
release
end
@@ -36,7 +35,7 @@ FortreeCity_Gym_EventScript_157F15:: @ 8157F15
end
FortreeCity_Gym_EventScript_157F3E:: @ 8157F3E
- giveitem_std ITEM_TM40
+ giveitem_std ITEM_TM40_AERIAL_ACE
compare RESULT, 0
goto_if_eq FortreeCity_Gym_EventScript_1A029B
msgbox FortreeCity_Gym_Text_185F4A, 4
@@ -67,8 +66,7 @@ FortreeCity_Gym_EventScript_157FA7:: @ 8157FA7
FortreeCity_Gym_EventScript_157FBE:: @ 8157FBE
lock
faceplayer
- checkflag FLAG_DEFEATED_FORTREE_GYM
- goto_if_eq FortreeCity_Gym_EventScript_157FD3
+ goto_if_set FLAG_DEFEATED_FORTREE_GYM, FortreeCity_Gym_EventScript_157FD3
msgbox FortreeCity_Gym_Text_18589C, 4
release
end
@@ -80,15 +78,13 @@ FortreeCity_Gym_EventScript_157FD3:: @ 8157FD3
FortreeCity_Gym_EventScript_157FDD:: @ 8157FDD
lockall
- checkflag FLAG_BADGE06_GET
- goto_if_eq FortreeCity_Gym_EventScript_157FFD
+ goto_if_set FLAG_BADGE06_GET, FortreeCity_Gym_EventScript_157FFD
goto FortreeCity_Gym_EventScript_158007
end
FortreeCity_Gym_EventScript_157FED:: @ 8157FED
lockall
- checkflag FLAG_BADGE06_GET
- goto_if_eq FortreeCity_Gym_EventScript_157FFD
+ goto_if_set FLAG_BADGE06_GET, FortreeCity_Gym_EventScript_157FFD
goto FortreeCity_Gym_EventScript_158007
end
diff --git a/data/scripts/maps/FortreeCity_House1.inc b/data/scripts/maps/FortreeCity_House1.inc
index f6f8aafa6..443cc3a5c 100644
--- a/data/scripts/maps/FortreeCity_House1.inc
+++ b/data/scripts/maps/FortreeCity_House1.inc
@@ -4,14 +4,13 @@ FortreeCity_House1_MapScripts:: @ 8157E12
FortreeCity_House1_EventScript_157E13:: @ 8157E13
lock
faceplayer
- checkflag FLAG_FORTREE_NPC_TRADE_COMPLETED
- goto_if_eq FortreeCity_House1_EventScript_157EAD
+ goto_if_set FLAG_FORTREE_NPC_TRADE_COMPLETED, FortreeCity_House1_EventScript_157EAD
setvar VAR_SPECIAL_8, 1
copyvar VAR_SPECIAL_4, VAR_SPECIAL_8
specialvar RESULT, GetInGameTradeSpeciesInfo
copyvar VAR_SPECIAL_9, RESULT
- msgbox FortreeCity_House1_Text_18568C, 5
- compare RESULT, 0
+ msgbox FortreeCity_House1_Text_18568C, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq FortreeCity_House1_EventScript_157E95
special SelectMonForNPCTrade
waitstate
@@ -22,7 +21,7 @@ FortreeCity_House1_EventScript_157E13:: @ 8157E13
specialvar RESULT, GetTradeSpecies
copyvar VAR_SPECIAL_B, RESULT
compare RESULT, VAR_SPECIAL_9
- goto_if 5, FortreeCity_House1_EventScript_157E9F
+ goto_if_ne FortreeCity_House1_EventScript_157E9F
copyvar VAR_SPECIAL_4, VAR_SPECIAL_8
copyvar VAR_SPECIAL_5, VAR_SPECIAL_A
special CreateInGameTradePokemon
diff --git a/data/scripts/maps/FortreeCity_House2.inc b/data/scripts/maps/FortreeCity_House2.inc
index ae70b8644..365646d81 100644
--- a/data/scripts/maps/FortreeCity_House2.inc
+++ b/data/scripts/maps/FortreeCity_House2.inc
@@ -4,10 +4,8 @@ FortreeCity_House2_MapScripts:: @ 81580B3
FortreeCity_House2_EventScript_1580B4:: @ 81580B4
lock
faceplayer
- checkflag FLAG_RECEIVED_TM10
- goto_if_eq FortreeCity_House2_EventScript_158157
- checkflag FLAG_MET_HIDDEN_POWER_GIVER
- call_if 0, FortreeCity_House2_EventScript_15814B
+ goto_if_set FLAG_RECEIVED_TM10, FortreeCity_House2_EventScript_158157
+ call_if_unset FLAG_MET_HIDDEN_POWER_GIVER, FortreeCity_House2_EventScript_15814B
msgbox FortreeCity_House2_Text_186360, 4
multichoice 21, 8, 54, 1
switch RESULT
@@ -21,7 +19,7 @@ FortreeCity_House2_EventScript_1580B4:: @ 81580B4
switch RESULT
case 0, FortreeCity_House2_EventScript_158161
msgbox FortreeCity_House2_Text_1864C6, 4
- giveitem_std ITEM_TM10
+ giveitem_std ITEM_TM10_HIDDEN_POWER
compare RESULT, 0
goto_if_eq FortreeCity_House2_EventScript_1A029B
setflag FLAG_RECEIVED_TM10
diff --git a/data/scripts/maps/FortreeCity_House4.inc b/data/scripts/maps/FortreeCity_House4.inc
index 1b1b41877..490ef0c9b 100644
--- a/data/scripts/maps/FortreeCity_House4.inc
+++ b/data/scripts/maps/FortreeCity_House4.inc
@@ -7,12 +7,9 @@ FortreeCity_House4_EventScript_15817F:: @ 815817F
FortreeCity_House4_EventScript_158188:: @ 8158188
lockall
- checkflag FLAG_RECEIVED_MENTAL_HERB
- goto_if_eq FortreeCity_House4_EventScript_158204
- checkflag FLAG_WINGULL_DELIVERED_MAIL
- goto_if_eq FortreeCity_House4_EventScript_1581D6
- checkflag FLAG_WINGULL_SENT_ON_ERRAND
- goto_if_eq FortreeCity_House4_EventScript_1581C2
+ goto_if_set FLAG_RECEIVED_MENTAL_HERB, FortreeCity_House4_EventScript_158204
+ goto_if_set FLAG_WINGULL_DELIVERED_MAIL, FortreeCity_House4_EventScript_1581D6
+ goto_if_set FLAG_WINGULL_SENT_ON_ERRAND, FortreeCity_House4_EventScript_1581C2
msgbox FortreeCity_House4_Text_186835, 4
closemessage
setflag FLAG_WINGULL_SENT_ON_ERRAND
diff --git a/data/scripts/maps/GraniteCave_1F.inc b/data/scripts/maps/GraniteCave_1F.inc
index 33296e510..b9d89f93c 100644
--- a/data/scripts/maps/GraniteCave_1F.inc
+++ b/data/scripts/maps/GraniteCave_1F.inc
@@ -4,10 +4,9 @@ GraniteCave_1F_MapScripts:: @ 815CBA6
GraniteCave_1F_EventScript_15CBA7:: @ 815CBA7
lock
faceplayer
- checkflag FLAG_RECEIVED_HM05
- goto_if_eq GraniteCave_1F_EventScript_15CBD3
+ goto_if_set FLAG_RECEIVED_HM05, GraniteCave_1F_EventScript_15CBD3
msgbox GraniteCave_1F_Text_194917, 4
- giveitem_std ITEM_HM05
+ giveitem_std ITEM_HM05_FLASH
setflag FLAG_RECEIVED_HM05
msgbox GraniteCave_1F_Text_194A3E, 4
release
diff --git a/data/scripts/maps/GraniteCave_StevensRoom.inc b/data/scripts/maps/GraniteCave_StevensRoom.inc
index 3d4a57c13..d33813680 100644
--- a/data/scripts/maps/GraniteCave_StevensRoom.inc
+++ b/data/scripts/maps/GraniteCave_StevensRoom.inc
@@ -9,20 +9,20 @@ GraniteCave_StevensRoom_EventScript_15CBFA:: @ 815CBFA
call GraniteCave_StevensRoom_EventScript_1A067F
setflag FLAG_DELIVERED_STEVEN_LETTER
msgbox GraniteCave_StevensRoom_Text_194BDD, 4
- giveitem_std ITEM_TM47
+ giveitem_std ITEM_TM47_STEEL_WING
compare RESULT, 0
- call_if 1, GraniteCave_StevensRoom_EventScript_15CC83
+ call_if_eq GraniteCave_StevensRoom_EventScript_15CC83
msgbox GraniteCave_StevensRoom_Text_194C8D, 4
closemessage
compare FACING, 2
- call_if 1, GraniteCave_StevensRoom_EventScript_15CC6D
+ call_if_eq GraniteCave_StevensRoom_EventScript_15CC6D
compare FACING, 1
- call_if 1, GraniteCave_StevensRoom_EventScript_15CC78
+ call_if_eq GraniteCave_StevensRoom_EventScript_15CC78
compare FACING, 3
- call_if 1, GraniteCave_StevensRoom_EventScript_15CC6D
+ call_if_eq GraniteCave_StevensRoom_EventScript_15CC6D
compare FACING, 4
- call_if 1, GraniteCave_StevensRoom_EventScript_15CC6D
- playse 9
+ call_if_eq GraniteCave_StevensRoom_EventScript_15CC6D
+ playse SE_KAIDAN
removeobject 1
release
end
diff --git a/data/scripts/maps/IslandCave.inc b/data/scripts/maps/IslandCave.inc
index dbc71b6bb..d8576e883 100644
--- a/data/scripts/maps/IslandCave.inc
+++ b/data/scripts/maps/IslandCave.inc
@@ -5,8 +5,7 @@ IslandCave_MapScripts:: @ 815EEB6
.byte 0
IslandCave_MapScript1_15EEC6:: @ 815EEC6
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, IslandCave_EventScript_15EED0
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, IslandCave_EventScript_15EED0
end
IslandCave_EventScript_15EED0:: @ 815EED0
@@ -14,8 +13,7 @@ IslandCave_EventScript_15EED0:: @ 815EED0
return
IslandCave_MapScript1_15EED4:: @ 815EED4
- checkflag FLAG_SYS_BRAILLE_WAIT
- call_if 0, IslandCave_EventScript_15EEDE
+ call_if_unset FLAG_SYS_BRAILLE_WAIT, IslandCave_EventScript_15EEDE
end
IslandCave_EventScript_15EEDE:: @ 815EEDE
@@ -45,8 +43,7 @@ S_OpenRegiceChamber:: @ 815EF19
IslandCave_EventScript_15EF59:: @ 815EF59
lockall
- checkflag FLAG_SYS_BRAILLE_WAIT
- goto_if_eq IslandCave_EventScript_15EF72
+ goto_if_set FLAG_SYS_BRAILLE_WAIT, IslandCave_EventScript_15EF72
braillemessage IslandCave_Braille_1C54FC
special DoBrailleWait
waitstate
@@ -61,8 +58,7 @@ IslandCave_EventScript_15EF72:: @ 815EF72
IslandCave_EventScript_15EF7C:: @ 815EF7C
lockall
braillemessage IslandCave_Braille_1C54FC
- checkflag FLAG_SYS_BRAILLE_WAIT
- goto_if_eq IslandCave_EventScript_15EF95
+ goto_if_set FLAG_SYS_BRAILLE_WAIT, IslandCave_EventScript_15EF95
special DoBrailleWait
waitstate
goto IslandCave_EventScript_15EF95
diff --git a/data/scripts/maps/JaggedPass.inc b/data/scripts/maps/JaggedPass.inc
index bf1f0233d..d75420e88 100644
--- a/data/scripts/maps/JaggedPass.inc
+++ b/data/scripts/maps/JaggedPass.inc
@@ -9,11 +9,11 @@ JaggedPass_MapScript1_15D271:: @ 815D271
JaggedPass_MapScript1_15D274:: @ 815D274
compare VAR_JAGGED_PASS_ASH_WEATHER, 1
- call_if 1, JaggedPass_EventScript_15D280
+ call_if_eq JaggedPass_EventScript_15D280
end
JaggedPass_EventScript_15D280:: @ 815D280
- setweather 7
+ setweather WEATHER_ASH
doweather
return
diff --git a/data/scripts/maps/LavaridgeTown.inc b/data/scripts/maps/LavaridgeTown.inc
index 43a8ed7cd..a7f71baf6 100644
--- a/data/scripts/maps/LavaridgeTown.inc
+++ b/data/scripts/maps/LavaridgeTown.inc
@@ -5,12 +5,11 @@ LavaridgeTown_MapScripts:: @ 814E4A3
LavaridgeTown_MapScript1_14E4AE:: @ 814E4AE
setflag FLAG_VISITED_LAVARIDGE_TOWN
- checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
- call_if 1, LavaridgeTown_EventScript_14E4DF
+ call_if_set FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, LavaridgeTown_EventScript_14E4DF
call LavaridgeTown_EventScript_1A014E
call LavaridgeTown_EventScript_1A0172
compare VAR_LAVARIDGE_RIVAL_STATE, 2
- call_if 1, LavaridgeTown_EventScript_14E4D0
+ call_if_eq LavaridgeTown_EventScript_14E4D0
end
LavaridgeTown_EventScript_14E4D0:: @ 814E4D0
@@ -45,11 +44,11 @@ LavaridgeTown_EventScript_14E4ED:: @ 814E4ED
waitmovement 0
checkplayergender
compare RESULT, 0
- call_if 1, LavaridgeTown_EventScript_14E56B
+ call_if_eq LavaridgeTown_EventScript_14E56B
compare RESULT, 1
- call_if 1, LavaridgeTown_EventScript_14E570
+ call_if_eq LavaridgeTown_EventScript_14E570
compare VAR_SPECIAL_8, 1
- call_if 1, LavaridgeTown_EventScript_14E68F
+ call_if_eq LavaridgeTown_EventScript_14E68F
checkplayergender
compare RESULT, 0
goto_if_eq LavaridgeTown_EventScript_14E5AB
@@ -58,11 +57,11 @@ LavaridgeTown_EventScript_14E4ED:: @ 814E4ED
end
LavaridgeTown_EventScript_14E56B:: @ 814E56B
- playbgm 415, 1
+ playbgm BGM_GIRL_SUP, TRUE
return
LavaridgeTown_EventScript_14E570:: @ 814E570
- playbgm 421, 1
+ playbgm BGM_BOY_SUP, TRUE
return
LavaridgeTown_EventScript_14E575:: @ 814E575
@@ -71,9 +70,9 @@ LavaridgeTown_EventScript_14E575:: @ 814E575
setvar VAR_SPECIAL_8, 0
checkplayergender
compare RESULT, 0
- call_if 1, LavaridgeTown_EventScript_14E56B
+ call_if_eq LavaridgeTown_EventScript_14E56B
compare RESULT, 1
- call_if 1, LavaridgeTown_EventScript_14E570
+ call_if_eq LavaridgeTown_EventScript_14E570
checkplayergender
compare RESULT, 0
goto_if_eq LavaridgeTown_EventScript_14E5AB
@@ -100,16 +99,16 @@ LavaridgeTown_EventScript_14E5D0:: @ 814E5D0
LavaridgeTown_EventScript_14E5F5:: @ 814E5F5
closemessage
compare VAR_SPECIAL_8, 1
- call_if 1, LavaridgeTown_EventScript_14E646
+ call_if_eq LavaridgeTown_EventScript_14E646
compare VAR_SPECIAL_8, 0
- call_if 1, LavaridgeTown_EventScript_14E64E
+ call_if_eq LavaridgeTown_EventScript_14E64E
removeobject 8
addobject 7
delay 30
compare VAR_SPECIAL_8, 1
- call_if 1, LavaridgeTown_EventScript_14E69A
+ call_if_eq LavaridgeTown_EventScript_14E69A
compare VAR_SPECIAL_8, 0
- call_if 1, LavaridgeTown_EventScript_14E6A5
+ call_if_eq LavaridgeTown_EventScript_14E6A5
removeobject 7
setvar VAR_LAVARIDGE_RIVAL_STATE, 2
savebgm 0
@@ -129,13 +128,13 @@ LavaridgeTown_EventScript_14E646:: @ 814E646
LavaridgeTown_EventScript_14E64E:: @ 814E64E
compare FACING, 2
- call_if 1, LavaridgeTown_EventScript_14E67B
+ call_if_eq LavaridgeTown_EventScript_14E67B
compare FACING, 1
- call_if 1, LavaridgeTown_EventScript_14E680
+ call_if_eq LavaridgeTown_EventScript_14E680
compare FACING, 3
- call_if 1, LavaridgeTown_EventScript_14E685
+ call_if_eq LavaridgeTown_EventScript_14E685
compare FACING, 4
- call_if 1, LavaridgeTown_EventScript_14E68A
+ call_if_eq LavaridgeTown_EventScript_14E68A
return
LavaridgeTown_EventScript_14E67B:: @ 814E67B
@@ -166,13 +165,13 @@ LavaridgeTown_EventScript_14E69A:: @ 814E69A
LavaridgeTown_EventScript_14E6A5:: @ 814E6A5
compare FACING, 2
- call_if 1, LavaridgeTown_EventScript_14E6D2
+ call_if_eq LavaridgeTown_EventScript_14E6D2
compare FACING, 1
- call_if 1, LavaridgeTown_EventScript_14E6D2
+ call_if_eq LavaridgeTown_EventScript_14E6D2
compare FACING, 3
- call_if 1, LavaridgeTown_EventScript_14E6DD
+ call_if_eq LavaridgeTown_EventScript_14E6DD
compare FACING, 4
- call_if 1, LavaridgeTown_EventScript_14E6D2
+ call_if_eq LavaridgeTown_EventScript_14E6D2
return
LavaridgeTown_EventScript_14E6D2:: @ 814E6D2
@@ -272,21 +271,20 @@ LavaridgeTown_EventScript_14E751:: @ 814E751
LavaridgeTown_EventScript_14E75A:: @ 814E75A
lock
faceplayer
- checkflag FLAG_RECEIVED_LAVARIDGE_EGG
- goto_if_eq LavaridgeTown_EventScript_14E79E
- msgbox LavaridgeTown_Text_16C174, 5
- compare RESULT, 0
+ goto_if_set FLAG_RECEIVED_LAVARIDGE_EGG, LavaridgeTown_EventScript_14E79E
+ msgbox LavaridgeTown_Text_16C174, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LavaridgeTown_EventScript_14E7B2
getpartysize
compare RESULT, 6
goto_if_eq LavaridgeTown_EventScript_14E7A8
msgbox LavaridgeTown_Text_16C2B6, 4
setflag FLAG_RECEIVED_LAVARIDGE_EGG
- playfanfare 370
+ playfanfare BGM_FANFA4
message LavaridgeTown_Text_16C2EA
waitfanfare
waitmessage
- giveegg 360
+ giveegg SPECIES_WYNAUT
release
end
diff --git a/data/scripts/maps/LavaridgeTown_Gym_1F.inc b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
index 1bbad53bf..27655127a 100644
--- a/data/scripts/maps/LavaridgeTown_Gym_1F.inc
+++ b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
@@ -13,56 +13,46 @@ LavaridgeTown_Gym_1F_EventScript_15369F:: @ 815369F
setvar VAR_TEMP_D, 0
setvar VAR_TEMP_E, 0
setvar VAR_TEMP_F, 0
- checktrainerflag OPPONENT_COLE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_1536C6
+ goto_if_trainer_defeated OPPONENT_COLE, LavaridgeTown_Gym_1F_EventScript_1536C6
setvar VAR_TEMP_B, 1
LavaridgeTown_Gym_1F_EventScript_1536C6:: @ 81536C6
- checktrainerflag OPPONENT_ZANE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_1536D4
+ goto_if_trainer_defeated OPPONENT_ZANE, LavaridgeTown_Gym_1F_EventScript_1536D4
setvar VAR_TEMP_C, 1
LavaridgeTown_Gym_1F_EventScript_1536D4:: @ 81536D4
- checktrainerflag OPPONENT_AXLE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_1536E2
+ goto_if_trainer_defeated OPPONENT_AXLE, LavaridgeTown_Gym_1F_EventScript_1536E2
setvar VAR_TEMP_D, 1
LavaridgeTown_Gym_1F_EventScript_1536E2:: @ 81536E2
- checktrainerflag OPPONENT_SADIE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_1536F0
+ goto_if_trainer_defeated OPPONENT_SADIE, LavaridgeTown_Gym_1F_EventScript_1536F0
setvar VAR_TEMP_E, 1
LavaridgeTown_Gym_1F_EventScript_1536F0:: @ 81536F0
- checktrainerflag OPPONENT_ANDY
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_1536FE
+ goto_if_trainer_defeated OPPONENT_ANDY, LavaridgeTown_Gym_1F_EventScript_1536FE
setvar VAR_TEMP_F, 1
LavaridgeTown_Gym_1F_EventScript_1536FE:: @ 81536FE
return
LavaridgeTown_Gym_1F_EventScript_1536FF:: @ 81536FF
- checktrainerflag OPPONENT_COLE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_15370C
+ goto_if_trainer_defeated OPPONENT_COLE, LavaridgeTown_Gym_1F_EventScript_15370C
setobjectmovementtype 2, 63
LavaridgeTown_Gym_1F_EventScript_15370C:: @ 815370C
- checktrainerflag OPPONENT_ZANE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_153719
+ goto_if_trainer_defeated OPPONENT_ZANE, LavaridgeTown_Gym_1F_EventScript_153719
setobjectmovementtype 3, 63
LavaridgeTown_Gym_1F_EventScript_153719:: @ 8153719
- checktrainerflag OPPONENT_AXLE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_153726
+ goto_if_trainer_defeated OPPONENT_AXLE, LavaridgeTown_Gym_1F_EventScript_153726
setobjectmovementtype 4, 63
LavaridgeTown_Gym_1F_EventScript_153726:: @ 8153726
- checktrainerflag OPPONENT_SADIE
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_153733
+ goto_if_trainer_defeated OPPONENT_SADIE, LavaridgeTown_Gym_1F_EventScript_153733
setobjectmovementtype 5, 63
LavaridgeTown_Gym_1F_EventScript_153733:: @ 8153733
- checktrainerflag OPPONENT_ANDY
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_153740
+ goto_if_trainer_defeated OPPONENT_ANDY, LavaridgeTown_Gym_1F_EventScript_153740
setobjectmovementtype 7, 63
LavaridgeTown_Gym_1F_EventScript_153740:: @ 8153740
@@ -70,8 +60,7 @@ LavaridgeTown_Gym_1F_EventScript_153740:: @ 8153740
LavaridgeTown_Gym_1F_EventScript_153741:: @ 8153741
trainerbattle 1, OPPONENT_FLANNERY, 0, LavaridgeTown_Gym_1F_Text_176801, LavaridgeTown_Gym_1F_Text_176960, LavaridgeTown_Gym_1F_EventScript_153766
- checkflag FLAG_RECEIVED_TM50
- goto_if 0, LavaridgeTown_Gym_1F_EventScript_1537A7
+ goto_if_unset FLAG_RECEIVED_TM50, LavaridgeTown_Gym_1F_EventScript_1537A7
msgbox LavaridgeTown_Gym_1F_Text_176C4A, 4
release
end
@@ -85,7 +74,7 @@ LavaridgeTown_Gym_1F_EventScript_153766:: @ 8153766
setflag FLAG_BADGE04_GET
addvar VAR_PETALBURG_GYM_STATE, 1
compare VAR_PETALBURG_GYM_STATE, 6
- call_if 1, LavaridgeTown_Gym_1F_EventScript_1A00FB
+ call_if_eq LavaridgeTown_Gym_1F_EventScript_1A00FB
setvar VAR_SPECIAL_8, 4
call LavaridgeTown_Gym_1F_EventScript_1A01C0
setflag FLAG_HIDE_WALLY_WANDAS_HOUSE
@@ -94,7 +83,7 @@ LavaridgeTown_Gym_1F_EventScript_153766:: @ 8153766
end
LavaridgeTown_Gym_1F_EventScript_1537A7:: @ 81537A7
- giveitem_std ITEM_TM50
+ giveitem_std ITEM_TM50_OVERHEAT
compare RESULT, 0
goto_if_eq LavaridgeTown_Gym_1F_EventScript_1A029B
msgbox LavaridgeTown_Gym_1F_Text_176B8F, 4
@@ -135,8 +124,7 @@ LavaridgeTown_Gym_1F_EventScript_15383E:: @ 815383E
LavaridgeTown_Gym_1F_EventScript_153859:: @ 8153859
lock
faceplayer
- checkflag FLAG_DEFEATED_LAVARIDGE_GYM
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_15386E
+ goto_if_set FLAG_DEFEATED_LAVARIDGE_GYM, LavaridgeTown_Gym_1F_EventScript_15386E
msgbox LavaridgeTown_Gym_1F_Text_176312, 4
release
end
@@ -148,15 +136,13 @@ LavaridgeTown_Gym_1F_EventScript_15386E:: @ 815386E
LavaridgeTown_Gym_1F_EventScript_153878:: @ 8153878
lockall
- checkflag FLAG_BADGE04_GET
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_153898
+ goto_if_set FLAG_BADGE04_GET, LavaridgeTown_Gym_1F_EventScript_153898
goto LavaridgeTown_Gym_1F_EventScript_1538A2
end
LavaridgeTown_Gym_1F_EventScript_153888:: @ 8153888
lockall
- checkflag FLAG_BADGE04_GET
- goto_if_eq LavaridgeTown_Gym_1F_EventScript_153898
+ goto_if_set FLAG_BADGE04_GET, LavaridgeTown_Gym_1F_EventScript_153898
goto LavaridgeTown_Gym_1F_EventScript_1538A2
end
diff --git a/data/scripts/maps/LavaridgeTown_HerbShop.inc b/data/scripts/maps/LavaridgeTown_HerbShop.inc
index 913734dd5..71fc2cbfe 100644
--- a/data/scripts/maps/LavaridgeTown_HerbShop.inc
+++ b/data/scripts/maps/LavaridgeTown_HerbShop.inc
@@ -28,8 +28,7 @@ LavaridgeTown_HerbShop_EventScript_15364C:: @ 815364C
LavaridgeTown_HerbShop_EventScript_153655:: @ 8153655
lock
faceplayer
- checkflag FLAG_RECEIVED_CHARCOAL
- goto_if_eq LavaridgeTown_HerbShop_EventScript_153684
+ goto_if_set FLAG_RECEIVED_CHARCOAL, LavaridgeTown_HerbShop_EventScript_153684
msgbox LavaridgeTown_HerbShop_Text_1761A2, 4
giveitem_std ITEM_CHARCOAL
compare RESULT, 0
diff --git a/data/scripts/maps/LilycoveCity.inc b/data/scripts/maps/LilycoveCity.inc
index 5c05639fd..ee29b0f05 100644
--- a/data/scripts/maps/LilycoveCity.inc
+++ b/data/scripts/maps/LilycoveCity.inc
@@ -7,8 +7,7 @@ LilycoveCity_MapScript1_14CA20:: @ 814CA20
setflag FLAG_VISITED_LILYCOVE_CITY
setvar VAR_LINK_CONTEST_ROOM_STATE, 0
setflag FLAG_HIDE_CONTEST_REPORTER_LILYCOVE
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, LilycoveCity_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, LilycoveCity_EventScript_1A02C1
call LilycoveCity_EventScript_1A0196
call LilycoveCity_EventScript_1A014E
end
@@ -28,10 +27,8 @@ LilycoveCity_MapScript1_14CA3F:: @ 814CA3F
setmetatile 71, 6, 368, 0
setmetatile 72, 6, 445, 0
.endif
- checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
- call_if 0, LilycoveCity_EventScript_14CABE
- checkflag FLAG_BADGE07_GET
- call_if 1, LilycoveCity_EventScript_14CB2B
+ call_if_unset FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE, LilycoveCity_EventScript_14CABE
+ call_if_set FLAG_BADGE07_GET, LilycoveCity_EventScript_14CB2B
end
LilycoveCity_EventScript_14CABE:: @ 814CABE
@@ -64,8 +61,7 @@ LilycoveCity_EventScript_14CB74:: @ 814CB74
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_LILYCOVE
- goto_if_eq LilycoveCity_EventScript_14CBB4
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_LILYCOVE, LilycoveCity_EventScript_14CBB4
msgbox LilycoveCity_Text_1C5A7A, 4
random 10
addvar RESULT, ITEM_CHERI_BERRY
@@ -89,8 +85,7 @@ LilycoveCity_EventScript_14CBBE:: @ 814CBBE
LilycoveCity_EventScript_14CBC7:: @ 814CBC7
lock
faceplayer
- checkflag FLAG_BADGE07_GET
- goto_if_eq LilycoveCity_EventScript_14CBDC
+ goto_if_set FLAG_BADGE07_GET, LilycoveCity_EventScript_14CBDC
msgbox LilycoveCity_Text_168750, 4
release
end
@@ -107,8 +102,7 @@ LilycoveCity_EventScript_14CBE6:: @ 814CBE6
LilycoveCity_EventScript_14CBEF:: @ 814CBEF
lock
faceplayer
- checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
- goto_if_eq LilycoveCity_EventScript_14CC04
+ goto_if_set FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE, LilycoveCity_EventScript_14CC04
msgbox LilycoveCity_Text_1688C1, 4
release
end
@@ -121,8 +115,7 @@ LilycoveCity_EventScript_14CC04:: @ 814CC04
LilycoveCity_EventScript_14CC0E:: @ 814CC0E
lock
faceplayer
- checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
- goto_if_eq LilycoveCity_EventScript_14CC23
+ goto_if_set FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE, LilycoveCity_EventScript_14CC23
msgbox LilycoveCity_Text_1689BF, 4
release
end
@@ -147,8 +140,7 @@ LilycoveCity_EventScript_14CC3F:: @ 814CC3F
LilycoveCity_EventScript_14CC48:: @ 814CC48
lock
faceplayer
- checkflag FLAG_BADGE07_GET
- goto_if_eq LilycoveCity_EventScript_14CC5D
+ goto_if_set FLAG_BADGE07_GET, LilycoveCity_EventScript_14CC5D
msgbox LilycoveCity_Text_168C16, 4
release
end
@@ -186,8 +178,7 @@ LilycoveCity_EventScript_14CCA2:: @ 814CCA2
LilycoveCity_EventScript_14CCAC:: @ 814CCAC
lockall
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq LilycoveCity_EventScript_14CCC0
+ goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_EventScript_14CCC0
msgbox LilycoveCity_Text_168EDA, 4
releaseall
end
@@ -211,8 +202,7 @@ LilycoveCity_EventScript_14CCDC:: @ 814CCDC
LilycoveCity_EventScript_14CCE5:: @ 814CCE5
lockall
- checkflag FLAG_MET_WAILMER_TRAINER
- goto_if_eq LilycoveCity_EventScript_14CD18
+ goto_if_set FLAG_MET_WAILMER_TRAINER, LilycoveCity_EventScript_14CD18
msgbox LilycoveCity_Text_16864A, 4
applymovement LAST_TALKED, LilycoveCity_Movement_1A0839
waitmovement 0
@@ -255,12 +245,10 @@ LilycoveCity_EventScript_14CD46:: @ 814CD46
end
LilycoveCity_EventScript_14CD60:: @ 814CD60
- playbgm 415, 1
- checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
- call_if 1, LilycoveCity_EventScript_14CDB0
- checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
- call_if 0, LilycoveCity_EventScript_14CDB9
- compare RESULT, 0
+ playbgm BGM_GIRL_SUP, TRUE
+ call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_14CDB0
+ call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_14CDB9
+ compare RESULT, NO
goto_if_eq LilycoveCity_EventScript_14CDC2
msgbox LilycoveCity_Text_167B94, 4
switch VAR_STARTER_MON
@@ -270,11 +258,11 @@ LilycoveCity_EventScript_14CD60:: @ 814CD60
end
LilycoveCity_EventScript_14CDB0:: @ 814CDB0
- msgbox LilycoveCity_Text_167B55, 5
+ msgbox LilycoveCity_Text_167B55, MSGBOX_YESNO
return
LilycoveCity_EventScript_14CDB9:: @ 814CDB9
- msgbox LilycoveCity_Text_1679BF, 5
+ msgbox LilycoveCity_Text_1679BF, MSGBOX_YESNO
return
LilycoveCity_EventScript_14CDC2:: @ 814CDC2
@@ -286,12 +274,10 @@ LilycoveCity_EventScript_14CDC2:: @ 814CDC2
end
LilycoveCity_EventScript_14CDD3:: @ 814CDD3
- playbgm 421, 1
- checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
- call_if 1, LilycoveCity_EventScript_14CE23
- checkflag FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE
- call_if 0, LilycoveCity_EventScript_14CE2C
- compare RESULT, 0
+ playbgm BGM_BOY_SUP, TRUE
+ call_if_set FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_14CE23
+ call_if_unset FLAG_DECLINED_RIVAL_BATTLE_LILYCOVE, LilycoveCity_EventScript_14CE2C
+ compare RESULT, NO
goto_if_eq LilycoveCity_EventScript_14CE35
msgbox LilycoveCity_Text_1680A9, 4
switch VAR_STARTER_MON
@@ -301,11 +287,11 @@ LilycoveCity_EventScript_14CDD3:: @ 814CDD3
end
LilycoveCity_EventScript_14CE23:: @ 814CE23
- msgbox LilycoveCity_Text_168067, 5
+ msgbox LilycoveCity_Text_168067, MSGBOX_YESNO
return
LilycoveCity_EventScript_14CE2C:: @ 814CE2C
- msgbox LilycoveCity_Text_167F75, 5
+ msgbox LilycoveCity_Text_167F75, MSGBOX_YESNO
return
LilycoveCity_EventScript_14CE35:: @ 814CE35
@@ -349,20 +335,18 @@ LilycoveCity_EventScript_14CE96:: @ 814CE96
LilycoveCity_EventScript_14CEA6:: @ 814CEA6
msgbox LilycoveCity_Text_167C6B, 4
setvar RESULT, 0
- checkflag FLAG_BADGE06_GET
- call_if 1, LilycoveCity_EventScript_14CEDE
+ call_if_set FLAG_BADGE06_GET, LilycoveCity_EventScript_14CEDE
compare RESULT, 0
- call_if 1, LilycoveCity_EventScript_14CEEE
+ call_if_eq LilycoveCity_EventScript_14CEEE
compare RESULT, 1
- call_if 1, LilycoveCity_EventScript_14CEF7
+ call_if_eq LilycoveCity_EventScript_14CEF7
clearflag FLAG_HIDE_MAY_UPSTAIRS
clearflag FLAG_HIDE_MAY_PICHU_DOLL
goto LilycoveCity_EventScript_14CF6B
end
LilycoveCity_EventScript_14CEDE:: @ 814CEDE
- checkflag FLAG_BADGE08_GET
- goto_if_eq LilycoveCity_EventScript_14CEE8
+ goto_if_set FLAG_BADGE08_GET, LilycoveCity_EventScript_14CEE8
return
LilycoveCity_EventScript_14CEE8:: @ 814CEE8
@@ -374,8 +358,7 @@ LilycoveCity_EventScript_14CEEE:: @ 814CEEE
return
LilycoveCity_EventScript_14CEF7:: @ 814CEF7
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq LilycoveCity_EventScript_14CF09
+ goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_EventScript_14CF09
msgbox LilycoveCity_Text_167DDD, 4
return
@@ -386,12 +369,11 @@ LilycoveCity_EventScript_14CF09:: @ 814CF09
LilycoveCity_EventScript_14CF12:: @ 814CF12
msgbox LilycoveCity_Text_168149, 4
setvar RESULT, 0
- checkflag FLAG_BADGE06_GET
- call_if 1, LilycoveCity_EventScript_14CEDE
+ call_if_set FLAG_BADGE06_GET, LilycoveCity_EventScript_14CEDE
compare RESULT, 0
- call_if 1, LilycoveCity_EventScript_14CF47
+ call_if_eq LilycoveCity_EventScript_14CF47
compare RESULT, 1
- call_if 1, LilycoveCity_EventScript_14CF50
+ call_if_eq LilycoveCity_EventScript_14CF50
clearflag FLAG_HIDE_BRENDAN_UPSTAIRS
goto LilycoveCity_EventScript_14CF6B
end
@@ -401,8 +383,7 @@ LilycoveCity_EventScript_14CF47:: @ 814CF47
return
LilycoveCity_EventScript_14CF50:: @ 814CF50
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq LilycoveCity_EventScript_14CF62
+ goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_EventScript_14CF62
msgbox LilycoveCity_Text_168282, 4
return
diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.inc b/data/scripts/maps/LilycoveCity_ContestLobby.inc
index 377c2908d..a04629903 100644
--- a/data/scripts/maps/LilycoveCity_ContestLobby.inc
+++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc
@@ -13,8 +13,7 @@ LilycoveCity_ContestLobby_MapScript2_158877:: @ 8158877
.2byte 0
LilycoveCity_ContestLobby_EventScript_158889:: @ 8158889
- checkflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR
- goto_if_eq LilycoveCity_ContestLobby_EventScript_158898
+ goto_if_set FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR, LilycoveCity_ContestLobby_EventScript_158898
setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0
end
@@ -30,10 +29,10 @@ LilycoveCity_ContestLobby_EventScript_158898:: @ 8158898
fadescreen 1
drawcontestwinner 0
lockall
- msgbox LilycoveCity_ContestLobby_Text_1889FD, 5
- compare RESULT, 1
+ msgbox LilycoveCity_ContestLobby_Text_1889FD, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LilycoveCity_ContestLobby_EventScript_1588DE
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq LilycoveCity_ContestLobby_EventScript_158918
releaseall
end
@@ -45,7 +44,7 @@ LilycoveCity_ContestLobby_EventScript_1588DE:: @ 81588DE
setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0
specialvar RESULT, GiveMonArtistRibbon
compare RESULT, 1
- call_if 1, LilycoveCity_ContestLobby_EventScript_158948
+ call_if_eq LilycoveCity_ContestLobby_EventScript_158948
applymovement 4, LilycoveCity_ContestLobby_Movement_158A43
waitmovement 0
removeobject 4
@@ -55,8 +54,8 @@ LilycoveCity_ContestLobby_EventScript_1588DE:: @ 81588DE
end
LilycoveCity_ContestLobby_EventScript_158918:: @ 8158918
- msgbox LilycoveCity_ContestLobby_Text_188C41, 5
- compare RESULT, 1
+ msgbox LilycoveCity_ContestLobby_Text_188C41, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LilycoveCity_ContestLobby_EventScript_1588DE
msgbox LilycoveCity_ContestLobby_Text_188CBD, 4
closemessage
@@ -72,13 +71,13 @@ LilycoveCity_ContestLobby_EventScript_158948:: @ 8158948
special sub_80C4858
applymovement 4, LilycoveCity_ContestLobby_Movement_158A4E
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 4, LilycoveCity_ContestLobby_Movement_1A0833
waitmovement 0
applymovement 4, LilycoveCity_ContestLobby_Movement_158A52
waitmovement 0
msgbox LilycoveCity_ContestLobby_Text_188BB5, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
msgbox LilycoveCity_ContestLobby_Text_188C03, 4
waitfanfare
msgbox LilycoveCity_ContestLobby_Text_188C19, 4
@@ -188,8 +187,7 @@ LilycoveCity_ContestLobby_Movement_158A52:: @ 8158A52
step_end
LilycoveCity_ContestLobby_EventScript_158A5B:: @ 8158A5B
- checkflag FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR
- goto_if_eq LilycoveCity_ContestLobby_EventScript_158A6A
+ goto_if_set FLAG_HIDE_LILYCOVE_MUSEUM_CURATOR, LilycoveCity_ContestLobby_EventScript_158A6A
setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0
end
@@ -204,10 +202,10 @@ LilycoveCity_ContestLobby_EventScript_158A6A:: @ 8158A6A
lockall
fadescreen 1
drawcontestwinner 0
- msgbox LilycoveCity_ContestLobby_Text_1889FD, 5
- compare RESULT, 1
+ msgbox LilycoveCity_ContestLobby_Text_1889FD, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LilycoveCity_ContestLobby_EventScript_158AAE
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq LilycoveCity_ContestLobby_EventScript_158AE8
end
@@ -218,7 +216,7 @@ LilycoveCity_ContestLobby_EventScript_158AAE:: @ 8158AAE
setvar VAR_LILYCOVE_CONTEST_LOBBY_STATE, 0
specialvar RESULT, GiveMonArtistRibbon
compare RESULT, 1
- call_if 1, LilycoveCity_ContestLobby_EventScript_158B18
+ call_if_eq LilycoveCity_ContestLobby_EventScript_158B18
applymovement 11, LilycoveCity_ContestLobby_Movement_158B6D
waitmovement 0
removeobject 11
@@ -228,8 +226,8 @@ LilycoveCity_ContestLobby_EventScript_158AAE:: @ 8158AAE
end
LilycoveCity_ContestLobby_EventScript_158AE8:: @ 8158AE8
- msgbox LilycoveCity_ContestLobby_Text_188C41, 5
- compare RESULT, 1
+ msgbox LilycoveCity_ContestLobby_Text_188C41, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LilycoveCity_ContestLobby_EventScript_158AAE
msgbox LilycoveCity_ContestLobby_Text_188CBD, 4
closemessage
@@ -245,13 +243,13 @@ LilycoveCity_ContestLobby_EventScript_158B18:: @ 8158B18
special sub_80C4858
applymovement 11, LilycoveCity_ContestLobby_Movement_158B78
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 11, LilycoveCity_ContestLobby_Movement_1A0833
waitmovement 0
applymovement 11, LilycoveCity_ContestLobby_Movement_158B7C
waitmovement 0
msgbox LilycoveCity_ContestLobby_Text_188BB5, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
msgbox LilycoveCity_ContestLobby_Text_188C03, 4
waitfanfare
msgbox LilycoveCity_ContestLobby_Text_188C19, 4
@@ -307,8 +305,7 @@ LilycoveCity_ContestLobby_EventScript_158B85:: @ 8158B85
checkitem ITEM_CONTEST_PASS, 1
compare RESULT, 0
goto_if_eq LilycoveCity_ContestLobby_EventScript_158BBA
- checkflag FLAG_TEMP_2
- goto_if_eq LilycoveCity_ContestLobby_EventScript_158BAE
+ goto_if_set FLAG_TEMP_2, LilycoveCity_ContestLobby_EventScript_158BAE
message LilycoveCity_ContestLobby_Text_18848C
waitmessage
setflag FLAG_TEMP_2
@@ -327,8 +324,8 @@ LilycoveCity_ContestLobby_EventScript_158BBA:: @ 8158BBA
end
LilycoveCity_ContestLobby_EventScript_158BC4:: @ 8158BC4
- msgbox LilycoveCity_ContestLobby_Text_188521, 5
- compare RESULT, 0
+ msgbox LilycoveCity_ContestLobby_Text_188521, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LilycoveCity_ContestLobby_EventScript_158C35
call S_DoSaveDialog
erasebox 0, 0, 15, 9
@@ -402,8 +399,7 @@ LilycoveCity_ContestLobby_EventScript_158CC0:: @ 8158CC0
end
LilycoveCity_ContestLobby_EventScript_158CEA:: @ 8158CEA
- checkflag FLAG_TEMP_3
- call_if 0, LilycoveCity_ContestLobby_EventScript_158BC4
+ call_if_unset FLAG_TEMP_3, LilycoveCity_ContestLobby_EventScript_158BC4
message LilycoveCity_ContestLobby_Text_1886DC
waitmessage
multichoice 0, 0, 4, 0
@@ -475,7 +471,7 @@ LilycoveCity_ContestLobby_EventScript_158DD1:: @ 8158DD1
buffernumberstring 1, 32772
messageautoscroll LilycoveCity_ContestLobby_Text_188845
waitmessage
- addvar VAR_SPECIAL_4, 65535
+ addvar VAR_SPECIAL_4, -1
goto LilycoveCity_ContestLobby_EventScript_158DEE
end
@@ -496,13 +492,13 @@ LilycoveCity_ContestLobby_EventScript_158E0B:: @ 8158E0B
closemessage
applymovement 2, LilycoveCity_ContestLobby_Movement_158E9C
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 9, 2, 545, 1
setmetatile 9, 3, 609, 1
special DrawWholeMapView
applymovement 2, LilycoveCity_ContestLobby_Movement_158EA0
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 9, 2, 721, 1
setmetatile 9, 3, 729, 1
special DrawWholeMapView
@@ -635,13 +631,13 @@ LilycoveCity_ContestLobby_EventScript_158F86:: @ 8158F86
lockall
applymovement 1, LilycoveCity_ContestLobby_Movement_15900B
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 545, 1
setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, LilycoveCity_ContestLobby_Movement_15900F
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 721, 1
setmetatile 4, 3, 729, 1
special DrawWholeMapView
@@ -707,8 +703,7 @@ LilycoveCity_ContestLobby_EventScript_15901E:: @ 815901E
end
LilycoveCity_ContestLobby_EventScript_159027:: @ 8159027
- checkflag FLAG_RECEIVED_CONTEST_PASS
- goto_if 0, LilycoveCity_ContestLobby_EventScript_159039
+ goto_if_unset FLAG_RECEIVED_CONTEST_PASS, LilycoveCity_ContestLobby_EventScript_159039
msgbox LilycoveCity_ContestLobby_Text_188DDA, 2
end
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
index 3e4caf100..b80b0873b 100644
--- a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
@@ -3,10 +3,8 @@ LilycoveCity_CoveLilyMotel_1F_MapScripts:: @ 81582C4
LilycoveCity_CoveLilyMotel_1F_EventScript_1582C5:: @ 81582C5
lockall
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq LilycoveCity_CoveLilyMotel_1F_EventScript_158326
- checkflag FLAG_BADGE07_GET
- goto_if_eq LilycoveCity_CoveLilyMotel_1F_EventScript_1582FF
+ goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_CoveLilyMotel_1F_EventScript_158326
+ goto_if_set FLAG_BADGE07_GET, LilycoveCity_CoveLilyMotel_1F_EventScript_1582FF
msgbox LilycoveCity_CoveLilyMotel_1F_Text_186B71, 4
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0839
waitmovement 0
@@ -41,7 +39,7 @@ LilycoveCity_CoveLilyMotel_1F_EventScript_158326:: @ 8158326
LilycoveCity_CoveLilyMotel_1F_EventScript_15834D:: @ 815834D
lockall
- playse 21
+ playse SE_PIN
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0833
waitmovement 0
applymovement 1, LilycoveCity_CoveLilyMotel_1F_Movement_1A0835
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
index 7e221122b..06b982610 100644
--- a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
@@ -4,10 +4,8 @@ LilycoveCity_CoveLilyMotel_2F_MapScripts:: @ 81583A0
LilycoveCity_CoveLilyMotel_2F_EventScript_1583A1:: @ 81583A1
lock
faceplayer
- checkflag FLAG_TEMP_2
- call_if 0, LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7
- checkflag FLAG_TEMP_2
- call_if 1, LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
+ call_if_unset FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7
+ call_if_set FLAG_TEMP_2, LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
specialvar RESULT, CompletedHoennPokedex
compare RESULT, 1
goto_if_eq LilycoveCity_CoveLilyMotel_2F_EventScript_1583D0
@@ -20,7 +18,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_1583C7:: @ 81583C7
LilycoveCity_CoveLilyMotel_2F_EventScript_1583D0:: @ 81583D0
setflag FLAG_TEMP_2
- playfanfare 370
+ playfanfare BGM_FANFA4
waitfanfare
goto LilycoveCity_CoveLilyMotel_2F_EventScript_1583DD
end
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
index 1198054f0..f895ea99d 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
@@ -4,8 +4,7 @@ LilycoveCity_DepartmentStoreElevator_MapScripts:: @ 815A39B
LilycoveCity_DepartmentStoreElevator_EventScript_15A39C:: @ 815A39C
lock
faceplayer
- checkflag FLAG_TEMP_2
- call_if 0, LilycoveCity_DepartmentStoreElevator_EventScript_15A4CF
+ call_if_unset FLAG_TEMP_2, LilycoveCity_DepartmentStoreElevator_EventScript_15A4CF
copyvar VAR_SPECIAL_5, VAR_DEPT_STORE_FLOOR
special DisplayCurrentElevatorFloor
message LilycoveCity_DepartmentStoreElevator_Text_1A0EF6
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
index ff7722f13..e2274110c 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
@@ -5,9 +5,9 @@ LilycoveCity_DepartmentStoreRooftop_MapScripts:: @ 815A13F
LilycoveCity_DepartmentStoreRooftop_MapScript1_15A145:: @ 815A145
getpricereduction 3
compare RESULT, 1
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A15F
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A15F
compare RESULT, 0
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A163
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A163
end
LilycoveCity_DepartmentStoreRooftop_EventScript_15A15F:: @ 815A15F
@@ -53,7 +53,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A1A0:: @ 815A1A0
faceplayer
getpricereduction 3
compare RESULT, 1
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A1BA
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A1BA
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C61F, 4
release
end
@@ -88,17 +88,17 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A1DE:: @ 815A1DE
end
LilycoveCity_DepartmentStoreRooftop_EventScript_15A21C:: @ 815A21C
- setvar VAR_TEMP_0, 26
+ setvar VAR_TEMP_0, ITEM_FRESH_WATER
goto LilycoveCity_DepartmentStoreRooftop_EventScript_15A267
end
LilycoveCity_DepartmentStoreRooftop_EventScript_15A227:: @ 815A227
- setvar VAR_TEMP_0, 27
+ setvar VAR_TEMP_0, ITEM_SODA_POP
goto LilycoveCity_DepartmentStoreRooftop_EventScript_15A267
end
LilycoveCity_DepartmentStoreRooftop_EventScript_15A232:: @ 815A232
- setvar VAR_TEMP_0, 28
+ setvar VAR_TEMP_0, ITEM_LEMONADE
goto LilycoveCity_DepartmentStoreRooftop_EventScript_15A267
end
@@ -128,26 +128,26 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A260:: @ 815A260
LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
compare VAR_TEMP_1, 0
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A23D
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A23D
compare VAR_TEMP_1, 1
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A244
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A244
compare VAR_TEMP_1, 2
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A24B
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A24B
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A37A
checkitemspace VAR_TEMP_0, 1
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
compare VAR_TEMP_1, 0
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A252
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A252
compare VAR_TEMP_1, 1
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A259
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A259
compare VAR_TEMP_1, 2
- call_if 1, LilycoveCity_DepartmentStoreRooftop_EventScript_15A260
+ call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A260
updatemoneybox 0, 0
nop
bufferitemname 0, VAR_TEMP_0
- playse 106
+ playse SE_JIHANKI
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C75F, 4
giveitem VAR_TEMP_0, 1
bufferitemname 1, VAR_TEMP_0
@@ -155,11 +155,11 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
random 64
compare RESULT, 0
- goto_if 5, LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
+ goto_if_ne LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
checkitemspace VAR_TEMP_0, 1
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
- playse 106
+ playse SE_JIHANKI
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C780, 4
giveitem VAR_TEMP_0, 1
bufferitemname 1, VAR_TEMP_0
@@ -167,11 +167,11 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_15A267:: @ 815A267
msgbox LilycoveCity_DepartmentStoreRooftop_Text_1A0C8C, 4
random 64
compare RESULT, 0
- goto_if 5, LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
+ goto_if_ne LilycoveCity_DepartmentStoreRooftop_EventScript_15A36E
checkitemspace VAR_TEMP_0, 1
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_15A388
- playse 106
+ playse SE_JIHANKI
msgbox LilycoveCity_DepartmentStoreRooftop_Text_18C780, 4
giveitem VAR_TEMP_0, 1
bufferitemname 1, VAR_TEMP_0
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
index d4dedb0c2..f6b23bc05 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
@@ -10,11 +10,10 @@ LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
faceplayer
dodailyevents
compare VAR_LOTTERY_PRIZE, 0
- goto_if 5, LilycoveCity_DepartmentStore_1F_EventScript_159EB1
- checkflag FLAG_DAILY_PICKED_LOTTO_TICKET
- goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E4C
- msgbox LilycoveCity_DepartmentStore_1F_Text_1C4B5E, 5
- compare RESULT, 0
+ goto_if_ne LilycoveCity_DepartmentStore_1F_EventScript_159EB1
+ goto_if_set FLAG_DAILY_PICKED_LOTTO_TICKET, LilycoveCity_DepartmentStore_1F_EventScript_159E4C
+ msgbox LilycoveCity_DepartmentStore_1F_Text_1C4B5E, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E56
setflag FLAG_DAILY_PICKED_LOTTO_TICKET
message LilycoveCity_DepartmentStore_1F_Text_1C4CC6
@@ -25,7 +24,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
msgbox LilycoveCity_DepartmentStore_1F_Text_1C4CF6, 4
applymovement 2, LilycoveCity_DepartmentStore_1F_Movement_1A0843
waitmovement 0
- playse 4
+ playse SE_PC_ON
special DoLotteryCornerComputerEffect
special PickLotteryCornerTicket
delay 220
@@ -37,18 +36,18 @@ LilycoveCity_DepartmentStore_1F_EventScript_159D5E:: @ 8159D5E
goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E60
incrementgamestat GAME_STAT_WON_POKEMON_LOTTERY
compare VAR_SPECIAL_6, 0
- call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E3A
+ call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E3A
compare VAR_SPECIAL_6, 1
- call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E43
+ call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E43
bufferitemname 0, VAR_SPECIAL_5
compare VAR_SPECIAL_4, 1
- call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E78
+ call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E78
compare VAR_SPECIAL_4, 2
- call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E81
+ call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E81
compare VAR_SPECIAL_4, 3
- call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E8A
+ call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E8A
compare VAR_SPECIAL_4, 4
- call_if 1, LilycoveCity_DepartmentStore_1F_EventScript_159E93
+ call_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E93
giveitem_std VAR_SPECIAL_5
compare RESULT, 0
goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_159E9C
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc b/data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc
index d922d9181..907b79847 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc
@@ -25,10 +25,10 @@ LilycoveCity_DepartmentStore_4F_EventScript_15A019:: @ 815A019
.align 2
LilycoveCity_DepartmentStore_4F_Items1:: @ 815A030
- .2byte ITEM_TM38
- .2byte ITEM_TM25
- .2byte ITEM_TM14
- .2byte ITEM_TM15
+ .2byte ITEM_TM38_FIRE_BLAST
+ .2byte ITEM_TM25_THUNDER
+ .2byte ITEM_TM14_BLIZZARD
+ .2byte ITEM_TM15_HYPER_BEAM
.2byte ITEM_NONE
release
end
@@ -45,10 +45,10 @@ LilycoveCity_DepartmentStore_4F_EventScript_15A03C:: @ 815A03C
.align 2
LilycoveCity_DepartmentStore_4F_Items2:: @ 815A054
- .2byte ITEM_TM17
- .2byte ITEM_TM20
- .2byte ITEM_TM33
- .2byte ITEM_TM16
+ .2byte ITEM_TM17_PROTECT
+ .2byte ITEM_TM20_SAFEGUARD
+ .2byte ITEM_TM33_REFLECT
+ .2byte ITEM_TM16_LIGHT_SCREEN
.2byte ITEM_NONE
release
end
diff --git a/data/scripts/maps/LilycoveCity_Harbor.inc b/data/scripts/maps/LilycoveCity_Harbor.inc
index 9554b8fa4..5dc217585 100644
--- a/data/scripts/maps/LilycoveCity_Harbor.inc
+++ b/data/scripts/maps/LilycoveCity_Harbor.inc
@@ -16,8 +16,7 @@ LilycoveCity_Harbor_EventScript_1598A2:: @ 81598A2
end
LilycoveCity_Harbor_EventScript_1598BA:: @ 81598BA
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq LilycoveCity_Harbor_EventScript_1598CD
+ goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_Harbor_EventScript_1598CD
msgbox LilycoveCity_Harbor_Text_18B306, 4
release
end
@@ -47,8 +46,8 @@ LilycoveCity_Harbor_EventScript_159929:: @ 8159929
end
LilycoveCity_Harbor_EventScript_159933:: @ 8159933
- msgbox LilycoveCity_Harbor_Text_18B47D, 5
- compare RESULT, 0
+ msgbox LilycoveCity_Harbor_Text_18B47D, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LilycoveCity_Harbor_EventScript_15997E
setvar VAR_PORTHOLE_STATE, 5
call LilycoveCity_Harbor_EventScript_15998A
@@ -58,8 +57,8 @@ LilycoveCity_Harbor_EventScript_159933:: @ 8159933
end
LilycoveCity_Harbor_EventScript_15995B:: @ 815995B
- msgbox LilycoveCity_Harbor_Text_18B499, 5
- compare RESULT, 0
+ msgbox LilycoveCity_Harbor_Text_18B499, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LilycoveCity_Harbor_EventScript_15997E
call LilycoveCity_Harbor_EventScript_15998A
warp MAP_BATTLE_TOWER_OUTSIDE, 255, 19, 23
@@ -81,9 +80,9 @@ LilycoveCity_Harbor_EventScript_15998A:: @ 815998A
delay 30
hideobjectat LAST_TALKED, MAP_LILYCOVE_CITY_HARBOR
compare FACING, 2
- call_if 1, LilycoveCity_Harbor_EventScript_1599D9
+ call_if_eq LilycoveCity_Harbor_EventScript_1599D9
compare FACING, 4
- call_if 1, LilycoveCity_Harbor_EventScript_1599CE
+ call_if_eq LilycoveCity_Harbor_EventScript_1599CE
delay 30
hideobjectat 255, MAP_PETALBURG_CITY
setvar VAR_SPECIAL_4, 2
@@ -106,12 +105,9 @@ LilycoveCity_Harbor_EventScript_1599E4:: @ 81599E4
end
LilycoveCity_Harbor_EventScript_1599EE:: @ 81599EE
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if 0, LilycoveCity_Harbor_EventScript_1598BA
- checkflag FLAG_ECOUNTERED_LATIAS_OR_LATIOS
- goto_if_eq LilycoveCity_Harbor_EventScript_1598BA
- checkflag FLAG_SYS_HAS_EON_TICKET
- goto_if 0, LilycoveCity_Harbor_EventScript_1598BA
+ goto_if_unset FLAG_SYS_GAME_CLEAR, LilycoveCity_Harbor_EventScript_1598BA
+ goto_if_set FLAG_ECOUNTERED_LATIAS_OR_LATIOS, LilycoveCity_Harbor_EventScript_1598BA
+ goto_if_unset FLAG_SYS_HAS_EON_TICKET, LilycoveCity_Harbor_EventScript_1598BA
msgbox LilycoveCity_Harbor_Text_1C50F2, 4
closemessage
applymovement LAST_TALKED, LilycoveCity_Harbor_Movement_1A0841
@@ -130,9 +126,9 @@ LilycoveCity_Harbor_EventScript_1599EE:: @ 81599EE
delay 30
removeobject 4
compare FACING, 2
- call_if 1, LilycoveCity_Harbor_EventScript_1599D9
+ call_if_eq LilycoveCity_Harbor_EventScript_1599D9
compare FACING, 4
- call_if 1, LilycoveCity_Harbor_EventScript_1599CE
+ call_if_eq LilycoveCity_Harbor_EventScript_1599CE
delay 30
hideobjectat 255, MAP_PETALBURG_CITY
special ScrSpecial_HealPlayerParty
@@ -159,8 +155,7 @@ LilycoveCity_Harbor_Movement_159A89:: @ 8159A89
LilycoveCity_Harbor_EventScript_159A8D:: @ 8159A8D
lock
faceplayer
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq LilycoveCity_Harbor_EventScript_159AA2
+ goto_if_set FLAG_SYS_GAME_CLEAR, LilycoveCity_Harbor_EventScript_159AA2
msgbox LilycoveCity_Harbor_Text_18B504, 4
release
end
diff --git a/data/scripts/maps/LilycoveCity_House2.inc b/data/scripts/maps/LilycoveCity_House2.inc
index d0065c9e8..797c8f203 100644
--- a/data/scripts/maps/LilycoveCity_House2.inc
+++ b/data/scripts/maps/LilycoveCity_House2.inc
@@ -4,10 +4,9 @@ LilycoveCity_House2_MapScripts:: @ 8159BA2
LilycoveCity_House2_EventScript_159BA3:: @ 8159BA3
lock
faceplayer
- checkflag FLAG_RECEIVED_TM44
- goto_if_eq LilycoveCity_House2_EventScript_159BDA
+ goto_if_set FLAG_RECEIVED_TM44, LilycoveCity_House2_EventScript_159BDA
msgbox LilycoveCity_House2_Text_18B83C, 4
- giveitem_std ITEM_TM44
+ giveitem_std ITEM_TM44_REST
compare RESULT, 0
goto_if_eq LilycoveCity_House2_EventScript_1A029B
setflag FLAG_RECEIVED_TM44
diff --git a/data/scripts/maps/LilycoveCity_House3.inc b/data/scripts/maps/LilycoveCity_House3.inc
index 03203ed47..1a569bf5b 100644
--- a/data/scripts/maps/LilycoveCity_House3.inc
+++ b/data/scripts/maps/LilycoveCity_House3.inc
@@ -10,8 +10,8 @@ LilycoveCity_House3_MapScript1_159BEA:: @ 8159BEA
LilycoveCity_House3_EventScript_159BF3:: @ 8159BF3
lock
faceplayer
- msgbox LilycoveCity_House3_Text_18B8CC, 5
- compare RESULT, 0
+ msgbox LilycoveCity_House3_Text_18B8CC, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LilycoveCity_House3_EventScript_159C1D
msgbox LilycoveCity_House3_Text_18BA2B, 4
closemessage
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
index 5d5b04114..95338f231 100644
--- a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
@@ -22,10 +22,10 @@ LilycoveCity_LilycoveMuseum_1F_EventScript_15844F:: @ 815844F
end
LilycoveCity_LilycoveMuseum_1F_EventScript_158458:: @ 8158458
- msgbox LilycoveCity_LilycoveMuseum_1F_Text_187495, 5
- compare RESULT, 0
+ msgbox LilycoveCity_LilycoveMuseum_1F_Text_187495, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_158477
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq LilycoveCity_LilycoveMuseum_1F_EventScript_158481
end
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
index 120054e91..9cf3ecbd7 100644
--- a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
@@ -4,32 +4,27 @@ LilycoveCity_LilycoveMuseum_2F_MapScripts:: @ 81585AC
.byte 0
LilycoveCity_LilycoveMuseum_2F_MapScript1_1585B7:: @ 81585B7
- checkflag FLAG_COOL_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD
+ goto_if_set FLAG_COOL_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585C6:: @ 81585C6
- checkflag FLAG_BEAUTY_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158615
+ goto_if_set FLAG_BEAUTY_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_158615
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585D5:: @ 81585D5
- checkflag FLAG_CUTE_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15862D
+ goto_if_set FLAG_CUTE_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_15862D
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585E4:: @ 81585E4
- checkflag FLAG_SMART_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158645
+ goto_if_set FLAG_SMART_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_158645
goto LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585F3:: @ 81585F3
- checkflag FLAG_TOUGH_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15865D
+ goto_if_set FLAG_TOUGH_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_15865D
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1585FD:: @ 81585FD
@@ -96,8 +91,7 @@ LilycoveCity_LilycoveMuseum_2F_Movement_1586D5:: @ 81586D5
LilycoveCity_LilycoveMuseum_2F_EventScript_1586D8:: @ 81586D8
lockall
- checkflag FLAG_RECEIVED_GLASS_ORNAMENT
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158793
+ goto_if_set FLAG_RECEIVED_GLASS_ORNAMENT, LilycoveCity_LilycoveMuseum_2F_EventScript_158793
specialvar VAR_SPECIAL_4, sub_80C4D50
switch VAR_SPECIAL_4
case 1, LilycoveCity_LilycoveMuseum_2F_EventScript_15872C
@@ -146,36 +140,31 @@ LilycoveCity_LilycoveMuseum_2F_EventScript_158793:: @ 8158793
LilycoveCity_LilycoveMuseum_2F_EventScript_15879D:: @ 815879D
lockall
- checkflag FLAG_CUTE_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15883C
+ goto_if_set FLAG_CUTE_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_15883C
msgbox LilycoveCity_LilycoveMuseum_2F_Text_188219, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587B0:: @ 81587B0
lockall
- checkflag FLAG_TOUGH_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158858
+ goto_if_set FLAG_TOUGH_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_158858
msgbox LilycoveCity_LilycoveMuseum_2F_Text_18824C, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587C3:: @ 81587C3
lockall
- checkflag FLAG_COOL_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_158820
+ goto_if_set FLAG_COOL_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_158820
msgbox LilycoveCity_LilycoveMuseum_2F_Text_1882B4, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587D6:: @ 81587D6
lockall
- checkflag FLAG_BEAUTY_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15882E
+ goto_if_set FLAG_BEAUTY_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_15882E
msgbox LilycoveCity_LilycoveMuseum_2F_Text_188281, 3
end
LilycoveCity_LilycoveMuseum_2F_EventScript_1587E9:: @ 81587E9
lockall
- checkflag FLAG_SMART_PAINTING_MADE
- goto_if_eq LilycoveCity_LilycoveMuseum_2F_EventScript_15884A
+ goto_if_set FLAG_SMART_PAINTING_MADE, LilycoveCity_LilycoveMuseum_2F_EventScript_15884A
msgbox LilycoveCity_LilycoveMuseum_2F_Text_1882E6, 3
end
diff --git a/data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc b/data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc
index a3c8d23af..8b8500a9c 100644
--- a/data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc
+++ b/data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc
@@ -5,10 +5,10 @@ LilycoveCity_MoveDeletersHouse_EventScript_159AAE:: @ 8159AAE
lockall
applymovement 1, LilycoveCity_MoveDeletersHouse_Movement_1A0839
waitmovement 0
- msgbox LilycoveCity_MoveDeletersHouse_Text_18B622, 5
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B622, MSGBOX_YESNO
switch RESULT
- case 1, LilycoveCity_MoveDeletersHouse_EventScript_159ADE
- case 0, LilycoveCity_MoveDeletersHouse_EventScript_159B7B
+ case YES, LilycoveCity_MoveDeletersHouse_EventScript_159ADE
+ case NO, LilycoveCity_MoveDeletersHouse_EventScript_159B7B
releaseall
end
@@ -31,16 +31,16 @@ LilycoveCity_MoveDeletersHouse_EventScript_159ADE:: @ 8159ADE
compare VAR_SPECIAL_5, 4
goto_if_eq LilycoveCity_MoveDeletersHouse_EventScript_159ADE
special ScrSpecial_GetPokemonNicknameAndMoveName
- msgbox LilycoveCity_MoveDeletersHouse_Text_18B6F2, 5
+ msgbox LilycoveCity_MoveDeletersHouse_Text_18B6F2, MSGBOX_YESNO
switch RESULT
- case 1, LilycoveCity_MoveDeletersHouse_EventScript_159B53
- case 0, LilycoveCity_MoveDeletersHouse_EventScript_159B7B
+ case YES, LilycoveCity_MoveDeletersHouse_EventScript_159B53
+ case NO, LilycoveCity_MoveDeletersHouse_EventScript_159B7B
releaseall
end
LilycoveCity_MoveDeletersHouse_EventScript_159B53:: @ 8159B53
special DeleteMonMove
- playfanfare 378
+ playfanfare BGM_ME_WASURE
waitfanfare
msgbox LilycoveCity_MoveDeletersHouse_Text_18B71E, 4
releaseall
diff --git a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
index f6eb35c98..cff88caf0 100644
--- a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
@@ -21,8 +21,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_15933F:: @ 815933F
LilycoveCity_PokemonCenter_1F_EventScript_159348:: @ 8159348
lock
faceplayer
- checkflag FLAG_BADGE07_GET
- goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_15935D
+ goto_if_set FLAG_BADGE07_GET, LilycoveCity_PokemonCenter_1F_EventScript_15935D
msgbox LilycoveCity_PokemonCenter_1F_Text_18A048, 4
release
end
diff --git a/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc b/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc
index 4656f0182..85ee953ac 100644
--- a/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc
+++ b/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc
@@ -72,35 +72,35 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_159429:: @ 8159429
setvar VAR_SPECIAL_4, 8
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594D5
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_1594D5
setvar VAR_SPECIAL_4, 9
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594DD
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_1594DD
setvar VAR_SPECIAL_4, 10
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594E5
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_1594E5
setvar VAR_SPECIAL_4, 11
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594ED
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_1594ED
setvar VAR_SPECIAL_4, 12
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594F5
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_1594F5
setvar VAR_SPECIAL_4, 13
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_1594FD
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_1594FD
setvar VAR_SPECIAL_4, 14
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_159505
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_159505
setvar VAR_SPECIAL_4, 15
specialvar RESULT, ShouldMoveLilycoveFanClubMember
compare RESULT, 0
- call_if 1, LilycoveCity_PokemonTrainerFanClub_EventScript_15950D
+ call_if_eq LilycoveCity_PokemonTrainerFanClub_EventScript_15950D
end
LilycoveCity_PokemonTrainerFanClub_EventScript_1594D5:: @ 81594D5
diff --git a/data/scripts/maps/LittlerootTown.inc b/data/scripts/maps/LittlerootTown.inc
index c11546bb5..57ad9aae5 100644
--- a/data/scripts/maps/LittlerootTown.inc
+++ b/data/scripts/maps/LittlerootTown.inc
@@ -6,19 +6,18 @@ LittlerootTown_MapScripts:: @ 814D509
LittlerootTown_MapScript1_14D514:: @ 814D514
setflag FLAG_VISITED_LITTLEROOT_TOWN
compare VAR_LITTLEROOT_INTRO_STATE, 2
- call_if 1, LittlerootTown_EventScript_14D57B
- checkflag FLAG_RESCUED_BIRCH
- call_if 0, LittlerootTown_EventScript_14D583
+ call_if_eq LittlerootTown_EventScript_14D57B
+ call_if_unset FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_14D583
compare VAR_LITTLEROOT_STATE, 3
- call_if 1, LittlerootTown_EventScript_14D5A6
+ call_if_eq LittlerootTown_EventScript_14D5A6
compare VAR_LITTLEROOT_HOUSES_STATE, 4
- call_if 1, LittlerootTown_EventScript_14D570
+ call_if_eq LittlerootTown_EventScript_14D570
compare VAR_LITTLEROOT_HOUSES_STATE_2, 4
- call_if 1, LittlerootTown_EventScript_14D570
+ call_if_eq LittlerootTown_EventScript_14D570
compare VAR_OLDALE_STATE, 1
- call_if 1, LittlerootTown_EventScript_14D567
+ call_if_eq LittlerootTown_EventScript_14D567
compare VAR_LITTLEROOT_RIVAL_STATE, 3
- call_if 1, LittlerootTown_EventScript_14D563
+ call_if_eq LittlerootTown_EventScript_14D563
end
LittlerootTown_EventScript_14D563:: @ 814D563
@@ -56,9 +55,9 @@ LittlerootTown_EventScript_14D5A6:: @ 814D5A6
setobjectmovementtype 4, 8
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D5C5
+ call_if_eq LittlerootTown_EventScript_14D5C5
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D5CD
+ call_if_eq LittlerootTown_EventScript_14D5CD
return
LittlerootTown_EventScript_14D5C5:: @ 814D5C5
@@ -99,7 +98,7 @@ LittlerootTown_EventScript_14D60D:: @ 814D60D
LittlerootTown_EventScript_14D62B:: @ 814D62B
delay 15
- playse 10
+ playse SE_DANSA
applymovement 255, LittlerootTown_Movement_14D6C0
waitmovement 0
opendoor VAR_SPECIAL_4, VAR_SPECIAL_5
@@ -187,12 +186,10 @@ LittlerootTown_EventScript_14D6D6:: @ 814D6D6
LittlerootTown_EventScript_14D6DF:: @ 814D6DF
lock
faceplayer
- checkflag FLAG_ADVENTURE_STARTED
- goto_if_eq LittlerootTown_EventScript_14D72F
- checkflag FLAG_RESCUED_BIRCH
- goto_if_eq LittlerootTown_EventScript_14D722
+ goto_if_set FLAG_ADVENTURE_STARTED, LittlerootTown_EventScript_14D72F
+ goto_if_set FLAG_RESCUED_BIRCH, LittlerootTown_EventScript_14D722
compare VAR_LITTLEROOT_STATE, 0
- goto_if 5, LittlerootTown_EventScript_14D708
+ goto_if_ne LittlerootTown_EventScript_14D708
msgbox LittlerootTown_Text_16ACEB, 4
release
end
@@ -335,9 +332,9 @@ LittlerootTown_EventScript_14D808:: @ 814D808
lockall
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D822
+ call_if_eq LittlerootTown_EventScript_14D822
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D82B
+ call_if_eq LittlerootTown_EventScript_14D82B
releaseall
end
@@ -353,9 +350,9 @@ LittlerootTown_EventScript_14D834:: @ 814D834
lockall
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D84E
+ call_if_eq LittlerootTown_EventScript_14D84E
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D857
+ call_if_eq LittlerootTown_EventScript_14D857
releaseall
end
@@ -408,27 +405,27 @@ LittlerootTown_EventScript_14D8AA:: @ 814D8AA
LittlerootTown_EventScript_14D8B6:: @ 814D8B6
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D93C
+ call_if_eq LittlerootTown_EventScript_14D93C
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D947
+ call_if_eq LittlerootTown_EventScript_14D947
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D926
+ call_if_eq LittlerootTown_EventScript_14D926
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D931
+ call_if_eq LittlerootTown_EventScript_14D931
msgbox LittlerootTown_Text_16A8EE, 4
closemessage
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D952
+ call_if_eq LittlerootTown_EventScript_14D952
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D995
+ call_if_eq LittlerootTown_EventScript_14D995
call LittlerootTown_EventScript_14DD38
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14DAAA
+ call_if_eq LittlerootTown_EventScript_14DAAA
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14DAED
+ call_if_eq LittlerootTown_EventScript_14DAED
goto LittlerootTown_EventScript_14DD2B
end
@@ -454,32 +451,32 @@ LittlerootTown_EventScript_14D947:: @ 814D947
LittlerootTown_EventScript_14D952:: @ 814D952
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_EventScript_14D9D8
+ call_if_eq LittlerootTown_EventScript_14D9D8
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_EventScript_14D9ED
+ call_if_eq LittlerootTown_EventScript_14D9ED
compare VAR_SPECIAL_8, 2
- call_if 1, LittlerootTown_EventScript_14DA02
+ call_if_eq LittlerootTown_EventScript_14DA02
compare VAR_SPECIAL_8, 3
- call_if 1, LittlerootTown_EventScript_14DA17
+ call_if_eq LittlerootTown_EventScript_14DA17
compare VAR_SPECIAL_8, 4
- call_if 1, LittlerootTown_EventScript_14DA2C
+ call_if_eq LittlerootTown_EventScript_14DA2C
compare VAR_SPECIAL_8, 5
- call_if 1, LittlerootTown_EventScript_14DA41
+ call_if_eq LittlerootTown_EventScript_14DA41
return
LittlerootTown_EventScript_14D995:: @ 814D995
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_EventScript_14D9D8
+ call_if_eq LittlerootTown_EventScript_14D9D8
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_EventScript_14D9ED
+ call_if_eq LittlerootTown_EventScript_14D9ED
compare VAR_SPECIAL_8, 2
- call_if 1, LittlerootTown_EventScript_14DA56
+ call_if_eq LittlerootTown_EventScript_14DA56
compare VAR_SPECIAL_8, 3
- call_if 1, LittlerootTown_EventScript_14DA6B
+ call_if_eq LittlerootTown_EventScript_14DA6B
compare VAR_SPECIAL_8, 4
- call_if 1, LittlerootTown_EventScript_14DA80
+ call_if_eq LittlerootTown_EventScript_14DA80
compare VAR_SPECIAL_8, 5
- call_if 1, LittlerootTown_EventScript_14DA95
+ call_if_eq LittlerootTown_EventScript_14DA95
return
LittlerootTown_EventScript_14D9D8:: @ 814D9D8
@@ -554,32 +551,32 @@ LittlerootTown_EventScript_14DA95:: @ 814DA95
LittlerootTown_EventScript_14DAAA:: @ 814DAAA
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_EventScript_14DB30
+ call_if_eq LittlerootTown_EventScript_14DB30
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_EventScript_14DB3B
+ call_if_eq LittlerootTown_EventScript_14DB3B
compare VAR_SPECIAL_8, 2
- call_if 1, LittlerootTown_EventScript_14DB46
+ call_if_eq LittlerootTown_EventScript_14DB46
compare VAR_SPECIAL_8, 3
- call_if 1, LittlerootTown_EventScript_14DB6C
+ call_if_eq LittlerootTown_EventScript_14DB6C
compare VAR_SPECIAL_8, 4
- call_if 1, LittlerootTown_EventScript_14DB92
+ call_if_eq LittlerootTown_EventScript_14DB92
compare VAR_SPECIAL_8, 5
- call_if 1, LittlerootTown_EventScript_14DBB8
+ call_if_eq LittlerootTown_EventScript_14DBB8
return
LittlerootTown_EventScript_14DAED:: @ 814DAED
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_EventScript_14DB30
+ call_if_eq LittlerootTown_EventScript_14DB30
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_EventScript_14DB3B
+ call_if_eq LittlerootTown_EventScript_14DB3B
compare VAR_SPECIAL_8, 2
- call_if 1, LittlerootTown_EventScript_14DBDE
+ call_if_eq LittlerootTown_EventScript_14DBDE
compare VAR_SPECIAL_8, 3
- call_if 1, LittlerootTown_EventScript_14DC04
+ call_if_eq LittlerootTown_EventScript_14DC04
compare VAR_SPECIAL_8, 4
- call_if 1, LittlerootTown_EventScript_14DC2A
+ call_if_eq LittlerootTown_EventScript_14DC2A
compare VAR_SPECIAL_8, 5
- call_if 1, LittlerootTown_EventScript_14DC50
+ call_if_eq LittlerootTown_EventScript_14DC50
return
LittlerootTown_EventScript_14DB30:: @ 814DB30
@@ -843,9 +840,9 @@ LittlerootTown_EventScript_14DCE2:: @ 814DCE2
faceplayer
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_EventScript_14D926
+ call_if_eq LittlerootTown_EventScript_14D926
compare RESULT, 1
- call_if 1, LittlerootTown_EventScript_14D931
+ call_if_eq LittlerootTown_EventScript_14D931
call LittlerootTown_EventScript_14DD38
applymovement 4, LittlerootTown_Movement_1A0841
waitmovement 0
@@ -868,7 +865,7 @@ LittlerootTown_EventScript_14DD2B:: @ 814DD2B
LittlerootTown_EventScript_14DD38:: @ 814DD38
msgbox LittlerootTown_Text_16A8FD, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
message LittlerootTown_Text_16AA32
waitfanfare
waitmessage
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
index 4ce1e277a..1de2e91a4 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
@@ -6,9 +6,8 @@ LittlerootTown_BrendansHouse_1F_MapScripts:: @ 815263B
LittlerootTown_BrendansHouse_1F_MapScript1_15264B:: @ 815264B
compare VAR_LITTLEROOT_INTRO_STATE, 6
- call_if 0, LittlerootTown_BrendansHouse_1F_EventScript_152660
- checkflag FLAG_RECEIVED_RUNNING_SHOES
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_152673
+ call_if_lt LittlerootTown_BrendansHouse_1F_EventScript_152660
+ call_if_set FLAG_RECEIVED_RUNNING_SHOES, LittlerootTown_BrendansHouse_1F_EventScript_152673
end
LittlerootTown_BrendansHouse_1F_EventScript_152660:: @ 8152660
@@ -28,11 +27,11 @@ LittlerootTown_BrendansHouse_1F_EventScript_152680:: @ 8152680
LittlerootTown_BrendansHouse_1F_MapScript1_15268A:: @ 815268A
compare VAR_LITTLEROOT_INTRO_STATE, 3
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1526C4
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1526C4
compare VAR_LITTLEROOT_INTRO_STATE, 5
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1526AC
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1526AC
compare VAR_LITTLEROOT_INTRO_STATE, 6
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1526B8
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1526B8
end
LittlerootTown_BrendansHouse_1F_EventScript_1526AC:: @ 81526AC
@@ -90,7 +89,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_152733:: @ 8152733
LittlerootTown_BrendansHouse_1F_EventScript_152744:: @ 8152744
lockall
- playse 21
+ playse SE_PIN
applymovement 4, LittlerootTown_BrendansHouse_1F_Movement_1A0833
waitmovement 0
applymovement 4, LittlerootTown_BrendansHouse_1F_Movement_1A0835
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
index e0e1a1086..ed6818fa0 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
@@ -4,10 +4,9 @@ LittlerootTown_BrendansHouse_2F_MapScripts:: @ 81527A4
.byte 0
LittlerootTown_BrendansHouse_2F_MapScript1_1527AF:: @ 81527AF
- checkflag FLAG_DEFEATED_RIVAL_ROUTE103
- call_if 0, LittlerootTown_BrendansHouse_2F_EventScript_1527CE
+ call_if_unset FLAG_DEFEATED_RIVAL_ROUTE103, LittlerootTown_BrendansHouse_2F_EventScript_1527CE
compare VAR_LITTLEROOT_INTRO_STATE, 4
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_1B6950
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1B6950
call LittlerootTown_BrendansHouse_2F_EventScript_1A2F3D
setvar VAR_0x4089, 0
end
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
index af7a2976b..8096589aa 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
@@ -6,9 +6,8 @@ LittlerootTown_MaysHouse_1F_MapScripts:: @ 8152879
LittlerootTown_MaysHouse_1F_MapScript1_152889:: @ 8152889
compare VAR_LITTLEROOT_INTRO_STATE, 6
- call_if 0, LittlerootTown_MaysHouse_1F_EventScript_15289E
- checkflag FLAG_RECEIVED_RUNNING_SHOES
- call_if 1, LittlerootTown_MaysHouse_1F_EventScript_1528B1
+ call_if_lt LittlerootTown_MaysHouse_1F_EventScript_15289E
+ call_if_set FLAG_RECEIVED_RUNNING_SHOES, LittlerootTown_MaysHouse_1F_EventScript_1528B1
end
LittlerootTown_MaysHouse_1F_EventScript_15289E:: @ 815289E
@@ -28,11 +27,11 @@ LittlerootTown_MaysHouse_1F_EventScript_1528BE:: @ 81528BE
LittlerootTown_MaysHouse_1F_MapScript1_1528C8:: @ 81528C8
compare VAR_LITTLEROOT_INTRO_STATE, 3
- call_if 1, LittlerootTown_MaysHouse_1F_EventScript_152902
+ call_if_eq LittlerootTown_MaysHouse_1F_EventScript_152902
compare VAR_LITTLEROOT_INTRO_STATE, 5
- call_if 1, LittlerootTown_MaysHouse_1F_EventScript_1528EA
+ call_if_eq LittlerootTown_MaysHouse_1F_EventScript_1528EA
compare VAR_LITTLEROOT_INTRO_STATE, 6
- call_if 1, LittlerootTown_MaysHouse_1F_EventScript_1528F6
+ call_if_eq LittlerootTown_MaysHouse_1F_EventScript_1528F6
end
LittlerootTown_MaysHouse_1F_EventScript_1528EA:: @ 81528EA
@@ -90,7 +89,7 @@ LittlerootTown_MaysHouse_1F_EventScript_152971:: @ 8152971
LittlerootTown_MaysHouse_1F_EventScript_152982:: @ 8152982
lockall
- playse 21
+ playse SE_PIN
applymovement 4, LittlerootTown_MaysHouse_1F_Movement_1A0833
waitmovement 0
applymovement 4, LittlerootTown_MaysHouse_1F_Movement_1A0835
@@ -118,9 +117,9 @@ LittlerootTown_MaysHouse_1F_Movement_1529C0:: @ 81529C0
lockall
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_MaysHouse_1F_EventScript_1529E1
+ call_if_eq LittlerootTown_MaysHouse_1F_EventScript_1529E1
compare RESULT, 1
- call_if 1, LittlerootTown_MaysHouse_1F_EventScript_1529E2
+ call_if_eq LittlerootTown_MaysHouse_1F_EventScript_1529E2
releaseall
end
@@ -135,10 +134,8 @@ LittlerootTown_BrendansHouse_1F_EventScript_1529EB:: @ 81529EB
LittlerootTown_MaysHouse_1F_EventScript_1529EB:: @ 81529EB
lock
faceplayer
- checkflag FLAG_DEFEATED_RIVAL_ROUTE103
- goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_152A21
- checkflag FLAG_RIVAL_LEFT_FOR_ROUTE103
- goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_152A17
+ goto_if_set FLAG_DEFEATED_RIVAL_ROUTE103, LittlerootTown_BrendansHouse_1F_EventScript_152A21
+ goto_if_set FLAG_RIVAL_LEFT_FOR_ROUTE103, LittlerootTown_BrendansHouse_1F_EventScript_152A17
compare VAR_LITTLEROOT_RIVAL_STATE, 3
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_152A2B
special GetRivalSonDaughterString
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
index 8bd9a01d2..ede58e7a5 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
@@ -4,10 +4,9 @@ LittlerootTown_MaysHouse_2F_MapScripts:: @ 8152A50
.byte 0
LittlerootTown_MaysHouse_2F_MapScript1_152A5B:: @ 8152A5B
- checkflag FLAG_DEFEATED_RIVAL_ROUTE103
- call_if 0, LittlerootTown_MaysHouse_2F_EventScript_152A7A
+ call_if_unset FLAG_DEFEATED_RIVAL_ROUTE103, LittlerootTown_MaysHouse_2F_EventScript_152A7A
compare VAR_LITTLEROOT_INTRO_STATE, 4
- call_if 1, LittlerootTown_MaysHouse_2F_EventScript_1B6950
+ call_if_eq LittlerootTown_MaysHouse_2F_EventScript_1B6950
call LittlerootTown_MaysHouse_2F_EventScript_1A2F3D
setvar VAR_0x4089, 0
end
@@ -30,14 +29,13 @@ LittlerootTown_MaysHouse_2F_EventScript_152A90:: @ 8152A90
LittlerootTown_BrendansHouse_2F_EventScript_152A9D:: @ 8152A9D
LittlerootTown_MaysHouse_2F_EventScript_152A9D:: @ 8152A9D
lockall
- checkflag FLAG_MET_RIVAL_LILYCOVE
- goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BB5
+ goto_if_set FLAG_MET_RIVAL_LILYCOVE, LittlerootTown_BrendansHouse_2F_EventScript_152BB5
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152AD4
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152AD4
compare RESULT, 1
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152B4A
- playse 9
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152B4A
+ playse SE_KAIDAN
removeobject LAST_TALKED
setvar VAR_LITTLEROOT_RIVAL_STATE, 3
setvar VAR_LITTLEROOT_STATE, 1
@@ -48,7 +46,7 @@ LittlerootTown_MaysHouse_2F_EventScript_152A9D:: @ 8152A9D
LittlerootTown_BrendansHouse_2F_EventScript_152AD4:: @ 8152AD4
msgbox LittlerootTown_BrendansHouse_2F_Text_17337E, 4
- playbgm 415, 1
+ playbgm BGM_GIRL_SUP, TRUE
applymovement LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0839
waitmovement 0
applymovement LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0833
@@ -58,11 +56,11 @@ LittlerootTown_BrendansHouse_2F_EventScript_152AD4:: @ 8152AD4
msgbox LittlerootTown_BrendansHouse_2F_Text_1733AF, 4
closemessage
compare FACING, 4
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152B29
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152B29
compare FACING, 2
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152B34
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152B34
compare FACING, 3
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152B3F
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152B3F
return
LittlerootTown_BrendansHouse_2F_EventScript_152B29:: @ 8152B29
@@ -82,7 +80,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_152B3F:: @ 8152B3F
LittlerootTown_BrendansHouse_2F_EventScript_152B4A:: @ 8152B4A
msgbox LittlerootTown_BrendansHouse_2F_Text_1735C9, 4
- playbgm 421, 1
+ playbgm BGM_BOY_SUP, TRUE
applymovement LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0839
waitmovement 0
applymovement LAST_TALKED, LittlerootTown_BrendansHouse_2F_Movement_1A0833
@@ -92,11 +90,11 @@ LittlerootTown_BrendansHouse_2F_EventScript_152B4A:: @ 8152B4A
msgbox LittlerootTown_BrendansHouse_2F_Text_1735FC, 4
closemessage
compare FACING, 4
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152B9F
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152B9F
compare FACING, 2
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152B9F
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152B9F
compare FACING, 3
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152BAA
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BAA
return
LittlerootTown_BrendansHouse_2F_EventScript_152B9F:: @ 8152B9F
@@ -114,22 +112,20 @@ LittlerootTown_BrendansHouse_2F_EventScript_152BB5:: @ 8152BB5
waitmovement 0
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152BDB
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BDB
compare RESULT, 1
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_152BED
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BED
setflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE
releaseall
end
LittlerootTown_BrendansHouse_2F_EventScript_152BDB:: @ 8152BDB
- checkflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE
- goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152BFF
+ goto_if_set FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE, LittlerootTown_BrendansHouse_2F_EventScript_152BFF
msgbox LittlerootTown_BrendansHouse_2F_Text_1737AE, 4
return
LittlerootTown_BrendansHouse_2F_EventScript_152BED:: @ 8152BED
- checkflag FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE
- goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_152C08
+ goto_if_set FLAG_MET_RIVAL_IN_HOUSE_AFTER_LILYCOVE, LittlerootTown_BrendansHouse_2F_EventScript_152C08
msgbox LittlerootTown_BrendansHouse_2F_Text_1738F2, 4
return
diff --git a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
index 44adab6f1..7608ba65d 100644
--- a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
+++ b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
@@ -27,12 +27,12 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152CBE:: @ 8152CBE
bufferleadmonspeciesname 0
message LittlerootTown_ProfessorBirchsLab_Text_173D94
waitmessage
- playfanfare 370
+ playfanfare BGM_FANFA4
waitfanfare
- msgbox LittlerootTown_ProfessorBirchsLab_Text_173EF8, 5
- compare RESULT, 1
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173EF8, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152CEA
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152CFA
end
@@ -43,10 +43,10 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152CEA:: @ 8152CEA
end
LittlerootTown_ProfessorBirchsLab_EventScript_152CFA:: @ 8152CFA
- msgbox LittlerootTown_ProfessorBirchsLab_Text_173F3D, 5
- compare RESULT, 1
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_173F3D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152D19
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152D2B
end
@@ -58,10 +58,10 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152D19:: @ 8152D19
end
LittlerootTown_ProfessorBirchsLab_EventScript_152D2B:: @ 8152D2B
- msgbox LittlerootTown_ProfessorBirchsLab_Text_174075, 5
- compare RESULT, 1
+ msgbox LittlerootTown_ProfessorBirchsLab_Text_174075, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152D19
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152D2B
end
@@ -86,9 +86,8 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152D63:: @ 8152D63
lock
faceplayer
compare VAR_BIRCH_LAB_STATE, 3
- goto_if 4, LittlerootTown_ProfessorBirchsLab_EventScript_152D90
- checkflag FLAG_BIRCH_AIDE_MET
- goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152D86
+ goto_if_ge LittlerootTown_ProfessorBirchsLab_EventScript_152D90
+ goto_if_set FLAG_BIRCH_AIDE_MET, LittlerootTown_ProfessorBirchsLab_EventScript_152D86
msgbox LittlerootTown_ProfessorBirchsLab_Text_173B29, 4
setflag FLAG_BIRCH_AIDE_MET
release
@@ -107,8 +106,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152D90:: @ 8152D90
LittlerootTown_ProfessorBirchsLab_EventScript_152D9A:: @ 8152D9A
lock
faceplayer
- checkflag FLAG_UNKNOWN_BIRCH_380
- goto_if 0, LittlerootTown_ProfessorBirchsLab_EventScript_1A037F
+ goto_if_unset FLAG_UNKNOWN_BIRCH_380, LittlerootTown_ProfessorBirchsLab_EventScript_1A037F
compare VAR_BIRCH_LAB_STATE, 5
goto_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152E7B
msgbox LittlerootTown_ProfessorBirchsLab_Text_1740B4, 4
@@ -125,9 +123,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152DBA:: @ 8152DBA
waitmovement 0
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E13
+ call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152E13
compare RESULT, 1
- call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E40
+ call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152E40
setvar VAR_BIRCH_LAB_STATE, 5
setflag FLAG_ADVENTURE_STARTED
setvar VAR_ROUTE102_ACCESSIBLE, 1
@@ -140,7 +138,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152E13:: @ 8152E13
msgbox LittlerootTown_ProfessorBirchsLab_Text_1743D4, 4
giveitem_std ITEM_POKE_BALL, 5
compare RESULT, 0
- call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E85
+ call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152E85
msgbox LittlerootTown_ProfessorBirchsLab_Text_17443D, 4
setvar RESULT, 0
return
@@ -149,13 +147,13 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152E40:: @ 8152E40
msgbox LittlerootTown_ProfessorBirchsLab_Text_17453C, 4
giveitem_std ITEM_POKE_BALL, 5
compare RESULT, 0
- call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152E8E
+ call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152E8E
msgbox LittlerootTown_ProfessorBirchsLab_Text_17458C, 4
setvar RESULT, 1
return
LittlerootTown_ProfessorBirchsLab_EventScript_152E6D:: @ 8152E6D
- playfanfare 370
+ playfanfare BGM_FANFA4
message LittlerootTown_ProfessorBirchsLab_Text_17422F
waitfanfare
waitmessage
@@ -189,9 +187,9 @@ LittlerootTown_ProfessorBirchsLab_EventScript_152EA3:: @ 8152EA3
faceplayer
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152EBE
+ call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152EBE
compare RESULT, 1
- call_if 1, LittlerootTown_ProfessorBirchsLab_EventScript_152EC7
+ call_if_eq LittlerootTown_ProfessorBirchsLab_EventScript_152EC7
release
end
diff --git a/data/scripts/maps/MagmaHideout_B1F.inc b/data/scripts/maps/MagmaHideout_B1F.inc
index 6dbdc0461..a55d260ab 100644
--- a/data/scripts/maps/MagmaHideout_B1F.inc
+++ b/data/scripts/maps/MagmaHideout_B1F.inc
@@ -3,8 +3,7 @@ MagmaHideout_B1F_MapScripts:: @ 815F2A8
.byte 0
MagmaHideout_B1F_MapScript1_15F2AE:: @ 815F2AE
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, MagmaHideout_B1F_EventScript_15F2B8
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, MagmaHideout_B1F_EventScript_15F2B8
end
MagmaHideout_B1F_EventScript_15F2B8:: @ 815F2B8
diff --git a/data/scripts/maps/MauvilleCity.inc b/data/scripts/maps/MauvilleCity.inc
index 6861e46c8..852f24f2a 100644
--- a/data/scripts/maps/MauvilleCity.inc
+++ b/data/scripts/maps/MauvilleCity.inc
@@ -8,8 +8,7 @@ MauvilleCity_MapScript1_14C038:: @ 814C038
setflag FLAG_SYS_TV_START
clearflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
setvar VAR_MAUVILLE_GYM_STATE, 0
- checkflag FLAG_RECEIVED_TM24
- call_if 1, MauvilleCity_EventScript_14C053
+ call_if_set FLAG_RECEIVED_TM24, MauvilleCity_EventScript_14C053
end
MauvilleCity_EventScript_14C053:: @ 814C053
@@ -52,8 +51,7 @@ MauvilleCity_EventScript_14C099:: @ 814C099
MauvilleCity_EventScript_14C0A2:: @ 814C0A2
lock
faceplayer
- checkflag FLAG_TV_EXPLAINED
- goto_if_eq MauvilleCity_EventScript_14C0BA
+ goto_if_set FLAG_TV_EXPLAINED, MauvilleCity_EventScript_14C0BA
msgbox MauvilleCity_Text_16674A, 4
setflag FLAG_TV_EXPLAINED
release
@@ -67,8 +65,7 @@ MauvilleCity_EventScript_14C0BA:: @ 814C0BA
MauvilleCity_EventScript_14C0C4:: @ 814C0C4
lock
faceplayer
- checkflag FLAG_DECLINED_WALLY_BATTLE_MAUVILLE
- goto_if_eq MauvilleCity_EventScript_14C0E4
+ goto_if_set FLAG_DECLINED_WALLY_BATTLE_MAUVILLE, MauvilleCity_EventScript_14C0E4
msgbox MauvilleCity_Text_165B76, 4
closemessage
applymovement 7, MauvilleCity_Movement_1A083D
@@ -86,8 +83,7 @@ MauvilleCity_EventScript_14C0E4:: @ 814C0E4
MauvilleCity_EventScript_14C0F9:: @ 814C0F9
lockall
- checkflag FLAG_DECLINED_WALLY_BATTLE_MAUVILLE
- goto_if_eq MauvilleCity_EventScript_14C292
+ goto_if_set FLAG_DECLINED_WALLY_BATTLE_MAUVILLE, MauvilleCity_EventScript_14C292
applymovement 6, MauvilleCity_Movement_1A0843
waitmovement 0
msgbox MauvilleCity_Text_165BE3, 4
@@ -95,19 +91,19 @@ MauvilleCity_EventScript_14C0F9:: @ 814C0F9
msgbox MauvilleCity_Text_165D01, 4
applymovement 6, MauvilleCity_Movement_1A0839
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 6, MauvilleCity_Movement_1A0833
waitmovement 0
applymovement 6, MauvilleCity_Movement_1A0835
waitmovement 0
- msgbox MauvilleCity_Text_165D50, 5
+ msgbox MauvilleCity_Text_165D50, MSGBOX_YESNO
goto MauvilleCity_EventScript_14C154
end
MauvilleCity_EventScript_14C154:: @ 814C154
- compare RESULT, 1
- call_if 1, MauvilleCity_EventScript_14C23C
- compare RESULT, 0
+ compare RESULT, YES
+ call_if_eq MauvilleCity_EventScript_14C23C
+ compare RESULT, NO
goto_if_eq MauvilleCity_EventScript_14C285
closemessage
switch FACING
@@ -185,7 +181,7 @@ MauvilleCity_EventScript_14C285:: @ 814C285
MauvilleCity_EventScript_14C292:: @ 814C292
applymovement 6, MauvilleCity_Movement_1A0839
waitmovement 0
- msgbox MauvilleCity_Text_165EE2, 5
+ msgbox MauvilleCity_Text_165EE2, MSGBOX_YESNO
goto MauvilleCity_EventScript_14C154
end
@@ -284,12 +280,10 @@ MauvilleCity_Movement_14C2E8:: @ 814C2E8
MauvilleCity_EventScript_14C2F2:: @ 814C2F2
lock
faceplayer
- checkflag FLAG_RECEIVED_TM24
- goto_if_eq MauvilleCity_EventScript_14C368
+ goto_if_set FLAG_RECEIVED_TM24, MauvilleCity_EventScript_14C368
compare VAR_NEW_MAUVILLE_STATE, 2
goto_if_eq MauvilleCity_EventScript_14C33C
- checkflag FLAG_RECEIVED_BASEMENT_KEY
- goto_if_eq MauvilleCity_EventScript_14C332
+ goto_if_set FLAG_RECEIVED_BASEMENT_KEY, MauvilleCity_EventScript_14C332
msgbox MauvilleCity_Text_1661C1, 4
giveitem_std ITEM_BASEMENT_KEY
setflag FLAG_RECEIVED_BASEMENT_KEY
@@ -304,7 +298,7 @@ MauvilleCity_EventScript_14C332:: @ 814C332
MauvilleCity_EventScript_14C33C:: @ 814C33C
msgbox MauvilleCity_Text_1663EB, 4
- giveitem_std ITEM_TM24
+ giveitem_std ITEM_TM24_THUNDERBOLT
compare RESULT, 0
goto_if_eq MauvilleCity_EventScript_1A029B
setflag FLAG_RECEIVED_TM24
diff --git a/data/scripts/maps/MauvilleCity_BikeShop.inc b/data/scripts/maps/MauvilleCity_BikeShop.inc
index 6c2dc57e1..08f11d641 100644
--- a/data/scripts/maps/MauvilleCity_BikeShop.inc
+++ b/data/scripts/maps/MauvilleCity_BikeShop.inc
@@ -4,23 +4,21 @@ MauvilleCity_BikeShop_MapScripts:: @ 8156795
MauvilleCity_BikeShop_EventScript_156796:: @ 8156796
lock
faceplayer
- checkflag FLAG_RECEIVED_BIKE
- goto_if_eq MauvilleCity_BikeShop_EventScript_15686E
- checkflag FLAG_DECLINED_BIKE
- goto_if_eq MauvilleCity_BikeShop_EventScript_1567D1
+ goto_if_set FLAG_RECEIVED_BIKE, MauvilleCity_BikeShop_EventScript_15686E
+ goto_if_set FLAG_DECLINED_BIKE, MauvilleCity_BikeShop_EventScript_1567D1
msgbox MauvilleCity_BikeShop_Text_180F9F, 4
- msgbox MauvilleCity_BikeShop_Text_181016, 5
- compare RESULT, 1
+ msgbox MauvilleCity_BikeShop_Text_181016, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq MauvilleCity_BikeShop_EventScript_156824
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MauvilleCity_BikeShop_EventScript_156817
end
MauvilleCity_BikeShop_EventScript_1567D1:: @ 81567D1
- msgbox MauvilleCity_BikeShop_Text_181016, 5
- compare RESULT, 1
+ msgbox MauvilleCity_BikeShop_Text_181016, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq MauvilleCity_BikeShop_EventScript_156824
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MauvilleCity_BikeShop_EventScript_156817
end
@@ -63,10 +61,10 @@ MauvilleCity_BikeShop_EventScript_156861:: @ 8156861
end
MauvilleCity_BikeShop_EventScript_15686E:: @ 815686E
- msgbox MauvilleCity_BikeShop_Text_1813A0, 5
- compare RESULT, 1
+ msgbox MauvilleCity_BikeShop_Text_1813A0, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq MauvilleCity_BikeShop_EventScript_15688D
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MauvilleCity_BikeShop_EventScript_1568BF
end
diff --git a/data/scripts/maps/MauvilleCity_GameCorner.inc b/data/scripts/maps/MauvilleCity_GameCorner.inc
index c2b785254..b9f8e5ad1 100644
--- a/data/scripts/maps/MauvilleCity_GameCorner.inc
+++ b/data/scripts/maps/MauvilleCity_GameCorner.inc
@@ -34,7 +34,7 @@ MauvilleCity_GameCorner_EventScript_156A60:: @ 8156A60
MauvilleCity_GameCorner_EventScript_156AAE:: @ 8156AAE
checkcoins VAR_TEMP_1
compare VAR_TEMP_1, 9950
- goto_if 4, MauvilleCity_GameCorner_EventScript_156B5C
+ goto_if_ge MauvilleCity_GameCorner_EventScript_156B5C
checkmoney 0x3e8, 0
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156B3C
@@ -43,7 +43,7 @@ MauvilleCity_GameCorner_EventScript_156AAE:: @ 8156AAE
updatemoneybox 0, 0
nop
updatecoinsbox 0, 5
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181CFE, 4
hidemoneybox 0, 0
hidecoinsbox 0, 5
@@ -53,7 +53,7 @@ MauvilleCity_GameCorner_EventScript_156AAE:: @ 8156AAE
MauvilleCity_GameCorner_EventScript_156AF0:: @ 8156AF0
checkcoins VAR_TEMP_1
compare VAR_TEMP_1, 9500
- goto_if 4, MauvilleCity_GameCorner_EventScript_156B5C
+ goto_if_ge MauvilleCity_GameCorner_EventScript_156B5C
checkmoney 0x2710, 0
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156B3C
@@ -62,7 +62,7 @@ MauvilleCity_GameCorner_EventScript_156AF0:: @ 8156AF0
updatemoneybox 0, 0
nop
updatecoinsbox 0, 5
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181CFE, 4
hidemoneybox 0, 0
hidecoinsbox 0, 5
@@ -143,8 +143,8 @@ MauvilleCity_GameCorner_EventScript_156BFE:: @ 8156BFE
goto MauvilleCity_GameCorner_EventScript_156C0C
MauvilleCity_GameCorner_EventScript_156C0C:: @ 8156C0C
- msgbox MauvilleCity_GameCorner_Text_181E33, 5
- compare RESULT, 0
+ msgbox MauvilleCity_GameCorner_Text_181E33, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MauvilleCity_GameCorner_EventScript_156D0D
switch VAR_TEMP_1
case 1, MauvilleCity_GameCorner_EventScript_156C46
@@ -155,15 +155,15 @@ MauvilleCity_GameCorner_EventScript_156C0C:: @ 8156C0C
MauvilleCity_GameCorner_EventScript_156C46:: @ 8156C46
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 1000
- goto_if 0, MauvilleCity_GameCorner_EventScript_156CF4
- bufferdecorationname 1, 88
- checkdecorspace 88
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156CF4
+ bufferdecorationname 1, DECOR_TREECKO_DOLL
+ checkdecorspace DECOR_TREECKO_DOLL
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156D02
takecoins 1000
- givedecoration 88
+ givedecoration DECOR_TREECKO_DOLL
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181E49, 4
goto MauvilleCity_GameCorner_EventScript_156B9B
end
@@ -171,15 +171,15 @@ MauvilleCity_GameCorner_EventScript_156C46:: @ 8156C46
MauvilleCity_GameCorner_EventScript_156C80:: @ 8156C80
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 1000
- goto_if 0, MauvilleCity_GameCorner_EventScript_156CF4
- bufferdecorationname 1, 89
- checkdecorspace 89
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156CF4
+ bufferdecorationname 1, DECOR_TORCHIC_DOLL
+ checkdecorspace DECOR_TORCHIC_DOLL
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156D02
takecoins 1000
- givedecoration 89
+ givedecoration DECOR_TORCHIC_DOLL
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181E49, 4
goto MauvilleCity_GameCorner_EventScript_156B9B
end
@@ -187,15 +187,15 @@ MauvilleCity_GameCorner_EventScript_156C80:: @ 8156C80
MauvilleCity_GameCorner_EventScript_156CBA:: @ 8156CBA
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 1000
- goto_if 0, MauvilleCity_GameCorner_EventScript_156CF4
- bufferdecorationname 1, 90
- checkdecorspace 90
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156CF4
+ bufferdecorationname 1, DECOR_MUDKIP_DOLL
+ checkdecorspace DECOR_MUDKIP_DOLL
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156D02
takecoins 1000
- givedecoration 90
+ givedecoration DECOR_MUDKIP_DOLL
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181E49, 4
goto MauvilleCity_GameCorner_EventScript_156B9B
end
@@ -252,32 +252,32 @@ MauvilleCity_GameCorner_EventScript_156D54:: @ 8156D54
MauvilleCity_GameCorner_EventScript_156DA6:: @ 8156DA6
setvar VAR_TEMP_1, 1
- bufferitemname 0, ITEM_TM32
+ bufferitemname 0, ITEM_TM32_DOUBLE_TEAM
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DB4:: @ 8156DB4
setvar VAR_TEMP_1, 2
- bufferitemname 0, ITEM_TM29
+ bufferitemname 0, ITEM_TM29_PSYCHIC
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DC2:: @ 8156DC2
setvar VAR_TEMP_1, 3
- bufferitemname 0, ITEM_TM35
+ bufferitemname 0, ITEM_TM35_FLAMETHROWER
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DD0:: @ 8156DD0
setvar VAR_TEMP_1, 4
- bufferitemname 0, ITEM_TM24
+ bufferitemname 0, ITEM_TM24_THUNDERBOLT
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DDE:: @ 8156DDE
setvar VAR_TEMP_1, 5
- bufferitemname 0, ITEM_TM13
+ bufferitemname 0, ITEM_TM13_ICE_BEAM
goto MauvilleCity_GameCorner_EventScript_156DEC
MauvilleCity_GameCorner_EventScript_156DEC:: @ 8156DEC
- msgbox MauvilleCity_GameCorner_Text_181E33, 5
- compare RESULT, 0
+ msgbox MauvilleCity_GameCorner_Text_181E33, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MauvilleCity_GameCorner_EventScript_156F77
switch VAR_TEMP_1
case 1, MauvilleCity_GameCorner_EventScript_156E3C
@@ -290,14 +290,14 @@ MauvilleCity_GameCorner_EventScript_156DEC:: @ 8156DEC
MauvilleCity_GameCorner_EventScript_156E3C:: @ 8156E3C
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 1500
- goto_if 0, MauvilleCity_GameCorner_EventScript_156F5E
- checkitemspace ITEM_TM32, 1
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM32_DOUBLE_TEAM, 1
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 1500
- giveitem ITEM_TM32, 1
+ giveitem ITEM_TM32_DOUBLE_TEAM, 1
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181F08, 4
goto MauvilleCity_GameCorner_EventScript_156D49
end
@@ -305,14 +305,14 @@ MauvilleCity_GameCorner_EventScript_156E3C:: @ 8156E3C
MauvilleCity_GameCorner_EventScript_156E76:: @ 8156E76
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 3500
- goto_if 0, MauvilleCity_GameCorner_EventScript_156F5E
- checkitemspace ITEM_TM29, 1
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM29_PSYCHIC, 1
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 3500
- giveitem ITEM_TM29, 1
+ giveitem ITEM_TM29_PSYCHIC, 1
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181F08, 4
goto MauvilleCity_GameCorner_EventScript_156D49
end
@@ -320,14 +320,14 @@ MauvilleCity_GameCorner_EventScript_156E76:: @ 8156E76
MauvilleCity_GameCorner_EventScript_156EB0:: @ 8156EB0
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 4000
- goto_if 0, MauvilleCity_GameCorner_EventScript_156F5E
- checkitemspace ITEM_TM35, 1
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM35_FLAMETHROWER, 1
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 4000
- giveitem ITEM_TM35, 1
+ giveitem ITEM_TM35_FLAMETHROWER, 1
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181F08, 4
goto MauvilleCity_GameCorner_EventScript_156D49
end
@@ -335,14 +335,14 @@ MauvilleCity_GameCorner_EventScript_156EB0:: @ 8156EB0
MauvilleCity_GameCorner_EventScript_156EEA:: @ 8156EEA
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 4000
- goto_if 0, MauvilleCity_GameCorner_EventScript_156F5E
- checkitemspace ITEM_TM24, 1
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM24_THUNDERBOLT, 1
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 4000
- giveitem ITEM_TM24, 1
+ giveitem ITEM_TM24_THUNDERBOLT, 1
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181F08, 4
goto MauvilleCity_GameCorner_EventScript_156D49
end
@@ -350,14 +350,14 @@ MauvilleCity_GameCorner_EventScript_156EEA:: @ 8156EEA
MauvilleCity_GameCorner_EventScript_156F24:: @ 8156F24
checkcoins VAR_TEMP_2
compare VAR_TEMP_2, 4000
- goto_if 0, MauvilleCity_GameCorner_EventScript_156F5E
- checkitemspace ITEM_TM13, 1
+ goto_if_lt MauvilleCity_GameCorner_EventScript_156F5E
+ checkitemspace ITEM_TM13_ICE_BEAM, 1
compare RESULT, 0
goto_if_eq MauvilleCity_GameCorner_EventScript_156F6C
takecoins 4000
- giveitem ITEM_TM13, 1
+ giveitem ITEM_TM13_ICE_BEAM, 1
updatecoinsbox 0, 0
- playse 95
+ playse SE_REGI
msgbox MauvilleCity_GameCorner_Text_181F08, 4
goto MauvilleCity_GameCorner_EventScript_156D49
end
@@ -389,10 +389,9 @@ MauvilleCity_GameCorner_EventScript_156F8D:: @ 8156F8D
MauvilleCity_GameCorner_EventScript_156F96:: @ 8156F96
lock
faceplayer
- checkflag FLAG_RECEIVED_STARTER_DOLL
- goto_if_eq MauvilleCity_GameCorner_EventScript_157072
- msgbox MauvilleCity_GameCorner_Text_181F3D, 5
- compare RESULT, 0
+ goto_if_set FLAG_RECEIVED_STARTER_DOLL, MauvilleCity_GameCorner_EventScript_157072
+ msgbox MauvilleCity_GameCorner_Text_181F3D, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MauvilleCity_GameCorner_EventScript_157068
switch VAR_STARTER_MON
case 0, MauvilleCity_GameCorner_EventScript_156FDB
@@ -460,15 +459,14 @@ MauvilleCity_GameCorner_EventScript_15707C:: @ 815707C
end
MauvilleCity_GameCorner_EventScript_15709C:: @ 815709C
- checkflag FLAG_RECEIVED_20_COINS
- goto_if_eq MauvilleCity_GameCorner_EventScript_1570CA
+ goto_if_set FLAG_RECEIVED_20_COINS, MauvilleCity_GameCorner_EventScript_1570CA
checkcoins VAR_TEMP_1
compare VAR_TEMP_1, 1
- goto_if 4, MauvilleCity_GameCorner_EventScript_1570CA
+ goto_if_ge MauvilleCity_GameCorner_EventScript_1570CA
setflag FLAG_RECEIVED_20_COINS
givecoins 20
msgbox MauvilleCity_GameCorner_Text_18208E, 4
- playse 95
+ playse SE_REGI
goto MauvilleCity_GameCorner_EventScript_1570CA
end
diff --git a/data/scripts/maps/MauvilleCity_Gym.inc b/data/scripts/maps/MauvilleCity_Gym.inc
index 05287c7de..d9b8aced7 100644
--- a/data/scripts/maps/MauvilleCity_Gym.inc
+++ b/data/scripts/maps/MauvilleCity_Gym.inc
@@ -3,8 +3,7 @@ MauvilleCity_Gym_MapScripts:: @ 8156450
.byte 0
MauvilleCity_Gym_MapScript1_156456:: @ 8156456
- checkflag FLAG_DEFEATED_MAUVILLE_GYM
- goto_if_eq MauvilleCity_Gym_EventScript_1565A7
+ goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_1565A7
switch VAR_MAUVILLE_GYM_STATE
case 0, MauvilleCity_Gym_EventScript_156491
case 1, MauvilleCity_Gym_EventScript_15657D
@@ -13,8 +12,7 @@ MauvilleCity_Gym_MapScript1_156456:: @ 8156456
end
MauvilleCity_Gym_EventScript_156491:: @ 8156491
- checkflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
- goto_if_eq MauvilleCity_Gym_EventScript_15649B
+ goto_if_set FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_15649B
end
MauvilleCity_Gym_EventScript_15649B:: @ 815649B
@@ -69,8 +67,7 @@ MauvilleCity_Gym_EventScript_1565A7:: @ 81565A7
MauvilleCity_Gym_EventScript_1565AB:: @ 81565AB
trainerbattle 1, OPPONENT_WATTSON, 0, MauvilleCity_Gym_Text_180C32, MauvilleCity_Gym_Text_180D64, MauvilleCity_Gym_EventScript_1565DB
- checkflag FLAG_RECEIVED_TM34
- goto_if 0, MauvilleCity_Gym_EventScript_15661D
+ goto_if_unset FLAG_RECEIVED_TM34, MauvilleCity_Gym_EventScript_15661D
compare VAR_NEW_MAUVILLE_STATE, 2
goto_if_eq MauvilleCity_Gym_EventScript_156641
msgbox MauvilleCity_Gym_Text_180EDB, 4
@@ -86,17 +83,17 @@ MauvilleCity_Gym_EventScript_1565DB:: @ 81565DB
setflag FLAG_BADGE03_GET
addvar VAR_PETALBURG_GYM_STATE, 1
compare VAR_PETALBURG_GYM_STATE, 6
- call_if 1, MauvilleCity_Gym_EventScript_1A00FB
+ call_if_eq MauvilleCity_Gym_EventScript_1A00FB
setvar VAR_SPECIAL_8, 3
call MauvilleCity_Gym_EventScript_1A01C0
special MauvilleGymSpecial3
special DrawWholeMapView
- playse 44
+ playse SE_KI_GASYAN
goto MauvilleCity_Gym_EventScript_15661D
end
MauvilleCity_Gym_EventScript_15661D:: @ 815661D
- giveitem_std ITEM_TM34
+ giveitem_std ITEM_TM34_SHOCK_WAVE
compare RESULT, 0
goto_if_eq MauvilleCity_Gym_EventScript_1A029B
msgbox MauvilleCity_Gym_Text_180E76, 4
@@ -111,8 +108,7 @@ MauvilleCity_Gym_EventScript_156641:: @ 8156641
MauvilleCity_Gym_EventScript_15664B:: @ 815664B
lockall
- checkflag FLAG_DEFEATED_MAUVILLE_GYM
- goto_if_eq MauvilleCity_Gym_EventScript_1566DA
+ goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_1566DA
compare VAR_MAUVILLE_GYM_STATE, 1
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
setvar VAR_MAUVILLE_GYM_STATE, 1
@@ -122,8 +118,7 @@ MauvilleCity_Gym_EventScript_15664B:: @ 815664B
MauvilleCity_Gym_EventScript_156670:: @ 8156670
lockall
- checkflag FLAG_DEFEATED_MAUVILLE_GYM
- goto_if_eq MauvilleCity_Gym_EventScript_1566DA
+ goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_1566DA
compare VAR_MAUVILLE_GYM_STATE, 2
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
setvar VAR_MAUVILLE_GYM_STATE, 2
@@ -133,8 +128,7 @@ MauvilleCity_Gym_EventScript_156670:: @ 8156670
MauvilleCity_Gym_EventScript_156695:: @ 8156695
lockall
- checkflag FLAG_DEFEATED_MAUVILLE_GYM
- goto_if_eq MauvilleCity_Gym_EventScript_1566DA
+ goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_1566DA
compare VAR_MAUVILLE_GYM_STATE, 3
goto_if_eq MauvilleCity_Gym_EventScript_1566DA
setvar VAR_MAUVILLE_GYM_STATE, 3
@@ -146,11 +140,9 @@ MauvilleCity_Gym_EventScript_1566BA:: @ 81566BA
special MauvilleGymSpecial2
special MauvilleGymSpecial1
special DrawWholeMapView
- playse 44
- checkflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
- goto_if_eq MauvilleCity_Gym_EventScript_1566E1
- checkflag FLAG_MAUVILLE_GYM_BARRIERS_STATE
- goto_if 0, MauvilleCity_Gym_EventScript_1566DC
+ playse SE_KI_GASYAN
+ goto_if_set FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_1566E1
+ goto_if_unset FLAG_MAUVILLE_GYM_BARRIERS_STATE, MauvilleCity_Gym_EventScript_1566DC
releaseall
end
@@ -191,8 +183,7 @@ MauvilleCity_Gym_EventScript_15672B:: @ 815672B
MauvilleCity_Gym_EventScript_156742:: @ 8156742
lock
faceplayer
- checkflag FLAG_DEFEATED_MAUVILLE_GYM
- goto_if_eq MauvilleCity_Gym_EventScript_156757
+ goto_if_set FLAG_DEFEATED_MAUVILLE_GYM, MauvilleCity_Gym_EventScript_156757
msgbox MauvilleCity_Gym_Text_180815, 4
release
end
@@ -204,15 +195,13 @@ MauvilleCity_Gym_EventScript_156757:: @ 8156757
MauvilleCity_Gym_EventScript_156761:: @ 8156761
lockall
- checkflag FLAG_BADGE03_GET
- goto_if_eq MauvilleCity_Gym_EventScript_156781
+ goto_if_set FLAG_BADGE03_GET, MauvilleCity_Gym_EventScript_156781
goto MauvilleCity_Gym_EventScript_15678B
end
MauvilleCity_Gym_EventScript_156771:: @ 8156771
lockall
- checkflag FLAG_BADGE03_GET
- goto_if_eq MauvilleCity_Gym_EventScript_156781
+ goto_if_set FLAG_BADGE03_GET, MauvilleCity_Gym_EventScript_156781
goto MauvilleCity_Gym_EventScript_15678B
end
diff --git a/data/scripts/maps/MauvilleCity_House1.inc b/data/scripts/maps/MauvilleCity_House1.inc
index 210288517..4caaef545 100644
--- a/data/scripts/maps/MauvilleCity_House1.inc
+++ b/data/scripts/maps/MauvilleCity_House1.inc
@@ -4,10 +4,9 @@ MauvilleCity_House1_MapScripts:: @ 81569FC
MauvilleCity_House1_EventScript_1569FD:: @ 81569FD
lock
faceplayer
- checkflag FLAG_RECEIVED_HM06
- goto_if_eq MauvilleCity_House1_EventScript_156A29
+ goto_if_set FLAG_RECEIVED_HM06, MauvilleCity_House1_EventScript_156A29
msgbox MauvilleCity_House1_Text_181B1A, 4
- giveitem_std ITEM_HM06
+ giveitem_std ITEM_HM06_ROCK_SMASH
setflag FLAG_RECEIVED_HM06
msgbox MauvilleCity_House1_Text_181B64, 4
release
diff --git a/data/scripts/maps/MauvilleCity_House2.inc b/data/scripts/maps/MauvilleCity_House2.inc
index a058003bc..f18d278b5 100644
--- a/data/scripts/maps/MauvilleCity_House2.inc
+++ b/data/scripts/maps/MauvilleCity_House2.inc
@@ -4,8 +4,7 @@ MauvilleCity_House2_MapScripts:: @ 81572BF
MauvilleCity_House2_EventScript_1572C0:: @ 81572C0
lock
faceplayer
- checkflag FLAG_RECEIVED_COIN_CASE
- goto_if_eq MauvilleCity_House2_EventScript_15733D
+ goto_if_set FLAG_RECEIVED_COIN_CASE, MauvilleCity_House2_EventScript_15733D
msgbox MauvilleCity_House2_Text_18244E, 4
checkitem ITEM_HARBOR_MAIL, 1
compare RESULT, 1
@@ -14,15 +13,15 @@ MauvilleCity_House2_EventScript_1572C0:: @ 81572C0
end
MauvilleCity_House2_EventScript_1572E5:: @ 81572E5
- playse 21
+ playse SE_PIN
applymovement LAST_TALKED, MauvilleCity_House2_Movement_1A0833
waitmovement 0
applymovement LAST_TALKED, MauvilleCity_House2_Movement_1A0835
waitmovement 0
- msgbox MauvilleCity_House2_Text_1824D8, 5
- compare RESULT, 1
+ msgbox MauvilleCity_House2_Text_1824D8, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq MauvilleCity_House2_EventScript_15731B
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MauvilleCity_House2_EventScript_157347
end
diff --git a/data/scripts/maps/MeteorFalls_1F_1R.inc b/data/scripts/maps/MeteorFalls_1F_1R.inc
index a3e396ab0..272d7ed6e 100644
--- a/data/scripts/maps/MeteorFalls_1F_1R.inc
+++ b/data/scripts/maps/MeteorFalls_1F_1R.inc
@@ -18,7 +18,7 @@ MeteorFalls_1F_1R_EventScript_15C49C:: @ 815C49C
applymovement 5, MeteorFalls_1F_1R_Movement_1A0841
applymovement 6, MeteorFalls_1F_1R_Movement_1A0841
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 5, MeteorFalls_1F_1R_Movement_1A0833
waitmovement 0
applymovement 5, MeteorFalls_1F_1R_Movement_1A0835
@@ -215,8 +215,7 @@ MeteorFalls_1F_1R_Movement_15C64F:: @ 815C64F
MeteorFalls_1F_1R_EventScript_15C656:: @ 815C656
lock
faceplayer
- checkflag FLAG_MET_PROF_COSMO
- goto_if_eq MeteorFalls_1F_1R_EventScript_15C66E
+ goto_if_set FLAG_MET_PROF_COSMO, MeteorFalls_1F_1R_EventScript_15C66E
setflag FLAG_MET_PROF_COSMO
msgbox MeteorFalls_1F_1R_Text_1937EB, 4
release
diff --git a/data/scripts/maps/MossdeepCity.inc b/data/scripts/maps/MossdeepCity.inc
index fd4b8cfbf..7ec338927 100644
--- a/data/scripts/maps/MossdeepCity.inc
+++ b/data/scripts/maps/MossdeepCity.inc
@@ -7,8 +7,7 @@ MossdeepCity_MapScript1_14CF98:: @ 814CF98
clearflag FLAG_MOSSDEEP_GYM_SWITCH_2
clearflag FLAG_MOSSDEEP_GYM_SWITCH_3
clearflag FLAG_MOSSDEEP_GYM_SWITCH_4
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, MossdeepCity_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, MossdeepCity_EventScript_1A02C1
end
MossdeepCity_EventScript_14CFAE:: @ 814CFAE
@@ -68,10 +67,9 @@ MossdeepCity_EventScript_14D011:: @ 814D011
MossdeepCity_EventScript_14D027:: @ 814D027
lock
faceplayer
- checkflag FLAG_RECEIVED_KINGS_ROCK
- goto_if_eq MossdeepCity_EventScript_14D069
- msgbox MossdeepCity_Text_1690A9, 5
- compare RESULT, 0
+ goto_if_set FLAG_RECEIVED_KINGS_ROCK, MossdeepCity_EventScript_14D069
+ msgbox MossdeepCity_Text_1690A9, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MossdeepCity_EventScript_14D073
msgbox MossdeepCity_Text_169117, 4
giveitem_std ITEM_KINGS_ROCK
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_1F.inc b/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
index ad3b366a8..364778613 100644
--- a/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
+++ b/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
@@ -7,7 +7,7 @@ MossdeepCity_GameCorner_1F_MapScripts:: @ 815AC52
MossdeepCity_GameCorner_1F_MapScript1_15AC62:: @ 815AC62
special ValidateEReaderTrainer
compare RESULT, 1
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AC71
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AC71
end
MossdeepCity_GameCorner_1F_EventScript_15AC71:: @ 815AC71
@@ -18,9 +18,9 @@ MossdeepCity_GameCorner_1F_EventScript_15AC71:: @ 815AC71
MossdeepCity_GameCorner_1F_MapScript1_15AC84:: @ 815AC84
special ValidateEReaderTrainer
compare RESULT, 0
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AC9E
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AC9E
compare VAR_GAME_CORNER_STATE, 0
- call_if 5, MossdeepCity_GameCorner_1F_EventScript_15ACAF
+ call_if_ne MossdeepCity_GameCorner_1F_EventScript_15ACAF
end
MossdeepCity_GameCorner_1F_EventScript_15AC9E:: @ 815AC9E
@@ -50,11 +50,11 @@ MossdeepCity_GameCorner_1F_EventScript_15ACD5:: @ 815ACD5
applymovement 255, MossdeepCity_GameCorner_1F_Movement_1A0841
waitmovement 0
compare VAR_GAME_CORNER_STATE, 1
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AD22
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AD22
compare VAR_GAME_CORNER_STATE, 2
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AD2B
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AD2B
compare VAR_GAME_CORNER_STATE, 3
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AD34
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AD34
special LoadPlayerParty
setvar VAR_GAME_CORNER_STATE, 0
releaseall
@@ -93,15 +93,15 @@ MossdeepCity_GameCorner_1F_EventScript_15AD42:: @ 815AD42
MossdeepCity_GameCorner_1F_EventScript_15AD59:: @ 815AD59
special SavePlayerParty
special BufferEReaderTrainerName
- msgbox MossdeepCity_GameCorner_1F_Text_18E650, 5
- compare RESULT, 0
+ msgbox MossdeepCity_GameCorner_1F_Text_18E650, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MossdeepCity_GameCorner_1F_EventScript_15ADE8
call MossdeepCity_GameCorner_1F_EventScript_15ADF5
compare RESULT, 0
goto_if_eq MossdeepCity_GameCorner_1F_EventScript_15ADE8
- msgbox MossdeepCity_GameCorner_1F_Text_18E741, 5
- compare RESULT, 0
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15ADE8
+ msgbox MossdeepCity_GameCorner_1F_Text_18E741, MSGBOX_YESNO
+ compare RESULT, NO
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15ADE8
special LoadPlayerParty
call S_DoSaveDialog
compare RESULT, 0
@@ -112,11 +112,11 @@ MossdeepCity_GameCorner_1F_EventScript_15AD59:: @ 815AD59
msgbox MossdeepCity_GameCorner_1F_Text_18E777, 4
closemessage
compare FACING, 2
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AE04
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AE04
compare FACING, 4
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AE16
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AE16
compare FACING, 3
- call_if 1, MossdeepCity_GameCorner_1F_EventScript_15AE28
+ call_if_eq MossdeepCity_GameCorner_1F_EventScript_15AE28
warp MAP_MOSSDEEP_CITY_GAME_CORNER_B1F, 255, 3, 1
waitstate
release
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc b/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
index 9f20b6310..f62693756 100644
--- a/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
+++ b/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
@@ -23,11 +23,11 @@ MossdeepCity_GameCorner_B1F_EventScript_15AE6E:: @ 815AE6E
special StartSpecialBattle
waitstate
compare RESULT, 3
- call_if 1, MossdeepCity_GameCorner_B1F_EventScript_15AED5
+ call_if_eq MossdeepCity_GameCorner_B1F_EventScript_15AED5
compare RESULT, 1
- call_if 1, MossdeepCity_GameCorner_B1F_EventScript_15AEE3
+ call_if_eq MossdeepCity_GameCorner_B1F_EventScript_15AEE3
compare RESULT, 2
- call_if 1, MossdeepCity_GameCorner_B1F_EventScript_15AEEE
+ call_if_eq MossdeepCity_GameCorner_B1F_EventScript_15AEEE
closemessage
special ScrSpecial_HealPlayerParty
applymovement 255, MossdeepCity_GameCorner_B1F_Movement_15AEFF
diff --git a/data/scripts/maps/MossdeepCity_Gym.inc b/data/scripts/maps/MossdeepCity_Gym.inc
index 54a9546c4..0ae02fba4 100644
--- a/data/scripts/maps/MossdeepCity_Gym.inc
+++ b/data/scripts/maps/MossdeepCity_Gym.inc
@@ -3,26 +3,22 @@ MossdeepCity_Gym_MapScripts:: @ 815A4D3
.byte 0
MossdeepCity_Gym_MapScript1_15A4D9:: @ 815A4D9
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_1
- goto_if_eq MossdeepCity_Gym_EventScript_15A510
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_1, MossdeepCity_Gym_EventScript_15A510
goto MossdeepCity_Gym_EventScript_15A4E8
end
MossdeepCity_Gym_EventScript_15A4E8:: @ 815A4E8
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_2
- goto_if_eq MossdeepCity_Gym_EventScript_15A528
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_2, MossdeepCity_Gym_EventScript_15A528
goto MossdeepCity_Gym_EventScript_15A4F7
end
MossdeepCity_Gym_EventScript_15A4F7:: @ 815A4F7
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_3
- goto_if_eq MossdeepCity_Gym_EventScript_15A540
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_3, MossdeepCity_Gym_EventScript_15A540
goto MossdeepCity_Gym_EventScript_15A506
end
MossdeepCity_Gym_EventScript_15A506:: @ 815A506
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_4
- goto_if_eq MossdeepCity_Gym_EventScript_15A558
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_4, MossdeepCity_Gym_EventScript_15A558
end
MossdeepCity_Gym_EventScript_15A510:: @ 815A510
@@ -50,8 +46,7 @@ MossdeepCity_Gym_EventScript_15A558:: @ 815A558
MossdeepCity_Gym_EventScript_15A56B:: @ 815A56B
trainerbattle 8, OPPONENT_TATE_AND_LIZA, 0, MossdeepCity_Gym_Text_18CF02, MossdeepCity_Gym_Text_18D077, MossdeepCity_Gym_Text_18D324, MossdeepCity_Gym_EventScript_15A594
- checkflag FLAG_RECEIVED_TM04
- goto_if 0, MossdeepCity_Gym_EventScript_15A5C6
+ goto_if_unset FLAG_RECEIVED_TM04, MossdeepCity_Gym_EventScript_15A5C6
msgbox MossdeepCity_Gym_Text_18D273, 4
release
end
@@ -72,7 +67,7 @@ MossdeepCity_Gym_EventScript_15A594:: @ 815A594
end
MossdeepCity_Gym_EventScript_15A5C6:: @ 815A5C6
- giveitem_std ITEM_TM04
+ giveitem_std ITEM_TM04_CALM_MIND
compare RESULT, 0
goto_if_eq MossdeepCity_Gym_EventScript_1A029B
msgbox MossdeepCity_Gym_Text_18D1CF, 4
@@ -82,8 +77,7 @@ MossdeepCity_Gym_EventScript_15A5C6:: @ 815A5C6
MossdeepCity_Gym_EventScript_15A5EA:: @ 815A5EA
lockall
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_1
- goto_if_eq MossdeepCity_Gym_EventScript_15A621
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_1, MossdeepCity_Gym_EventScript_15A621
setflag FLAG_MOSSDEEP_GYM_SWITCH_1
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
@@ -94,7 +88,7 @@ MossdeepCity_Gym_EventScript_15A5EA:: @ 815A5EA
MossdeepCity_Gym_EventScript_15A619:: @ 815A619
special DrawWholeMapView
- playse 36
+ playse SE_TK_KASYA
releaseall
end
@@ -109,8 +103,7 @@ MossdeepCity_Gym_EventScript_15A621:: @ 815A621
MossdeepCity_Gym_EventScript_15A646:: @ 815A646
lockall
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_2
- goto_if_eq MossdeepCity_Gym_EventScript_15A675
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_2, MossdeepCity_Gym_EventScript_15A675
setflag FLAG_MOSSDEEP_GYM_SWITCH_2
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
@@ -130,8 +123,7 @@ MossdeepCity_Gym_EventScript_15A675:: @ 815A675
MossdeepCity_Gym_EventScript_15A69A:: @ 815A69A
lockall
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_3
- goto_if_eq MossdeepCity_Gym_EventScript_15A6C9
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_3, MossdeepCity_Gym_EventScript_15A6C9
setflag FLAG_MOSSDEEP_GYM_SWITCH_3
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
@@ -151,8 +143,7 @@ MossdeepCity_Gym_EventScript_15A6C9:: @ 815A6C9
MossdeepCity_Gym_EventScript_15A6EE:: @ 815A6EE
lockall
- checkflag FLAG_MOSSDEEP_GYM_SWITCH_4
- goto_if_eq MossdeepCity_Gym_EventScript_15A71D
+ goto_if_set FLAG_MOSSDEEP_GYM_SWITCH_4, MossdeepCity_Gym_EventScript_15A71D
setflag FLAG_MOSSDEEP_GYM_SWITCH_4
applymovement 255, MossdeepCity_Gym_Movement_15A7F7
waitmovement 0
@@ -210,8 +201,7 @@ MossdeepCity_Gym_EventScript_15A7C1:: @ 815A7C1
MossdeepCity_Gym_EventScript_15A7D8:: @ 815A7D8
lock
faceplayer
- checkflag FLAG_DEFEATED_MOSSDEEP_GYM
- goto_if_eq MossdeepCity_Gym_EventScript_15A7ED
+ goto_if_set FLAG_DEFEATED_MOSSDEEP_GYM, MossdeepCity_Gym_EventScript_15A7ED
msgbox MossdeepCity_Gym_Text_18C7E3, 4
release
end
@@ -228,15 +218,13 @@ MossdeepCity_Gym_Movement_15A7F7:: @ 815A7F7
MossdeepCity_Gym_EventScript_15A7FA:: @ 815A7FA
lockall
- checkflag FLAG_BADGE07_GET
- goto_if_eq MossdeepCity_Gym_EventScript_15A81A
+ goto_if_set FLAG_BADGE07_GET, MossdeepCity_Gym_EventScript_15A81A
goto MossdeepCity_Gym_EventScript_15A824
end
MossdeepCity_Gym_EventScript_15A80A:: @ 815A80A
lockall
- checkflag FLAG_BADGE07_GET
- goto_if_eq MossdeepCity_Gym_EventScript_15A81A
+ goto_if_set FLAG_BADGE07_GET, MossdeepCity_Gym_EventScript_15A81A
goto MossdeepCity_Gym_EventScript_15A824
end
diff --git a/data/scripts/maps/MossdeepCity_House2.inc b/data/scripts/maps/MossdeepCity_House2.inc
index 1da204ff0..415dbfc33 100644
--- a/data/scripts/maps/MossdeepCity_House2.inc
+++ b/data/scripts/maps/MossdeepCity_House2.inc
@@ -20,9 +20,9 @@ MossdeepCity_House2_EventScript_15A87B:: @ 815A87B
setflag FLAG_WINGULL_DELIVERED_MAIL
clearflag FLAG_HIDE_WINGULL_FORTREE_HOUSE
compare FACING, 2
- call_if 1, MossdeepCity_House2_EventScript_15A8AE
+ call_if_eq MossdeepCity_House2_EventScript_15A8AE
compare FACING, 3
- call_if 1, MossdeepCity_House2_EventScript_15A8B9
+ call_if_eq MossdeepCity_House2_EventScript_15A8B9
removeobject 3
release
end
diff --git a/data/scripts/maps/MossdeepCity_House3.inc b/data/scripts/maps/MossdeepCity_House3.inc
index 6632ac793..4c4d6cbdd 100644
--- a/data/scripts/maps/MossdeepCity_House3.inc
+++ b/data/scripts/maps/MossdeepCity_House3.inc
@@ -4,10 +4,9 @@ MossdeepCity_House3_MapScripts:: @ 815A971
MossdeepCity_House3_EventScript_15A972:: @ 815A972
lock
faceplayer
- checkflag FLAG_RECEIVED_SUPER_ROD
- goto_if_eq MossdeepCity_House3_EventScript_15A9B1
- msgbox MossdeepCity_House3_Text_18D909, 5
- compare RESULT, 0
+ goto_if_set FLAG_RECEIVED_SUPER_ROD, MossdeepCity_House3_EventScript_15A9B1
+ msgbox MossdeepCity_House3_Text_18D909, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MossdeepCity_House3_EventScript_15A9BB
msgbox MossdeepCity_House3_Text_18D9A9, 4
giveitem_std ITEM_SUPER_ROD
diff --git a/data/scripts/maps/MossdeepCity_House4.inc b/data/scripts/maps/MossdeepCity_House4.inc
index 856ee1287..5fb0f97ff 100644
--- a/data/scripts/maps/MossdeepCity_House4.inc
+++ b/data/scripts/maps/MossdeepCity_House4.inc
@@ -4,8 +4,7 @@ MossdeepCity_House4_MapScripts:: @ 815AB30
MossdeepCity_House4_EventScript_15AB31:: @ 815AB31
lock
faceplayer
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq MossdeepCity_House4_EventScript_15AB46
+ goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_House4_EventScript_15AB46
msgbox MossdeepCity_House4_Text_18E0E3, 4
release
end
diff --git a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
index 884124567..83b859c26 100644
--- a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
+++ b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
@@ -8,9 +8,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_15AB8B:: @ 815AB8B
specialvar RESULT, GetWeekCount
buffernumberstring 0, RESULT
compare RESULT, 0
- call_if 1, MossdeepCity_SpaceCenter_1F_EventScript_15ABBA
+ call_if_eq MossdeepCity_SpaceCenter_1F_EventScript_15ABBA
compare RESULT, 1
- call_if 4, MossdeepCity_SpaceCenter_1F_EventScript_15ABC3
+ call_if_ge MossdeepCity_SpaceCenter_1F_EventScript_15ABC3
closemessage
applymovement LAST_TALKED, MossdeepCity_SpaceCenter_1F_Movement_1A083D
waitmovement 0
@@ -32,8 +32,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_15ABCC:: @ 815ABCC
MossdeepCity_SpaceCenter_1F_EventScript_15ABD5:: @ 815ABD5
lock
faceplayer
- checkflag FLAG_RECEIVED_SUN_STONE_MOSSDEEP
- goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_15AC0C
+ goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_15AC0C
msgbox MossdeepCity_SpaceCenter_1F_Text_18E335, 4
giveitem_std ITEM_SUN_STONE
compare RESULT, 0
diff --git a/data/scripts/maps/MossdeepCity_StevensHouse.inc b/data/scripts/maps/MossdeepCity_StevensHouse.inc
index eababfa6c..0f1aace1d 100644
--- a/data/scripts/maps/MossdeepCity_StevensHouse.inc
+++ b/data/scripts/maps/MossdeepCity_StevensHouse.inc
@@ -5,8 +5,7 @@ MossdeepCity_StevensHouse_MapScripts:: @ 815A9C5
.byte 0
MossdeepCity_StevensHouse_MapScript1_15A9D5:: @ 815A9D5
- checkflag FLAG_SYS_GAME_CLEAR
- call_if 0, MossdeepCity_StevensHouse_EventScript_15A9DF
+ call_if_unset FLAG_SYS_GAME_CLEAR, MossdeepCity_StevensHouse_EventScript_15A9DF
end
MossdeepCity_StevensHouse_EventScript_15A9DF:: @ 815A9DF
@@ -15,7 +14,7 @@ MossdeepCity_StevensHouse_EventScript_15A9DF:: @ 815A9DF
MossdeepCity_StevensHouse_MapScript1_15A9E9:: @ 815A9E9
compare VAR_STEVENS_HOUSE_STATE, 1
- call_if 1, MossdeepCity_StevensHouse_EventScript_15A9F5
+ call_if_eq MossdeepCity_StevensHouse_EventScript_15A9F5
end
MossdeepCity_StevensHouse_EventScript_15A9F5:: @ 815A9F5
@@ -31,7 +30,7 @@ MossdeepCity_StevensHouse_EventScript_15AA0B:: @ 815AA0B
lockall
applymovement 1, MossdeepCity_StevensHouse_Movement_1A083F
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 1, MossdeepCity_StevensHouse_Movement_1A0833
waitmovement 0
applymovement 1, MossdeepCity_StevensHouse_Movement_1A0835
@@ -39,7 +38,7 @@ MossdeepCity_StevensHouse_EventScript_15AA0B:: @ 815AA0B
applymovement 1, MossdeepCity_StevensHouse_Movement_15AA6E
waitmovement 0
msgbox MossdeepCity_StevensHouse_Text_18DA77, 4
- giveitem_std ITEM_HM08
+ giveitem_std ITEM_HM08_DIVE
setflag FLAG_RECEIVED_HM08
setflag FLAG_OMIT_DIVE_FROM_STEVEN_LETTER
msgbox MossdeepCity_StevensHouse_Text_18DB22, 4
@@ -71,23 +70,23 @@ MossdeepCity_StevensHouse_Movement_15AA76:: @ 815AA76
MossdeepCity_StevensHouse_EventScript_15AA7C:: @ 815AA7C
lockall
- msgbox MossdeepCity_StevensHouse_Text_18DD12, 5
- compare RESULT, 0
+ msgbox MossdeepCity_StevensHouse_Text_18DD12, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MossdeepCity_StevensHouse_EventScript_15AAE6
getpartysize
compare RESULT, 6
goto_if_eq MossdeepCity_StevensHouse_EventScript_15AADC
copyvar VAR_SPECIAL_4, RESULT
removeobject 2
- playfanfare 370
+ playfanfare BGM_FANFA4
message MossdeepCity_StevensHouse_Text_18DD61
waitfanfare
waitmessage
givemon SPECIES_BELDUM, 5, ITEM_NONE, 0x0, 0x0, 0
bufferspeciesname 1, SPECIES_BELDUM
- msgbox MossdeepCity_StevensHouse_Text_1A1102, 5
- compare RESULT, 1
- call_if 1, MossdeepCity_StevensHouse_EventScript_1A0678
+ msgbox MossdeepCity_StevensHouse_Text_1A1102, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq MossdeepCity_StevensHouse_EventScript_1A0678
setflag FLAG_HIDE_BELDUM_BALL_STEVENS_HOUSE
setflag FLAG_RECEIVED_BELDUM
releaseall
@@ -113,8 +112,7 @@ MossdeepCity_StevensHouse_EventScript_15AAF9:: @ 815AAF9
MossdeepCity_StevensHouse_EventScript_15AB02:: @ 815AB02
lockall
- checkflag FLAG_OMIT_DIVE_FROM_STEVEN_LETTER
- goto_if_eq MossdeepCity_StevensHouse_EventScript_15AB16
+ goto_if_set FLAG_OMIT_DIVE_FROM_STEVEN_LETTER, MossdeepCity_StevensHouse_EventScript_15AB16
msgbox MossdeepCity_StevensHouse_Text_18DF1A, 4
releaseall
end
@@ -125,6 +123,6 @@ MossdeepCity_StevensHouse_EventScript_15AB16:: @ 815AB16
end
MossdeepCity_StevensHouse_EventScript_15AB20:: @ 815AB20
- giveitem_std ITEM_HM08, 1, 1
+ giveitem_std ITEM_HM08_DIVE, 1, 1
setflag FLAG_RECEIVED_HM08
end
diff --git a/data/scripts/maps/MtChimney.inc b/data/scripts/maps/MtChimney.inc
index d93ec772a..ac7c00013 100644
--- a/data/scripts/maps/MtChimney.inc
+++ b/data/scripts/maps/MtChimney.inc
@@ -17,8 +17,8 @@ MtChimney_EventScript_15CF95:: @ 815CF95
faceplayer
showmoneybox 0, 0
nop
- msgbox MtChimney_Text_195760, 5
- compare RESULT, 0
+ msgbox MtChimney_Text_195760, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MtChimney_EventScript_15D00B
checkmoney 0xc8, 0
compare RESULT, 0
@@ -26,7 +26,7 @@ MtChimney_EventScript_15CF95:: @ 815CF95
msgbox MtChimney_Text_1957A9, 4
checkitemspace ITEM_LAVA_COOKIE, 1
compare RESULT, 1
- call_if 1, MtChimney_EventScript_15D000
+ call_if_eq MtChimney_EventScript_15D000
giveitem_std ITEM_LAVA_COOKIE
compare RESULT, 0
goto_if_eq MtChimney_EventScript_15CFF3
@@ -406,12 +406,10 @@ MtChimney_EventScript_15D174:: @ 815D174
MtChimney_EventScript_15D17D:: @ 815D17D
lockall
- checkflag FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY
- goto_if 0, MtChimney_EventScript_15D1D0
- checkflag FLAG_RECEIVED_METEORITE
- goto_if_eq MtChimney_EventScript_15D1C6
- msgbox MtChimney_Text_195870, 5
- compare RESULT, 0
+ goto_if_unset FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, MtChimney_EventScript_15D1D0
+ goto_if_set FLAG_RECEIVED_METEORITE, MtChimney_EventScript_15D1C6
+ msgbox MtChimney_Text_195870, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq MtChimney_EventScript_15D1BC
msgbox MtChimney_Text_1958C6, 4
giveitem_std ITEM_METEORITE
diff --git a/data/scripts/maps/MtChimney_CableCarStation.inc b/data/scripts/maps/MtChimney_CableCarStation.inc
index 6b919f2ca..1f98778d6 100644
--- a/data/scripts/maps/MtChimney_CableCarStation.inc
+++ b/data/scripts/maps/MtChimney_CableCarStation.inc
@@ -5,7 +5,7 @@ MtChimney_CableCarStation_MapScripts:: @ 815C0FA
MtChimney_CableCarStation_MapScript1_15C105:: @ 815C105
compare VAR_CABLE_CAR_STATION_STATE, 1
- call_if 1, MtChimney_CableCarStation_EventScript_15C111
+ call_if_eq MtChimney_CableCarStation_EventScript_15C111
end
MtChimney_CableCarStation_EventScript_15C111:: @ 815C111
@@ -31,10 +31,10 @@ MtChimney_CableCarStation_EventScript_15C127:: @ 815C127
MtChimney_CableCarStation_EventScript_15C14B:: @ 815C14B
lock
faceplayer
- msgbox MtChimney_CableCarStation_Text_19256A, 5
- compare RESULT, 1
+ msgbox MtChimney_CableCarStation_Text_19256A, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq MtChimney_CableCarStation_EventScript_15C16C
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MtChimney_CableCarStation_EventScript_15C19B
end
@@ -48,7 +48,7 @@ MtChimney_CableCarStation_EventScript_15C16C:: @ 815C16C
setvar VAR_CABLE_CAR_STATION_STATE, 2
incrementgamestat GAME_STAT_RODE_CABLE_CAR
special CableCarWarp
- special sub_8123218
+ special CableCar
waitstate
release
end
diff --git a/data/scripts/maps/MtPyre_1F.inc b/data/scripts/maps/MtPyre_1F.inc
index 7073000d5..f34c31da0 100644
--- a/data/scripts/maps/MtPyre_1F.inc
+++ b/data/scripts/maps/MtPyre_1F.inc
@@ -4,8 +4,7 @@ MtPyre_1F_MapScripts:: @ 815D322
MtPyre_1F_EventScript_15D323:: @ 815D323
lock
faceplayer
- checkflag FLAG_RECEIVED_CLEANSE_TAG
- goto_if_eq MtPyre_1F_EventScript_15D352
+ goto_if_set FLAG_RECEIVED_CLEANSE_TAG, MtPyre_1F_EventScript_15D352
msgbox MtPyre_1F_Text_196151, 4
giveitem_std ITEM_CLEANSE_TAG
compare RESULT, 0
diff --git a/data/scripts/maps/MtPyre_Exterior.inc b/data/scripts/maps/MtPyre_Exterior.inc
index 76f1736c2..f8b4141d7 100644
--- a/data/scripts/maps/MtPyre_Exterior.inc
+++ b/data/scripts/maps/MtPyre_Exterior.inc
@@ -9,19 +9,19 @@ MtPyre_Exterior_MapScript1_15D48C:: @ 815D48C
MtPyre_Exterior_EventScript_15D492:: @ 815D492
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_TEMP_1, 12
- goto_if 0, MtPyre_Exterior_EventScript_15D4A3
+ goto_if_lt MtPyre_Exterior_EventScript_15D4A3
return
MtPyre_Exterior_EventScript_15D4A3:: @ 815D4A3
- setweather 6
+ setweather WEATHER_FOG_1
return
MtPyre_Exterior_EventScript_15D4A7:: @ 815D4A7
- setweather 6
+ setweather WEATHER_FOG_1
doweather
end
MtPyre_Exterior_EventScript_15D4AC:: @ 815D4AC
- setweather 2
+ setweather WEATHER_SUNNY
doweather
end
diff --git a/data/scripts/maps/MtPyre_Summit.inc b/data/scripts/maps/MtPyre_Summit.inc
index 9cd4eecd1..d37100938 100644
--- a/data/scripts/maps/MtPyre_Summit.inc
+++ b/data/scripts/maps/MtPyre_Summit.inc
@@ -31,11 +31,11 @@ MtPyre_Summit_EventScript_15D4E1:: @ 815D4E1
waitmovement 0
delay 50
compare VAR_SPECIAL_8, 0
- call_if 1, MtPyre_Summit_EventScript_15D593
+ call_if_eq MtPyre_Summit_EventScript_15D593
compare VAR_SPECIAL_8, 1
- call_if 1, MtPyre_Summit_EventScript_15D59E
+ call_if_eq MtPyre_Summit_EventScript_15D59E
compare VAR_SPECIAL_8, 2
- call_if 1, MtPyre_Summit_EventScript_15D59F
+ call_if_eq MtPyre_Summit_EventScript_15D59F
.ifdef SAPPHIRE
msgbox UnknownString_81B52B0, 4
.else
@@ -53,11 +53,11 @@ MtPyre_Summit_EventScript_15D4E1:: @ 815D4E1
delay 20
call MtPyre_Summit_EventScript_15D57A
compare VAR_SPECIAL_8, 0
- call_if 1, MtPyre_Summit_EventScript_15D5AA
+ call_if_eq MtPyre_Summit_EventScript_15D5AA
compare VAR_SPECIAL_8, 1
- call_if 1, MtPyre_Summit_EventScript_15D5BF
+ call_if_eq MtPyre_Summit_EventScript_15D5BF
compare VAR_SPECIAL_8, 2
- call_if 1, MtPyre_Summit_EventScript_15D5CA
+ call_if_eq MtPyre_Summit_EventScript_15D5CA
.ifdef SAPPHIRE
msgbox UnknownString_81B53AB, 4
.else
@@ -139,14 +139,14 @@ MtPyre_Summit_EventScript_15D5EF:: @ 815D5EF
lock
faceplayer
.ifdef SAPPHIRE
- msgbox UnknownString_81B586F, 5
+ msgbox UnknownString_81B586F, MSGBOX_YESNO
.else
- msgbox MtPyre_Summit_Text_1B64B3, 5
+ msgbox MtPyre_Summit_Text_1B64B3, MSGBOX_YESNO
.endif
- compare RESULT, 1
- call_if 1, MtPyre_Summit_EventScript_15D611
- compare RESULT, 0
- call_if 1, MtPyre_Summit_EventScript_15D61A
+ compare RESULT, YES
+ call_if_eq MtPyre_Summit_EventScript_15D611
+ compare RESULT, NO
+ call_if_eq MtPyre_Summit_EventScript_15D61A
release
end
@@ -169,12 +169,9 @@ MtPyre_Summit_EventScript_15D61A:: @ 815D61A
MtPyre_Summit_EventScript_15D623:: @ 815D623
lock
faceplayer
- checkflag FLAG_RETURNED_RED_OR_BLUE_ORB
- goto_if_eq MtPyre_Summit_EventScript_15D6C4
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq MtPyre_Summit_EventScript_15D64A
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- goto_if_eq MtPyre_Summit_EventScript_15D6BA
+ goto_if_set FLAG_RETURNED_RED_OR_BLUE_ORB, MtPyre_Summit_EventScript_15D6C4
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, MtPyre_Summit_EventScript_15D64A
+ goto_if_set FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, MtPyre_Summit_EventScript_15D6BA
.ifdef SAPPHIRE
msgbox UnknownString_81B54BE, 4
.else
@@ -185,13 +182,13 @@ MtPyre_Summit_EventScript_15D623:: @ 815D623
MtPyre_Summit_EventScript_15D64A:: @ 815D64A
.ifdef SAPPHIRE
- msgbox UnknownString_81B5647, 5
+ msgbox UnknownString_81B5647, MSGBOX_YESNO
.else
- msgbox MtPyre_Summit_Text_1B6283, 5
+ msgbox MtPyre_Summit_Text_1B6283, MSGBOX_YESNO
.endif
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq MtPyre_Summit_EventScript_15D669
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MtPyre_Summit_EventScript_15D69B
end
@@ -216,13 +213,13 @@ MtPyre_Summit_EventScript_15D669:: @ 815D669
MtPyre_Summit_EventScript_15D69B:: @ 815D69B
.ifdef SAPPHIRE
- msgbox UnknownString_81B56AB, 5
+ msgbox UnknownString_81B56AB, MSGBOX_YESNO
.else
- msgbox MtPyre_Summit_Text_1B62E7, 5
+ msgbox MtPyre_Summit_Text_1B62E7, MSGBOX_YESNO
.endif
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq MtPyre_Summit_EventScript_15D669
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq MtPyre_Summit_EventScript_15D69B
end
@@ -269,11 +266,11 @@ MtPyre_Summit_EventScript_15D6F2:: @ 815D6F2
waitmovement 0
delay 50
compare VAR_SPECIAL_8, 0
- call_if 1, MtPyre_Summit_EventScript_15D75E
+ call_if_eq MtPyre_Summit_EventScript_15D75E
compare VAR_SPECIAL_8, 1
- call_if 1, MtPyre_Summit_EventScript_15D769
+ call_if_eq MtPyre_Summit_EventScript_15D769
compare VAR_SPECIAL_8, 2
- call_if 1, MtPyre_Summit_EventScript_15D774
+ call_if_eq MtPyre_Summit_EventScript_15D774
.ifdef SAPPHIRE
msgbox UnknownString_81B5BFC, 4
.else
@@ -281,11 +278,11 @@ MtPyre_Summit_EventScript_15D6F2:: @ 815D6F2
.endif
closemessage
compare VAR_SPECIAL_8, 0
- call_if 1, MtPyre_Summit_EventScript_15D77F
+ call_if_eq MtPyre_Summit_EventScript_15D77F
compare VAR_SPECIAL_8, 1
- call_if 1, MtPyre_Summit_EventScript_15D78A
+ call_if_eq MtPyre_Summit_EventScript_15D78A
compare VAR_SPECIAL_8, 2
- call_if 1, MtPyre_Summit_EventScript_15D795
+ call_if_eq MtPyre_Summit_EventScript_15D795
removeobject 2
setvar VAR_MT_PYRE_STATE, 3
releaseall
diff --git a/data/scripts/maps/NewMauville_Entrance.inc b/data/scripts/maps/NewMauville_Entrance.inc
index 1e4cdf256..1c8bdfb3f 100644
--- a/data/scripts/maps/NewMauville_Entrance.inc
+++ b/data/scripts/maps/NewMauville_Entrance.inc
@@ -5,7 +5,7 @@ NewMauville_Entrance_MapScripts:: @ 815E48A
NewMauville_Entrance_MapScript1_15E495:: @ 815E495
compare VAR_NEW_MAUVILLE_STATE, 0
- call_if 1, NewMauville_Entrance_EventScript_15E4A1
+ call_if_eq NewMauville_Entrance_EventScript_15E4A1
end
NewMauville_Entrance_EventScript_15E4A1:: @ 815E4A1
@@ -29,8 +29,8 @@ NewMauville_Entrance_EventScript_15E4DC:: @ 815E4DC
checkitem ITEM_BASEMENT_KEY, 1
compare RESULT, 0
goto_if_eq NewMauville_Entrance_EventScript_15E55D
- msgbox NewMauville_Entrance_Text_1982D4, 5
- compare RESULT, 0
+ msgbox NewMauville_Entrance_Text_1982D4, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq NewMauville_Entrance_EventScript_15E55D
msgbox NewMauville_Entrance_Text_1982EA, 4
setmetatile 3, 0, 707, 0
@@ -40,7 +40,7 @@ NewMauville_Entrance_EventScript_15E4DC:: @ 815E4DC
setmetatile 4, 1, 716, 0
setmetatile 5, 1, 717, 1
special DrawWholeMapView
- playse 20
+ playse SE_BAN
setvar VAR_NEW_MAUVILLE_STATE, 1
releaseall
end
diff --git a/data/scripts/maps/NewMauville_Inside.inc b/data/scripts/maps/NewMauville_Inside.inc
index 283b6bfed..e045cda5d 100644
--- a/data/scripts/maps/NewMauville_Inside.inc
+++ b/data/scripts/maps/NewMauville_Inside.inc
@@ -6,11 +6,10 @@ NewMauville_Inside_MapScripts:: @ 815E55F
NewMauville_Inside_MapScript1_15E56F:: @ 815E56F
compare VAR_TEMP_1, 1
- call_if 1, NewMauville_Inside_EventScript_15E5DA
+ call_if_eq NewMauville_Inside_EventScript_15E5DA
compare VAR_TEMP_2, 1
- call_if 1, NewMauville_Inside_EventScript_15E728
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, NewMauville_Inside_EventScript_15E58F
+ call_if_eq NewMauville_Inside_EventScript_15E728
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, NewMauville_Inside_EventScript_15E58F
end
NewMauville_Inside_EventScript_15E58F:: @ 815E58F
@@ -24,14 +23,14 @@ NewMauville_Inside_MapScript1_15E593:: @ 815E593
NewMauville_Inside_MapScript1_15E59E:: @ 815E59E
compare VAR_NEW_MAUVILLE_STATE, 2
- call_if 1, NewMauville_Inside_EventScript_15E88B
+ call_if_eq NewMauville_Inside_EventScript_15E88B
end
NewMauville_Inside_EventScript_15E5AA:: @ 815E5AA
lockall
setvar VAR_TEMP_1, 1
setvar VAR_TEMP_2, 0
- playse 21
+ playse SE_PIN
call NewMauville_Inside_EventScript_15E5DA
special DrawWholeMapView
releaseall
@@ -41,7 +40,7 @@ NewMauville_Inside_EventScript_15E5C2:: @ 815E5C2
lockall
setvar VAR_TEMP_1, 0
setvar VAR_TEMP_2, 1
- playse 21
+ playse SE_PIN
call NewMauville_Inside_EventScript_15E728
special DrawWholeMapView
releaseall
diff --git a/data/scripts/maps/OldaleTown.inc b/data/scripts/maps/OldaleTown.inc
index 329313e74..9b1c9dd80 100644
--- a/data/scripts/maps/OldaleTown.inc
+++ b/data/scripts/maps/OldaleTown.inc
@@ -5,12 +5,9 @@ OldaleTown_MapScripts:: @ 814DD62
OldaleTown_MapScript1_14DD68:: @ 814DD68
call OldaleTown_EventScript_1A014E
setflag FLAG_VISITED_OLDALE_TOWN
- checkflag FLAG_ADVENTURE_STARTED
- call_if 0, OldaleTown_EventScript_14DD92
- checkflag FLAG_RECEIVED_POTION_OLDALE
- call_if 0, OldaleTown_EventScript_14DD9E
- checkflag FLAG_ADVENTURE_STARTED
- call_if 1, OldaleTown_EventScript_14DD8C
+ call_if_unset FLAG_ADVENTURE_STARTED, OldaleTown_EventScript_14DD92
+ call_if_unset FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_14DD9E
+ call_if_set FLAG_ADVENTURE_STARTED, OldaleTown_EventScript_14DD8C
end
OldaleTown_EventScript_14DD8C:: @ 814DD8C
@@ -38,12 +35,10 @@ OldaleTown_EventScript_14DDB3:: @ 814DDB3
OldaleTown_EventScript_14DDBC:: @ 814DDBC
lock
faceplayer
- checkflag FLAG_RECEIVED_POTION_OLDALE
- goto_if_eq OldaleTown_EventScript_14DE79
- checkflag FLAG_TEMP_1
- goto_if_eq OldaleTown_EventScript_14DE79
+ goto_if_set FLAG_RECEIVED_POTION_OLDALE, OldaleTown_EventScript_14DE79
+ goto_if_set FLAG_TEMP_1, OldaleTown_EventScript_14DE79
setflag FLAG_TEMP_1
- playbgm 420, 0
+ playbgm BGM_TSURETEK, FALSE
msgbox OldaleTown_Text_16AEF2, 4
closemessage
switch FACING
@@ -195,8 +190,7 @@ OldaleTown_Movement_14DECB:: @ 814DECB
OldaleTown_EventScript_14DEDF:: @ 814DEDF
lock
faceplayer
- checkflag FLAG_ADVENTURE_STARTED
- goto_if_eq OldaleTown_EventScript_14DF26
+ goto_if_set FLAG_ADVENTURE_STARTED, OldaleTown_EventScript_14DF26
msgbox OldaleTown_Text_16B0CC, 4
closemessage
applymovement 3, OldaleTown_Movement_1A083D
diff --git a/data/scripts/maps/OldaleTown_Mart.inc b/data/scripts/maps/OldaleTown_Mart.inc
index f90c787c2..15cf40027 100644
--- a/data/scripts/maps/OldaleTown_Mart.inc
+++ b/data/scripts/maps/OldaleTown_Mart.inc
@@ -6,8 +6,7 @@ OldaleTown_Mart_EventScript_152F79:: @ 8152F79
faceplayer
message OldaleTown_Mart_Text_1A0BE4
waitmessage
- checkflag FLAG_ADVENTURE_STARTED
- goto_if_eq OldaleTown_Mart_EventScript_152FA8
+ goto_if_set FLAG_ADVENTURE_STARTED, OldaleTown_Mart_EventScript_152FA8
pokemart OldaleTown_Mart_Items1
msgbox OldaleTown_Mart_Text_1A0C02, 4
release
@@ -43,8 +42,7 @@ OldaleTown_Mart_Items2:: @ 8152FB8
OldaleTown_Mart_EventScript_152FC6:: @ 8152FC6
lock
faceplayer
- checkflag FLAG_ADVENTURE_STARTED
- goto_if_eq OldaleTown_Mart_EventScript_152FDB
+ goto_if_set FLAG_ADVENTURE_STARTED, OldaleTown_Mart_EventScript_152FDB
msgbox OldaleTown_Mart_Text_174A8A, 4
release
end
diff --git a/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc b/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
index d94e02227..c993807c6 100644
--- a/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
+++ b/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
@@ -26,8 +26,7 @@ OldaleTown_PokemonCenter_1F_EventScript_152F2E:: @ 8152F2E
OldaleTown_PokemonCenter_1F_EventScript_152F37:: @ 8152F37
lock
faceplayer
- checkflag FLAG_SYS_POKEDEX_GET
- goto_if_eq OldaleTown_PokemonCenter_1F_EventScript_152F4C
+ goto_if_set FLAG_SYS_POKEDEX_GET, OldaleTown_PokemonCenter_1F_EventScript_152F4C
msgbox OldaleTown_PokemonCenter_1F_Text_1749C0, 4
release
end
diff --git a/data/scripts/maps/PacifidlogTown_House2.inc b/data/scripts/maps/PacifidlogTown_House2.inc
index df7f42a8b..110bdcbe6 100644
--- a/data/scripts/maps/PacifidlogTown_House2.inc
+++ b/data/scripts/maps/PacifidlogTown_House2.inc
@@ -6,28 +6,24 @@ PacifidlogTown_House2_EventScript_154168:: @ 8154168
faceplayer
dodailyevents
call PacifidlogTown_House2_EventScript_1541B4
- checkflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
- goto_if_eq PacifidlogTown_House2_EventScript_154254
- checkflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
- call_if 1, PacifidlogTown_House2_EventScript_1541CE
- checkflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
- call_if 0, PacifidlogTown_House2_EventScript_1541D7
+ goto_if_set FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK, PacifidlogTown_House2_EventScript_154254
+ call_if_set FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_1541CE
+ call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_1541D7
setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
specialvar RESULT, GetLeadMonFriendshipScore
compare RESULT, 4
- goto_if 4, PacifidlogTown_House2_EventScript_1541EC
+ goto_if_ge PacifidlogTown_House2_EventScript_1541EC
specialvar RESULT, GetLeadMonFriendshipScore
compare RESULT, 2
- goto_if 4, PacifidlogTown_House2_EventScript_15421B
+ goto_if_ge PacifidlogTown_House2_EventScript_15421B
goto PacifidlogTown_House2_EventScript_154225
end
PacifidlogTown_House2_EventScript_1541B4:: @ 81541B4
- checkflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
- goto_if 0, PacifidlogTown_House2_EventScript_1A14DC
+ goto_if_unset FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK, PacifidlogTown_House2_EventScript_1A14DC
specialvar RESULT, GetDaysUntilPacifidlogTMAvailable
compare RESULT, 0
- call_if 1, PacifidlogTown_House2_EventScript_1541E8
+ call_if_eq PacifidlogTown_House2_EventScript_1541E8
return
PacifidlogTown_House2_EventScript_1541CE:: @ 81541CE
@@ -45,7 +41,7 @@ PacifidlogTown_House2_EventScript_1541E8:: @ 81541E8
PacifidlogTown_House2_EventScript_1541EC:: @ 81541EC
msgbox PacifidlogTown_House2_Text_179169, 4
- giveitem_std ITEM_TM27
+ giveitem_std ITEM_TM27_RETURN
compare RESULT, 0
goto_if_eq PacifidlogTown_House2_EventScript_1A029B
setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
@@ -61,7 +57,7 @@ PacifidlogTown_House2_EventScript_15421B:: @ 815421B
PacifidlogTown_House2_EventScript_154225:: @ 8154225
msgbox PacifidlogTown_House2_Text_17922D, 4
- giveitem_std ITEM_TM21
+ giveitem_std ITEM_TM21_FRUSTRATION
compare RESULT, 0
goto_if_eq PacifidlogTown_House2_EventScript_1A029B
setflag FLAG_RECEIVED_FANCLUB_TM_THIS_WEEK
diff --git a/data/scripts/maps/PacifidlogTown_House3.inc b/data/scripts/maps/PacifidlogTown_House3.inc
index f5f93f05a..3b21ac996 100644
--- a/data/scripts/maps/PacifidlogTown_House3.inc
+++ b/data/scripts/maps/PacifidlogTown_House3.inc
@@ -4,14 +4,13 @@ PacifidlogTown_House3_MapScripts:: @ 815429D
PacifidlogTown_House3_EventScript_15429E:: @ 815429E
lock
faceplayer
- checkflag FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED
- goto_if_eq PacifidlogTown_House3_EventScript_154338
+ goto_if_set FLAG_PACIFIDLOG_NPC_TRADE_COMPLETED, PacifidlogTown_House3_EventScript_154338
setvar VAR_SPECIAL_8, 2
copyvar VAR_SPECIAL_4, VAR_SPECIAL_8
specialvar RESULT, GetInGameTradeSpeciesInfo
copyvar VAR_SPECIAL_9, RESULT
- msgbox PacifidlogTown_House3_Text_17940E, 5
- compare RESULT, 0
+ msgbox PacifidlogTown_House3_Text_17940E, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq PacifidlogTown_House3_EventScript_154320
special SelectMonForNPCTrade
waitstate
@@ -22,7 +21,7 @@ PacifidlogTown_House3_EventScript_15429E:: @ 815429E
specialvar RESULT, GetTradeSpecies
copyvar VAR_SPECIAL_B, RESULT
compare RESULT, VAR_SPECIAL_9
- goto_if 5, PacifidlogTown_House3_EventScript_15432A
+ goto_if_ne PacifidlogTown_House3_EventScript_15432A
copyvar VAR_SPECIAL_4, VAR_SPECIAL_8
copyvar VAR_SPECIAL_5, VAR_SPECIAL_A
special CreateInGameTradePokemon
diff --git a/data/scripts/maps/PacifidlogTown_House4.inc b/data/scripts/maps/PacifidlogTown_House4.inc
index b7a6c9f86..584366c88 100644
--- a/data/scripts/maps/PacifidlogTown_House4.inc
+++ b/data/scripts/maps/PacifidlogTown_House4.inc
@@ -12,10 +12,10 @@ PacifidlogTown_House4_EventScript_154355:: @ 8154355
PacifidlogTown_House4_EventScript_15435E:: @ 815435E
lock
faceplayer
- msgbox PacifidlogTown_House4_Text_17963D, 5
- compare RESULT, 1
+ msgbox PacifidlogTown_House4_Text_17963D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PacifidlogTown_House4_EventScript_15437F
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PacifidlogTown_House4_EventScript_154389
end
diff --git a/data/scripts/maps/PetalburgCity.inc b/data/scripts/maps/PetalburgCity.inc
index 2ac3f35f9..cb47a0edd 100644
--- a/data/scripts/maps/PetalburgCity.inc
+++ b/data/scripts/maps/PetalburgCity.inc
@@ -6,9 +6,9 @@ PetalburgCity_MapScripts:: @ 814B70C
PetalburgCity_MapScript1_14B717:: @ 814B717
setflag FLAG_VISITED_PETALBURG_CITY
compare VAR_PETALBURG_STATE, 0
- call_if 1, PetalburgCity_EventScript_14B731
+ call_if_eq PetalburgCity_EventScript_14B731
compare VAR_PETALBURG_STATE, 2
- call_if 1, PetalburgCity_EventScript_14B739
+ call_if_eq PetalburgCity_EventScript_14B739
end
PetalburgCity_EventScript_14B731:: @ 814B731
@@ -16,7 +16,7 @@ PetalburgCity_EventScript_14B731:: @ 814B731
return
PetalburgCity_EventScript_14B739:: @ 814B739
- savebgm 420
+ savebgm BGM_TSURETEK
return
PetalburgCity_MapScript2_14B73D:: @ 814B73D
@@ -181,30 +181,30 @@ PetalburgCity_EventScript_14B85A:: @ 814B85A
PetalburgCity_EventScript_14B866:: @ 814B866
applymovement 9, PetalburgCity_Movement_1A0839
waitmovement 0
- playbgm 420, 0
- playse 21
+ playbgm BGM_TSURETEK, FALSE
+ playse SE_PIN
applymovement 9, PetalburgCity_Movement_1A0833
waitmovement 0
applymovement 9, PetalburgCity_Movement_1A0835
waitmovement 0
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_EventScript_14B91B
+ call_if_eq PetalburgCity_EventScript_14B91B
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_EventScript_14B930
+ call_if_eq PetalburgCity_EventScript_14B930
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_EventScript_14B93B
+ call_if_eq PetalburgCity_EventScript_14B93B
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_EventScript_14B950
+ call_if_eq PetalburgCity_EventScript_14B950
msgbox PetalburgCity_Text_16438A, 4
closemessage
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_EventScript_14B965
+ call_if_eq PetalburgCity_EventScript_14B965
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_EventScript_14B977
+ call_if_eq PetalburgCity_EventScript_14B977
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_EventScript_14B989
+ call_if_eq PetalburgCity_EventScript_14B989
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_EventScript_14B99B
+ call_if_eq PetalburgCity_EventScript_14B99B
msgbox PetalburgCity_Text_164426, 4
applymovement 9, PetalburgCity_Movement_1A0843
applymovement 255, PetalburgCity_Movement_1A0843
diff --git a/data/scripts/maps/PetalburgCity_Gym.inc b/data/scripts/maps/PetalburgCity_Gym.inc
index 1bd1649cf..1dc1a77ec 100644
--- a/data/scripts/maps/PetalburgCity_Gym.inc
+++ b/data/scripts/maps/PetalburgCity_Gym.inc
@@ -9,26 +9,19 @@ PetalburgCity_Gym_MapScript1_15448C:: @ 815448C
compare VAR_PETALBURG_GYM_STATE, 6
goto_if_eq PetalburgCity_Gym_EventScript_1544A3
compare VAR_PETALBURG_GYM_STATE, 7
- call_if 4, PetalburgCity_Gym_EventScript_1544ED
+ call_if_ge PetalburgCity_Gym_EventScript_1544ED
end
PetalburgCity_Gym_EventScript_1544A3:: @ 81544A3
setvar VAR_SPECIAL_5, 1
call PetalburgCity_Gym_EventScript_154F9A
- checktrainerflag OPPONENT_RANDALL
- call_if 1, PetalburgCity_Gym_EventScript_154FBB
- checktrainerflag OPPONENT_MARY
- call_if 1, PetalburgCity_Gym_EventScript_154FDC
- checktrainerflag OPPONENT_PARKER
- call_if 1, PetalburgCity_Gym_EventScript_154FFD
- checktrainerflag OPPONENT_LORI
- call_if 1, PetalburgCity_Gym_EventScript_15501E
- checktrainerflag OPPONENT_GEORGE
- call_if 1, PetalburgCity_Gym_EventScript_15503F
- checktrainerflag OPPONENT_JODY
- call_if 1, PetalburgCity_Gym_EventScript_155060
- checktrainerflag OPPONENT_BERKE
- call_if 1, PetalburgCity_Gym_EventScript_155081
+ call_if_trainer_defeated OPPONENT_RANDALL, PetalburgCity_Gym_EventScript_154FBB
+ call_if_trainer_defeated OPPONENT_MARY, PetalburgCity_Gym_EventScript_154FDC
+ call_if_trainer_defeated OPPONENT_PARKER, PetalburgCity_Gym_EventScript_154FFD
+ call_if_trainer_defeated OPPONENT_LORI, PetalburgCity_Gym_EventScript_15501E
+ call_if_trainer_defeated OPPONENT_GEORGE, PetalburgCity_Gym_EventScript_15503F
+ call_if_trainer_defeated OPPONENT_JODY, PetalburgCity_Gym_EventScript_155060
+ call_if_trainer_defeated OPPONENT_BERKE, PetalburgCity_Gym_EventScript_155081
end
PetalburgCity_Gym_EventScript_1544ED:: @ 81544ED
@@ -45,11 +38,10 @@ PetalburgCity_Gym_EventScript_1544ED:: @ 81544ED
PetalburgCity_Gym_MapScript1_15451B:: @ 815451B
compare VAR_PETALBURG_GYM_STATE, 1
- call_if 1, PetalburgCity_Gym_EventScript_15453B
+ call_if_eq PetalburgCity_Gym_EventScript_15453B
compare VAR_PETALBURG_GYM_STATE, 6
- call_if 0, PetalburgCity_Gym_EventScript_154543
- checkflag FLAG_SYS_GAME_CLEAR
- call_if 1, PetalburgCity_Gym_EventScript_15454B
+ call_if_lt PetalburgCity_Gym_EventScript_154543
+ call_if_set FLAG_SYS_GAME_CLEAR, PetalburgCity_Gym_EventScript_15454B
end
PetalburgCity_Gym_EventScript_15453B:: @ 815453B
@@ -84,7 +76,7 @@ PetalburgCity_Gym_EventScript_15456C:: @ 815456C
applymovement 255, PetalburgCity_Gym_Movement_1A0845
applymovement 10, PetalburgCity_Gym_Movement_1545B4
waitmovement 0
- playse 9
+ playse SE_KAIDAN
removeobject 10
setflag FLAG_HIDE_WALLY_PETALBURG
delay 30
@@ -143,67 +135,67 @@ PetalburgCity_Gym_EventScript_15465E:: @ 815465E
PetalburgCity_Gym_EventScript_154669:: @ 8154669
addobject 10
- playse 8
+ playse SE_DOOR
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_Gym_EventScript_1547EE
+ call_if_eq PetalburgCity_Gym_EventScript_1547EE
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_Gym_EventScript_154800
+ call_if_eq PetalburgCity_Gym_EventScript_154800
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_Gym_EventScript_15481C
+ call_if_eq PetalburgCity_Gym_EventScript_15481C
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_Gym_EventScript_15481C
+ call_if_eq PetalburgCity_Gym_EventScript_15481C
msgbox PetalburgCity_Gym_Text_179F07, 4
msgbox PetalburgCity_Gym_Text_179F37, 4
msgbox PetalburgCity_Gym_Text_179F70, 4
msgbox PetalburgCity_Gym_Text_17A03A, 4
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_Gym_EventScript_154884
+ call_if_eq PetalburgCity_Gym_EventScript_154884
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_Gym_EventScript_15488F
+ call_if_eq PetalburgCity_Gym_EventScript_15488F
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_Gym_EventScript_1548A1
+ call_if_eq PetalburgCity_Gym_EventScript_1548A1
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_Gym_EventScript_1548B3
+ call_if_eq PetalburgCity_Gym_EventScript_1548B3
msgbox PetalburgCity_Gym_Text_17A04A, 4
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_Gym_EventScript_1548C5
+ call_if_eq PetalburgCity_Gym_EventScript_1548C5
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_Gym_EventScript_1548D0
+ call_if_eq PetalburgCity_Gym_EventScript_1548D0
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_Gym_EventScript_1548DB
+ call_if_eq PetalburgCity_Gym_EventScript_1548DB
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_Gym_EventScript_1548E6
+ call_if_eq PetalburgCity_Gym_EventScript_1548E6
msgbox PetalburgCity_Gym_Text_17A0A8, 4
msgbox PetalburgCity_Gym_Text_17A0EB, 4
msgbox PetalburgCity_Gym_Text_17A156, 4
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_Gym_EventScript_15492F
+ call_if_eq PetalburgCity_Gym_EventScript_15492F
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_Gym_EventScript_154930
+ call_if_eq PetalburgCity_Gym_EventScript_154930
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_Gym_EventScript_15493B
+ call_if_eq PetalburgCity_Gym_EventScript_15493B
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_Gym_EventScript_15493C
+ call_if_eq PetalburgCity_Gym_EventScript_15493C
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_Gym_EventScript_1548F1
+ call_if_eq PetalburgCity_Gym_EventScript_1548F1
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_Gym_EventScript_1548FC
+ call_if_eq PetalburgCity_Gym_EventScript_1548FC
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_Gym_EventScript_1548F1
+ call_if_eq PetalburgCity_Gym_EventScript_1548F1
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_Gym_EventScript_1548F1
+ call_if_eq PetalburgCity_Gym_EventScript_1548F1
msgbox PetalburgCity_Gym_Text_17A171, 4
closemessage
setflag FLAG_SPECIAL_FLAG_1
- playbgm 420, 0
+ playbgm BGM_TSURETEK, FALSE
compare VAR_SPECIAL_8, 0
- call_if 1, PetalburgCity_Gym_EventScript_154835
+ call_if_eq PetalburgCity_Gym_EventScript_154835
compare VAR_SPECIAL_8, 1
- call_if 1, PetalburgCity_Gym_EventScript_15484E
+ call_if_eq PetalburgCity_Gym_EventScript_15484E
compare VAR_SPECIAL_8, 2
- call_if 1, PetalburgCity_Gym_EventScript_154860
+ call_if_eq PetalburgCity_Gym_EventScript_154860
compare VAR_SPECIAL_8, 3
- call_if 1, PetalburgCity_Gym_EventScript_154872
+ call_if_eq PetalburgCity_Gym_EventScript_154872
removeobject 10
setflag FLAG_HIDE_WALLY_MOM_PETALBURG_1
setvar VAR_PETALBURG_GYM_STATE, 1
@@ -354,10 +346,8 @@ PetalburgCity_Gym_EventScript_15493D:: @ 815493D
call PetalburgCity_Gym_EventScript_154969
compare RESULT, 1
goto_if_eq PetalburgCity_Gym_EventScript_1549B8
- checkflag FLAG_RECEIVED_TM42
- goto_if 0, PetalburgCity_Gym_EventScript_154A2C
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq PetalburgCity_Gym_EventScript_154B69
+ goto_if_unset FLAG_RECEIVED_TM42, PetalburgCity_Gym_EventScript_154A2C
+ goto_if_set FLAG_SYS_GAME_CLEAR, PetalburgCity_Gym_EventScript_154B69
msgbox PetalburgCity_Gym_Text_17AA6B, 4
release
end
@@ -412,7 +402,7 @@ PetalburgCity_Gym_EventScript_1549D6:: @ 81549D6
end
PetalburgCity_Gym_EventScript_154A2C:: @ 8154A2C
- giveitem_std ITEM_TM42
+ giveitem_std ITEM_TM42_FACADE
compare RESULT, 0
goto_if_eq PetalburgCity_Gym_EventScript_1A029B
setflag FLAG_RECEIVED_TM42
@@ -420,22 +410,22 @@ PetalburgCity_Gym_EventScript_154A2C:: @ 8154A2C
msgbox PetalburgCity_Gym_Text_17A976, 4
closemessage
compare FACING, 2
- call_if 1, PetalburgCity_Gym_EventScript_154ABC
+ call_if_eq PetalburgCity_Gym_EventScript_154ABC
compare FACING, 1
- call_if 1, PetalburgCity_Gym_EventScript_154AC7
+ call_if_eq PetalburgCity_Gym_EventScript_154AC7
compare FACING, 3
- call_if 1, PetalburgCity_Gym_EventScript_154AD2
+ call_if_eq PetalburgCity_Gym_EventScript_154AD2
compare FACING, 4
- call_if 1, PetalburgCity_Gym_EventScript_154ADD
+ call_if_eq PetalburgCity_Gym_EventScript_154ADD
delay 70
compare FACING, 2
- call_if 1, PetalburgCity_Gym_EventScript_154AE8
+ call_if_eq PetalburgCity_Gym_EventScript_154AE8
compare FACING, 1
- call_if 1, PetalburgCity_Gym_EventScript_154AF3
+ call_if_eq PetalburgCity_Gym_EventScript_154AF3
compare FACING, 3
- call_if 1, PetalburgCity_Gym_EventScript_154AFE
+ call_if_eq PetalburgCity_Gym_EventScript_154AFE
compare FACING, 4
- call_if 1, PetalburgCity_Gym_EventScript_154B09
+ call_if_eq PetalburgCity_Gym_EventScript_154B09
msgbox PetalburgCity_Gym_Text_17A9F6, 4
release
end
@@ -593,13 +583,13 @@ PetalburgCity_Gym_EventScript_154B69:: @ 8154B69
PetalburgCity_Gym_EventScript_154B73:: @ 8154B73
lockall
compare VAR_PETALBURG_GYM_STATE, 6
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_lt PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 7
setvar VAR_SPECIAL_9, 85
- msgbox PetalburgCity_Gym_Text_17B870, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B870, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
@@ -623,150 +613,139 @@ PetalburgCity_Gym_EventScript_154BB9:: @ 8154BB9
PetalburgCity_Gym_EventScript_154BC3:: @ 8154BC3
lockall
compare VAR_PETALBURG_GYM_STATE, 6
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_lt PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 1
setvar VAR_SPECIAL_9, 98
- msgbox PetalburgCity_Gym_Text_17B8D4, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B8D4, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154BF8:: @ 8154BF8
lockall
- checktrainerflag OPPONENT_RANDALL
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_RANDALL, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 7
setvar VAR_SPECIAL_9, 46
- msgbox PetalburgCity_Gym_Text_17B90F, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B90F, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154C2B:: @ 8154C2B
lockall
- checktrainerflag OPPONENT_RANDALL
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_RANDALL, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 1
setvar VAR_SPECIAL_9, 59
- msgbox PetalburgCity_Gym_Text_17B950, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B950, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154C5E:: @ 8154C5E
lockall
- checktrainerflag OPPONENT_MARY
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_MARY, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 7
setvar VAR_SPECIAL_9, 59
- msgbox PetalburgCity_Gym_Text_17B950, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B950, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154C91:: @ 8154C91
lockall
- checktrainerflag OPPONENT_MARY
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_MARY, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 1
setvar VAR_SPECIAL_9, 72
- msgbox PetalburgCity_Gym_Text_17B98A, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B98A, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154CC4:: @ 8154CC4
lockall
- checktrainerflag OPPONENT_PARKER
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_PARKER, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 1
setvar VAR_SPECIAL_9, 20
- msgbox PetalburgCity_Gym_Text_17B9C5, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B9C5, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154CF7:: @ 8154CF7
lockall
- checktrainerflag OPPONENT_LORI
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_LORI, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 7
setvar VAR_SPECIAL_9, 20
- msgbox PetalburgCity_Gym_Text_17B9C5, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17B9C5, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154D2A:: @ 8154D2A
lockall
- checktrainerflag OPPONENT_LORI
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_LORI, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 1
setvar VAR_SPECIAL_9, 33
- msgbox PetalburgCity_Gym_Text_17BA00, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17BA00, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154D5D:: @ 8154D5D
lockall
- checktrainerflag OPPONENT_GEORGE
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_GEORGE, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 7
setvar VAR_SPECIAL_9, 33
- msgbox PetalburgCity_Gym_Text_17BA00, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17BA00, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154D90:: @ 8154D90
lockall
- checktrainerflag OPPONENT_JODY
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_JODY, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 1
setvar VAR_SPECIAL_9, 7
- msgbox PetalburgCity_Gym_Text_17BA3D, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17BA3D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154DC3:: @ 8154DC3
lockall
- checktrainerflag OPPONENT_BERKE
- goto_if 0, PetalburgCity_Gym_EventScript_154BB9
+ goto_if_trainer_not_defeated OPPONENT_BERKE, PetalburgCity_Gym_EventScript_154BB9
setvar VAR_SPECIAL_8, 7
setvar VAR_SPECIAL_9, 7
- msgbox PetalburgCity_Gym_Text_17BA3D, 5
- compare RESULT, 1
+ msgbox PetalburgCity_Gym_Text_17BA3D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq PetalburgCity_Gym_EventScript_154BA8
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq PetalburgCity_Gym_EventScript_154BB7
end
PetalburgCity_Gym_EventScript_154DF6:: @ 8154DF6
trainerbattle 2, OPPONENT_RANDALL, 0, PetalburgCity_Gym_Text_17ADA5, PetalburgCity_Gym_Text_17AE11, PetalburgCity_Gym_EventScript_154E1A
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154E29
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154E29
msgbox PetalburgCity_Gym_Text_17AE30, 6
end
@@ -783,8 +762,7 @@ PetalburgCity_Gym_EventScript_154E29:: @ 8154E29
PetalburgCity_Gym_EventScript_154E32:: @ 8154E32
trainerbattle 2, OPPONENT_PARKER, 0, PetalburgCity_Gym_Text_17AF5A, PetalburgCity_Gym_Text_17AF98, PetalburgCity_Gym_EventScript_154E56
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154E65
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154E65
msgbox PetalburgCity_Gym_Text_17AFD3, 6
end
@@ -801,8 +779,7 @@ PetalburgCity_Gym_EventScript_154E65:: @ 8154E65
PetalburgCity_Gym_EventScript_154E6E:: @ 8154E6E
trainerbattle 2, OPPONENT_GEORGE, 0, PetalburgCity_Gym_Text_17B058, PetalburgCity_Gym_Text_17B0F7, PetalburgCity_Gym_EventScript_154E92
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154EA1
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154EA1
msgbox PetalburgCity_Gym_Text_17B12C, 6
end
@@ -819,8 +796,7 @@ PetalburgCity_Gym_EventScript_154EA1:: @ 8154EA1
PetalburgCity_Gym_EventScript_154EAA:: @ 8154EAA
trainerbattle 2, OPPONENT_BERKE, 0, PetalburgCity_Gym_Text_17B237, PetalburgCity_Gym_Text_17B2C0, PetalburgCity_Gym_EventScript_154ECE
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154EDD
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154EDD
msgbox PetalburgCity_Gym_Text_17B2E4, 6
end
@@ -837,8 +813,7 @@ PetalburgCity_Gym_EventScript_154EDD:: @ 8154EDD
PetalburgCity_Gym_EventScript_154EE6:: @ 8154EE6
trainerbattle 2, OPPONENT_MARY, 0, PetalburgCity_Gym_Text_17B3F7, PetalburgCity_Gym_Text_17B454, PetalburgCity_Gym_EventScript_154F0A
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154F19
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154F19
msgbox PetalburgCity_Gym_Text_17B46F, 6
end
@@ -855,8 +830,7 @@ PetalburgCity_Gym_EventScript_154F19:: @ 8154F19
PetalburgCity_Gym_EventScript_154F22:: @ 8154F22
trainerbattle 2, OPPONENT_LORI, 0, PetalburgCity_Gym_Text_17B58D, PetalburgCity_Gym_Text_17B5CB, PetalburgCity_Gym_EventScript_154F46
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154F55
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154F55
msgbox PetalburgCity_Gym_Text_17B5EA, 6
end
@@ -873,8 +847,7 @@ PetalburgCity_Gym_EventScript_154F55:: @ 8154F55
PetalburgCity_Gym_EventScript_154F5E:: @ 8154F5E
trainerbattle 2, OPPONENT_JODY, 0, PetalburgCity_Gym_Text_17B6D4, PetalburgCity_Gym_Text_17B732, PetalburgCity_Gym_EventScript_154F82
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_154F91
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_154F91
msgbox PetalburgCity_Gym_Text_17B749, 6
end
@@ -892,72 +865,72 @@ PetalburgCity_Gym_EventScript_154F91:: @ 8154F91
PetalburgCity_Gym_EventScript_154F9A:: @ 8154F9A
setvar VAR_SPECIAL_4, 1
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_1550A2
return
PetalburgCity_Gym_EventScript_154FBB:: @ 8154FBB
setvar VAR_SPECIAL_4, 2
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_1550C7
return
PetalburgCity_Gym_EventScript_154FDC:: @ 8154FDC
setvar VAR_SPECIAL_4, 3
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_1550EC
return
PetalburgCity_Gym_EventScript_154FFD:: @ 8154FFD
setvar VAR_SPECIAL_4, 4
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_155111
return
PetalburgCity_Gym_EventScript_15501E:: @ 815501E
setvar VAR_SPECIAL_4, 5
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_155124
return
PetalburgCity_Gym_EventScript_15503F:: @ 815503F
setvar VAR_SPECIAL_4, 6
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_155149
return
PetalburgCity_Gym_EventScript_155060:: @ 8155060
setvar VAR_SPECIAL_4, 7
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_15515C
return
PetalburgCity_Gym_EventScript_155081:: @ 8155081
setvar VAR_SPECIAL_4, 8
compare VAR_SPECIAL_5, 0
- call_if 1, PetalburgCity_Gym_EventScript_155182
+ call_if_eq PetalburgCity_Gym_EventScript_155182
compare VAR_SPECIAL_5, 1
- call_if 1, PetalburgCity_Gym_EventScript_155187
+ call_if_eq PetalburgCity_Gym_EventScript_155187
call PetalburgCity_Gym_EventScript_15516F
return
@@ -1021,8 +994,7 @@ PetalburgCity_Gym_EventScript_155187:: @ 8155187
PetalburgCity_Gym_EventScript_15518B:: @ 815518B
lock
faceplayer
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_Gym_EventScript_1551A0
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_Gym_EventScript_1551A0
msgbox PetalburgCity_Gym_Text_17AB96, 4
release
end
@@ -1034,15 +1006,13 @@ PetalburgCity_Gym_EventScript_1551A0:: @ 81551A0
PetalburgCity_Gym_EventScript_1551AA:: @ 81551AA
lockall
- checkflag FLAG_BADGE05_GET
- goto_if_eq PetalburgCity_Gym_EventScript_1551CA
+ goto_if_set FLAG_BADGE05_GET, PetalburgCity_Gym_EventScript_1551CA
goto PetalburgCity_Gym_EventScript_1551D4
end
PetalburgCity_Gym_EventScript_1551BA:: @ 81551BA
lockall
- checkflag FLAG_BADGE05_GET
- goto_if_eq PetalburgCity_Gym_EventScript_1551CA
+ goto_if_set FLAG_BADGE05_GET, PetalburgCity_Gym_EventScript_1551CA
goto PetalburgCity_Gym_EventScript_1551D4
end
diff --git a/data/scripts/maps/PetalburgCity_Mart.inc b/data/scripts/maps/PetalburgCity_Mart.inc
index 66e247323..7584f6f19 100644
--- a/data/scripts/maps/PetalburgCity_Mart.inc
+++ b/data/scripts/maps/PetalburgCity_Mart.inc
@@ -6,8 +6,7 @@ PetalburgCity_Mart_EventScript_1552B0:: @ 81552B0
faceplayer
message PetalburgCity_Mart_Text_1A0BE4
waitmessage
- checkflag FLAG_PETALBURG_MART_EXPANDED_ITEMS
- goto_if_eq PetalburgCity_Mart_EventScript_1552EA
+ goto_if_set FLAG_PETALBURG_MART_EXPANDED_ITEMS, PetalburgCity_Mart_EventScript_1552EA
pokemart PetalburgCity_Mart_Items1
msgbox PetalburgCity_Mart_Text_1A0C02, 4
release
diff --git a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
index 8dda62ea1..136cc11c5 100644
--- a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
@@ -35,11 +35,11 @@ PetalburgCity_PokemonCenter_1F_EventScript_155233:: @ 8155233
PetalburgCity_PokemonCenter_1F_EventScript_15524F:: @ 815524F
compare VAR_STARTER_MON, 0
- call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_155272
+ call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_155272
compare VAR_STARTER_MON, 1
- call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_15527B
+ call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_15527B
compare VAR_STARTER_MON, 2
- call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_155284
+ call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_155284
release
end
diff --git a/data/scripts/maps/PetalburgCity_WallysHouse.inc b/data/scripts/maps/PetalburgCity_WallysHouse.inc
index 08bbcb0c7..1a1605817 100644
--- a/data/scripts/maps/PetalburgCity_WallysHouse.inc
+++ b/data/scripts/maps/PetalburgCity_WallysHouse.inc
@@ -4,28 +4,23 @@ PetalburgCity_WallysHouse_MapScripts:: @ 81543C3
PetalburgCity_WallysHouse_EventScript_1543C4:: @ 81543C4
lock
faceplayer
- checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
- goto_if_eq PetalburgCity_WallysHouse_EventScript_1543F7
- checkflag FLAG_RECEIVED_HM03
- goto_if_eq PetalburgCity_WallysHouse_EventScript_154427
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_WallysHouse_EventScript_154406
- checkflag FLAG_THANKED_FOR_PLAYING_WITH_WALLY
- goto_if_eq PetalburgCity_WallysHouse_EventScript_15443B
+ goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, PetalburgCity_WallysHouse_EventScript_1543F7
+ goto_if_set FLAG_RECEIVED_HM03, PetalburgCity_WallysHouse_EventScript_154427
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_WallysHouse_EventScript_154406
+ goto_if_set FLAG_THANKED_FOR_PLAYING_WITH_WALLY, PetalburgCity_WallysHouse_EventScript_15443B
msgbox PetalburgCity_WallysHouse_Text_179805, 4
setflag FLAG_THANKED_FOR_PLAYING_WITH_WALLY
release
end
PetalburgCity_WallysHouse_EventScript_1543F7:: @ 81543F7
- checkflag FLAG_RECEIVED_HM03
- goto_if_eq PetalburgCity_WallysHouse_EventScript_154431
+ goto_if_set FLAG_RECEIVED_HM03, PetalburgCity_WallysHouse_EventScript_154431
goto PetalburgCity_WallysHouse_EventScript_154406
end
PetalburgCity_WallysHouse_EventScript_154406:: @ 8154406
msgbox PetalburgCity_WallysHouse_Text_179996, 4
- giveitem_std ITEM_HM03
+ giveitem_std ITEM_HM03_SURF
setflag FLAG_RECEIVED_HM03
msgbox PetalburgCity_WallysHouse_Text_179B14, 4
release
@@ -49,10 +44,8 @@ PetalburgCity_WallysHouse_EventScript_15443B:: @ 815443B
PetalburgCity_WallysHouse_EventScript_154445:: @ 8154445
lock
faceplayer
- checkflag FLAG_RECEIVED_HM03
- goto_if_eq PetalburgCity_WallysHouse_EventScript_15446D
- checkflag FLAG_DEFEATED_PETALBURG_GYM
- goto_if_eq PetalburgCity_WallysHouse_EventScript_154463
+ goto_if_set FLAG_RECEIVED_HM03, PetalburgCity_WallysHouse_EventScript_15446D
+ goto_if_set FLAG_DEFEATED_PETALBURG_GYM, PetalburgCity_WallysHouse_EventScript_154463
msgbox PetalburgCity_WallysHouse_Text_179C2C, 4
release
end
diff --git a/data/scripts/maps/PetalburgWoods.inc b/data/scripts/maps/PetalburgWoods.inc
index 73eb4f661..17908440c 100644
--- a/data/scripts/maps/PetalburgWoods.inc
+++ b/data/scripts/maps/PetalburgWoods.inc
@@ -13,7 +13,7 @@ PetalburgWoods_EventScript_15CCA8:: @ 815CCA8
waitmovement 0
msgbox PetalburgWoods_Text_194D92, 4
closemessage
- playbgm BGM_EVIL_TEAM, 0
+ playbgm BGM_EVIL_TEAM, FALSE
applymovement 3, PetalburgWoods_Movement_15CEC3
waitmovement 0
msgbox PetalburgWoods_Text_194DED, 4
@@ -48,7 +48,7 @@ PetalburgWoods_EventScript_15CD42:: @ 815CD42
waitmovement 0
msgbox PetalburgWoods_Text_194D92, 4
closemessage
- playbgm BGM_EVIL_TEAM, 0
+ playbgm BGM_EVIL_TEAM, FALSE
applymovement 3, PetalburgWoods_Movement_15CEC3
waitmovement 0
msgbox PetalburgWoods_Text_194DED, 4
@@ -241,8 +241,7 @@ PetalburgWoods_EventScript_15CED3:: @ 815CED3
PetalburgWoods_EventScript_15CEDC:: @ 815CEDC
lock
faceplayer
- checkflag FLAG_RECEIVED_MIRACLE_SEED
- goto_if_eq PetalburgWoods_EventScript_15CF0B
+ goto_if_set FLAG_RECEIVED_MIRACLE_SEED, PetalburgWoods_EventScript_15CF0B
msgbox PetalburgWoods_Text_19549E, 4
giveitem_std ITEM_MIRACLE_SEED
compare RESULT, 0
diff --git a/data/scripts/maps/Route101.inc b/data/scripts/maps/Route101.inc
index 6749f2136..6840c45f4 100644
--- a/data/scripts/maps/Route101.inc
+++ b/data/scripts/maps/Route101.inc
@@ -18,7 +18,7 @@ Route101_EventScript_14E93F:: @ 814E93F
Route101_EventScript_14E948:: @ 814E948
lockall
- playbgm 410, 1
+ playbgm BGM_EVENT0, TRUE
msgbox Route101_Text_16D10E, 4
closemessage
setobjectxy 2, 0, 15
diff --git a/data/scripts/maps/Route103.inc b/data/scripts/maps/Route103.inc
index bfcbeb87a..22c3fa391 100644
--- a/data/scripts/maps/Route103.inc
+++ b/data/scripts/maps/Route103.inc
@@ -18,7 +18,7 @@ Route103_EventScript_14EB92:: @ 814EB92
Route103_EventScript_14EBAB:: @ 814EBAB
msgbox Route103_Text_16D57A, 4
- playbgm 415, 1
+ playbgm BGM_GIRL_SUP, TRUE
applymovement 2, Route103_Movement_1A0839
waitmovement 0
applymovement 2, Route103_Movement_1A0833
@@ -34,7 +34,7 @@ Route103_EventScript_14EBAB:: @ 814EBAB
Route103_EventScript_14EC04:: @ 814EC04
msgbox Route103_Text_16D762, 4
- playbgm 421, 1
+ playbgm BGM_BOY_SUP, TRUE
applymovement 2, Route103_Movement_1A0839
waitmovement 0
applymovement 2, Route103_Movement_1A0833
@@ -100,7 +100,7 @@ Route103_EventScript_14ECD9:: @ 814ECD9
Route103_EventScript_14ED0C:: @ 814ED0C
applymovement 2, Route103_Movement_14ED67
waitmovement 0
- playse 10
+ playse SE_DANSA
applymovement 2, Route103_Movement_14ED6B
waitmovement 0
goto Route103_EventScript_14ED46
@@ -109,7 +109,7 @@ Route103_EventScript_14ED0C:: @ 814ED0C
Route103_EventScript_14ED29:: @ 814ED29
applymovement 2, Route103_Movement_14ED71
waitmovement 0
- playse 10
+ playse SE_DANSA
applymovement 2, Route103_Movement_14ED74
waitmovement 0
goto Route103_EventScript_14ED46
diff --git a/data/scripts/maps/Route104.inc b/data/scripts/maps/Route104.inc
index c90a97531..2d44d4dfd 100644
--- a/data/scripts/maps/Route104.inc
+++ b/data/scripts/maps/Route104.inc
@@ -17,10 +17,8 @@ Route104_MapScript1_14EEA8:: @ 814EEA8
end
Route104_EventScript_14EEAE:: @ 814EEAE
- checkflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
- goto_if 0, Route104_EventScript_14EEC4
- checkflag FLAG_BADGE03_GET
- goto_if 0, Route104_EventScript_14EEC4
+ goto_if_unset FLAG_MET_PRETTY_PETAL_SHOP_OWNER, Route104_EventScript_14EEC4
+ goto_if_unset FLAG_BADGE03_GET, Route104_EventScript_14EEC4
clearflag FLAG_HIDE_FLOWER_SHOP_WORKER_OUTSIDE
return
@@ -31,8 +29,7 @@ Route104_EventScript_14EEC4:: @ 814EEC4
Route104_EventScript_14EEC8:: @ 814EEC8
lock
faceplayer
- checkflag FLAG_RECEIVED_CHESTO_BERRY_ROUTE104
- goto_if_eq Route104_EventScript_14EEFF
+ goto_if_set FLAG_RECEIVED_CHESTO_BERRY_ROUTE104, Route104_EventScript_14EEFF
msgbox Route104_Text_1C55B9, 4
giveitem_std ITEM_CHESTO_BERRY
compare RESULT, 0
@@ -50,8 +47,7 @@ Route104_EventScript_14EEFF:: @ 814EEFF
Route104_EventScript_14EF09:: @ 814EF09
lock
faceplayer
- checkflag FLAG_RECEIVED_WHITE_HERB
- goto_if_eq Route104_EventScript_14EF38
+ goto_if_set FLAG_RECEIVED_WHITE_HERB, Route104_EventScript_14EF38
msgbox Route104_Text_16DD91, 4
giveitem_std ITEM_WHITE_HERB
compare RESULT, 0
@@ -104,10 +100,9 @@ Route104_EventScript_14EF8A:: @ 814EF8A
Route104_EventScript_14EF93:: @ 814EF93
lock
faceplayer
- checkflag FLAG_RECEIVED_TM09
- goto_if_eq Route104_EventScript_14EFC2
+ goto_if_set FLAG_RECEIVED_TM09, Route104_EventScript_14EFC2
msgbox Route104_Text_16DC5F, 4
- giveitem_std ITEM_TM09
+ giveitem_std ITEM_TM09_BULLET_SEED
compare RESULT, 0
goto_if_eq Route104_EventScript_1A029B
setflag FLAG_RECEIVED_TM09
@@ -158,10 +153,8 @@ Route104_EventScript_14EFD5:: @ 814EFD5
resetobjectpriority 2, MAP_DEWFORD_TOWN
moveobjectoffscreen 2
setvar VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE, 0
- checkflag FLAG_DELIVERED_STEVEN_LETTER
- goto_if 0, Route104_EventScript_14F08B
- checkflag FLAG_DELIVERED_STEVEN_LETTER
- goto_if_eq Route104_EventScript_14F095
+ goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_14F08B
+ goto_if_set FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_14F095
end
Route104_EventScript_14F08B:: @ 814F08B
diff --git a/data/scripts/maps/Route104_MrBrineysHouse.inc b/data/scripts/maps/Route104_MrBrineysHouse.inc
index cb52908f5..514b1b9cc 100644
--- a/data/scripts/maps/Route104_MrBrineysHouse.inc
+++ b/data/scripts/maps/Route104_MrBrineysHouse.inc
@@ -5,9 +5,8 @@ Route104_MrBrineysHouse_MapScripts:: @ 815BCB2
Route104_MrBrineysHouse_MapScript1_15BCB8:: @ 815BCB8
setflag FLAG_LANDMARK_MR_BRINEY_HOUSE
compare VAR_BRINEY_HOUSE_STATE, 1
- call_if 1, Route104_MrBrineysHouse_EventScript_15BCD4
- checkflag FLAG_RECEIVED_POKENAV
- call_if 1, Route104_MrBrineysHouse_EventScript_15BCD0
+ call_if_eq Route104_MrBrineysHouse_EventScript_15BCD4
+ call_if_set FLAG_RECEIVED_POKENAV, Route104_MrBrineysHouse_EventScript_15BCD0
end
Route104_MrBrineysHouse_EventScript_15BCD0:: @ 815BCD0
@@ -24,20 +23,17 @@ Route104_MrBrineysHouse_EventScript_15BCD4:: @ 815BCD4
Route104_MrBrineysHouse_EventScript_15BCEB:: @ 815BCEB
lock
faceplayer
- checkflag FLAG_MR_BRINEY_SAILING_INTRO
- call_if 0, Route104_MrBrineysHouse_EventScript_15BD0E
- checkflag FLAG_DELIVERED_STEVEN_LETTER
- goto_if 0, Route104_MrBrineysHouse_EventScript_15BD65
- checkflag FLAG_DELIVERED_DEVON_GOODS
- goto_if 0, Route104_MrBrineysHouse_EventScript_15BD7E
+ call_if_unset FLAG_MR_BRINEY_SAILING_INTRO, Route104_MrBrineysHouse_EventScript_15BD0E
+ goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, Route104_MrBrineysHouse_EventScript_15BD65
+ goto_if_unset FLAG_DELIVERED_DEVON_GOODS, Route104_MrBrineysHouse_EventScript_15BD7E
goto Route104_MrBrineysHouse_EventScript_15BD32
end
Route104_MrBrineysHouse_EventScript_15BD0E:: @ 815BD0E
setflag FLAG_MR_BRINEY_SAILING_INTRO
msgbox Route104_MrBrineysHouse_Text_191A82, 4
- msgbox Route104_MrBrineysHouse_Text_191AAD, 5
- compare RESULT, 0
+ msgbox Route104_MrBrineysHouse_Text_191AAD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route104_MrBrineysHouse_EventScript_15BD97
goto Route104_MrBrineysHouse_EventScript_15BDAB
end
@@ -53,15 +49,15 @@ Route104_MrBrineysHouse_EventScript_15BD32:: @ 815BD32
end
Route104_MrBrineysHouse_EventScript_15BD65:: @ 815BD65
- msgbox Route104_MrBrineysHouse_Text_191CC3, 5
- compare RESULT, 0
+ msgbox Route104_MrBrineysHouse_Text_191CC3, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route104_MrBrineysHouse_EventScript_15BD97
goto Route104_MrBrineysHouse_EventScript_15BDAB
end
Route104_MrBrineysHouse_EventScript_15BD7E:: @ 815BD7E
- msgbox Route104_MrBrineysHouse_Text_191DA6, 5
- compare RESULT, 0
+ msgbox Route104_MrBrineysHouse_Text_191DA6, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route104_MrBrineysHouse_EventScript_15BD97
goto Route104_MrBrineysHouse_EventScript_15BDAB
end
diff --git a/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc b/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
index 2de6bf51f..5e70a8ec2 100644
--- a/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
+++ b/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
@@ -4,10 +4,8 @@ Route104_PrettyPetalFlowerShop_MapScripts:: @ 815BDE4
Route104_PrettyPetalFlowerShop_MapScript1_15BDEA:: @ 815BDEA
setflag FLAG_LANDMARK_FLOWER_SHOP
- checkflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
- goto_if 0, Route104_PrettyPetalFlowerShop_EventScript_15BE03
- checkflag FLAG_BADGE03_GET
- goto_if 0, Route104_PrettyPetalFlowerShop_EventScript_15BE03
+ goto_if_unset FLAG_MET_PRETTY_PETAL_SHOP_OWNER, Route104_PrettyPetalFlowerShop_EventScript_15BE03
+ goto_if_unset FLAG_BADGE03_GET, Route104_PrettyPetalFlowerShop_EventScript_15BE03
setflag FLAG_TEMP_1
end
@@ -18,26 +16,24 @@ Route104_PrettyPetalFlowerShop_EventScript_15BE03:: @ 815BE03
Route104_PrettyPetalFlowerShop_EventScript_15BE0B:: @ 815BE0B
lock
faceplayer
- checkflag FLAG_TEMP_1
- goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE7C
+ goto_if_set FLAG_TEMP_1, Route104_PrettyPetalFlowerShop_EventScript_15BE7C
msgbox Route104_PrettyPetalFlowerShop_Text_1C5EC6, 4
- checkflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
- goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE4A
+ goto_if_set FLAG_MET_PRETTY_PETAL_SHOP_OWNER, Route104_PrettyPetalFlowerShop_EventScript_15BE4A
setflag FLAG_MET_PRETTY_PETAL_SHOP_OWNER
- msgbox Route104_PrettyPetalFlowerShop_Text_1C5F48, 5
- compare RESULT, 1
- call_if 1, Route104_PrettyPetalFlowerShop_EventScript_15BE6A
- compare RESULT, 0
- call_if 1, Route104_PrettyPetalFlowerShop_EventScript_15BE73
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C5F48, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE6A
+ compare RESULT, NO
+ call_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE73
release
end
Route104_PrettyPetalFlowerShop_EventScript_15BE4A:: @ 815BE4A
- msgbox Route104_PrettyPetalFlowerShop_Text_1C5F1B, 5
- compare RESULT, 1
- call_if 1, Route104_PrettyPetalFlowerShop_EventScript_15BE6A
- compare RESULT, 0
- call_if 1, Route104_PrettyPetalFlowerShop_EventScript_15BE73
+ msgbox Route104_PrettyPetalFlowerShop_Text_1C5F1B, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE6A
+ compare RESULT, NO
+ call_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BE73
release
end
@@ -72,8 +68,7 @@ Route104_PrettyPetalFlowerShop_Items:: @ 815BE94
Route104_PrettyPetalFlowerShop_EventScript_15BEA4:: @ 815BEA4
lock
faceplayer
- checkflag FLAG_RECEIVED_WAILMER_PAIL
- goto_if 0, Route104_PrettyPetalFlowerShop_EventScript_15BEB9
+ goto_if_unset FLAG_RECEIVED_WAILMER_PAIL, Route104_PrettyPetalFlowerShop_EventScript_15BEB9
msgbox Route104_PrettyPetalFlowerShop_Text_1C61E8, 4
release
end
@@ -90,8 +85,7 @@ Route104_PrettyPetalFlowerShop_EventScript_15BEDA:: @ 815BEDA
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP
- goto_if_eq Route104_PrettyPetalFlowerShop_EventScript_15BF1A
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_FLOWER_SHOP, Route104_PrettyPetalFlowerShop_EventScript_15BF1A
msgbox Route104_PrettyPetalFlowerShop_Text_1C62DA, 4
random 8
addvar RESULT, ITEM_CHERI_BERRY
diff --git a/data/scripts/maps/Route104_Prototype.inc b/data/scripts/maps/Route104_Prototype.inc
index b3b256d79..e0aba01c9 100644
--- a/data/scripts/maps/Route104_Prototype.inc
+++ b/data/scripts/maps/Route104_Prototype.inc
@@ -4,22 +4,15 @@ Route104_Prototype_MapScripts:: @ 8160C4A
Route104_Prototype_EventScript_160C4B:: @ 8160C4B
lock
faceplayer
- checktrainerflag OPPONENT_BRIANNA_1
- goto_if 0, Route104_Prototype_EventScript_160C99
- checktrainerflag OPPONENT_CINDY_2
- goto_if 0, Route104_Prototype_EventScript_160C99
- checktrainerflag OPPONENT_AMY_AND_LIV_3
- goto_if 0, Route104_Prototype_EventScript_160C99
- checktrainerflag OPPONENT_GINA_AND_MIA_2
- goto_if 0, Route104_Prototype_EventScript_160C99
- checktrainerflag OPPONENT_LUCAS_2
- goto_if 0, Route104_Prototype_EventScript_160C99
- checktrainerflag OPPONENT_MIKE_1
- goto_if 0, Route104_Prototype_EventScript_160C99
+ goto_if_trainer_not_defeated OPPONENT_BRIANNA_1, Route104_Prototype_EventScript_160C99
+ goto_if_trainer_not_defeated OPPONENT_CINDY_2, Route104_Prototype_EventScript_160C99
+ goto_if_trainer_not_defeated OPPONENT_AMY_AND_LIV_3, Route104_Prototype_EventScript_160C99
+ goto_if_trainer_not_defeated OPPONENT_GINA_AND_MIA_2, Route104_Prototype_EventScript_160C99
+ goto_if_trainer_not_defeated OPPONENT_LUCAS_2, Route104_Prototype_EventScript_160C99
+ goto_if_trainer_not_defeated OPPONENT_MIKE_1, Route104_Prototype_EventScript_160C99
setflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_1
msgbox Route104_Prototype_Text_19B267, 4
- checkflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_2
- goto_if_eq Route104_Prototype_EventScript_160CFB
+ goto_if_set FLAG_ROUTE104_PROTOTYPE_COMPLETED_2, Route104_Prototype_EventScript_160CFB
release
end
@@ -31,22 +24,15 @@ Route104_Prototype_EventScript_160C99:: @ 8160C99
Route104_Prototype_EventScript_160CA3:: @ 8160CA3
lock
faceplayer
- checktrainerflag OPPONENT_BRIANNA_1
- goto_if 0, Route104_Prototype_EventScript_160CF1
- checktrainerflag OPPONENT_CINDY_2
- goto_if 0, Route104_Prototype_EventScript_160CF1
- checktrainerflag OPPONENT_AMY_AND_LIV_3
- goto_if 0, Route104_Prototype_EventScript_160CF1
- checktrainerflag OPPONENT_GINA_AND_MIA_2
- goto_if 0, Route104_Prototype_EventScript_160CF1
- checktrainerflag OPPONENT_LUCAS_2
- goto_if 0, Route104_Prototype_EventScript_160CF1
- checktrainerflag OPPONENT_MIKE_1
- goto_if 0, Route104_Prototype_EventScript_160CF1
+ goto_if_trainer_not_defeated OPPONENT_BRIANNA_1, Route104_Prototype_EventScript_160CF1
+ goto_if_trainer_not_defeated OPPONENT_CINDY_2, Route104_Prototype_EventScript_160CF1
+ goto_if_trainer_not_defeated OPPONENT_AMY_AND_LIV_3, Route104_Prototype_EventScript_160CF1
+ goto_if_trainer_not_defeated OPPONENT_GINA_AND_MIA_2, Route104_Prototype_EventScript_160CF1
+ goto_if_trainer_not_defeated OPPONENT_LUCAS_2, Route104_Prototype_EventScript_160CF1
+ goto_if_trainer_not_defeated OPPONENT_MIKE_1, Route104_Prototype_EventScript_160CF1
setflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_2
msgbox Route104_Prototype_Text_19B2E9, 4
- checkflag FLAG_ROUTE104_PROTOTYPE_COMPLETED_1
- goto_if_eq Route104_Prototype_EventScript_160CFB
+ goto_if_set FLAG_ROUTE104_PROTOTYPE_COMPLETED_1, Route104_Prototype_EventScript_160CFB
release
end
diff --git a/data/scripts/maps/Route105.inc b/data/scripts/maps/Route105.inc
index 30157e52f..305a2e9af 100644
--- a/data/scripts/maps/Route105.inc
+++ b/data/scripts/maps/Route105.inc
@@ -3,8 +3,7 @@ Route105_MapScripts:: @ 814F298
.byte 0
Route105_MapScript1_14F29E:: @ 814F29E
- checkflag FLAG_REGI_DOORS_OPENED
- call_if 0, Route105_EventScript_14F2A8
+ call_if_unset FLAG_REGI_DOORS_OPENED, Route105_EventScript_14F2A8
end
Route105_EventScript_14F2A8:: @ 814F2A8
diff --git a/data/scripts/maps/Route109.inc b/data/scripts/maps/Route109.inc
index 28bf046a4..c70365b6a 100644
--- a/data/scripts/maps/Route109.inc
+++ b/data/scripts/maps/Route109.inc
@@ -271,15 +271,14 @@ Route109_Movement_14F67D:: @ 814F67D
Route109_EventScript_14F680:: @ 814F680
lock
faceplayer
- checkflag FLAG_DELIVERED_DEVON_GOODS
- goto_if 0, Route109_EventScript_14F691
+ goto_if_unset FLAG_DELIVERED_DEVON_GOODS, Route109_EventScript_14F691
goto Route109_EventScript_14F6AF
end
Route109_EventScript_14F691:: @ 814F691
message Route109_Text_16E0F9
- msgbox Route109_Text_16E0F9, 5
- compare RESULT, 0
+ msgbox Route109_Text_16E0F9, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route109_EventScript_14F6F1
goto Route109_EventScript_14F6E2
end
@@ -328,8 +327,7 @@ Route109_EventScript_14F725:: @ 814F725
lock
faceplayer
special GetPlayerBigGuyGirlString
- checkflag FLAG_RECEIVED_SOFT_SAND
- goto_if_eq Route109_EventScript_14F762
+ goto_if_set FLAG_RECEIVED_SOFT_SAND, Route109_EventScript_14F762
msgbox Route109_Text_16E433, 4
giveitem_std ITEM_SOFT_SAND
compare RESULT, 0
diff --git a/data/scripts/maps/Route109_SeashoreHouse.inc b/data/scripts/maps/Route109_SeashoreHouse.inc
index 7a12f5850..13d37e7bd 100644
--- a/data/scripts/maps/Route109_SeashoreHouse.inc
+++ b/data/scripts/maps/Route109_SeashoreHouse.inc
@@ -9,12 +9,9 @@ Route109_SeashoreHouse_MapScript1_160DD0:: @ 8160DD0
Route109_SeashoreHouse_EventScript_160DD4:: @ 8160DD4
lock
faceplayer
- checkflag FLAG_RECEIVED_6_SODA_POP
- goto_if_eq Route109_SeashoreHouse_EventScript_160E36
- checkflag FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS
- goto_if_eq Route109_SeashoreHouse_EventScript_160E08
- checkflag FLAG_TEMP_2
- goto_if_eq Route109_SeashoreHouse_EventScript_160DFE
+ goto_if_set FLAG_RECEIVED_6_SODA_POP, Route109_SeashoreHouse_EventScript_160E36
+ goto_if_set FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS, Route109_SeashoreHouse_EventScript_160E08
+ goto_if_set FLAG_TEMP_2, Route109_SeashoreHouse_EventScript_160DFE
msgbox Route109_SeashoreHouse_Text_19B4D9, 4
setflag FLAG_TEMP_2
release
@@ -42,8 +39,8 @@ Route109_SeashoreHouse_EventScript_160E2C:: @ 8160E2C
Route109_SeashoreHouse_EventScript_160E36:: @ 8160E36
showmoneybox 0, 0
nop
- msgbox Route109_SeashoreHouse_Text_19B702, 5
- compare RESULT, 1
+ msgbox Route109_SeashoreHouse_Text_19B702, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route109_SeashoreHouse_EventScript_160E5A
msgbox Route109_SeashoreHouse_Text_19B773, 4
hidemoneybox 0, 0
@@ -94,12 +91,9 @@ Route109_SeashoreHouse_EventScript_160EEE:: @ 8160EEE
end
Route109_SeashoreHouse_EventScript_160F09:: @ 8160F09
- checktrainerflag OPPONENT_DWAYNE
- goto_if 0, Route109_SeashoreHouse_EventScript_160F29
- checktrainerflag OPPONENT_JOHANNA
- goto_if 0, Route109_SeashoreHouse_EventScript_160F29
- checktrainerflag OPPONENT_SIMON
- goto_if 0, Route109_SeashoreHouse_EventScript_160F29
+ goto_if_trainer_not_defeated OPPONENT_DWAYNE, Route109_SeashoreHouse_EventScript_160F29
+ goto_if_trainer_not_defeated OPPONENT_JOHANNA, Route109_SeashoreHouse_EventScript_160F29
+ goto_if_trainer_not_defeated OPPONENT_SIMON, Route109_SeashoreHouse_EventScript_160F29
setflag FLAG_DEFEATED_SEASHORE_HOUSE_TRAINERS
release
end
diff --git a/data/scripts/maps/Route110.inc b/data/scripts/maps/Route110.inc
index 586031a1a..070340760 100644
--- a/data/scripts/maps/Route110.inc
+++ b/data/scripts/maps/Route110.inc
@@ -13,11 +13,11 @@ Route110_MapScript1_14F914:: @ 814F914
call Route110_EventScript_1A014E
call Route110_EventScript_1A0172
compare VAR_CYCLING_CHALLENGE_STATE, 1
- call_if 1, Route110_EventScript_14F92F
+ call_if_eq Route110_EventScript_14F92F
end
Route110_EventScript_14F92F:: @ 814F92F
- savebgm 403 @ Bicycle music
+ savebgm BGM_CYCLING
return
Route110_MapScript2_14F933:: @ 814F933
@@ -327,9 +327,9 @@ Route110_EventScript_14FD34:: @ 814FD34
lockall
checkplayergender
compare RESULT, 0
- call_if 1, Route110_EventScript_14FDA7
+ call_if_eq Route110_EventScript_14FDA7
compare RESULT, 1
- call_if 1, Route110_EventScript_14FDAC
+ call_if_eq Route110_EventScript_14FDAC
applymovement 28, Route110_Movement_1A0845
waitmovement 0
applymovement 28, Route110_Movement_1A0833
@@ -338,11 +338,11 @@ Route110_EventScript_14FD34:: @ 814FD34
waitmovement 0
delay 30
compare VAR_SPECIAL_8, 1
- call_if 1, Route110_EventScript_14FF14
+ call_if_eq Route110_EventScript_14FF14
compare VAR_SPECIAL_8, 2
- call_if 1, Route110_EventScript_14FF1F
+ call_if_eq Route110_EventScript_14FF1F
compare VAR_SPECIAL_8, 3
- call_if 1, Route110_EventScript_14FF2A
+ call_if_eq Route110_EventScript_14FF2A
checkplayergender
compare RESULT, 0
goto_if_eq Route110_EventScript_14FDB1
@@ -352,11 +352,11 @@ Route110_EventScript_14FD34:: @ 814FD34
end
Route110_EventScript_14FDA7:: @ 814FDA7
- playbgm 415, 1
+ playbgm BGM_GIRL_SUP, TRUE
return
Route110_EventScript_14FDAC:: @ 814FDAC
- playbgm 421, 1
+ playbgm BGM_BOY_SUP, TRUE
return
Route110_EventScript_14FDB1:: @ 814FDB1
@@ -426,22 +426,22 @@ Route110_EventScript_14FEA5:: @ 814FEA5
Route110_EventScript_14FEB2:: @ 814FEB2
closemessage
compare VAR_SPECIAL_8, 1
- call_if 1, Route110_EventScript_14FF56
+ call_if_eq Route110_EventScript_14FF56
compare VAR_SPECIAL_8, 2
- call_if 1, Route110_EventScript_14FF5E
+ call_if_eq Route110_EventScript_14FF5E
compare VAR_SPECIAL_8, 3
- call_if 1, Route110_EventScript_14FF66
+ call_if_eq Route110_EventScript_14FF66
setobjectmovementtype 28, 10
setobjectmovementtype 29, 10
removeobject 28
addobject 29
delay 45
compare VAR_SPECIAL_8, 1
- call_if 1, Route110_EventScript_14FF35
+ call_if_eq Route110_EventScript_14FF35
compare VAR_SPECIAL_8, 2
- call_if 1, Route110_EventScript_14FF40
+ call_if_eq Route110_EventScript_14FF40
compare VAR_SPECIAL_8, 3
- call_if 1, Route110_EventScript_14FF4B
+ call_if_eq Route110_EventScript_14FF4B
removeobject 29
setvar VAR_ROUTE110_STATE, 1
savebgm 0
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
index af72dedd0..f05e2caa2 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
@@ -4,9 +4,9 @@ Route110_SeasideCyclingRoadNorthEntrance_MapScripts:: @ 81634C8
Route110_SeasideCyclingRoadNorthEntrance_MapScript1_1634CE:: @ 81634CE
compare VAR_CYCLING_CHALLENGE_STATE, 3
- call_if 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5
+ call_if_eq Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5
compare VAR_CYCLING_CHALLENGE_STATE, 2
- call_if 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5
+ call_if_eq Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5
end
Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634E5:: @ 81634E5
@@ -25,7 +25,7 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_1634F7:: @ 81634F7
lockall
specialvar RESULT, GetPlayerAvatarBike @ player state?
compare RESULT, 2
- call_if 1, Route110_SeasideCyclingRoadNorthEntrance_EventScript_16351D
+ call_if_eq Route110_SeasideCyclingRoadNorthEntrance_EventScript_16351D
compare RESULT, 0
goto_if_eq Route110_SeasideCyclingRoadNorthEntrance_EventScript_163523
setflag FLAG_SYS_CYCLING_ROAD
diff --git a/data/scripts/maps/Route110_TrickHouseEnd.inc b/data/scripts/maps/Route110_TrickHouseEnd.inc
index c825c1234..2c2215a42 100644
--- a/data/scripts/maps/Route110_TrickHouseEnd.inc
+++ b/data/scripts/maps/Route110_TrickHouseEnd.inc
@@ -7,7 +7,7 @@ Route110_TrickHouseEnd_MapScripts:: @ 8161936
Route110_TrickHouseEnd_MapScript1_16194B:: @ 816194B
compare VAR_TEMP_1, 1
- call_if 1, Route110_TrickHouseEnd_EventScript_161994
+ call_if_eq Route110_TrickHouseEnd_EventScript_161994
end
Route110_TrickHouseEnd_MapScript1_161957:: @ 8161957
@@ -62,7 +62,7 @@ Route110_TrickHouseEnd_EventScript_161A0B:: @ 8161A0B
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
giveitem_std ITEM_RARE_CANDY
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -75,7 +75,7 @@ Route110_TrickHouseEnd_EventScript_161A47:: @ 8161A47
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
giveitem_std ITEM_TIMER_BALL
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -88,7 +88,7 @@ Route110_TrickHouseEnd_EventScript_161A83:: @ 8161A83
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
giveitem_std ITEM_HARD_STONE
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -101,7 +101,7 @@ Route110_TrickHouseEnd_EventScript_161ABF:: @ 8161ABF
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
giveitem_std ITEM_SMOKE_BALL
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -112,9 +112,9 @@ Route110_TrickHouseEnd_EventScript_161AFB:: @ 8161AFB
msgbox Route110_TrickHouseEnd_Text_19C491, 4
msgbox Route110_TrickHouseEnd_Text_19C90B, 4
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
- giveitem_std ITEM_TM12
+ giveitem_std ITEM_TM12_TAUNT
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -127,7 +127,7 @@ Route110_TrickHouseEnd_EventScript_161B37:: @ 8161B37
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
giveitem_std ITEM_MAGNET
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -140,7 +140,7 @@ Route110_TrickHouseEnd_EventScript_161B73:: @ 8161B73
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
giveitem_std ITEM_PP_MAX
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C4E
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C4E
msgbox Route110_TrickHouseEnd_Text_19C9BD, 4
closemessage
call Route110_TrickHouseEnd_EventScript_161C2E
@@ -151,13 +151,13 @@ Route110_TrickHouseEnd_EventScript_161BAF:: @ 8161BAF
msgbox Route110_TrickHouseEnd_Text_19C5AF, 4
closemessage
compare FACING, 1
- call_if 1, Route110_TrickHouseEnd_EventScript_161C74
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C74
compare FACING, 2
- call_if 1, Route110_TrickHouseEnd_EventScript_161C7F
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C7F
compare FACING, 3
- call_if 1, Route110_TrickHouseEnd_EventScript_161C8A
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C8A
compare FACING, 4
- call_if 1, Route110_TrickHouseEnd_EventScript_161C95
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C95
delay 30
msgbox Route110_TrickHouseEnd_Text_19C602, 4
closemessage
@@ -167,12 +167,12 @@ Route110_TrickHouseEnd_EventScript_161BAF:: @ 8161BAF
msgbox Route110_TrickHouseEnd_Text_19C691, 4
setvar VAR_TRICK_HOUSE_PRIZE_PICKUP, 0
.ifdef SAPPHIRE
- givedecoration_std 32
+ givedecoration_std DECOR_BLUE_TENT
.else
- givedecoration_std 31
+ givedecoration_std DECOR_RED_TENT
.endc
compare RESULT, 0
- call_if 1, Route110_TrickHouseEnd_EventScript_161C61
+ call_if_eq Route110_TrickHouseEnd_EventScript_161C61
msgbox Route110_TrickHouseEnd_Text_19C85C, 4
call Route110_TrickHouseEnd_EventScript_161C2E
special ResetTrickHouseEndRoomFlag
@@ -182,7 +182,7 @@ Route110_TrickHouseEnd_EventScript_161BAF:: @ 8161BAF
Route110_TrickHouseEnd_EventScript_161C2E:: @ 8161C2E
applymovement 1, Route110_TrickHouseEnd_Movement_161315
waitmovement 0
- playse 178
+ playse SE_W153
applymovement 1, Route110_TrickHouseEnd_Movement_16131E
waitmovement 0
removeobject 1
@@ -224,13 +224,13 @@ Route110_TrickHouseEnd_EventScript_161C95:: @ 8161C95
Route110_TrickHouseEnd_EventScript_161CA0:: @ 8161CA0
lockall
turnobject 1, 3
- playse 21
+ playse SE_PIN
applymovement 1, Route110_TrickHouseEnd_Movement_1A0833
waitmovement 0
delay 20
applymovement 1, Route110_TrickHouseEnd_Movement_161CEA
waitmovement 0
- playse 178
+ playse SE_W153
applymovement 255, Route110_TrickHouseEnd_Movement_1A0845
waitmovement 0
msgbox Route110_TrickHouseEnd_Text_19CA8B, 4
diff --git a/data/scripts/maps/Route110_TrickHouseEntrance.inc b/data/scripts/maps/Route110_TrickHouseEntrance.inc
index 8a8dd2763..3fceeb8d1 100644
--- a/data/scripts/maps/Route110_TrickHouseEntrance.inc
+++ b/data/scripts/maps/Route110_TrickHouseEntrance.inc
@@ -13,11 +13,11 @@ Route110_TrickHouseEntrance_MapScript1_160F3B:: @ 8160F3B
compare VAR_TRICK_HOUSE_ENTRANCE_STATE_2, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_16108E
compare VAR_TRICK_HOUSE_ENTRANCE_STATE_3, 5
- call_if 1, Route110_TrickHouseEntrance_EventScript_160FDE
+ call_if_eq Route110_TrickHouseEntrance_EventScript_160FDE
compare VAR_TRICK_HOUSE_ENTRANCE_STATE_3, 3
- call_if 1, Route110_TrickHouseEntrance_EventScript_160FDE
+ call_if_eq Route110_TrickHouseEntrance_EventScript_160FDE
compare VAR_TRICK_HOUSE_ENTRANCE_STATE_3, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_160FDE
+ call_if_eq Route110_TrickHouseEntrance_EventScript_160FDE
switch VAR_TRICK_HOUSE_ENTRANCE_STATE_3
case 0, Route110_TrickHouseEntrance_EventScript_16109A
case 1, Route110_TrickHouseEntrance_EventScript_1610A0
@@ -45,56 +45,49 @@ Route110_TrickHouseEntrance_EventScript_160FCE:: @ 8160FCE
Route110_TrickHouseEntrance_EventScript_160FDE:: @ 8160FDE
setvar VAR_TRICK_HOUSE_ENTRANCE_STATE_3, 0
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 1
- call_if 1, Route110_TrickHouseEntrance_EventScript_16103C
+ call_if_eq Route110_TrickHouseEntrance_EventScript_16103C
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 2
- call_if 1, Route110_TrickHouseEntrance_EventScript_161046
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161046
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 3
- call_if 1, Route110_TrickHouseEntrance_EventScript_161050
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161050
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 4
- call_if 1, Route110_TrickHouseEntrance_EventScript_16105A
+ call_if_eq Route110_TrickHouseEntrance_EventScript_16105A
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 5
- call_if 1, Route110_TrickHouseEntrance_EventScript_161064
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161064
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 6
- call_if 1, Route110_TrickHouseEntrance_EventScript_16106E
+ call_if_eq Route110_TrickHouseEntrance_EventScript_16106E
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 7
- call_if 1, Route110_TrickHouseEntrance_EventScript_161078
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161078
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 8
- call_if 1, Route110_TrickHouseEntrance_EventScript_161082
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161082
return
Route110_TrickHouseEntrance_EventScript_16103C:: @ 816103C
- checkflag FLAG_BADGE03_GET
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_BADGE03_GET, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161046:: @ 8161046
- checkflag FLAG_BADGE04_GET
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_BADGE04_GET, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161050:: @ 8161050
- checkflag FLAG_BADGE05_GET
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_BADGE05_GET, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_16105A:: @ 816105A
- checkflag FLAG_BADGE06_GET
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_BADGE06_GET, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161064:: @ 8161064
- checkflag FLAG_BADGE07_GET
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_BADGE07_GET, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_16106E:: @ 816106E
- checkflag FLAG_BADGE08_GET
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_BADGE08_GET, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161078:: @ 8161078
- checkflag FLAG_SYS_GAME_CLEAR
- call_if 0, Route110_TrickHouseEntrance_EventScript_161088
+ call_if_unset FLAG_SYS_GAME_CLEAR, Route110_TrickHouseEntrance_EventScript_161088
return
Route110_TrickHouseEntrance_EventScript_161082:: @ 8161082
@@ -214,13 +207,13 @@ Route110_TrickHouseEntrance_EventScript_1611D7:: @ 81611D7
lockall
delay 20
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_161327
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161327
msgbox Route110_TrickHouseEntrance_Text_19BD82, 4
closemessage
delay 20
applymovement 1, Route110_TrickHouseEntrance_Movement_161315
waitmovement 0
- playse 178
+ playse SE_W153
applymovement 1, Route110_TrickHouseEntrance_Movement_16131E
waitmovement 0
removeobject 1
@@ -243,27 +236,27 @@ Route110_TrickHouseEntrance_EventScript_16121A:: @ 816121A
end
Route110_TrickHouseEntrance_EventScript_16124D:: @ 816124D
- playse 21
+ playse SE_PIN
applymovement 255, Route110_TrickHouseEntrance_Movement_1A0833
waitmovement 0
applymovement 255, Route110_TrickHouseEntrance_Movement_1A0835
waitmovement 0
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1612CD
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1612CD
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 1
- call_if 1, Route110_TrickHouseEntrance_EventScript_1612D6
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1612D6
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 2
- call_if 1, Route110_TrickHouseEntrance_EventScript_1612DF
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1612DF
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 3
- call_if 1, Route110_TrickHouseEntrance_EventScript_1612E8
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1612E8
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 4
- call_if 1, Route110_TrickHouseEntrance_EventScript_1612F1
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1612F1
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 5
- call_if 1, Route110_TrickHouseEntrance_EventScript_1612FA
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1612FA
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 6
- call_if 1, Route110_TrickHouseEntrance_EventScript_161303
+ call_if_eq Route110_TrickHouseEntrance_EventScript_161303
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 7
- call_if 1, Route110_TrickHouseEntrance_EventScript_16130C
+ call_if_eq Route110_TrickHouseEntrance_EventScript_16130C
closemessage
setvar VAR_TRICK_HOUSE_ENTRANCE_STATE_2, 1
warp MAP_ROUTE110_TRICK_HOUSE_ENTRANCE, 255, 6, 2
@@ -336,7 +329,7 @@ Route110_TrickHouseEntrance_EventScript_161330:: @ 8161330
closemessage
applymovement 1, Route110_TrickHouseEntrance_Movement_1A0839
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 1, Route110_TrickHouseEntrance_Movement_1A0833
waitmovement 0
applymovement 1, Route110_TrickHouseEntrance_Movement_1A0835
@@ -372,7 +365,7 @@ Route110_TrickHouseEntrance_EventScript_1613CE:: @ 81613CE
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
@@ -382,7 +375,7 @@ Route110_TrickHouseEntrance_EventScript_1613FA:: @ 81613FA
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
@@ -392,7 +385,7 @@ Route110_TrickHouseEntrance_EventScript_161426:: @ 8161426
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
@@ -402,17 +395,17 @@ Route110_TrickHouseEntrance_EventScript_161452:: @ 8161452
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
Route110_TrickHouseEntrance_EventScript_16147E:: @ 816147E
- giveitem_std ITEM_TM12
+ giveitem_std ITEM_TM12_TAUNT
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
@@ -422,7 +415,7 @@ Route110_TrickHouseEntrance_EventScript_1614AA:: @ 81614AA
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
@@ -432,7 +425,7 @@ Route110_TrickHouseEntrance_EventScript_1614D6:: @ 81614D6
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161502
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02A5
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02A5
msgbox Route110_TrickHouseEntrance_Text_19C0FC, 4
releaseall
end
@@ -450,14 +443,14 @@ Route110_TrickHouseEntrance_EventScript_161518:: @ 8161518
waitmovement 0
msgbox Route110_TrickHouseEntrance_Text_19C128, 4
.ifdef SAPPHIRE
- givedecoration_std 32
+ givedecoration_std DECOR_BLUE_TENT
.else
- givedecoration_std 31
+ givedecoration_std DECOR_RED_TENT
.endif
compare RESULT, 1
goto_if_eq Route110_TrickHouseEntrance_EventScript_161551
compare RESULT, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1A02B8
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1A02B8
msgbox Route110_TrickHouseEntrance_Text_19C18D, 4
releaseall
end
@@ -469,7 +462,7 @@ Route110_TrickHouseEntrance_EventScript_161551:: @ 8161551
waitmovement 0
applymovement 1, Route110_TrickHouseEntrance_Movement_161315
waitmovement 0
- playse 178
+ playse SE_W153
applymovement 1, Route110_TrickHouseEntrance_Movement_16131E
waitmovement 0
removeobject 1
@@ -493,9 +486,9 @@ Route110_TrickHouseEntrance_EventScript_1615BD:: @ 81615BD
end
Route110_TrickHouseEntrance_EventScript_1615C7:: @ 81615C7
- msgbox Route110_TrickHouseEntrance_Text_19BE7D, 5
+ msgbox Route110_TrickHouseEntrance_Text_19BE7D, MSGBOX_YESNO
closemessage
- compare RESULT, 1
+ compare RESULT, YES
goto_if_eq Route110_TrickHouseEntrance_EventScript_1615DD
releaseall
end
@@ -714,7 +707,7 @@ Route110_TrickHousePuzzle5_EventScript_16189C:: @ 816189C
Route110_TrickHousePuzzle6_EventScript_16189C:: @ 816189C
Route110_TrickHousePuzzle7_EventScript_16189C:: @ 816189C
Route110_TrickHousePuzzle8_EventScript_16189C:: @ 816189C
- playfanfare 370
+ playfanfare BGM_FANFA4
message Route110_TrickHousePuzzle1_Text_19C1B8
waitfanfare
waitmessage
@@ -727,11 +720,11 @@ Route110_TrickHouseEntrance_EventScript_1618B0:: @ 81618B0
msgbox Route110_TrickHouseEntrance_Text_19BA56, 4
releaseall
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 0
- call_if 1, Route110_TrickHouseEntrance_EventScript_1618E1
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1618E1
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 1
- call_if 1, Route110_TrickHouseEntrance_EventScript_1618F6
+ call_if_eq Route110_TrickHouseEntrance_EventScript_1618F6
compare VAR_TRICK_HOUSE_ROOMS_COMPLETED, 2
- call_if 1, Route110_TrickHouseEntrance_EventScript_16190B
+ call_if_eq Route110_TrickHouseEntrance_EventScript_16190B
setvar VAR_TRICK_HOUSE_ENTRANCE_STATE, 1
end
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle2.inc b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
index 9ebde8451..cdde15d1a 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle2.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
@@ -5,13 +5,13 @@ Route110_TrickHousePuzzle2_MapScripts:: @ 8161D76
Route110_TrickHousePuzzle2_MapScript1_161D81:: @ 8161D81
compare VAR_TEMP_1, 1
- call_if 1, Route110_TrickHousePuzzle2_EventScript_161E2C
+ call_if_eq Route110_TrickHousePuzzle2_EventScript_161E2C
compare VAR_TEMP_2, 1
- call_if 1, Route110_TrickHousePuzzle2_EventScript_161E3F
+ call_if_eq Route110_TrickHousePuzzle2_EventScript_161E3F
compare VAR_TEMP_3, 1
- call_if 1, Route110_TrickHousePuzzle2_EventScript_161E52
+ call_if_eq Route110_TrickHousePuzzle2_EventScript_161E52
compare VAR_TEMP_4, 1
- call_if 1, Route110_TrickHousePuzzle2_EventScript_161E65
+ call_if_eq Route110_TrickHousePuzzle2_EventScript_161E65
end
Route110_TrickHousePuzzle2_MapScript1_161DAE:: @ 8161DAE
@@ -36,7 +36,7 @@ Route110_TrickHousePuzzle2_EventScript_161DD5:: @ 8161DD5
Route110_TrickHousePuzzle2_EventScript_161DE0:: @ 8161DE0
lockall
setvar VAR_TEMP_1, 1
- playse 21
+ playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_161E2C
special DrawWholeMapView
releaseall
@@ -45,7 +45,7 @@ Route110_TrickHousePuzzle2_EventScript_161DE0:: @ 8161DE0
Route110_TrickHousePuzzle2_EventScript_161DF3:: @ 8161DF3
lockall
setvar VAR_TEMP_2, 1
- playse 21
+ playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_161E3F
special DrawWholeMapView
releaseall
@@ -54,7 +54,7 @@ Route110_TrickHousePuzzle2_EventScript_161DF3:: @ 8161DF3
Route110_TrickHousePuzzle2_EventScript_161E06:: @ 8161E06
lockall
setvar VAR_TEMP_3, 1
- playse 21
+ playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_161E52
special DrawWholeMapView
releaseall
@@ -63,7 +63,7 @@ Route110_TrickHousePuzzle2_EventScript_161E06:: @ 8161E06
Route110_TrickHousePuzzle2_EventScript_161E19:: @ 8161E19
lockall
setvar VAR_TEMP_4, 1
- playse 21
+ playse SE_PIN
call Route110_TrickHousePuzzle2_EventScript_161E65
special DrawWholeMapView
releaseall
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle3.inc b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
index cb129b06d..14a021e8d 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle3.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
@@ -6,9 +6,9 @@ Route110_TrickHousePuzzle3_MapScripts:: @ 8161EBD
Route110_TrickHousePuzzle3_MapScript1_161EC8:: @ 8161EC8
call Route110_TrickHousePuzzle3_EventScript_161F12
compare VAR_TEMP_9, 0
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FE5
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FE5
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle3_EventScript_1622C8
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_1622C8
end
Route110_TrickHousePuzzle3_MapScript1_161EE4:: @ 8161EE4
@@ -32,19 +32,19 @@ Route110_TrickHousePuzzle3_EventScript_161F12:: @ 8161F12
setmetatile 1, 3, 600, 0
setmetatile 10, 2, 600, 0
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161F9F
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161F9F
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FA9
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FA9
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FB3
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FB3
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FBD
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FBD
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FC7
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FC7
compare VAR_TEMP_8, 6
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FD1
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FD1
compare VAR_TEMP_8, 7
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FDB
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FDB
return
Route110_TrickHousePuzzle3_EventScript_161F9F:: @ 8161F9F
@@ -289,7 +289,7 @@ Route110_TrickHousePuzzle3_EventScript_1625F3:: @ 81625F3
Route110_TrickHousePuzzle3_EventScript_1625FF:: @ 81625FF
call Route110_TrickHousePuzzle3_EventScript_162612
- playse 21
+ playse SE_PIN
call Route110_TrickHousePuzzle3_EventScript_161F12
goto Route110_TrickHousePuzzle3_EventScript_1626AD
end
@@ -303,19 +303,19 @@ Route110_TrickHousePuzzle3_EventScript_162612:: @ 8162612
setvar VAR_TEMP_6, 0
setvar VAR_TEMP_7, 0
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle3_EventScript_162683
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_162683
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle3_EventScript_162689
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_162689
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle3_EventScript_16268F
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_16268F
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle3_EventScript_162695
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_162695
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle3_EventScript_16269B
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_16269B
compare VAR_TEMP_8, 6
- call_if 1, Route110_TrickHousePuzzle3_EventScript_1626A1
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_1626A1
compare VAR_TEMP_8, 7
- call_if 1, Route110_TrickHousePuzzle3_EventScript_1626A7
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_1626A7
return
Route110_TrickHousePuzzle3_EventScript_162683:: @ 8162683
@@ -348,9 +348,9 @@ Route110_TrickHousePuzzle3_EventScript_1626A7:: @ 81626A7
Route110_TrickHousePuzzle3_EventScript_1626AD:: @ 81626AD
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle3_EventScript_161FE5
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_161FE5
compare VAR_TEMP_9, 0
- call_if 1, Route110_TrickHousePuzzle3_EventScript_1622C8
+ call_if_eq Route110_TrickHousePuzzle3_EventScript_1622C8
special DrawWholeMapView
compare VAR_TEMP_9, 1
goto_if_eq Route110_TrickHousePuzzle3_EventScript_1626DD
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle5.inc b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
index 5fedee3a9..5ec1a4d64 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle5.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
@@ -160,17 +160,17 @@ Route110_TrickHousePuzzle5_EventScript_162933:: @ 8162933
Route110_TrickHousePuzzle5_EventScript_16293F:: @ 816293F
setvar VAR_TEMP_1, 1
setvar VAR_TEMP_8, 1
- playse 21
+ playse SE_PIN
applymovement 1, Route110_TrickHousePuzzle5_Movement_1A0833
waitmovement 0
applymovement 1, Route110_TrickHousePuzzle5_Movement_1A0835
waitmovement 0
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162DF3
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162DF3
compare VAR_TEMP_9, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E2B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E2B
compare VAR_TEMP_9, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E63
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E63
msgbox Route110_TrickHousePuzzle5_Text_19D423, 4
random 3
switch RESULT
@@ -182,17 +182,17 @@ Route110_TrickHousePuzzle5_EventScript_16293F:: @ 816293F
Route110_TrickHousePuzzle5_EventScript_1629B3:: @ 81629B3
setvar VAR_TEMP_2, 1
setvar VAR_TEMP_8, 2
- playse 21
+ playse SE_PIN
applymovement 2, Route110_TrickHousePuzzle5_Movement_1A0833
waitmovement 0
applymovement 2, Route110_TrickHousePuzzle5_Movement_1A0835
waitmovement 0
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E9B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E9B
compare VAR_TEMP_9, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162ED3
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162ED3
compare VAR_TEMP_9, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F0B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F0B
msgbox Route110_TrickHousePuzzle5_Text_19D636, 4
random 3
switch RESULT
@@ -204,17 +204,17 @@ Route110_TrickHousePuzzle5_EventScript_1629B3:: @ 81629B3
Route110_TrickHousePuzzle5_EventScript_162A27:: @ 8162A27
setvar VAR_TEMP_3, 1
setvar VAR_TEMP_8, 3
- playse 21
+ playse SE_PIN
applymovement 3, Route110_TrickHousePuzzle5_Movement_1A0833
waitmovement 0
applymovement 3, Route110_TrickHousePuzzle5_Movement_1A0835
waitmovement 0
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162DF3
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162DF3
compare VAR_TEMP_9, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E2B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E2B
compare VAR_TEMP_9, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E63
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E63
msgbox Route110_TrickHousePuzzle5_Text_19D7D3, 4
random 3
switch RESULT
@@ -226,17 +226,17 @@ Route110_TrickHousePuzzle5_EventScript_162A27:: @ 8162A27
Route110_TrickHousePuzzle5_EventScript_162A9B:: @ 8162A9B
setvar VAR_TEMP_4, 1
setvar VAR_TEMP_8, 4
- playse 21
+ playse SE_PIN
applymovement 4, Route110_TrickHousePuzzle5_Movement_1A0833
waitmovement 0
applymovement 4, Route110_TrickHousePuzzle5_Movement_1A0835
waitmovement 0
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162DF3
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162DF3
compare VAR_TEMP_9, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E2B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E2B
compare VAR_TEMP_9, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E63
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E63
msgbox Route110_TrickHousePuzzle5_Text_19D93D, 4
random 3
switch RESULT
@@ -248,17 +248,17 @@ Route110_TrickHousePuzzle5_EventScript_162A9B:: @ 8162A9B
Route110_TrickHousePuzzle5_EventScript_162B0F:: @ 8162B0F
setvar VAR_TEMP_5, 1
setvar VAR_TEMP_8, 5
- playse 21
+ playse SE_PIN
applymovement 5, Route110_TrickHousePuzzle5_Movement_1A0833
waitmovement 0
applymovement 5, Route110_TrickHousePuzzle5_Movement_1A0835
waitmovement 0
compare VAR_TEMP_9, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162E9B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162E9B
compare VAR_TEMP_9, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162ED3
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162ED3
compare VAR_TEMP_9, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F0B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F0B
msgbox Route110_TrickHousePuzzle5_Text_19DA9A, 4
random 3
switch RESULT
@@ -389,7 +389,7 @@ Route110_TrickHousePuzzle5_EventScript_162D6D:: @ 8162D6D
Route110_TrickHousePuzzle5_EventScript_162D90:: @ 8162D90
waitse
- playse 32
+ playse SE_HAZURE
msgbox Route110_TrickHousePuzzle5_Text_19D5CF, 4
applymovement 1, Route110_TrickHousePuzzle5_Movement_16309F
applymovement 2, Route110_TrickHousePuzzle5_Movement_16309F
@@ -408,7 +408,7 @@ Route110_TrickHousePuzzle5_EventScript_162D90:: @ 8162D90
Route110_TrickHousePuzzle5_EventScript_162DDF:: @ 8162DDF
waitse
- playse 31
+ playse SE_SEIKAI
goto Route110_TrickHousePuzzle5_EventScript_162DE9
end
@@ -419,80 +419,80 @@ Route110_TrickHousePuzzle5_EventScript_162DE9:: @ 8162DE9
Route110_TrickHousePuzzle5_EventScript_162DF3:: @ 8162DF3
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F43
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F43
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F4E
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F4E
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F59
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F59
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F64
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F64
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F6F
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F6F
return
Route110_TrickHousePuzzle5_EventScript_162E2B:: @ 8162E2B
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F7A
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F7A
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F85
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F85
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F90
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F90
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162F9B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162F9B
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FA6
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FA6
return
Route110_TrickHousePuzzle5_EventScript_162E63:: @ 8162E63
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FB1
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FB1
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FBC
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FBC
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FC7
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FC7
compare VAR_TEMP_9, 4
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FD2
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FD2
compare VAR_TEMP_9, 5
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FDD
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FDD
return
Route110_TrickHousePuzzle5_EventScript_162E9B:: @ 8162E9B
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FE8
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FE8
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FF3
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FF3
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_162FFE
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_162FFE
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163009
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163009
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163014
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163014
return
Route110_TrickHousePuzzle5_EventScript_162ED3:: @ 8162ED3
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_16301F
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_16301F
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_16302A
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_16302A
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163035
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163035
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163040
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163040
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle5_EventScript_16304B
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_16304B
return
Route110_TrickHousePuzzle5_EventScript_162F0B:: @ 8162F0B
compare VAR_TEMP_8, 1
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163056
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163056
compare VAR_TEMP_8, 2
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163061
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163061
compare VAR_TEMP_8, 3
- call_if 1, Route110_TrickHousePuzzle5_EventScript_16306C
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_16306C
compare VAR_TEMP_8, 4
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163077
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163077
compare VAR_TEMP_8, 5
- call_if 1, Route110_TrickHousePuzzle5_EventScript_163082
+ call_if_eq Route110_TrickHousePuzzle5_EventScript_163082
return
Route110_TrickHousePuzzle5_EventScript_162F43:: @ 8162F43
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle7.inc b/data/scripts/maps/Route110_TrickHousePuzzle7.inc
index 66aa8b5e7..1ee608166 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle7.inc
+++ b/data/scripts/maps/Route110_TrickHousePuzzle7.inc
@@ -10,16 +10,11 @@ Route110_TrickHousePuzzle7_MapScript1_163161:: @ 8163161
end
Route110_TrickHousePuzzle7_EventScript_163167:: @ 8163167
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
- call_if 1, Route110_TrickHousePuzzle7_EventScript_163195
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
- call_if 1, Route110_TrickHousePuzzle7_EventScript_1631A8
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
- call_if 1, Route110_TrickHousePuzzle7_EventScript_1631BB
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
- call_if 1, Route110_TrickHousePuzzle7_EventScript_1631CE
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
- call_if 1, Route110_TrickHousePuzzle7_EventScript_1631E1
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_163195
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_1631A8
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_1631BB
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_1631CE
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_1631E1
return
Route110_TrickHousePuzzle7_EventScript_163195:: @ 8163195
@@ -87,7 +82,7 @@ Route110_TrickHousePuzzle7_EventScript_16326E:: @ 816326E
Route110_TrickHousePuzzle7_MapScript1_16326F:: @ 816326F
compare VAR_TRICK_HOUSE_PUZZLE_7_STATE_2, 1
- call_if 1, Route110_TrickHousePuzzle7_EventScript_163167
+ call_if_eq Route110_TrickHousePuzzle7_EventScript_163167
end
Route110_TrickHousePuzzle7_MapScript2_16327B:: @ 816327B
@@ -121,76 +116,56 @@ Route110_TrickHousePuzzle7_EventScript_1632A8:: @ 81632A8
Route110_TrickHousePuzzle7_EventScript_1632B9:: @ 81632B9
lockall
delay 32
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
- call_if 0, Route110_TrickHousePuzzle7_EventScript_163195
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
- call_if 1, Route110_TrickHousePuzzle7_EventScript_1631F4
+ call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_163195
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_1631F4
special DrawWholeMapView
- playse 36
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
- goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633A4
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1
- goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633A9
+ playse SE_TK_KASYA
+ goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_1633A4
+ goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_1, Route110_TrickHousePuzzle7_EventScript_1633A9
end
Route110_TrickHousePuzzle7_EventScript_1632E8:: @ 81632E8
lockall
delay 32
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
- call_if 0, Route110_TrickHousePuzzle7_EventScript_1631A8
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
- call_if 1, Route110_TrickHousePuzzle7_EventScript_163207
+ call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_1631A8
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_163207
special DrawWholeMapView
- playse 36
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
- goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633AE
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2
- goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633B3
+ playse SE_TK_KASYA
+ goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_1633AE
+ goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_2, Route110_TrickHousePuzzle7_EventScript_1633B3
end
Route110_TrickHousePuzzle7_EventScript_163317:: @ 8163317
lockall
delay 32
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
- call_if 0, Route110_TrickHousePuzzle7_EventScript_1631BB
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
- call_if 1, Route110_TrickHousePuzzle7_EventScript_16321A
+ call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_1631BB
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_16321A
special DrawWholeMapView
- playse 36
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
- goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633B8
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3
- goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633BD
+ playse SE_TK_KASYA
+ goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_1633B8
+ goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_3, Route110_TrickHousePuzzle7_EventScript_1633BD
end
Route110_TrickHousePuzzle7_EventScript_163346:: @ 8163346
lockall
delay 32
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
- call_if 0, Route110_TrickHousePuzzle7_EventScript_1631CE
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
- call_if 1, Route110_TrickHousePuzzle7_EventScript_16322D
+ call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_1631CE
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_16322D
special DrawWholeMapView
- playse 36
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
- goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633C2
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4
- goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633C7
+ playse SE_TK_KASYA
+ goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_1633C2
+ goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_4, Route110_TrickHousePuzzle7_EventScript_1633C7
end
Route110_TrickHousePuzzle7_EventScript_163375:: @ 8163375
lockall
delay 32
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
- call_if 0, Route110_TrickHousePuzzle7_EventScript_1631E1
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
- call_if 1, Route110_TrickHousePuzzle7_EventScript_163240
+ call_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_1631E1
+ call_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_163240
special DrawWholeMapView
- playse 36
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
- goto_if 0, Route110_TrickHousePuzzle7_EventScript_1633CC
- checkflag FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5
- goto_if_eq Route110_TrickHousePuzzle7_EventScript_1633D1
+ playse SE_TK_KASYA
+ goto_if_unset FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_1633CC
+ goto_if_set FLAG_TRICK_HOUSE_PUZZLE_7_SWITCH_5, Route110_TrickHousePuzzle7_EventScript_1633D1
end
Route110_TrickHousePuzzle7_EventScript_1633A4:: @ 81633A4
diff --git a/data/scripts/maps/Route111.inc b/data/scripts/maps/Route111.inc
index 5336bd510..99fa29efb 100644
--- a/data/scripts/maps/Route111.inc
+++ b/data/scripts/maps/Route111.inc
@@ -4,8 +4,7 @@ Route111_MapScripts:: @ 814FF91
.byte 0
Route111_MapScript1_14FF9C:: @ 814FF9C
- checkflag FLAG_REGI_DOORS_OPENED
- call_if 0, Route111_EventScript_14FFA6
+ call_if_unset FLAG_REGI_DOORS_OPENED, Route111_EventScript_14FFA6
end
Route111_EventScript_14FFA6:: @ 814FFA6
@@ -16,25 +15,24 @@ Route111_EventScript_14FFA6:: @ 814FFA6
Route111_MapScript1_14FFB9:: @ 814FFB9
call Route111_EventScript_14FFCD
call Route111_EventScript_1AE313
- checktrainerflag OPPONENT_VICKY
- goto_if 0, Route111_EventScript_15000D
+ goto_if_trainer_not_defeated OPPONENT_VICKY, Route111_EventScript_15000D
end
Route111_EventScript_14FFCD:: @ 814FFCD
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_TEMP_1, 34
- goto_if 0, Route111_EventScript_15000C
+ goto_if_lt Route111_EventScript_15000C
compare VAR_TEMP_1, 107
- goto_if 2, Route111_EventScript_15000C
+ goto_if_gt Route111_EventScript_15000C
compare VAR_TEMP_1, 72
- goto_if 2, Route111_EventScript_150009
+ goto_if_gt Route111_EventScript_150009
compare VAR_TEMP_0, 2000
- goto_if 2, Route111_EventScript_15000C
+ goto_if_gt Route111_EventScript_15000C
compare VAR_TEMP_0, 8
- goto_if 0, Route111_EventScript_15000C
+ goto_if_lt Route111_EventScript_15000C
Route111_EventScript_150009:: @ 8150009
- setweather 8
+ setweather WEATHER_SANDSTORM
Route111_EventScript_15000C:: @ 815000C
return
@@ -51,8 +49,8 @@ Route111_EventScript_15000D:: @ 815000D
Route111_EventScript_150023:: @ 8150023
lockall
- msgbox Route111_Text_16FA54, 5
- compare RESULT, 0
+ msgbox Route111_Text_16FA54, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route111_EventScript_15005F
giveitem_std ITEM_ROOT_FOSSIL
closemessage
@@ -73,8 +71,8 @@ Route111_EventScript_15005F:: @ 815005F
Route111_EventScript_150069:: @ 8150069
lockall
- msgbox Route111_Text_16FAED, 5
- compare RESULT, 0
+ msgbox Route111_Text_16FAED, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route111_EventScript_1500A5
giveitem_std ITEM_CLAW_FOSSIL
closemessage
@@ -121,8 +119,7 @@ Route111_EventScript_1500C5:: @ 81500C5
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_ROUTE111
- goto_if_eq Route111_EventScript_150100
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_ROUTE111, Route111_EventScript_150100
msgbox Route111_Text_1C56F0, 4
giveitem_std ITEM_RAZZ_BERRY
compare RESULT, 0
@@ -174,13 +171,13 @@ Route111_EventScript_150151:: @ 8150151
msgbox Route111_Text_1A0F93, 4
closemessage
compare VAR_SPECIAL_4, 0
- call_if 1, Route111_EventScript_150188
+ call_if_eq Route111_EventScript_150188
compare VAR_SPECIAL_4, 1
- call_if 1, Route111_EventScript_150193
+ call_if_eq Route111_EventScript_150193
compare VAR_SPECIAL_4, 2
- call_if 1, Route111_EventScript_15019E
+ call_if_eq Route111_EventScript_15019E
compare VAR_SPECIAL_4, 3
- call_if 1, Route111_EventScript_1501A9
+ call_if_eq Route111_EventScript_1501A9
releaseall
end
@@ -221,15 +218,15 @@ Route111_Movement_1501BA:: @ 81501BA
step_end
Route111_EventScript_1501BC:: @ 81501BC
- setweather 2
- fadenewbgm 360
+ setweather WEATHER_SUNNY
+ fadenewbgm BGM_DOORO_X1
doweather
setvar VAR_TEMP_3, 0
end
Route111_EventScript_1501C9:: @ 81501C9
- setweather 8
- fadenewbgm 409
+ setweather WEATHER_SANDSTORM
+ fadenewbgm BGM_ASHROAD
doweather
end
@@ -237,8 +234,8 @@ Route111_EventScript_1501D1:: @ 81501D1
lock
faceplayer
setflag FLAG_LANDMARK_WINSTRATE_FAMILY
- msgbox Route111_Text_16F705, 5
- compare RESULT, 1
+ msgbox Route111_Text_16F705, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route111_EventScript_1501F3
msgbox Route111_Text_16F785, 4
release
diff --git a/data/scripts/maps/Route111_OldLadysRestStop.inc b/data/scripts/maps/Route111_OldLadysRestStop.inc
index c0fb6f489..1263c4b83 100644
--- a/data/scripts/maps/Route111_OldLadysRestStop.inc
+++ b/data/scripts/maps/Route111_OldLadysRestStop.inc
@@ -9,10 +9,10 @@ Route111_OldLadysRestStop_MapScript1_15BFD7:: @ 815BFD7
Route111_OldLadysRestStop_EventScript_15BFDB:: @ 815BFDB
lock
faceplayer
- msgbox Route111_OldLadysRestStop_Text_1923AF, 5
- compare RESULT, 1
+ msgbox Route111_OldLadysRestStop_Text_1923AF, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route111_OldLadysRestStop_EventScript_15BFFC
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route111_OldLadysRestStop_EventScript_15C029
end
@@ -20,10 +20,10 @@ Route111_OldLadysRestStop_EventScript_15BFFC:: @ 815BFFC
msgbox Route111_OldLadysRestStop_Text_192423, 4
closemessage
call Route111_OldLadysRestStop_EventScript_1A02CA
- msgbox Route111_OldLadysRestStop_Text_19244D, 5
- compare RESULT, 1
+ msgbox Route111_OldLadysRestStop_Text_19244D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route111_OldLadysRestStop_EventScript_15BFFC
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route111_OldLadysRestStop_EventScript_15C029
end
diff --git a/data/scripts/maps/Route111_WinstrateFamilysHouse.inc b/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
index 8352db786..020b51791 100644
--- a/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
+++ b/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
@@ -13,8 +13,7 @@ Route111_WinstrateFamilysHouse_EventScript_15BF3A:: @ 815BF3A
lock
faceplayer
setvar VAR_SPECIAL_8, 3
- checkflag FLAG_RECEIVED_MACHO_BRACE
- goto_if_eq Route111_WinstrateFamilysHouse_EventScript_15BF72
+ goto_if_set FLAG_RECEIVED_MACHO_BRACE, Route111_WinstrateFamilysHouse_EventScript_15BF72
msgbox Route111_WinstrateFamilysHouse_Text_19208A, 4
giveitem_std ITEM_MACHO_BRACE
compare RESULT, 0
@@ -40,8 +39,7 @@ Route111_WinstrateFamilysHouse_EventScript_15BF95:: @ 815BF95
lock
faceplayer
setvar VAR_SPECIAL_8, 4
- checkflag FLAG_TEMP_4
- goto_if_eq Route111_WinstrateFamilysHouse_EventScript_15BFB6
+ goto_if_set FLAG_TEMP_4, Route111_WinstrateFamilysHouse_EventScript_15BFB6
msgbox Route111_WinstrateFamilysHouse_Text_192219, 4
setflag FLAG_TEMP_4
goto Route111_WinstrateFamilysHouse_EventScript_15BFC4
diff --git a/data/scripts/maps/Route112_CableCarStation.inc b/data/scripts/maps/Route112_CableCarStation.inc
index cba6c33e8..570075078 100644
--- a/data/scripts/maps/Route112_CableCarStation.inc
+++ b/data/scripts/maps/Route112_CableCarStation.inc
@@ -6,7 +6,7 @@ Route112_CableCarStation_MapScripts:: @ 815C033
Route112_CableCarStation_MapScript1_15C03E:: @ 815C03E
setescapewarp MAP_ROUTE112, 255, 28, 28
compare VAR_CABLE_CAR_STATION_STATE, 2
- call_if 1, Route112_CableCarStation_EventScript_15C052
+ call_if_eq Route112_CableCarStation_EventScript_15C052
end
Route112_CableCarStation_EventScript_15C052:: @ 815C052
@@ -32,10 +32,10 @@ Route112_CableCarStation_EventScript_15C068:: @ 815C068
Route112_CableCarStation_EventScript_15C08C:: @ 815C08C
lock
faceplayer
- msgbox Route112_CableCarStation_Text_1924F5, 5
- compare RESULT, 1
+ msgbox Route112_CableCarStation_Text_1924F5, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route112_CableCarStation_EventScript_15C0AD
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route112_CableCarStation_EventScript_15C0DC
end
@@ -49,7 +49,7 @@ Route112_CableCarStation_EventScript_15C0AD:: @ 815C0AD
setvar VAR_CABLE_CAR_STATION_STATE, 1
incrementgamestat GAME_STAT_RODE_CABLE_CAR
special CableCarWarp
- special sub_8123218
+ special CableCar
waitstate
release
end
diff --git a/data/scripts/maps/Route113.inc b/data/scripts/maps/Route113.inc
index 1b589fcde..41b289db0 100644
--- a/data/scripts/maps/Route113.inc
+++ b/data/scripts/maps/Route113.inc
@@ -15,10 +15,10 @@ Route113_MapScript1_1505DA:: @ 81505DA
Route113_EventScript_1505E5:: @ 81505E5
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_TEMP_0, 19
- goto_if 0, Route113_EventScript_150604
+ goto_if_lt Route113_EventScript_150604
compare VAR_TEMP_0, 84
- goto_if 2, Route113_EventScript_150604
- setweather 7
+ goto_if_gt Route113_EventScript_150604
+ setweather WEATHER_ASH
return
Route113_EventScript_150604:: @ 8150604
diff --git a/data/scripts/maps/Route113_GlassWorkshop.inc b/data/scripts/maps/Route113_GlassWorkshop.inc
index bc32449cd..e42a6f89a 100644
--- a/data/scripts/maps/Route113_GlassWorkshop.inc
+++ b/data/scripts/maps/Route113_GlassWorkshop.inc
@@ -5,7 +5,7 @@ Route113_GlassWorkshop_MapScripts:: @ 816354A
Route113_GlassWorkshop_MapScript1_163550:: @ 8163550
setflag FLAG_LANDMARK_GLASS_WORKSHOP
compare VAR_GLASS_WORKSHOP_STATE, 1
- call_if 1, Route113_GlassWorkshop_EventScript_16355F
+ call_if_eq Route113_GlassWorkshop_EventScript_16355F
end
Route113_GlassWorkshop_EventScript_16355F:: @ 816355F
@@ -16,7 +16,7 @@ Route113_GlassWorkshop_EventScript_163565:: @ 8163565
lock
faceplayer
compare VAR_GLASS_WORKSHOP_STATE, 10
- goto_if 4, Route113_GlassWorkshop_EventScript_1638D2
+ goto_if_ge Route113_GlassWorkshop_EventScript_1638D2
compare VAR_GLASS_WORKSHOP_STATE, 2
goto_if_eq Route113_GlassWorkshop_EventScript_1635B5
compare VAR_GLASS_WORKSHOP_STATE, 1
@@ -39,7 +39,7 @@ Route113_GlassWorkshop_EventScript_1635B5:: @ 81635B5
goto_if_eq Route113_GlassWorkshop_EventScript_1635E4
msgbox Route113_GlassWorkshop_Text_19E65B, 4
compare VAR_ASH_GATHER_COUNT, 250
- goto_if 0, Route113_GlassWorkshop_EventScript_163818
+ goto_if_lt Route113_GlassWorkshop_EventScript_163818
message Route113_GlassWorkshop_Text_19E757
waitmessage
goto Route113_GlassWorkshop_EventScript_1635EE
@@ -67,13 +67,13 @@ Route113_GlassWorkshop_EventScript_1635EE:: @ 81635EE
end
Route113_GlassWorkshop_EventScript_163660:: @ 8163660
- setvar VAR_SPECIAL_8, 39
+ setvar VAR_SPECIAL_8, ITEM_BLUE_FLUTE
bufferitemname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 250
compare VAR_ASH_GATHER_COUNT, 250
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 10
subvar VAR_ASH_GATHER_COUNT, 250
@@ -81,13 +81,13 @@ Route113_GlassWorkshop_EventScript_163660:: @ 8163660
end
Route113_GlassWorkshop_EventScript_16369C:: @ 816369C
- setvar VAR_SPECIAL_8, 40
+ setvar VAR_SPECIAL_8, ITEM_YELLOW_FLUTE
bufferitemname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 500
compare VAR_ASH_GATHER_COUNT, 500
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 11
subvar VAR_ASH_GATHER_COUNT, 500
@@ -95,13 +95,13 @@ Route113_GlassWorkshop_EventScript_16369C:: @ 816369C
end
Route113_GlassWorkshop_EventScript_1636D8:: @ 81636D8
- setvar VAR_SPECIAL_8, 41
+ setvar VAR_SPECIAL_8, ITEM_RED_FLUTE
bufferitemname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 500
compare VAR_ASH_GATHER_COUNT, 500
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 12
subvar VAR_ASH_GATHER_COUNT, 500
@@ -109,13 +109,13 @@ Route113_GlassWorkshop_EventScript_1636D8:: @ 81636D8
end
Route113_GlassWorkshop_EventScript_163714:: @ 8163714
- setvar VAR_SPECIAL_8, 43
+ setvar VAR_SPECIAL_8, ITEM_WHITE_FLUTE
bufferitemname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 1000
compare VAR_ASH_GATHER_COUNT, 1000
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 13
subvar VAR_ASH_GATHER_COUNT, 1000
@@ -123,13 +123,13 @@ Route113_GlassWorkshop_EventScript_163714:: @ 8163714
end
Route113_GlassWorkshop_EventScript_163750:: @ 8163750
- setvar VAR_SPECIAL_8, 42
+ setvar VAR_SPECIAL_8, ITEM_BLACK_FLUTE
bufferitemname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 1000
compare VAR_ASH_GATHER_COUNT, 1000
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 14
subvar VAR_ASH_GATHER_COUNT, 1000
@@ -138,13 +138,13 @@ Route113_GlassWorkshop_EventScript_163750:: @ 8163750
Route113_GlassWorkshop_EventScript_16378C:: @ 816378C
setvar VAR_SPECIAL_9, 1
- setvar VAR_SPECIAL_8, 13
+ setvar VAR_SPECIAL_8, DECOR_PRETTY_CHAIR
bufferdecorationname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 6000
compare VAR_ASH_GATHER_COUNT, 6000
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 15
subvar VAR_ASH_GATHER_COUNT, 6000
@@ -153,13 +153,13 @@ Route113_GlassWorkshop_EventScript_16378C:: @ 816378C
Route113_GlassWorkshop_EventScript_1637CD:: @ 81637CD
setvar VAR_SPECIAL_9, 1
- setvar VAR_SPECIAL_8, 6
+ setvar VAR_SPECIAL_8, DECOR_PRETTY_DESK
bufferdecorationname 0, VAR_SPECIAL_8
setvar VAR_SPECIAL_A, 8000
compare VAR_ASH_GATHER_COUNT, 8000
- goto_if 0, Route113_GlassWorkshop_EventScript_163830
- msgbox Route113_GlassWorkshop_Text_19E7CD, 5
- compare RESULT, 0
+ goto_if_lt Route113_GlassWorkshop_EventScript_163830
+ msgbox Route113_GlassWorkshop_Text_19E7CD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route113_GlassWorkshop_EventScript_163845
setvar VAR_GLASS_WORKSHOP_STATE, 16
subvar VAR_ASH_GATHER_COUNT, 8000
@@ -197,14 +197,14 @@ Route113_GlassWorkshop_EventScript_163851:: @ 8163851
msgbox Route113_GlassWorkshop_Text_19E827, 4
closemessage
fadescreen 1
- playse 5
+ playse SE_SELECT
delay 30
fadescreen 0
msgbox Route113_GlassWorkshop_Text_19E9D7, 4
compare VAR_SPECIAL_9, 0
- call_if 1, Route113_GlassWorkshop_EventScript_163889
+ call_if_eq Route113_GlassWorkshop_EventScript_163889
compare VAR_SPECIAL_9, 1
- call_if 1, Route113_GlassWorkshop_EventScript_1638A1
+ call_if_eq Route113_GlassWorkshop_EventScript_1638A1
setvar VAR_GLASS_WORKSHOP_STATE, 2
release
end
@@ -246,59 +246,59 @@ Route113_GlassWorkshop_EventScript_1638D2:: @ 81638D2
Route113_GlassWorkshop_EventScript_163925:: @ 8163925
setvar VAR_SPECIAL_9, 0
- setvar VAR_SPECIAL_8, 39
+ setvar VAR_SPECIAL_8, ITEM_BLUE_FLUTE
bufferitemname 0, VAR_SPECIAL_8
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163939:: @ 8163939
setvar VAR_SPECIAL_9, 0
- setvar VAR_SPECIAL_8, 40
+ setvar VAR_SPECIAL_8, ITEM_YELLOW_FLUTE
bufferitemname 0, VAR_SPECIAL_8
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_16394D:: @ 816394D
setvar VAR_SPECIAL_9, 0
- setvar VAR_SPECIAL_8, 41
+ setvar VAR_SPECIAL_8, ITEM_RED_FLUTE
bufferitemname 0, VAR_SPECIAL_8
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163961:: @ 8163961
setvar VAR_SPECIAL_9, 0
- setvar VAR_SPECIAL_8, 43
+ setvar VAR_SPECIAL_8, ITEM_WHITE_FLUTE
bufferitemname 0, VAR_SPECIAL_8
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163975:: @ 8163975
setvar VAR_SPECIAL_9, 0
- setvar VAR_SPECIAL_8, 42
+ setvar VAR_SPECIAL_8, ITEM_BLACK_FLUTE
bufferitemname 0, VAR_SPECIAL_8
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_163989:: @ 8163989
setvar VAR_SPECIAL_9, 1
- setvar VAR_SPECIAL_8, 13
- bufferdecorationname 0, 13
+ setvar VAR_SPECIAL_8, DECOR_PRETTY_CHAIR
+ bufferdecorationname 0, DECOR_PRETTY_CHAIR
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_16399D:: @ 816399D
setvar VAR_SPECIAL_9, 1
- setvar VAR_SPECIAL_8, 6
- bufferdecorationname 0, 6
+ setvar VAR_SPECIAL_8, DECOR_PRETTY_DESK
+ bufferdecorationname 0, DECOR_PRETTY_DESK
goto Route113_GlassWorkshop_EventScript_1639B1
end
Route113_GlassWorkshop_EventScript_1639B1:: @ 81639B1
msgbox Route113_GlassWorkshop_Text_19E9D7, 4
compare VAR_SPECIAL_9, 0
- call_if 1, Route113_GlassWorkshop_EventScript_163889
+ call_if_eq Route113_GlassWorkshop_EventScript_163889
compare VAR_SPECIAL_9, 1
- call_if 1, Route113_GlassWorkshop_EventScript_1638A1
+ call_if_eq Route113_GlassWorkshop_EventScript_1638A1
setvar VAR_GLASS_WORKSHOP_STATE, 2
release
end
diff --git a/data/scripts/maps/Route114.inc b/data/scripts/maps/Route114.inc
index f6bb6d8ba..54a4ee59a 100644
--- a/data/scripts/maps/Route114.inc
+++ b/data/scripts/maps/Route114.inc
@@ -5,8 +5,7 @@ Route114_EventScript_150733:: @ 8150733
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_ROUTE114
- goto_if_eq Route114_EventScript_150778
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_ROUTE114, Route114_EventScript_150778
msgbox Route114_Text_1C5803, 4
random 5
addvar RESULT, 15
@@ -27,10 +26,9 @@ Route114_EventScript_150778:: @ 8150778
Route114_EventScript_150782:: @ 8150782
lock
faceplayer
- checkflag FLAG_RECEIVED_TM05
- goto_if_eq Route114_EventScript_1507B9
+ goto_if_set FLAG_RECEIVED_TM05, Route114_EventScript_1507B9
msgbox Route114_Text_170154, 4
- giveitem_std ITEM_TM05
+ giveitem_std ITEM_TM05_ROAR
compare RESULT, 0
goto_if_eq Route114_EventScript_1A029B
setflag FLAG_RECEIVED_TM05
diff --git a/data/scripts/maps/Route114_FossilManiacsHouse.inc b/data/scripts/maps/Route114_FossilManiacsHouse.inc
index 1a1445fde..c93584561 100644
--- a/data/scripts/maps/Route114_FossilManiacsHouse.inc
+++ b/data/scripts/maps/Route114_FossilManiacsHouse.inc
@@ -9,10 +9,9 @@ Route114_FossilManiacsHouse_MapScript1_15C1BF:: @ 815C1BF
Route114_FossilManiacsHouse_EventScript_15C1C3:: @ 815C1C3
lock
faceplayer
- checkflag FLAG_RECEIVED_TM28
- goto_if_eq Route114_FossilManiacsHouse_EventScript_15C1F2
+ goto_if_set FLAG_RECEIVED_TM28, Route114_FossilManiacsHouse_EventScript_15C1F2
msgbox Route114_FossilManiacsHouse_Text_1925E1, 4
- giveitem_std ITEM_TM28
+ giveitem_std ITEM_TM28_DIG
compare RESULT, 0
goto_if_eq Route114_FossilManiacsHouse_EventScript_1A029B
setflag FLAG_RECEIVED_TM28
diff --git a/data/scripts/maps/Route114_FossilManiacsTunnel.inc b/data/scripts/maps/Route114_FossilManiacsTunnel.inc
index 2ce9c1bfa..740a48314 100644
--- a/data/scripts/maps/Route114_FossilManiacsTunnel.inc
+++ b/data/scripts/maps/Route114_FossilManiacsTunnel.inc
@@ -4,8 +4,7 @@ Route114_FossilManiacsTunnel_MapScripts:: @ 815C20E
Route114_FossilManiacsTunnel_EventScript_15C20F:: @ 815C20F
lock
faceplayer
- checkflag FLAG_RECEIVED_FOSSIL_MON
- goto_if_eq Route114_FossilManiacsTunnel_EventScript_15C24E
+ goto_if_set FLAG_RECEIVED_FOSSIL_MON, Route114_FossilManiacsTunnel_EventScript_15C24E
checkitem ITEM_ROOT_FOSSIL, 1
compare RESULT, 1
goto_if_eq Route114_FossilManiacsTunnel_EventScript_15C244
diff --git a/data/scripts/maps/Route114_LanettesHouse.inc b/data/scripts/maps/Route114_LanettesHouse.inc
index f8ff5de73..30eb844ac 100644
--- a/data/scripts/maps/Route114_LanettesHouse.inc
+++ b/data/scripts/maps/Route114_LanettesHouse.inc
@@ -9,8 +9,7 @@ Route114_LanettesHouse_MapScript1_15C25E:: @ 815C25E
Route114_LanettesHouse_EventScript_15C262:: @ 815C262
lock
faceplayer
- checkflag FLAG_RECEIVED_DOLL_LANETTE
- goto_if_eq Route114_LanettesHouse_EventScript_15C28F
+ goto_if_set FLAG_RECEIVED_DOLL_LANETTE, Route114_LanettesHouse_EventScript_15C28F
setflag FLAG_SYS_PC_LANETTE
msgbox Route114_LanettesHouse_Text_192A0D, 4
.ifdef SAPPHIRE
@@ -31,17 +30,17 @@ Route114_LanettesHouse_EventScript_15C28F:: @ 815C28F
Route114_LanettesHouse_EventScript_15C299:: @ 815C299
lockall
- msgbox Route114_LanettesHouse_Text_192B4A, 5
- compare RESULT, 1
+ msgbox Route114_LanettesHouse_Text_192B4A, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route114_LanettesHouse_EventScript_15C2B7
msgbox Route114_LanettesHouse_Text_192DA9, 4
releaseall
end
Route114_LanettesHouse_EventScript_15C2B7:: @ 815C2B7
- msgbox Route114_LanettesHouse_Text_192C01, 5
- compare RESULT, 1
- call_if 1, Route114_LanettesHouse_EventScript_15C2CC
+ msgbox Route114_LanettesHouse_Text_192C01, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq Route114_LanettesHouse_EventScript_15C2CC
releaseall
end
diff --git a/data/scripts/maps/Route116.inc b/data/scripts/maps/Route116.inc
index 4e08705cf..eea14e25d 100644
--- a/data/scripts/maps/Route116.inc
+++ b/data/scripts/maps/Route116.inc
@@ -3,8 +3,7 @@ Route116_MapScripts:: @ 8150A31
.byte 0
Route116_MapScript1_150A37:: @ 8150A37
- checkflag FLAG_RECOVERED_DEVON_GOODS
- call_if 1, Route116_EventScript_150A41
+ call_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_150A41
end
Route116_EventScript_150A41:: @ 8150A41
@@ -14,10 +13,8 @@ Route116_EventScript_150A41:: @ 8150A41
Route116_EventScript_150A49:: @ 8150A49
lock
faceplayer
- checkflag FLAG_RECOVERED_DEVON_GOODS
- goto_if_eq Route116_EventScript_150A67
- checkflag FLAG_DEVON_GOODS_STOLEN
- goto_if_eq Route116_EventScript_150A71
+ goto_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_150A67
+ goto_if_set FLAG_DEVON_GOODS_STOLEN, Route116_EventScript_150A71
msgbox Route116_Text_1703CF, 4
release
end
@@ -35,8 +32,7 @@ Route116_EventScript_150A71:: @ 8150A71
Route116_EventScript_150A7B:: @ 8150A7B
lock
faceplayer
- checkflag FLAG_MET_DEVON_EMPLOYEE
- goto_if_eq Route116_EventScript_150B04
+ goto_if_set FLAG_MET_DEVON_EMPLOYEE, Route116_EventScript_150B04
msgbox Route116_Text_1705AE, 4
goto Route116_EventScript_150A94
end
@@ -49,13 +45,13 @@ Route116_EventScript_150A94:: @ 8150A94
msgbox Route116_Text_1707B8, 4
closemessage
compare FACING, 2
- call_if 1, Route116_EventScript_150AEE
+ call_if_eq Route116_EventScript_150AEE
compare FACING, 1
- call_if 1, Route116_EventScript_150AEE
+ call_if_eq Route116_EventScript_150AEE
compare FACING, 3
- call_if 1, Route116_EventScript_150AEE
+ call_if_eq Route116_EventScript_150AEE
compare FACING, 4
- call_if 1, Route116_EventScript_150AF9
+ call_if_eq Route116_EventScript_150AF9
removeobject LAST_TALKED
clearflag FLAG_HIDE_EMPLOYEE_DEVON_CORP_3F
setflag FLAG_RECEIVED_REPEAT_BALL
@@ -182,13 +178,13 @@ Route116_EventScript_150BF4:: @ 8150BF4
Route116_EventScript_150C03:: @ 8150C03
delay 20
compare FACING, 2
- call_if 1, Route116_EventScript_150C37
+ call_if_eq Route116_EventScript_150C37
compare FACING, 1
- call_if 1, Route116_EventScript_150C37
+ call_if_eq Route116_EventScript_150C37
compare FACING, 3
- call_if 1, Route116_EventScript_150C37
+ call_if_eq Route116_EventScript_150C37
compare FACING, 4
- call_if 1, Route116_EventScript_150C42
+ call_if_eq Route116_EventScript_150C42
removeobject LAST_TALKED
release
end
diff --git a/data/scripts/maps/Route116_TunnelersRestHouse.inc b/data/scripts/maps/Route116_TunnelersRestHouse.inc
index 24091c4ac..5ec6ef642 100644
--- a/data/scripts/maps/Route116_TunnelersRestHouse.inc
+++ b/data/scripts/maps/Route116_TunnelersRestHouse.inc
@@ -17,8 +17,7 @@ Route116_TunnelersRestHouse_EventScript_15C2F1:: @ 815C2F1
Route116_TunnelersRestHouse_EventScript_15C2FA:: @ 815C2FA
lock
faceplayer
- checkflag FLAG_RUSTURF_TUNNEL_OPENED
- goto_if_eq Route116_TunnelersRestHouse_EventScript_15C30F
+ goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, Route116_TunnelersRestHouse_EventScript_15C30F
msgbox Route116_TunnelersRestHouse_Text_193135, 4
release
end
diff --git a/data/scripts/maps/Route117.inc b/data/scripts/maps/Route117.inc
index fa648f79e..9f42412ab 100644
--- a/data/scripts/maps/Route117.inc
+++ b/data/scripts/maps/Route117.inc
@@ -7,8 +7,7 @@ Route117_MapScript1_150D40:: @ 8150D40
end
Route117_EventScript_150D46:: @ 8150D46
- checkflag FLAG_PENDING_DAYCARE_EGG
- goto_if 0, Route117_EventScript_150D56
+ goto_if_unset FLAG_PENDING_DAYCARE_EGG, Route117_EventScript_150D56
setobjectxyperm 3, 47, 6
Route117_EventScript_150D56:: @ 8150D56
diff --git a/data/scripts/maps/Route118.inc b/data/scripts/maps/Route118.inc
index 63decb5d6..569a7103e 100644
--- a/data/scripts/maps/Route118.inc
+++ b/data/scripts/maps/Route118.inc
@@ -9,12 +9,11 @@ Route118_MapScript1_150F2E:: @ 8150F2E
Route118_EventScript_150F34:: @ 8150F34
lock
faceplayer
- checkflag FLAG_RECEIVED_GOOD_ROD
- goto_if_eq Route118_EventScript_150F89
- msgbox Route118_Text_170F12, 5
- compare RESULT, 1
+ goto_if_set FLAG_RECEIVED_GOOD_ROD, Route118_EventScript_150F89
+ msgbox Route118_Text_170F12, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route118_EventScript_150F5E
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq Route118_EventScript_150F7F
end
@@ -77,18 +76,18 @@ Route118_EventScript_150FE4:: @ 8150FE4
end
Route118_EventScript_151004:: @ 8151004
- playse 10
+ playse SE_DANSA
applymovement 19, Route118_Movement_15106D
waitmovement 0
delay 30
msgbox Route118_Text_170D66, 4
closemessage
compare VAR_SPECIAL_8, 0
- call_if 1, Route118_EventScript_151048
+ call_if_eq Route118_EventScript_151048
compare VAR_SPECIAL_8, 1
- call_if 1, Route118_EventScript_151053
+ call_if_eq Route118_EventScript_151053
compare VAR_SPECIAL_8, 2
- call_if 1, Route118_EventScript_15105E
+ call_if_eq Route118_EventScript_15105E
setvar VAR_ROUTE118_STATE, 1
removeobject 19
releaseall
diff --git a/data/scripts/maps/Route119.inc b/data/scripts/maps/Route119.inc
index e82d7b313..30eed9cc0 100644
--- a/data/scripts/maps/Route119.inc
+++ b/data/scripts/maps/Route119.inc
@@ -4,15 +4,14 @@ Route119_MapScripts:: @ 8151167
.byte 0
Route119_MapScript1_151172:: @ 8151172
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, Route119_EventScript_15117C
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route119_EventScript_15117C
end
Route119_EventScript_15117C:: @ 815117C
compare VAR_SPECIAL_4, 6
- call_if 1, Route119_EventScript_151193
+ call_if_eq Route119_EventScript_151193
compare VAR_SPECIAL_4, 7
- call_if 1, Route119_EventScript_151197
+ call_if_eq Route119_EventScript_151197
return
Route119_EventScript_151193:: @ 8151193
@@ -28,7 +27,7 @@ Route119_MapScript1_15119B:: @ 815119B
call Route119_EventScript_1A0172
call Route119_EventScript_1A0196
compare VAR_WEATHER_INSTITUTE_STATE, 1
- call_if 1, Route119_EventScript_1511B9
+ call_if_eq Route119_EventScript_1511B9
special SetRoute119Weather
end
@@ -53,21 +52,21 @@ Route119_EventScript_1511DB:: @ 81511DB
addobject 25
checkplayergender
compare RESULT, 0
- call_if 1, Route119_EventScript_151254
+ call_if_eq Route119_EventScript_151254
compare RESULT, 1
- call_if 1, Route119_EventScript_151259
+ call_if_eq Route119_EventScript_151259
delay 65
compare VAR_TEMP_1, 1
- call_if 1, Route119_EventScript_1513A6
+ call_if_eq Route119_EventScript_1513A6
compare VAR_TEMP_1, 2
- call_if 1, Route119_EventScript_1513B1
+ call_if_eq Route119_EventScript_1513B1
applymovement 255, Route119_Movement_1A0845
waitmovement 0
delay 30
compare VAR_TEMP_1, 1
- call_if 1, Route119_EventScript_1513D2
+ call_if_eq Route119_EventScript_1513D2
compare VAR_TEMP_1, 2
- call_if 1, Route119_EventScript_1513E1
+ call_if_eq Route119_EventScript_1513E1
removeobject 25
addobject 16
delay 30
@@ -80,11 +79,11 @@ Route119_EventScript_1511DB:: @ 81511DB
end
Route119_EventScript_151254:: @ 8151254
- playbgm 415, 1
+ playbgm BGM_GIRL_SUP, TRUE
return
Route119_EventScript_151259:: @ 8151259
- playbgm 421, 1
+ playbgm BGM_BOY_SUP, TRUE
return
Route119_EventScript_15125E:: @ 815125E
@@ -148,23 +147,23 @@ Route119_EventScript_151337:: @ 8151337
end
Route119_EventScript_151352:: @ 8151352
- giveitem_std ITEM_HM02
+ giveitem_std ITEM_HM02_FLY
setflag FLAG_RECEIVED_HM02
return
Route119_EventScript_151362:: @ 8151362
closemessage
compare VAR_TEMP_1, 1
- call_if 1, Route119_EventScript_1513D2
+ call_if_eq Route119_EventScript_1513D2
compare VAR_TEMP_1, 2
- call_if 1, Route119_EventScript_1513E1
+ call_if_eq Route119_EventScript_1513E1
removeobject 16
addobject 25
delay 30
compare VAR_TEMP_1, 1
- call_if 1, Route119_EventScript_1513BC
+ call_if_eq Route119_EventScript_1513BC
compare VAR_TEMP_1, 2
- call_if 1, Route119_EventScript_1513C7
+ call_if_eq Route119_EventScript_1513C7
removeobject 25
setvar VAR_ROUTE119_STATE, 1
savebgm 0
diff --git a/data/scripts/maps/Route119_WeatherInstitute_1F.inc b/data/scripts/maps/Route119_WeatherInstitute_1F.inc
index 8a5c1033f..e5ca6550b 100644
--- a/data/scripts/maps/Route119_WeatherInstitute_1F.inc
+++ b/data/scripts/maps/Route119_WeatherInstitute_1F.inc
@@ -5,7 +5,7 @@ Route119_WeatherInstitute_1F_MapScripts:: @ 8163C2A
Route119_WeatherInstitute_1F_MapScript1_163C30:: @ 8163C30
call Route119_WeatherInstitute_1F_EventScript_1A0196
compare VAR_WEATHER_INSTITUTE_STATE, 0
- call_if 1, Route119_WeatherInstitute_1F_EventScript_163C41
+ call_if_eq Route119_WeatherInstitute_1F_EventScript_163C41
end
Route119_WeatherInstitute_1F_EventScript_163C41:: @ 8163C41
diff --git a/data/scripts/maps/Route119_WeatherInstitute_2F.inc b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
index 50f453465..81037941f 100644
--- a/data/scripts/maps/Route119_WeatherInstitute_2F.inc
+++ b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
@@ -5,9 +5,9 @@ Route119_WeatherInstitute_2F_MapScripts:: @ 8163CC2
Route119_WeatherInstitute_2F_MapScript1_163CC8:: @ 8163CC8
call Route119_WeatherInstitute_2F_EventScript_1A0196
compare VAR_WEATHER_INSTITUTE_STATE, 0
- call_if 1, Route119_WeatherInstitute_2F_EventScript_163CE4
+ call_if_eq Route119_WeatherInstitute_2F_EventScript_163CE4
compare VAR_WEATHER_INSTITUTE_STATE, 1
- call_if 1, Route119_WeatherInstitute_2F_EventScript_163CF0
+ call_if_eq Route119_WeatherInstitute_2F_EventScript_163CF0
end
Route119_WeatherInstitute_2F_EventScript_163CE4:: @ 8163CE4
@@ -58,7 +58,7 @@ Route119_WeatherInstitute_2F_EventScript_163D7A:: @ 8163D7A
getpartysize
compare RESULT, 6
goto_if_eq Route119_WeatherInstitute_2F_EventScript_163DB4
- playfanfare 370
+ playfanfare BGM_FANFA4
message Route119_WeatherInstitute_2F_Text_19F267
waitfanfare
waitmessage
@@ -87,7 +87,6 @@ Route119_WeatherInstitute_2F_Movement_163DC8:: @ 8163DC8
Route119_WeatherInstitute_2F_EventScript_163DCC:: @ 8163DCC
lock
faceplayer
- checkflag FLAG_RECEIVED_CASTFORM
- goto_if_eq Route119_WeatherInstitute_2F_EventScript_163DBE
+ goto_if_set FLAG_RECEIVED_CASTFORM, Route119_WeatherInstitute_2F_EventScript_163DBE
goto Route119_WeatherInstitute_2F_EventScript_163D7A
end
diff --git a/data/scripts/maps/Route120.inc b/data/scripts/maps/Route120.inc
index d2866cceb..b49834564 100644
--- a/data/scripts/maps/Route120.inc
+++ b/data/scripts/maps/Route120.inc
@@ -5,23 +5,22 @@ Route120_MapScripts:: @ 815160E
.byte 0
Route120_MapScript1_15161E:: @ 815161E
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, Route120_EventScript_151628
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, Route120_EventScript_151628
end
Route120_EventScript_151628:: @ 8151628
compare VAR_SPECIAL_4, 0
- call_if 1, Route120_EventScript_15166B
+ call_if_eq Route120_EventScript_15166B
compare VAR_SPECIAL_4, 1
- call_if 1, Route120_EventScript_151672
+ call_if_eq Route120_EventScript_151672
compare VAR_SPECIAL_4, 2
- call_if 1, Route120_EventScript_151676
+ call_if_eq Route120_EventScript_151676
compare VAR_SPECIAL_4, 3
- call_if 1, Route120_EventScript_15167A
+ call_if_eq Route120_EventScript_15167A
compare VAR_SPECIAL_4, 4
- call_if 1, Route120_EventScript_15167E
+ call_if_eq Route120_EventScript_15167E
compare VAR_SPECIAL_4, 5
- call_if 1, Route120_EventScript_151682
+ call_if_eq Route120_EventScript_151682
return
Route120_EventScript_15166B:: @ 815166B
@@ -50,12 +49,9 @@ Route120_EventScript_151682:: @ 8151682
return
Route120_MapScript1_151686:: @ 8151686
- checkflag FLAG_REGI_DOORS_OPENED
- call_if 0, Route120_EventScript_1516A2
- checkflag FLAG_RECEIVED_DEVON_SCOPE
- call_if 1, Route120_EventScript_1516B5
- checkflag FLAG_RECEIVED_DEVON_SCOPE
- call_if 0, Route120_EventScript_1516DA
+ call_if_unset FLAG_REGI_DOORS_OPENED, Route120_EventScript_1516A2
+ call_if_set FLAG_RECEIVED_DEVON_SCOPE, Route120_EventScript_1516B5
+ call_if_unset FLAG_RECEIVED_DEVON_SCOPE, Route120_EventScript_1516DA
end
Route120_EventScript_1516A2:: @ 81516A2
@@ -82,44 +78,43 @@ Route120_MapScript1_1516DF:: @ 81516DF
Route120_EventScript_1516EA:: @ 81516EA
getplayerxy VAR_TEMP_0, VAR_TEMP_1
compare VAR_TEMP_1, 14
- goto_if 3, Route120_EventScript_151715
+ goto_if_le Route120_EventScript_151715
compare VAR_TEMP_1, 60
- goto_if 3, Route120_EventScript_151719
+ goto_if_le Route120_EventScript_151719
compare VAR_TEMP_1, 61
- goto_if 4, Route120_EventScript_151711
+ goto_if_ge Route120_EventScript_151711
return
Route120_EventScript_151711:: @ 8151711
- setweather 1
+ setweather WEATHER_CLOUDS
return
Route120_EventScript_151715:: @ 8151715
- setweather 2
+ setweather WEATHER_SUNNY
return
Route120_EventScript_151719:: @ 8151719
compare VAR_TEMP_0, 7
- goto_if 3, Route120_EventScript_151735
+ goto_if_le Route120_EventScript_151735
compare VAR_TEMP_0, 19
- goto_if 3, Route120_EventScript_151715
+ goto_if_le Route120_EventScript_151715
goto Route120_EventScript_151735
end
Route120_EventScript_151735:: @ 8151735
- setweather 3
+ setweather WEATHER_RAIN_LIGHT
return
Route120_EventScript_151739:: @ 8151739
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_ROUTE120
- goto_if_eq Route120_EventScript_151837
- msgbox Route120_Text_1C58F1, 5
- compare RESULT, 1
- call_if 1, Route120_EventScript_151841
- compare RESULT, 0
- call_if 1, Route120_EventScript_15184A
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_ROUTE120, Route120_EventScript_151837
+ msgbox Route120_Text_1C58F1, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq Route120_EventScript_151841
+ compare RESULT, NO
+ call_if_eq Route120_EventScript_15184A
specialvar RESULT, GetPlayerTrainerIdOnesDigit
switch RESULT
case 0, Route120_EventScript_1517DC
@@ -184,10 +179,9 @@ Route120_EventScript_15184A:: @ 815184A
Route120_EventScript_151853:: @ 8151853
lock
faceplayer
- checkflag FLAG_NOT_READY_FOR_BATTLE_ROUTE120
- goto_if_eq Route120_EventScript_151884
- msgbox Route120_Text_171827, 5
- compare RESULT, 0
+ goto_if_set FLAG_NOT_READY_FOR_BATTLE_ROUTE120, Route120_EventScript_151884
+ msgbox Route120_Text_171827, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route120_EventScript_151877
goto Route120_EventScript_15189D
end
@@ -199,8 +193,8 @@ Route120_EventScript_151877:: @ 8151877
end
Route120_EventScript_151884:: @ 8151884
- msgbox Route120_Text_17196F, 5
- compare RESULT, 0
+ msgbox Route120_Text_17196F, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route120_EventScript_151877
goto Route120_EventScript_15189D
end
@@ -209,9 +203,9 @@ Route120_EventScript_15189D:: @ 815189D
msgbox Route120_Text_1719A0, 4
closemessage
compare FACING, 2
- call_if 1, Route120_EventScript_15197F
+ call_if_eq Route120_EventScript_15197F
compare FACING, 3
- call_if 1, Route120_EventScript_15198A
+ call_if_eq Route120_EventScript_15198A
applymovement 31, Route120_Movement_1A083F
waitmovement 0
delay 20
diff --git a/data/scripts/maps/Route121_SafariZoneEntrance.inc b/data/scripts/maps/Route121_SafariZoneEntrance.inc
index 6235e3b1c..2648e19ce 100644
--- a/data/scripts/maps/Route121_SafariZoneEntrance.inc
+++ b/data/scripts/maps/Route121_SafariZoneEntrance.inc
@@ -33,8 +33,8 @@ Route121_SafariZoneEntrance_EventScript_15C351:: @ 815C351
Route121_SafariZoneEntrance_EventScript_15C35A:: @ 815C35A
lock
faceplayer
- msgbox Route121_SafariZoneEntrance_Text_1C3704, 5
- compare RESULT, 1
+ msgbox Route121_SafariZoneEntrance_Text_1C3704, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route121_SafariZoneEntrance_EventScript_15C379
msgbox Route121_SafariZoneEntrance_Text_1C373C, 4
release
@@ -51,8 +51,8 @@ Route121_SafariZoneEntrance_EventScript_15C383:: @ 815C383
waitmovement 0
showmoneybox 0, 0
nop
- msgbox Route121_SafariZoneEntrance_Text_1C3832, 5
- compare RESULT, 1
+ msgbox Route121_SafariZoneEntrance_Text_1C3832, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route121_SafariZoneEntrance_EventScript_15C3B3
msgbox Route121_SafariZoneEntrance_Text_1C3895, 4
goto Route121_SafariZoneEntrance_EventScript_15C46C
@@ -71,7 +71,7 @@ Route121_SafariZoneEntrance_EventScript_15C3B3:: @ 815C3B3
updatemoneybox 0, 0
nop
msgbox Route121_SafariZoneEntrance_Text_1C38F4, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
message Route121_SafariZoneEntrance_Text_1C3910
waitfanfare
waitmessage
@@ -89,7 +89,7 @@ Route121_SafariZoneEntrance_EventScript_15C3B3:: @ 815C3B3
Route121_SafariZoneEntrance_EventScript_15C425:: @ 815C425
getpartysize
compare RESULT, 6
- goto_if 5, Route121_SafariZoneEntrance_EventScript_15C44F
+ goto_if_ne Route121_SafariZoneEntrance_EventScript_15C44F
specialvar RESULT, CheckFreePokemonStorageSpace
compare RESULT, 1
goto_if_eq Route121_SafariZoneEntrance_EventScript_15C44F
diff --git a/data/scripts/maps/Route123.inc b/data/scripts/maps/Route123.inc
index a25c306cc..d954bec1a 100644
--- a/data/scripts/maps/Route123.inc
+++ b/data/scripts/maps/Route123.inc
@@ -9,14 +9,13 @@ Route123_MapScript1_151C59:: @ 8151C59
Route123_EventScript_151C5D:: @ 8151C5D
lock
faceplayer
- checkflag FLAG_RECEIVED_TM19
- goto_if_eq Route123_EventScript_151CAC
+ goto_if_set FLAG_RECEIVED_TM19, Route123_EventScript_151CAC
msgbox Route123_Text_171D83, 4
special IsGrassTypeInParty
compare RESULT, 0
goto_if_eq Route123_EventScript_151CAA
msgbox Route123_Text_171DC2, 4
- giveitem_std ITEM_TM19
+ giveitem_std ITEM_TM19_GIGA_DRAIN
compare RESULT, 0
goto_if_eq Route123_EventScript_1A029B
setflag FLAG_RECEIVED_TM19
diff --git a/data/scripts/maps/Route123_BerryMastersHouse.inc b/data/scripts/maps/Route123_BerryMastersHouse.inc
index 26edb6fbb..3356df83b 100644
--- a/data/scripts/maps/Route123_BerryMastersHouse.inc
+++ b/data/scripts/maps/Route123_BerryMastersHouse.inc
@@ -10,8 +10,7 @@ Route123_BerryMastersHouse_EventScript_1639E9:: @ 81639E9
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER
- goto_if_eq Route123_BerryMastersHouse_EventScript_163A5A
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER, Route123_BerryMastersHouse_EventScript_163A5A
msgbox Route123_BerryMastersHouse_Text_1C5BC4, 4
random 10
addvar RESULT, 20
@@ -40,8 +39,7 @@ Route123_BerryMastersHouse_EventScript_163A64:: @ 8163A64
lock
faceplayer
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE
- goto_if_eq Route123_BerryMastersHouse_EventScript_163C13
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_FROM_BERRYMASTER_WIFE, Route123_BerryMastersHouse_EventScript_163C13
msgbox Route123_BerryMastersHouse_Text_1C5D24, 4
setvar VAR_SPECIAL_4, 13
call Route123_BerryMastersHouse_EventScript_1A00F3
@@ -86,8 +84,7 @@ Route123_BerryMastersHouse_EventScript_163AF0:: @ 8163AF0
end
Route123_BerryMastersHouse_EventScript_163B1E:: @ 8163B1E
- checkflag FLAG_RECEIVED_SPELON_BERRY
- goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
+ goto_if_set FLAG_RECEIVED_SPELON_BERRY, Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
giveitem_std ITEM_SPELON_BERRY
compare RESULT, 0
@@ -97,8 +94,7 @@ Route123_BerryMastersHouse_EventScript_163B1E:: @ 8163B1E
end
Route123_BerryMastersHouse_EventScript_163B4F:: @ 8163B4F
- checkflag FLAG_RECEIVED_PAMTRE_BERRY
- goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
+ goto_if_set FLAG_RECEIVED_PAMTRE_BERRY, Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
giveitem_std ITEM_PAMTRE_BERRY
compare RESULT, 0
@@ -108,8 +104,7 @@ Route123_BerryMastersHouse_EventScript_163B4F:: @ 8163B4F
end
Route123_BerryMastersHouse_EventScript_163B80:: @ 8163B80
- checkflag FLAG_RECEIVED_WATMEL_BERRY
- goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
+ goto_if_set FLAG_RECEIVED_WATMEL_BERRY, Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
giveitem_std ITEM_WATMEL_BERRY
compare RESULT, 0
@@ -119,8 +114,7 @@ Route123_BerryMastersHouse_EventScript_163B80:: @ 8163B80
end
Route123_BerryMastersHouse_EventScript_163BB1:: @ 8163BB1
- checkflag FLAG_RECEIVED_DURIN_BERRY
- goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
+ goto_if_set FLAG_RECEIVED_DURIN_BERRY, Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
giveitem_std ITEM_DURIN_BERRY
compare RESULT, 0
@@ -130,8 +124,7 @@ Route123_BerryMastersHouse_EventScript_163BB1:: @ 8163BB1
end
Route123_BerryMastersHouse_EventScript_163BE2:: @ 8163BE2
- checkflag FLAG_RECEIVED_BELUE_BERRY
- goto_if_eq Route123_BerryMastersHouse_EventScript_163AF0
+ goto_if_set FLAG_RECEIVED_BELUE_BERRY, Route123_BerryMastersHouse_EventScript_163AF0
msgbox Route123_BerryMastersHouse_Text_1C5DC1, 4
giveitem_std ITEM_BELUE_BERRY
compare RESULT, 0
diff --git a/data/scripts/maps/Route124.inc b/data/scripts/maps/Route124.inc
index 289ea2d29..3f02fc6e3 100644
--- a/data/scripts/maps/Route124.inc
+++ b/data/scripts/maps/Route124.inc
@@ -3,8 +3,7 @@ Route124_MapScripts:: @ 8151DDF
.byte 0
Route124_MapScript1_151DE5:: @ 8151DE5
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, Route124_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, Route124_EventScript_1A02C1
end
Route124_EventScript_151DEF:: @ 8151DEF
diff --git a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
index 4061dcd7e..7bcddfe19 100644
--- a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
+++ b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
@@ -9,8 +9,7 @@ Route124_DivingTreasureHuntersHouse_MapScript1_163E00:: @ 8163E00
Route124_DivingTreasureHuntersHouse_EventScript_163E04:: @ 8163E04
lock
faceplayer
- checkflag FLAG_MET_DIVING_TREASURE_HUNTER
- goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163E20
+ goto_if_set FLAG_MET_DIVING_TREASURE_HUNTER, Route124_DivingTreasureHuntersHouse_EventScript_163E20
msgbox Route124_DivingTreasureHuntersHouse_Text_19F416, 4
setflag FLAG_MET_DIVING_TREASURE_HUNTER
goto Route124_DivingTreasureHuntersHouse_EventScript_163E2E
@@ -32,16 +31,16 @@ Route124_DivingTreasureHuntersHouse_EventScript_163E44:: @ 8163E44
setvar VAR_TEMP_1, 0
checkitem ITEM_RED_SHARD, 1
compare RESULT, 1
- call_if 1, Route124_DivingTreasureHuntersHouse_EventScript_163E8A
+ call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163E8A
checkitem ITEM_YELLOW_SHARD, 1
compare RESULT, 1
- call_if 1, Route124_DivingTreasureHuntersHouse_EventScript_163E90
+ call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163E90
checkitem ITEM_BLUE_SHARD, 1
compare RESULT, 1
- call_if 1, Route124_DivingTreasureHuntersHouse_EventScript_163E96
+ call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163E96
checkitem ITEM_GREEN_SHARD, 1
compare RESULT, 1
- call_if 1, Route124_DivingTreasureHuntersHouse_EventScript_163E9C
+ call_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163E9C
return
Route124_DivingTreasureHuntersHouse_EventScript_163E8A:: @ 8163E8A
@@ -224,30 +223,30 @@ Route124_DivingTreasureHuntersHouse_EventScript_16420F:: @ 816420F
end
Route124_DivingTreasureHuntersHouse_EventScript_164256:: @ 8164256
- setvar VAR_SPECIAL_8, 48
- setvar VAR_SPECIAL_9, 95
+ setvar VAR_SPECIAL_8, ITEM_RED_SHARD
+ setvar VAR_SPECIAL_9, ITEM_FIRE_STONE
goto Route124_DivingTreasureHuntersHouse_EventScript_164292
Route124_DivingTreasureHuntersHouse_EventScript_164265:: @ 8164265
- setvar VAR_SPECIAL_8, 50
- setvar VAR_SPECIAL_9, 96
+ setvar VAR_SPECIAL_8, ITEM_YELLOW_SHARD
+ setvar VAR_SPECIAL_9, ITEM_THUNDER_STONE
goto Route124_DivingTreasureHuntersHouse_EventScript_164292
Route124_DivingTreasureHuntersHouse_EventScript_164274:: @ 8164274
- setvar VAR_SPECIAL_8, 49
- setvar VAR_SPECIAL_9, 97
+ setvar VAR_SPECIAL_8, ITEM_BLUE_SHARD
+ setvar VAR_SPECIAL_9, ITEM_WATER_STONE
goto Route124_DivingTreasureHuntersHouse_EventScript_164292
Route124_DivingTreasureHuntersHouse_EventScript_164283:: @ 8164283
- setvar VAR_SPECIAL_8, 51
- setvar VAR_SPECIAL_9, 98
+ setvar VAR_SPECIAL_8, ITEM_GREEN_SHARD
+ setvar VAR_SPECIAL_9, ITEM_LEAF_STONE
goto Route124_DivingTreasureHuntersHouse_EventScript_164292
Route124_DivingTreasureHuntersHouse_EventScript_164292:: @ 8164292
bufferitemname 0, VAR_SPECIAL_8
bufferitemname 1, VAR_SPECIAL_9
- msgbox Route124_DivingTreasureHuntersHouse_Text_19F5E0, 5
- compare RESULT, 0
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F5E0, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_16431F
checkitemspace VAR_SPECIAL_9, 1
compare RESULT, 1
@@ -265,8 +264,8 @@ Route124_DivingTreasureHuntersHouse_EventScript_1642D3:: @ 81642D3
call Route124_DivingTreasureHuntersHouse_EventScript_163E44
compare VAR_TEMP_1, 0
goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_164333
- msgbox Route124_DivingTreasureHuntersHouse_Text_19F629, 5
- compare RESULT, 1
+ msgbox Route124_DivingTreasureHuntersHouse_Text_19F629, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route124_DivingTreasureHuntersHouse_EventScript_163EB0
goto Route124_DivingTreasureHuntersHouse_EventScript_16431F
end
diff --git a/data/scripts/maps/Route125.inc b/data/scripts/maps/Route125.inc
index 58bf75c51..a1495ac83 100644
--- a/data/scripts/maps/Route125.inc
+++ b/data/scripts/maps/Route125.inc
@@ -3,8 +3,7 @@ Route125_MapScripts:: @ 8151F1E
.byte 0
Route125_MapScript1_151F24:: @ 8151F24
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, Route125_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, Route125_EventScript_1A02C1
end
Route125_EventScript_151F2E:: @ 8151F2E
diff --git a/data/scripts/maps/Route126.inc b/data/scripts/maps/Route126.inc
index a89087994..4a28abfb7 100644
--- a/data/scripts/maps/Route126.inc
+++ b/data/scripts/maps/Route126.inc
@@ -3,8 +3,7 @@ Route126_MapScripts:: @ 8151FFE
.byte 0
Route126_MapScript1_152004:: @ 8152004
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, Route126_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, Route126_EventScript_1A02C1
end
Route126_EventScript_15200E:: @ 815200E
diff --git a/data/scripts/maps/Route127.inc b/data/scripts/maps/Route127.inc
index 5fb122821..7552f7c5d 100644
--- a/data/scripts/maps/Route127.inc
+++ b/data/scripts/maps/Route127.inc
@@ -3,8 +3,7 @@ Route127_MapScripts:: @ 815206A
.byte 0
Route127_MapScript1_152070:: @ 8152070
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, Route127_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, Route127_EventScript_1A02C1
end
Route127_EventScript_15207A:: @ 815207A
diff --git a/data/scripts/maps/Route128.inc b/data/scripts/maps/Route128.inc
index a97a1e93f..6550db979 100644
--- a/data/scripts/maps/Route128.inc
+++ b/data/scripts/maps/Route128.inc
@@ -4,8 +4,7 @@ Route128_MapScripts:: @ 815211B
.byte 0
Route128_MapScript1_152126:: @ 8152126
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, Route128_EventScript_1A02C1
+ call_if_set FLAG_SYS_WEATHER_CTRL, Route128_EventScript_1A02C1
call Route128_EventScript_1A0196
end
diff --git a/data/scripts/maps/Route131.inc b/data/scripts/maps/Route131.inc
index efa26ecd2..ffd204bb9 100644
--- a/data/scripts/maps/Route131.inc
+++ b/data/scripts/maps/Route131.inc
@@ -3,8 +3,7 @@ Route131_MapScripts:: @ 815243E
.byte 0
Route131_MapScript1_152444:: @ 8152444
- checkflag FLAG_SYS_GAME_CLEAR
- call_if 1, Route131_EventScript_15244E
+ call_if_set FLAG_SYS_GAME_CLEAR, Route131_EventScript_15244E
end
Route131_EventScript_15244E:: @ 815244E
diff --git a/data/scripts/maps/RustboroCity.inc b/data/scripts/maps/RustboroCity.inc
index 47d216d9f..415138d67 100644
--- a/data/scripts/maps/RustboroCity.inc
+++ b/data/scripts/maps/RustboroCity.inc
@@ -11,8 +11,7 @@ RustboroCity_MapScript1_14C378:: @ 814C378
RustboroCity_EventScript_14C386:: @ 814C386
lock
faceplayer
- checkflag FLAG_DEVON_GOODS_STOLEN
- goto_if_eq RustboroCity_EventScript_14C39B
+ goto_if_set FLAG_DEVON_GOODS_STOLEN, RustboroCity_EventScript_14C39B
msgbox RustboroCity_Text_16689D, 4
release
end
@@ -36,8 +35,7 @@ RustboroCity_EventScript_14C3B1:: @ 814C3B1
RustboroCity_EventScript_14C3BA:: @ 814C3BA
lock
faceplayer
- checkflag FLAG_BADGE01_GET
- goto_if_eq RustboroCity_EventScript_14C3CF
+ goto_if_set FLAG_BADGE01_GET, RustboroCity_EventScript_14C3CF
msgbox RustboroCity_Text_16696D, 4
release
end
@@ -50,8 +48,7 @@ RustboroCity_EventScript_14C3CF:: @ 814C3CF
RustboroCity_EventScript_14C3D9:: @ 814C3D9
lock
faceplayer
- checkflag FLAG_RECEIVED_POKENAV
- goto_if_eq RustboroCity_EventScript_14C3EE
+ goto_if_set FLAG_RECEIVED_POKENAV, RustboroCity_EventScript_14C3EE
msgbox RustboroCity_Text_166B86, 4
release
end
@@ -326,8 +323,7 @@ RustboroCity_Movement_14C5F7:: @ 814C5F7
RustboroCity_EventScript_14C5FF:: @ 814C5FF
lock
faceplayer
- checkflag FLAG_RECOVERED_DEVON_GOODS
- goto_if_eq RustboroCity_EventScript_14C614
+ goto_if_set FLAG_RECOVERED_DEVON_GOODS, RustboroCity_EventScript_14C614
msgbox RustboroCity_Text_166F6B, 4
release
end
@@ -364,13 +360,13 @@ RustboroCity_EventScript_14C644:: @ 814C644
RustboroCity_EventScript_14C650:: @ 814C650
compare VAR_TEMP_1, 0
- call_if 1, RustboroCity_EventScript_14C691
+ call_if_eq RustboroCity_EventScript_14C691
compare VAR_TEMP_1, 1
- call_if 1, RustboroCity_EventScript_14C6BD
+ call_if_eq RustboroCity_EventScript_14C6BD
compare VAR_TEMP_1, 2
- call_if 1, RustboroCity_EventScript_14C6E9
+ call_if_eq RustboroCity_EventScript_14C6E9
compare VAR_TEMP_1, 3
- call_if 1, RustboroCity_EventScript_14C715
+ call_if_eq RustboroCity_EventScript_14C715
setflag FLAG_UNKNOWN_9F
setvar VAR_RUSTBORO_STATE, 3
moveobjectoffscreen 9
@@ -381,7 +377,7 @@ RustboroCity_EventScript_14C650:: @ 814C650
RustboroCity_EventScript_14C691:: @ 814C691
applymovement 9, RustboroCity_Movement_1A0841
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -393,7 +389,7 @@ RustboroCity_EventScript_14C691:: @ 814C691
RustboroCity_EventScript_14C6BD:: @ 814C6BD
applymovement 9, RustboroCity_Movement_1A083F
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -405,7 +401,7 @@ RustboroCity_EventScript_14C6BD:: @ 814C6BD
RustboroCity_EventScript_14C6E9:: @ 814C6E9
applymovement 9, RustboroCity_Movement_1A0845
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -417,7 +413,7 @@ RustboroCity_EventScript_14C6E9:: @ 814C6E9
RustboroCity_EventScript_14C715:: @ 814C715
applymovement 9, RustboroCity_Movement_1A0845
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -458,19 +454,19 @@ RustboroCity_EventScript_14C771:: @ 814C771
RustboroCity_EventScript_14C77D:: @ 814C77D
compare VAR_TEMP_1, 0
- call_if 1, RustboroCity_EventScript_14C7FE
+ call_if_eq RustboroCity_EventScript_14C7FE
compare VAR_TEMP_1, 1
- call_if 1, RustboroCity_EventScript_14C82A
+ call_if_eq RustboroCity_EventScript_14C82A
compare VAR_TEMP_1, 2
- call_if 1, RustboroCity_EventScript_14C856
+ call_if_eq RustboroCity_EventScript_14C856
compare VAR_TEMP_1, 3
- call_if 1, RustboroCity_EventScript_14C882
+ call_if_eq RustboroCity_EventScript_14C882
compare VAR_TEMP_1, 4
- call_if 1, RustboroCity_EventScript_14C8B8
+ call_if_eq RustboroCity_EventScript_14C8B8
msgbox RustboroCity_Text_166FB4, 4
giveitem_std ITEM_GREAT_BALL
compare RESULT, 0
- call_if 1, RustboroCity_EventScript_14C7F5
+ call_if_eq RustboroCity_EventScript_14C7F5
msgbox RustboroCity_Text_16707F, 4
closemessage
setflag FLAG_RETURNED_DEVON_GOODS
@@ -489,7 +485,7 @@ RustboroCity_EventScript_14C7F5:: @ 814C7F5
RustboroCity_EventScript_14C7FE:: @ 814C7FE
applymovement 9, RustboroCity_Movement_1A0841
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -501,7 +497,7 @@ RustboroCity_EventScript_14C7FE:: @ 814C7FE
RustboroCity_EventScript_14C82A:: @ 814C82A
applymovement 9, RustboroCity_Movement_1A0843
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -513,7 +509,7 @@ RustboroCity_EventScript_14C82A:: @ 814C82A
RustboroCity_EventScript_14C856:: @ 814C856
applymovement 9, RustboroCity_Movement_1A0845
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -525,7 +521,7 @@ RustboroCity_EventScript_14C856:: @ 814C856
RustboroCity_EventScript_14C882:: @ 814C882
applymovement 9, RustboroCity_Movement_1A0845
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -539,7 +535,7 @@ RustboroCity_EventScript_14C882:: @ 814C882
RustboroCity_EventScript_14C8B8:: @ 814C8B8
applymovement 9, RustboroCity_Movement_1A083F
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 9, RustboroCity_Movement_1A0833
waitmovement 0
applymovement 9, RustboroCity_Movement_1A0835
@@ -549,8 +545,7 @@ RustboroCity_EventScript_14C8B8:: @ 814C8B8
RustboroCity_EventScript_14C8DA:: @ 814C8DA
lock
faceplayer
- checkflag FLAG_MET_RIVAL_RUSTBORO
- goto_if_eq RustboroCity_EventScript_14C917
+ goto_if_set FLAG_MET_RIVAL_RUSTBORO, RustboroCity_EventScript_14C917
checkplayergender
compare RESULT, 0
goto_if_eq RustboroCity_EventScript_14C8FD
diff --git a/data/scripts/maps/RustboroCity_CuttersHouse.inc b/data/scripts/maps/RustboroCity_CuttersHouse.inc
index 3371005c0..b43e0aafe 100644
--- a/data/scripts/maps/RustboroCity_CuttersHouse.inc
+++ b/data/scripts/maps/RustboroCity_CuttersHouse.inc
@@ -4,10 +4,9 @@ RustboroCity_CuttersHouse_MapScripts:: @ 8157D26
RustboroCity_CuttersHouse_EventScript_157D27:: @ 8157D27
lock
faceplayer
- checkflag FLAG_RECEIVED_HM01
- goto_if_eq RustboroCity_CuttersHouse_EventScript_157D53
+ goto_if_set FLAG_RECEIVED_HM01, RustboroCity_CuttersHouse_EventScript_157D53
msgbox RustboroCity_CuttersHouse_Text_18509C, 4
- giveitem_std ITEM_HM01
+ giveitem_std ITEM_HM01_CUT
setflag FLAG_RECEIVED_HM01
msgbox RustboroCity_CuttersHouse_Text_1851C9, 4
release
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_1F.inc b/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
index f9e902763..7b56c72a2 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
@@ -3,8 +3,7 @@ RustboroCity_DevonCorp_1F_MapScripts:: @ 8157406
.byte 0
RustboroCity_DevonCorp_1F_MapScript1_15740C:: @ 815740C
- checkflag FLAG_RETURNED_DEVON_GOODS
- call_if 0, RustboroCity_DevonCorp_1F_EventScript_157416
+ call_if_unset FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_157416
end
RustboroCity_DevonCorp_1F_EventScript_157416:: @ 8157416
@@ -15,10 +14,8 @@ RustboroCity_DevonCorp_1F_EventScript_157416:: @ 8157416
RustboroCity_DevonCorp_1F_EventScript_157422:: @ 8157422
lock
faceplayer
- checkflag FLAG_RETURNED_DEVON_GOODS
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_15744A
- checkflag FLAG_DEVON_GOODS_STOLEN
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_157440
+ goto_if_set FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_15744A
+ goto_if_set FLAG_DEVON_GOODS_STOLEN, RustboroCity_DevonCorp_1F_EventScript_157440
msgbox RustboroCity_DevonCorp_1F_Text_1829A4, 4
release
end
@@ -36,12 +33,9 @@ RustboroCity_DevonCorp_1F_EventScript_15744A:: @ 815744A
RustboroCity_DevonCorp_1F_EventScript_157454:: @ 8157454
lock
faceplayer
- checkflag FLAG_RETURNED_DEVON_GOODS
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_15747B
- checkflag FLAG_RECOVERED_DEVON_GOODS
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_157485
- checkflag FLAG_DEVON_GOODS_STOLEN
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_157485
+ goto_if_set FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_15747B
+ goto_if_set FLAG_RECOVERED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_157485
+ goto_if_set FLAG_DEVON_GOODS_STOLEN, RustboroCity_DevonCorp_1F_EventScript_157485
msgbox RustboroCity_DevonCorp_1F_Text_182AF0, 4
release
end
@@ -59,12 +53,9 @@ RustboroCity_DevonCorp_1F_EventScript_157485:: @ 8157485
RustboroCity_DevonCorp_1F_EventScript_15748F:: @ 815748F
lock
faceplayer
- checkflag FLAG_RETURNED_DEVON_GOODS
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_1574B6
- checkflag FLAG_RECOVERED_DEVON_GOODS
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_1574C0
- checkflag FLAG_DEVON_GOODS_STOLEN
- goto_if_eq RustboroCity_DevonCorp_1F_EventScript_1574C0
+ goto_if_set FLAG_RETURNED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_1574B6
+ goto_if_set FLAG_RECOVERED_DEVON_GOODS, RustboroCity_DevonCorp_1F_EventScript_1574C0
+ goto_if_set FLAG_DEVON_GOODS_STOLEN, RustboroCity_DevonCorp_1F_EventScript_1574C0
msgbox RustboroCity_DevonCorp_1F_Text_1828EE, 4
release
end
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_2F.inc b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
index c997935cc..b7b36dd6d 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
@@ -4,7 +4,7 @@ RustboroCity_DevonCorp_2F_MapScripts:: @ 81574CA
RustboroCity_DevonCorp_2F_MapScript1_1574D0:: @ 81574D0
compare VAR_FOSSIL_RESURRECTION_STATE, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1574DC
end
RustboroCity_DevonCorp_2F_EventScript_1574DC:: @ 81574DC
@@ -15,7 +15,7 @@ RustboroCity_DevonCorp_2F_EventScript_1574E2:: @ 81574E2
lock
faceplayer
compare VAR_FOSSIL_RESURRECTION_STATE, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1574DC
msgbox RustboroCity_DevonCorp_2F_Text_182B81, 4
release
end
@@ -24,9 +24,8 @@ RustboroCity_DevonCorp_2F_EventScript_1574F9:: @ 81574F9
lock
faceplayer
compare VAR_FOSSIL_RESURRECTION_STATE, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
- checkflag FLAG_MET_DEVON_EMPLOYEE
- goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157519
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1574DC
+ goto_if_set FLAG_MET_DEVON_EMPLOYEE, RustboroCity_DevonCorp_2F_EventScript_157519
msgbox RustboroCity_DevonCorp_2F_Text_182BD8, 4
release
end
@@ -40,9 +39,8 @@ RustboroCity_DevonCorp_2F_EventScript_157523:: @ 8157523
lock
faceplayer
compare VAR_FOSSIL_RESURRECTION_STATE, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
- checkflag FLAG_RECEIVED_POKENAV
- goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157543
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1574DC
+ goto_if_set FLAG_RECEIVED_POKENAV, RustboroCity_DevonCorp_2F_EventScript_157543
msgbox RustboroCity_DevonCorp_2F_Text_182D2A, 4
release
end
@@ -56,7 +54,7 @@ RustboroCity_DevonCorp_2F_EventScript_15754D:: @ 815754D
lock
faceplayer
compare VAR_FOSSIL_RESURRECTION_STATE, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1574DC
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1574DC
msgbox RustboroCity_DevonCorp_2F_Text_182E6B, 4
release
end
@@ -80,13 +78,13 @@ RustboroCity_DevonCorp_2F_EventScript_157564:: @ 8157564
RustboroCity_DevonCorp_2F_EventScript_1575A6:: @ 81575A6
closemessage
- playse 21
+ playse SE_PIN
applymovement 5, RustboroCity_DevonCorp_2F_Movement_1A0833
waitmovement 0
applymovement 5, RustboroCity_DevonCorp_2F_Movement_1A0835
waitmovement 0
- msgbox RustboroCity_DevonCorp_2F_Text_182F35, 5
- compare RESULT, 0
+ msgbox RustboroCity_DevonCorp_2F_Text_182F35, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157636
bufferitemname 0, ITEM_ROOT_FOSSIL
msgbox RustboroCity_DevonCorp_2F_Text_183023, 4
@@ -98,13 +96,13 @@ RustboroCity_DevonCorp_2F_EventScript_1575A6:: @ 81575A6
RustboroCity_DevonCorp_2F_EventScript_1575EE:: @ 81575EE
closemessage
- playse 21
+ playse SE_PIN
applymovement 5, RustboroCity_DevonCorp_2F_Movement_1A0833
waitmovement 0
applymovement 5, RustboroCity_DevonCorp_2F_Movement_1A0835
waitmovement 0
- msgbox RustboroCity_DevonCorp_2F_Text_182F35, 5
- compare RESULT, 0
+ msgbox RustboroCity_DevonCorp_2F_Text_182F35, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq RustboroCity_DevonCorp_2F_EventScript_157636
bufferitemname 0, ITEM_CLAW_FOSSIL
msgbox RustboroCity_DevonCorp_2F_Text_183023, 4
@@ -140,14 +138,14 @@ RustboroCity_DevonCorp_2F_EventScript_157661:: @ 8157661
copyvar VAR_SPECIAL_4, RESULT
setvar VAR_FOSSIL_RESURRECTION_STATE, 0
setflag FLAG_RECEIVED_FOSSIL_MON
- playfanfare 370
+ playfanfare BGM_FANFA4
message RustboroCity_DevonCorp_2F_Text_18319E
waitfanfare
waitmessage
givemon SPECIES_LILEEP, 20, ITEM_NONE, 0x0, 0x0, 0
- msgbox RustboroCity_DevonCorp_2F_Text_1A1102, 5
- compare RESULT, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1A0678
+ msgbox RustboroCity_DevonCorp_2F_Text_1A1102, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1A0678
release
end
@@ -160,14 +158,14 @@ RustboroCity_DevonCorp_2F_EventScript_1576B4:: @ 81576B4
copyvar VAR_SPECIAL_4, RESULT
setvar VAR_FOSSIL_RESURRECTION_STATE, 0
setflag FLAG_RECEIVED_FOSSIL_MON
- playfanfare 370
+ playfanfare BGM_FANFA4
message RustboroCity_DevonCorp_2F_Text_18319E
waitfanfare
waitmessage
givemon SPECIES_ANORITH, 20, ITEM_NONE, 0x0, 0x0, 0
- msgbox RustboroCity_DevonCorp_2F_Text_1A1102, 5
- compare RESULT, 1
- call_if 1, RustboroCity_DevonCorp_2F_EventScript_1A0678
+ msgbox RustboroCity_DevonCorp_2F_Text_1A1102, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq RustboroCity_DevonCorp_2F_EventScript_1A0678
release
end
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_3F.inc b/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
index af5d5d6ee..0b71effee 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
+++ b/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
@@ -6,7 +6,7 @@ RustboroCity_DevonCorp_3F_MapScripts:: @ 8157711
RustboroCity_DevonCorp_3F_MapScript1_157721:: @ 8157721
compare VAR_DEVON_CORP_3F_STATE, 0
- call_if 1, RustboroCity_DevonCorp_3F_EventScript_15772D
+ call_if_eq RustboroCity_DevonCorp_3F_EventScript_15772D
end
RustboroCity_DevonCorp_3F_EventScript_15772D:: @ 815772D
@@ -37,7 +37,7 @@ RustboroCity_DevonCorp_3F_EventScript_157752:: @ 8157752
waitmovement 0
msgbox RustboroCity_DevonCorp_3F_Text_183903, 4
closemessage
- playbgm 420, 0
+ playbgm BGM_TSURETEK, FALSE
applymovement 2, RustboroCity_DevonCorp_3F_Movement_157803
applymovement 255, RustboroCity_DevonCorp_3F_Movement_157827
waitmovement 0
@@ -50,7 +50,7 @@ RustboroCity_DevonCorp_3F_EventScript_157752:: @ 8157752
msgbox RustboroCity_DevonCorp_3F_Text_18320B, 4
giveitem_std ITEM_LETTER
msgbox RustboroCity_DevonCorp_3F_Text_18337E, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
message RustboroCity_DevonCorp_3F_Text_183422
waitfanfare
waitmessage
@@ -146,10 +146,8 @@ RustboroCity_DevonCorp_3F_Movement_157835:: @ 8157835
RustboroCity_DevonCorp_3F_EventScript_15783B:: @ 815783B
lock
faceplayer
- checkflag FLAG_RECEIVED_EXP_SHARE
- goto_if_eq RustboroCity_DevonCorp_3F_EventScript_15789B
- checkflag FLAG_DELIVERED_STEVEN_LETTER
- goto_if_eq RustboroCity_DevonCorp_3F_EventScript_157864
+ goto_if_set FLAG_RECEIVED_EXP_SHARE, RustboroCity_DevonCorp_3F_EventScript_15789B
+ goto_if_set FLAG_DELIVERED_STEVEN_LETTER, RustboroCity_DevonCorp_3F_EventScript_157864
msgbox RustboroCity_DevonCorp_3F_Text_18351E, 4
closemessage
applymovement LAST_TALKED, RustboroCity_DevonCorp_3F_Movement_1A083D
@@ -181,8 +179,7 @@ RustboroCity_DevonCorp_3F_EventScript_15789B:: @ 815789B
RustboroCity_DevonCorp_3F_EventScript_1578B0:: @ 81578B0
lock
faceplayer
- checkflag FLAG_RECEIVED_REPEAT_BALL
- goto_if_eq RustboroCity_DevonCorp_3F_EventScript_1578C5
+ goto_if_set FLAG_RECEIVED_REPEAT_BALL, RustboroCity_DevonCorp_3F_EventScript_1578C5
msgbox RustboroCity_DevonCorp_3F_Text_18395C, 4
release
end
diff --git a/data/scripts/maps/RustboroCity_Flat2_2F.inc b/data/scripts/maps/RustboroCity_Flat2_2F.inc
index 3a2242c7a..5ed9ac0ef 100644
--- a/data/scripts/maps/RustboroCity_Flat2_2F.inc
+++ b/data/scripts/maps/RustboroCity_Flat2_2F.inc
@@ -8,8 +8,7 @@ RustboroCity_Flat2_2F_EventScript_157D97:: @ 8157D97
RustboroCity_Flat2_2F_EventScript_157DA0:: @ 8157DA0
lock
faceplayer
- checkflag FLAG_RECEIVED_PREMIER_BALL_RUSTBORO
- goto_if_eq RustboroCity_Flat2_2F_EventScript_157DCF
+ goto_if_set FLAG_RECEIVED_PREMIER_BALL_RUSTBORO, RustboroCity_Flat2_2F_EventScript_157DCF
msgbox RustboroCity_Flat2_2F_Text_185461, 4
giveitem_std ITEM_PREMIER_BALL
compare RESULT, 0
diff --git a/data/scripts/maps/RustboroCity_Gym.inc b/data/scripts/maps/RustboroCity_Gym.inc
index 1e2256b47..307617e50 100644
--- a/data/scripts/maps/RustboroCity_Gym.inc
+++ b/data/scripts/maps/RustboroCity_Gym.inc
@@ -3,8 +3,7 @@ RustboroCity_Gym_MapScripts:: @ 81578D8
RustboroCity_Gym_EventScript_1578D9:: @ 81578D9
trainerbattle 1, OPPONENT_ROXANNE, 0, RustboroCity_Gym_Text_183EE5, RustboroCity_Gym_Text_183FC4, RustboroCity_Gym_EventScript_1578FE
- checkflag FLAG_RECEIVED_TM39
- goto_if 0, RustboroCity_Gym_EventScript_15793C
+ goto_if_unset FLAG_RECEIVED_TM39, RustboroCity_Gym_EventScript_15793C
msgbox RustboroCity_Gym_Text_184252, 4
release
end
@@ -21,12 +20,12 @@ RustboroCity_Gym_EventScript_1578FE:: @ 81578FE
setvar VAR_SPECIAL_8, 1
call RustboroCity_Gym_EventScript_1A01C0
compare VAR_PETALBURG_GYM_STATE, 6
- call_if 1, RustboroCity_Gym_EventScript_1A00FB
+ call_if_eq RustboroCity_Gym_EventScript_1A00FB
goto RustboroCity_Gym_EventScript_15793C
end
RustboroCity_Gym_EventScript_15793C:: @ 815793C
- giveitem_std ITEM_TM39
+ giveitem_std ITEM_TM39_ROCK_TOMB
compare RESULT, 0
goto_if_eq RustboroCity_Gym_EventScript_1A029B
setflag FLAG_RECEIVED_TM39
@@ -47,8 +46,7 @@ RustboroCity_Gym_EventScript_157977:: @ 8157977
RustboroCity_Gym_EventScript_15798E:: @ 815798E
lock
faceplayer
- checkflag FLAG_DEFEATED_RUSTBORO_GYM
- goto_if_eq RustboroCity_Gym_EventScript_1579A3
+ goto_if_set FLAG_DEFEATED_RUSTBORO_GYM, RustboroCity_Gym_EventScript_1579A3
msgbox RustboroCity_Gym_Text_183A4B, 4
release
end
@@ -60,15 +58,13 @@ RustboroCity_Gym_EventScript_1579A3:: @ 81579A3
RustboroCity_Gym_EventScript_1579AD:: @ 81579AD
lockall
- checkflag FLAG_BADGE01_GET
- goto_if_eq RustboroCity_Gym_EventScript_1579CD
+ goto_if_set FLAG_BADGE01_GET, RustboroCity_Gym_EventScript_1579CD
goto RustboroCity_Gym_EventScript_1579D7
end
RustboroCity_Gym_EventScript_1579BD:: @ 81579BD
lockall
- checkflag FLAG_BADGE01_GET
- goto_if_eq RustboroCity_Gym_EventScript_1579CD
+ goto_if_set FLAG_BADGE01_GET, RustboroCity_Gym_EventScript_1579CD
goto RustboroCity_Gym_EventScript_1579D7
end
diff --git a/data/scripts/maps/RustboroCity_House1.inc b/data/scripts/maps/RustboroCity_House1.inc
index 2e0d106bb..abbac505b 100644
--- a/data/scripts/maps/RustboroCity_House1.inc
+++ b/data/scripts/maps/RustboroCity_House1.inc
@@ -4,14 +4,13 @@ RustboroCity_House1_MapScripts:: @ 8157C7C
RustboroCity_House1_EventScript_157C7D:: @ 8157C7D
lock
faceplayer
- checkflag FLAG_RUSTBORO_NPC_TRADE_COMPLETED
- goto_if_eq RustboroCity_House1_EventScript_157D13
+ goto_if_set FLAG_RUSTBORO_NPC_TRADE_COMPLETED, RustboroCity_House1_EventScript_157D13
setvar VAR_SPECIAL_8, 0
copyvar VAR_SPECIAL_4, VAR_SPECIAL_8
specialvar RESULT, GetInGameTradeSpeciesInfo
copyvar VAR_SPECIAL_9, RESULT
- msgbox RustboroCity_House1_Text_184EBA, 5
- compare RESULT, 0
+ msgbox RustboroCity_House1_Text_184EBA, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq RustboroCity_House1_EventScript_157CFB
special SelectMonForNPCTrade
waitstate
@@ -22,7 +21,7 @@ RustboroCity_House1_EventScript_157C7D:: @ 8157C7D
specialvar RESULT, GetTradeSpecies
copyvar VAR_SPECIAL_B, RESULT
compare RESULT, VAR_SPECIAL_9
- goto_if 5, RustboroCity_House1_EventScript_157D05
+ goto_if_ne RustboroCity_House1_EventScript_157D05
copyvar VAR_SPECIAL_4, VAR_SPECIAL_8
copyvar VAR_SPECIAL_5, VAR_SPECIAL_A
special CreateInGameTradePokemon
diff --git a/data/scripts/maps/RustboroCity_Mart.inc b/data/scripts/maps/RustboroCity_Mart.inc
index 69f977e79..c8e3f3a43 100644
--- a/data/scripts/maps/RustboroCity_Mart.inc
+++ b/data/scripts/maps/RustboroCity_Mart.inc
@@ -6,10 +6,8 @@ RustboroCity_Mart_EventScript_157BD4:: @ 8157BD4
faceplayer
message RustboroCity_Mart_Text_1A0BE4
waitmessage
- checkflag FLAG_MET_DEVON_EMPLOYEE
- goto_if 0, RustboroCity_Mart_EventScript_157BEF
- checkflag FLAG_MET_DEVON_EMPLOYEE
- goto_if_eq RustboroCity_Mart_EventScript_157C18
+ goto_if_unset FLAG_MET_DEVON_EMPLOYEE, RustboroCity_Mart_EventScript_157BEF
+ goto_if_set FLAG_MET_DEVON_EMPLOYEE, RustboroCity_Mart_EventScript_157C18
end
RustboroCity_Mart_EventScript_157BEF:: @ 8157BEF
diff --git a/data/scripts/maps/RustboroCity_PokemonSchool.inc b/data/scripts/maps/RustboroCity_PokemonSchool.inc
index 21fdf3d3b..155df8de5 100644
--- a/data/scripts/maps/RustboroCity_PokemonSchool.inc
+++ b/data/scripts/maps/RustboroCity_PokemonSchool.inc
@@ -77,12 +77,11 @@ RustboroCity_PokemonSchool_EventScript_157AC5:: @ 8157AC5
RustboroCity_PokemonSchool_EventScript_157ACE:: @ 8157ACE
lock
faceplayer
- checkflag FLAG_RECEIVED_QUICK_CLAW
- goto_if_eq RustboroCity_PokemonSchool_EventScript_157B34
+ goto_if_set FLAG_RECEIVED_QUICK_CLAW, RustboroCity_PokemonSchool_EventScript_157B34
compare FACING, 4
- call_if 1, RustboroCity_PokemonSchool_EventScript_157B1E
+ call_if_eq RustboroCity_PokemonSchool_EventScript_157B1E
compare FACING, 3
- call_if 1, RustboroCity_PokemonSchool_EventScript_157B29
+ call_if_eq RustboroCity_PokemonSchool_EventScript_157B29
msgbox RustboroCity_PokemonSchool_Text_1846A2, 4
giveitem_std ITEM_QUICK_CLAW
compare RESULT, 0
diff --git a/data/scripts/maps/RusturfTunnel.inc b/data/scripts/maps/RusturfTunnel.inc
index d50e7cec0..06f2dfa82 100644
--- a/data/scripts/maps/RusturfTunnel.inc
+++ b/data/scripts/maps/RusturfTunnel.inc
@@ -11,7 +11,7 @@ RusturfTunnel_MapScript2_15C750:: @ 815C750
RusturfTunnel_MapScript1_15C762:: @ 815C762
call RusturfTunnel_EventScript_1A0196
compare VAR_RUSTURF_TUNNEL_STATE, 2
- call_if 1, RusturfTunnel_EventScript_15C773
+ call_if_eq RusturfTunnel_EventScript_15C773
end
RusturfTunnel_EventScript_15C773:: @ 815C773
@@ -32,8 +32,7 @@ RusturfTunnel_EventScript_15C782:: @ 815C782
RusturfTunnel_EventScript_15C799:: @ 815C799
lock
faceplayer
- checkflag FLAG_TEMP_1
- goto_if_eq RusturfTunnel_EventScript_15C7BC
+ goto_if_set FLAG_TEMP_1, RusturfTunnel_EventScript_15C7BC
setflag FLAG_TEMP_1
msgbox RusturfTunnel_Text_1944C5, 4
closemessage
@@ -53,35 +52,35 @@ RusturfTunnel_EventScript_15C7BC:: @ 815C7BC
RusturfTunnel_EventScript_15C7D1:: @ 815C7D1
lockall
compare VAR_TEMP_1, 1
- call_if 1, RusturfTunnel_EventScript_15C8CA
+ call_if_eq RusturfTunnel_EventScript_15C8CA
compare VAR_TEMP_1, 2
- call_if 1, RusturfTunnel_EventScript_15C8DF
+ call_if_eq RusturfTunnel_EventScript_15C8DF
compare VAR_TEMP_1, 3
- call_if 1, RusturfTunnel_EventScript_15C8EA
+ call_if_eq RusturfTunnel_EventScript_15C8EA
call RusturfTunnel_EventScript_15C92D
msgbox RusturfTunnel_Text_19461D, 4
compare VAR_TEMP_1, 2
- call_if 1, RusturfTunnel_EventScript_15C8EB
+ call_if_eq RusturfTunnel_EventScript_15C8EB
compare VAR_TEMP_1, 3
- call_if 1, RusturfTunnel_EventScript_15C8EB
- giveitem_std ITEM_HM04
+ call_if_eq RusturfTunnel_EventScript_15C8EB
+ giveitem_std ITEM_HM04_STRENGTH
setflag FLAG_RECEIVED_HM04
msgbox RusturfTunnel_Text_194693, 4
closemessage
compare VAR_TEMP_1, 1
- call_if 1, RusturfTunnel_EventScript_15C880
+ call_if_eq RusturfTunnel_EventScript_15C880
compare VAR_TEMP_1, 2
- call_if 1, RusturfTunnel_EventScript_15C892
+ call_if_eq RusturfTunnel_EventScript_15C892
compare VAR_TEMP_1, 3
- call_if 1, RusturfTunnel_EventScript_15C8AE
+ call_if_eq RusturfTunnel_EventScript_15C8AE
msgbox RusturfTunnel_Text_194706, 4
closemessage
compare VAR_TEMP_1, 1
- call_if 1, RusturfTunnel_EventScript_15C8F7
+ call_if_eq RusturfTunnel_EventScript_15C8F7
compare VAR_TEMP_1, 2
- call_if 1, RusturfTunnel_EventScript_15C909
+ call_if_eq RusturfTunnel_EventScript_15C909
compare VAR_TEMP_1, 3
- call_if 1, RusturfTunnel_EventScript_15C91B
+ call_if_eq RusturfTunnel_EventScript_15C91B
call RusturfTunnel_EventScript_1A0442
releaseall
end
@@ -148,7 +147,7 @@ RusturfTunnel_EventScript_15C91B:: @ 815C91B
return
RusturfTunnel_EventScript_15C92D:: @ 815C92D
- playse 21
+ playse SE_PIN
applymovement 1, RusturfTunnel_Movement_1A0833
waitmovement 0
applymovement 1, RusturfTunnel_Movement_1A0835
@@ -309,7 +308,7 @@ RusturfTunnel_EventScript_15C9D7:: @ 815C9D7
RusturfTunnel_EventScript_15C9EA:: @ 815C9EA
lock
faceplayer
- playbgm BGM_EVIL_TEAM, 0
+ playbgm BGM_EVIL_TEAM, FALSE
msgbox RusturfTunnel_Text_19419B, 4
trainerbattle 3, OPPONENT_RUSTURF_TUNNEL_GRUNT, 0, RusturfTunnel_Text_194243
msgbox RusturfTunnel_Text_194274, 4
diff --git a/data/scripts/maps/SSTidalCorridor.inc b/data/scripts/maps/SSTidalCorridor.inc
index fc018a7b9..7bc5a7fdd 100644
--- a/data/scripts/maps/SSTidalCorridor.inc
+++ b/data/scripts/maps/SSTidalCorridor.inc
@@ -13,7 +13,7 @@ SSTidalCorridor_EventScript_15FCBC:: @ 815FCBC
special SetSSTidalFlag
setvar VAR_PORTHOLE_STATE, 2
lockall
- playse 73
+ playse SE_PINPON
msgbox SSTidalCorridor_Text_199007, 4
releaseall
end
@@ -21,7 +21,7 @@ SSTidalCorridor_EventScript_15FCBC:: @ 815FCBC
SSTidalCorridor_EventScript_15FCD2:: @ 815FCD2
setvar VAR_PORTHOLE_STATE, 6
lockall
- playse 73
+ playse SE_PINPON
msgbox SSTidalCorridor_Text_199088, 4
releaseall
end
@@ -29,14 +29,14 @@ SSTidalCorridor_EventScript_15FCD2:: @ 815FCD2
SSTidalRooms_EventScript_15FCE5:: @ 815FCE5
special SetSSTidalFlag
setvar VAR_PORTHOLE_STATE, 7
- playse 73
+ playse SE_PINPON
msgbox SSTidalRooms_Text_199007, 4
return
SSTidalRooms_EventScript_15FCF9:: @ 815FCF9
special ResetSSTidalFlag
setvar VAR_PORTHOLE_STATE, 4
- playse 73
+ playse SE_PINPON
msgbox SSTidalRooms_Text_1990F8, 4
return
@@ -51,7 +51,7 @@ SSTidalCorridor_EventScript_15FD24:: @ 815FD24
special ResetSSTidalFlag
setvar VAR_PORTHOLE_STATE, 3
lockall
- playse 73
+ playse SE_PINPON
msgbox SSTidalCorridor_Text_199088, 4
releaseall
end
@@ -60,7 +60,7 @@ SSTidalCorridor_EventScript_15FD3A:: @ 815FD3A
special ResetSSTidalFlag
setvar VAR_PORTHOLE_STATE, 8
lockall
- playse 73
+ playse SE_PINPON
msgbox SSTidalCorridor_Text_1990B4, 4
releaseall
end
@@ -68,7 +68,7 @@ SSTidalCorridor_EventScript_15FD3A:: @ 815FD3A
SSTidalRooms_EventScript_15FD50:: @ 815FD50
special ResetSSTidalFlag
setvar VAR_PORTHOLE_STATE, 8
- playse 73
+ playse SE_PINPON
msgbox SSTidalRooms_Text_1990B4, 4
return
@@ -124,8 +124,7 @@ SSTidalCorridor_EventScript_15FDD6:: @ 815FDD6
SSTidalCorridor_EventScript_15FDF8:: @ 815FDF8
setrespawn 8
msgbox SSTidalCorridor_Text_1991F4, 4
- checkflag FLAG_RECEIVED_TM49
- call_if 1, SSTidalCorridor_EventScript_15FE36
+ call_if_set FLAG_RECEIVED_TM49, SSTidalCorridor_EventScript_15FE36
warp MAP_LILYCOVE_CITY_HARBOR, 255, 8, 11
waitstate
release
@@ -134,8 +133,7 @@ SSTidalCorridor_EventScript_15FDF8:: @ 815FDF8
SSTidalCorridor_EventScript_15FE17:: @ 815FE17
setrespawn 4
msgbox SSTidalCorridor_Text_1991F4, 4
- checkflag FLAG_RECEIVED_TM49
- call_if 1, SSTidalCorridor_EventScript_15FE36
+ call_if_set FLAG_RECEIVED_TM49, SSTidalCorridor_EventScript_15FE36
warp MAP_SLATEPORT_CITY_HARBOR, 255, 8, 11
waitstate
release
@@ -163,8 +161,7 @@ SSTidalCorridor_EventScript_15FE5B:: @ 815FE5B
SSTidalCorridor_EventScript_15FE60:: @ 815FE60
lock
faceplayer
- checkflag FLAG_DEFEATED_SS_TIDAL_TRAINERS
- goto_if_eq SSTidalCorridor_EventScript_15FE7A
+ goto_if_set FLAG_DEFEATED_SS_TIDAL_TRAINERS, SSTidalCorridor_EventScript_15FE7A
call SSTidalCorridor_EventScript_15FE84
msgbox SSTidalCorridor_Text_199203, 4
release
@@ -176,22 +173,14 @@ SSTidalCorridor_EventScript_15FE7A:: @ 815FE7A
end
SSTidalCorridor_EventScript_15FE84:: @ 815FE84
- checktrainerflag OPPONENT_PHILLIP
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_LEONARD
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_COLTON
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_TUCKER
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_THOMAS
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_LEA_AND_JED
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_GARRET
- goto_if 0, SSTidalCorridor_EventScript_15FED5
- checktrainerflag OPPONENT_ANETTE
- goto_if 0, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_PHILLIP, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_LEONARD, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_COLTON, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_TUCKER, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_THOMAS, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_LEA_AND_JED, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_GARRET, SSTidalCorridor_EventScript_15FED5
+ goto_if_trainer_not_defeated OPPONENT_ANETTE, SSTidalCorridor_EventScript_15FED5
setflag FLAG_DEFEATED_SS_TIDAL_TRAINERS
goto SSTidalCorridor_EventScript_15FE7A
return
diff --git a/data/scripts/maps/SSTidalRooms.inc b/data/scripts/maps/SSTidalRooms.inc
index 0390177de..89372bd84 100644
--- a/data/scripts/maps/SSTidalRooms.inc
+++ b/data/scripts/maps/SSTidalRooms.inc
@@ -4,10 +4,9 @@ SSTidalRooms_MapScripts:: @ 815FF05
SSTidalRooms_EventScript_15FF06:: @ 815FF06
lock
faceplayer
- checkflag FLAG_RECEIVED_TM49
- goto_if_eq SSTidalRooms_EventScript_15FF3D
+ goto_if_set FLAG_RECEIVED_TM49, SSTidalRooms_EventScript_15FF3D
msgbox SSTidalRooms_Text_199B65, 4
- giveitem_std ITEM_TM49
+ giveitem_std ITEM_TM49_SNATCH
compare RESULT, 0
goto_if_eq SSTidalRooms_EventScript_1A029B
setflag FLAG_RECEIVED_TM49
diff --git a/data/scripts/maps/SafariZone_Southeast.inc b/data/scripts/maps/SafariZone_Southeast.inc
index 2dbd716cb..493aa55a1 100644
--- a/data/scripts/maps/SafariZone_Southeast.inc
+++ b/data/scripts/maps/SafariZone_Southeast.inc
@@ -21,7 +21,7 @@ SafariZone_Southeast_EventScript_16004B:: @ 816004B
SafariZone_Southeast_MapScript1_160073:: @ 8160073
compare VAR_SAFARI_ZONE_STATE, 2
- call_if 1, SafariZone_Southeast_EventScript_16007F
+ call_if_eq SafariZone_Southeast_EventScript_16007F
end
SafariZone_Southeast_EventScript_16007F:: @ 816007F
@@ -54,8 +54,8 @@ SafariZone_Southeast_EventScript_1600A7:: @ 81600A7
faceplayer
compare VAR_TEMP_1, 0
goto_if_eq SafariZone_Southeast_EventScript_1600D1
- msgbox SafariZone_Southeast_Text_1C3A56, 5
- compare RESULT, 1
+ msgbox SafariZone_Southeast_Text_1C3A56, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SafariZone_Southeast_EventScript_1600E0
msgbox SafariZone_Southeast_Text_1C3A9C, 4
release
diff --git a/data/scripts/maps/SeafloorCavern_Room9.inc b/data/scripts/maps/SeafloorCavern_Room9.inc
index 574c7412e..afc076a65 100644
--- a/data/scripts/maps/SeafloorCavern_Room9.inc
+++ b/data/scripts/maps/SeafloorCavern_Room9.inc
@@ -62,7 +62,7 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
.else
msgbox SeafloorCavern_Room9_Text_1B49C1, 4
.endif
- setweather 0
+ setweather WEATHER_NONE
doweather
special sub_8081924
waitstate
@@ -78,7 +78,7 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
.else
setvar RESULT, 0
.endif
- playse 209
+ playse SE_W197
setfieldeffectargument 0, 16
setfieldeffectargument 1, 42
setfieldeffectargument 2, 0
@@ -89,8 +89,8 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
.else
setvar RESULT, 1
.endif
- playfanfare 388
- playse 107
+ playfanfare BGM_ME_TAMA
+ playse SE_TAMA
special sub_80818A4
applymovement VAR_SPECIAL_4, SeafloorCavern_Room9_Movement_1A0841
applymovement 255, SeafloorCavern_Room9_Movement_1A0841
@@ -126,7 +126,7 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
.else
msgbox SeafloorCavern_Room9_Text_1B4A89, 4
.endif
- playse 2
+ playse SE_PC_LOGON
applymovement 255, SeafloorCavern_Room9_Movement_1A083F
waitmovement 0
.ifdef SAPPHIRE
@@ -143,7 +143,7 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
msgbox SeafloorCavern_Room9_Text_1B4B11, 4
.endif
closemessage
- playse 3
+ playse SE_PC_OFF
delay 20
applymovement VAR_SPECIAL_4, SeafloorCavern_Room9_Movement_1A0845
waitmovement 0
@@ -167,7 +167,7 @@ SeafloorCavern_Room9_EventScript_15DAFA:: @ 815DAFA
.else
msgbox SeafloorCavern_Room9_Text_1B4D02, 4
.endif
- playse 21
+ playse SE_PIN
applymovement VAR_SPECIAL_4, SeafloorCavern_Room9_Movement_1A0833
waitmovement 0
applymovement VAR_SPECIAL_4, SeafloorCavern_Room9_Movement_1A0835
diff --git a/data/scripts/maps/SealedChamber_InnerRoom.inc b/data/scripts/maps/SealedChamber_InnerRoom.inc
index cd778202c..11aba3ac8 100644
--- a/data/scripts/maps/SealedChamber_InnerRoom.inc
+++ b/data/scripts/maps/SealedChamber_InnerRoom.inc
@@ -6,27 +6,26 @@ SealedChamber_InnerRoom_EventScript_15F1E8:: @ 815F1E8
braillemessage SealedChamber_InnerRoom_Braille_1C53C1
waitbuttonpress
erasebox 0, 0, 29, 19
- checkflag FLAG_REGI_DOORS_OPENED
- goto_if_eq SealedChamber_InnerRoom_EventScript_15F247
+ goto_if_set FLAG_REGI_DOORS_OPENED, SealedChamber_InnerRoom_EventScript_15F247
specialvar RESULT, CheckRelicanthWailord
compare RESULT, 0
goto_if_eq SealedChamber_InnerRoom_EventScript_15F247
fadeoutbgm 0
- playse 49
+ playse SE_TRACK_MOVE
special DoSealedChamberShakingEffect1
waitstate
delay 40
special DoSealedChamberShakingEffect2
waitstate
- playse 8
+ playse SE_DOOR
delay 40
special DoSealedChamberShakingEffect2
waitstate
- playse 8
+ playse SE_DOOR
delay 40
special DoSealedChamberShakingEffect2
waitstate
- playse 8
+ playse SE_DOOR
delay 40
msgbox SealedChamber_InnerRoom_Text_1A138B, 4
closemessage
diff --git a/data/scripts/maps/SealedChamber_OuterRoom.inc b/data/scripts/maps/SealedChamber_OuterRoom.inc
index ad17819c2..1f2159010 100644
--- a/data/scripts/maps/SealedChamber_OuterRoom.inc
+++ b/data/scripts/maps/SealedChamber_OuterRoom.inc
@@ -14,8 +14,7 @@ SealedChamber_OuterRoom_MapScript1_15F0E7:: @ 815F0E7
end
SealedChamber_OuterRoom_MapScript1_15F0EB:: @ 815F0EB
- checkflag FLAG_SYS_BRAILLE_DIG
- call_if 0, SealedChamber_OuterRoom_EventScript_15F0F5
+ call_if_unset FLAG_SYS_BRAILLE_DIG, SealedChamber_OuterRoom_EventScript_15F0F5
end
SealedChamber_OuterRoom_EventScript_15F0F5:: @ 815F0F5
@@ -109,8 +108,7 @@ SealedChamber_OuterRoom_EventScript_15F1AA:: @ 815F1AA
SealedChamber_OuterRoom_EventScript_15F1B8:: @ 815F1B8
lockall
- checkflag FLAG_SYS_BRAILLE_DIG
- goto_if_eq SealedChamber_OuterRoom_EventScript_15F1CF
+ goto_if_set FLAG_SYS_BRAILLE_DIG, SealedChamber_OuterRoom_EventScript_15F1CF
braillemessage SealedChamber_OuterRoom_Braille_1C53B1
waitbuttonpress
erasebox 0, 0, 29, 19
diff --git a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
index 533c46850..2005cb67b 100644
--- a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
@@ -4,8 +4,7 @@ ShoalCave_LowTideEntranceRoom_MapScripts:: @ 815E057
ShoalCave_LowTideEntranceRoom_MapScript1_15E05D:: @ 815E05D
special UpdateShoalTideFlag
- checkflag FLAG_SYS_SHOAL_TIDE
- goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E06E
+ goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideEntranceRoom_EventScript_15E06E
goto ShoalCave_LowTideEntranceRoom_EventScript_15E072
ShoalCave_LowTideEntranceRoom_EventScript_15E06E:: @ 815E06E
@@ -20,20 +19,19 @@ ShoalCave_LowTideEntranceRoom_EventScript_15E076:: @ 815E076
lock
faceplayer
dodailyevents
- checkflag FLAG_SYS_SHOAL_ITEM
- call_if 1, ShoalCave_LowTideEntranceRoom_EventScript_15E176
+ call_if_set FLAG_SYS_SHOAL_ITEM, ShoalCave_LowTideEntranceRoom_EventScript_15E176
checkitem ITEM_SHOAL_SALT, 4
compare RESULT, 0
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E138
checkitem ITEM_SHOAL_SHELL, 4
compare RESULT, 0
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E138
- msgbox ShoalCave_LowTideEntranceRoom_Text_1C6793, 5
- compare RESULT, 0
+ msgbox ShoalCave_LowTideEntranceRoom_Text_1C6793, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E16C
checkitemspace ITEM_SHELL_BELL, 1
compare RESULT, 0
- call_if 1, ShoalCave_LowTideEntranceRoom_EventScript_15E106
+ call_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E106
compare RESULT, 2
goto_if_eq ShoalCave_LowTideEntranceRoom_EventScript_15E12E
msgbox ShoalCave_LowTideEntranceRoom_Text_1C6808, 4
diff --git a/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc b/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
index b6aba9523..21997d076 100644
--- a/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
@@ -4,8 +4,7 @@ ShoalCave_LowTideInnerRoom_MapScripts:: @ 815E192
.byte 0
ShoalCave_LowTideInnerRoom_MapScript1_15E19D:: @ 815E19D
- checkflag FLAG_SYS_SHOAL_TIDE
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1AB
+ goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_15E1AB
goto ShoalCave_LowTideInnerRoom_EventScript_15E1AF
ShoalCave_LowTideInnerRoom_EventScript_15E1AB:: @ 815E1AB
@@ -21,47 +20,39 @@ ShoalCave_LowTideInnerRoom_MapScript1_15E1B3:: @ 815E1B3
end
ShoalCave_LowTideInnerRoom_EventScript_15E1B9:: @ 815E1B9
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_1
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1DA
- checkflag FLAG_SYS_SHOAL_TIDE
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1DA
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_15E1DA
+ goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_15E1DA
setmetatile 31, 8, 856, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E1DA
end
ShoalCave_LowTideInnerRoom_EventScript_15E1DA:: @ 815E1DA
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_2
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1FB
- checkflag FLAG_SYS_SHOAL_TIDE
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E1FB
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_15E1FB
+ goto_if_set FLAG_SYS_SHOAL_TIDE, ShoalCave_LowTideInnerRoom_EventScript_15E1FB
setmetatile 14, 26, 856, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E1FB
end
ShoalCave_LowTideInnerRoom_EventScript_15E1FB:: @ 815E1FB
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_1
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E213
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_15E213
setmetatile 41, 20, 857, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E213
end
ShoalCave_LowTideInnerRoom_EventScript_15E213:: @ 815E213
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_2
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E22B
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_15E22B
setmetatile 41, 10, 857, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E22B
end
ShoalCave_LowTideInnerRoom_EventScript_15E22B:: @ 815E22B
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_3
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E243
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_15E243
setmetatile 6, 9, 857, 1
goto ShoalCave_LowTideInnerRoom_EventScript_15E243
end
ShoalCave_LowTideInnerRoom_EventScript_15E243:: @ 815E243
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_4
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E256
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_15E256
setmetatile 16, 13, 857, 1
return
@@ -70,8 +61,7 @@ ShoalCave_LowTideInnerRoom_EventScript_15E256:: @ 815E256
ShoalCave_LowTideInnerRoom_EventScript_15E257:: @ 815E257
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_1
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_1, ShoalCave_LowTideInnerRoom_EventScript_15E289
giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
@@ -88,8 +78,7 @@ ShoalCave_LowTideInnerRoom_EventScript_15E289:: @ 815E289
ShoalCave_LowTideInnerRoom_EventScript_15E293:: @ 815E293
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_2
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_2, ShoalCave_LowTideInnerRoom_EventScript_15E289
giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
@@ -101,8 +90,7 @@ ShoalCave_LowTideInnerRoom_EventScript_15E293:: @ 815E293
ShoalCave_LowTideInnerRoom_EventScript_15E2C5:: @ 815E2C5
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_3
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_3, ShoalCave_LowTideInnerRoom_EventScript_15E289
giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
@@ -114,8 +102,7 @@ ShoalCave_LowTideInnerRoom_EventScript_15E2C5:: @ 815E2C5
ShoalCave_LowTideInnerRoom_EventScript_15E2F7:: @ 815E2F7
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SHELL_4
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E289
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SHELL_4, ShoalCave_LowTideInnerRoom_EventScript_15E289
giveitem_std ITEM_SHOAL_SHELL
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
@@ -127,8 +114,7 @@ ShoalCave_LowTideInnerRoom_EventScript_15E2F7:: @ 815E2F7
ShoalCave_LowTideInnerRoom_EventScript_15E329:: @ 815E329
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_1
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E35B
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_1, ShoalCave_LowTideInnerRoom_EventScript_15E35B
giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
@@ -145,8 +131,7 @@ ShoalCave_LowTideInnerRoom_EventScript_15E35B:: @ 815E35B
ShoalCave_LowTideInnerRoom_EventScript_15E365:: @ 815E365
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_2
- goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_15E35B
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_2, ShoalCave_LowTideInnerRoom_EventScript_15E35B
giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideInnerRoom_EventScript_1A029B
diff --git a/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc b/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
index c7cb08a9b..19223a499 100644
--- a/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
@@ -7,8 +7,7 @@ ShoalCave_LowTideLowerRoom_MapScript1_15E3F9:: @ 815E3F9
end
ShoalCave_LowTideLowerRoom_EventScript_15E3FF:: @ 815E3FF
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_4
- goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_15E412
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_15E412
setmetatile 18, 2, 856, 1
return
@@ -17,8 +16,7 @@ ShoalCave_LowTideLowerRoom_EventScript_15E412:: @ 815E412
ShoalCave_LowTideLowerRoom_EventScript_15E413:: @ 815E413
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_4
- goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_15E445
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_4, ShoalCave_LowTideLowerRoom_EventScript_15E445
giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_1A029B
@@ -36,8 +34,7 @@ ShoalCave_LowTideLowerRoom_EventScript_15E445:: @ 815E445
ShoalCave_LowTideLowerRoom_EventScript_15E44F:: @ 815E44F
lock
faceplayer
- checkflag FLAG_RECEIVED_FOCUS_BAND
- goto_if_eq ShoalCave_LowTideLowerRoom_EventScript_15E47E
+ goto_if_set FLAG_RECEIVED_FOCUS_BAND, ShoalCave_LowTideLowerRoom_EventScript_15E47E
msgbox ShoalCave_LowTideLowerRoom_Text_198200, 4
giveitem_std ITEM_FOCUS_BAND
compare RESULT, 0
diff --git a/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc b/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
index efcad59d3..5f9726038 100644
--- a/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
+++ b/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
@@ -7,8 +7,7 @@ ShoalCave_LowTideStairsRoom_MapScript1_15E39D:: @ 815E39D
end
ShoalCave_LowTideStairsRoom_EventScript_15E3A3:: @ 815E3A3
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_3
- goto_if_eq ShoalCave_LowTideStairsRoom_EventScript_15E3B6
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_15E3B6
setmetatile 11, 11, 856, 1
return
@@ -17,8 +16,7 @@ ShoalCave_LowTideStairsRoom_EventScript_15E3B6:: @ 815E3B6
ShoalCave_LowTideStairsRoom_EventScript_15E3B7:: @ 815E3B7
lockall
- checkflag FLAG_HIDE_TOOK_SHOAL_SALT_3
- goto_if_eq ShoalCave_LowTideStairsRoom_EventScript_15E3E9
+ goto_if_set FLAG_HIDE_TOOK_SHOAL_SALT_3, ShoalCave_LowTideStairsRoom_EventScript_15E3E9
giveitem_std ITEM_SHOAL_SALT
compare RESULT, 0
goto_if_eq ShoalCave_LowTideStairsRoom_EventScript_1A029B
diff --git a/data/scripts/maps/SkyPillar_Top.inc b/data/scripts/maps/SkyPillar_Top.inc
index 07a78d2c4..82149a4bc 100644
--- a/data/scripts/maps/SkyPillar_Top.inc
+++ b/data/scripts/maps/SkyPillar_Top.inc
@@ -3,8 +3,7 @@ SkyPillar_Top_MapScripts:: @ 815F302
.byte 0
SkyPillar_Top_MapScript1_15F308:: @ 815F308
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, SkyPillar_Top_EventScript_15F312
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, SkyPillar_Top_EventScript_15F312
end
SkyPillar_Top_EventScript_15F312:: @ 815F312
diff --git a/data/scripts/maps/SlateportCity.inc b/data/scripts/maps/SlateportCity.inc
index 4079763a3..213fc3163 100644
--- a/data/scripts/maps/SlateportCity.inc
+++ b/data/scripts/maps/SlateportCity.inc
@@ -13,7 +13,7 @@ SlateportCity_MapScript1_14BA3C:: @ 814BA3C
setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 0
call SlateportCity_EventScript_14BA5C
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BA68
+ call_if_eq SlateportCity_EventScript_14BA68
end
SlateportCity_EventScript_14BA5C:: @ 814BA5C
@@ -68,12 +68,12 @@ SlateportCity_EventScript_14BAE0:: @ 814BAE0
msgbox SlateportCity_Text_164682, 4
specialvar RESULT, LeadMonHasEffortRibbon
compare RESULT, 1
- call_if 1, SlateportCity_EventScript_14BB35
+ call_if_eq SlateportCity_EventScript_14BB35
specialvar RESULT, ScrSpecial_AreLeadMonEVsMaxedOut
compare RESULT, 0
- call_if 1, SlateportCity_EventScript_14BB2B
+ call_if_eq SlateportCity_EventScript_14BB2B
msgbox SlateportCity_Text_164691, 4
- playfanfare 370
+ playfanfare BGM_FANFA4
message SlateportCity_Text_1646DD
waitfanfare
waitmessage
@@ -96,7 +96,7 @@ SlateportCity_EventScript_14BB3F:: @ 814BB3F
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BB56
+ call_if_eq SlateportCity_EventScript_14BB56
msgbox SlateportCity_Text_164814, 4
release
end
@@ -110,7 +110,7 @@ SlateportCity_EventScript_14BB60:: @ 814BB60
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BB77
+ call_if_eq SlateportCity_EventScript_14BB77
msgbox SlateportCity_Text_1648A0, 4
release
end
@@ -124,9 +124,8 @@ SlateportCity_EventScript_14BB81:: @ 814BB81
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BBA1
- checkflag FLAG_RECEIVED_SECRET_POWER
- goto_if_eq SlateportCity_EventScript_14BBAB
+ call_if_eq SlateportCity_EventScript_14BBA1
+ goto_if_set FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_14BBAB
msgbox SlateportCity_Text_164937, 4
release
end
@@ -145,7 +144,7 @@ SlateportCity_EventScript_14BBB5:: @ 814BBB5
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BBCC
+ call_if_eq SlateportCity_EventScript_14BBCC
msgbox SlateportCity_Text_164A30, 4
release
end
@@ -169,7 +168,7 @@ SlateportCity_EventScript_14BBF3:: @ 814BBF3
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BC0A
+ call_if_eq SlateportCity_EventScript_14BC0A
msgbox SlateportCity_Text_164B34, 4
release
end
@@ -182,8 +181,7 @@ SlateportCity_EventScript_14BC0A:: @ 814BC0A
SlateportCity_EventScript_14BC14:: @ 814BC14
lock
faceplayer
- checkflag FLAG_DOCK_REJECTED_DEVON_GOODS
- goto_if_eq SlateportCity_EventScript_14BC29
+ goto_if_set FLAG_DOCK_REJECTED_DEVON_GOODS, SlateportCity_EventScript_14BC29
msgbox SlateportCity_Text_164BBF, 4
release
end
@@ -199,10 +197,8 @@ SlateportCity_EventScript_14BC33:: @ 814BC33
SlateportCity_EventScript_14BC3C:: @ 814BC3C
lockall
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq SlateportCity_EventScript_14BC63
- checkflag FLAG_BADGE07_GET
- goto_if_eq SlateportCity_EventScript_14BC59
+ goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_EventScript_14BC63
+ goto_if_set FLAG_BADGE07_GET, SlateportCity_EventScript_14BC59
msgbox SlateportCity_Text_1658A0, 4
releaseall
end
@@ -235,8 +231,7 @@ SlateportCity_EventScript_14BC88:: @ 814BC88
SlateportCity_EventScript_14BC91:: @ 814BC91
lockall
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq SlateportCity_EventScript_14BCA5
+ goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_EventScript_14BCA5
msgbox SlateportCity_Text_165A8B, 4
releaseall
end
@@ -254,7 +249,7 @@ SlateportCity_EventScript_14BCB8:: @ 814BCB8
lock
faceplayer
compare VAR_SLATEPORT_STATE, 1
- call_if 1, SlateportCity_EventScript_14BCCF
+ call_if_eq SlateportCity_EventScript_14BCCF
msgbox SlateportCity_Text_164F9E, 4
release
end
@@ -287,11 +282,11 @@ SlateportCity_EventScript_14BCFD:: @ 814BCFD
SlateportCity_EventScript_14BD06:: @ 814BD06
lock
faceplayer
- msgbox SlateportCity_Text_1650F1, 5
- compare RESULT, 1
- call_if 1, SlateportCity_EventScript_14BD28
- compare RESULT, 0
- call_if 1, SlateportCity_EventScript_14BD31
+ msgbox SlateportCity_Text_1650F1, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq SlateportCity_EventScript_14BD28
+ compare RESULT, NO
+ call_if_eq SlateportCity_EventScript_14BD31
release
end
@@ -410,8 +405,7 @@ SlateportCity_EventScript_14BE16:: @ 814BE16
SlateportCity_EventScript_14BE20:: @ 814BE20
lock
faceplayer
- checkflag FLAG_RECEIVED_SECRET_POWER
- goto_if 0, SlateportCity_EventScript_14BE16
+ goto_if_unset FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_14BE16
message SlateportCity_Text_1A0BE4
waitmessage
pokemartdecoration SlateportCity_Decorations2
@@ -442,8 +436,7 @@ SlateportCity_Decorations2:: @ 814BE40
@ 814BE60
lock
faceplayer
- checkflag FLAG_RECEIVED_SECRET_POWER
- goto_if 0, SlateportCity_EventScript_14BE16
+ goto_if_unset FLAG_RECEIVED_SECRET_POWER, SlateportCity_EventScript_14BE16
message SlateportCity_Text_1A0BE4
waitmessage
pokemartdecoration SlateportCity_Decorations3
@@ -480,8 +473,8 @@ SlateportCity_EventScript_14BE9A:: @ 814BE9A
.align 2
SlateportCity_Items2:: @ 814BEB4
- .2byte ITEM_TM10
- .2byte ITEM_TM43
+ .2byte ITEM_TM10_HIDDEN_POWER
+ .2byte ITEM_TM43_SECRET_POWER
.2byte ITEM_NONE
release
end
@@ -508,7 +501,7 @@ SlateportCity_EventScript_14BEBC:: @ 814BEBC
applymovement 11, SlateportCity_Movement_1A0841
waitmovement 0
msgbox SlateportCity_Text_1655E7, 4
- playbgm BGM_EVIL_TEAM, 0
+ playbgm BGM_EVIL_TEAM, FALSE
msgbox SlateportCity_Text_1656BC, 4
applymovement 6, SlateportCity_Movement_1A083F
applymovement 1, SlateportCity_Movement_1A083F
@@ -519,7 +512,7 @@ SlateportCity_EventScript_14BEBC:: @ 814BEBC
applymovement 11, SlateportCity_Movement_1A0845
waitmovement 0
msgbox SlateportCity_Text_16578F, 4
- playse 21
+ playse SE_PIN
applymovement 11, SlateportCity_Movement_1A0833
waitmovement 0
applymovement 11, SlateportCity_Movement_1A0835
diff --git a/data/scripts/maps/SlateportCity_ContestHall.inc b/data/scripts/maps/SlateportCity_ContestHall.inc
index 0a6f40c75..5f6a3c15d 100644
--- a/data/scripts/maps/SlateportCity_ContestHall.inc
+++ b/data/scripts/maps/SlateportCity_ContestHall.inc
@@ -12,10 +12,9 @@ SlateportCity_ContestHall_EventScript_155555:: @ 8155555
SlateportCity_ContestHall_EventScript_15555E:: @ 815555E
lock
faceplayer
- checkflag FLAG_RECEIVED_TM41
- goto_if_eq SlateportCity_ContestHall_EventScript_155595
+ goto_if_set FLAG_RECEIVED_TM41, SlateportCity_ContestHall_EventScript_155595
msgbox SlateportCity_ContestHall_Text_17CCE2, 4
- giveitem_std ITEM_TM41
+ giveitem_std ITEM_TM41_TORMENT
compare RESULT, 0
goto_if_eq SlateportCity_ContestHall_EventScript_1A029B
setflag FLAG_RECEIVED_TM41
diff --git a/data/scripts/maps/SlateportCity_ContestLobby.inc b/data/scripts/maps/SlateportCity_ContestLobby.inc
index 2fd62e9af..22f797968 100644
--- a/data/scripts/maps/SlateportCity_ContestLobby.inc
+++ b/data/scripts/maps/SlateportCity_ContestLobby.inc
@@ -22,13 +22,13 @@ SlateportCity_ContestLobby_EventScript_155448:: @ 8155448
lockall
applymovement 1, SlateportCity_ContestLobby_Movement_1554CC
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 545, 1
setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, SlateportCity_ContestLobby_Movement_1554CF
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 721, 1
setmetatile 4, 3, 729, 1
special DrawWholeMapView
@@ -101,8 +101,7 @@ SlateportCity_ContestLobby_EventScript_1554F0:: @ 81554F0
SlateportCity_ContestLobby_EventScript_1554F9:: @ 81554F9
lockall
- checkflag FLAG_RECEIVED_POKEBLOCK_CASE
- goto_if_eq SlateportCity_ContestLobby_EventScript_155526
+ goto_if_set FLAG_RECEIVED_POKEBLOCK_CASE, SlateportCity_ContestLobby_EventScript_155526
applymovement 7, SlateportCity_ContestLobby_Movement_1A0839
waitmovement 0
msgbox SlateportCity_ContestLobby_Text_17CA67, 4
diff --git a/data/scripts/maps/SlateportCity_Harbor.inc b/data/scripts/maps/SlateportCity_Harbor.inc
index 72f2d0382..82a17b0a6 100644
--- a/data/scripts/maps/SlateportCity_Harbor.inc
+++ b/data/scripts/maps/SlateportCity_Harbor.inc
@@ -6,9 +6,8 @@ SlateportCity_Harbor_MapScript1_155F63:: @ 8155F63
setescapewarp MAP_SLATEPORT_CITY, 255, 28, 13
setvar VAR_TEMP_1, 0
compare VAR_SLATEPORT_HARBOR_STATE, 1
- call_if 1, SlateportCity_Harbor_EventScript_155F89
- checkflag FLAG_SYS_GAME_CLEAR
- call_if 1, SlateportCity_Harbor_EventScript_155F85
+ call_if_eq SlateportCity_Harbor_EventScript_155F89
+ call_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_155F85
end
SlateportCity_Harbor_EventScript_155F85:: @ 8155F85
@@ -64,13 +63,13 @@ SlateportCity_Harbor_EventScript_155FD5:: @ 8155FD5
removeobject 8
setvar VAR_SLATEPORT_HARBOR_STATE, 2
compare VAR_SPECIAL_8, 0
- call_if 1, SlateportCity_Harbor_EventScript_15605C
+ call_if_eq SlateportCity_Harbor_EventScript_15605C
compare VAR_SPECIAL_8, 1
- call_if 1, SlateportCity_Harbor_EventScript_156071
+ call_if_eq SlateportCity_Harbor_EventScript_156071
compare VAR_SPECIAL_8, 2
- call_if 1, SlateportCity_Harbor_EventScript_156086
+ call_if_eq SlateportCity_Harbor_EventScript_156086
compare VAR_SPECIAL_8, 3
- call_if 1, SlateportCity_Harbor_EventScript_156086
+ call_if_eq SlateportCity_Harbor_EventScript_156086
msgbox SlateportCity_Harbor_Text_17FE60, 4
closemessage
setflag FLAG_HIDE_GRUNT_1_BLOCKING_HIDEOUT
@@ -159,8 +158,7 @@ SlateportCity_Harbor_Movement_1560C2:: @ 81560C2
SlateportCity_Harbor_EventScript_1560C4:: @ 81560C4
lock
faceplayer
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq SlateportCity_Harbor_EventScript_1560D9
+ goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_1560D9
msgbox SlateportCity_Harbor_Text_17FA0A, 4
release
end
@@ -190,8 +188,8 @@ SlateportCity_Harbor_EventScript_156135:: @ 8156135
end
SlateportCity_Harbor_EventScript_15613F:: @ 815613F
- msgbox SlateportCity_Harbor_Text_17FB81, 5
- compare RESULT, 0
+ msgbox SlateportCity_Harbor_Text_17FB81, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SlateportCity_Harbor_EventScript_15618A
setvar VAR_PORTHOLE_STATE, 1
call SlateportCity_Harbor_EventScript_156196
@@ -201,8 +199,8 @@ SlateportCity_Harbor_EventScript_15613F:: @ 815613F
end
SlateportCity_Harbor_EventScript_156167:: @ 8156167
- msgbox SlateportCity_Harbor_Text_17FB9C, 5
- compare RESULT, 0
+ msgbox SlateportCity_Harbor_Text_17FB9C, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SlateportCity_Harbor_EventScript_15618A
call SlateportCity_Harbor_EventScript_156196
warp MAP_BATTLE_TOWER_OUTSIDE, 255, 19, 23
@@ -224,9 +222,9 @@ SlateportCity_Harbor_EventScript_156196:: @ 8156196
delay 30
hideobjectat LAST_TALKED, MAP_SLATEPORT_CITY_HARBOR
compare FACING, 2
- call_if 1, SlateportCity_Harbor_EventScript_1561EF
+ call_if_eq SlateportCity_Harbor_EventScript_1561EF
compare FACING, 4
- call_if 1, SlateportCity_Harbor_EventScript_1561E4
+ call_if_eq SlateportCity_Harbor_EventScript_1561E4
delay 30
hideobjectat 255, MAP_PETALBURG_CITY
setvar VAR_SPECIAL_4, 5
@@ -268,12 +266,9 @@ SlateportCity_Harbor_EventScript_156208:: @ 8156208
SlateportCity_Harbor_EventScript_156211:: @ 8156211
lock
faceplayer
- checkflag FLAG_BADGE07_GET
- goto_if_eq SlateportCity_Harbor_EventScript_15626F
- checkflag FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE
- goto_if_eq SlateportCity_Harbor_EventScript_156265
- checkflag FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE
- goto_if_eq SlateportCity_Harbor_EventScript_156258
+ goto_if_set FLAG_BADGE07_GET, SlateportCity_Harbor_EventScript_15626F
+ goto_if_set FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE, SlateportCity_Harbor_EventScript_156265
+ goto_if_set FLAG_EVIL_TEAM_ESCAPED_IN_SUBMARINE, SlateportCity_Harbor_EventScript_156258
compare VAR_SLATEPORT_HARBOR_STATE, 2
goto_if_eq SlateportCity_Harbor_EventScript_15624E
msgbox SlateportCity_Harbor_Text_17FD1C, 4
@@ -305,8 +300,7 @@ SlateportCity_Harbor_EventScript_15626F:: @ 815626F
checkitem ITEM_SCANNER, 1
compare RESULT, 1
goto_if_eq SlateportCity_Harbor_EventScript_1562A7
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq SlateportCity_Harbor_EventScript_15629D
+ goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_Harbor_EventScript_15629D
msgbox SlateportCity_Harbor_Text_18017B, 4
release
end
@@ -332,8 +326,8 @@ SlateportCity_Harbor_EventScript_1562B3:: @ 81562B3
end
SlateportCity_Harbor_EventScript_1562EA:: @ 81562EA
- msgbox SlateportCity_Harbor_Text_1803DD, 5
- compare RESULT, 0
+ msgbox SlateportCity_Harbor_Text_1803DD, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SlateportCity_Harbor_EventScript_156374
giveitem_std ITEM_DEEP_SEA_TOOTH
compare RESULT, 0
@@ -345,8 +339,8 @@ SlateportCity_Harbor_EventScript_1562EA:: @ 81562EA
end
SlateportCity_Harbor_EventScript_15632A:: @ 815632A
- msgbox SlateportCity_Harbor_Text_180412, 5
- compare RESULT, 0
+ msgbox SlateportCity_Harbor_Text_180412, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SlateportCity_Harbor_EventScript_156374
giveitem_std ITEM_DEEP_SEA_SCALE
compare RESULT, 0
diff --git a/data/scripts/maps/SlateportCity_House1.inc b/data/scripts/maps/SlateportCity_House1.inc
index aa1157d7e..be2955937 100644
--- a/data/scripts/maps/SlateportCity_House1.inc
+++ b/data/scripts/maps/SlateportCity_House1.inc
@@ -4,10 +4,10 @@ SlateportCity_House1_MapScripts:: @ 815567A
SlateportCity_House1_EventScript_15567B:: @ 815567B
lock
faceplayer
- msgbox SlateportCity_House1_Text_17D46A, 5
- compare RESULT, 1
+ msgbox SlateportCity_House1_Text_17D46A, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_House1_EventScript_15569C
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_House1_EventScript_1556BF
end
@@ -16,7 +16,7 @@ SlateportCity_House1_EventScript_15569C:: @ 815569C
special SelectMonForNPCTrade
waitstate
compare VAR_SPECIAL_4, 255
- goto_if 5, SlateportCity_House1_EventScript_1556C9
+ goto_if_ne SlateportCity_House1_EventScript_1556C9
compare VAR_SPECIAL_4, 255
goto_if_eq SlateportCity_House1_EventScript_1556BF
end
@@ -38,10 +38,10 @@ SlateportCity_House1_EventScript_1556C9:: @ 81556C9
special TV_CopyNicknameToStringVar1AndEnsureTerminated
compare RESULT, 1
goto_if_eq SlateportCity_House1_EventScript_155726
- msgbox SlateportCity_House1_Text_17D505, 5
- compare RESULT, 1
+ msgbox SlateportCity_House1_Text_17D505, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_House1_EventScript_155730
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq SlateportCity_House1_EventScript_1556BF
end
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
index abbe3f78f..45ca62167 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
@@ -33,8 +33,8 @@ SlateportCity_OceanicMuseum_1F_EventScript_155AF5:: @ 8155AF5
SlateportCity_OceanicMuseum_1F_EventScript_155B06:: @ 8155B06
showmoneybox 0, 0
nop
- msgbox SlateportCity_OceanicMuseum_1F_Text_17E18D, 5
- compare RESULT, 1
+ msgbox SlateportCity_OceanicMuseum_1F_Text_17E18D, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_155B2D
closemessage
hidemoneybox 0, 0
@@ -57,8 +57,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_155B2D:: @ 8155B2D
end
SlateportCity_OceanicMuseum_1F_EventScript_155B5A:: @ 8155B5A
- checkflag FLAG_DELIVERED_DEVON_GOODS
- goto_if 0, SlateportCity_OceanicMuseum_1F_EventScript_155B7B
+ goto_if_unset FLAG_DELIVERED_DEVON_GOODS, SlateportCity_OceanicMuseum_1F_EventScript_155B7B
msgbox SlateportCity_OceanicMuseum_1F_Text_17E1F5, 4
closemessage
hidemoneybox 0, 0
@@ -158,13 +157,13 @@ SlateportCity_OceanicMuseum_1F_EventScript_155C3A:: @ 8155C3A
lock
faceplayer
delay 8
- playse 21
+ playse SE_PIN
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_1A0833
waitmovement 0
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_1A0835
waitmovement 0
msgbox SlateportCity_OceanicMuseum_1F_Text_17E582, 4
- giveitem_std ITEM_TM46
+ giveitem_std ITEM_TM46_THIEF
compare RESULT, 0
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_155CC2
setflag FLAG_RECEIVED_TM46
@@ -173,14 +172,14 @@ SlateportCity_OceanicMuseum_1F_EventScript_155C3A:: @ 8155C3A
compare FACING, 2
goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_155C98
compare FACING, 2
- goto_if 5, SlateportCity_OceanicMuseum_1F_EventScript_155CAD
+ goto_if_ne SlateportCity_OceanicMuseum_1F_EventScript_155CAD
end
SlateportCity_OceanicMuseum_1F_EventScript_155C98:: @ 8155C98
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_155CD3
waitmovement 0
setflag FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM
- playse 9
+ playse SE_KAIDAN
removeobject 13
release
end
@@ -189,7 +188,7 @@ SlateportCity_OceanicMuseum_1F_EventScript_155CAD:: @ 8155CAD
applymovement 13, SlateportCity_OceanicMuseum_1F_Movement_155CCC
waitmovement 0
setflag FLAG_HIDE_SCARED_GRUNT_OCEANIC_MUSEUM
- playse 9
+ playse SE_KAIDAN
removeobject 13
release
end
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
index 007e42f90..d84982e2e 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
@@ -11,7 +11,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
faceplayer
msgbox SlateportCity_OceanicMuseum_2F_Text_17ECFD, 4
closemessage
- playbgm BGM_EVIL_TEAM, 1
+ playbgm BGM_EVIL_TEAM, TRUE
addobject 3
applymovement 3, SlateportCity_OceanicMuseum_2F_Movement_155EB4
waitmovement 0
@@ -22,21 +22,21 @@ SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
applymovement 4, SlateportCity_OceanicMuseum_2F_Movement_155EC5
waitmovement 0
compare FACING, 1
- call_if 1, SlateportCity_OceanicMuseum_2F_EventScript_155E62
+ call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_155E62
compare FACING, 4
- call_if 1, SlateportCity_OceanicMuseum_2F_EventScript_155E62
+ call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_155E62
msgbox SlateportCity_OceanicMuseum_2F_Text_17EDAE, 4
compare FACING, 4
- call_if 5, SlateportCity_OceanicMuseum_2F_EventScript_155E6D
+ call_if_ne SlateportCity_OceanicMuseum_2F_EventScript_155E6D
msgbox SlateportCity_OceanicMuseum_2F_Text_17EDD7, 4
msgbox SlateportCity_OceanicMuseum_2F_Text_17EE01, 4
closemessage
applymovement 4, SlateportCity_OceanicMuseum_2F_Movement_155EB2
waitmovement 0
compare FACING, 1
- call_if 1, SlateportCity_OceanicMuseum_2F_EventScript_155E78
+ call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_155E78
compare FACING, 3
- call_if 1, SlateportCity_OceanicMuseum_2F_EventScript_155E83
+ call_if_eq SlateportCity_OceanicMuseum_2F_EventScript_155E83
trainerbattle 3, OPPONENT_MUSEUM_2F_GRUNT_1, 0, SlateportCity_OceanicMuseum_2F_Text_17EE4E
msgbox SlateportCity_OceanicMuseum_2F_Text_17EE66, 4
closemessage
@@ -84,7 +84,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_155CE6:: @ 8155CE6
closemessage
applymovement 1, SlateportCity_OceanicMuseum_2F_Movement_155E98
waitmovement 0
- playse 9
+ playse SE_KAIDAN
removeobject 1
setflag FLAG_HIDE_EVIL_TEAM_ROUTE110
setflag FLAG_DELIVERED_DEVON_GOODS
diff --git a/data/scripts/maps/SlateportCity_PokemonFanClub.inc b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
index 6e7d2614b..6a8c88e1e 100644
--- a/data/scripts/maps/SlateportCity_PokemonFanClub.inc
+++ b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
@@ -23,18 +23,13 @@ SlateportCity_PokemonFanClub_EventScript_155795:: @ 8155795
SlateportCity_PokemonFanClub_EventScript_1557A8:: @ 81557A8
setvar VAR_TEMP_2, 0
- checkflag FLAG_RECEIVED_YELLOW_SCARF
- call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag FLAG_RECEIVED_GREEN_SCARF
- call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag FLAG_RECEIVED_PINK_SCARF
- call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag FLAG_RECEIVED_BLUE_SCARF
- call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
- checkflag FLAG_RECEIVED_RED_SCARF
- call_if 1, SlateportCity_PokemonFanClub_EventScript_155893
+ call_if_set FLAG_RECEIVED_YELLOW_SCARF, SlateportCity_PokemonFanClub_EventScript_155893
+ call_if_set FLAG_RECEIVED_GREEN_SCARF, SlateportCity_PokemonFanClub_EventScript_155893
+ call_if_set FLAG_RECEIVED_PINK_SCARF, SlateportCity_PokemonFanClub_EventScript_155893
+ call_if_set FLAG_RECEIVED_BLUE_SCARF, SlateportCity_PokemonFanClub_EventScript_155893
+ call_if_set FLAG_RECEIVED_RED_SCARF, SlateportCity_PokemonFanClub_EventScript_155893
compare VAR_TEMP_2, 5
- call_if 1, SlateportCity_PokemonFanClub_EventScript_15588D
+ call_if_eq SlateportCity_PokemonFanClub_EventScript_15588D
compare VAR_SLATEPORT_FAN_CLUB_STATE, 2
goto_if_eq SlateportCity_PokemonFanClub_EventScript_1557FE
msgbox SlateportCity_PokemonFanClub_Text_17DA14, 4
@@ -49,16 +44,11 @@ SlateportCity_PokemonFanClub_EventScript_1557FE:: @ 81557FE
SlateportCity_PokemonFanClub_EventScript_155808:: @ 8155808
msgbox SlateportCity_PokemonFanClub_Text_17DA49, 4
setvar VAR_TEMP_1, 0
- checkflag FLAG_RECEIVED_YELLOW_SCARF
- call_if 0, SlateportCity_PokemonFanClub_EventScript_1559FE
- checkflag FLAG_RECEIVED_GREEN_SCARF
- call_if 0, SlateportCity_PokemonFanClub_EventScript_1559E7
- checkflag FLAG_RECEIVED_PINK_SCARF
- call_if 0, SlateportCity_PokemonFanClub_EventScript_1559D0
- checkflag FLAG_RECEIVED_BLUE_SCARF
- call_if 0, SlateportCity_PokemonFanClub_EventScript_1559B9
- checkflag FLAG_RECEIVED_RED_SCARF
- call_if 0, SlateportCity_PokemonFanClub_EventScript_1559A2
+ call_if_unset FLAG_RECEIVED_YELLOW_SCARF, SlateportCity_PokemonFanClub_EventScript_1559FE
+ call_if_unset FLAG_RECEIVED_GREEN_SCARF, SlateportCity_PokemonFanClub_EventScript_1559E7
+ call_if_unset FLAG_RECEIVED_PINK_SCARF, SlateportCity_PokemonFanClub_EventScript_1559D0
+ call_if_unset FLAG_RECEIVED_BLUE_SCARF, SlateportCity_PokemonFanClub_EventScript_1559B9
+ call_if_unset FLAG_RECEIVED_RED_SCARF, SlateportCity_PokemonFanClub_EventScript_1559A2
bufferleadmonspeciesname 0
switch VAR_TEMP_1
case 0, SlateportCity_PokemonFanClub_EventScript_155899
@@ -146,7 +136,7 @@ SlateportCity_PokemonFanClub_EventScript_155998:: @ 8155998
SlateportCity_PokemonFanClub_EventScript_1559A2:: @ 81559A2
specialvar RESULT, CheckLeadMonCool
compare RESULT, 1
- call_if 1, SlateportCity_PokemonFanClub_EventScript_1559B3
+ call_if_eq SlateportCity_PokemonFanClub_EventScript_1559B3
return
SlateportCity_PokemonFanClub_EventScript_1559B3:: @ 81559B3
@@ -156,7 +146,7 @@ SlateportCity_PokemonFanClub_EventScript_1559B3:: @ 81559B3
SlateportCity_PokemonFanClub_EventScript_1559B9:: @ 81559B9
specialvar RESULT, CheckLeadMonBeauty
compare RESULT, 1
- call_if 1, SlateportCity_PokemonFanClub_EventScript_1559CA
+ call_if_eq SlateportCity_PokemonFanClub_EventScript_1559CA
return
SlateportCity_PokemonFanClub_EventScript_1559CA:: @ 81559CA
@@ -166,7 +156,7 @@ SlateportCity_PokemonFanClub_EventScript_1559CA:: @ 81559CA
SlateportCity_PokemonFanClub_EventScript_1559D0:: @ 81559D0
specialvar RESULT, CheckLeadMonCute
compare RESULT, 1
- call_if 1, SlateportCity_PokemonFanClub_EventScript_1559E1
+ call_if_eq SlateportCity_PokemonFanClub_EventScript_1559E1
return
SlateportCity_PokemonFanClub_EventScript_1559E1:: @ 81559E1
@@ -176,7 +166,7 @@ SlateportCity_PokemonFanClub_EventScript_1559E1:: @ 81559E1
SlateportCity_PokemonFanClub_EventScript_1559E7:: @ 81559E7
specialvar RESULT, CheckLeadMonSmart
compare RESULT, 1
- call_if 1, SlateportCity_PokemonFanClub_EventScript_1559F8
+ call_if_eq SlateportCity_PokemonFanClub_EventScript_1559F8
return
SlateportCity_PokemonFanClub_EventScript_1559F8:: @ 81559F8
@@ -186,7 +176,7 @@ SlateportCity_PokemonFanClub_EventScript_1559F8:: @ 81559F8
SlateportCity_PokemonFanClub_EventScript_1559FE:: @ 81559FE
specialvar RESULT, CheckLeadMonTough
compare RESULT, 1
- call_if 1, SlateportCity_PokemonFanClub_EventScript_155A0F
+ call_if_eq SlateportCity_PokemonFanClub_EventScript_155A0F
return
SlateportCity_PokemonFanClub_EventScript_155A0F:: @ 8155A0F
@@ -196,17 +186,16 @@ SlateportCity_PokemonFanClub_EventScript_155A0F:: @ 8155A0F
SlateportCity_PokemonFanClub_EventScript_155A15:: @ 8155A15
lock
faceplayer
- checkflag FLAG_RECEIVED_SOOTHE_BELL
- goto_if_eq SlateportCity_PokemonFanClub_EventScript_155A75
+ goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_155A75
msgbox SlateportCity_PokemonFanClub_Text_17DE6B, 4
specialvar RESULT, GetLeadMonFriendshipScore
compare RESULT, 4
- goto_if 4, SlateportCity_PokemonFanClub_EventScript_155A3A
+ goto_if_ge SlateportCity_PokemonFanClub_EventScript_155A3A
release
end
SlateportCity_PokemonFanClub_EventScript_155A3A:: @ 8155A3A
- playse 21
+ playse SE_PIN
applymovement LAST_TALKED, SlateportCity_PokemonFanClub_Movement_1A0833
waitmovement 0
applymovement LAST_TALKED, SlateportCity_PokemonFanClub_Movement_1A0835
diff --git a/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc b/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
index 46dc8419c..dd31e8e26 100644
--- a/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
+++ b/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
@@ -3,14 +3,10 @@ SlateportCity_SternsShipyard_1F_MapScripts:: @ 8155335
SlateportCity_SternsShipyard_1F_EventScript_155336:: @ 8155336
lockall
- checkflag FLAG_SYS_GAME_CLEAR
- goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_155388
- checkflag FLAG_BADGE07_GET
- goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_15539C
- checkflag FLAG_DELIVERED_DEVON_GOODS
- goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_1553CF
- checkflag FLAG_DOCK_REJECTED_DEVON_GOODS
- goto_if_eq SlateportCity_SternsShipyard_1F_EventScript_1553B0
+ goto_if_set FLAG_SYS_GAME_CLEAR, SlateportCity_SternsShipyard_1F_EventScript_155388
+ goto_if_set FLAG_BADGE07_GET, SlateportCity_SternsShipyard_1F_EventScript_15539C
+ goto_if_set FLAG_DELIVERED_DEVON_GOODS, SlateportCity_SternsShipyard_1F_EventScript_1553CF
+ goto_if_set FLAG_DOCK_REJECTED_DEVON_GOODS, SlateportCity_SternsShipyard_1F_EventScript_1553B0
msgbox SlateportCity_SternsShipyard_1F_Text_17C14B, 4
applymovement 1, SlateportCity_SternsShipyard_1F_Movement_1A0839
waitmovement 0
diff --git a/data/scripts/maps/SootopolisCity.inc b/data/scripts/maps/SootopolisCity.inc
index e29700981..669d4ecfa 100644
--- a/data/scripts/maps/SootopolisCity.inc
+++ b/data/scripts/maps/SootopolisCity.inc
@@ -5,10 +5,8 @@ SootopolisCity_MapScripts:: @ 814D07D
.byte 0
SootopolisCity_MapScript1_14D08D:: @ 814D08D
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- call_if 0, SootopolisCity_EventScript_14D0A0
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- call_if 1, SootopolisCity_EventScript_14D0B1
+ call_if_unset FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_EventScript_14D0A0
+ call_if_set FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_EventScript_14D0B1
end
SootopolisCity_EventScript_14D0A0:: @ 814D0A0
@@ -17,8 +15,7 @@ SootopolisCity_EventScript_14D0A0:: @ 814D0A0
return
SootopolisCity_EventScript_14D0B1:: @ 814D0B1
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 0, SootopolisCity_EventScript_14D0BB
+ call_if_unset FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D0BB
return
SootopolisCity_EventScript_14D0BB:: @ 814D0BB
@@ -35,10 +32,8 @@ SootopolisCity_EventScript_14D0BB:: @ 814D0BB
SootopolisCity_MapScript1_14D10D:: @ 814D10D
setflag FLAG_VISITED_SOOTOPOLIS_CITY
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- call_if 1, SootopolisCity_EventScript_14D159
- checkflag FLAG_SYS_WEATHER_CTRL
- call_if 1, SootopolisCity_EventScript_14D123
+ call_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D159
+ call_if_set FLAG_SYS_WEATHER_CTRL, SootopolisCity_EventScript_14D123
end
SootopolisCity_EventScript_14D123:: @ 814D123
@@ -46,7 +41,7 @@ SootopolisCity_EventScript_14D123:: @ 814D123
setobjectxyperm 1, 29, 19
setobjectxyperm 2, 33, 19
compare VAR_SOOTOPOLIS_STATE, 1
- call_if 1, SootopolisCity_EventScript_14D142
+ call_if_eq SootopolisCity_EventScript_14D142
return
SootopolisCity_EventScript_14D142:: @ 814D142
@@ -68,8 +63,7 @@ SootopolisCity_MapScript1_14D165:: @ 814D165
SootopolisCity_EventScript_14D16E:: @ 814D16E
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_EventScript_14D183
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D183
msgbox SootopolisCity_Text_1696A4, 4
release
end
@@ -92,8 +86,7 @@ SootopolisCity_EventScript_14D19F:: @ 814D19F
faceplayer
dodailyevents
special GetPlayerBigGuyGirlString
- checkflag FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS
- goto_if_eq SootopolisCity_EventScript_14D241
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_SOOTOPOLIS, SootopolisCity_EventScript_14D241
msgbox SootopolisCity_Text_1C63F2, 4
random 10
addvar RESULT, 20
@@ -127,8 +120,8 @@ SootopolisCity_EventScript_14D220:: @ 814D220
end
SootopolisCity_EventScript_14D241:: @ 814D241
- msgbox SootopolisCity_Text_1C6540, 5
- compare RESULT, 1
+ msgbox SootopolisCity_Text_1C6540, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SootopolisCity_EventScript_14D25E
msgbox SootopolisCity_Text_1C6626, 4
release
@@ -142,8 +135,7 @@ SootopolisCity_EventScript_14D25E:: @ 814D25E
SootopolisCity_EventScript_14D268:: @ 814D268
lock
faceplayer
- checkflag FLAG_DEFEATED_SOOTOPOLIS_GYM
- goto_if_eq SootopolisCity_EventScript_14D27D
+ goto_if_set FLAG_DEFEATED_SOOTOPOLIS_GYM, SootopolisCity_EventScript_14D27D
msgbox SootopolisCity_Text_16A4D6, 4
release
end
@@ -156,8 +148,7 @@ SootopolisCity_EventScript_14D27D:: @ 814D27D
SootopolisCity_EventScript_14D287:: @ 814D287
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_EventScript_14D29C
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D29C
msgbox SootopolisCity_Text_169813, 4
release
end
@@ -170,8 +161,7 @@ SootopolisCity_EventScript_14D29C:: @ 814D29C
SootopolisCity_EventScript_14D2A6:: @ 814D2A6
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_EventScript_14D2BB
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D2BB
msgbox SootopolisCity_Text_1698A0, 4
release
end
@@ -184,8 +174,7 @@ SootopolisCity_EventScript_14D2BB:: @ 814D2BB
SootopolisCity_EventScript_14D2C5:: @ 814D2C5
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_EventScript_14D2DA
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D2DA
msgbox SootopolisCity_Text_1697A7, 4
release
end
@@ -216,7 +205,7 @@ SootopolisCity_EventScript_14D308:: @ 814D308
applymovement 10, SootopolisCity_Movement_1A083F
applymovement 255, SootopolisCity_Movement_1A0843
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement 10, SootopolisCity_Movement_1A0833
waitmovement 0
applymovement 10, SootopolisCity_Movement_1A0835
@@ -237,7 +226,7 @@ SootopolisCity_EventScript_14D308:: @ 814D308
.else
msgbox SootopolisCity_Text_169E82, 4
.endif
- playse 21
+ playse SE_PIN
applymovement 5, SootopolisCity_Movement_1A0833
waitmovement 0
applymovement 5, SootopolisCity_Movement_1A0835
@@ -445,8 +434,7 @@ SootopolisCity_EventScript_14D48F:: @ 814D48F
SootopolisCity_EventScript_14D498:: @ 814D498
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_EventScript_14D4AD
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_EventScript_14D4AD
.ifdef SAPPHIRE
msgbox SootopolisCity_Text_169DA6, 4
.else
diff --git a/data/scripts/maps/SootopolisCity_Gym_1F.inc b/data/scripts/maps/SootopolisCity_Gym_1F.inc
index 38514b03b..0ad6aa027 100644
--- a/data/scripts/maps/SootopolisCity_Gym_1F.inc
+++ b/data/scripts/maps/SootopolisCity_Gym_1F.inc
@@ -20,11 +20,11 @@ SootopolisCity_Gym_1F_MapScript1_15AF25:: @ 815AF25
SootopolisCity_Gym_1F_EventScript_15AF2E:: @ 815AF2E
compare VAR_ICE_STEP_COUNT, 8
- goto_if 0, SootopolisCity_Gym_1F_EventScript_15AF85
+ goto_if_lt SootopolisCity_Gym_1F_EventScript_15AF85
compare VAR_ICE_STEP_COUNT, 28
- goto_if 0, SootopolisCity_Gym_1F_EventScript_15AF73
+ goto_if_lt SootopolisCity_Gym_1F_EventScript_15AF73
compare VAR_ICE_STEP_COUNT, 69
- goto_if 0, SootopolisCity_Gym_1F_EventScript_15AF61
+ goto_if_lt SootopolisCity_Gym_1F_EventScript_15AF61
setmetatile 8, 4, 519, 0
setmetatile 8, 5, 519, 0
@@ -49,7 +49,7 @@ SootopolisCity_Gym_1F_MapScript2_15AF86:: @ 815AF86
SootopolisCity_Gym_1F_EventScript_15AFA8:: @ 815AFA8
addvar VAR_ICE_STEP_COUNT, 1
delay 40
- playse 40
+ playse SE_RU_GASHIN
call SootopolisCity_Gym_1F_EventScript_15AF2E
special DrawWholeMapView
end
@@ -57,7 +57,7 @@ SootopolisCity_Gym_1F_EventScript_15AFA8:: @ 815AFA8
SootopolisCity_Gym_1F_EventScript_15AFBC:: @ 815AFBC
addvar VAR_ICE_STEP_COUNT, 1
delay 40
- playse 40
+ playse SE_RU_GASHIN
call SootopolisCity_Gym_1F_EventScript_15AF2E
special DrawWholeMapView
end
@@ -65,7 +65,7 @@ SootopolisCity_Gym_1F_EventScript_15AFBC:: @ 815AFBC
SootopolisCity_Gym_1F_EventScript_15AFD0:: @ 815AFD0
addvar VAR_ICE_STEP_COUNT, 1
delay 40
- playse 40
+ playse SE_RU_GASHIN
call SootopolisCity_Gym_1F_EventScript_15AF2E
special DrawWholeMapView
end
@@ -75,7 +75,7 @@ SootopolisCity_Gym_1F_EventScript_15AFE4:: @ 815AFE4
delay 20
applymovement 255, SootopolisCity_Gym_1F_Movement_15AFFD
waitmovement 0
- playse 43
+ playse SE_RU_HYUU
delay 60
warphole MAP_SOOTOPOLIS_CITY_GYM_B1F
waitstate
@@ -87,10 +87,8 @@ SootopolisCity_Gym_1F_Movement_15AFFD:: @ 815AFFD
SootopolisCity_Gym_1F_EventScript_15AFFF:: @ 815AFFF
trainerbattle 1, OPPONENT_WALLACE, 0, SootopolisCity_Gym_1F_Text_18F0CA, SootopolisCity_Gym_1F_Text_18F282, SootopolisCity_Gym_1F_EventScript_15B02D
- checkflag FLAG_RECEIVED_TM03
- goto_if 0, SootopolisCity_Gym_1F_EventScript_15B056
- checkflag FLAG_BADGE06_GET
- goto_if 0, SootopolisCity_Gym_1F_EventScript_15B07A
+ goto_if_unset FLAG_RECEIVED_TM03, SootopolisCity_Gym_1F_EventScript_15B056
+ goto_if_unset FLAG_BADGE06_GET, SootopolisCity_Gym_1F_EventScript_15B07A
msgbox SootopolisCity_Gym_1F_Text_18F4D7, 4
release
end
@@ -108,7 +106,7 @@ SootopolisCity_Gym_1F_EventScript_15B02D:: @ 815B02D
end
SootopolisCity_Gym_1F_EventScript_15B056:: @ 815B056
- giveitem_std ITEM_TM03
+ giveitem_std ITEM_TM03_WATER_PULSE
compare RESULT, 0
goto_if_eq SootopolisCity_Gym_1F_EventScript_1A029B
msgbox SootopolisCity_Gym_1F_Text_18F466, 4
@@ -124,8 +122,7 @@ SootopolisCity_Gym_1F_EventScript_15B07A:: @ 815B07A
SootopolisCity_Gym_1F_EventScript_15B084:: @ 815B084
lock
faceplayer
- checkflag FLAG_DEFEATED_SOOTOPOLIS_GYM
- goto_if_eq SootopolisCity_Gym_1F_EventScript_15B099
+ goto_if_set FLAG_DEFEATED_SOOTOPOLIS_GYM, SootopolisCity_Gym_1F_EventScript_15B099
msgbox SootopolisCity_Gym_1F_Text_18E8A5, 4
release
end
@@ -137,15 +134,13 @@ SootopolisCity_Gym_1F_EventScript_15B099:: @ 815B099
SootopolisCity_Gym_1F_EventScript_15B0A3:: @ 815B0A3
lockall
- checkflag FLAG_BADGE08_GET
- goto_if_eq SootopolisCity_Gym_1F_EventScript_15B0C3
+ goto_if_set FLAG_BADGE08_GET, SootopolisCity_Gym_1F_EventScript_15B0C3
goto SootopolisCity_Gym_1F_EventScript_15B0CD
end
SootopolisCity_Gym_1F_EventScript_15B0B3:: @ 815B0B3
lockall
- checkflag FLAG_BADGE08_GET
- goto_if_eq SootopolisCity_Gym_1F_EventScript_15B0C3
+ goto_if_set FLAG_BADGE08_GET, SootopolisCity_Gym_1F_EventScript_15B0C3
goto SootopolisCity_Gym_1F_EventScript_15B0CD
end
diff --git a/data/scripts/maps/SootopolisCity_House1.inc b/data/scripts/maps/SootopolisCity_House1.inc
index 074c9a179..d1b842f7b 100644
--- a/data/scripts/maps/SootopolisCity_House1.inc
+++ b/data/scripts/maps/SootopolisCity_House1.inc
@@ -4,10 +4,9 @@ SootopolisCity_House1_MapScripts:: @ 815B29A
SootopolisCity_House1_EventScript_15B29B:: @ 815B29B
lock
faceplayer
- checkflag FLAG_RECEIVED_TM31
- goto_if_eq SootopolisCity_House1_EventScript_15B2C7
+ goto_if_set FLAG_RECEIVED_TM31, SootopolisCity_House1_EventScript_15B2C7
msgbox SootopolisCity_House1_Text_18F991, 4
- giveitem_std ITEM_TM31
+ giveitem_std ITEM_TM31_BRICK_BREAK
setflag FLAG_RECEIVED_TM31
msgbox SootopolisCity_House1_Text_18FA03, 4
release
diff --git a/data/scripts/maps/SootopolisCity_House2.inc b/data/scripts/maps/SootopolisCity_House2.inc
index 011806291..d714993d4 100644
--- a/data/scripts/maps/SootopolisCity_House2.inc
+++ b/data/scripts/maps/SootopolisCity_House2.inc
@@ -4,11 +4,11 @@ SootopolisCity_House2_MapScripts:: @ 815B2E4
SootopolisCity_House2_EventScript_15B2E5:: @ 815B2E5
lock
faceplayer
- msgbox SootopolisCity_House2_Text_18FA66, 5
- compare RESULT, 1
- call_if 1, SootopolisCity_House2_EventScript_15B307
- compare RESULT, 0
- call_if 1, SootopolisCity_House2_EventScript_15B310
+ msgbox SootopolisCity_House2_Text_18FA66, MSGBOX_YESNO
+ compare RESULT, YES
+ call_if_eq SootopolisCity_House2_EventScript_15B307
+ compare RESULT, NO
+ call_if_eq SootopolisCity_House2_EventScript_15B310
release
end
diff --git a/data/scripts/maps/SootopolisCity_House3.inc b/data/scripts/maps/SootopolisCity_House3.inc
index f1bf0bf19..6ffa30d3d 100644
--- a/data/scripts/maps/SootopolisCity_House3.inc
+++ b/data/scripts/maps/SootopolisCity_House3.inc
@@ -4,8 +4,8 @@ SootopolisCity_House3_MapScripts:: @ 815B319
SootopolisCity_House3_EventScript_15B31A:: @ 815B31A
lock
faceplayer
- msgbox SootopolisCity_House3_Text_18FB36, 5
- compare RESULT, 1
+ msgbox SootopolisCity_House3_Text_18FB36, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq SootopolisCity_House3_EventScript_15B339
msgbox SootopolisCity_House3_Text_18FBC0, 4
release
diff --git a/data/scripts/maps/SootopolisCity_House6.inc b/data/scripts/maps/SootopolisCity_House6.inc
index fb91202f3..24c59500a 100644
--- a/data/scripts/maps/SootopolisCity_House6.inc
+++ b/data/scripts/maps/SootopolisCity_House6.inc
@@ -4,11 +4,10 @@ SootopolisCity_House6_MapScripts:: @ 815B385
SootopolisCity_House6_EventScript_15B386:: @ 815B386
lock
faceplayer
- checkflag FLAG_RECEIVED_WAILMER_DOLL
- goto_if_eq SootopolisCity_House6_EventScript_15B3CD
- msgbox SootopolisCity_House6_Text_18FEA1, 5
- compare RESULT, 0
- call_if 1, SootopolisCity_House6_EventScript_15B3C3
+ goto_if_set FLAG_RECEIVED_WAILMER_DOLL, SootopolisCity_House6_EventScript_15B3CD
+ msgbox SootopolisCity_House6_Text_18FEA1, MSGBOX_YESNO
+ compare RESULT, NO
+ call_if_eq SootopolisCity_House6_EventScript_15B3C3
msgbox SootopolisCity_House6_Text_18FF12, 4
givedecoration_std DECOR_WAILMER_DOLL
compare RESULT, 0
diff --git a/data/scripts/maps/SootopolisCity_Mart.inc b/data/scripts/maps/SootopolisCity_Mart.inc
index 115ed0453..1687bd91e 100644
--- a/data/scripts/maps/SootopolisCity_Mart.inc
+++ b/data/scripts/maps/SootopolisCity_Mart.inc
@@ -29,10 +29,8 @@ SootopolisCity_Mart_Items:: @ 815B234
SootopolisCity_Mart_EventScript_15B24A:: @ 815B24A
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_Mart_EventScript_15B268
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- goto_if 0, SootopolisCity_Mart_EventScript_15B268
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_Mart_EventScript_15B268
+ goto_if_unset FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_Mart_EventScript_15B268
msgbox SootopolisCity_Mart_Text_18F8D7, 4
release
end
@@ -45,10 +43,8 @@ SootopolisCity_Mart_EventScript_15B268:: @ 815B268
SootopolisCity_Mart_EventScript_15B272:: @ 815B272
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_Mart_EventScript_15B290
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- goto_if 0, SootopolisCity_Mart_EventScript_15B290
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_Mart_EventScript_15B290
+ goto_if_unset FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_Mart_EventScript_15B290
msgbox SootopolisCity_Mart_Text_18F96B, 4
release
end
diff --git a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
index 9eb5b4a57..820dd4858 100644
--- a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
+++ b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
@@ -17,10 +17,8 @@ SootopolisCity_PokemonCenter_1F_MapScript1_15B196:: @ 815B196
SootopolisCity_PokemonCenter_1F_EventScript_15B1A8:: @ 815B1A8
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- goto_if 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
+ goto_if_unset FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_PokemonCenter_1F_EventScript_15B1C6
msgbox SootopolisCity_PokemonCenter_1F_Text_18F770, 4
release
end
@@ -33,10 +31,8 @@ SootopolisCity_PokemonCenter_1F_EventScript_15B1C6:: @ 815B1C6
SootopolisCity_PokemonCenter_1F_EventScript_15B1D0:: @ 815B1D0
lock
faceplayer
- checkflag FLAG_LEGENDARY_BATTLE_COMPLETED
- goto_if_eq SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- goto_if 0, SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
+ goto_if_set FLAG_LEGENDARY_BATTLE_COMPLETED, SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
+ goto_if_unset FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_PokemonCenter_1F_EventScript_15B1EE
msgbox SootopolisCity_PokemonCenter_1F_Text_18F860, 4
release
end
diff --git a/data/scripts/maps/SouthernIsland_Exterior.inc b/data/scripts/maps/SouthernIsland_Exterior.inc
index ab2a73460..874e3e901 100644
--- a/data/scripts/maps/SouthernIsland_Exterior.inc
+++ b/data/scripts/maps/SouthernIsland_Exterior.inc
@@ -9,8 +9,8 @@ SouthernIsland_Exterior_MapScript1_160ADC:: @ 8160ADC
SouthernIsland_Exterior_EventScript_160AE0:: @ 8160AE0
lock
faceplayer
- msgbox SouthernIsland_Exterior_Text_1C5215, 5
- compare RESULT, 0
+ msgbox SouthernIsland_Exterior_Text_1C5215, MSGBOX_YESNO
+ compare RESULT, NO
goto_if_eq SouthernIsland_Exterior_EventScript_160B25
msgbox SouthernIsland_Exterior_Text_1C5281, 4
closemessage
diff --git a/data/scripts/maps/SouthernIsland_Interior.inc b/data/scripts/maps/SouthernIsland_Interior.inc
index cbc451a18..5878a43d5 100644
--- a/data/scripts/maps/SouthernIsland_Interior.inc
+++ b/data/scripts/maps/SouthernIsland_Interior.inc
@@ -4,8 +4,7 @@ SouthernIsland_Interior_MapScripts:: @ 8160B53
.byte 0
SouthernIsland_Interior_MapScript1_160B5E:: @ 8160B5E
- checkflag FLAG_SYS_CTRL_OBJ_DELETE
- call_if 1, SouthernIsland_Interior_EventScript_160B68
+ call_if_set FLAG_SYS_CTRL_OBJ_DELETE, SouthernIsland_Interior_EventScript_160B68
end
SouthernIsland_Interior_EventScript_160B68:: @ 8160B68
@@ -44,10 +43,8 @@ SouthernIsland_Interior_EventScript_160B9B:: @ 8160B9B
end
SouthernIsland_Interior_EventScript_160BA7:: @ 8160BA7
- checkflag FLAG_ECOUNTERED_LATIAS_OR_LATIOS
- goto_if_eq SouthernIsland_Interior_EventScript_160C08
- checkflag FLAG_SYS_HAS_EON_TICKET
- goto_if 0, SouthernIsland_Interior_EventScript_160C08
+ goto_if_set FLAG_ECOUNTERED_LATIAS_OR_LATIOS, SouthernIsland_Interior_EventScript_160C08
+ goto_if_unset FLAG_SYS_HAS_EON_TICKET, SouthernIsland_Interior_EventScript_160C08
setflag FLAG_ECOUNTERED_LATIAS_OR_LATIOS
special SpawnCameraDummy
applymovement 127, SouthernIsland_Interior_Movement_160C12
diff --git a/data/scripts/maps/Underwater_SeafloorCavern.inc b/data/scripts/maps/Underwater_SeafloorCavern.inc
index d991a7096..d34558e40 100644
--- a/data/scripts/maps/Underwater_SeafloorCavern.inc
+++ b/data/scripts/maps/Underwater_SeafloorCavern.inc
@@ -6,8 +6,7 @@ Underwater_SeafloorCavern_MapScripts:: @ 815D99E
Underwater_SeafloorCavern_MapScript1_15D9AE:: @ 815D9AE
setflag FLAG_LANDMARK_SEAFLOOR_CAVERN
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- goto_if_eq Underwater_SeafloorCavern_EventScript_15D9BB
+ goto_if_set FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, Underwater_SeafloorCavern_EventScript_15D9BB
end
Underwater_SeafloorCavern_EventScript_15D9BB:: @ 815D9BB
@@ -15,8 +14,7 @@ Underwater_SeafloorCavern_EventScript_15D9BB:: @ 815D9BB
end
Underwater_SeafloorCavern_MapScript1_15D9BF:: @ 815D9BF
- checkflag FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN
- call_if 1, Underwater_SeafloorCavern_EventScript_15D9C9
+ call_if_set FLAG_LEGEND_ESCAPED_SEAFLOOR_CAVERN, Underwater_SeafloorCavern_EventScript_15D9C9
end
Underwater_SeafloorCavern_EventScript_15D9C9:: @ 815D9C9
diff --git a/data/scripts/maps/Underwater_SealedChamber.inc b/data/scripts/maps/Underwater_SealedChamber.inc
index 8d3e8e723..3151c4575 100644
--- a/data/scripts/maps/Underwater_SealedChamber.inc
+++ b/data/scripts/maps/Underwater_SealedChamber.inc
@@ -5,9 +5,9 @@ Underwater_SealedChamber_MapScripts:: @ 815F080
Underwater_SealedChamber_MapScript1_15F086:: @ 815F086
getplayerxy VAR_SPECIAL_4, VAR_SPECIAL_5
compare VAR_SPECIAL_4, 12
- goto_if 5, Underwater_SealedChamber_EventScript_15F0A6
+ goto_if_ne Underwater_SealedChamber_EventScript_15F0A6
compare VAR_SPECIAL_5, 44
- goto_if 5, Underwater_SealedChamber_EventScript_15F0A6
+ goto_if_ne Underwater_SealedChamber_EventScript_15F0A6
goto Underwater_SealedChamber_EventScript_15F0AF
Underwater_SealedChamber_EventScript_15F0A6:: @ 815F0A6
diff --git a/data/scripts/maps/UnknownMap_25_34.inc b/data/scripts/maps/UnknownMap_25_34.inc
index e2afd07dc..44b9463b4 100644
--- a/data/scripts/maps/UnknownMap_25_34.inc
+++ b/data/scripts/maps/UnknownMap_25_34.inc
@@ -14,40 +14,40 @@ LinkContestRoom1_MapScript1_15F595:: @ 815F595
LinkContestRoom1_EventScript_15F5A5:: @ 815F5A5
special ScriptGetMultiplayerId
compare RESULT, 0
- call_if 1, LinkContestRoom1_EventScript_15F5E0
+ call_if_eq LinkContestRoom1_EventScript_15F5E0
compare RESULT, 1
- call_if 1, LinkContestRoom1_EventScript_15F5E4
+ call_if_eq LinkContestRoom1_EventScript_15F5E4
compare RESULT, 2
- call_if 1, LinkContestRoom1_EventScript_15F5E8
+ call_if_eq LinkContestRoom1_EventScript_15F5E8
compare RESULT, 3
- call_if 1, LinkContestRoom1_EventScript_15F5EC
+ call_if_eq LinkContestRoom1_EventScript_15F5EC
compare RESULT, 4
- call_if 1, LinkContestRoom1_EventScript_15F5F0
+ call_if_eq LinkContestRoom1_EventScript_15F5F0
return
LinkContestRoom1_EventScript_15F5E0:: @ 815F5E0
- savebgm 393
+ savebgm BGM_TEST1
return
LinkContestRoom1_EventScript_15F5E4:: @ 815F5E4
- savebgm 394
+ savebgm BGM_TEST2
return
LinkContestRoom1_EventScript_15F5E8:: @ 815F5E8
- savebgm 395
+ savebgm BGM_TEST3
return
LinkContestRoom1_EventScript_15F5EC:: @ 815F5EC
- savebgm 396
+ savebgm BGM_TEST4
return
LinkContestRoom1_EventScript_15F5F0:: @ 815F5F0
- savebgm 440
+ savebgm BGM_CONTEST0
return
LinkContestRoom1_MapScript1_15F5F4:: @ 815F5F4
compare VAR_TEMP_9, 1
- call_if 1, LinkContestRoom1_EventScript_15F600
+ call_if_eq LinkContestRoom1_EventScript_15F600
end
LinkContestRoom1_EventScript_15F600:: @ 815F600
@@ -76,7 +76,7 @@ LinkContestRoom1_EventScript_15F630:: @ 815F630
call LinkContestRoom1_EventScript_15F6E6
call LinkContestRoom1_EventScript_15F646
compare VAR_TEMP_0, 8
- goto_if 0, LinkContestRoom1_EventScript_15F630
+ goto_if_lt LinkContestRoom1_EventScript_15F630
return
LinkContestRoom1_EventScript_15F646:: @ 815F646
diff --git a/data/scripts/maps/VerdanturfTown.inc b/data/scripts/maps/VerdanturfTown.inc
index ca2a3c245..c8adf85c3 100644
--- a/data/scripts/maps/VerdanturfTown.inc
+++ b/data/scripts/maps/VerdanturfTown.inc
@@ -11,8 +11,7 @@ VerdanturfTown_MapScript1_14E85A:: @ 814E85A
VerdanturfTown_EventScript_14E866:: @ 814E866
lock
faceplayer
- checkflag FLAG_RUSTURF_TUNNEL_OPENED
- goto_if_eq VerdanturfTown_EventScript_14E885
+ goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, VerdanturfTown_EventScript_14E885
msgbox VerdanturfTown_Text_16CAEB, 4
applymovement 2, VerdanturfTown_Movement_1A083D
waitmovement 0
@@ -37,8 +36,7 @@ VerdanturfTown_EventScript_14E8A2:: @ 814E8A2
VerdanturfTown_EventScript_14E8AB:: @ 814E8AB
lock
faceplayer
- checkflag FLAG_RUSTURF_TUNNEL_OPENED
- goto_if_eq VerdanturfTown_EventScript_14E8C0
+ goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, VerdanturfTown_EventScript_14E8C0
msgbox VerdanturfTown_Text_16CD4D, 4
release
end
diff --git a/data/scripts/maps/VerdanturfTown_ContestLobby.inc b/data/scripts/maps/VerdanturfTown_ContestLobby.inc
index 016b2e7ba..3aef08e94 100644
--- a/data/scripts/maps/VerdanturfTown_ContestLobby.inc
+++ b/data/scripts/maps/VerdanturfTown_ContestLobby.inc
@@ -22,13 +22,13 @@ VerdanturfTown_ContestLobby_EventScript_153DA1:: @ 8153DA1
lockall
applymovement 1, VerdanturfTown_ContestLobby_Movement_153E25
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 545, 1
setmetatile 4, 3, 609, 1
special DrawWholeMapView
applymovement 1, VerdanturfTown_ContestLobby_Movement_153E28
waitmovement 0
- playse 71
+ playse SE_HASHI
setmetatile 4, 2, 721, 1
setmetatile 4, 3, 729, 1
special DrawWholeMapView
@@ -101,10 +101,9 @@ VerdanturfTown_ContestLobby_EventScript_153E3E:: @ 8153E3E
VerdanturfTown_ContestLobby_EventScript_153E47:: @ 8153E47
lock
faceplayer
- checkflag FLAG_RECEIVED_TM45
- goto_if_eq VerdanturfTown_ContestLobby_EventScript_153E76
+ goto_if_set FLAG_RECEIVED_TM45, VerdanturfTown_ContestLobby_EventScript_153E76
msgbox VerdanturfTown_ContestLobby_Text_177DEC, 4
- giveitem_std ITEM_TM45
+ giveitem_std ITEM_TM45_ATTRACT
compare RESULT, 0
goto_if_eq VerdanturfTown_ContestLobby_EventScript_1A029B
setflag FLAG_RECEIVED_TM45
diff --git a/data/scripts/maps/VerdanturfTown_WandasHouse.inc b/data/scripts/maps/VerdanturfTown_WandasHouse.inc
index 205a4315c..4410beaba 100644
--- a/data/scripts/maps/VerdanturfTown_WandasHouse.inc
+++ b/data/scripts/maps/VerdanturfTown_WandasHouse.inc
@@ -4,8 +4,7 @@ VerdanturfTown_WandasHouse_MapScripts:: @ 8153F5A
VerdanturfTown_WandasHouse_EventScript_153F5B:: @ 8153F5B
lock
faceplayer
- checkflag FLAG_WALLY_SPEECH
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_153F73
+ goto_if_set FLAG_WALLY_SPEECH, VerdanturfTown_WandasHouse_EventScript_153F73
msgbox VerdanturfTown_WandasHouse_Text_1783F6, 4
setflag FLAG_WALLY_SPEECH
release
@@ -19,10 +18,8 @@ VerdanturfTown_WandasHouse_EventScript_153F73:: @ 8153F73
VerdanturfTown_WandasHouse_EventScript_153F7D:: @ 8153F7D
lock
faceplayer
- checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_153FA5
- checkflag FLAG_DEFEATED_LAVARIDGE_GYM
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_153F9B
+ goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, VerdanturfTown_WandasHouse_EventScript_153FA5
+ goto_if_set FLAG_DEFEATED_LAVARIDGE_GYM, VerdanturfTown_WandasHouse_EventScript_153F9B
msgbox VerdanturfTown_WandasHouse_Text_17859A, 4
release
end
@@ -44,10 +41,8 @@ VerdanturfTown_WandasHouse_EventScript_153FAF:: @ 8153FAF
VerdanturfTown_WandasHouse_EventScript_153FB8:: @ 8153FB8
lock
faceplayer
- checkflag FLAG_DEFEATED_LAVARIDGE_GYM
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_153FE0
- checkflag FLAG_DEFEATED_WALLY_MAUVILLE
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_153FD6
+ goto_if_set FLAG_DEFEATED_LAVARIDGE_GYM, VerdanturfTown_WandasHouse_EventScript_153FE0
+ goto_if_set FLAG_DEFEATED_WALLY_MAUVILLE, VerdanturfTown_WandasHouse_EventScript_153FD6
msgbox VerdanturfTown_WandasHouse_Text_1787FB, 4
release
end
@@ -65,12 +60,9 @@ VerdanturfTown_WandasHouse_EventScript_153FE0:: @ 8153FE0
VerdanturfTown_WandasHouse_EventScript_153FEA:: @ 8153FEA
lock
faceplayer
- checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_154025
- checkflag FLAG_DEFEATED_LAVARIDGE_GYM
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_15401B
- checkflag FLAG_RUSTURF_TUNNEL_OPENED
- goto_if_eq VerdanturfTown_WandasHouse_EventScript_154011
+ goto_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, VerdanturfTown_WandasHouse_EventScript_154025
+ goto_if_set FLAG_DEFEATED_LAVARIDGE_GYM, VerdanturfTown_WandasHouse_EventScript_15401B
+ goto_if_set FLAG_RUSTURF_TUNNEL_OPENED, VerdanturfTown_WandasHouse_EventScript_154011
msgbox VerdanturfTown_WandasHouse_Text_1788B1, 4
release
end
diff --git a/data/scripts/maps/VictoryRoad_1F.inc b/data/scripts/maps/VictoryRoad_1F.inc
index ed0440343..4f3180318 100644
--- a/data/scripts/maps/VictoryRoad_1F.inc
+++ b/data/scripts/maps/VictoryRoad_1F.inc
@@ -3,8 +3,7 @@ VictoryRoad_1F_MapScripts:: @ 815DE83
.byte 0
VictoryRoad_1F_MapScript1_15DE89:: @ 815DE89
- checkflag FLAG_DEFEATED_WALLY_VICTORY_ROAD
- call_if 1, VictoryRoad_1F_EventScript_15DE93
+ call_if_set FLAG_DEFEATED_WALLY_VICTORY_ROAD, VictoryRoad_1F_EventScript_15DE93
end
VictoryRoad_1F_EventScript_15DE93:: @ 815DE93
diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc
index 58dacb2f3..0e1835ae4 100644
--- a/data/scripts/mauville_man.inc
+++ b/data/scripts/mauville_man.inc
@@ -141,7 +141,7 @@ do_trader_menu_get:
waitstate
compare VAR_SPECIAL_4, 0
goto_if_eq cancelled_get_menu
- compare VAR_SPECIAL_4, 65535
+ compare VAR_SPECIAL_4, -1
goto_if_eq rare_item_cant_trade_away
msgbox gTextTrader_ItemOnceBelongedTo, MSGBOX_YESNO
compare RESULT, NO
@@ -178,7 +178,7 @@ do_trader_menu_give:
waitstate
compare VAR_SPECIAL_6, 0
goto_if_eq cancelled_give_menu
- compare VAR_SPECIAL_6, 65535
+ compare VAR_SPECIAL_6, -1
goto_if_eq decoration_is_in_use
special ScrSpecial_IsDecorationFull
compare RESULT, 1
diff --git a/data/scripts/mystery_event_club.inc b/data/scripts/mystery_event_club.inc
index b02ab4faa..4813caa68 100644
--- a/data/scripts/mystery_event_club.inc
+++ b/data/scripts/mystery_event_club.inc
@@ -1,8 +1,7 @@
PetalburgCity_PokemonCenter_1F_EventScript_1B1B14:: @ 81B1B14
lock
faceplayer
- checkflag FLAG_SYS_CHAT_USED
- goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1BDB
+ goto_if_set FLAG_SYS_CHAT_USED, PetalburgCity_PokemonCenter_1F_EventScript_1B1BDB
msgbox PetalburgCity_PokemonCenter_1F_Text_1B1C97, 4
goto PetalburgCity_PokemonCenter_1F_EventScript_1B1B2D
end
@@ -30,7 +29,7 @@ PetalburgCity_PokemonCenter_1F_EventScript_1B1B7A:: @ 81B1B7A
lock
faceplayer
compare VAR_SPECIAL_4, 1
- call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_1B1C77
+ call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1C77
compare RESULT, 0
goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1BB1
compare RESULT, 1
@@ -84,7 +83,7 @@ PetalburgCity_PokemonCenter_1F_EventScript_1B1C36:: @ 81B1C36
lock
faceplayer
compare VAR_SPECIAL_4, 1
- call_if 1, PetalburgCity_PokemonCenter_1F_EventScript_1B1C77
+ call_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1C77
compare RESULT, 0
goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1BB1
compare RESULT, 1
@@ -97,10 +96,8 @@ PetalburgCity_PokemonCenter_1F_EventScript_1B1C6D:: @ 81B1C6D
end
PetalburgCity_PokemonCenter_1F_EventScript_1B1C77:: @ 81B1C77
- checkflag FLAG_BADGE05_GET
- goto_if 0, PetalburgCity_PokemonCenter_1F_EventScript_1B1C96
- checkflag FLAG_SYS_EXDATA_ENABLE
- goto_if_eq PetalburgCity_PokemonCenter_1F_EventScript_1B1C96
+ goto_if_unset FLAG_BADGE05_GET, PetalburgCity_PokemonCenter_1F_EventScript_1B1C96
+ goto_if_set FLAG_SYS_EXDATA_ENABLE, PetalburgCity_PokemonCenter_1F_EventScript_1B1C96
setflag FLAG_SYS_EXDATA_ENABLE
msgbox PetalburgCity_PokemonCenter_1F_Text_1B21CC, 3
release
diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc
index d93ff7660..3d8f5532f 100644
--- a/data/scripts/players_house.inc
+++ b/data/scripts/players_house.inc
@@ -9,9 +9,9 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6956:: @ 81B6956
applymovement VAR_SPECIAL_4, LittlerootTown_BrendansHouse_1F_Movement_1A0839
waitmovement 0
compare VAR_SPECIAL_5, 0
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B699F
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B699F
compare VAR_SPECIAL_5, 1
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B69AA
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B69AA
msgbox LittlerootTown_BrendansHouse_1F_Text_172453, 4
closemessage
setvar VAR_LITTLEROOT_INTRO_STATE, 4
@@ -59,8 +59,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1B69DF:: @ 81B69DF
LittlerootTown_BrendansHouse_2F_EventScript_1B69EB:: @ 81B69EB
LittlerootTown_MaysHouse_2F_EventScript_1B69EB:: @ 81B69EB
- checkflag FLAG_SET_WALL_CLOCK
- goto_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1B6A91
+ goto_if_set FLAG_SET_WALL_CLOCK, LittlerootTown_BrendansHouse_2F_EventScript_1B6A91
msgbox LittlerootTown_BrendansHouse_2F_Text_172E18, 4
call LittlerootTown_BrendansHouse_2F_EventScript_1B6A9B
delay 30
@@ -70,10 +69,10 @@ LittlerootTown_MaysHouse_2F_EventScript_1B69EB:: @ 81B69EB
setflag FLAG_HIDE_MACHOKE_MOVER_2
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_1B6A31
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1B6A31
compare RESULT, 1
- call_if 1, LittlerootTown_BrendansHouse_2F_EventScript_1B6A61
- playse 9
+ call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_1B6A61
+ playse SE_KAIDAN
removeobject VAR_SPECIAL_8
releaseall
end
@@ -160,7 +159,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1B6ABF:: @ 81B6ABF
call LittlerootTown_BrendansHouse_1F_EventScript_1B6B9D
applymovement 255, LittlerootTown_BrendansHouse_1F_Movement_1B6CCC
waitmovement 0
- playbgm 453, 0
+ playbgm BGM_INTER_V, FALSE
msgbox LittlerootTown_BrendansHouse_1F_Text_1725C9, 4
closemessage
applymovement VAR_SPECIAL_5, LittlerootTown_BrendansHouse_1F_Movement_1B6BDB
@@ -185,7 +184,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6B2E:: @ 81B6B2E
call LittlerootTown_MaysHouse_1F_EventScript_1B6B9D
applymovement 255, LittlerootTown_MaysHouse_1F_Movement_1B6CD4
waitmovement 0
- playbgm 453, 0
+ playbgm BGM_INTER_V, FALSE
msgbox LittlerootTown_MaysHouse_1F_Text_1725C9, 4
closemessage
applymovement VAR_SPECIAL_5, LittlerootTown_MaysHouse_1F_Movement_1B6BDE
@@ -206,7 +205,7 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6B2E:: @ 81B6B2E
LittlerootTown_BrendansHouse_1F_EventScript_1B6B9D:: @ 81B6B9D
LittlerootTown_MaysHouse_1F_EventScript_1B6B9D:: @ 81B6B9D
- playse 21
+ playse SE_PIN
applymovement VAR_SPECIAL_5, LittlerootTown_BrendansHouse_1F_Movement_1A0833
waitmovement 0
applymovement VAR_SPECIAL_5, LittlerootTown_BrendansHouse_1F_Movement_1A0835
@@ -256,14 +255,12 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6BE9:: @ 81B6BE9
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C33
compare VAR_LITTLEROOT_HOUSES_STATE_2, 4
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C33
- checkflag FLAG_BADGE05_GET
- goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C3D
- checkflag FLAG_RESCUED_BIRCH
- goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C72
+ goto_if_set FLAG_BADGE05_GET, LittlerootTown_BrendansHouse_1F_EventScript_1B6C3D
+ goto_if_set FLAG_RESCUED_BIRCH, LittlerootTown_BrendansHouse_1F_EventScript_1B6C72
compare VAR_TEMP_1, 1
goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C80
compare VAR_LITTLEROOT_INTRO_STATE, 7
- goto_if 4, LittlerootTown_BrendansHouse_1F_EventScript_1B6C9C
+ goto_if_ge LittlerootTown_BrendansHouse_1F_EventScript_1B6C9C
msgbox LittlerootTown_BrendansHouse_1F_Text_172429, 4
release
end
@@ -274,8 +271,7 @@ LittlerootTown_BrendansHouse_1F_EventScript_1B6C33:: @ 81B6C33
end
LittlerootTown_BrendansHouse_1F_EventScript_1B6C3D:: @ 81B6C3D
- checkflag FLAG_RECEIVED_AMULET_COIN
- goto_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6C72
+ goto_if_set FLAG_RECEIVED_AMULET_COIN, LittlerootTown_BrendansHouse_1F_EventScript_1B6C72
msgbox LittlerootTown_BrendansHouse_1F_Text_172782, 4
giveitem_std ITEM_AMULET_COIN
compare RESULT, 0
@@ -363,40 +359,40 @@ LittlerootTown_MaysHouse_1F_EventScript_1B6CDE:: @ 81B6CDE
lockall
checkplayergender
compare RESULT, 0
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DAD
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DAD
compare RESULT, 1
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DBD
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DBD
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6E1D
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6E1D
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6E28
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6E28
applymovement VAR_SPECIAL_9, LittlerootTown_BrendansHouse_1F_Movement_1A0839
waitmovement 0
- playse 21
+ playse SE_PIN
applymovement VAR_SPECIAL_9, LittlerootTown_BrendansHouse_1F_Movement_1A0833
waitmovement 0
applymovement VAR_SPECIAL_9, LittlerootTown_BrendansHouse_1F_Movement_1A0835
waitmovement 0
delay 20
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DCD
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DCD
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DD8
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DD8
msgbox LittlerootTown_BrendansHouse_1F_Text_17298B, 4
giveitem_std ITEM_SS_TICKET
msgbox LittlerootTown_BrendansHouse_1F_Text_172A7D, 4
closemessage
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DE3
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DE3
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DEE
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DEE
msgbox LittlerootTown_BrendansHouse_1F_Text_172B5E, 4
closemessage
compare VAR_SPECIAL_8, 0
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6DF9
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6DF9
compare VAR_SPECIAL_8, 1
- call_if 1, LittlerootTown_BrendansHouse_1F_EventScript_1B6E0B
- playse 8
+ call_if_eq LittlerootTown_BrendansHouse_1F_EventScript_1B6E0B
+ playse SE_DOOR
removeobject VAR_SPECIAL_9
setflag FLAG_RECEIVED_SS_TICKET
setvar VAR_LITTLEROOT_HOUSES_STATE, 4
diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc
index eb12ab148..4b21aa99b 100644
--- a/data/scripts/pokeblocks.inc
+++ b/data/scripts/pokeblocks.inc
@@ -38,10 +38,10 @@ LilycoveCity_ContestLobby_EventScript_1B7681:: @ 81B7681
SlateportCity_ContestLobby_EventScript_1B7681:: @ 81B7681
VerdanturfTown_ContestLobby_EventScript_1B7681:: @ 81B7681
lockall
- msgbox FallarborTown_ContestLobby_Text_1B6E63, 5
- compare RESULT, 1
+ msgbox FallarborTown_ContestLobby_Text_1B6E63, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FallarborTown_ContestLobby_EventScript_1B76A1
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq FallarborTown_ContestLobby_EventScript_1B76E5
end
@@ -54,9 +54,9 @@ FallarborTown_ContestLobby_EventScript_1B76A1:: @ 81B76A1
goto_if_eq FallarborTown_ContestLobby_EventScript_1B770E
msgbox FallarborTown_ContestLobby_Text_1B6E9D, 4
specialvar RESULT, GetFirstFreePokeblockSlot
- compare RESULT, 65535
- goto_if 5, FallarborTown_ContestLobby_EventScript_1B76EF
- compare RESULT, 65535
+ compare RESULT, -1
+ goto_if_ne FallarborTown_ContestLobby_EventScript_1B76EF
+ compare RESULT, -1
goto_if_eq FallarborTown_ContestLobby_EventScript_1B7776
end
@@ -66,18 +66,17 @@ FallarborTown_ContestLobby_EventScript_1B76E5:: @ 81B76E5
end
FallarborTown_ContestLobby_EventScript_1B76EF:: @ 81B76EF
- msgbox FallarborTown_ContestLobby_Text_1B6ED0, 5
- compare RESULT, 1
+ msgbox FallarborTown_ContestLobby_Text_1B6ED0, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FallarborTown_ContestLobby_EventScript_1B7734
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq FallarborTown_ContestLobby_EventScript_1B7726
end
FallarborTown_ContestLobby_EventScript_1B770E:: @ 81B770E
msgbox FallarborTown_ContestLobby_Text_1B6FF0, 4
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_FALLARBOR
- goto_if_eq FallarborTown_ContestLobby_EventScript_1B774F
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_FALLARBOR, FallarborTown_ContestLobby_EventScript_1B774F
goto FallarborTown_ContestLobby_EventScript_1B7759
end
@@ -162,8 +161,7 @@ FallarborTown_ContestLobby_EventScript_1B77DC:: @ 81B77DC
FallarborTown_ContestLobby_EventScript_1B77E6:: @ 81B77E6
dodailyevents
- checkflag FLAG_DAILY_RECEIVED_BERRY_FALLARBOR
- goto_if_eq FallarborTown_ContestLobby_EventScript_1B77F6
+ goto_if_set FLAG_DAILY_RECEIVED_BERRY_FALLARBOR, FallarborTown_ContestLobby_EventScript_1B77F6
goto FallarborTown_ContestLobby_EventScript_1B7800
end
@@ -215,17 +213,17 @@ VerdanturfTown_ContestLobby_EventScript_1B783B:: @ 81B783B
compare RESULT, 0
goto_if_eq FallarborTown_ContestLobby_EventScript_1B7942
specialvar RESULT, GetFirstFreePokeblockSlot
- compare RESULT, 65535
- goto_if 5, FallarborTown_ContestLobby_EventScript_1B7878
- compare RESULT, 65535
+ compare RESULT, -1
+ goto_if_ne FallarborTown_ContestLobby_EventScript_1B7878
+ compare RESULT, -1
goto_if_eq FallarborTown_ContestLobby_EventScript_1B7938
end
FallarborTown_ContestLobby_EventScript_1B7878:: @ 81B7878
- msgbox FallarborTown_ContestLobby_Text_1B727C, 5
- compare RESULT, 1
+ msgbox FallarborTown_ContestLobby_Text_1B727C, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq FallarborTown_ContestLobby_EventScript_1B78A1
- compare RESULT, 0
+ compare RESULT, NO
goto_if_eq FallarborTown_ContestLobby_EventScript_1B7936
end
diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc
index 5dba65b8a..d34b357ea 100644
--- a/data/scripts/safari_zone.inc
+++ b/data/scripts/safari_zone.inc
@@ -13,8 +13,8 @@ EventScript_1C341B: @ 81C341B
gUnknown_081C342D:: @ 81C342D
lockall
- msgbox UnknownString_81C34B2, 5
- compare RESULT, 1
+ msgbox UnknownString_81C34B2, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq EventScript_1C3443
releaseall
end
@@ -24,7 +24,7 @@ EventScript_1C3443:
gUnknown_081C3448:: @ 81C3448
lockall
- playse 73
+ playse SE_PINPON
message UnknownString_81C34E4
waitmessage
waitbuttonpress
@@ -33,7 +33,7 @@ gUnknown_081C3448:: @ 81C3448
gUnknown_081C3459:: @ 81C3459
lockall
- playse 73
+ playse SE_PINPON
message UnknownString_81C3514
waitmessage
waitbuttonpress
@@ -44,9 +44,9 @@ gUnknown_081C346A:: @ 81C346A
lockall
special SafariZoneGetPokeblockNameInFeeder
compare RESULT, 0xFFFF
- goto_if 5, EventScript_1C34A9
- msgbox UnknownString_81C354E, 5
- compare RESULT, 1
+ goto_if_ne EventScript_1C34A9
+ msgbox UnknownString_81C354E, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq EventScript_1C348E
releaseall
end
@@ -56,7 +56,7 @@ EventScript_1C348E:
special OpenPokeblockCaseOnFeeder
waitstate
compare RESULT, 0xFFFF
- goto_if 5, EventScript_1C34A0
+ goto_if_ne EventScript_1C34A0
end
EventScript_1C34A0:
diff --git a/data/scripts/secret_power_tm.inc b/data/scripts/secret_power_tm.inc
index deb30187f..6fe9e9a6e 100644
--- a/data/scripts/secret_power_tm.inc
+++ b/data/scripts/secret_power_tm.inc
@@ -1,15 +1,15 @@
Route111_EventScript_1A3858:: @ 81A3858
lock
faceplayer
- msgbox Route111_Text_1A3520, 5
- compare RESULT, 1
+ msgbox Route111_Text_1A3520, MSGBOX_YESNO
+ compare RESULT, YES
goto_if_eq Route111_EventScript_1A3877
msgbox Route111_Text_1A37B5, 4
release
end
Route111_EventScript_1A3877:: @ 81A3877
- giveitem_std ITEM_TM43
+ giveitem_std ITEM_TM43_SECRET_POWER
compare RESULT, 0
goto_if_eq Route111_EventScript_1A38D9
msgbox Route111_Text_1A35C5, 4
@@ -17,11 +17,11 @@ Route111_EventScript_1A3877:: @ 81A3877
setflag FLAG_RECEIVED_SECRET_POWER
clearflag FLAG_HIDE_TM_SALESMAN_SLATEPORT
compare FACING, 3
- call_if 1, Route111_EventScript_1A38C3
+ call_if_eq Route111_EventScript_1A38C3
compare FACING, 4
- call_if 1, Route111_EventScript_1A38C3
+ call_if_eq Route111_EventScript_1A38C3
compare FACING, 2
- call_if 1, Route111_EventScript_1A38CE
+ call_if_eq Route111_EventScript_1A38CE
removeobject LAST_TALKED
release
end
diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc
index cf82cf943..5a84a1b48 100644
--- a/data/scripts/tv.inc
+++ b/data/scripts/tv.inc
@@ -7,10 +7,8 @@ Event_TV:: @ 81A6E72
goto_if_eq EventScript_1A6F01
compare RESULT, 1
goto_if_eq EventScript_1A6F0B
- checkflag FLAG_SYS_TV_START
- goto_if 0, EventScript_1A6EF1
- checkflag FLAG_SYS_TV_WATCH
- goto_if_eq EventScript_1A6EF1
+ goto_if_unset FLAG_SYS_TV_START, EventScript_1A6EF1
+ goto_if_set FLAG_SYS_TV_WATCH, EventScript_1A6EF1
specialvar RESULT, IsTVShowInSearchOfTrainersAiring
compare RESULT, 1
goto_if_eq EventScript_1A6F66
@@ -27,7 +25,7 @@ EventScript_1A6EBB:
copyvar VAR_SPECIAL_4, RESULT
specialvar RESULT, GetTVShowType
compare RESULT, 0
- goto_if 5, EventScript_1A6F21
+ goto_if_ne EventScript_1A6F21
end
EventScript_1A6EF1:
@@ -60,7 +58,7 @@ EventScript_1A6F21:
waitmessage
waitbuttonpress
compare RESULT, 1
- goto_if 5, EventScript_1A6F21
+ goto_if_ne EventScript_1A6F21
goto EventScript_1A6F37
end
diff --git a/data/slot_machine.s b/data/slot_machine.s
deleted file mode 100644
index 9bd6fe5c9..000000000
--- a/data/slot_machine.s
+++ /dev/null
@@ -1,1530 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083ECAAC:: @ 83ECAAC
- .4byte sub_8101D5C
- .4byte sub_8101D8C
- .4byte sub_8101DB0
- .4byte sub_8101DF4
- .4byte sub_8101E10
- .4byte sub_8101E3C
- .4byte sub_8101F44
- .4byte sub_8101F60
- .4byte sub_8101F88
- .4byte sub_8101FA4
- .4byte sub_8102008
- .4byte sub_8102034
- .4byte sub_8102058
- .4byte sub_8102090
- .4byte sub_81020C8
- .4byte sub_81021E0
- .4byte sub_81021FC
- .4byte sub_8102264
- .4byte sub_81022A0
- .4byte sub_81022CC
- .4byte sub_81022F0
- .4byte sub_8102318
- .4byte sub_8102344
- .4byte sub_810239C
- .4byte sub_81023B8
- .4byte sub_81023E0
- .4byte sub_81023FC
- .4byte sub_8102424
- .4byte sub_8102460
-
- .align 2
-gUnknown_083ECB20:: @ 83ECB20
- .4byte sub_8102A9C
- .4byte sub_8102AD0
- .4byte sub_8102B80
-
- .align 2
-gUnknown_083ECB2C:: @ 83ECB2C
- .4byte sub_8102EA0
- .4byte sub_8102EA4
- .4byte sub_8102EC0
- .4byte sub_8102F4C
- .4byte sub_8103008
-
- .align 2
-gUnknown_083ECB40:: @ 83ECB40
- .4byte sub_810305C
- .4byte sub_81032C0
- .4byte sub_81033DC
-
- .align 2
-gUnknown_083ECB4C:: @ 83ECB4C
- .4byte sub_81034F4
- .4byte sub_8103540
- .4byte sub_810380C
-
- .align 1
-gUnknown_083ECB58:: @ 83ECB58
- .2byte 2, 4, 4, 4, 8
-
- .align 2
-gUnknown_083ECB64:: @ 83ECB64
- .4byte sub_8103154
- .4byte sub_81031B4
- .4byte sub_81031B4
-
- .align 2
-gUnknown_083ECB70:: @ 83ECB70
- .4byte sub_81032E8
- .4byte sub_81032E8
- .4byte sub_810333C
-
- .align 2
-gUnknown_083ECB7C:: @ 83ECB7C
- .4byte sub_810341C
- .4byte sub_810341C
- .4byte sub_810347C
-
- .align 2
-gUnknown_083ECB88:: @ 83ECB88
- .4byte sub_8103564
- .4byte j5_08111E84
- .4byte sub_8103668
-
- .align 2
-gUnknown_083ECB94:: @ 83ECB94
- .4byte sub_8103830
- .4byte sub_8103910
- .4byte sub_8103A78
-
- .align 2
-gUnknown_083ECBA0:: @ 83ECBA0
- .4byte sub_8103C78
- .4byte sub_8103CAC
- .4byte sub_8103CC8
-
- .align 1
-gUnknown_083ECBAC:: @ 83ECBAC
- .2byte 5, 10, 15
-
- .align 2
-gUnknown_083ECBB4:: @ 83ECBB4
- .4byte nullsub_68
- .4byte sub_810411C
- .4byte sub_8104144
- .4byte sub_81041AC
-
- .align 1
-gUnknown_083ECBC4:: @ 83ECBC4
- .2byte 0x9E, 0x6E, 0x9F, 0x6F, 0xAF, 0x7F
-
- .align 2
-gUnknown_083ECBD0:: @ 83ECBD0
- .4byte sub_810437C
- .4byte sub_81043EC
- .4byte sub_8104468
- .4byte sub_8104498
- .4byte sub_8104548
- .4byte sub_8104598
- .4byte sub_81045CC
- .4byte sub_810463C
- .4byte sub_81046C0
- .4byte sub_8104764
- .4byte sub_8104794
- .4byte sub_81047EC
- .4byte sub_8104860
- .4byte sub_81048A8
- .4byte sub_81048CC
- .4byte sub_8104940
- .4byte sub_81049C8
- .4byte sub_8104794
- .4byte sub_81049F8
-
-gUnknown_083ECC1C:: @ 83ECC1C
- .byte 1, 1, 2, 2
-
- .align 1
-gUnknown_083ECC20:: @ 83ECC20
- .2byte 0x40, 0x30, 0x18, 0x8
-
- .align 1
-gUnknown_083ECC28:: @ 83ECC28
- .2byte 10, 8, 6, 4
-
- .align 2
-gUnknown_083ECC30:: @ 83ECC30
- .4byte sub_8104B3C
- .4byte sub_8104B60
- .4byte sub_8104B80
- .4byte sub_8104B60
- .4byte sub_8104BC8
- .4byte sub_8104B60
- .4byte sub_8104BFC
- .4byte sub_8104B60
- .4byte sub_8104C44
-
-gUnknown_083ECC54:: @ 83ECC54
- .4byte nullsub_69
-
-gUnknown_083ECC58:: @ 83ECC58
- .byte 16, 0
-
- .align 1
-gUnknown_083ECC5A:: @ 83ECC5A
- .2byte 0x0, 0x40, 0x80, 0xC0
-
- .align 1
-gUnknown_083ECC62:: @ 83ECC62
- .2byte 4, -4, 4, -4
-
- .align 1
-gUnknown_083ECC6A:: @ 83ECC6A
- .2byte 4, 4, -4, -4
-
- .align 1
-gUnknown_083ECC72:: @ 83ECC72
- .2byte 0, -40, 0, 0, 48, 0, 24, 0
-
- .align 1
-gUnknown_083ECC82:: @ 83ECC82
- .2byte -32, 0, -32, -48, 0, -48, 0, -48
-
- .align 1
-gUnknown_083ECC92:: @ 83ECC92
- .2byte 16, 12, 16, 0, 0, 4, 8, 8
-
- .align 1
-gUnknown_083ECCA2:: @ 83ECCA2
- .2byte 160, 192, 224, 104, 80, 64, 48, 24
-
-gUnknown_083ECCB2:: @ 83ECCB2
- .byte 0, 4, 2, 6, 5, 3, 1, 3, 4, 5, 6, 2, 0, 5, 3, 6, 2, 1, 5, 3, 6
- .byte 0, 4, 6, 3, 2, 4, 6, 5, 5, 3, 1, 3, 6, 4, 2, 3, 6, 4, 3, 6, 4
- .byte 0, 5, 1, 6, 3, 2, 6, 3, 5, 2, 6, 3, 2, 5, 6, 3, 2, 5, 6, 3, 4
-
-gUnknown_083ECCF1:: @ 83ECCF1
- .byte 1, 0, 5, 4, 3, 2, 0
-
- .align 1
-gUnknown_083ECCF8:: @ 83ECCF8
- .2byte 0, 6, 0, 10, 0, 2
-
-gUnknown_083ECD04:: @ 83ECD04
- .byte 1, 1, 12
- .byte 1, 1, 14
- .byte 2, 2, 14
- .byte 2, 2, 14
- .byte 2, 3, 16
- .byte 3, 3, 16
-
-gUnknown_083ECD16:: @ 83ECD16
- .byte 25, 25, 30, 40, 40, 50
- .byte 25, 25, 30, 30, 35, 35
- .byte 25, 25, 30, 25, 25, 30
-
-gUnknown_083ECD28:: @ 83ECD28
- .byte 20, 25, 25, 20, 25, 25
- .byte 12, 15, 15, 18, 19, 22
- .byte 25, 25, 25, 30, 30, 40
- .byte 25, 25, 20, 20, 15, 15
- .byte 40, 40, 35, 35, 40, 40
-
-gUnknown_083ECD46:: @ 83ECD46
- .byte -13, -13, -13, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5
- .byte 5, 5, 5,-106,-106,-106,-106,-126,-126,-126,-126,-126,-126, 100, 100, 100, 5
- .byte 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40
- .byte 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100
- .byte 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100
- .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6
-
-gUnknown_083ECDAC:: @ 83ECDAC
- .byte -13, -13, -13, -56, -56, -56, -56, -96, -96, -96, -96, -96, -96, 70, 70, 70, 5
- .byte 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6
- .byte 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35
- .byte 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50
- .byte 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100
- .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60
-
- .align 1
-gUnknown_083ECE12:: @ 83ECE12
- .2byte 128, 175, 200, 225, 256
-
-gUnknown_083ECE1C:: @ 83ECE1C
- .byte 10, 0, 5, 0, 10, 0, 10, 0, 10, 0, 15, 0, 10, 0, 25, 0, 10, 0, 35, 0
-
-gUnknown_083ECE30:: @ 83ECE30
- .byte 0, 0, 5, 0, 10, 0, 15, 0, 20, 0
-
-gUnknown_083ECE3A:: @ 83ECE3A
- .byte 6, 4, 3, 2, 5, 0, 0, 0
-
-gUnknown_083ECE42:: @ 83ECE42
- .byte 0x80, 0
- .byte 0x20, 0
- .byte 0x40, 0
-
-gUnknown_083ECE48:: @ 83ECE48
- .byte 0x10, 0
- .byte 0x08, 0
- .byte 0x04, 0
- .byte 0x02, 0
- .byte 0x01, 0
-
-gUnknown_083ECE52:: @ 83ECE52
- .byte 7, 8, 4, 3, 0, 5, 2, 0
-
- .align 1
-gUnknown_083ECE5A:: @ 83ECE5A
- .2byte 1, 2, 4, 8, 16, 32, 64, 128, 256
-
- .align 1
-gUnknown_083ECE6C:: @ 83ECE6C
- .2byte 2, 4, 0, 6, 12, 3, 90, 300, 300
-
- .align 1
-gUnknown_083ECE7E:: @ 83ECE7E
- .2byte 208, 56
- .2byte 184, 0
- .2byte 200, 8
- .2byte 216, 16
- .2byte 232, 24
- .2byte 208, 72
- .2byte 208, 8
- .2byte 208, 64
- .2byte 208, 56
- .2byte 192, 88
- .2byte 224, 88
- .2byte 192, 120
- .2byte 224, 120
- .2byte 144, 56
- .2byte 272, 88
- .2byte 168, 112
- .2byte 208, 84
- .2byte 208, 112
- .2byte 188, 52
- .2byte 208, 52
- .2byte 228, 52
- .2byte 184, 72
- .2byte 196, 72
- .2byte 208, 72
- .2byte 220, 72
- .2byte 232, 72
- .2byte 188, 52
- .2byte 208, 52
- .2byte 228, 52
- .2byte 184, 72
- .2byte 196, 72
- .2byte 208, 72
- .2byte 220, 72
- .2byte 232, 72
- .2byte 0, 0
-
- .align 2
-gUnknown_083ECF0C:: @ 83ECF0C
- .4byte sub_8105C64
- .4byte sub_8105F54
- .4byte sub_8105F54
- .4byte sub_8105F54
- .4byte sub_8105F54
- .4byte sub_8105F9C
- .4byte sub_8105EB4
- .4byte sub_8105C64
- .4byte sub_8105C64
- .4byte sub_8105C6C
- .4byte sub_8105CF0
- .4byte sub_8105D08
- .4byte sub_8105D20
- .4byte sub_8105D3C
- .4byte sub_8105DA4
- .4byte sub_8105E08
- .4byte sub_8105C64
- .4byte sub_8106058
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81060FC
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_81061C8
- .4byte sub_8106230
-
- .align 2
-Unknown_83ECF98:
- .byte 25, 34
- .2byte 0
- .byte 2, 0
- .2byte 0
- .byte 9, 16
- .2byte 0
- .byte 255, 0
- .2byte 0
-
- .align 2
-Unknown_83ECFA8:
- .byte 10, 1
- .2byte 0
- .byte 11, 2
- .2byte 0
- .byte 12, 3
- .2byte 0
- .byte 13, 4
- .2byte 0
- .byte 5, 5
- .2byte 0
- .byte 8, 6
- .2byte 0
- .byte 255, 0
- .2byte 0
-
- .align 2
-Unknown_83ECFC4:
- .byte 3, 7
- .2byte 0
- .byte 8, 17
- .2byte 0
- .byte 255, 0
- .2byte 0
-
- .align 2
-Unknown_83ECFD0:
- .byte 4, 8
- .2byte 0
- .byte 6, 9
- .2byte 0
- .byte 6, 10
- .2byte 1
- .byte 6, 11
- .2byte 2
- .byte 6, 12
- .2byte 3
- .byte 255, 0
- .2byte 0
-
- .align 2
-Unknown_83ECFE8:
- .byte 0, 13
- .2byte 0
- .byte 1, 14
- .2byte 0
- .byte 7, 15
- .2byte 0
- .byte 255, 0
- .2byte 0
-
- .align 2
-Unknown_83ECFF8:
- .byte 19, 26
- .2byte 0
- .byte 20, 27
- .2byte 1
- .byte 21, 28
- .2byte 2
- .byte 14, 29
- .2byte 3
- .byte 15, 30
- .2byte 4
- .byte 16, 31
- .2byte 5
- .byte 17, 32
- .2byte 6
- .byte 18, 33
- .2byte 7
- .byte 8, 17
- .2byte 0
- .byte 255, 0
- .2byte 0
-
- .align 2
-Unknown_83ED020:
- .byte 22, 18
- .2byte 0
- .byte 23, 19
- .2byte 1
- .byte 24, 20
- .2byte 2
- .byte 14, 21
- .2byte 3
- .byte 15, 22
- .2byte 4
- .byte 16, 23
- .2byte 5
- .byte 17, 24
- .2byte 6
- .byte 18, 25
- .2byte 7
- .byte 8, 17
- .2byte 0
- .byte 255, 0
- .2byte 0
-
- .align 2
-gUnknown_083ED048:: @ 83ED048
- .4byte Unknown_83ECF98
- .4byte Unknown_83ECFA8
- .4byte Unknown_83ECFC4
- .4byte Unknown_83ECFD0
- .4byte Unknown_83ECFE8
- .4byte Unknown_83ED020
- .4byte Unknown_83ECFF8
-
- .align 2
-gUnknown_083ED064:: @ 83ED064
- .4byte sub_810639C
- .4byte sub_8106364
- .4byte sub_8106370
- .4byte nullsub_70
- .4byte nullsub_70
- .4byte sub_8106370
- .4byte sub_8106370
-
- .align 2
-gOamData_83ED080:: @ 83ED080
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED088:: @ 83ED088
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED090:: @ 83ED090
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED098:: @ 83ED098
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0A0:: @ 83ED0A0
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0A8:: @ 83ED0A8
- .2byte 0x8000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0B0:: @ 83ED0B0
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_83ED0B8:: @ 83ED0B8
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gSpriteImageTable_83ED0C0:: @ 83ED0C0
- obj_frame_tiles gSharedMem + 0x13200, 0x800
- obj_frame_tiles gSharedMem + 0x13A00, 0x800
- obj_frame_tiles gSharedMem + 0x14200, 0x800
- obj_frame_tiles gSharedMem + 0x14A00, 0x800
- obj_frame_tiles gSharedMem + 0x15200, 0x800
-
- .align 2
-gSpriteImageTable_83ED0E8:: @ 83ED0E8
- obj_frame_tiles gSharedMem + 0x15A00, 0x300
-
- .align 2
-gSpriteImageTable_83ED0F0:: @ 83ED0F0
- obj_frame_tiles gSharedMem + 0x15D00, 0x500
-
- .align 2
-gSpriteImageTable_83ED0F8:: @ 83ED0F8
- obj_frame_tiles gSharedMem + 0x16200, 0x600
-
- .align 2
-gSpriteImageTable_83ED100:: @ 83ED100
- obj_frame_tiles gSpriteImage_8E988E8, 0x80
- obj_frame_tiles gSpriteImage_8E98968, 0x80
- obj_frame_tiles gSpriteImage_8E989E8, 0x80
- obj_frame_tiles gSpriteImage_8E98A68, 0x80
- obj_frame_tiles gSpriteImage_8E98AE8, 0x80
- obj_frame_tiles gSpriteImage_8E98B68, 0x80
-
- .align 2
-gSpriteImageTable_83ED130:: @ 83ED130
- obj_frame_tiles gSpriteImage_8E991E8, 0x200
-
- .align 2
-gSpriteImageTable_83ED138:: @ 83ED138
- obj_frame_tiles gSpriteImage_8E99808, 0x40
-
- .align 2
-gSpriteImageTable_83ED140:: @ 83ED140
- obj_frame_tiles gSpriteImage_8E98BE8, 0x100
- obj_frame_tiles gSpriteImage_8E98CE8, 0x100
-
- .align 2
-gSpriteImageTable_83ED150:: @ 83ED150
- obj_frame_tiles gSpriteImage_8E993E8, 0x400
-
- .align 2
-gSpriteImageTable_83ED158:: @ 83ED158
- obj_frame_tiles gSpriteImage_8E98DE8, 0x200
- obj_frame_tiles gSpriteImage_8E98FE8, 0x200
-
- .align 2
-gSpriteImageTable_83ED168:: @ 83ED168
- obj_frame_tiles gSpriteImage_8E98848, 0x20
-
- .align 2
-gSpriteImageTable_83ED170:: @ 83ED170
- obj_frame_tiles gSpriteImage_8E98868, 0x80
-
- .align 2
-gSpriteImageTable_83ED178:: @ 83ED178
- obj_frame_tiles gSharedMem + 0x10000, 0x600
-
- .align 2
-gSpriteImageTable_83ED180:: @ 83ED180
- obj_frame_tiles gSharedMem + 0x10600, 0x200
-
- .align 2
-gSpriteImageTable_83ED188:: @ 83ED188
- obj_frame_tiles gSharedMem + 0x10800, 0x200
-
- .align 2
-gSpriteImageTable_83ED190:: @ 83ED190
- obj_frame_tiles gSharedMem + 0x10A00, 0x200
-
- .align 2
-gSpriteImageTable_83ED198:: @ 83ED198
- obj_frame_tiles gSharedMem + 0x10C00, 0x300
-
- .align 2
-gSpriteImageTable_83ED1A0:: @ 83ED1A0
- obj_frame_tiles gSharedMem + 0x11000, 0x400
-
- .align 2
-gSpriteImageTable_83ED1A8:: @ 83ED1A8
- obj_frame_tiles gSharedMem + 0x11400, 0x200
-
- .align 2
-gSpriteImageTable_83ED1B0:: @ 83ED1B0
- obj_frame_tiles gSharedMem + 0x11600, 0x300
-
- .align 2
-gSpriteImageTable_83ED1B8:: @ 83ED1B8
- obj_frame_tiles gSharedMem + 0x11900, 0x300
-
- .align 2
-gSpriteImageTable_83ED1C0:: @ 83ED1C0
- obj_frame_tiles gSharedMem + 0x11C00, 0x200
- obj_frame_tiles gSharedMem + 0x11E00, 0x200
- obj_frame_tiles gSharedMem + 0x11E00, 0x200 @ is this a typo?
-
- .align 2
-gSpriteImageTable_83ED1D8:: @ 83ED1D8
- obj_frame_tiles gSharedMem + 0x12000, 0x280
-
- .align 2
-gSpriteImageTable_83ED1E0:: @ 83ED1E0
- obj_frame_tiles gSharedMem + 0x12280, 0x80
- obj_frame_tiles gSharedMem + 0x12300, 0x80
- obj_frame_tiles gSharedMem + 0x12380, 0x80
- obj_frame_tiles gSharedMem + 0x12400, 0x80
- obj_frame_tiles gSharedMem + 0x12480, 0x80
-
- .align 2
-gSpriteImageTable_83ED208:: @ 83ED208
- obj_frame_tiles gSharedMem + 0x12600, 0x480
- obj_frame_tiles gSharedMem + 0x12A80, 0x480
-
- .align 2
-gSpriteImageTable_83ED218:: @ 83ED218
- obj_frame_tiles gSharedMem + 0x12F00, 0x180
- obj_frame_tiles gSharedMem + 0x13080, 0x180
-
- .align 2
-gSpriteImageTable_83ED228:: @ 83ED228
- obj_frame_tiles gSpriteImage_8E98828, 0x20
-
- .align 2
-gSpriteAnim_83ED230:: @ 83ED230
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED238:: @ 83ED238
- obj_image_anim_frame 0, 1
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED240:: @ 83ED240
- obj_image_anim_frame 0, 16
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED248:: @ 83ED248
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED254:: @ 83ED254
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED260:: @ 83ED260
- obj_image_anim_frame 1, 4
- obj_image_anim_frame 0, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED26C:: @ 83ED26C
- obj_image_anim_frame 2, 32
- obj_image_anim_frame 3, 32
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED278:: @ 83ED278
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED280:: @ 83ED280
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED288:: @ 83ED288
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED290:: @ 83ED290
- obj_image_anim_frame 2, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED298:: @ 83ED298
- obj_image_anim_frame 3, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2A0:: @ 83ED2A0
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2A8:: @ 83ED2A8
- obj_image_anim_frame 5, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2B0:: @ 83ED2B0
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 1, 4
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2BC:: @ 83ED2BC
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2C8:: @ 83ED2C8
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2D4:: @ 83ED2D4
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED2DC:: @ 83ED2DC
- obj_image_anim_frame 0, 30
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2E8:: @ 83ED2E8
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16
- obj_image_anim_frame 0, 16
- obj_image_anim_frame 1, 16, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_83ED2FC:: @ 83ED2FC
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED304:: @ 83ED304
- obj_image_anim_frame 0, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED30C:: @ 83ED30C
- obj_image_anim_frame 1, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED314:: @ 83ED314
- obj_image_anim_frame 2, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED31C:: @ 83ED31C
- obj_image_anim_frame 3, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83ED324:: @ 83ED324
- obj_image_anim_frame 4, 1
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83ED32C:: @ 83ED32C
- .4byte gSpriteAnim_83ED230
-
- .align 2
-gSpriteAnimTable_83ED330:: @ 83ED330
- .4byte gSpriteAnim_83ED238
-
- .align 2
-gSpriteAnimTable_83ED334:: @ 83ED334
- .4byte gSpriteAnim_83ED240
- .4byte gSpriteAnim_83ED248
- .4byte gSpriteAnim_83ED254
- .4byte gSpriteAnim_83ED260
- .4byte gSpriteAnim_83ED26C
- .4byte gSpriteAnim_83ED278
-
- .align 2
-gSpriteAnimTable_83ED34C:: @ 83ED34C
- .4byte gSpriteAnim_83ED280
- .4byte gSpriteAnim_83ED288
- .4byte gSpriteAnim_83ED290
- .4byte gSpriteAnim_83ED298
- .4byte gSpriteAnim_83ED2A0
- .4byte gSpriteAnim_83ED2A8
-
- .align 2
-gSpriteAnimTable_83ED364:: @ 83ED364
- .4byte gSpriteAnim_83ED2B0
-
- .align 2
-gSpriteAnimTable_83ED368:: @ 83ED368
- .4byte gSpriteAnim_83ED2BC
-
- .align 2
-gSpriteAnimTable_83ED36C:: @ 83ED36C
- .4byte gSpriteAnim_83ED2C8
- .4byte gSpriteAnim_83ED2D4
-
- .align 2
-gSpriteAnimTable_83ED374:: @ 83ED374
- .4byte gSpriteAnim_83ED2DC
-
- .align 2
-gSpriteAnimTable_83ED378:: @ 83ED378
- .4byte gSpriteAnim_83ED2E8
- .4byte gSpriteAnim_83ED2FC
-
- .align 2
-gSpriteAnimTable_83ED380:: @ 83ED380
- .4byte gSpriteAnim_83ED304
- .4byte gSpriteAnim_83ED30C
- .4byte gSpriteAnim_83ED314
- .4byte gSpriteAnim_83ED31C
- .4byte gSpriteAnim_83ED324
-
- .align 2
-gSpriteAffineAnim_83ED394:: @ 83ED394
- obj_rot_scal_anim_frame 0x10, 0x10, 0, 0
- obj_rot_scal_anim_loop 0
- obj_rot_scal_anim_frame 0x1, 0x1, 0, 1
- obj_rot_scal_anim_loop 255
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83ED3BC:: @ 83ED3BC
- .4byte gSpriteAffineAnim_83ED394
-
- .align 2
-gSpriteAffineAnim_83ED3C0:: @ 83ED3C0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 6, 32
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_frame 0x0, 0x0, -12, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 12, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83ED410:: @ 83ED410
- .4byte gSpriteAffineAnim_83ED3C0
-
- .align 2
-gSpriteTemplate_83ED414:: @ 83ED414
- spr_template 0, 0, gOamData_83ED0A0, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_8104F18
-
- .align 2
-gSpriteTemplate_83ED42C:: @ 83ED42C
- spr_template 7, 4, gOamData_83ED088, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_810506C
-
- .align 2
-gSpriteTemplate_83ED444:: @ 83ED444
- spr_template 17, 0, gOamData_83ED0B8, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED45C:: @ 83ED45C
- spr_template 0xFFFF, 1, gOamData_83ED0B8, gSpriteAnimTable_83ED334, gSpriteImageTable_83ED0C0, gDummySpriteAffineAnimTable, sub_8105170
-
- .align 2
-gSpriteTemplate_83ED474:: @ 83ED474
- spr_template 0xFFFF, 2, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0E8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED48C:: @ 83ED48C
- spr_template 0xFFFF, 3, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED4A4:: @ 83ED4A4
- spr_template 0xFFFF, 3, gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED4BC:: @ 83ED4BC
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED34C, gSpriteImageTable_83ED100, gDummySpriteAffineAnimTable, sub_810535C
-
- .align 2
-gSpriteTemplate_83ED4D4:: @ 83ED4D4
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED130, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED4EC:: @ 83ED4EC
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED138, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED504:: @ 83ED504
- spr_template 0xFFFF, 4, gOamData_83ED098, gSpriteAnimTable_83ED364, gSpriteImageTable_83ED140, gDummySpriteAffineAnimTable, sub_810562C
-
- .align 2
-gSpriteTemplate_83ED51C:: @ 83ED51C
- spr_template 0xFFFF, 7, gOamData_83ED0A8, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED150, gDummySpriteAffineAnimTable, sub_8105784
-
- .align 2
-gSpriteTemplate_83ED534:: @ 83ED534
- spr_template 0xFFFF, 5, gOamData_83ED0A0, gSpriteAnimTable_83ED368, gSpriteImageTable_83ED158, gDummySpriteAffineAnimTable, sub_8105894
-
- .align 2
-gSpriteTemplate_83ED54C:: @ 83ED54C
- spr_template 0xFFFF, 4, gOamData_83ED080, gSpriteAnimTable_83ED330, gSpriteImageTable_83ED168, gDummySpriteAffineAnimTable, sub_810594C
-
- .align 2
-gSpriteTemplate_83ED564:: @ 83ED564
- spr_template 0xFFFF, 4, gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED170, gSpriteAffineAnimTable_83ED3BC, sub_8105A38
-
- .align 2
-gSpriteTemplate_83ED57C:: @ 83ED57C
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED178, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED594:: @ 83ED594
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED180, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5AC:: @ 83ED5AC
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED188, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5C4:: @ 83ED5C4
- spr_template 18, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED190, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5DC:: @ 83ED5DC
- spr_template 0xFFFF, 6, gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED198, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED5F4:: @ 83ED5F4
- spr_template 0xFFFF, 6, gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED60C:: @ 83ED60C
- spr_template 19, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED624:: @ 83ED624
- spr_template 20, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED63C:: @ 83ED63C
- spr_template 21, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED654:: @ 83ED654
- spr_template 0xFFFF, 6, gOamData_83ED0A0, gSpriteAnimTable_83ED36C, gSpriteImageTable_83ED1C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED66C:: @ 83ED66C
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1D8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED684:: @ 83ED684
- spr_template 0xFFFF, 6, gOamData_83ED090, gSpriteAnimTable_83ED380, gSpriteImageTable_83ED1E0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED69C:: @ 83ED69C
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED378, gSpriteImageTable_83ED208, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED6B4:: @ 83ED6B4
- spr_template 0xFFFF, 6, gOamData_83ED080, gSpriteAnimTable_83ED374, gSpriteImageTable_83ED218, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83ED6CC:: @ 83ED6CC
- spr_template 0xFFFF, 4, gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70
-
- .align 2
-gSubspriteTable_83ED6E4:: @ 83ED6E4
- subsprite -64, -64, 3, 0, 64x64
- subsprite 0, -64, 3, 0, 64x64
- subsprite -64, 0, 3, 0, 64x64
- subsprite 0, 0, 3, 0, 64x64
-
- .align 2
-gSubspriteTables_83ED704:: @ 83ED704
- .4byte 4, gSubspriteTable_83ED6E4
-
- .align 2
-gSubspriteTable_83ED70C:: @ 83ED70C
- subsprite -32, -12, 1, 0, 32x8
- subsprite 0, -12, 1, 4, 32x8
- subsprite -32, -4, 1, 8, 32x8
- subsprite 0, -4, 1, 12, 32x8
- subsprite -32, 4, 1, 16, 32x8
- subsprite 0, 4, 1, 20, 32x8
-
- .align 2
-gSubspriteTables_83ED73C:: @ 83ED73C
- .4byte 6, gSubspriteTable_83ED70C
-
- .align 2
-gSubspriteTable_83ED744:: @ 83ED744
- subsprite -32, -20, 1, 0, 64x32
- subsprite -32, 12, 1, 32, 32x8
- subsprite 0, 12, 1, 36, 32x8
-
- .align 2
-gSubspriteTables_83ED75C:: @ 83ED75C
- .4byte 3, gSubspriteTable_83ED744
-
- .align 2
-gSubspriteTable_83ED764:: @ 83ED764
- subsprite -32, -24, 1, 0, 64x32
- subsprite -32, 8, 1, 32, 32x8
- subsprite 0, 8, 1, 36, 32x8
- subsprite -32, 16, 1, 40, 32x8
- subsprite 0, 16, 1, 44, 32x8
-
- .align 2
-gSubspriteTables_83ED78C:: @ 83ED78C
- .4byte 5, gSubspriteTable_83ED764
-
- .align 2
-gSubspriteTable_83ED794:: @ 83ED794
- subsprite -32, -8, 1, 0, 32x8
- subsprite 0, -8, 1, 4, 32x8
- subsprite -32, 0, 1, 8, 32x8
- subsprite 0, 0, 1, 12, 32x8
-
- .align 2
-gSubspriteTables_83ED7B4:: @ 83ED7B4
- .4byte 4, gSubspriteTable_83ED794
-
- .align 2
-gSubspriteTable_83ED7BC:: @ 83ED7BC
- subsprite -8, -12, 1, 0, 16x8
- subsprite -8, -4, 1, 0, 16x8
- subsprite -8, 4, 1, 0, 16x8
-
- .align 2
-gSubspriteTables_83ED7D4:: @ 83ED7D4
- .4byte 3, gSubspriteTable_83ED7BC
-
- .align 2
-gSubspriteTable_83ED7DC:: @ 83ED7DC
- subsprite -32, -24, 3, 0, 64x32
- subsprite -32, 8, 3, 32, 32x8
- subsprite 0, 8, 3, 36, 32x8
- subsprite -32, 16, 3, 40, 32x8
- subsprite 0, 16, 3, 44, 32x8
-
- .align 2
-gSubspriteTables_83ED804:: @ 83ED804
- .4byte 5, gSubspriteTable_83ED7DC
-
- .align 2
-gSubspriteTable_83ED80C:: @ 83ED80C
- subsprite -32, -8, 3, 0, 32x8
- subsprite 0, -8, 3, 4, 32x8
- subsprite -32, 0, 3, 8, 32x8
- subsprite 0, 0, 3, 12, 32x8
-
- .align 2
-gSubspriteTables_83ED82C:: @ 83ED82C
- .4byte 4, gSubspriteTable_83ED80C
-
- .align 2
-gSubspriteTable_83ED834:: @ 83ED834
- subsprite -32, -8, 3, 0, 32x8
- subsprite 0, -8, 3, 4, 32x8
- subsprite -32, 0, 3, 8, 32x8
- subsprite 0, 0, 3, 12, 32x8
-
- .align 2
-gSubspriteTables_83ED854:: @ 83ED854
- .4byte 4, gSubspriteTable_83ED834
-
- .align 2
-gSubspriteTable_83ED85C:: @ 83ED85C
- subsprite -32, -8, 3, 0, 32x8
- subsprite 0, -8, 3, 4, 32x8
- subsprite -32, 0, 3, 8, 32x8
- subsprite 0, 0, 3, 12, 32x8
-
- .align 2
-gSubspriteTables_83ED87C:: @ 83ED87C
- .4byte 4, gSubspriteTable_83ED85C
-
- .align 2
-gSubspriteTable_83ED884:: @ 83ED884
- subsprite -32, -12, 3, 0, 32x8
- subsprite 0, -12, 3, 4, 32x8
- subsprite -32, -4, 3, 8, 32x8
- subsprite 0, -4, 3, 12, 32x8
- subsprite -32, 4, 3, 16, 32x8
- subsprite 0, 4, 3, 20, 32x8
-
- .align 2
-gSubspriteTables_83ED8B4:: @ 83ED8B4
- .4byte 6, gSubspriteTable_83ED884
-
- .align 2
-gSubspriteTable_83ED8BC:: @ 83ED8BC
- subsprite -16, -16, 3, 0, 32x32
-
- .align 2
-gSubspriteTable_83ED8C4:: @ 83ED8C4
- subsprite -8, -8, 3, 16, 16x16
-
- .align 2
-gSubspriteTables_83ED8CC:: @ 83ED8CC
- .4byte 1, gSubspriteTable_83ED8BC
- .4byte 1, gSubspriteTable_83ED8C4
-
- .align 2
-gSubspriteTable_83ED8DC:: @ 83ED8DC
- subsprite -24, -24, 3, 0, 32x8
- subsprite 8, -24, 3, 4, 16x8
- subsprite -24, -16, 3, 6, 32x8
- subsprite 8, -16, 3, 10, 16x8
- subsprite -24, -8, 3, 12, 32x8
- subsprite 8, -8, 3, 16, 16x8
- subsprite -24, 0, 3, 18, 32x8
- subsprite 8, 0, 3, 22, 16x8
- subsprite -24, 8, 3, 24, 32x8
- subsprite 8, 8, 3, 28, 16x8
- subsprite -24, 16, 3, 30, 32x8
- subsprite 8, 16, 3, 34, 16x8
-
- .align 2
-gSubspriteTables_83ED93C:: @ 83ED93C
- .4byte 12, gSubspriteTable_83ED8DC
-
- .align 2
-gSubspriteTable_83ED944:: @ 83ED944
- subsprite -16, -12, 3, 0, 32x16
- subsprite -16, 4, 3, 8, 16x8
- subsprite 0, 4, 3, 10, 16x8
-
- .align 2
-gSubspriteTables_83ED95C:: @ 83ED95C
- .4byte 3, gSubspriteTable_83ED944
-
- .align 2
-gSubspriteTable_83ED964:: @ 83ED964
- subsprite -8, -8, 3, 0, 16x8
- subsprite -8, 0, 3, 8, 16x8
-
- .align 2
-gSubspriteTables_83ED974:: @ 83ED974
- .4byte 2, gSubspriteTable_83ED964
-
- .align 2
-gSubspriteTable_83ED97C:: @ 83ED97C
- subsprite -8, -8, 3, 2, 16x8
- subsprite -8, 0, 3, 10, 16x8
-
- .align 2
-gSubspriteTables_83ED98C:: @ 83ED98C
- .4byte 2, gSubspriteTable_83ED97C
-
- .align 2
-gSubspriteTable_83ED994:: @ 83ED994
- subsprite -8, -8, 3, 4, 16x8
- subsprite -8, 0, 3, 12, 16x8
-
- .align 2
-gSubspriteTables_83ED9A4:: @ 83ED9A4
- .4byte 2, gSubspriteTable_83ED994
-
- .align 2
-gSubspriteTable_83ED9AC:: @ 83ED9AC
- subsprite -8, -8, 3, 6, 16x8
- subsprite -8, 0, 3, 14, 16x8
-
- .align 2
-gSubspriteTables_83ED9BC:: @ 83ED9BC
- .4byte 2, gSubspriteTable_83ED9AC
-
- .align 2
-gSubspriteTable_83ED9C4:: @ 83ED9C4
- subsprite -8, -8, 3, 0, 16x8
- subsprite -8, 0, 3, 8, 16x8
-
- .align 2
-gSubspriteTables_83ED9D4:: @ 83ED9D4
- .4byte 2, gSubspriteTable_83ED9C4
-
- .align 2
-gSubspriteTable_83ED9DC:: @ 83ED9DC
- subsprite -4, -8, 3, 2, 8x8
- subsprite -4, 0, 3, 10, 8x8
-
- .align 2
-gSubspriteTables_83ED9EC:: @ 83ED9EC
- .4byte 2, gSubspriteTable_83ED9DC
-
- .align 2
-gSubspriteTable_83ED9F4:: @ 83ED9F4
- subsprite -8, -8, 3, 3, 16x8
- subsprite -8, 0, 3, 11, 16x8
-
- .align 2
-gSubspriteTables_83EDA04:: @ 83EDA04
- .4byte 2, gSubspriteTable_83ED9F4
-
- .align 2
-gSubspriteTable_83EDA0C:: @ 83EDA0C
- subsprite -4, -8, 3, 5, 8x8
- subsprite -4, 0, 3, 13, 8x8
-
- .align 2
-gSubspriteTables_83EDA1C:: @ 83EDA1C
- .4byte 2, gSubspriteTable_83EDA0C
-
- .align 2
-gSubspriteTable_83EDA24:: @ 83EDA24
- subsprite -8, -8, 3, 6, 16x8
- subsprite -8, 0, 3, 14, 16x8
-
- .align 2
-gSubspriteTables_83EDA34:: @ 83EDA34
- .4byte 2, gSubspriteTable_83EDA24
-
- .align 2
-gSubspriteTable_83EDA3C:: @ 83EDA3C
- subsprite -12, -12, 3, 0, 16x8
- subsprite 4, -12, 3, 2, 8x8
- subsprite -12, -4, 3, 8, 16x8
- subsprite 4, -4, 3, 10, 8x8
- subsprite -12, 4, 3, 16, 16x8
- subsprite 4, 4, 3, 18, 8x8
-
- .align 2
-gSubspriteTables_83EDA6C:: @ 83EDA6C
- .4byte 6, gSubspriteTable_83EDA3C
-
- .align 2
-gSubspriteTable_83EDA74:: @ 83EDA74
- subsprite -8, -12, 3, 3, 16x8
- subsprite -8, -4, 3, 11, 16x8
- subsprite -8, 4, 3, 19, 16x8
-
- .align 2
-gSubspriteTables_83EDA8C:: @ 83EDA8C
- .4byte 3, gSubspriteTable_83EDA74
-
- .align 2
-gSubspriteTable_83EDA94:: @ 83EDA94
- subsprite -12, -12, 3, 5, 16x8
- subsprite 4, -12, 3, 7, 8x8
- subsprite -12, -4, 3, 13, 16x8
- subsprite 4, -4, 3, 15, 8x8
- subsprite -12, 4, 3, 21, 16x8
- subsprite 4, 4, 3, 23, 8x8
-
- .align 2
-gSubspriteTables_83EDAC4:: @ 83EDAC4
- .4byte 6, gSubspriteTable_83EDA94
-
- .align 2
-gSubspriteTable_83EDACC:: @ 83EDACC
- subsprite -12, -12, 3, 0, 16x8
- subsprite 4, -12, 3, 2, 8x8
- subsprite -12, -4, 3, 8, 16x8
- subsprite 4, -4, 3, 10, 8x8
- subsprite -12, 4, 3, 16, 16x8
- subsprite 4, 4, 3, 18, 8x8
-
- .align 2
-gSubspriteTables_83EDAFC:: @ 83EDAFC
- .4byte 6, gSubspriteTable_83EDACC
-
- .align 2
-gSubspriteTable_83EDB04:: @ 83EDB04
- subsprite -8, -12, 3, 3, 16x8
- subsprite -8, -4, 3, 11, 16x8
- subsprite -8, 4, 3, 19, 16x8
-
- .align 2
-gSubspriteTables_83EDB1C:: @ 83EDB1C
- .4byte 3, gSubspriteTable_83EDB04
-
- .align 2
-gSubspriteTable_83EDB24:: @ 83EDB24
- subsprite -12, -12, 3, 5, 16x8
- subsprite 4, -12, 3, 7, 8x8
- subsprite -12, -4, 3, 13, 16x8
- subsprite 4, -4, 3, 15, 8x8
- subsprite -12, 4, 3, 21, 16x8
- subsprite 4, 4, 3, 23, 8x8
-
- .align 2
-gSubspriteTables_83EDB54:: @ 83EDB54
- .4byte 6, gSubspriteTable_83EDB24
-
- .align 2
-gUnknown_083EDB5C:: @ 83EDB5C
- .4byte gSpriteTemplate_83ED57C
- .4byte gSpriteTemplate_83ED594
- .4byte gSpriteTemplate_83ED5AC
- .4byte gSpriteTemplate_83ED5DC
- .4byte gSpriteTemplate_83ED5F4
- .4byte gSpriteTemplate_83ED654
- .4byte gSpriteTemplate_83ED66C
- .4byte gSpriteTemplate_83ED684
- .4byte gSpriteTemplate_83ED69C
- .4byte gSpriteTemplate_83ED6B4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED5C4
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED60C
- .4byte gSpriteTemplate_83ED624
- .4byte gSpriteTemplate_83ED624
- .4byte gSpriteTemplate_83ED624
- .4byte gSpriteTemplate_83ED63C
- .4byte gSpriteTemplate_83ED63C
- .4byte gSpriteTemplate_83ED63C
- .4byte gDummySpriteTemplate
-
- .align 2
-gUnknown_083EDBC4:: @ 83EDBC4
- .4byte gSubspriteTables_83ED804
- .4byte gSubspriteTables_83ED82C
- .4byte gSubspriteTables_83ED854
- .4byte gSubspriteTables_83ED8B4
- .4byte NULL
- .4byte NULL
- .4byte gSubspriteTables_83ED8CC
- .4byte NULL
- .4byte gSubspriteTables_83ED93C
- .4byte gSubspriteTables_83ED95C
- .4byte gSubspriteTables_83ED974
- .4byte gSubspriteTables_83ED98C
- .4byte gSubspriteTables_83ED9A4
- .4byte gSubspriteTables_83ED9BC
- .4byte gSubspriteTables_83ED9D4
- .4byte gSubspriteTables_83ED9EC
- .4byte gSubspriteTables_83EDA04
- .4byte gSubspriteTables_83EDA1C
- .4byte gSubspriteTables_83EDA34
- .4byte gSubspriteTables_83EDA6C
- .4byte gSubspriteTables_83EDA8C
- .4byte gSubspriteTables_83EDAC4
- .4byte gSubspriteTables_83EDAFC
- .4byte gSubspriteTables_83EDB1C
- .4byte gSubspriteTables_83EDB54
- .4byte NULL
-
- .align 2
-gUnknown_083EDC2C:: @ 83EDC2C
- obj_tiles gSlotMachineReelSymbol1Tiles, 0x200, 0
- obj_tiles gSlotMachineReelSymbol2Tiles, 0x200, 1
- obj_tiles gSlotMachineReelSymbol3Tiles, 0x200, 2
- obj_tiles gSlotMachineReelSymbol4Tiles, 0x200, 3
- obj_tiles gSlotMachineReelSymbol5Tiles, 0x200, 4
- obj_tiles gSlotMachineReelSymbol6Tiles, 0x200, 5
- obj_tiles gSlotMachineReelSymbol7Tiles, 0x200, 6
- obj_tiles gSlotMachineNumber0Tiles, 0x40, 7
- obj_tiles gSlotMachineNumber1Tiles, 0x40, 8
- obj_tiles gSlotMachineNumber2Tiles, 0x40, 9
- obj_tiles gSlotMachineNumber3Tiles, 0x40, 10
- obj_tiles gSlotMachineNumber4Tiles, 0x40, 11
- obj_tiles gSlotMachineNumber5Tiles, 0x40, 12
- obj_tiles gSlotMachineNumber6Tiles, 0x40, 13
- obj_tiles gSlotMachineNumber7Tiles, 0x40, 14
- obj_tiles gSlotMachineNumber8Tiles, 0x40, 15
- obj_tiles gSlotMachineNumber9Tiles, 0x40, 16
- obj_tiles gSharedMem + 0x10A00, 0x200, 18
- obj_tiles gSharedMem + 0x11400, 0x200, 19
- obj_tiles gSharedMem + 0x11600, 0x300, 20
- obj_tiles gSharedMem + 0x11900, 0x300, 21
- null_obj_tiles
-
- .align 2
-gUnknown_083EDCDC:: @ 83EDCDC
- obj_tiles gSharedMem + 0x10000, 2048, 0x0011
-
- .align 2
-gUnknown_083EDCE4:: @ 83EDCE4
- .4byte gUnknownPalette_08E997E8
-
-UnknownPalette_83EDCE8:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDD40.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDCE8.gbapal"
- .endif
-
- .align 2
-gUnknown_083EDD08:: @ 83EDD08
- .4byte UnknownPalette_83EDCE8 + 10 * 2
- .4byte UnknownPalette_83EDCE8 + 11 * 2
- .4byte UnknownPalette_83EDCE8 + 12 * 2
- .4byte UnknownPalette_83EDCE8 + 13 * 2
- .4byte UnknownPalette_83EDCE8 + 14 * 2
-
- .align 2
-gUnknown_083EDD1C:: @ 83EDD1C
- .4byte gUnknown_08E95A18 + 148
- .4byte gUnknown_08E95A18 + 150
- .4byte gUnknown_08E95A18 + 152
- .4byte gUnknown_08E95A18 + 154
- .4byte gUnknown_08E95A18 + 156
-
-gUnknown_083EDD30:: @ 83EDD30
- .byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D
-
-gUnknown_083EDD35:: @ 83EDD35
- .byte 0, 0, 1, 2, 3, 4
-
-gUnknown_083EDD3B:: @ 83EDD3B
- .byte 1, 2, 2
-
- .align 1
-Unknown_83EDD3E:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDD96.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDD3E.gbapal"
- .endif
-
- .align 1
-Unknown_83EDD5E:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDDB6.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDD5E.gbapal"
- .endif
-
- .align 1
-Unknown_83EDD7E:
- .ifdef SAPPHIRE
- .incbin "graphics/unknown/sapphire_83EDDD6.gbapal"
- .else
- .incbin "graphics/unknown/ruby_83EDD7E.gbapal"
- .endif
-
- .align 2
-gUnknown_083EDDA0:: @ 83EDDA0
- .4byte Unknown_83EDD3E
- .4byte Unknown_83EDD5E
- .4byte Unknown_83EDD7E
-
- .align 2
-gUnknown_083EDDAC:: @ 83EDDAC
- .4byte gUnknown_08E95A18 + 32
-
- .align 1
-Palette_83EDDB0:
- .incbin "graphics/slot_machine/83EDDB0.gbapal"
-
- .align 1
-Palette_83EDDD0:
- .incbin "graphics/slot_machine/83EDDD0.gbapal"
-
- .align 1
-Palette_83EDDF0:
- .incbin "graphics/slot_machine/83EDDF0.gbapal"
-
- .align 2
-gUnknown_083EDE10:: @ 83EDE10
- .4byte Palette_83EDDB0
- .4byte Palette_83EDDD0
- .4byte Palette_83EDDF0
- .4byte gSlotMachineSpritePalette6
-
- .align 2
-gUnknown_083EDE20:: @ 83EDE20
- .4byte gSlotMachineSpritePalette6
-
- .align 1
-gPalette_83EDE24:: @ 83EDE24
- .incbin "graphics/slot_machine/83EDE24_pal.bin"
-
- .align 2
-gSlotMachineSpritePalettes:: @ 83EDE44
- obj_pal gSlotMachineSpritePalette0, 0
- obj_pal gSlotMachineSpritePalette1, 1
- obj_pal gSlotMachineSpritePalette2, 2
- obj_pal gSlotMachineSpritePalette3, 3
- obj_pal gSlotMachineSpritePalette4, 4
- obj_pal gSlotMachineSpritePalette5, 5
- obj_pal gSlotMachineSpritePalette6, 6
- obj_pal gSlotMachineSpritePalette4, 7
- null_obj_pal
-
- .align 2
-gUnknown_083EDE8C:: @ 83EDE8C
- .incbin "graphics/slot_machine/reel_time.4bpp.lz"
-
- .align 2
-gReelTimeWindowTilemap:: @ 83EEFE0
- .incbin "graphics/slot_machine/reel_time_window_map.bin"
diff --git a/data/data2b.s b/data/smokescreen.s
index e82e221c1..21cca5917 100644
--- a/data/data2b.s
+++ b/data/smokescreen.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
@@ -55,24 +55,3 @@ gSpriteAnimTable_81FAEFC:: @ 81FAEFC
.align 2
gSpriteTemplate_81FAF0C:: @ 81FAF0C
spr_template 55019, 55019, gOamData_81FAEB4, gSpriteAnimTable_81FAEFC, NULL, gDummySpriteAffineAnimTable, sub_80463CC
-
- .align 2
-gUnknown_081FAF24:: @ 81FAF24
- obj_tiles gEnemyMonShadow_Gfx, 128, 0xD759
-
- .align 2
-gOamData_81FAF2C:: @ 81FAF2C
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0C00
-
- .align 2
-gSpriteTemplate_81FAF34:: @ 81FAF34
- spr_template 55129, 55039, gOamData_81FAF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8032978
-
- .align 2
-gUnknown_081FAF4C:: @ 81FAF4C
- .4byte gSharedMem + 0x8000
- .4byte gSharedMem + 0xA000
- .4byte gSharedMem + 0xC000
- .4byte gSharedMem + 0xE000
diff --git a/data/sound_data.s b/data/sound_data.s
index cd33950e1..fff724e68 100644
--- a/data/sound_data.s
+++ b/data/sound_data.s
@@ -1,7 +1,7 @@
.section .rodata
- .include "asm/macros/m4a.inc"
- .include "asm/macros/music_voice.inc"
+ .include "include/macros/m4a.inc"
+ .include "include/macros/music_voice.inc"
.include "sound/voice_groups.inc"
.include "sound/keysplit_tables.inc"
diff --git a/data/sparkle.s b/data/sparkle.s
new file mode 100644
index 000000000..0c2593fbd
--- /dev/null
+++ b/data/sparkle.s
@@ -0,0 +1,21 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_83930D8:: @ 83930D8
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 16, 3
+ obj_image_anim_frame 32, 3
+ obj_image_anim_frame 48, 3
+ obj_image_anim_frame 64, 3
+ obj_image_anim_end
+
+ .align 2
+gSpriteAnimTable_83930F0:: @ 83930F0
+ .4byte gSpriteAnim_83930D8
+
+ .align 2
+gBattleAnimSpriteTemplate_83930F4:: @ 83930F4
+ spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83930F0, NULL, gDummySpriteAffineAnimTable, sub_807A63C
diff --git a/data/specials.inc b/data/specials.inc
index 032a3884c..73aa3e093 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -1,4 +1,5 @@
.macro def_special ptr
+.global SPECIAL_\ptr
.set SPECIAL_\ptr, __special__
.set __special__, __special__ + 1
.4byte \ptr
@@ -159,7 +160,7 @@ gSpecials::
def_special GetRivalSonDaughterString
def_special SetFlagInVar
def_special CableCarWarp
- def_special sub_8123218
+ def_special CableCar
def_special Overworld_PlaySpecialMapMusic
def_special StartWallClock
def_special ScrSpecial_ViewWallClock
diff --git a/data/start_menu_debug.s b/data/start_menu_debug.s
new file mode 100644
index 000000000..dc722bf33
--- /dev/null
+++ b/data/start_menu_debug.s
@@ -0,0 +1,495 @@
+ .if DEBUG
+
+#include "constants/moves.h"
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+Str_839BD90:: @ 0x839BD90
+ .string "ジュンイチ$"
+
+Str_839BD96:: @ 0x839BD96
+ .string "ダイゴロウ$"
+
+Str_839BD9C:: @ 0x839BD9C
+ .string "テツジ$"
+
+Str_839BDA0:: @ 0x839BDA0
+ .string "バレンシア$"
+
+Str_839BDA6:: @ 0x839BDA6
+ .string "ハルコマチ$"
+
+Str_839BDAC:: @ 0x839BDAC
+ .string "RAYMOND$"
+
+Str_839BDB4:: @ 0x839BDB4
+ .string "TIFFANY$"
+
+Str_839BDBC:: @ 0x839BDBC
+ .string "くまxちえ$"
+
+ .align 2
+gUnknown_Debug_839BDC4:: @ 0x839BDC4
+ .4byte Str_839BD90, 0x0
+ .4byte Str_839BD96, 0x0
+ .4byte Str_839BDA0, 0x1
+ .4byte Str_839BDA6, 0x1
+ .4byte Str_839BDAC, 0x80
+ .4byte Str_839BDB4, 0x81
+ .4byte Str_839BD9C, 0x0
+ .4byte Str_839BDBC, 0x1
+
+Str_839BE04:: @ 0x839BE04
+ .string "ID$"
+
+Str_839BE07:: @ 0x839BE07
+ .string "X$"
+
+Str_839BE09:: @ 0x839BE09
+ .string " Y$"
+
+Str_839BE0C:: @ 0x839BE0C
+ .string " H$"
+
+Str_839BE0F:: @ 0x839BE0F
+ .string "HP$"
+
+Str_839BE12:: @ 0x839BE12
+ .string "PAR$"
+
+Str_839BE16:: @ 0x839BE16
+ .string "SLP$"
+
+Str_839BE1A:: @ 0x839BE1A
+ .string "PSN$"
+
+Str_839BE1E:: @ 0x839BE1E
+ .string "ウマイ$"
+
+ .align 2
+gUnknown_Debug_839BE24:: @ 0x839BE24
+ .4byte Str_839BE0F, DebugMenu_8077434+1
+ .4byte Str_839BE12, DebugMenu_8077434+1
+ .4byte Str_839BE16, DebugMenu_8077434+1
+ .4byte Str_839BE1A, DebugMenu_8077434+1
+ .4byte Str_839BE1E, DebugMenu_8077434+1
+
+Str_839BE4C:: @ 0x839BE4C
+ .string "OFF$"
+
+Str_839BE50:: @ 0x839BE50
+ .string "ON$"
+
+Str_839BE53:: @ 0x839BE53
+ .string "BG0\n"
+ .string "BG1\n"
+ .string "BG2\n"
+ .string "BG3\n"
+ .string "$"
+
+Str_839BE64:: @ 0x839BE64
+ .string "ON$"
+
+Str_839BE67:: @ 0x839BE67
+ .string "OFF$"
+
+Str_839BE6B:: @ 0x839BE6B
+ .string "さいせんかのうトレーナー:{STR_VAR_1}\n"
+ .string "さいせんじょうたいトレーナー:{STR_VAR_2}$"
+
+Str_839BE8D:: @ 0x839BE8D
+ .string "いる$"
+
+Str_839BE90:: @ 0x839BE90
+ .string "いない$"
+
+Str_839BE94:: @ 0x839BE94
+ .string "Max num of steps$"
+
+Str_839BEA5:: @ 0x839BEA5
+ .string "Clear num of steps$"
+
+Str_839BEB8:: @ 0x839BEB8
+ .string "See trainers$"
+
+Str_839BEC5:: @ 0x839BEC5
+ .string "Flag all clear$"
+
+Str_839BED4:: @ 0x839BED4
+ .string "Flag all set$"
+
+ .align 2
+gUnknown_Debug_839BEE4:: @ 0x839BEE4
+ .4byte Str_839BEB8, DebugMenu_8077974+1
+ .4byte Str_839BE94, DebugMenu_8077A20+1
+ .4byte Str_839BEA5, DebugMenu_8077A40+1
+ .4byte Str_839BED4, DebugMenu_8077934+1
+ .4byte Str_839BEC5, DebugMenu_8077954+1
+
+Str_839BF0C:: @ 0x839BF0C
+ .string "のこり {STR_VAR_1}ほ$"
+
+Str_839BF14:: @ 0x839BF14
+ .string "{STR_VAR_1}\n"
+ .string "のこり {STR_VAR_2}ほ$"
+
+Str_839BF1F:: @ 0x839BF1F
+ .string "めのまえには\n"
+ .string "キューブが ありません!$"
+
+Str_839BF33:: @ 0x839BF33
+ .string "ほすうをのこり1にする$"
+
+Str_839BF3F:: @ 0x839BF3F
+ .string "ボールをのこり1にする$"
+
+Str_839BF4B:: @ 0x839BF4B
+ .string "キューブおきば$"
+
+Str_839BF53:: @ 0x839BF53
+ .string "ボールをのこり30に$"
+
+Str_839BF5E:: @ 0x839BF5E
+ .string "ほすうをのこり500に$"
+
+ .align 2
+gUnknown_Debug_839BF6C:: @ 0x839BF6C
+ .4byte Str_839BF4B, DebugMenu_8077B00+1
+ .4byte Str_839BF5E, DebugMenu_8077ACC+1
+ .4byte Str_839BF33, DebugMenu_8077AE8+1
+ .4byte Str_839BF53, DebugMenu_8077A9C+1
+ .4byte Str_839BF3F, DebugMenu_8077AB4+1
+
+gUnknown_Debug_839BF94:: @ 0x839BF94
+ .4byte gMoveNames + 13 * MOVE_CUT, DebugMenu_8077BB4+1
+ .4byte gMoveNames + 13 * MOVE_FLASH, DebugMenu_8077BC0+1
+ .4byte gMoveNames + 13 * MOVE_ROCK_SMASH, DebugMenu_8077BCC+1
+ .4byte gMoveNames + 13 * MOVE_STRENGTH, DebugMenu_8077BD8+1
+ .4byte gMoveNames + 13 * MOVE_SURF, debug_sub_80B0770+1
+ .4byte gMoveNames + 13 * MOVE_FLY, debug_sub_80B07B0+1
+ .4byte gMoveNames + 13 * MOVE_WATERFALL, DebugMenu_8077BE4+1
+ .4byte gMoveNames + 13 * MOVE_DIVE, debug_sub_80B0800+1
+ .4byte gMoveNames + 13 * MOVE_SECRET_POWER, DebugMenu_8077BF4+1
+
+Str_839BFDC:: @ 0x839BFDC
+ .string " じかん ふん びょう$"
+
+gUnknown_Debug_839BFE8::
+ .byte 0x63, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00
+
+Str_839C008: @ 0x839C008
+gDebug0x839C008::
+ .string "Which item?$"
+
+Str_839C014:: @ 0x839C014
+ .string "How many?$"
+
+Str_839C01E:: @ 0x839C01E
+ .string "にがおえ ばんごう\n"
+ .string "ポケモンナンバー\n"
+ .string "ポケモンめい\n"
+ .string "ブリーダーめい\n"
+ .string "しゅるい\n"
+ .string "こせいらんすう$"
+
+Str_839C04D:: @ 0x839C04D
+ .string "データなし$"
+
+Str_839C053:: @ 0x839C053
+ .string "Miracle Island emerged\n"
+ .string "Random numbers:{STR_VAR_1}$"
+
+Str_839C07C:: @ 0x839C07C
+ .string "{STR_VAR_1}:{STR_VAR_2}\n"
+ .string "{STR_VAR_3}$"
+
+Str_839C085:: @ 0x839C085
+ .string "みしよう データ$"
+
+Str_839C08E:: @ 0x839C08E
+ .string "Confirmation$"
+
+Str_839C09B:: @ 0x839C09B
+ .string "Max-1 set$"
+
+Str_839C0A5:: @ 0x839C0A5
+ .string "Zero clear$"
+
+Str_839C0B0:: @ 0x839C0B0
+ .string "レポート$"
+
+Str_839C0B5:: @ 0x839C0B5
+ .string "クリア じかん$"
+
+Str_839C0BD:: @ 0x839C0BD
+ .string "りゅうこう さくせい$"
+
+Str_839C0C8:: @ 0x839C0C8
+ .string "きのみを うえたかいすう$"
+
+Str_839C0D5:: @ 0x839C0D5
+ .string "じてんしゃこうかん$"
+
+Str_839C0DF:: @ 0x839C0DF
+ .string "ほすう$"
+
+Str_839C0E3:: @ 0x839C0E3
+ .string "インタビュー$"
+
+Str_839C0EA:: @ 0x839C0EA
+ .string "バトル$"
+
+Str_839C0EE:: @ 0x839C0EE
+ .string "やせいバトル$"
+
+Str_839C0F5:: @ 0x839C0F5
+ .string "トレーナーバトル$"
+
+Str_839C0FE:: @ 0x839C0FE
+ .string "でんどういり$"
+
+Str_839C105:: @ 0x839C105
+ .string "ポケモンほかく$"
+
+Str_839C10D:: @ 0x839C10D
+ .string "つった かいすう$"
+
+Str_839C116:: @ 0x839C116
+ .string "タマゴかえった$"
+
+Str_839C11E:: @ 0x839C11E
+ .string "しんかした$"
+
+Str_839C124:: @ 0x839C124
+ .string "ポケセン かいふく$"
+
+Str_839C12E:: @ 0x839C12E
+ .string "じたく かいふく$"
+
+Str_839C137:: @ 0x839C137
+ .string "サファリ りよう$"
+
+Str_839C140:: @ 0x839C140
+ .string "ひでん:いあいぎり$"
+
+Str_839C14A:: @ 0x839C14A
+ .string "ひでん:いわくだき$"
+
+Str_839C154:: @ 0x839C154
+ .string "きち ひっこし$"
+
+Str_839C15C:: @ 0x839C15C
+ .string "つうしんこうかん$"
+
+Str_839C165:: @ 0x839C165
+ .string "つうしんたいせん$"
+
+Str_839C16E:: @ 0x839C16E
+ .string "つうしん かち$"
+
+Str_839C176:: @ 0x839C176
+ .string "つうしん まけ$"
+
+Str_839C17E:: @ 0x839C17E
+ .string "つうしん ひきわけ$"
+
+Str_839C188:: @ 0x839C188
+ .string "わざ:はねる$"
+
+Str_839C18F:: @ 0x839C18F
+ .string "わざ:わるあがき$"
+
+Str_839C198:: @ 0x839C198
+ .string "スロットおおあたりかいすう$"
+
+Str_839C1A6:: @ 0x839C1A6
+ .string "ルーレット れんしょう$"
+
+Str_839C1B2:: @ 0x839C1B2
+ .string "バトルタワー$"
+
+Str_839C1B9:: @ 0x839C1B9
+ .string "バトルタワーかち$"
+
+Str_839C1C2:: @ 0x839C1C2
+ .string "バトルタワーれんしょう$"
+
+Str_839C1CE:: @ 0x839C1CE
+ .string "ポロックさくせい$"
+
+Str_839C1D7:: @ 0x839C1D7
+ .string "つうしんでポロックつくった$"
+
+Str_839C1E5:: @ 0x839C1E5
+ .string "つうしんコンテストかち$"
+
+Str_839C1F1:: @ 0x839C1F1
+ .string "CPUコンテストさんか$"
+
+Str_839C1FD:: @ 0x839C1FD
+ .string "CPUコンテストかち$"
+
+Str_839C208:: @ 0x839C208
+ .string "かいもの$"
+
+Str_839C20D:: @ 0x839C20D
+ .string "ダウジングマシン$"
+
+Str_839C216:: @ 0x839C216
+ .string "あめふり$"
+
+Str_839C21B:: @ 0x839C21B
+ .string "ずかんをみた$"
+
+Str_839C222:: @ 0x839C222
+ .string "リボン もらった$"
+
+Str_839C22B:: @ 0x839C22B
+ .string "だんさ とびおり$"
+
+Str_839C234:: @ 0x839C234
+ .string "TVを みた$"
+
+Str_839C23B:: @ 0x839C23B
+ .string "とけいを みた$"
+
+Str_839C243:: @ 0x839C243
+ .string "くじが あたった$"
+
+Str_839C24C:: @ 0x839C24C
+ .string "ポケモンあずけた$"
+
+Str_839C255:: @ 0x839C255
+ .string "ロープウェイりよう$"
+
+Str_839C25F:: @ 0x839C25F
+ .string "おんせん はいった$"
+
+ .align 2
+gUnknown_Debug_839C26C:: @ 0x839C26C
+ .4byte 0xFFFFFF, Str_839C0B0
+ .4byte 0x3E73B3B, Str_839C0B5
+ .4byte 0xFFFFFF, Str_839C0BD
+ .4byte 0xFFFFFF, Str_839C0C8
+ .4byte 0xFFFFFF, Str_839C0D5
+ .4byte 0xFFFFFF, Str_839C0DF
+ .4byte 0xFFFFFF, Str_839C0E3
+ .4byte 0xFFFFFF, Str_839C0EA
+ .4byte 0xFFFFFF, Str_839C0EE
+ .4byte 0xFFFFFF, Str_839C0F5
+ .4byte 0x3E7, Str_839C0FE
+ .4byte 0xFFFFFF, Str_839C105
+ .4byte 0xFFFFFF, Str_839C10D
+ .4byte 0xFFFFFF, Str_839C116
+ .4byte 0xFFFFFF, Str_839C11E
+ .4byte 0xFFFFFF, Str_839C124
+ .4byte 0xFFFFFF, Str_839C12E
+ .4byte 0xFFFFFF, Str_839C137
+ .4byte 0xFFFFFF, Str_839C140
+ .4byte 0xFFFFFF, Str_839C14A
+ .4byte 0xFFFFFF, Str_839C154
+ .4byte 0xFFFFFF, Str_839C15C
+ .4byte 0xFFFFFF, Str_839C165
+ .4byte 0x270F, Str_839C16E
+ .4byte 0x270F, Str_839C176
+ .4byte 0x270F, Str_839C17E
+ .4byte 0xFFFFFF, Str_839C188
+ .4byte 0xFFFFFF, Str_839C18F
+ .4byte 0xFFFFFF, Str_839C198
+ .4byte 0xFFFFFF, Str_839C1A6
+ .4byte 0xFFFFFF, Str_839C1B2
+ .4byte 0x0, Str_839C1B9
+ .4byte 0x0, Str_839C1C2
+ .4byte 0xFFFFFF, Str_839C1CE
+ .4byte 0xFFFFFF, Str_839C1D7
+ .4byte 0xFFFFFF, Str_839C1E5
+ .4byte 0xFFFFFF, Str_839C1F1
+ .4byte 0xFFFFFF, Str_839C1FD
+ .4byte 0xFFFFFF, Str_839C208
+ .4byte 0xFFFFFF, Str_839C20D
+ .4byte 0xFFFFFF, Str_839C216
+ .4byte 0xFFFFFF, Str_839C21B
+ .4byte 0xFFFFFF, Str_839C222
+ .4byte 0xFFFFFF, Str_839C22B
+ .4byte 0xFFFFFF, Str_839C234
+ .4byte 0xFFFFFF, Str_839C23B
+ .4byte 0xFFFFFF, Str_839C243
+ .4byte 0xFFFFFF, Str_839C24C
+ .4byte 0xFFFFFF, Str_839C255
+ .4byte 0xFFFFFF, Str_839C25F
+
+gUnknown_Debug_839C3FC:: @ 0x839C3FC
+ .4byte Str_839C08E, DebugMenu_8078774+1
+ .4byte Str_839C09B, DebugMenu_8078788+1
+ .4byte Str_839C0A5, DebugMenu_807879C+1
+
+Str_839C414:: @ 0x839C414
+ .string "ATTR:{STR_VAR_1} HEIGHT:{STR_VAR_3}\n"
+ .string "CODE:{STR_VAR_2}$"
+
+Str_839C42E:: @ 0x839C42E
+ .string "レベル  ステージ$"
+
+Str_839C438:: @ 0x839C438
+ .string "ポロック グループ{STR_VAR_1}$"
+
+gUnknown_Debug_839C444::
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+Str_839C574:: @ 0x839C574
+gDebug0x839C574::
+ .string "write to flash$"
+
+Str_839C583:: @ 0x839C583
+ .string "read from flash$"
+
+ .align 2
+gUnknown_Debug_839C594:: @ 0x839C594
+ .4byte gDebug0x839C574, DebugMenu_8078C80+1
+ .4byte Str_839C583, DebugMenu_8078D30+1
+
+Str_839C5A4:: @ 0x839C5A4
+ .string "Press A, begin to write\n"
+ .string "Press B, cancel$"
+
+Str_839C5CC:: @ 0x839C5CC
+ .string "かきこみ せいこう$"
+
+Str_839C5D6:: @ 0x839C5D6
+ .string "よみこみせいこう$"
+
+Str_839C5DF:: @ 0x839C5DF
+ .string "かきこみ しっぱい$"
+
+Str_839C5E9:: @ 0x839C5E9
+ .string "よみこみ しっぱい$"
+
+ .align 1
+gUnknown_Debug_839C5F4::
+ .byte 0x00, 0x00, 0xe7, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x09, 0x03, 0x00, 0x00
+
+Str_839C60C:: @ 0x839C60C
+gDebug0x839C60C::
+ .string "Set FLASH ERR$"
+
+Str_839C61A:: @ 0x839C61A
+ .string "abcde; abcde: ABCDE; ABCDE:\p"
+ .string "Tableaux des verbes du 2{SUPER_E} groupe.\p"
+ .string "La1{SUPER_RE} chose à apprendre c’est de lire.\p"
+ .string "Tableaux des verbes du 1{SUPER_ER} groupe.\p"
+ .string "“あいうえおかきくけコさしすせそたちつてとな”\n"
+ .string "<にぬネのはひふへほマみむめもやゆよらりるれろわャッ>\p"
+ .string "をんゃゅょアイウエオカキクケサシスルレロワ,$"
+
+ .endif
diff --git a/data/strings2.s b/data/strings2.s
index cece71645..f73aba76f 100644
--- a/data/strings2.s
+++ b/data/strings2.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/tilesets.s b/data/tilesets.s
index 443686234..d9933dbf9 100644
--- a/data/tilesets.s
+++ b/data/tilesets.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.section .rodata
diff --git a/data/trainer_money.inc b/data/trainer_money.inc
index 95da92fea..ceffb0a61 100644
--- a/data/trainer_money.inc
+++ b/data/trainer_money.inc
@@ -1,58 +1,58 @@
@ This is a factor in how much money you get for beating a trainer.
.align 2
gTrainerMoney:: @ 81F98F0
- .byte TRAINER_CLASS_NAME_TEAM_AQUA, 5, 0, 0
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN, 10, 0, 0
- .byte TRAINER_CLASS_NAME_AQUA_LEADER, 20, 0, 0
- .byte TRAINER_CLASS_NAME_AROMA_LADY, 10, 0, 0
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC, 15, 0, 0
- .byte TRAINER_CLASS_NAME_INTERVIEWER, 12, 0, 0
- .byte TRAINER_CLASS_NAME_TUBER_F, 1, 0, 0
- .byte TRAINER_CLASS_NAME_TUBER_M, 1, 0, 0
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO, 3, 0, 0
- .byte TRAINER_CLASS_NAME_COOL_TRAINER, 12, 0, 0
- .byte TRAINER_CLASS_NAME_HEX_MANIAC, 6, 0, 0
- .byte TRAINER_CLASS_NAME_LADY, 50, 0, 0
- .byte TRAINER_CLASS_NAME_BEAUTY, 20, 0, 0
- .byte TRAINER_CLASS_NAME_RICH_BOY, 50, 0, 0
- .byte TRAINER_CLASS_NAME_POKEMANIAC, 15, 0, 0
- .byte TRAINER_CLASS_NAME_SWIMMER_M, 2, 0, 0
- .byte TRAINER_CLASS_NAME_BLACK_BELT, 8, 0, 0
- .byte TRAINER_CLASS_NAME_GUITARIST, 8, 0, 0
- .byte TRAINER_CLASS_NAME_KINDLER, 8, 0, 0
- .byte TRAINER_CLASS_NAME_CAMPER, 4, 0, 0
- .byte TRAINER_CLASS_NAME_OLD_COUPLE, 10, 0, 0
- .byte TRAINER_CLASS_NAME_BUG_MANIAC, 15, 0, 0
- .byte TRAINER_CLASS_NAME_PSYCHIC, 6, 0, 0
- .byte TRAINER_CLASS_NAME_GENTLEMAN, 20, 0, 0
- .byte TRAINER_CLASS_NAME_ELITE_FOUR, 25, 0, 0
- .byte TRAINER_CLASS_NAME_LEADER, 25, 0, 0
- .byte TRAINER_CLASS_NAME_SCHOOL_KID, 5, 0, 0
- .byte TRAINER_CLASS_NAME_SR_AND_JR, 4, 0, 0
- .byte TRAINER_CLASS_NAME_POKEFAN, 20, 0, 0
- .byte TRAINER_CLASS_NAME_EXPERT, 10, 0, 0
- .byte TRAINER_CLASS_NAME_YOUNGSTER, 4, 0, 0
- .byte TRAINER_CLASS_NAME_CHAMPION, 50, 0, 0
- .byte TRAINER_CLASS_NAME_FISHERMAN, 10, 0, 0
- .byte TRAINER_CLASS_NAME_TRIATHLETE, 10, 0, 0
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER, 12, 0, 0
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER, 8, 0, 0
- .byte TRAINER_CLASS_NAME_NINJA_BOY, 3, 0, 0
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL, 6, 0, 0
- .byte TRAINER_CLASS_NAME_PARASOL_LADY, 10, 0, 0
- .byte TRAINER_CLASS_NAME_SWIMMER_F, 2, 0, 0
- .byte TRAINER_CLASS_NAME_PICNICKER, 4, 0, 0
- .byte TRAINER_CLASS_NAME_TWINS, 3, 0, 0
- .byte TRAINER_CLASS_NAME_SAILOR, 8, 0, 0
- .byte TRAINER_CLASS_NAME_COLLECTOR, 15, 0, 0
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3, 15, 0, 0
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER, 10, 0, 0
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER, 12, 0, 0
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA, 5, 0, 0
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN, 10, 0, 0
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER, 20, 0, 0
- .byte TRAINER_CLASS_NAME_LASS, 4, 0, 0
- .byte TRAINER_CLASS_NAME_BUG_CATCHER, 4, 0, 0
- .byte TRAINER_CLASS_NAME_HIKER, 10, 0, 0
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE, 8, 0, 0
+ .byte TRAINER_CLASS_TEAM_AQUA, 5, 0, 0
+ .byte TRAINER_CLASS_AQUA_ADMIN, 10, 0, 0
+ .byte TRAINER_CLASS_AQUA_LEADER, 20, 0, 0
+ .byte TRAINER_CLASS_AROMA_LADY, 10, 0, 0
+ .byte TRAINER_CLASS_RUIN_MANIAC, 15, 0, 0
+ .byte TRAINER_CLASS_INTERVIEWER, 12, 0, 0
+ .byte TRAINER_CLASS_TUBER_F, 1, 0, 0
+ .byte TRAINER_CLASS_TUBER_M, 1, 0, 0
+ .byte TRAINER_CLASS_SIS_AND_BRO, 3, 0, 0
+ .byte TRAINER_CLASS_COOL_TRAINER, 12, 0, 0
+ .byte TRAINER_CLASS_HEX_MANIAC, 6, 0, 0
+ .byte TRAINER_CLASS_LADY, 50, 0, 0
+ .byte TRAINER_CLASS_BEAUTY, 20, 0, 0
+ .byte TRAINER_CLASS_RICH_BOY, 50, 0, 0
+ .byte TRAINER_CLASS_POKEMANIAC, 15, 0, 0
+ .byte TRAINER_CLASS_SWIMMER_M, 2, 0, 0
+ .byte TRAINER_CLASS_BLACK_BELT, 8, 0, 0
+ .byte TRAINER_CLASS_GUITARIST, 8, 0, 0
+ .byte TRAINER_CLASS_KINDLER, 8, 0, 0
+ .byte TRAINER_CLASS_CAMPER, 4, 0, 0
+ .byte TRAINER_CLASS_OLD_COUPLE, 10, 0, 0
+ .byte TRAINER_CLASS_BUG_MANIAC, 15, 0, 0
+ .byte TRAINER_CLASS_PSYCHIC, 6, 0, 0
+ .byte TRAINER_CLASS_GENTLEMAN, 20, 0, 0
+ .byte TRAINER_CLASS_ELITE_FOUR, 25, 0, 0
+ .byte TRAINER_CLASS_LEADER, 25, 0, 0
+ .byte TRAINER_CLASS_SCHOOL_KID, 5, 0, 0
+ .byte TRAINER_CLASS_SR_AND_JR, 4, 0, 0
+ .byte TRAINER_CLASS_POKEFAN, 20, 0, 0
+ .byte TRAINER_CLASS_EXPERT, 10, 0, 0
+ .byte TRAINER_CLASS_YOUNGSTER, 4, 0, 0
+ .byte TRAINER_CLASS_CHAMPION, 50, 0, 0
+ .byte TRAINER_CLASS_FISHERMAN, 10, 0, 0
+ .byte TRAINER_CLASS_TRIATHLETE, 10, 0, 0
+ .byte TRAINER_CLASS_DRAGON_TAMER, 12, 0, 0
+ .byte TRAINER_CLASS_BIRD_KEEPER, 8, 0, 0
+ .byte TRAINER_CLASS_NINJA_BOY, 3, 0, 0
+ .byte TRAINER_CLASS_BATTLE_GIRL, 6, 0, 0
+ .byte TRAINER_CLASS_PARASOL_LADY, 10, 0, 0
+ .byte TRAINER_CLASS_SWIMMER_F, 2, 0, 0
+ .byte TRAINER_CLASS_PICNICKER, 4, 0, 0
+ .byte TRAINER_CLASS_TWINS, 3, 0, 0
+ .byte TRAINER_CLASS_SAILOR, 8, 0, 0
+ .byte TRAINER_CLASS_COLLECTOR, 15, 0, 0
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3, 15, 0, 0
+ .byte TRAINER_CLASS_POKEMON_BREEDER, 10, 0, 0
+ .byte TRAINER_CLASS_POKEMON_RANGER, 12, 0, 0
+ .byte TRAINER_CLASS_TEAM_MAGMA, 5, 0, 0
+ .byte TRAINER_CLASS_MAGMA_ADMIN, 10, 0, 0
+ .byte TRAINER_CLASS_MAGMA_LEADER, 20, 0, 0
+ .byte TRAINER_CLASS_LASS, 4, 0, 0
+ .byte TRAINER_CLASS_BUG_CATCHER, 4, 0, 0
+ .byte TRAINER_CLASS_HIKER, 10, 0, 0
+ .byte TRAINER_CLASS_YOUNG_COUPLE, 8, 0, 0
.byte -1, 5, 0, 0
diff --git a/data/trainers.inc b/data/trainers.inc
index 8e80cd77f..be9ce1a81 100644
--- a/data/trainers.inc
+++ b/data/trainers.inc
@@ -2,7 +2,7 @@
gTrainers:: @ 81F04FC
@ NONE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_1
+ .byte TRAINER_CLASS_POKEMON_TRAINER_1
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "$", 12
@@ -14,7 +14,7 @@ gTrainers:: @ 81F04FC
@ ARCHIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_LEADER
+ .byte TRAINER_CLASS_AQUA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_ARCHIE
.string "ARCHIE$", 12
@@ -26,7 +26,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -38,7 +38,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -50,7 +50,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -62,7 +62,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -74,7 +74,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -86,7 +86,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -98,7 +98,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -110,7 +110,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -122,7 +122,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -134,7 +134,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -146,7 +146,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -158,7 +158,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -170,7 +170,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_13
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -182,7 +182,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_14
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -194,7 +194,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_15
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -206,7 +206,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_16
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -218,7 +218,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_17
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -230,7 +230,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_18
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -242,7 +242,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_19
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -254,7 +254,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_20
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -266,7 +266,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_21
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -278,7 +278,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_22
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -290,7 +290,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_23
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -302,7 +302,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_24
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_M
.string "GRUNT$", 12
@@ -314,7 +314,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_25
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_F
.string "GRUNT$", 12
@@ -326,7 +326,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_26
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_F
.string "GRUNT$", 12
@@ -338,7 +338,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_27
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_AQUA
+ .byte TRAINER_CLASS_TEAM_AQUA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_GRUNT_F
.string "GRUNT$", 12
@@ -350,7 +350,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_M
.string "$", 12
@@ -362,7 +362,7 @@ gTrainers:: @ 81F04FC
@ MATT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_M
.string "MATT$", 12
@@ -374,7 +374,7 @@ gTrainers:: @ 81F04FC
@ MATT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_M
.string "MATT$", 12
@@ -386,7 +386,7 @@ gTrainers:: @ 81F04FC
@ SHELLY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_F
.string "SHELLY$", 12
@@ -398,7 +398,7 @@ gTrainers:: @ 81F04FC
@ SHELLY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_ADMIN
+ .byte TRAINER_CLASS_AQUA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_AQUA_ADMIN_F
.string "SHELLY$", 12
@@ -410,7 +410,7 @@ gTrainers:: @ 81F04FC
@ ARCHIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_LEADER
+ .byte TRAINER_CLASS_AQUA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_ARCHIE
.string "ARCHIE$", 12
@@ -422,7 +422,7 @@ gTrainers:: @ 81F04FC
@ ARCHIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AQUA_LEADER
+ .byte TRAINER_CLASS_AQUA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music
.byte TRAINER_PIC_ARCHIE
.string "ARCHIE$", 12
@@ -434,7 +434,7 @@ gTrainers:: @ 81F04FC
@ DAISY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "DAISY$", 12
@@ -446,7 +446,7 @@ gTrainers:: @ 81F04FC
@ ROSE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSE$", 12
@@ -458,7 +458,7 @@ gTrainers:: @ 81F04FC
@ LILY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "LILY$", 12
@@ -470,7 +470,7 @@ gTrainers:: @ 81F04FC
@ VIOLET
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "VIOLET$", 12
@@ -482,7 +482,7 @@ gTrainers:: @ 81F04FC
@ ROSE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSE$", 12
@@ -494,7 +494,7 @@ gTrainers:: @ 81F04FC
@ ROSE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSE$", 12
@@ -506,7 +506,7 @@ gTrainers:: @ 81F04FC
@ ROSE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSE$", 12
@@ -518,7 +518,7 @@ gTrainers:: @ 81F04FC
@ ROSE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_AROMA_LADY
+ .byte TRAINER_CLASS_AROMA_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_AROMA_LADY
.string "ROSE$", 12
@@ -530,7 +530,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "DUSTY$", 12
@@ -542,7 +542,7 @@ gTrainers:: @ 81F04FC
@ CHIP
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "CHIP$", 12
@@ -554,7 +554,7 @@ gTrainers:: @ 81F04FC
@ FOSTER
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "FOSTER$", 12
@@ -566,7 +566,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "DUSTY$", 12
@@ -578,7 +578,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "DUSTY$", 12
@@ -590,7 +590,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "DUSTY$", 12
@@ -602,7 +602,7 @@ gTrainers:: @ 81F04FC
@ DUSTY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RUIN_MANIAC
+ .byte TRAINER_CLASS_RUIN_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_RUIN_MANIAC
.string "DUSTY$", 12
@@ -614,7 +614,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "GABBY & TY$", 12
@@ -626,7 +626,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "GABBY & TY$", 12
@@ -638,7 +638,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "GABBY & TY$", 12
@@ -650,7 +650,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "GABBY & TY$", 12
@@ -662,7 +662,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "GABBY & TY$", 12
@@ -674,7 +674,7 @@ gTrainers:: @ 81F04FC
@ GABBY_AND_TY_6
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_INTERVIEWER
+ .byte TRAINER_CLASS_INTERVIEWER
.byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music
.byte TRAINER_PIC_INTERVIEWER
.string "GABBY & TY$", 12
@@ -686,7 +686,7 @@ gTrainers:: @ 81F04FC
@ LOLA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -698,7 +698,7 @@ gTrainers:: @ 81F04FC
@ CARMEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "CARMEN$", 12
@@ -710,7 +710,7 @@ gTrainers:: @ 81F04FC
@ GWEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "GWEN $", 12
@@ -722,7 +722,7 @@ gTrainers:: @ 81F04FC
@ LOLA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -734,7 +734,7 @@ gTrainers:: @ 81F04FC
@ LOLA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -746,7 +746,7 @@ gTrainers:: @ 81F04FC
@ LOLA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -758,7 +758,7 @@ gTrainers:: @ 81F04FC
@ LOLA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_F
+ .byte TRAINER_CLASS_TUBER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_F
.string "LOLA$", 12
@@ -770,7 +770,7 @@ gTrainers:: @ 81F04FC
@ RICKY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "RICKY$", 12
@@ -782,7 +782,7 @@ gTrainers:: @ 81F04FC
@ SIMON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "SIMON$", 12
@@ -794,7 +794,7 @@ gTrainers:: @ 81F04FC
@ CHARLIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "CHARLIE$", 12
@@ -806,7 +806,7 @@ gTrainers:: @ 81F04FC
@ RICKY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "RICKY$", 12
@@ -818,7 +818,7 @@ gTrainers:: @ 81F04FC
@ RICKY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "RICKY$", 12
@@ -830,7 +830,7 @@ gTrainers:: @ 81F04FC
@ RICKY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "RICKY$", 12
@@ -842,7 +842,7 @@ gTrainers:: @ 81F04FC
@ RICKY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TUBER_M
+ .byte TRAINER_CLASS_TUBER_M
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_TUBER_M
.string "RICKY$", 12
@@ -854,7 +854,7 @@ gTrainers:: @ 81F04FC
@ RANDALL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "RANDALL$", 12
@@ -866,7 +866,7 @@ gTrainers:: @ 81F04FC
@ PARKER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "PARKER$", 12
@@ -878,7 +878,7 @@ gTrainers:: @ 81F04FC
@ GEORGE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "GEORGE$", 12
@@ -890,7 +890,7 @@ gTrainers:: @ 81F04FC
@ BERKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "BERKE$", 12
@@ -902,7 +902,7 @@ gTrainers:: @ 81F04FC
@ CLYDE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "CLYDE$", 12
@@ -914,7 +914,7 @@ gTrainers:: @ 81F04FC
@ VINCENT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "VINCENT$", 12
@@ -926,7 +926,7 @@ gTrainers:: @ 81F04FC
@ LEROY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "LEROY$", 12
@@ -938,7 +938,7 @@ gTrainers:: @ 81F04FC
@ WILTON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "WILTON$", 12
@@ -950,7 +950,7 @@ gTrainers:: @ 81F04FC
@ EDGAR
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "EDGAR$", 12
@@ -962,7 +962,7 @@ gTrainers:: @ 81F04FC
@ ALBERT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "ALBERT$", 12
@@ -974,7 +974,7 @@ gTrainers:: @ 81F04FC
@ SAMUEL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "SAMUEL$", 12
@@ -986,7 +986,7 @@ gTrainers:: @ 81F04FC
@ VITO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "VITO$", 12
@@ -998,7 +998,7 @@ gTrainers:: @ 81F04FC
@ OWEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "OWEN$", 12
@@ -1010,7 +1010,7 @@ gTrainers:: @ 81F04FC
@ WILTON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "WILTON$", 12
@@ -1022,7 +1022,7 @@ gTrainers:: @ 81F04FC
@ WILTON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "WILTON$", 12
@@ -1034,7 +1034,7 @@ gTrainers:: @ 81F04FC
@ WILTON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "WILTON$", 12
@@ -1046,7 +1046,7 @@ gTrainers:: @ 81F04FC
@ WILTON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "WILTON$", 12
@@ -1058,7 +1058,7 @@ gTrainers:: @ 81F04FC
@ WARREN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "WARREN$", 12
@@ -1070,7 +1070,7 @@ gTrainers:: @ 81F04FC
@ MARY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "MARY$", 12
@@ -1082,7 +1082,7 @@ gTrainers:: @ 81F04FC
@ LORI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "LORI$", 12
@@ -1094,7 +1094,7 @@ gTrainers:: @ 81F04FC
@ JODY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "JODY$", 12
@@ -1106,7 +1106,7 @@ gTrainers:: @ 81F04FC
@ WENDY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "WENDY$", 12
@@ -1118,7 +1118,7 @@ gTrainers:: @ 81F04FC
@ ELAINE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "ELAINE$", 12
@@ -1130,7 +1130,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "BROOKE$", 12
@@ -1142,7 +1142,7 @@ gTrainers:: @ 81F04FC
@ JENNIFER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "JENNIFER$", 12
@@ -1154,7 +1154,7 @@ gTrainers:: @ 81F04FC
@ HOPE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "HOPE$", 12
@@ -1166,7 +1166,7 @@ gTrainers:: @ 81F04FC
@ SHANNON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "SHANNON$", 12
@@ -1178,7 +1178,7 @@ gTrainers:: @ 81F04FC
@ MICHELLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "MICHELLE$", 12
@@ -1190,7 +1190,7 @@ gTrainers:: @ 81F04FC
@ CAROLINE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "CAROLINE$", 12
@@ -1202,7 +1202,7 @@ gTrainers:: @ 81F04FC
@ JULIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "JULIE$", 12
@@ -1214,7 +1214,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "BROOKE$", 12
@@ -1226,7 +1226,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "BROOKE$", 12
@@ -1238,7 +1238,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "BROOKE$", 12
@@ -1250,7 +1250,7 @@ gTrainers:: @ 81F04FC
@ BROOKE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "BROOKE$", 12
@@ -1262,7 +1262,7 @@ gTrainers:: @ 81F04FC
@ PATRICIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "PATRICIA$", 12
@@ -1274,7 +1274,7 @@ gTrainers:: @ 81F04FC
@ KINDRA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "KINDRA$", 12
@@ -1286,7 +1286,7 @@ gTrainers:: @ 81F04FC
@ TAMMY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TAMMY$", 12
@@ -1298,7 +1298,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "VALERIE$", 12
@@ -1310,7 +1310,7 @@ gTrainers:: @ 81F04FC
@ TASHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "TASHA$", 12
@@ -1322,7 +1322,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "VALERIE$", 12
@@ -1334,7 +1334,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "VALERIE$", 12
@@ -1346,7 +1346,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "VALERIE$", 12
@@ -1358,7 +1358,7 @@ gTrainers:: @ 81F04FC
@ VALERIE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HEX_MANIAC
+ .byte TRAINER_CLASS_HEX_MANIAC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_HEX_MANIAC
.string "VALERIE$", 12
@@ -1370,7 +1370,7 @@ gTrainers:: @ 81F04FC
@ CINDY_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "CINDY$", 12
@@ -1382,7 +1382,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "$", 12
@@ -1394,7 +1394,7 @@ gTrainers:: @ 81F04FC
@ BRIANNA_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "BRIANNA$", 12
@@ -1406,7 +1406,7 @@ gTrainers:: @ 81F04FC
@ CINDY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "CINDY$", 12
@@ -1418,7 +1418,7 @@ gTrainers:: @ 81F04FC
@ BRIANNA_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "BRIANNA$", 12
@@ -1430,7 +1430,7 @@ gTrainers:: @ 81F04FC
@ ANETTE
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "ANETTE$", 12
@@ -1442,7 +1442,7 @@ gTrainers:: @ 81F04FC
@ CINDY_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "CINDY$", 12
@@ -1454,7 +1454,7 @@ gTrainers:: @ 81F04FC
@ CINDY_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "CINDY$", 12
@@ -1466,7 +1466,7 @@ gTrainers:: @ 81F04FC
@ CINDY_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "CINDY$", 12
@@ -1478,7 +1478,7 @@ gTrainers:: @ 81F04FC
@ CINDY_6
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LADY
+ .byte TRAINER_CLASS_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LADY
.string "CINDY$", 12
@@ -1490,7 +1490,7 @@ gTrainers:: @ 81F04FC
@ MELISSA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "MELISSA$", 12
@@ -1502,7 +1502,7 @@ gTrainers:: @ 81F04FC
@ SHEILA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "SHEILA$", 12
@@ -1514,7 +1514,7 @@ gTrainers:: @ 81F04FC
@ SHIRLEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "SHIRLEY$", 12
@@ -1526,7 +1526,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "JESSICA$", 12
@@ -1538,7 +1538,7 @@ gTrainers:: @ 81F04FC
@ CONNIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "CONNIE$", 12
@@ -1550,7 +1550,7 @@ gTrainers:: @ 81F04FC
@ BRIDGET
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "BRIDGET$", 12
@@ -1562,7 +1562,7 @@ gTrainers:: @ 81F04FC
@ OLIVIA
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "OLIVIA$", 12
@@ -1574,7 +1574,7 @@ gTrainers:: @ 81F04FC
@ TIFFANY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "TIFFANY$", 12
@@ -1586,7 +1586,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "JESSICA$", 12
@@ -1598,7 +1598,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "JESSICA$", 12
@@ -1610,7 +1610,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "JESSICA$", 12
@@ -1622,7 +1622,7 @@ gTrainers:: @ 81F04FC
@ JESSICA_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "JESSICA$", 12
@@ -1634,7 +1634,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "WINSTON$", 12
@@ -1646,7 +1646,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "$", 12
@@ -1658,7 +1658,7 @@ gTrainers:: @ 81F04FC
@ GARRET
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "GARRET$", 12
@@ -1670,7 +1670,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "WINSTON$", 12
@@ -1682,7 +1682,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "WINSTON$", 12
@@ -1694,7 +1694,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "WINSTON$", 12
@@ -1706,7 +1706,7 @@ gTrainers:: @ 81F04FC
@ WINSTON_5
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_RICH_BOY
+ .byte TRAINER_CLASS_RICH_BOY
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_RICH_BOY
.string "WINSTON$", 12
@@ -1718,7 +1718,7 @@ gTrainers:: @ 81F04FC
@ STEVE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "STEVE$", 12
@@ -1730,7 +1730,7 @@ gTrainers:: @ 81F04FC
@ CHRIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "CHRIS$", 12
@@ -1742,7 +1742,7 @@ gTrainers:: @ 81F04FC
@ MARK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "MARK$", 12
@@ -1754,7 +1754,7 @@ gTrainers:: @ 81F04FC
@ KENN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "KENN$", 12
@@ -1766,7 +1766,7 @@ gTrainers:: @ 81F04FC
@ STEVE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "STEVE$", 12
@@ -1778,7 +1778,7 @@ gTrainers:: @ 81F04FC
@ STEVE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "STEVE$", 12
@@ -1790,7 +1790,7 @@ gTrainers:: @ 81F04FC
@ STEVE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "STEVE$", 12
@@ -1802,7 +1802,7 @@ gTrainers:: @ 81F04FC
@ STEVE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMANIAC
+ .byte TRAINER_CLASS_POKEMANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_POKEMANIAC
.string "STEVE$", 12
@@ -1814,7 +1814,7 @@ gTrainers:: @ 81F04FC
@ LUIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "LUIS$", 12
@@ -1826,7 +1826,7 @@ gTrainers:: @ 81F04FC
@ AUSTIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "AUSTIN$", 12
@@ -1838,7 +1838,7 @@ gTrainers:: @ 81F04FC
@ DOUGLAS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DOUGLAS$", 12
@@ -1850,7 +1850,7 @@ gTrainers:: @ 81F04FC
@ DARRIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DARRIN$", 12
@@ -1862,7 +1862,7 @@ gTrainers:: @ 81F04FC
@ TONY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "TONY$", 12
@@ -1874,7 +1874,7 @@ gTrainers:: @ 81F04FC
@ JEROME
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "JEROME$", 12
@@ -1886,7 +1886,7 @@ gTrainers:: @ 81F04FC
@ MATTHEW
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "MATTHEW$", 12
@@ -1898,7 +1898,7 @@ gTrainers:: @ 81F04FC
@ DAVID
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DAVID$", 12
@@ -1910,7 +1910,7 @@ gTrainers:: @ 81F04FC
@ SPENCER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "SPENCER$", 12
@@ -1922,7 +1922,7 @@ gTrainers:: @ 81F04FC
@ ROLAND
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "ROLAND$", 12
@@ -1934,7 +1934,7 @@ gTrainers:: @ 81F04FC
@ CODY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "CODY$", 12
@@ -1946,7 +1946,7 @@ gTrainers:: @ 81F04FC
@ STAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "STAN$", 12
@@ -1958,7 +1958,7 @@ gTrainers:: @ 81F04FC
@ BARRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "BARRY$", 12
@@ -1970,7 +1970,7 @@ gTrainers:: @ 81F04FC
@ DEAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DEAN$", 12
@@ -1982,7 +1982,7 @@ gTrainers:: @ 81F04FC
@ RODNEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "RODNEY$", 12
@@ -1994,7 +1994,7 @@ gTrainers:: @ 81F04FC
@ RICHARD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "RICHARD$", 12
@@ -2006,7 +2006,7 @@ gTrainers:: @ 81F04FC
@ HERMAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "HERMAN$", 12
@@ -2018,7 +2018,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "$", 12
@@ -2030,7 +2030,7 @@ gTrainers:: @ 81F04FC
@ GILBERT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "GILBERT$", 12
@@ -2042,7 +2042,7 @@ gTrainers:: @ 81F04FC
@ FRANKLIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "FRANKLIN$", 12
@@ -2054,7 +2054,7 @@ gTrainers:: @ 81F04FC
@ DANNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DANNY$", 12
@@ -2066,7 +2066,7 @@ gTrainers:: @ 81F04FC
@ JACK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "JACK$", 12
@@ -2078,7 +2078,7 @@ gTrainers:: @ 81F04FC
@ DUDLEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "DUDLEY$", 12
@@ -2090,7 +2090,7 @@ gTrainers:: @ 81F04FC
@ CHAD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "CHAD$", 12
@@ -2102,7 +2102,7 @@ gTrainers:: @ 81F04FC
@ TONY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "TONY$", 12
@@ -2114,7 +2114,7 @@ gTrainers:: @ 81F04FC
@ TONY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "TONY$", 12
@@ -2126,7 +2126,7 @@ gTrainers:: @ 81F04FC
@ TONY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "TONY$", 12
@@ -2138,7 +2138,7 @@ gTrainers:: @ 81F04FC
@ TONY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "TONY$", 12
@@ -2150,7 +2150,7 @@ gTrainers:: @ 81F04FC
@ HIDEKI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "HIDEKI$", 12
@@ -2162,7 +2162,7 @@ gTrainers:: @ 81F04FC
@ HITOSHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "HITOSHI$", 12
@@ -2174,7 +2174,7 @@ gTrainers:: @ 81F04FC
@ KIYO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "KIYO$", 12
@@ -2186,7 +2186,7 @@ gTrainers:: @ 81F04FC
@ KOICHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "KOICHI$", 12
@@ -2198,7 +2198,7 @@ gTrainers:: @ 81F04FC
@ NOB_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "NOB$", 12
@@ -2210,7 +2210,7 @@ gTrainers:: @ 81F04FC
@ NOB_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "NOB$", 12
@@ -2222,7 +2222,7 @@ gTrainers:: @ 81F04FC
@ NOB_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "NOB$", 12
@@ -2234,7 +2234,7 @@ gTrainers:: @ 81F04FC
@ NOB_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "NOB$", 12
@@ -2246,7 +2246,7 @@ gTrainers:: @ 81F04FC
@ NOB_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "NOB$", 12
@@ -2258,7 +2258,7 @@ gTrainers:: @ 81F04FC
@ YUJI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "YUJI$", 12
@@ -2270,7 +2270,7 @@ gTrainers:: @ 81F04FC
@ DAISUKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "DAISUKE$", 12
@@ -2282,7 +2282,7 @@ gTrainers:: @ 81F04FC
@ ATSUSHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "ATSUSHI$", 12
@@ -2294,7 +2294,7 @@ gTrainers:: @ 81F04FC
@ KIRK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "KIRK$", 12
@@ -2306,7 +2306,7 @@ gTrainers:: @ 81F04FC
@ SCOTT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "SCOTT$", 12
@@ -2318,7 +2318,7 @@ gTrainers:: @ 81F04FC
@ HARVEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "HARVEY$", 12
@@ -2330,7 +2330,7 @@ gTrainers:: @ 81F04FC
@ SHAWN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "SHAWN$", 12
@@ -2342,7 +2342,7 @@ gTrainers:: @ 81F04FC
@ RANDY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "RANDY$", 12
@@ -2354,7 +2354,7 @@ gTrainers:: @ 81F04FC
@ DALTON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "DALTON$", 12
@@ -2366,7 +2366,7 @@ gTrainers:: @ 81F04FC
@ DALTON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "DALTON$", 12
@@ -2378,7 +2378,7 @@ gTrainers:: @ 81F04FC
@ DALTON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "DALTON$", 12
@@ -2390,7 +2390,7 @@ gTrainers:: @ 81F04FC
@ DALTON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "DALTON$", 12
@@ -2402,7 +2402,7 @@ gTrainers:: @ 81F04FC
@ DALTON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GUITARIST
+ .byte TRAINER_CLASS_GUITARIST
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_GUITARIST
.string "DALTON$", 12
@@ -2414,7 +2414,7 @@ gTrainers:: @ 81F04FC
@ COLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "COLE$", 12
@@ -2426,7 +2426,7 @@ gTrainers:: @ 81F04FC
@ FLINT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "FLINT$", 12
@@ -2438,7 +2438,7 @@ gTrainers:: @ 81F04FC
@ AXLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "AXLE$", 12
@@ -2450,7 +2450,7 @@ gTrainers:: @ 81F04FC
@ JAKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "JAKE$", 12
@@ -2462,7 +2462,7 @@ gTrainers:: @ 81F04FC
@ ANDY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "ANDY$", 12
@@ -2474,7 +2474,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "BERNIE$", 12
@@ -2486,7 +2486,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "BERNIE$", 12
@@ -2498,7 +2498,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "BERNIE$", 12
@@ -2510,7 +2510,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "BERNIE$", 12
@@ -2522,7 +2522,7 @@ gTrainers:: @ 81F04FC
@ BERNIE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_KINDLER
+ .byte TRAINER_CLASS_KINDLER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_KINDLER
.string "BERNIE$", 12
@@ -2534,7 +2534,7 @@ gTrainers:: @ 81F04FC
@ DREW
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "DREW$", 12
@@ -2546,7 +2546,7 @@ gTrainers:: @ 81F04FC
@ CLIFF
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "CLIFF$", 12
@@ -2558,7 +2558,7 @@ gTrainers:: @ 81F04FC
@ LARRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "LARRY$", 12
@@ -2570,7 +2570,7 @@ gTrainers:: @ 81F04FC
@ SHANE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "SHANE$", 12
@@ -2582,7 +2582,7 @@ gTrainers:: @ 81F04FC
@ JUSTIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "JUSTIN$", 12
@@ -2594,7 +2594,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "ETHAN$", 12
@@ -2606,7 +2606,7 @@ gTrainers:: @ 81F04FC
@ JEFF
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "JEFF$", 12
@@ -2618,7 +2618,7 @@ gTrainers:: @ 81F04FC
@ TRAVIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "TRAVIS$", 12
@@ -2630,7 +2630,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "ETHAN$", 12
@@ -2642,7 +2642,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "ETHAN$", 12
@@ -2654,7 +2654,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "ETHAN$", 12
@@ -2666,7 +2666,7 @@ gTrainers:: @ 81F04FC
@ ETHAN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "ETHAN$", 12
@@ -2678,7 +2678,7 @@ gTrainers:: @ 81F04FC
@ BRENT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRENT$", 12
@@ -2690,7 +2690,7 @@ gTrainers:: @ 81F04FC
@ DONALD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "DONALD$", 12
@@ -2702,7 +2702,7 @@ gTrainers:: @ 81F04FC
@ TAYLOR
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "TAYLOR$", 12
@@ -2714,7 +2714,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRANDON$", 12
@@ -2726,7 +2726,7 @@ gTrainers:: @ 81F04FC
@ DEREK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "DEREK$", 12
@@ -2738,7 +2738,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRANDON$", 12
@@ -2750,7 +2750,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRANDON$", 12
@@ -2762,7 +2762,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRANDON$", 12
@@ -2774,7 +2774,7 @@ gTrainers:: @ 81F04FC
@ BRANDON_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_MANIAC
+ .byte TRAINER_CLASS_BUG_MANIAC
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_BUG_MANIAC
.string "BRANDON$", 12
@@ -2786,7 +2786,7 @@ gTrainers:: @ 81F04FC
@ EDWARD
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "EDWARD$", 12
@@ -2798,7 +2798,7 @@ gTrainers:: @ 81F04FC
@ PRESTON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "PRESTON$", 12
@@ -2810,7 +2810,7 @@ gTrainers:: @ 81F04FC
@ VIRGIL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "VIRGIL$", 12
@@ -2822,7 +2822,7 @@ gTrainers:: @ 81F04FC
@ FRITZ
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "FRITZ$", 12
@@ -2834,7 +2834,7 @@ gTrainers:: @ 81F04FC
@ WILLIAM
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "WILLIAM$", 12
@@ -2846,7 +2846,7 @@ gTrainers:: @ 81F04FC
@ JOSHUA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "JOSHUA$", 12
@@ -2858,7 +2858,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "CAMERON$", 12
@@ -2870,7 +2870,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "CAMERON$", 12
@@ -2882,7 +2882,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "CAMERON$", 12
@@ -2894,7 +2894,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "CAMERON$", 12
@@ -2906,7 +2906,7 @@ gTrainers:: @ 81F04FC
@ CAMERON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_M
.string "CAMERON$", 12
@@ -2918,7 +2918,7 @@ gTrainers:: @ 81F04FC
@ JACLYN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "JACLYN$", 12
@@ -2930,7 +2930,7 @@ gTrainers:: @ 81F04FC
@ HANNAH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "HANNAH$", 12
@@ -2942,7 +2942,7 @@ gTrainers:: @ 81F04FC
@ SAMANTHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "SAMANTHA$", 12
@@ -2954,7 +2954,7 @@ gTrainers:: @ 81F04FC
@ MAURA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "MAURA$", 12
@@ -2966,7 +2966,7 @@ gTrainers:: @ 81F04FC
@ KAYLA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "KAYLA$", 12
@@ -2978,7 +2978,7 @@ gTrainers:: @ 81F04FC
@ ALEXIS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "ALEXIS$", 12
@@ -2990,7 +2990,7 @@ gTrainers:: @ 81F04FC
@ JACKI_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "JACKI$", 12
@@ -3002,7 +3002,7 @@ gTrainers:: @ 81F04FC
@ JACKI_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "JACKI$", 12
@@ -3014,7 +3014,7 @@ gTrainers:: @ 81F04FC
@ JACKI_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "JACKI$", 12
@@ -3026,7 +3026,7 @@ gTrainers:: @ 81F04FC
@ JACKI_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "JACKI$", 12
@@ -3038,7 +3038,7 @@ gTrainers:: @ 81F04FC
@ JACKI_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PSYCHIC
+ .byte TRAINER_CLASS_PSYCHIC
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_PSYCHIC_F
.string "JACKI$", 12
@@ -3050,7 +3050,7 @@ gTrainers:: @ 81F04FC
@ WALTER_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "WALTER$", 12
@@ -3062,7 +3062,7 @@ gTrainers:: @ 81F04FC
@ TUCKER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "TUCKER$", 12
@@ -3074,7 +3074,7 @@ gTrainers:: @ 81F04FC
@ THOMAS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "THOMAS$", 12
@@ -3086,7 +3086,7 @@ gTrainers:: @ 81F04FC
@ WALTER_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "WALTER$", 12
@@ -3098,7 +3098,7 @@ gTrainers:: @ 81F04FC
@ WALTER_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "WALTER$", 12
@@ -3110,7 +3110,7 @@ gTrainers:: @ 81F04FC
@ WALTER_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "WALTER$", 12
@@ -3122,7 +3122,7 @@ gTrainers:: @ 81F04FC
@ WALTER_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_GENTLEMAN
+ .byte TRAINER_CLASS_GENTLEMAN
.byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music
.byte TRAINER_PIC_GENTLEMAN
.string "WALTER$", 12
@@ -3134,7 +3134,7 @@ gTrainers:: @ 81F04FC
@ SIDNEY
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_SIDNEY
.string "SIDNEY$", 12
@@ -3146,7 +3146,7 @@ gTrainers:: @ 81F04FC
@ PHOEBE
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_PHOEBE
.string "PHOEBE$", 12
@@ -3158,7 +3158,7 @@ gTrainers:: @ 81F04FC
@ GLACIA
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_GLACIA
.string "GLACIA$", 12
@@ -3170,7 +3170,7 @@ gTrainers:: @ 81F04FC
@ DRAKE
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_ELITE_FOUR
+ .byte TRAINER_CLASS_ELITE_FOUR
.byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music
.byte TRAINER_PIC_DRAKE
.string "DRAKE$", 12
@@ -3182,7 +3182,7 @@ gTrainers:: @ 81F04FC
@ ROXANNE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_ROXANNE
.string "ROXANNE$", 12
@@ -3194,7 +3194,7 @@ gTrainers:: @ 81F04FC
@ BRAWLY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRAWLY
.string "BRAWLY$", 12
@@ -3206,7 +3206,7 @@ gTrainers:: @ 81F04FC
@ WATTSON
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WATTSON
.string "WATTSON$", 12
@@ -3218,7 +3218,7 @@ gTrainers:: @ 81F04FC
@ FLANNERY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_FLANNERY
.string "FLANNERY$", 12
@@ -3230,7 +3230,7 @@ gTrainers:: @ 81F04FC
@ NORMAN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_NORMAN
.string "NORMAN$", 12
@@ -3242,7 +3242,7 @@ gTrainers:: @ 81F04FC
@ WINONA
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_WINONA
.string "WINONA$", 12
@@ -3254,7 +3254,7 @@ gTrainers:: @ 81F04FC
@ TATE_AND_LIZA
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_TATE_AND_LIZA
.string "TATE&LIZA$", 12
@@ -3266,7 +3266,7 @@ gTrainers:: @ 81F04FC
@ WALLACE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_LEADER
+ .byte TRAINER_CLASS_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLACE
.string "WALLACE$", 12
@@ -3278,7 +3278,7 @@ gTrainers:: @ 81F04FC
@ JERRY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "JERRY$", 12
@@ -3290,7 +3290,7 @@ gTrainers:: @ 81F04FC
@ TED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "TED$", 12
@@ -3302,7 +3302,7 @@ gTrainers:: @ 81F04FC
@ PAUL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "PAUL$", 12
@@ -3314,7 +3314,7 @@ gTrainers:: @ 81F04FC
@ JERRY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "JERRY$", 12
@@ -3326,7 +3326,7 @@ gTrainers:: @ 81F04FC
@ JERRY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "JERRY$", 12
@@ -3338,7 +3338,7 @@ gTrainers:: @ 81F04FC
@ JERRY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "JERRY$", 12
@@ -3350,7 +3350,7 @@ gTrainers:: @ 81F04FC
@ JERRY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_M
.string "JERRY$", 12
@@ -3362,7 +3362,7 @@ gTrainers:: @ 81F04FC
@ KAREN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KAREN$", 12
@@ -3374,7 +3374,7 @@ gTrainers:: @ 81F04FC
@ GEORGIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "GEORGIA$", 12
@@ -3386,7 +3386,7 @@ gTrainers:: @ 81F04FC
@ KAREN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KAREN$", 12
@@ -3398,7 +3398,7 @@ gTrainers:: @ 81F04FC
@ KAREN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KAREN$", 12
@@ -3410,7 +3410,7 @@ gTrainers:: @ 81F04FC
@ KAREN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KAREN$", 12
@@ -3422,7 +3422,7 @@ gTrainers:: @ 81F04FC
@ KAREN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SCHOOL_KID
+ .byte TRAINER_CLASS_SCHOOL_KID
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_SCHOOL_KID_F
.string "KAREN$", 12
@@ -3434,7 +3434,7 @@ gTrainers:: @ 81F04FC
@ KATE_AND_JOY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "KATE & JOY$", 12
@@ -3446,7 +3446,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "ANNA & MEG$", 12
@@ -3458,7 +3458,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "ANNA & MEG$", 12
@@ -3470,7 +3470,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "ANNA & MEG$", 12
@@ -3482,7 +3482,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "ANNA & MEG$", 12
@@ -3494,7 +3494,7 @@ gTrainers:: @ 81F04FC
@ ANNA_AND_MEG_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "ANNA & MEG$", 12
@@ -3506,7 +3506,7 @@ gTrainers:: @ 81F04FC
@ VICTOR
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "VICTOR$", 12
@@ -3518,7 +3518,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3530,7 +3530,7 @@ gTrainers:: @ 81F04FC
@ COLTON
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "COLTON$", 12
@@ -3542,7 +3542,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3554,7 +3554,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3566,7 +3566,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3578,7 +3578,7 @@ gTrainers:: @ 81F04FC
@ MIGUEL_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_M
.string "MIGUEL$", 12
@@ -3590,7 +3590,7 @@ gTrainers:: @ 81F04FC
@ VICTORIA
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "VICTORIA$", 12
@@ -3602,7 +3602,7 @@ gTrainers:: @ 81F04FC
@ VANESSA
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "VANESSA$", 12
@@ -3614,7 +3614,7 @@ gTrainers:: @ 81F04FC
@ MARISSA
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "MARISSA$", 12
@@ -3626,7 +3626,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_1
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3638,7 +3638,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_2
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3650,7 +3650,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_3
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3662,7 +3662,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_4
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3674,7 +3674,7 @@ gTrainers:: @ 81F04FC
@ ISABEL_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_POKEFAN
+ .byte TRAINER_CLASS_POKEFAN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_POKEFAN_F
.string "ISABEL$", 12
@@ -3686,7 +3686,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "TIMOTHY$", 12
@@ -3698,7 +3698,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "TIMOTHY$", 12
@@ -3710,7 +3710,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "TIMOTHY$", 12
@@ -3722,7 +3722,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "TIMOTHY$", 12
@@ -3734,7 +3734,7 @@ gTrainers:: @ 81F04FC
@ TIMOTHY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_M
.string "TIMOTHY$", 12
@@ -3746,7 +3746,7 @@ gTrainers:: @ 81F04FC
@ VICKY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "VICKY$", 12
@@ -3758,7 +3758,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "SHELBY$", 12
@@ -3770,7 +3770,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "SHELBY$", 12
@@ -3782,7 +3782,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "SHELBY$", 12
@@ -3794,7 +3794,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "SHELBY$", 12
@@ -3806,7 +3806,7 @@ gTrainers:: @ 81F04FC
@ SHELBY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_EXPERT
+ .byte TRAINER_CLASS_EXPERT
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_EXPERT_F
.string "SHELBY$", 12
@@ -3818,7 +3818,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "CALVIN$", 12
@@ -3830,7 +3830,7 @@ gTrainers:: @ 81F04FC
@ BILLY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "BILLY$", 12
@@ -3842,7 +3842,7 @@ gTrainers:: @ 81F04FC
@ JOSH
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "JOSH$", 12
@@ -3854,7 +3854,7 @@ gTrainers:: @ 81F04FC
@ TOMMY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "TOMMY$", 12
@@ -3866,7 +3866,7 @@ gTrainers:: @ 81F04FC
@ JOEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "JOEY$", 12
@@ -3878,7 +3878,7 @@ gTrainers:: @ 81F04FC
@ BEN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "BEN$", 12
@@ -3890,7 +3890,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -3902,7 +3902,7 @@ gTrainers:: @ 81F04FC
@ KEVIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "KEVIN$", 12
@@ -3914,7 +3914,7 @@ gTrainers:: @ 81F04FC
@ NEAL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "NEAL$", 12
@@ -3926,7 +3926,7 @@ gTrainers:: @ 81F04FC
@ DILLON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "DILLON$", 12
@@ -3938,7 +3938,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "CALVIN$", 12
@@ -3950,7 +3950,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "CALVIN$", 12
@@ -3962,7 +3962,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "CALVIN$", 12
@@ -3974,7 +3974,7 @@ gTrainers:: @ 81F04FC
@ CALVIN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "CALVIN$", 12
@@ -3986,7 +3986,7 @@ gTrainers:: @ 81F04FC
@ EDDIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "EDDIE$", 12
@@ -3998,7 +3998,7 @@ gTrainers:: @ 81F04FC
@ ALLEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "ALLEN$", 12
@@ -4010,7 +4010,7 @@ gTrainers:: @ 81F04FC
@ TIMMY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNGSTER
+ .byte TRAINER_CLASS_YOUNGSTER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "TIMMY$", 12
@@ -4022,7 +4022,7 @@ gTrainers:: @ 81F04FC
@ STEVEN
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_CHAMPION
+ .byte TRAINER_CLASS_CHAMPION
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_STEVEN
.string "STEVEN$", 12
@@ -4034,7 +4034,7 @@ gTrainers:: @ 81F04FC
@ ANDREW
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ANDREW$", 12
@@ -4046,7 +4046,7 @@ gTrainers:: @ 81F04FC
@ IVAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "IVAN$", 12
@@ -4058,7 +4058,7 @@ gTrainers:: @ 81F04FC
@ CLAUDE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "CLAUDE$", 12
@@ -4070,7 +4070,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ELLIOT$", 12
@@ -4082,7 +4082,7 @@ gTrainers:: @ 81F04FC
@ NED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "NED$", 12
@@ -4094,7 +4094,7 @@ gTrainers:: @ 81F04FC
@ DALE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "DALE$", 12
@@ -4106,7 +4106,7 @@ gTrainers:: @ 81F04FC
@ NOLAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "NOLAN$", 12
@@ -4118,7 +4118,7 @@ gTrainers:: @ 81F04FC
@ BARNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "BARNY$", 12
@@ -4130,7 +4130,7 @@ gTrainers:: @ 81F04FC
@ WADE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "WADE$", 12
@@ -4142,7 +4142,7 @@ gTrainers:: @ 81F04FC
@ CARTER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "CARTER$", 12
@@ -4154,7 +4154,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ELLIOT$", 12
@@ -4166,7 +4166,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ELLIOT$", 12
@@ -4178,7 +4178,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ELLIOT$", 12
@@ -4190,7 +4190,7 @@ gTrainers:: @ 81F04FC
@ ELLIOT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ELLIOT$", 12
@@ -4202,7 +4202,7 @@ gTrainers:: @ 81F04FC
@ RONALD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "RONALD$", 12
@@ -4214,7 +4214,7 @@ gTrainers:: @ 81F04FC
@ JACOB
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "JACOB$", 12
@@ -4226,7 +4226,7 @@ gTrainers:: @ 81F04FC
@ ANTHONY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "ANTHONY$", 12
@@ -4238,7 +4238,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "BENJAMIN$", 12
@@ -4250,7 +4250,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "BENJAMIN$", 12
@@ -4262,7 +4262,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "BENJAMIN$", 12
@@ -4274,7 +4274,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "BENJAMIN$", 12
@@ -4286,7 +4286,7 @@ gTrainers:: @ 81F04FC
@ BENJAMIN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_M
.string "BENJAMIN$", 12
@@ -4298,7 +4298,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "ABIGAIL$", 12
@@ -4310,7 +4310,7 @@ gTrainers:: @ 81F04FC
@ JASMINE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "JASMINE$", 12
@@ -4322,7 +4322,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "ABIGAIL$", 12
@@ -4334,7 +4334,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "ABIGAIL$", 12
@@ -4346,7 +4346,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "ABIGAIL$", 12
@@ -4358,7 +4358,7 @@ gTrainers:: @ 81F04FC
@ ABIGAIL_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_CYCLING_TRIATHLETE_F
.string "ABIGAIL$", 12
@@ -4370,7 +4370,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "DYLAN$", 12
@@ -4382,7 +4382,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "DYLAN$", 12
@@ -4394,7 +4394,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "DYLAN$", 12
@@ -4406,7 +4406,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "DYLAN$", 12
@@ -4418,7 +4418,7 @@ gTrainers:: @ 81F04FC
@ DYLAN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_M
.string "DYLAN$", 12
@@ -4430,7 +4430,7 @@ gTrainers:: @ 81F04FC
@ MARIA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "MARIA$", 12
@@ -4442,7 +4442,7 @@ gTrainers:: @ 81F04FC
@ MARIA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "MARIA$", 12
@@ -4454,7 +4454,7 @@ gTrainers:: @ 81F04FC
@ MARIA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "MARIA$", 12
@@ -4466,7 +4466,7 @@ gTrainers:: @ 81F04FC
@ MARIA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "MARIA$", 12
@@ -4478,7 +4478,7 @@ gTrainers:: @ 81F04FC
@ MARIA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_RUNNING_TRIATHLETE_F
.string "MARIA$", 12
@@ -4490,7 +4490,7 @@ gTrainers:: @ 81F04FC
@ CALEB
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "CALEB$", 12
@@ -4502,7 +4502,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "$", 12
@@ -4514,7 +4514,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "ISAIAH$", 12
@@ -4526,7 +4526,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "$", 12
@@ -4538,7 +4538,7 @@ gTrainers:: @ 81F04FC
@ CHASE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "CHASE$", 12
@@ -4550,7 +4550,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "ISAIAH$", 12
@@ -4562,7 +4562,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "ISAIAH$", 12
@@ -4574,7 +4574,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "ISAIAH$", 12
@@ -4586,7 +4586,7 @@ gTrainers:: @ 81F04FC
@ ISAIAH_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_M
.string "ISAIAH$", 12
@@ -4598,7 +4598,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "$", 12
@@ -4610,7 +4610,7 @@ gTrainers:: @ 81F04FC
@ CONNOR
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "CONNOR$", 12
@@ -4622,7 +4622,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "$", 12
@@ -4634,7 +4634,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "KATELYN$", 12
@@ -4646,7 +4646,7 @@ gTrainers:: @ 81F04FC
@ ALLISON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "ALLISON$", 12
@@ -4658,7 +4658,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "KATELYN$", 12
@@ -4670,7 +4670,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "KATELYN$", 12
@@ -4682,7 +4682,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "KATELYN$", 12
@@ -4694,7 +4694,7 @@ gTrainers:: @ 81F04FC
@ KATELYN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TRIATHLETE
+ .byte TRAINER_CLASS_TRIATHLETE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMING_TRIATHLETE_F
.string "KATELYN$", 12
@@ -4706,7 +4706,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "NICOLAS$", 12
@@ -4718,7 +4718,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "NICOLAS$", 12
@@ -4730,7 +4730,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "NICOLAS$", 12
@@ -4742,7 +4742,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "NICOLAS$", 12
@@ -4754,7 +4754,7 @@ gTrainers:: @ 81F04FC
@ NICOLAS_5
.byte F_TRAINER_PARTY_HELD_ITEM @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "NICOLAS$", 12
@@ -4766,7 +4766,7 @@ gTrainers:: @ 81F04FC
@ AARON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_DRAGON_TAMER
+ .byte TRAINER_CLASS_DRAGON_TAMER
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_DRAGON_TAMER
.string "AARON$", 12
@@ -4778,7 +4778,7 @@ gTrainers:: @ 81F04FC
@ PERRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "PERRY$", 12
@@ -4790,7 +4790,7 @@ gTrainers:: @ 81F04FC
@ HUGH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "HUGH$", 12
@@ -4802,7 +4802,7 @@ gTrainers:: @ 81F04FC
@ PHIL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "PHIL$", 12
@@ -4814,7 +4814,7 @@ gTrainers:: @ 81F04FC
@ JARED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "JARED$", 12
@@ -4826,7 +4826,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "$", 12
@@ -4838,7 +4838,7 @@ gTrainers:: @ 81F04FC
@ TANNER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "TANNER$", 12
@@ -4850,7 +4850,7 @@ gTrainers:: @ 81F04FC
@ WILL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "WILL$", 12
@@ -4862,7 +4862,7 @@ gTrainers:: @ 81F04FC
@ COLIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "COLIN$", 12
@@ -4874,7 +4874,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ROBERT$", 12
@@ -4886,7 +4886,7 @@ gTrainers:: @ 81F04FC
@ BENNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "BENNY$", 12
@@ -4898,7 +4898,7 @@ gTrainers:: @ 81F04FC
@ CHESTER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "CHESTER$", 12
@@ -4910,7 +4910,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ROBERT$", 12
@@ -4922,7 +4922,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ROBERT$", 12
@@ -4934,7 +4934,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ROBERT$", 12
@@ -4946,7 +4946,7 @@ gTrainers:: @ 81F04FC
@ ROBERT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ROBERT$", 12
@@ -4958,7 +4958,7 @@ gTrainers:: @ 81F04FC
@ ALEX
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "ALEX$", 12
@@ -4970,7 +4970,7 @@ gTrainers:: @ 81F04FC
@ BECK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "BECK$", 12
@@ -4982,7 +4982,7 @@ gTrainers:: @ 81F04FC
@ YASU
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "YASU$", 12
@@ -4994,7 +4994,7 @@ gTrainers:: @ 81F04FC
@ TAKASHI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "TAKASHI$", 12
@@ -5006,7 +5006,7 @@ gTrainers:: @ 81F04FC
@ MAKOTO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "MAKOTO$", 12
@@ -5018,7 +5018,7 @@ gTrainers:: @ 81F04FC
@ HIDEO_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "HIDEO$", 12
@@ -5030,7 +5030,7 @@ gTrainers:: @ 81F04FC
@ LAO_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "LAO$", 12
@@ -5042,7 +5042,7 @@ gTrainers:: @ 81F04FC
@ LUNG
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "LUNG$", 12
@@ -5054,7 +5054,7 @@ gTrainers:: @ 81F04FC
@ LAO_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "LAO$", 12
@@ -5066,7 +5066,7 @@ gTrainers:: @ 81F04FC
@ LAO_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "LAO$", 12
@@ -5078,7 +5078,7 @@ gTrainers:: @ 81F04FC
@ LAO_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "LAO$", 12
@@ -5090,7 +5090,7 @@ gTrainers:: @ 81F04FC
@ LAO_5
.byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "LAO$", 12
@@ -5102,7 +5102,7 @@ gTrainers:: @ 81F04FC
@ TESSA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "TESSA$", 12
@@ -5114,7 +5114,7 @@ gTrainers:: @ 81F04FC
@ LAURA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "LAURA$", 12
@@ -5126,7 +5126,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CYNDY$", 12
@@ -5138,7 +5138,7 @@ gTrainers:: @ 81F04FC
@ CORA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CORA$", 12
@@ -5150,7 +5150,7 @@ gTrainers:: @ 81F04FC
@ JILL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "JILL$", 12
@@ -5162,7 +5162,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CYNDY$", 12
@@ -5174,7 +5174,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CYNDY$", 12
@@ -5186,7 +5186,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CYNDY$", 12
@@ -5198,7 +5198,7 @@ gTrainers:: @ 81F04FC
@ CYNDY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "CYNDY$", 12
@@ -5210,7 +5210,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "MADELINE$", 12
@@ -5222,7 +5222,7 @@ gTrainers:: @ 81F04FC
@ CLARISSA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "CLARISSA$", 12
@@ -5234,7 +5234,7 @@ gTrainers:: @ 81F04FC
@ ANGELICA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "ANGELICA$", 12
@@ -5246,7 +5246,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "MADELINE$", 12
@@ -5258,7 +5258,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "MADELINE$", 12
@@ -5270,7 +5270,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "MADELINE$", 12
@@ -5282,7 +5282,7 @@ gTrainers:: @ 81F04FC
@ MADELINE_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PARASOL_LADY
+ .byte TRAINER_CLASS_PARASOL_LADY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_PARASOL_LADY
.string "MADELINE$", 12
@@ -5294,7 +5294,7 @@ gTrainers:: @ 81F04FC
@ BEVERLY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "BEVERLY$", 12
@@ -5306,7 +5306,7 @@ gTrainers:: @ 81F04FC
@ DAWN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DAWN$", 12
@@ -5318,7 +5318,7 @@ gTrainers:: @ 81F04FC
@ NICOLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "NICOLE$", 12
@@ -5330,7 +5330,7 @@ gTrainers:: @ 81F04FC
@ DENISE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DENISE$", 12
@@ -5342,7 +5342,7 @@ gTrainers:: @ 81F04FC
@ BETH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "BETH$", 12
@@ -5354,7 +5354,7 @@ gTrainers:: @ 81F04FC
@ TARA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "TARA$", 12
@@ -5366,7 +5366,7 @@ gTrainers:: @ 81F04FC
@ MISSY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "MISSY$", 12
@@ -5378,7 +5378,7 @@ gTrainers:: @ 81F04FC
@ ALICE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ALICE$", 12
@@ -5390,7 +5390,7 @@ gTrainers:: @ 81F04FC
@ JENNY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "JENNY$", 12
@@ -5402,7 +5402,7 @@ gTrainers:: @ 81F04FC
@ GRACE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "GRACE$", 12
@@ -5414,7 +5414,7 @@ gTrainers:: @ 81F04FC
@ TANYA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "TANYA$", 12
@@ -5426,7 +5426,7 @@ gTrainers:: @ 81F04FC
@ SHARON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "SHARON$", 12
@@ -5438,7 +5438,7 @@ gTrainers:: @ 81F04FC
@ NIKKI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "NIKKI$", 12
@@ -5450,7 +5450,7 @@ gTrainers:: @ 81F04FC
@ BRENDA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "BRENDA$", 12
@@ -5462,7 +5462,7 @@ gTrainers:: @ 81F04FC
@ KATIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "KATIE$", 12
@@ -5474,7 +5474,7 @@ gTrainers:: @ 81F04FC
@ SUSIE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "SUSIE$", 12
@@ -5486,7 +5486,7 @@ gTrainers:: @ 81F04FC
@ KARA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "KARA$", 12
@@ -5498,7 +5498,7 @@ gTrainers:: @ 81F04FC
@ DANA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DANA$", 12
@@ -5510,7 +5510,7 @@ gTrainers:: @ 81F04FC
@ ERIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "ERIN$", 12
@@ -5522,7 +5522,7 @@ gTrainers:: @ 81F04FC
@ DEBRA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DEBRA$", 12
@@ -5534,7 +5534,7 @@ gTrainers:: @ 81F04FC
@ LINDA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "LINDA$", 12
@@ -5546,7 +5546,7 @@ gTrainers:: @ 81F04FC
@ KAYLEE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "KAYLEE$", 12
@@ -5558,7 +5558,7 @@ gTrainers:: @ 81F04FC
@ LAUREL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "LAUREL$", 12
@@ -5570,7 +5570,7 @@ gTrainers:: @ 81F04FC
@ DARCY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "DARCY$", 12
@@ -5582,7 +5582,7 @@ gTrainers:: @ 81F04FC
@ JENNY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "JENNY$", 12
@@ -5594,7 +5594,7 @@ gTrainers:: @ 81F04FC
@ JENNY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "JENNY$", 12
@@ -5606,7 +5606,7 @@ gTrainers:: @ 81F04FC
@ JENNY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "JENNY$", 12
@@ -5618,7 +5618,7 @@ gTrainers:: @ 81F04FC
@ JENNY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "JENNY$", 12
@@ -5630,7 +5630,7 @@ gTrainers:: @ 81F04FC
@ HEIDI
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "HEIDI$", 12
@@ -5642,7 +5642,7 @@ gTrainers:: @ 81F04FC
@ BECKY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "BECKY$", 12
@@ -5654,7 +5654,7 @@ gTrainers:: @ 81F04FC
@ CAROL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "CAROL$", 12
@@ -5666,7 +5666,7 @@ gTrainers:: @ 81F04FC
@ NANCY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "NANCY$", 12
@@ -5678,7 +5678,7 @@ gTrainers:: @ 81F04FC
@ MARTHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "MARTHA$", 12
@@ -5690,7 +5690,7 @@ gTrainers:: @ 81F04FC
@ DIANA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "DIANA$", 12
@@ -5702,7 +5702,7 @@ gTrainers:: @ 81F04FC
@ NINA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "NINA$", 12
@@ -5714,7 +5714,7 @@ gTrainers:: @ 81F04FC
@ IRENE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "IRENE$", 12
@@ -5726,7 +5726,7 @@ gTrainers:: @ 81F04FC
@ DIANA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "DIANA$", 12
@@ -5738,7 +5738,7 @@ gTrainers:: @ 81F04FC
@ DIANA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "DIANA$", 12
@@ -5750,7 +5750,7 @@ gTrainers:: @ 81F04FC
@ DIANA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "DIANA$", 12
@@ -5762,7 +5762,7 @@ gTrainers:: @ 81F04FC
@ DIANA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "DIANA$", 12
@@ -5774,7 +5774,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "AMY & LIV$", 12
@@ -5786,7 +5786,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "AMY & LIV$", 12
@@ -5798,7 +5798,7 @@ gTrainers:: @ 81F04FC
@ GINA_AND_MIA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "GINA & MIA$", 12
@@ -5810,7 +5810,7 @@ gTrainers:: @ 81F04FC
@ MIU_AND_YUKI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "MIU & YUKI$", 12
@@ -5822,7 +5822,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "AMY & LIV$", 12
@@ -5834,7 +5834,7 @@ gTrainers:: @ 81F04FC
@ GINA_AND_MIA_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "GINA & MIA$", 12
@@ -5846,7 +5846,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "AMY & LIV$", 12
@@ -5858,7 +5858,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "AMY & LIV$", 12
@@ -5870,7 +5870,7 @@ gTrainers:: @ 81F04FC
@ AMY_AND_LIV_6
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "AMY & LIV$", 12
@@ -5882,7 +5882,7 @@ gTrainers:: @ 81F04FC
@ HUEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "HUEY$", 12
@@ -5894,7 +5894,7 @@ gTrainers:: @ 81F04FC
@ EDMOND
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "EDMOND$", 12
@@ -5906,7 +5906,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ERNEST$", 12
@@ -5918,7 +5918,7 @@ gTrainers:: @ 81F04FC
@ DWAYNE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "DWAYNE$", 12
@@ -5930,7 +5930,7 @@ gTrainers:: @ 81F04FC
@ PHILLIP
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "PHILLIP$", 12
@@ -5942,7 +5942,7 @@ gTrainers:: @ 81F04FC
@ LEONARD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "LEONARD$", 12
@@ -5954,7 +5954,7 @@ gTrainers:: @ 81F04FC
@ DUNCAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "DUNCAN$", 12
@@ -5966,7 +5966,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ERNEST$", 12
@@ -5978,7 +5978,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ERNEST$", 12
@@ -5990,7 +5990,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ERNEST$", 12
@@ -6002,7 +6002,7 @@ gTrainers:: @ 81F04FC
@ ERNEST_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SAILOR
+ .byte TRAINER_CLASS_SAILOR
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_SAILOR
.string "ERNEST$", 12
@@ -6014,7 +6014,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -6026,7 +6026,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -6038,7 +6038,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_13
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "$", 12
@@ -6050,7 +6050,7 @@ gTrainers:: @ 81F04FC
@ SONNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "SONNY$", 12
@@ -6062,7 +6062,7 @@ gTrainers:: @ 81F04FC
@ DONOVAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "DONOVAN$", 12
@@ -6074,7 +6074,7 @@ gTrainers:: @ 81F04FC
@ GERALD
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "GERALD$", 12
@@ -6086,7 +6086,7 @@ gTrainers:: @ 81F04FC
@ KELVIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "KELVIN$", 12
@@ -6098,7 +6098,7 @@ gTrainers:: @ 81F04FC
@ KODY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "KODY$", 12
@@ -6110,7 +6110,7 @@ gTrainers:: @ 81F04FC
@ TEVIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "TEVIN$", 12
@@ -6122,7 +6122,7 @@ gTrainers:: @ 81F04FC
@ DAMON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "DAMON$", 12
@@ -6134,7 +6134,7 @@ gTrainers:: @ 81F04FC
@ PABLO
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BOARDER
+ .byte TRAINER_CLASS_BOARDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_YOUNGSTER
.string "PABLO$", 12
@@ -6146,7 +6146,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6158,7 +6158,7 @@ gTrainers:: @ 81F04FC
@ HECTOR_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "HECTOR$", 12
@@ -6170,7 +6170,7 @@ gTrainers:: @ 81F04FC
@ HECTOR_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "HECTOR$", 12
@@ -6182,7 +6182,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6194,7 +6194,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6206,7 +6206,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6218,7 +6218,7 @@ gTrainers:: @ 81F04FC
@ EDWIN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COLLECTOR
+ .byte TRAINER_CLASS_COLLECTOR
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_COLLECTOR
.string "EDWIN$", 12
@@ -6230,7 +6230,7 @@ gTrainers:: @ 81F04FC
@ WALLY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "WALLY$", 12
@@ -6242,7 +6242,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6254,7 +6254,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6266,7 +6266,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6278,7 +6278,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6290,7 +6290,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6302,7 +6302,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6314,7 +6314,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6326,7 +6326,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6338,7 +6338,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -6350,7 +6350,7 @@ gTrainers:: @ 81F04FC
@ MAY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6362,7 +6362,7 @@ gTrainers:: @ 81F04FC
@ MAY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6374,7 +6374,7 @@ gTrainers:: @ 81F04FC
@ MAY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6386,7 +6386,7 @@ gTrainers:: @ 81F04FC
@ MAY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6398,7 +6398,7 @@ gTrainers:: @ 81F04FC
@ MAY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6410,7 +6410,7 @@ gTrainers:: @ 81F04FC
@ MAY_6
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6422,7 +6422,7 @@ gTrainers:: @ 81F04FC
@ MAY_7
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6434,7 +6434,7 @@ gTrainers:: @ 81F04FC
@ MAY_8
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6446,7 +6446,7 @@ gTrainers:: @ 81F04FC
@ MAY_9
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -6458,7 +6458,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "ISAAC$", 12
@@ -6470,7 +6470,7 @@ gTrainers:: @ 81F04FC
@ RILEY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "RILEY$", 12
@@ -6482,7 +6482,7 @@ gTrainers:: @ 81F04FC
@ AIDAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "AIDAN$", 12
@@ -6494,7 +6494,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "ISAAC$", 12
@@ -6506,7 +6506,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "ISAAC$", 12
@@ -6518,7 +6518,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "ISAAC$", 12
@@ -6530,7 +6530,7 @@ gTrainers:: @ 81F04FC
@ ISAAC_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_M
.string "ISAAC$", 12
@@ -6542,7 +6542,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6554,7 +6554,7 @@ gTrainers:: @ 81F04FC
@ ALEXIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "ALEXIA$", 12
@@ -6566,7 +6566,7 @@ gTrainers:: @ 81F04FC
@ DANIELLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "DANIELLE$", 12
@@ -6578,7 +6578,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6590,7 +6590,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6602,7 +6602,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6614,7 +6614,7 @@ gTrainers:: @ 81F04FC
@ LYDIA_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_BREEDER
+ .byte TRAINER_CLASS_POKEMON_BREEDER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_BREEDER_F
.string "LYDIA$", 12
@@ -6626,7 +6626,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "JACKSON$", 12
@@ -6638,7 +6638,7 @@ gTrainers:: @ 81F04FC
@ CARLOS
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "CARLOS$", 12
@@ -6650,7 +6650,7 @@ gTrainers:: @ 81F04FC
@ SEBASTIAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "SEBASTIAN$", 12
@@ -6662,7 +6662,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "JACKSON$", 12
@@ -6674,7 +6674,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "JACKSON$", 12
@@ -6686,7 +6686,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "JACKSON$", 12
@@ -6698,7 +6698,7 @@ gTrainers:: @ 81F04FC
@ JACKSON_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_M
.string "JACKSON$", 12
@@ -6710,7 +6710,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "CATHERINE$", 12
@@ -6722,7 +6722,7 @@ gTrainers:: @ 81F04FC
@ JENNA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "JENNA$", 12
@@ -6734,7 +6734,7 @@ gTrainers:: @ 81F04FC
@ SOPHIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "SOPHIA$", 12
@@ -6746,7 +6746,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "CATHERINE$", 12
@@ -6758,7 +6758,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "CATHERINE$", 12
@@ -6770,7 +6770,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "CATHERINE$", 12
@@ -6782,7 +6782,7 @@ gTrainers:: @ 81F04FC
@ CATHERINE_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_RANGER
+ .byte TRAINER_CLASS_POKEMON_RANGER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_POKEMON_RANGER_F
.string "CATHERINE$", 12
@@ -6794,7 +6794,7 @@ gTrainers:: @ 81F04FC
@ MAXIE_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER
+ .byte TRAINER_CLASS_MAGMA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAXIE
.string "MAXIE$", 12
@@ -6806,7 +6806,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_28
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6818,7 +6818,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_29
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6830,7 +6830,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_30
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6842,7 +6842,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_31
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6854,7 +6854,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_32
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6866,7 +6866,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_33
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6878,7 +6878,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_34
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6890,7 +6890,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_35
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6902,7 +6902,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_36
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6914,7 +6914,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_37
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6926,7 +6926,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_38
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6938,7 +6938,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_39
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6950,7 +6950,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_40
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6962,7 +6962,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_41
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6974,7 +6974,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_42
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6986,7 +6986,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_43
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -6998,7 +6998,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_44
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7010,7 +7010,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_45
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7022,7 +7022,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_46
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7034,7 +7034,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_47
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7046,7 +7046,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_48
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7058,7 +7058,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_49
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7070,7 +7070,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_50
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7082,7 +7082,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_51
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_M
.string "GRUNT$", 12
@@ -7094,7 +7094,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_52
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_F
.string "GRUNT$", 12
@@ -7106,7 +7106,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_53
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_F
.string "GRUNT$", 12
@@ -7118,7 +7118,7 @@ gTrainers:: @ 81F04FC
@ GRUNT_54
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TEAM_MAGMA
+ .byte TRAINER_CLASS_TEAM_MAGMA
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_GRUNT_F
.string "GRUNT$", 12
@@ -7130,7 +7130,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_14
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "$", 12
@@ -7142,7 +7142,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_15
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "$", 12
@@ -7154,7 +7154,7 @@ gTrainers:: @ 81F04FC
@ TABITHA_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "TABITHA$", 12
@@ -7166,7 +7166,7 @@ gTrainers:: @ 81F04FC
@ TABITHA_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "TABITHA$", 12
@@ -7178,7 +7178,7 @@ gTrainers:: @ 81F04FC
@ ANONYMOUS_16
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_M
.string "$", 12
@@ -7190,7 +7190,7 @@ gTrainers:: @ 81F04FC
@ COURTNEY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_F
.string "COURTNEY$", 12
@@ -7202,7 +7202,7 @@ gTrainers:: @ 81F04FC
@ COURTNEY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_ADMIN
+ .byte TRAINER_CLASS_MAGMA_ADMIN
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAGMA_ADMIN_F
.string "COURTNEY$", 12
@@ -7214,7 +7214,7 @@ gTrainers:: @ 81F04FC
@ MAXIE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER
+ .byte TRAINER_CLASS_MAGMA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAXIE
.string "MAXIE$", 12
@@ -7226,7 +7226,7 @@ gTrainers:: @ 81F04FC
@ MAXIE_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_MAGMA_LEADER
+ .byte TRAINER_CLASS_MAGMA_LEADER
.byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music
.byte TRAINER_PIC_MAXIE
.string "MAXIE$", 12
@@ -7238,7 +7238,7 @@ gTrainers:: @ 81F04FC
@ TIANA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "TIANA$", 12
@@ -7250,7 +7250,7 @@ gTrainers:: @ 81F04FC
@ HALEY_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "HALEY$", 12
@@ -7262,7 +7262,7 @@ gTrainers:: @ 81F04FC
@ JANICE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "JANICE$", 12
@@ -7274,7 +7274,7 @@ gTrainers:: @ 81F04FC
@ VIVI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_WINSTRATE
+ .byte TRAINER_CLASS_WINSTRATE
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "VIVI$", 12
@@ -7286,7 +7286,7 @@ gTrainers:: @ 81F04FC
@ HALEY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "HALEY$", 12
@@ -7298,7 +7298,7 @@ gTrainers:: @ 81F04FC
@ HALEY_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "HALEY$", 12
@@ -7310,7 +7310,7 @@ gTrainers:: @ 81F04FC
@ HALEY_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "HALEY$", 12
@@ -7322,7 +7322,7 @@ gTrainers:: @ 81F04FC
@ HALEY_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "HALEY$", 12
@@ -7334,7 +7334,7 @@ gTrainers:: @ 81F04FC
@ SALLY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "SALLY$", 12
@@ -7346,7 +7346,7 @@ gTrainers:: @ 81F04FC
@ ROBIN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ROBIN$", 12
@@ -7358,7 +7358,7 @@ gTrainers:: @ 81F04FC
@ ANDREA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "ANDREA$", 12
@@ -7370,7 +7370,7 @@ gTrainers:: @ 81F04FC
@ CRISSY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_LASS
+ .byte TRAINER_CLASS_LASS
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_LASS
.string "CRISSY$", 12
@@ -7382,7 +7382,7 @@ gTrainers:: @ 81F04FC
@ RICK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "RICK$", 12
@@ -7394,7 +7394,7 @@ gTrainers:: @ 81F04FC
@ LYLE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "LYLE$", 12
@@ -7406,7 +7406,7 @@ gTrainers:: @ 81F04FC
@ JOSE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "JOSE$", 12
@@ -7418,7 +7418,7 @@ gTrainers:: @ 81F04FC
@ DOUG
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "DOUG$", 12
@@ -7430,7 +7430,7 @@ gTrainers:: @ 81F04FC
@ GREG
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "GREG$", 12
@@ -7442,7 +7442,7 @@ gTrainers:: @ 81F04FC
@ KENT
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "KENT$", 12
@@ -7454,7 +7454,7 @@ gTrainers:: @ 81F04FC
@ JAMES_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "JAMES$", 12
@@ -7466,7 +7466,7 @@ gTrainers:: @ 81F04FC
@ JAMES_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "JAMES$", 12
@@ -7478,7 +7478,7 @@ gTrainers:: @ 81F04FC
@ JAMES_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "JAMES$", 12
@@ -7490,7 +7490,7 @@ gTrainers:: @ 81F04FC
@ JAMES_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "JAMES$", 12
@@ -7502,7 +7502,7 @@ gTrainers:: @ 81F04FC
@ JAMES_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BUG_CATCHER
+ .byte TRAINER_CLASS_BUG_CATCHER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BUG_CATCHER
.string "JAMES$", 12
@@ -7514,7 +7514,7 @@ gTrainers:: @ 81F04FC
@ BRICE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "BRICE$", 12
@@ -7526,7 +7526,7 @@ gTrainers:: @ 81F04FC
@ TRENT_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "TRENT$", 12
@@ -7538,7 +7538,7 @@ gTrainers:: @ 81F04FC
@ LENNY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "LENNY$", 12
@@ -7550,7 +7550,7 @@ gTrainers:: @ 81F04FC
@ LUCAS_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "LUCAS$", 12
@@ -7562,7 +7562,7 @@ gTrainers:: @ 81F04FC
@ ALAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "ALAN$", 12
@@ -7574,7 +7574,7 @@ gTrainers:: @ 81F04FC
@ CLARK
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "CLARK$", 12
@@ -7586,7 +7586,7 @@ gTrainers:: @ 81F04FC
@ ERIC
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "ERIC$", 12
@@ -7598,7 +7598,7 @@ gTrainers:: @ 81F04FC
@ LUCAS_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "LUCAS$", 12
@@ -7610,7 +7610,7 @@ gTrainers:: @ 81F04FC
@ MIKE_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "MIKE$", 12
@@ -7622,7 +7622,7 @@ gTrainers:: @ 81F04FC
@ MIKE_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "MIKE$", 12
@@ -7634,7 +7634,7 @@ gTrainers:: @ 81F04FC
@ TRENT_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "TRENT$", 12
@@ -7646,7 +7646,7 @@ gTrainers:: @ 81F04FC
@ TRENT_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "TRENT$", 12
@@ -7658,7 +7658,7 @@ gTrainers:: @ 81F04FC
@ TRENT_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "TRENT$", 12
@@ -7670,7 +7670,7 @@ gTrainers:: @ 81F04FC
@ TRENT_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_HIKER
+ .byte TRAINER_CLASS_HIKER
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_HIKER
.string "TRENT$", 12
@@ -7682,7 +7682,7 @@ gTrainers:: @ 81F04FC
@ DEZ_AND_LUKE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "DEZ & LUKE$", 12
@@ -7694,7 +7694,7 @@ gTrainers:: @ 81F04FC
@ LEA_AND_JED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LEA & JED$", 12
@@ -7706,7 +7706,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LOIS & HAL$", 12
@@ -7718,7 +7718,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LOIS & HAL$", 12
@@ -7730,7 +7730,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LOIS & HAL$", 12
@@ -7742,7 +7742,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LOIS & HAL$", 12
@@ -7754,7 +7754,7 @@ gTrainers:: @ 81F04FC
@ LOIS_AND_HAL_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "LOIS & HAL$", 12
@@ -7766,7 +7766,7 @@ gTrainers:: @ 81F04FC
@ JOHANNA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BEAUTY
+ .byte TRAINER_CLASS_BEAUTY
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_BEAUTY
.string "JOHANNA$", 12
@@ -7778,7 +7778,7 @@ gTrainers:: @ 81F04FC
@ ZANE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "ZANE$", 12
@@ -7790,7 +7790,7 @@ gTrainers:: @ 81F04FC
@ VIVIAN
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "VIVIAN$", 12
@@ -7802,7 +7802,7 @@ gTrainers:: @ 81F04FC
@ SADIE
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_BATTLE_GIRL
+ .byte TRAINER_CLASS_BATTLE_GIRL
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BATTLE_GIRL
.string "SADIE$", 12
@@ -7814,7 +7814,7 @@ gTrainers:: @ 81F04FC
@ HIDEO_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "HIDEO$", 12
@@ -7826,7 +7826,7 @@ gTrainers:: @ 81F04FC
@ KEIGO
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "KEIGO$", 12
@@ -7838,7 +7838,7 @@ gTrainers:: @ 81F04FC
@ TSUNAO
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_NINJA_BOY
+ .byte TRAINER_CLASS_NINJA_BOY
.byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music
.byte TRAINER_PIC_NINJA_BOY
.string "TSUNAO$", 12
@@ -7850,7 +7850,7 @@ gTrainers:: @ 81F04FC
@ TERRELL
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_CAMPER
+ .byte TRAINER_CLASS_CAMPER
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_CAMPER
.string "TERRELL$", 12
@@ -7862,7 +7862,7 @@ gTrainers:: @ 81F04FC
@ KYLEE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_PICNICKER
+ .byte TRAINER_CLASS_PICNICKER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_PICNICKER
.string "KYLEE$", 12
@@ -7874,7 +7874,7 @@ gTrainers:: @ 81F04FC
@ WALLY_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "WALLY$", 12
@@ -7886,7 +7886,7 @@ gTrainers:: @ 81F04FC
@ WALLY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "WALLY$", 12
@@ -7898,7 +7898,7 @@ gTrainers:: @ 81F04FC
@ WALLY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "WALLY$", 12
@@ -7910,7 +7910,7 @@ gTrainers:: @ 81F04FC
@ WALLY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "WALLY$", 12
@@ -7922,7 +7922,7 @@ gTrainers:: @ 81F04FC
@ WALLY_6
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_WALLY
.string "WALLY$", 12
@@ -7934,7 +7934,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -7946,7 +7946,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -7958,7 +7958,7 @@ gTrainers:: @ 81F04FC
@ BRENDAN_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music
.byte TRAINER_PIC_BRENDAN
.string "BRENDAN$", 12
@@ -7970,7 +7970,7 @@ gTrainers:: @ 81F04FC
@ MAY_10
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -7982,7 +7982,7 @@ gTrainers:: @ 81F04FC
@ MAY_11
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -7994,7 +7994,7 @@ gTrainers:: @ 81F04FC
@ MAY_12
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3
+ .byte TRAINER_CLASS_POKEMON_TRAINER_3
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music
.byte TRAINER_PIC_MAY
.string "MAY$", 12
@@ -8006,7 +8006,7 @@ gTrainers:: @ 81F04FC
@ JONAH
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "JONAH$", 12
@@ -8018,7 +8018,7 @@ gTrainers:: @ 81F04FC
@ HENRY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "HENRY$", 12
@@ -8030,7 +8030,7 @@ gTrainers:: @ 81F04FC
@ ROGER
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "ROGER$", 12
@@ -8042,7 +8042,7 @@ gTrainers:: @ 81F04FC
@ ALEXA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_F
.string "ALEXA$", 12
@@ -8054,7 +8054,7 @@ gTrainers:: @ 81F04FC
@ RUBEN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_COOL_TRAINER
+ .byte TRAINER_CLASS_COOL_TRAINER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_COOL_TRAINER_M
.string "RUBEN$", 12
@@ -8066,7 +8066,7 @@ gTrainers:: @ 81F04FC
@ KOJI
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BLACK_BELT
+ .byte TRAINER_CLASS_BLACK_BELT
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_BLACK_BELT
.string "KOJI$", 12
@@ -8078,7 +8078,7 @@ gTrainers:: @ 81F04FC
@ WAYNE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "WAYNE$", 12
@@ -8090,7 +8090,7 @@ gTrainers:: @ 81F04FC
@ BYRON
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_BIRD_KEEPER
+ .byte TRAINER_CLASS_BIRD_KEEPER
.byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music
.byte TRAINER_PIC_BIRD_KEEPER
.string "BYRON$", 12
@@ -8102,7 +8102,7 @@ gTrainers:: @ 81F04FC
@ REED
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_M
+ .byte TRAINER_CLASS_SWIMMER_M
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_M
.string "REED$", 12
@@ -8114,7 +8114,7 @@ gTrainers:: @ 81F04FC
@ TISHA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SWIMMER_F
+ .byte TRAINER_CLASS_SWIMMER_F
.byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SWIMMER_F
.string "TISHA$", 12
@@ -8126,7 +8126,7 @@ gTrainers:: @ 81F04FC
@ TORI_AND_TIA
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_TWINS
+ .byte TRAINER_CLASS_TWINS
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_TWINS
.string "TORI & TIA$", 12
@@ -8138,7 +8138,7 @@ gTrainers:: @ 81F04FC
@ KIM_AND_IRIS
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "KIM & IRIS$", 12
@@ -8150,7 +8150,7 @@ gTrainers:: @ 81F04FC
@ TYRA_AND_IVY
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_SR_AND_JR
+ .byte TRAINER_CLASS_SR_AND_JR
.byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music
.byte TRAINER_PIC_SR_AND_JR
.string "TYRA & IVY$", 12
@@ -8162,7 +8162,7 @@ gTrainers:: @ 81F04FC
@ MEL_AND_PAUL
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_YOUNG_COUPLE
+ .byte TRAINER_CLASS_YOUNG_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music
.byte TRAINER_PIC_YOUNG_COUPLE
.string "MEL & PAUL$", 12
@@ -8174,7 +8174,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_1
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "JOHN & JAY$", 12
@@ -8186,7 +8186,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_2
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "JOHN & JAY$", 12
@@ -8198,7 +8198,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_3
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "JOHN & JAY$", 12
@@ -8210,7 +8210,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_4
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "JOHN & JAY$", 12
@@ -8222,7 +8222,7 @@ gTrainers:: @ 81F04FC
@ JOHN_AND_JAY_5
.byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags
- .byte TRAINER_CLASS_NAME_OLD_COUPLE
+ .byte TRAINER_CLASS_OLD_COUPLE
.byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music
.byte TRAINER_PIC_OLD_COUPLE
.string "JOHN & JAY$", 12
@@ -8234,7 +8234,7 @@ gTrainers:: @ 81F04FC
@ RELI_AND_IAN
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "RELI & IAN$", 12
@@ -8246,7 +8246,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_1
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "RITA & SAM$", 12
@@ -8258,7 +8258,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_2
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "RITA & SAM$", 12
@@ -8270,7 +8270,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_3
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "RITA & SAM$", 12
@@ -8282,7 +8282,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_4
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "RITA & SAM$", 12
@@ -8294,7 +8294,7 @@ gTrainers:: @ 81F04FC
@ RITA_AND_SAM_5
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "RITA & SAM$", 12
@@ -8306,7 +8306,7 @@ gTrainers:: @ 81F04FC
@ LISA_AND_RAY
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_SIS_AND_BRO
+ .byte TRAINER_CLASS_SIS_AND_BRO
.byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music
.byte TRAINER_PIC_SIS_AND_BRO
.string "LISA & RAY$", 12
@@ -8318,7 +8318,7 @@ gTrainers:: @ 81F04FC
@ EUGENE
.byte 0 @ party type flags
- .byte TRAINER_CLASS_NAME_FISHERMAN
+ .byte TRAINER_CLASS_FISHERMAN
.byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music
.byte TRAINER_PIC_FISHERMAN
.string "EUGENE$", 12
diff --git a/data/unk_debug_menu_3.s b/data/unk_debug_menu_3.s
new file mode 100644
index 000000000..100821c9b
--- /dev/null
+++ b/data/unk_debug_menu_3.s
@@ -0,0 +1,105 @@
+ .section .rodata
+
+ .align 2
+
+Str_842E238:: @ 0x842E238
+ .string "タマゴ$"
+
+.if DEBUG
+
+Str_842E23C:: @ 0x842E23C
+ .string "ガイブ$"
+
+Str_842E240:: @ 0x842E240
+ .string "ENGLISH$"
+
+Str_842E248:: @ 0x842E248
+ .string "TOURNAMENT$"
+
+Str_842E253:: @ 0x842E253
+ .string " そら  カードイー$"
+
+Str_842E25E:: @ 0x842E25E
+ .string "ポケコッコ$"
+
+Str_842E264:: @ 0x842E264
+ .string "ticket$"
+
+Str_842E26B:: @ 0x842E26B
+ .string "{PKMN}$"
+
+Str_842E26E:: @ 0x842E26E
+ .string "wrong {PKMN}$"
+
+Str_842E277:: @ 0x842E277
+ .string "ribbon$"
+
+Str_842E27E:: @ 0x842E27E
+ .string "DEX$"
+
+Str_842E282:: @ 0x842E282
+ .string "message$"
+
+Str_842E28A:: @ 0x842E28A
+ .string "egg$"
+
+Str_842E28E:: @ 0x842E28E
+ .string "RAM seed$"
+
+Str_842E297:: @ 0x842E297
+ .string "trainer$"
+
+Str_842E29F:: @ 0x842E29F
+ .string "clock$"
+
+Str_842E2A5:: @ 0x842E2A5
+ .string "item$"
+
+Str_842E2AA:: @ 0x842E2AA
+ .string "goods$"
+
+Str_842E2B0:: @ 0x842E2B0
+ .string "potion$"
+
+Str_842E2B7:: @ 0x842E2B7
+ .string "ball$"
+
+Str_842E2BC:: @ 0x842E2BC
+ .string "cheri berry$"
+
+Str_842E2C8:: @ 0x842E2C8
+ .string "TM01$"
+
+ .align 2
+gUnknown_Debug_842E2D0::
+ .4byte Str_842E264, debug_sub_813C404+1
+ .4byte Str_842E26B, debug_sub_813C810+1
+ .4byte Str_842E26E, debug_sub_813C888+1
+ .4byte Str_842E277, debug_sub_813C430+1
+ .4byte Str_842E27E, debug_sub_813C488+1
+ .4byte Str_842E282, debug_sub_813C45C+1
+ .4byte Str_842E28A, debug_sub_813C740+1
+ .4byte Str_842E28E, debug_sub_813C5B4+1
+ .4byte Str_842E297, debug_sub_813C93C+1
+ .4byte Str_842E29F, debug_sub_813C4B4+1
+ .4byte Str_842E2A5, debug_sub_813C4D4+1
+ .4byte Str_842E2AA, debug_sub_813C500+1
+ .4byte Str_842E2B0, debug_sub_813C580+1
+ .4byte Str_842E2B7, debug_sub_813C58C+1
+ .4byte Str_842E2BC, debug_sub_813C598+1
+ .4byte Str_842E2C8, debug_sub_813C5A4+1
+
+gUnknown_Debug_842E350::
+ .4byte 0x10
+ .4byte gUnknown_Debug_845DAE1
+ .4byte gUnknown_Debug_845DDB2
+ .4byte gUnknown_Debug_845E306
+ .4byte gUnknown_Debug_845E3E0
+ .4byte gUnknown_Debug_845E3E0
+ .4byte gUnknown_Debug_845E402
+ .4byte gUnknown_Debug_845E402
+ .4byte gUnknown_Debug_845E422
+ .4byte gUnknown_Debug_845E422
+ .4byte gUnknown_Debug_845E443
+
+.endif
diff --git a/data/unused_hit.s b/data/unused_hit.s
new file mode 100644
index 000000000..d7bdef912
--- /dev/null
+++ b/data/unused_hit.s
@@ -0,0 +1,29 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_8393124:: @ 8393124
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_839312C:: @ 839312C
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnim_8393134:: @ 8393134
+ obj_image_anim_frame 0, 5
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_839313C:: @ 839313C
+ .4byte gSpriteAnim_8393124
+ .4byte gSpriteAnim_839312C
+ .4byte gSpriteAnim_8393134
+
+ .align 2
+gSpriteTemplate_8393148:: @ 8393148
+ spr_template 10135, 10135, gOamData_837DF34, gSpriteAnimTable_839313C, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
diff --git a/data/unused_orb.s b/data/unused_orb.s
new file mode 100644
index 000000000..d49ddd908
--- /dev/null
+++ b/data/unused_orb.s
@@ -0,0 +1,24 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_8393054:: @ 8393054
+ obj_image_anim_frame 0, 3
+ obj_image_anim_frame 4, 3
+ obj_image_anim_frame 8, 3
+ obj_image_anim_frame 12, 3
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_8393068:: @ 8393068
+ .4byte gSpriteAnim_8393054
+
+ .align 2
+gSpriteTemplate_839306C:: @ 839306C
+ spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
+
+ .align 2
+gSpriteTemplate_8393084:: @ 8393084
+ spr_template 10004, 10004, gOamData_837DF2C, gSpriteAnimTable_8393068, NULL, gDummySpriteAffineAnimTable, sub_807A544
diff --git a/data/unused_orb2.s b/data/unused_orb2.s
new file mode 100644
index 000000000..899f41372
--- /dev/null
+++ b/data/unused_orb2.s
@@ -0,0 +1,27 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteAnim_8393160:: @ 8393160
+ obj_image_anim_frame 0, 15
+ obj_image_anim_jump 0
+
+ .align 2
+gSpriteAnimTable_8393168:: @ 8393168
+ .4byte gSpriteAnim_8393160
+
+ .align 2
+gSpriteAffineAnim_839316C:: @ 839316C
+ obj_rot_scal_anim_frame 0x60, 0x60, 0, 0
+ obj_rot_scal_anim_frame 0x2, 0x2, 0, 1
+ obj_rot_scal_anim_jump 1
+
+ .align 2
+gSpriteAffineAnimTable_8393184:: @ 8393184
+ .4byte gSpriteAffineAnim_839316C
+
+ .align 2
+gSpriteTemplate_8393188:: @ 8393188
+ spr_template 10004, 10004, gOamData_837DFEC, gSpriteAnimTable_8393168, NULL, gSpriteAffineAnimTable_8393184, sub_807A544
diff --git a/data/unused_paw.s b/data/unused_paw.s
new file mode 100644
index 000000000..cb29168d7
--- /dev/null
+++ b/data/unused_paw.s
@@ -0,0 +1,8 @@
+ .include "include/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+gSpriteTemplate_839310C:: @ 839310C
+ spr_template 10051, 10051, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_807A5C4
diff --git a/de_after.sh b/de_after.sh
index 8c39f765a..92f940d8d 100644..100755
--- a/de_after.sh
+++ b/de_after.sh
@@ -1 +1,2 @@
-git checkout override.mk asm/ data/ graphics
+git checkout override.mk data/ graphics
+rm data/ingame_trades.inc
diff --git a/de_before.sh b/de_before.sh
index a68790143..392726948 100644..100755
--- a/de_before.sh
+++ b/de_before.sh
@@ -1,4 +1,3 @@
-cp override-de.mk
-rsync -avhI asm-de/ asm/
+cp override-de.mk override.mk
rsync -avhI data-de/ data/
rsync -avhI graphics-de/ graphics/
diff --git a/fonts.mk b/fonts.mk
index 86b7f4591..687c4ae2e 100644
--- a/fonts.mk
+++ b/fonts.mk
@@ -1,5 +1,3 @@
-RSFONT := tools/rsfont/rsfont
-
graphics/fonts/font0_jpn.1bpp: graphics/fonts/font0_jpn.png
$(RSFONT) $< $@ 240 1
diff --git a/graphics/birch_speech/blank_pal.pal b/graphics/birch_speech/blank_pal.pal
index 7dc528e38..7dc528e38 100755..100644
--- a/graphics/birch_speech/blank_pal.pal
+++ b/graphics/birch_speech/blank_pal.pal
diff --git a/graphics/debug/sprite_browser.pal b/graphics/debug/sprite_browser.pal
new file mode 100644
index 000000000..ba4a6027c
--- /dev/null
+++ b/graphics/debug/sprite_browser.pal
@@ -0,0 +1,51 @@
+JASC-PAL
+0100
+48
+115 139 65
+255 0 0
+255 123 0
+255 255 0
+123 255 0
+0 255 0
+0 255 131
+0 255 255
+0 123 255
+0 0 255
+123 0 255
+255 0 255
+255 0 123
+0 0 0
+123 123 123
+255 255 255
+115 139 65
+255 0 0
+255 123 0
+255 255 0
+123 255 0
+0 255 0
+0 255 131
+0 255 255
+0 123 255
+0 0 255
+123 0 255
+255 0 255
+255 0 123
+0 0 0
+123 123 123
+255 255 255
+115 139 65
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
+49 49 49
diff --git a/graphics/debug/sprite_browser.png b/graphics/debug/sprite_browser.png
new file mode 100644
index 000000000..b93ace2cd
--- /dev/null
+++ b/graphics/debug/sprite_browser.png
Binary files differ
diff --git a/sound/MPlayDef.s b/include/MPlayDef.s
index f5dd6484d..f5dd6484d 100644
--- a/sound/MPlayDef.s
+++ b/include/MPlayDef.s
diff --git a/include/battle.h b/include/battle.h
index 0881cf82c..544e65b80 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -4,6 +4,30 @@
#include "sprite.h"
#include "constants/battle_constants.h"
+/*
+ Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
+ Each bank has a value consisting of two bits.
+ 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side.
+ 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
+*/
+
+#define BATTLE_BANKS_COUNT 4
+
+#define IDENTITY_PLAYER_MON1 0
+#define IDENTITY_OPPONENT_MON1 1
+#define IDENTITY_PLAYER_MON2 2
+#define IDENTITY_OPPONENT_MON2 3
+
+#define SIDE_PLAYER 0x0
+#define SIDE_OPPONENT 0x1
+
+#define BIT_SIDE 0x1
+#define BIT_MON 0x2
+
+#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
+#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
+#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
+
enum
{
BATTLE_TERRAIN_GRASS,
@@ -49,16 +73,16 @@ struct AI_Stack
struct AI_ThinkingStruct /* 0x2016800 */
{
-/* 0x00 */ u8 aiState;
-/* 0x01 */ u8 movesetIndex;
-/* 0x02 */ u16 moveConsidered;
-/* 0x04 */ s8 score[4]; // score?
-/* 0x08 */ u32 funcResult;
-/* 0x0C */ u32 aiFlags;
-/* 0x10 */ u8 aiAction;
-/* 0x11 */ u8 aiLogicId;
-/* 0x12 */ u8 filler12[6];
-/* 0x18 */ u8 simulatedRNG[4];
+ /*0x00*/ u8 aiState;
+ /*0x01*/ u8 movesetIndex;
+ /*0x02*/ u16 moveConsidered;
+ /*0x04*/ s8 score[4]; // score?
+ /*0x08*/ u32 funcResult;
+ /*0x0C*/ u32 aiFlags;
+ /*0x10*/ u8 aiAction;
+ /*0x11*/ u8 aiLogicId;
+ /*0x12*/ u8 filler12[6];
+ /*0x18*/ u8 simulatedRNG[4];
};
struct BattleStruct /* 0x2000000 */
@@ -227,10 +251,8 @@ struct BattleStruct /* 0x2000000 */
/*0x160D5*/ u8 unk160D5;
/*0x160D6*/ u8 unk160D6;
/*0x160D7*/ u8 unk160D7;
- /*0x160D8*/ u8 unk160D8;
- /*0x160D9*/ u8 unk160D9;
- /*0x160DA*/ u8 unk160DA;
- /*0x160DB*/ u8 unk160DB;
+ /*0x160D8*/ u8 unk160D8[2];
+ /*0x160DA*/ u8 unk160DA[2];
/*0x160DC*/ u8 unk160DC;
/*0x160DD*/ u8 intimidateBank;
/*0x160DE*/ u8 unk160DE;
@@ -304,6 +326,18 @@ struct BattleStruct /* 0x2000000 */
/* 0x16A00 */ struct UnkBattleStruct1 unk_2016A00_2;
};
+struct StatsArray
+{
+ u16 hp;
+ u16 atk;
+ u16 def;
+ u16 spd;
+ u16 spAtk;
+ u16 spDef;
+};
+
+#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
+
struct DisableStruct
{
/*0x00*/ u32 transformedMonPersonality;
@@ -368,16 +402,6 @@ struct Struct2017100
u32 arr[4];
};
-struct Struct2019348
-{
- u16 unk0;
- u16 unk2;
- u8 unk4;
- u32 unk8;
- u32 unkC;
- u32 unk10;
-};
-
struct Struct2017800
{
u8 invisible:1;
@@ -485,7 +509,7 @@ struct sideTimer
u8 lightscreenTimer; //0x1
u8 mistTimer; //0x2
u8 field3; //0x3
- u16 field4; //0x4
+ u16 field4; //0x4
u8 spikesAmount; //0x6
u8 safeguardTimer; //0x7
u8 followmeTimer; //0x8
@@ -503,7 +527,7 @@ struct WishFutureKnock
u8 wishCounter[MAX_BANKS_BATTLE];
u8 wishUserID[MAX_BANKS_BATTLE];
u8 weatherDuration;
- u16 knockedOffPokes;
+ u8 knockedOffPokes[2];
};
extern struct UnkBattleStruct1 unk_2016A00;
@@ -511,11 +535,93 @@ extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE];
extern struct BattleResults gBattleResults;
extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE];
extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE];
-extern struct sideTimer gSideTimer[2];
+extern struct sideTimer gSideTimers[2];
extern struct WishFutureKnock gWishFutureKnock;
extern struct AI_ThinkingStruct gAIThinkingSpace;
extern struct Struct20238C8 gUnknown_020238C8;
+#define GET_MOVE_TYPE(move, typeArg) \
+{ \
+ if (gBattleStruct->dynamicMoveType) \
+ typeArg = gBattleStruct->dynamicMoveType & 0x3F; \
+ else \
+ typeArg = gBattleMoves[move].type; \
+}
+
+#define MOVE_EFFECT_SLEEP 0x1
+#define MOVE_EFFECT_POISON 0x2
+#define MOVE_EFFECT_BURN 0x3
+#define MOVE_EFFECT_FREEZE 0x4
+#define MOVE_EFFECT_PARALYSIS 0x5
+#define MOVE_EFFECT_TOXIC 0x6
+#define MOVE_EFFECT_CONFUSION 0x7
+#define MOVE_EFFECT_FLINCH 0x8
+#define MOVE_EFFECT_TRI_ATTACK 0x9
+#define MOVE_EFFECT_UPROAR 0xA
+#define MOVE_EFFECT_PAYDAY 0xB
+#define MOVE_EFFECT_CHARGING 0xC
+#define MOVE_EFFECT_WRAP 0xD
+#define MOVE_EFFECT_RECOIL_25 0xE
+#define MOVE_EFFECT_ATK_PLUS_1 0xF
+#define MOVE_EFFECT_DEF_PLUS_1 0x10
+#define MOVE_EFFECT_SPD_PLUS_1 0x11
+#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
+#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
+#define MOVE_EFFECT_ACC_PLUS_1 0x14
+#define MOVE_EFFECT_EVS_PLUS_1 0x15
+#define MOVE_EFFECT_ATK_MINUS_1 0x16
+#define MOVE_EFFECT_DEF_MINUS_1 0x17
+#define MOVE_EFFECT_SPD_MINUS_1 0x18
+#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
+#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
+#define MOVE_EFFECT_ACC_MINUS_1 0x1B
+#define MOVE_EFFECT_EVS_MINUS_1 0x1C
+#define MOVE_EFFECT_RECHARGE 0x1D
+#define MOVE_EFFECT_RAGE 0x1E
+#define MOVE_EFFECT_STEAL_ITEM 0x1F
+#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
+#define MOVE_EFFECT_NIGHTMARE 0x21
+#define MOVE_EFFECT_ALL_STATS_UP 0x22
+#define MOVE_EFFECT_RAPIDSPIN 0x23
+#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
+#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
+#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
+#define MOVE_EFFECT_ATK_PLUS_2 0x27
+#define MOVE_EFFECT_DEF_PLUS_2 0x28
+#define MOVE_EFFECT_SPD_PLUS_2 0x29
+#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
+#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
+#define MOVE_EFFECT_ACC_PLUS_2 0x2C
+#define MOVE_EFFECT_EVS_PLUS_2 0x2D
+#define MOVE_EFFECT_ATK_MINUS_2 0x2E
+#define MOVE_EFFECT_DEF_MINUS_2 0x2F
+#define MOVE_EFFECT_SPD_MINUS_2 0x30
+#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
+#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
+#define MOVE_EFFECT_ACC_MINUS_2 0x33
+#define MOVE_EFFECT_EVS_MINUS_2 0x34
+#define MOVE_EFFECT_THRASH 0x35
+#define MOVE_EFFECT_KNOCK_OFF 0x36
+#define MOVE_EFFECT_NOTHING_37 0x37
+#define MOVE_EFFECT_NOTHING_38 0x38
+#define MOVE_EFFECT_NOTHING_39 0x39
+#define MOVE_EFFECT_NOTHING_3A 0x3A
+#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
+#define MOVE_EFFECT_NOTHING_3C 0x3C
+#define MOVE_EFFECT_NOTHING_3D 0x3D
+#define MOVE_EFFECT_NOTHING_3E 0x3E
+#define MOVE_EFFECT_NOTHING_3F 0x3F
+#define MOVE_EFFECT_AFFECTS_USER 0x40
+#define MOVE_EFFECT_CERTAIN 0x80
+
+#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
+#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
+#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
+
+#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0))
+
+#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
+
// used in many battle files, it seems as though Hisashi Sogabe wrote
// some sort of macro to replace the use of actually calling memset.
// Perhaps it was thought calling memset was much slower?
@@ -552,7 +658,7 @@ struct funcStack
struct scriptsStack
{
- u8* ptr[8];
+ const u8 *ptr[8];
u8 size;
};
@@ -561,7 +667,7 @@ extern u8 gBattleTextBuff1[];
//function declarations of buffer emits
void EmitGetAttributes(u8 buffID, u8 request, u8 c); //0x0
void Emitcmd1(u8 a, u8 b, u8 c); //0x1
-void EmitSetAttributes(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2
+void EmitSetMonData(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2
void EmitSendOutPoke(u8 a, u8 b, u8 c); //0x5
void EmitReturnPokeToBall(u8 a, u8 b); //0x6
void EmitTrainerSlide(u8 a); //0x8
@@ -616,7 +722,7 @@ void InitBattle(void);
void sub_800EC9C(void);
void sub_800F104(void);
void sub_800F298(void);
-void sub_800F808(void);
+void BattleMainCB2(void);
void sub_800F838(struct Sprite *);
u8 CreateNPCTrainerParty(struct Pokemon *, u16);
void sub_800FCFC(void);
@@ -648,32 +754,30 @@ void sub_8011970(void);
void sub_80119B4(void);
void BattleBeginFirstTurn(void);
void BattleTurnPassed(void);
+void RunBattleScriptCommands_PopCallbacksStack(void);
+void RunBattleScriptCommands(void);
+bool8 TryRunFromBattle(u8 bank);
// asm/battle_2.o
void sub_8012324(void);
-void sub_8012FBC(u8, u8);
+void SwapTurnOrder(u8, u8);
u8 GetWhoStrikesFirst(u8, u8, u8);
-void TurnValuesCleanUp(u8);
-void SpecialStatusesClear(void);
-void sub_80138F0(void);
-void sub_80155A4();
-void CancelMultiTurnMoves(u8 bank);
-void PrepareStringBattle();
-void sub_80156DC();
-void sub_80157C4(u8 index);
+
+void debug_sub_8010800(void);
// asm/battle_3.o
u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
u8 UpdateTurnCounters(void);
u8 TurnBasedEffects(void);
-u8 sub_80170DC();
-u8 sub_80173A4();
+u8 HandleFaintedMonActions();
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move);
u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
+u8 GetMoveTarget(u16 move, u8 useMoveTarget);
// asm/battle_4.o
void AI_CalcDmg(u8, u8);
u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def);
+u8 BankGetTurnOrder(u8 bank);
// asm/battle_5.o
void nullsub_91(void);
@@ -692,10 +796,11 @@ void nullsub_10(int);
void load_gfxc_health_bar();
u8 battle_load_something();
void sub_8031F88(u8);
-void sub_80324F8(struct Pokemon *, u8);
+void HandleLowHpMusicChange(struct Pokemon *, u8);
void sub_8032638();
void sub_8032AA8(u8, u8);
void SetBankFuncToOpponentBufferRunCommand(void);
+void BattleStopLowHpSound(void);
// asm/battle_9.o
void SetBankFuncToLinkOpponentBufferRunCommand(void);
diff --git a/include/battle_ai.h b/include/battle_ai.h
index 60ca5d000..fdad0c7e9 100644
--- a/include/battle_ai.h
+++ b/include/battle_ai.h
@@ -10,10 +10,10 @@ enum
// AI states
enum
{
- AIState_SettingUp,
- AIState_Processing,
- AIState_FinishedProcessing,
- AIState_DoNotProcess
+ BATTLEAI_SETTING_UP,
+ BATTLEAI_PROCESSING,
+ BATTLEAI_FINISHED,
+ BATTLEAI_DO_NOT_PROCESS
};
// battle_ai
@@ -24,5 +24,6 @@ void sub_810745C(void);
void AIStackPushVar(u8 *);
u8 AIStackPop(void);
void BattleAI_HandleItemUseBeforeAISetup(void);
+void RecordAbilityBattle(u8 a, u8 b);
#endif
diff --git a/include/battle_anim.h b/include/battle_anim.h
index d456950f6..fd1becf39 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -60,5 +60,9 @@ void DestroyAnimVisualTask(u8 task);
bool8 IsAnimBankSpriteVisible(u8);
s8 BattleAnimAdjustPanning(s8 a);
void sub_80763FC(u16 a, u16 *b, u32 c, u8 d);
+s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
+s16 sub_8077104(s16 newPan, int oldPan);
+void DestroyAnimSoundTask(u8 taskId);
+void sub_8076464(u8 a);
#endif
diff --git a/include/battle_anim_80CA710.h b/include/battle_anim_80CA710.h
index 14a6ca898..58521bfae 100644
--- a/include/battle_anim_80CA710.h
+++ b/include/battle_anim_80CA710.h
@@ -1,7 +1,7 @@
#ifndef GUARD_BATTLE_ANIM_80CA710_H
#define GUARD_BATTLE_ANIM_80CA710_H
-void sub_80E4EF8(int, int, int, int, u16, u8, int);
+void sub_80E4EF8(u8, u8, u8, u8, u16, u8, u8);
s16 sub_81174E0(s16 a);
s16 sub_81174C4(s16 a, s16 b);
diff --git a/include/battle_message.h b/include/battle_message.h
index 3e37a1ccd..9c27994ee 100644
--- a/include/battle_message.h
+++ b/include/battle_message.h
@@ -16,6 +16,143 @@ struct StringInfoBattle
u8 textBuffs[3][0x10];
};
+// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3
+
+#define B_BUFF_STRING 0
+#define B_BUFF_NUMBER 1
+#define B_BUFF_MOVE 2
+#define B_BUFF_TYPE 3
+#define B_BUFF_MON_NICK_WITH_PREFIX 4
+#define B_BUFF_STAT 5
+#define B_BUFF_SPECIES 6
+#define B_BUFF_MON_NICK 7
+#define B_BUFF_NEGATIVE_FLAVOR 8
+#define B_BUFF_ABILITY 9
+#define B_BUFF_ITEM 10
+
+#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
+#define B_BUFF_EOS 0xFF
+
+#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
+ textVar[2] = flavorId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_STAT_BUFFER(textVar, statId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_STAT; \
+ textVar[2] = statId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_ABILITY; \
+ textVar[2] = abilityId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_TYPE_BUFFER(textVar, typeId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_TYPE; \
+ textVar[2] = typeId; \
+ textVar[3] = B_BUFF_EOS; \
+}
+
+#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 1; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = B_BUFF_EOS; \
+}
+
+#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 2; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = (number & 0x0000FF00) >> 8; \
+ textVar[6] = B_BUFF_EOS; \
+}
+
+#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_NUMBER; \
+ textVar[2] = 4; \
+ textVar[3] = maxDigits; \
+ textVar[4] = (number); \
+ textVar[5] = (number & 0x0000FF00) >> 8; \
+ textVar[6] = (number & 0x00FF0000) >> 16; \
+ textVar[7] = (number & 0xFF000000) >> 24; \
+ textVar[8] = B_BUFF_EOS; \
+}
+
+#define PREPARE_STRING_BUFFER(textVar, stringId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_STRING; \
+ textVar[2] = stringId; \
+ textVar[3] = (stringId & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MOVE_BUFFER(textVar, move) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MOVE; \
+ textVar[2] = move; \
+ textVar[3] = (move & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_ITEM_BUFFER(textVar, item) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_ITEM; \
+ textVar[2] = item; \
+ textVar[3] = (item & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_SPECIES_BUFFER(textVar, species) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_SPECIES; \
+ textVar[2] = species; \
+ textVar[3] = (species & 0xFF00) >> 8; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \
+ textVar[2] = bank; \
+ textVar[3] = partyId; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
+#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \
+{ \
+ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
+ textVar[1] = B_BUFF_MON_NICK; \
+ textVar[2] = bank; \
+ textVar[3] = partyId; \
+ textVar[4] = B_BUFF_EOS; \
+}
+
void BufferStringBattle(u16 stringID);
u32 StrCpyDecodeToDisplayedStringBattle(const u8* src);
u32 StrCpyDecodeBattle(const u8* src, u8* dst);
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
new file mode 100644
index 000000000..030844ec3
--- /dev/null
+++ b/include/battle_script_commands.h
@@ -0,0 +1,65 @@
+#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
+#define GUARD_BATTLE_SCRIPT_COMMANDS_H
+
+#define NO_ACC_CALC 0xFFFE
+#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
+#define ACC_CURR_MOVE 0
+
+#define CMP_EQUAL 0x0
+#define CMP_NOT_EQUAL 0x1
+#define CMP_GREATER_THAN 0x2
+#define CMP_LESS_THAN 0x3
+#define CMP_COMMON_BITS 0x4
+#define CMP_NO_COMMON_BITS 0x5
+
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+
+#define ATK48_STAT_NEGATIVE 0x1
+#define ATK48_STAT_BY_TWO 0x2
+#define ATK48_BIT_x4 0x4
+#define ATK48_LOWER_FAIL_CHECK 0x8
+
+#define ATK4F_DONT_CHECK_STATUSES 0x80
+
+#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
+#define VARIOUS_SET_MAGIC_COAT_TARGET 1
+#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
+#define VARIOUS_GET_MOVE_TARGET 3
+#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
+#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
+#define VARIOUS_EMIT_YESNOBOX 13
+#define VARIOUS_WAIT_CRY 18
+#define VARIOUS_RETURN_OPPONENT_MON1 19
+#define VARIOUS_RETURN_OPPONENT_MON2 20
+#define VARIOUS_SET_TELEPORT_OUTCOME 25
+#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26
+
+#define ATK80_DMG_CHANGE_SIGN 0
+#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
+#define ATK80_DMG_DOUBLED 2
+
+#define STAT_CHANGE_BS_PTR 0x1
+#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
+
+#define STAT_CHANGE_WORKED 0
+#define STAT_CHANGE_DIDNT_WORK 1
+
+#define WINDOW_CLEAR 0x1
+#define WINDOW_x80 0x80
+
+void AI_CalcDmg(u8 bankAtk, u8 bankDef);
+u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
+u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
+u8 BankGetTurnOrder(u8 bank);
+void SetMoveEffect(bool8 primary, u8 certain);
+void BattleDestroyYesNoCursorAt(u8 cursorPosition);
+void BattleCreateYesNoCursorAt(u8 cursorPosition);
+void BufferMoveToLearnIntoBattleTextBuff2(void);
+void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
+bool8 UproarWakeUpCheck(u8 bank);
+
+extern void (* const gBattleScriptingCommandsTable[])(void);
+
+#endif // GUARD_BATTLE_SCRIPT_COMMANDS_H
diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h
new file mode 100644
index 000000000..f242284b0
--- /dev/null
+++ b/include/battle_string_ids.h
@@ -0,0 +1,387 @@
+#ifndef GUARD_BATTLE_STRING_IDS_H
+#define GUARD_BATTLE_STRING_IDS_H
+
+#define BATTLESTRINGS_COUNT 369
+
+#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
+
+#define STRINGID_INTROMSG 0
+#define STRINGID_INTROSENDOUT 1
+#define STRINGID_RETURNMON 2
+#define STRINGID_SWITCHINMON 3
+#define STRINGID_USEDMOVE 4
+#define STRINGID_BATTLEEND 5
+
+
+// todo: make some of those names less vague: attacker/target vs pkmn, etc.
+#define STRINGID_TRAINER1LOSETEXT 12
+#define STRINGID_PKMNGAINEDEXP 13
+#define STRINGID_PKMNGREWTOLV 14
+#define STRINGID_PKMNLEARNEDMOVE 15
+#define STRINGID_TRYTOLEARNMOVE1 16
+#define STRINGID_TRYTOLEARNMOVE2 17
+#define STRINGID_TRYTOLEARNMOVE3 18
+#define STRINGID_PKMNFORGOTMOVE 19
+#define STRINGID_STOPLEARNINGMOVE 20
+#define STRINGID_DIDNOTLEARNMOVE 21
+#define STRINGID_PKMNLEARNEDMOVE2 22
+#define STRINGID_ATTACKMISSED 23
+#define STRINGID_PKMNPROTECTEDITSELF 24
+#define STRINGID_STATSWONTINCREASE2 25
+#define STRINGID_AVOIDEDDAMAGE 26
+#define STRINGID_ITDOESNTAFFECT 27
+#define STRINGID_ATTACKERFAINTED 28
+#define STRINGID_TARGETFAINTED 29
+#define STRINGID_PLAYERGOTMONEY 30
+#define STRINGID_PLAYERWHITEOUT 31
+#define STRINGID_PLAYERWHITEOUT2 32
+#define STRINGID_PREVENTSESCAPE 33
+#define STRINGID_HITXTIMES 34
+#define STRINGID_PKMNFELLASLEEP 35
+#define STRINGID_PKMNMADESLEEP 36
+#define STRINGID_PKMNALREADYASLEEP 37
+#define STRINGID_PKMNALREADYASLEEP2 38
+#define STRINGID_PKMNWASNTAFFECTED 39
+#define STRINGID_PKMNWASPOISONED 40
+#define STRINGID_PKMNPOISONEDBY 41
+#define STRINGID_PKMNHURTBYPOISON 42
+#define STRINGID_PKMNALREADYPOISONED 43
+#define STRINGID_PKMNBADLYPOISONED 44
+#define STRINGID_PKMNENERGYDRAINED 45
+#define STRINGID_PKMNWASBURNED 46
+#define STRINGID_PKMNBURNEDBY 47
+#define STRINGID_PKMNHURTBYBURN 48
+#define STRINGID_PKMNWASFROZEN 49
+#define STRINGID_PKMNFROZENBY 50
+#define STRINGID_PKMNISFROZEN 51
+#define STRINGID_PKMNWASDEFROSTED 52
+#define STRINGID_PKMNWASDEFROSTED2 53
+#define STRINGID_PKMNWASDEFROSTEDBY 54
+#define STRINGID_PKMNWASPARALYZED 55
+#define STRINGID_PKMNWASPARALYZEDBY 56
+#define STRINGID_PKMNISPARALYZED 57
+#define STRINGID_PKMNISALREADYPARALYZED 58
+#define STRINGID_PKMNHEALEDPARALYSIS 59
+#define STRINGID_PKMNDREAMEATEN 60
+#define STRINGID_STATSWONTINCREASE 61
+#define STRINGID_STATSWONTDECREASE 62
+#define STRINGID_TEAMSTOPPEDWORKING 63
+#define STRINGID_FOESTOPPEDWORKING 64
+#define STRINGID_PKMNISCONFUSED 65
+#define STRINGID_PKMNHEALEDCONFUSION 66
+#define STRINGID_PKMNWASCONFUSED 67
+#define STRINGID_PKMNALREADYCONFUSED 68
+#define STRINGID_PKMNFELLINLOVE 69
+#define STRINGID_PKMNINLOVE 70
+#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
+#define STRINGID_PKMNBLOWNAWAY 72
+#define STRINGID_PKMNCHANGEDTYPE 73
+#define STRINGID_PKMNFLINCHED 74
+#define STRINGID_PKMNREGAINEDHEALTH 75
+#define STRINGID_PKMNHPFULL 76
+#define STRINGID_PKMNRAISEDSPDEF 77
+#define STRINGID_PKMNRAISEDDEF 78
+#define STRINGID_PKMNCOVEREDBYVEIL 79
+#define STRINGID_PKMNUSEDSAFEGUARD 80
+#define STRINGID_PKMNSAFEGUARDEXPIRED 81
+#define STRINGID_PKMNWENTTOSLEEP 82
+#define STRINGID_PKMNSLEPTHEALTHY 83
+#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
+#define STRINGID_PKMNTOOKSUNLIGHT 85
+#define STRINGID_PKMNLOWEREDHEAD 86
+#define STRINGID_PKMNISGLOWING 87
+#define STRINGID_PKMNFLEWHIGH 88
+#define STRINGID_PKMNDUGHOLE 89
+#define STRINGID_PKMNSQUEEZEDBYBIND 90
+#define STRINGID_PKMNTRAPPEDINVORTEX 91
+#define STRINGID_PKMNWRAPPEDBY 92
+#define STRINGID_PKMNCLAMPED 93
+#define STRINGID_PKMNHURTBY 94
+#define STRINGID_PKMNFREEDFROM 95
+#define STRINGID_PKMNCRASHED 96
+#define STRINGID_PKMNSHROUDEDINMIST 97
+#define STRINGID_PKMNPROTECTEDBYMIST 98
+#define STRINGID_PKMNGETTINGPUMPED 99
+#define STRINGID_PKMNHITWITHRECOIL 100
+#define STRINGID_PKMNPROTECTEDITSELF2 101
+#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
+#define STRINGID_PKMNPELTEDBYHAIL 103
+#define STRINGID_PKMNSEEDED 104
+#define STRINGID_PKMNEVADEDATTACK 105
+#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
+#define STRINGID_PKMNFASTASLEEP 107
+#define STRINGID_PKMNWOKEUP 108
+#define STRINGID_PKMNUPROARKEPTAWAKE 109
+#define STRINGID_PKMNWOKEUPINUPROAR 110
+#define STRINGID_PKMNCAUSEDUPROAR 111
+#define STRINGID_PKMNMAKINGUPROAR 112
+#define STRINGID_PKMNCALMEDDOWN 113
+#define STRINGID_PKMNCANTSLEEPINUPROAR 114
+#define STRINGID_PKMNSTOCKPILED 115
+#define STRINGID_PKMNCANTSTOCKPILE 116
+#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
+#define STRINGID_UPROARKEPTPKMNAWAKE 118
+#define STRINGID_PKMNSTAYEDAWAKEUSING 119
+#define STRINGID_PKMNSTORINGENERGY 120
+#define STRINGID_PKMNUNLEASHEDENERGY 121
+#define STRINGID_PKMNFATIGUECONFUSION 122
+#define STRINGID_PKMNPICKEDUPITEM 123
+#define STRINGID_PKMNUNAFFECTED 124
+#define STRINGID_PKMNTRANSFORMEDINTO 125
+#define STRINGID_PKMNMADESUBSTITUTE 126
+#define STRINGID_PKMNHASSUBSTITUTE 127
+#define STRINGID_SUBSTITUTEDAMAGED 128
+#define STRINGID_PKMNSUBSTITUTEFADED 129
+#define STRINGID_PKMNMUSTRECHARGE 130
+#define STRINGID_PKMNRAGEBUILDING 131
+#define STRINGID_PKMNMOVEWASDISABLED 132
+#define STRINGID_PKMNMOVEISDISABLED 133
+#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
+#define STRINGID_PKMNGOTENCORE 135
+#define STRINGID_PKMNENCOREENDED 136
+#define STRINGID_PKMNTOOKAIM 137
+#define STRINGID_PKMNSKETCHEDMOVE 138
+#define STRINGID_PKMNTRYINGTOTAKEFOE 139
+#define STRINGID_PKMNTOOKFOE 140
+#define STRINGID_PKMNREDUCEDPP 141
+#define STRINGID_PKMNSTOLEITEM 142
+#define STRINGID_TARGETCANTESCAPENOW 143
+#define STRINGID_PKMNFELLINTONIGHTMARE 144
+#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
+#define STRINGID_PKMNLAIDCURSE 146
+#define STRINGID_PKMNAFFLICTEDBYCURSE 147
+#define STRINGID_SPIKESSCATTERED 148
+#define STRINGID_PKMNHURTBYSPIKES 149
+#define STRINGID_PKMNIDENTIFIED 150
+#define STRINGID_PKMNPERISHCOUNTFELL 151
+#define STRINGID_PKMNBRACEDITSELF 152
+#define STRINGID_PKMNENDUREDHIT 153
+#define STRINGID_MAGNITUDESTRENGTH 154
+#define STRINGID_PKMNCUTHPMAXEDATTACK 155
+#define STRINGID_PKMNCOPIEDSTATCHANGES 156
+#define STRINGID_PKMNGOTFREE 157
+#define STRINGID_PKMNSHEDLEECHSEED 158
+#define STRINGID_PKMNBLEWAWAYSPIKES 159
+#define STRINGID_PKMNFLEDFROMBATTLE 160
+#define STRINGID_PKMNFORESAWATTACK 161
+#define STRINGID_PKMNTOOKATTACK 162
+#define STRINGID_PKMNATTACK 163
+#define STRINGID_PKMNCENTERATTENTION 164
+#define STRINGID_PKMNCHARGINGPOWER 165
+#define STRINGID_NATUREPOWERTURNEDINTO 166
+#define STRINGID_PKMNSTATUSNORMAL 167
+#define STRINGID_PKMNHASNOMOVESLEFT 168
+#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
+#define STRINGID_PKMNCANTUSEMOVETORMENT 170
+#define STRINGID_PKMNTIGHTENINGFOCUS 171
+#define STRINGID_PKMNFELLFORTAUNT 172
+#define STRINGID_PKMNCANTUSEMOVETAUNT 173
+#define STRINGID_PKMNREADYTOHELP 174
+#define STRINGID_PKMNSWITCHEDITEMS 175
+#define STRINGID_PKMNCOPIEDFOE 176
+#define STRINGID_PKMNMADEWISH 177
+#define STRINGID_PKMNWISHCAMETRUE 178
+#define STRINGID_PKMNPLANTEDROOTS 179
+#define STRINGID_PKMNABSORBEDNUTRIENTS 180
+#define STRINGID_PKMNANCHOREDITSELF 181
+#define STRINGID_PKMNWASMADEDROWSY 182
+#define STRINGID_PKMNKNOCKEDOFF 183
+#define STRINGID_PKMNSWAPPEDABILITIES 184
+#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
+#define STRINGID_PKMNCANTUSEMOVESEALED 186
+#define STRINGID_PKMNWANTSGRUDGE 187
+#define STRINGID_PKMNLOSTPPGRUDGE 188
+#define STRINGID_PKMNSHROUDEDITSELF 189
+#define STRINGID_PKMNMOVEBOUNCED 190
+#define STRINGID_PKMNWAITSFORTARGET 191
+#define STRINGID_PKMNSNATCHEDMOVE 192
+#define STRINGID_PKMNMADEITRAIN 193
+#define STRINGID_PKMNRAISEDSPEED 194
+#define STRINGID_PKMNPROTECTEDBY 195
+#define STRINGID_PKMNPREVENTSUSAGE 196
+#define STRINGID_PKMNRESTOREDHPUSING 197
+#define STRINGID_PKMNCHANGEDTYPEWITH 198
+#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
+#define STRINGID_PKMNPREVENTSROMANCEWITH 200
+#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
+#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
+#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
+#define STRINGID_PKMNANCHORSITSELFWITH 204
+#define STRINGID_PKMNCUTSATTACKWITH 205
+#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
+#define STRINGID_PKMNHURTSWITH 207
+#define STRINGID_PKMNTRACED 208
+#define STRINGID_STATSHARPLY 209
+#define STRINGID_STATROSE 210
+#define STRINGID_STATHARSHLY 211
+#define STRINGID_STATFELL 212
+#define STRINGID_PKMNSSTATCHANGED 213
+#define STRINGID_PKMNSSTATCHANGED2 214
+#define STRINGID_PKMNSSTATCHANGED3 215
+#define STRINGID_PKMNSSTATCHANGED4 216
+#define STRINGID_CRITICALHIT 217
+#define STRINGID_ONEHITKO 218
+#define STRINGID_123POOF 219
+#define STRINGID_ANDELLIPSIS 220
+#define STRINGID_NOTVERYEFFECTIVE 221
+#define STRINGID_SUPEREFFECTIVE 222
+#define STRINGID_GOTAWAYSAFELY 223
+#define STRINGID_WILDPKMNFLED 224
+#define STRINGID_NORUNNINGFROMTRAINERS 225
+#define STRINGID_CANTESCAPE 226
+#define STRINGID_DONTLEAVEBIRCH 227
+#define STRINGID_BUTNOTHINGHAPPENED 228
+#define STRINGID_BUTITFAILED 229
+#define STRINGID_ITHURTCONFUSION 230
+#define STRINGID_MIRRORMOVEFAILED 231
+#define STRINGID_STARTEDTORAIN 232
+#define STRINGID_DOWNPOURSTARTED 233
+#define STRINGID_RAINCONTINUES 234
+#define STRINGID_DOWNPOURCONTINUES 235
+#define STRINGID_RAINSTOPPED 236
+#define STRINGID_SANDSTORMBREWED 237
+#define STRINGID_SANDSTORMRAGES 238
+#define STRINGID_SANDSTORMSUBSIDED 239
+#define STRINGID_SUNLIGHTGOTBRIGHT 240
+#define STRINGID_SUNLIGHTSTRONG 241
+#define STRINGID_SUNLIGHTFADED 242
+#define STRINGID_STARTEDHAIL 243
+#define STRINGID_HAILCONTINUES 244
+#define STRINGID_HAILSTOPPED 245
+#define STRINGID_FAILEDTOSPITUP 246
+#define STRINGID_FAILEDTOSWALLOW 247
+#define STRINGID_WINDBECAMEHEATWAVE 248
+#define STRINGID_STATCHANGESGONE 249
+#define STRINGID_COINSSCATTERED 250
+#define STRINGID_TOOWEAKFORSUBSTITUTE 251
+#define STRINGID_SHAREDPAIN 252
+#define STRINGID_BELLCHIMED 253
+#define STRINGID_FAINTINTHREE 254
+#define STRINGID_NOPPLEFT 255
+#define STRINGID_BUTNOPPLEFT 256
+#define STRINGID_PLAYERUSEDITEM 257
+#define STRINGID_WALLYUSEDITEM 258
+#define STRINGID_TRAINERBLOCKEDBALL 259
+#define STRINGID_DONTBEATHIEF 260
+#define STRINGID_ITDODGEDBALL 261
+#define STRINGID_YOUMISSEDPKMN 262
+#define STRINGID_PKMNBROKEFREE 263
+#define STRINGID_ITAPPEAREDCAUGHT 264
+#define STRINGID_AARGHALMOSTHADIT 265
+#define STRINGID_SHOOTSOCLOSE 266
+#define STRINGID_GOTCHAPKMNCAUGHT 267
+#define STRINGID_GOTCHAPKMNCAUGHT2 268
+#define STRINGID_GIVENICKNAMECAPTURED 269
+#define STRINGID_PKMNSENTTOPC 270
+#define STRINGID_PKMNDATAADDEDTODEX 271
+#define STRINGID_ITISRAINING 272
+#define STRINGID_SANDSTORMISRAGING 273
+#define STRINGID_CANTESCAPE2 274
+#define STRINGID_PKMNIGNORESASLEEP 275
+#define STRINGID_PKMNIGNOREDORDERS 276
+#define STRINGID_PKMNBEGANTONAP 277
+#define STRINGID_PKMNLOAFING 278
+#define STRINGID_PKMNWONTOBEY 279
+#define STRINGID_PKMNTURNEDAWAY 280
+#define STRINGID_PKMNPRETENDNOTNOTICE 281
+#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
+#define STRINGID_CREPTCLOSER 283
+#define STRINGID_CANTGETCLOSER 284
+#define STRINGID_PKMNWATCHINGCAREFULLY 285
+#define STRINGID_PKMNCURIOUSABOUTX 286
+#define STRINGID_PKMNENTHRALLEDBYX 287
+#define STRINGID_PKMNIGNOREDX 288
+#define STRINGID_THREWPOKEBLOCKATPKMN 289
+#define STRINGID_OUTOFSAFARIBALLS 290
+#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
+#define STRINGID_PKMNSITEMCUREDPOISON 292
+#define STRINGID_PKMNSITEMHEALEDBURN 293
+#define STRINGID_PKMNSITEMDEFROSTEDIT 294
+#define STRINGID_PKMNSITEMWOKEIT 295
+#define STRINGID_PKMNSITEMSNAPPEDOUT 296
+#define STRINGID_PKMNSITEMCUREDPROBLEM 297
+#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
+#define STRINGID_PKMNSITEMRESTOREDPP 299
+#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
+#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
+#define STRINGID_ITEMALLOWSONLYYMOVE 302
+#define STRINGID_PKMNHUNGONWITHX 303
+#define STRINGID_EMPTYSTRING3 304
+#define STRINGID_PKMNSXPREVENTSBURNS 305
+#define STRINGID_PKMNSXBLOCKSY 306
+#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
+#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
+#define STRINGID_PKMNSXPREVENTSYLOSS 309
+#define STRINGID_PKMNSXINFATUATEDY 310
+#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
+#define STRINGID_PKMNSXCUREDYPROBLEM 312
+#define STRINGID_ITSUCKEDLIQUIDOOZE 313
+#define STRINGID_PKMNTRANSFORMED 314
+#define STRINGID_ELECTRICITYWEAKENED 315
+#define STRINGID_FIREWEAKENED 316
+#define STRINGID_PKMNHIDUNDERWATER 317
+#define STRINGID_PKMNSPRANGUP 318
+#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
+#define STRINGID_XFOUNDONEY 320
+#define STRINGID_PLAYERDEFEATEDTRAINER1 321
+#define STRINGID_SOOTHINGAROMA 322
+#define STRINGID_ITEMSCANTBEUSEDNOW 323
+#define STRINGID_FORXCOMMAYZ 324
+#define STRINGID_USINGXTHEYOFZN 325
+#define STRINGID_PKMNUSEDXTOGETPUMPED 326
+#define STRINGID_PKMNSXMADEYUSELESS 327
+#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
+#define STRINGID_EMPTYSTRING4 329
+#define STRINGID_ABOOSTED 330
+#define STRINGID_PKMNSXINTENSIFIEDSUN 331
+#define STRINGID_PKMNMAKESGROUNDMISS 332
+#define STRINGID_YOUTHROWABALLNOWRIGHT 333
+#define STRINGID_PKMNSXTOOKATTACK 334
+#define STRINGID_PKMNCHOSEXASDESTINY 335
+#define STRINGID_PKMNLOSTFOCUS 336
+#define STRINGID_USENEXTPKMN 337
+#define STRINGID_PKMNFLEDUSINGITS 338
+#define STRINGID_PKMNFLEDUSING 339
+#define STRINGID_PKMNWASDRAGGEDOUT 340
+#define STRINGID_PREVENTEDFROMWORKING 341
+#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
+#define STRINGID_TRAINER1USEDITEM 343
+#define STRINGID_BOXISFULL 344
+#define STRINGID_PKMNAVOIDEDATTACK 345
+#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
+#define STRINGID_PKMNSXPREVENTSFLINCHING 347
+#define STRINGID_PKMNALREADYHASBURN 348
+#define STRINGID_STATSWONTDECREASE2 349
+#define STRINGID_PKMNSXBLOCKSY2 350
+#define STRINGID_PKMNSXWOREOFF 351
+#define STRINGID_PKMNRAISEDDEFALITTLE 352
+#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
+#define STRINGID_THEWALLSHATTERED 354
+#define STRINGID_PKMNSXPREVENTSYSZ 355
+#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
+#define STRINGID_ATTACKERCANTESCAPE 357
+#define STRINGID_PKMNOBTAINEDX 358
+#define STRINGID_PKMNOBTAINEDX2 359
+#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
+#define STRINGID_BUTNOEFFECT 361
+#define STRINGID_PKMNSXHADNOEFFECTONY 362
+#define STRINGID_TWOENEMIESDEFEATED 363
+#define STRINGID_TRAINER2LOSETEXT 364
+#define STRINGID_PKMNINCAPABLEOFPOWER 365
+#define STRINGID_GLINTAPPEARSINEYE 366
+#define STRINGID_PKMNGETTINGINTOPOSITION 367
+#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
+#define STRINGID_PKMNEAGERFORMORE 369
+#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
+#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
+#define STRINGID_TIEDOPPONENTBYREFEREE 372
+#define STRINGID_QUESTIONFORFEITMATCH 373
+#define STRINGID_FORFEITEDMATCH 374
+#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
+#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
+#define STRINGID_PKMNBOXSOMEONESPCFULL 377
+#define STRINGID_PKMNBOXLANETTESPCFULL 378
+#define STRINGID_TRAINER1WINTEXT 379
+#define STRINGID_TRAINER2WINTEXT 380
+
+#endif // GUARD_BATTLE_STRING_IDS_H
diff --git a/include/battle_util.h b/include/battle_util.h
new file mode 100644
index 000000000..15fa39d1a
--- /dev/null
+++ b/include/battle_util.h
@@ -0,0 +1,29 @@
+#ifndef GUARD_BATTLE_UTIL_H
+#define GUARD_BATTLE_UTIL_H
+
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_PLAYER1 11
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
+void TryClearRageStatuses(void);
+void BattleScriptPush(const u8* BS_ptr);
+void PressurePPLoseOnUsingImprision(u8 bankAtk);
+void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
+void sub_80155A4(u8);
+void CancelMultiTurnMoves(u8 bank);
+bool8 WasUnableToUseMove(u8 bank);
+void PrepareStringBattle(u16 stringId, u8 bank);
+void ResetSentPokesToOpponentValue(void);
+void sub_8015740(u8 bank);
+void sub_80157C4(u8 bank);
+bool8 HandleWishPerishSongOnTurnEnd(void);
+void BattleScriptExecute(const u8* BS_ptr);
+void BattleScriptPushCursorAndCallback(u8* BS_ptr);
+u8 IsMonDisobedient(void);
+
+#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/cable_car_util.h b/include/cable_car_util.h
new file mode 100644
index 000000000..7126331a1
--- /dev/null
+++ b/include/cable_car_util.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_CABLE_CAR_UTIL_H
+#define GUARD_CABLE_CAR_UTIL_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void CableCarUtil_FillWrapped(void *dest, u16 value, u8 x, u8 y, u8 width, u8 height);
+void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 x, u8 y, u8 width, u8 height);
+
+#endif //GUARD_CABLE_CAR_UTIL_H
diff --git a/include/cable_club.h b/include/cable_club.h
index a2fe46b30..2f509c9fc 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -20,5 +20,8 @@ void sub_8083B90(void);
void sub_8083BDC(void);
bool32 sub_8083BF4(u8 linkPlayerIndex);
void sub_8083C50(u8 taskId);
+#if DEBUG
+void debug_sub_808B838(u8);
+#endif
#endif // GUARD_CABLE_CLUB_H
diff --git a/include/clock.h b/include/clock.h
index 4e6560c91..5772145d3 100644
--- a/include/clock.h
+++ b/include/clock.h
@@ -3,6 +3,7 @@
// TODO: time of day and seconds in a day defines
+void InitTimeBasedEvents(void);
void DoTimeBasedEvents(void);
#endif
diff --git a/include/config.h b/include/config.h
index 6a77c4c74..796da359c 100644
--- a/include/config.h
+++ b/include/config.h
@@ -1,6 +1,28 @@
#ifndef GUARD_CONFIG_H
#define GUARD_CONFIG_H
+// In the Generation 3 games, Asserts were used in various debug builds.
+// Ruby/Sapphire and Emerald do not have these asserts while Fire Red
+// still has them in the ROM. This is because the developers forgot
+// to define NDEBUG before release, however this has been changed as
+// Ruby's actual debug build does not use the AGBPrint features.
+
+// To note, Ruby/Sapphire likely did not use AGBPrint. This is because
+// the german debug ROM of Ruby did not have any uses of AGBPrint and
+// the assert commands but instead a "crash" screen. This config exists
+// for convenience for the user of pokeruby and NOT because it is
+// authoritative. These additions are for user convenience based on
+// officially recommended SDK practices for debugging and is therefore
+// still in part authoritative.
+#define NDEBUG
+
+// To enable print debugging, comment out "#define NDEBUG". This allows
+// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
+// Some emulators support a debug console window: uncomment NoCashGBAPrint()
+// and NoCashGBAPrintf() in libisagbprn.c to use no$gba's own proprietary
+// printing system. Use NoCashGBAPrint() and NoCashGBAPrintf() like you
+// would normally use AGBPrint() and AGBPrintf().
+
#ifndef REVISION
#define REVISION 0
#endif
diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h
index f7efb0dfd..49768f33e 100644
--- a/include/constants/battle_constants.h
+++ b/include/constants/battle_constants.h
@@ -1,6 +1,13 @@
#ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H
#define GUARD_CONSTANTS_BATTLE_CONSTANTS_H
+// Bank sides
+#define SIDE_PLAYER 0x0
+#define SIDE_OPPONENT 0x1
+
+#define BIT_SIDE 0x1
+#define BIT_MON 0x2
+
#define STATUS_SLEEP 0x7
#define STATUS_POISON 0x8
#define STATUS_BURN 0x10
@@ -65,6 +72,7 @@
#define HITMARKER_PURSUIT_TRAP 0x00001000
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
+#define HITMARKER_RUN 0x00008000
#define HITMARKER_IGNORE_ON_AIR 0x00010000
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
#define HITMARKER_IGNORE_UNDERWATER 0x00040000
@@ -75,6 +83,7 @@
#define HITMARKER_x800000 0x00800000
#define HITMARKER_GRUDGE 0x01000000
#define HITMARKER_OBEYS 0x02000000
+#define HITMARKER_x4000000 0x04000000
#define HITMARKER_x8000000 0x08000000
#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
#define HITMARKER_UNK(bank) ((0x10000000 << bank))
@@ -88,6 +97,11 @@
#define MOVESTATUS_ENDURED (1 << 6)
#define MOVESTATUS_HUNGON (1 << 7)
+#define IDENTITY_PLAYER_MON1 0
+#define IDENTITY_OPPONENT_MON1 1
+#define IDENTITY_PLAYER_MON2 2
+#define IDENTITY_OPPONENT_MON2 3
+
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
#define BATTLE_TYPE_WILD 0x0004
@@ -117,6 +131,8 @@
#define BATTLE_OUT_OF_BALLS 0x8
#define BATTLE_OPPONENT_TELEPORTED 0xA
+#define OUTCOME_LINK_BATTLE_RUN 0x80
+
#define SIDE_STATUS_REFLECT (1 << 0)
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
#define SIDE_STATUS_X4 (1 << 2)
@@ -126,6 +142,22 @@
#define SIDE_STATUS_MIST (1 << 8)
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
+#define ACTION_USE_MOVE 0
+#define ACTION_USE_ITEM 1
+#define ACTION_SWITCH 2
+#define ACTION_RUN 3
+#define ACTION_WATCHES_CAREFULLY 4
+#define ACTION_SAFARI_ZONE_BALL 5
+#define ACTION_POKEBLOCK_CASE 6
+#define ACTION_GO_NEAR 7
+#define ACTION_SAFARI_ZONE_RUN 8
+#define ACTION_9 9
+#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
+#define ACTION_CANCEL_PARTNER 12 // when choosing an action
+#define ACTION_FINISHED 12 // when executing an action
+#define ACTION_NOTHING_FAINTED 13 // when choosing an action
+#define ACTION_INIT_VALUE 0xFF
+
#define TARGET_SELECTED_POKEMON 0
#define TARGET_SPECIAL (1 << 0)
#define TARGET_UNK2 (1 << 1)
@@ -192,6 +224,40 @@
#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
#define WEATHER_HAIL (1 << 7)
+#define MOVE_TARGET_SELECTED 0x0
+#define MOVE_TARGET_DEPENDS 0x1
+#define MOVE_TARGET_USER 0x2
+#define MOVE_TARGET_RANDOM 0x4
+#define MOVE_TARGET_x10 0x10
+#define MOVE_TARGET_BOTH 0x8
+#define MOVE_TARGET_FOES_AND_ALLY 0x20
+#define MOVE_TARGET_OPPONENTS_FIELD 0x40
+
+// array entries for battle communication
+#define MULTIUSE_STATE 0x0
+#define CURSOR_POSITION 0x1
+#define TASK_ID 0x1 // task Id and cursor position share the same field
+#define SPRITES_INIT_STATE1 0x1 // shares the Id as well
+#define SPRITES_INIT_STATE2 0x2
+#define MOVE_EFFECT_BYTE 0x3
+#define ACTIONS_CONFIRMED_COUNT 0x4
+#define MULTISTRING_CHOOSER 0x5
+#define MSG_DISPLAY 0x7
+#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
+
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_GET_gBank1 3
+#define BS_GET_BANK_0 7
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
// status animation table
#define B_ANIM_STATUS_PSN 0x0
#define B_ANIM_STATUS_CONFUSION 0x1
@@ -238,4 +304,12 @@
#define B_ANIM_SUBSTITUTE_TO_MON 0x5
#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+// AI switch items
+#define AI_ITEM_FULL_RESTORE 1
+#define AI_ITEM_HEAL_HP 2
+#define AI_ITEM_CURE_CONDITION 3
+#define AI_ITEM_X_STAT 4
+#define AI_ITEM_GUARD_SPECS 5
+#define AI_ITEM_NOT_RECOGNIZABLE 6
+
#endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
index 2e3558721..c361ccdf1 100644
--- a/include/constants/decorations.h
+++ b/include/constants/decorations.h
@@ -123,4 +123,6 @@
#define DECOR_REGICE_DOLL 119
#define DECOR_REGISTEEL_DOLL 120
+#define DECOR_COUNT 121
+
#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h
index 12350aebe..215dac48c 100644
--- a/include/constants/easy_chat.h
+++ b/include/constants/easy_chat.h
@@ -1,7 +1,7 @@
#ifndef GUARD_CONSTANTS_EASY_CHAT_H
#define GUARD_CONSTANTS_EASY_CHAT_H
-#define EC_GROUP_POKEMON 0x0
+#define EC_GROUP_POKEMON_1 0x0
#define EC_GROUP_TRAINER 0x1
#define EC_GROUP_STATUS 0x2
#define EC_GROUP_BATTLE 0x3
@@ -1053,7 +1053,7 @@
#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f
#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20
-#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon)
+#define EC_POKEMON(mon) ((EC_GROUP_POKEMON_1 << 9) | SPECIES_##mon)
#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon)
#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move)
#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move)
diff --git a/include/constants/items.h b/include/constants/items.h
index 48fba1427..6f54e6ee4 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -2,6 +2,8 @@
#define GUARD_CONSTANTS_ITEMS_H
#define ITEM_NONE 0
+
+// Balls
#define ITEM_MASTER_BALL 1
#define ITEM_ULTRA_BALL 2
#define ITEM_GREAT_BALL 3
@@ -14,6 +16,8 @@
#define ITEM_TIMER_BALL 10
#define ITEM_LUXURY_BALL 11
#define ITEM_PREMIER_BALL 12
+
+// Pokemon Items
#define ITEM_POTION 13
#define ITEM_ANTIDOTE 14
#define ITEM_BURN_HEAL 15
@@ -180,6 +184,8 @@
#define ITEM_0B0 176
#define ITEM_0B1 177
#define ITEM_0B2 178
+
+// hold items
#define ITEM_BRIGHT_POWDER 179
#define ITEM_WHITE_HERB 180
#define ITEM_MACHO_BRACE 181
@@ -260,6 +266,8 @@
#define ITEM_PINK_SCARF 256
#define ITEM_GREEN_SCARF 257
#define ITEM_YELLOW_SCARF 258
+
+// Key Items
#define ITEM_MACH_BIKE 259
#define ITEM_COIN_CASE 260
#define ITEM_ITEMFINDER 261
@@ -290,64 +298,68 @@
#define ITEM_ROOT_FOSSIL 286
#define ITEM_CLAW_FOSSIL 287
#define ITEM_DEVON_SCOPE 288
-#define ITEM_TM01 289
-#define ITEM_TM02 290
-#define ITEM_TM03 291
-#define ITEM_TM04 292
-#define ITEM_TM05 293
-#define ITEM_TM06 294
-#define ITEM_TM07 295
-#define ITEM_TM08 296
-#define ITEM_TM09 297
-#define ITEM_TM10 298
-#define ITEM_TM11 299
-#define ITEM_TM12 300
-#define ITEM_TM13 301
-#define ITEM_TM14 302
-#define ITEM_TM15 303
-#define ITEM_TM16 304
-#define ITEM_TM17 305
-#define ITEM_TM18 306
-#define ITEM_TM19 307
-#define ITEM_TM20 308
-#define ITEM_TM21 309
-#define ITEM_TM22 310
-#define ITEM_TM23 311
-#define ITEM_TM24 312
-#define ITEM_TM25 313
-#define ITEM_TM26 314
-#define ITEM_TM27 315
-#define ITEM_TM28 316
-#define ITEM_TM29 317
-#define ITEM_TM30 318
-#define ITEM_TM31 319
-#define ITEM_TM32 320
-#define ITEM_TM33 321
-#define ITEM_TM34 322
-#define ITEM_TM35 323
-#define ITEM_TM36 324
-#define ITEM_TM37 325
-#define ITEM_TM38 326
-#define ITEM_TM39 327
-#define ITEM_TM40 328
-#define ITEM_TM41 329
-#define ITEM_TM42 330
-#define ITEM_TM43 331
-#define ITEM_TM44 332
-#define ITEM_TM45 333
-#define ITEM_TM46 334
-#define ITEM_TM47 335
-#define ITEM_TM48 336
-#define ITEM_TM49 337
-#define ITEM_TM50 338
-#define ITEM_HM01 339
-#define ITEM_HM02 340
-#define ITEM_HM03 341
-#define ITEM_HM04 342
-#define ITEM_HM05 343
-#define ITEM_HM06 344
-#define ITEM_HM07 345
-#define ITEM_HM08 346
+
+// TMs/HMs
+#define ITEM_TM01_FOCUS_PUNCH 289
+#define ITEM_TM02_DRAGON_CLAW 290
+#define ITEM_TM03_WATER_PULSE 291
+#define ITEM_TM04_CALM_MIND 292
+#define ITEM_TM05_ROAR 293
+#define ITEM_TM06_TOXIC 294
+#define ITEM_TM07_HAIL 295
+#define ITEM_TM08_BULK_UP 296
+#define ITEM_TM09_BULLET_SEED 297
+#define ITEM_TM10_HIDDEN_POWER 298
+#define ITEM_TM11_SUNNY_DAY 299
+#define ITEM_TM12_TAUNT 300
+#define ITEM_TM13_ICE_BEAM 301
+#define ITEM_TM14_BLIZZARD 302
+#define ITEM_TM15_HYPER_BEAM 303
+#define ITEM_TM16_LIGHT_SCREEN 304
+#define ITEM_TM17_PROTECT 305
+#define ITEM_TM18_RAIN_DANCE 306
+#define ITEM_TM19_GIGA_DRAIN 307
+#define ITEM_TM20_SAFEGUARD 308
+#define ITEM_TM21_FRUSTRATION 309
+#define ITEM_TM22_SOLARBEAM 310
+#define ITEM_TM23_IRON_TAIL 311
+#define ITEM_TM24_THUNDERBOLT 312
+#define ITEM_TM25_THUNDER 313
+#define ITEM_TM26_EARTHQUAKE 314
+#define ITEM_TM27_RETURN 315
+#define ITEM_TM28_DIG 316
+#define ITEM_TM29_PSYCHIC 317
+#define ITEM_TM30_SHADOW_BALL 318
+#define ITEM_TM31_BRICK_BREAK 319
+#define ITEM_TM32_DOUBLE_TEAM 320
+#define ITEM_TM33_REFLECT 321
+#define ITEM_TM34_SHOCK_WAVE 322
+#define ITEM_TM35_FLAMETHROWER 323
+#define ITEM_TM36_SLUDGE_BOMB 324
+#define ITEM_TM37_SANDSTORM 325
+#define ITEM_TM38_FIRE_BLAST 326
+#define ITEM_TM39_ROCK_TOMB 327
+#define ITEM_TM40_AERIAL_ACE 328
+#define ITEM_TM41_TORMENT 329
+#define ITEM_TM42_FACADE 330
+#define ITEM_TM43_SECRET_POWER 331
+#define ITEM_TM44_REST 332
+#define ITEM_TM45_ATTRACT 333
+#define ITEM_TM46_THIEF 334
+#define ITEM_TM47_STEEL_WING 335
+#define ITEM_TM48_SKILL_SWAP 336
+#define ITEM_TM49_SNATCH 337
+#define ITEM_TM50_OVERHEAT 338
+#define ITEM_HM01_CUT 339
+#define ITEM_HM02_FLY 340
+#define ITEM_HM03_SURF 341
+#define ITEM_HM04_STRENGTH 342
+#define ITEM_HM05_FLASH 343
+#define ITEM_HM06_ROCK_SMASH 344
+#define ITEM_HM07_WATERFALL 345
+#define ITEM_HM08_DIVE 346
+
+// Unknown
#define ITEM_15B 347
#define ITEM_15C 348
@@ -386,4 +398,9 @@
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
+// Check if the item is one that can be used on a Pokemon.
+#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
+
+#define IS_ITEM_MAIL(item) ((item) >= ITEM_ORANGE_MAIL && (item) <= ITEM_RETRO_MAIL)
+
#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/constants/songs.h b/include/constants/songs.h
index 5225f5899..920873a7c 100644
--- a/include/constants/songs.h
+++ b/include/constants/songs.h
@@ -2,371 +2,371 @@
#define GUARD_CONSTANTS_SONGS_H
#define SE_STOP 0
-#define SE_KAIFUKU 1
-#define SE_PC_LOGON 2
-#define SE_PC_OFF 3
-#define SE_PC_ON 4
-#define SE_SELECT 5
-#define SE_WIN_OPEN 6
-#define SE_WALL_HIT 7
-#define SE_DOOR 8
-#define SE_KAIDAN 9
-#define SE_DANSA 10
-#define SE_JITENSYA 11
-#define SE_KOUKA_L 12
-#define SE_KOUKA_M 13
-#define SE_KOUKA_H 14
-#define SE_BOWA2 15
-#define SE_POKE_DEAD 16
-#define SE_NIGERU 17
-#define SE_JIDO_DOA 18
-#define SE_NAMINORI 19
-#define SE_BAN 20
-#define SE_PIN 21
-#define SE_BOO 22
-#define SE_BOWA 23
-#define SE_JYUNI 24
-#define SE_A 25
-#define SE_I 26
-#define SE_U 27
-#define SE_E 28
-#define SE_O 29
-#define SE_N 30
-#define SE_SEIKAI 31
-#define SE_HAZURE 32
-#define SE_EXP 33
-#define SE_JITE_PYOKO 34
+#define SE_KAIFUKU 1 // Healing Item
+#define SE_PC_LOGON 2 // PC Logon
+#define SE_PC_OFF 3 // PC Shutdown
+#define SE_PC_ON 4 // PC Startup
+#define SE_SELECT 5 // Cursor Selection
+#define SE_WIN_OPEN 6 // Start Menu
+#define SE_WALL_HIT 7 // Wall Bump
+#define SE_DOOR 8 // Opening Door
+#define SE_KAIDAN 9 // Stairs
+#define SE_DANSA 10 // Ledge
+#define SE_JITENSYA 11 // Bicycle Bell
+#define SE_KOUKA_L 12 // Not Very Effective
+#define SE_KOUKA_M 13 // Normal Effectiveness
+#define SE_KOUKA_H 14 // Super Effective
+#define SE_BOWA2 15 // Pokémon Withdrawl
+#define SE_POKE_DEAD 16 // Pokémon Fainted
+#define SE_NIGERU 17 // Flee from Wild Battle
+#define SE_JIDO_DOA 18 // Pokémon Center Door
+#define SE_NAMINORI 19 // Briney's Ship
+#define SE_BAN 20 // Bang
+#define SE_PIN 21 // Exclamation Bubble
+#define SE_BOO 22 // Contest Jam
+#define SE_BOWA 23 // Giving Poké Ball to Nurse, Poké Ball Wiggle
+#define SE_JYUNI 24 // Places in Contest Appearing
+#define SE_A 25 // Bard A
+#define SE_I 26 // Bard I
+#define SE_U 27 // Bard U
+#define SE_E 28 // Bard E
+#define SE_O 29 // Bard O
+#define SE_N 30 // Bard N
+#define SE_SEIKAI 31 // Success
+#define SE_HAZURE 32 // Failure
+#define SE_EXP 33 // Exp. Bar
+#define SE_JITE_PYOKO 34 // Bunny Hop
#define SE_MU_PACHI 35
-#define SE_TK_KASYA 36
+#define SE_TK_KASYA 36 // Mossdeep Gym/Trick House Switch
#define SE_FU_ZAKU 37
#define SE_FU_ZAKU2 38
-#define SE_FU_ZUZUZU 39
-#define SE_RU_GASHIN 40
-#define SE_RU_GASYAN 41
-#define SE_RU_BARI 42
-#define SE_RU_HYUU 43
+#define SE_FU_ZUZUZU 39 // Lavaridge Gym Warp
+#define SE_RU_GASHIN 40 // Sootopolis Gym - Stairs Appear
+#define SE_RU_GASYAN 41 // Sootopolis Gym - Ice Breaking
+#define SE_RU_BARI 42 // Sootopolis Gym - Stepping on Ice
+#define SE_RU_HYUU 43 // Falling Down
#define SE_KI_GASYAN 44
-#define SE_TK_WARPIN 45
-#define SE_TK_WARPOUT 46
-#define SE_TU_SAA 47
-#define SE_HI_TURUN 48
-#define SE_TRACK_MOVE 49
-#define SE_TRACK_STOP 50
-#define SE_TRACK_HAIK 51
-#define SE_TRACK_DOOR 52
+#define SE_TK_WARPIN 45 // Warp In
+#define SE_TK_WARPOUT 46 // Warp Out
+#define SE_TU_SAA 47 // Repel
+#define SE_HI_TURUN 48 // Moving Obstacle in Fortree Gym
+#define SE_TRACK_MOVE 49 // Moving Truck
+#define SE_TRACK_STOP 50 // Moving Truck Stop
+#define SE_TRACK_HAIK 51 // Moving Truck Unload
+#define SE_TRACK_DOOR 52 // Moving Truck Door
#define SE_MOTER 53
#define SE_CARD 54
-#define SE_SAVE 55
-#define SE_KON 56
-#define SE_KON2 57
-#define SE_KON3 58
-#define SE_KON4 59
-#define SE_SUIKOMU 60
-#define SE_NAGERU 61
-#define SE_TOY_C 62
-#define SE_TOY_D 63
-#define SE_TOY_E 64
-#define SE_TOY_F 65
-#define SE_TOY_G 66
-#define SE_TOY_A 67
-#define SE_TOY_B 68
-#define SE_TOY_C1 69
-#define SE_MIZU 70
-#define SE_HASHI 71
-#define SE_DAUGI 72
-#define SE_PINPON 73
-#define SE_FUUSEN1 74
-#define SE_FUUSEN2 75
-#define SE_FUUSEN3 76
-#define SE_TOY_KABE 77
-#define SE_TOY_DANGO 78
-#define SE_DOKU 79
-#define SE_ESUKA 80
-#define SE_T_AME 81
-#define SE_T_AME_E 82
-#define SE_T_OOAME 83
-#define SE_T_OOAME_E 84
-#define SE_T_KOAME 85
-#define SE_T_KOAME_E 86
-#define SE_T_KAMI 87
-#define SE_T_KAMI2 88
-#define SE_ELEBETA 89
-#define SE_HINSI 90
-#define SE_EXPMAX 91
-#define SE_TAMAKORO 92
-#define SE_TAMAKORO_E 93
+#define SE_SAVE 55 // Save
+#define SE_KON 56 // Poké Ball Bounce 1
+#define SE_KON2 57 // Poké Ball Bounce 2
+#define SE_KON3 58 // Poké Ball Bounce 3
+#define SE_KON4 59 // Poké Ball Bounce 4
+#define SE_SUIKOMU 60 // Poké Ball Trade
+#define SE_NAGERU 61 // Poké Ball Throw
+#define SE_TOY_C 62 // Note C
+#define SE_TOY_D 63 // Note D
+#define SE_TOY_E 64 // Note E
+#define SE_TOY_F 65 // Note F
+#define SE_TOY_G 66 // Note G
+#define SE_TOY_A 67 // Note A
+#define SE_TOY_B 68 // Note B
+#define SE_TOY_C1 69 // Note High C
+#define SE_MIZU 70 // Puddle
+#define SE_HASHI 71 // Boardwalk
+#define SE_DAUGI 72 // Slots Credits
+#define SE_PINPON 73 // Ding-dong!
+#define SE_FUUSEN1 74 // Red Balloon
+#define SE_FUUSEN2 75 // Blue Balloon
+#define SE_FUUSEN3 76 // Yellow Balloon
+#define SE_TOY_KABE 77 // Breakable Door
+#define SE_TOY_DANGO 78 // Mud Ball
+#define SE_DOKU 79 // Overworld Poison Damage
+#define SE_ESUKA 80 // Escalator
+#define SE_T_AME 81 // Rain
+#define SE_T_AME_E 82 // Rain stop
+#define SE_T_OOAME 83 // Heavy Rain
+#define SE_T_OOAME_E 84 // Heavy Rain Stop
+#define SE_T_KOAME 85 // Light Rain
+#define SE_T_KOAME_E 86 // Light Rain Stop
+#define SE_T_KAMI 87 // Thunder
+#define SE_T_KAMI2 88 // Thunder 2
+#define SE_ELEBETA 89 // Elevator
+#define SE_HINSI 90 // Low Health
+#define SE_EXPMAX 91 // Exp. Max
+#define SE_TAMAKORO 92 // Roulette Ball
+#define SE_TAMAKORO_E 93 // Roulette Ball 2
#define SE_BASABASA 94
-#define SE_REGI 95
-#define SE_C_GAJI 96
-#define SE_C_MAKU_U 97
-#define SE_C_MAKU_D 98
+#define SE_REGI 95 // Cash Register
+#define SE_C_GAJI 96 // Contest Hearts
+#define SE_C_MAKU_U 97 // Contest Curtain rise
+#define SE_C_MAKU_D 98 // Contest Curtain fall
#define SE_C_PASI 99
#define SE_C_SYU 100
-#define SE_C_PIKON 101
-#define SE_REAPOKE 102
-#define SE_OP_BASYU 103
-#define SE_BT_START 104
-#define SE_DENDOU 105
-#define SE_JIHANKI 106
-#define SE_TAMA 107
-#define SE_Z_SCROLL 108
-#define SE_Z_PAGE 109
-#define SE_PN_ON 110
-#define SE_PN_OFF 111
-#define SE_Z_SEARCH 112
-#define SE_TAMAGO 113
-#define SE_TB_START 114
-#define SE_TB_KON 115
-#define SE_TB_KARA 116
+#define SE_C_PIKON 101 // Pokémon Appears in Contest
+#define SE_REAPOKE 102 // Shiny Pokémon
+#define SE_OP_BASYU 103 // Opening Movie -> Title Screen whoosh
+#define SE_BT_START 104 // Battle Mugshot whoosh
+#define SE_DENDOU 105 // Audience Cheering
+#define SE_JIHANKI 106 // Vending Machine
+#define SE_TAMA 107 // Orb Used
+#define SE_Z_SCROLL 108 // Pokédex Scrolling
+#define SE_Z_PAGE 109 // Pokédex Page
+#define SE_PN_ON 110 // PokéNav On
+#define SE_PN_OFF 111 // PokéNav Off
+#define SE_Z_SEARCH 112 // Pokédex Search
+#define SE_TAMAGO 113 // Egg hatch
+#define SE_TB_START 114 // Battle - Poké Ball Tray slide in
+#define SE_TB_KON 115 // Battle - Poké Ball Tray ball sound
+#define SE_TB_KARA 116 // Battle - Poké Ball Tray slide out
#define SE_BIDORO 117
-#define SE_W085 118
-#define SE_W085B 119
-#define SE_W231 120
-#define SE_W171 121
-#define SE_W233 122
-#define SE_W233B 123
-#define SE_W145 124
-#define SE_W145B 125
-#define SE_W145C 126
-#define SE_W240 127
-#define SE_W015 128
-#define SE_W081 129
-#define SE_W081B 130
-#define SE_W088 131
-#define SE_W016 132
-#define SE_W016B 133
-#define SE_W003 134
-#define SE_W104 135
-#define SE_W013 136
-#define SE_W196 137
-#define SE_W086 138
-#define SE_W004 139
-#define SE_W025 140
-#define SE_W025B 141
-#define SE_W152 142
-#define SE_W026 143
-#define SE_W172 144
-#define SE_W172B 145
-#define SE_W053 146
-#define SE_W007 147
-#define SE_W092 148
-#define SE_W221 149
-#define SE_W221B 150
-#define SE_W052 151
-#define SE_W036 152
-#define SE_W059 153
-#define SE_W059B 154
-#define SE_W010 155
-#define SE_W011 156
-#define SE_W017 157
-#define SE_W019 158
-#define SE_W028 159
-#define SE_W013B 160
-#define SE_W044 161
-#define SE_W029 162
-#define SE_W057 163
-#define SE_W056 164
-#define SE_W250 165
-#define SE_W030 166
-#define SE_W039 167
-#define SE_W054 168
-#define SE_W077 169
-#define SE_W020 170
-#define SE_W082 171
-#define SE_W047 172
-#define SE_W195 173
-#define SE_W006 174
-#define SE_W091 175
-#define SE_W146 176
-#define SE_W120 177
-#define SE_W153 178
-#define SE_W071B 179
-#define SE_W071 180
-#define SE_W103 181
-#define SE_W062 182
-#define SE_W062B 183
-#define SE_W048 184
-#define SE_W187 185
-#define SE_W118 186
-#define SE_W155 187
-#define SE_W122 188
-#define SE_W060 189
-#define SE_W185 190
-#define SE_W014 191
-#define SE_W043 192
-#define SE_W207 193
-#define SE_W207B 194
-#define SE_W215 195
-#define SE_W109 196
-#define SE_W173 197
-#define SE_W280 198
-#define SE_W202 199
-#define SE_W060B 200
-#define SE_W076 201
-#define SE_W080 202
-#define SE_W100 203
-#define SE_W107 204
-#define SE_W166 205
-#define SE_W129 206
-#define SE_W115 207
-#define SE_W112 208
-#define SE_W197 209
-#define SE_W199 210
-#define SE_W236 211
-#define SE_W204 212
-#define SE_W268 213
-#define SE_W070 214
-#define SE_W063 215
-#define SE_W127 216
-#define SE_W179 217
-#define SE_W151 218
-#define SE_W201 219
-#define SE_W161 220
-#define SE_W161B 221
-#define SE_W227 222
-#define SE_W227B 223
-#define SE_W226 224
-#define SE_W208 225
-#define SE_W213 226
-#define SE_W213B 227
-#define SE_W234 228
-#define SE_W260 229
-#define SE_W328 230
-#define SE_W320 231
-#define SE_W255 232
-#define SE_W291 233
-#define SE_W089 234
-#define SE_W239 235
-#define SE_W230 236
-#define SE_W281 237
-#define SE_W327 238
-#define SE_W287 239
-#define SE_W257 240
-#define SE_W253 241
-#define SE_W258 242
-#define SE_W322 243
-#define SE_W298 244
-#define SE_W287B 245
-#define SE_W114 246
-#define SE_W063B 247
+#define SE_W085 118 // Thunderbolt
+#define SE_W085B 119 // Thunderbolt 2
+#define SE_W231 120 // Harden
+#define SE_W171 121 // Nightmare
+#define SE_W233 122 // Vital Throw
+#define SE_W233B 123 // Vital Throw 2
+#define SE_W145 124 // Bubble
+#define SE_W145B 125 // Bubble 2
+#define SE_W145C 126 // Bubble 3
+#define SE_W240 127 // Rain Dance
+#define SE_W015 128 // Cut
+#define SE_W081 129 // String Shot
+#define SE_W081B 130 // String Shot 2
+#define SE_W088 131 // Rock Throw
+#define SE_W016 132 // Gust
+#define SE_W016B 133 // Gust 2
+#define SE_W003 134 // DoubleSlap
+#define SE_W104 135 // Double Team
+#define SE_W013 136 // Razor Wind
+#define SE_W196 137 // Icy Wind
+#define SE_W086 138 // Thunder Wave
+#define SE_W004 139 // Comet Punch
+#define SE_W025 140 // Mega Kick
+#define SE_W025B 141 // Mega Kick 2
+#define SE_W152 142 // Crabhammer
+#define SE_W026 143 // Jump Kick
+#define SE_W172 144 // Flame Wheel
+#define SE_W172B 145 // Flame Wheel 2
+#define SE_W053 146 // Flamethrower
+#define SE_W007 147 // Fire Punch
+#define SE_W092 148 // Toxic
+#define SE_W221 149 // Sacred Fire
+#define SE_W221B 150 // Sacred Fire 2
+#define SE_W052 151 // Ember
+#define SE_W036 152 // Take Down
+#define SE_W059 153 // Blizzard
+#define SE_W059B 154 // Blizzard 2
+#define SE_W010 155 // Scratch
+#define SE_W011 156 // Vicegrip
+#define SE_W017 157 // Wing Attack
+#define SE_W019 158 // Fly
+#define SE_W028 159 // Sand-Attack
+#define SE_W013B 160 // Razor Wind 2
+#define SE_W044 161 // Bite
+#define SE_W029 162 // Headbutt
+#define SE_W057 163 // Surf
+#define SE_W056 164 // Hydro Pump
+#define SE_W250 165 // Whirlpool
+#define SE_W030 166 // Horn Attack
+#define SE_W039 167 // Tail Whip
+#define SE_W054 168 // Mist
+#define SE_W077 169 // PoisonPowder
+#define SE_W020 170 // Bind
+#define SE_W082 171 // Dragon Rage
+#define SE_W047 172 // Sing
+#define SE_W195 173 // Perish Song
+#define SE_W006 174 // Pay Day
+#define SE_W091 175 // Dig
+#define SE_W146 176 // Dizzy Punch
+#define SE_W120 177 // Self-Destruct
+#define SE_W153 178 // Explosion
+#define SE_W071B 179 // Absorb 2
+#define SE_W071 180 // Absorb
+#define SE_W103 181 // Screech
+#define SE_W062 182 // BubbleBeam
+#define SE_W062B 183 // BubbleBeam 2
+#define SE_W048 184 // Supersonic
+#define SE_W187 185 // Belly Drum
+#define SE_W118 186 // Metronome
+#define SE_W155 187 // Bonemerang
+#define SE_W122 188 // Lick
+#define SE_W060 189 // Psybeam
+#define SE_W185 190 // Faint Attack
+#define SE_W014 191 // Swords Dance
+#define SE_W043 192 // Leer
+#define SE_W207 193 // Swagger
+#define SE_W207B 194 // Swagger 2
+#define SE_W215 195 // Heal Bell
+#define SE_W109 196 // Confuse Ray
+#define SE_W173 197 // Snore
+#define SE_W280 198 // Brick Break
+#define SE_W202 199 // Giga Drain
+#define SE_W060B 200 // Psybeam 2
+#define SE_W076 201 // SolarBeam
+#define SE_W080 202 // Petal Dance
+#define SE_W100 203 // Teleport
+#define SE_W107 204 // Minimize
+#define SE_W166 205 // Sketch
+#define SE_W129 206 // Swift
+#define SE_W115 207 // Reflect
+#define SE_W112 208 // Barrier
+#define SE_W197 209 // Detect
+#define SE_W199 210 // Lock-On
+#define SE_W236 211 // Moonlight
+#define SE_W204 212 // Charm
+#define SE_W268 213 // Charge
+#define SE_W070 214 // Strength
+#define SE_W063 215 // Hyper Beam
+#define SE_W127 216 // Waterfall
+#define SE_W179 217 // Reversal
+#define SE_W151 218 // Acid Armor
+#define SE_W201 219 // Sandstorm
+#define SE_W161 220 // Tri-Attack
+#define SE_W161B 221 // Tri-Attack 2
+#define SE_W227 222 // Encore
+#define SE_W227B 223 // Encore 2
+#define SE_W226 224 // Baton Pass
+#define SE_W208 225 // Milk Drink
+#define SE_W213 226 // Attract
+#define SE_W213B 227 // Attract 2
+#define SE_W234 228 // Morning Sun
+#define SE_W260 229 // Flatter
+#define SE_W328 230 // Sand Tomb
+#define SE_W320 231 // GrassWhistle
+#define SE_W255 232 // Spit Up
+#define SE_W291 233 // Dive
+#define SE_W089 234 // Earthquake
+#define SE_W239 235 // Twister
+#define SE_W230 236 // Sweet Scent
+#define SE_W281 237 // Yawn
+#define SE_W327 238 // Sky Uppercut
+#define SE_W287 239 // Stat Increased
+#define SE_W257 240 // Heat Wave
+#define SE_W253 241 // Uproar
+#define SE_W258 242 // Hail
+#define SE_W322 243 // Cosmic Power
+#define SE_W298 244 // Teeter Dance
+#define SE_W287B 245 // Stat Decreased
+#define SE_W114 246 // Haze
+#define SE_W063B 247 // Hyper Beam 2
#define BGM_STOP 349
-#define BGM_TETSUJI 350
-#define BGM_FIELD13 351
-#define BGM_KACHI22 352
-#define BGM_KACHI2 353
-#define BGM_KACHI3 354
-#define BGM_KACHI5 355
-#define BGM_PCC 356
-#define BGM_NIBI 357
-#define BGM_SUIKUN 358
-#define BGM_DOORO1 359
-#define BGM_DOORO_X1 360
-#define BGM_DOORO_X3 361
-#define BGM_MACHI_S2 362
-#define BGM_MACHI_S4 363
-#define BGM_GIM 364
-#define BGM_NAMINORI 365
-#define BGM_DAN01 366
-#define BGM_FANFA1 367
-#define BGM_ME_ASA 368
-#define BGM_ME_BACHI 369
-#define BGM_FANFA4 370
-#define BGM_FANFA5 371
-#define BGM_ME_WAZA 372
-#define BGM_BIJYUTU 373
-#define BGM_DOORO_X4 374
-#define BGM_FUNE_KAN 375
-#define BGM_ME_SHINKA 376
-#define BGM_SHINKA 377
-#define BGM_ME_WASURE 378
-#define BGM_SYOUJOEYE 379
-#define BGM_BOYEYE 380
-#define BGM_DAN02 381
-#define BGM_MACHI_S3 382
-#define BGM_ODAMAKI 383
-#define BGM_B_TOWER 384
-#define BGM_SWIMEYE 385
-#define BGM_DAN03 386
-#define BGM_ME_KINOMI 387
-#define BGM_ME_TAMA 388
-#define BGM_ME_B_BIG 389
-#define BGM_ME_B_SMALL 390
-#define BGM_ME_ZANNEN 391
-#define BGM_BD_TIME 392
-#define BGM_TEST1 393
-#define BGM_TEST2 394
-#define BGM_TEST3 395
-#define BGM_TEST4 396
-#define BGM_TEST 397
-#define BGM_GOMACHI0 398
-#define BGM_GOTOWN 399
-#define BGM_POKECEN 400
-#define BGM_NEXTROAD 401
-#define BGM_GRANROAD 402
-#define BGM_CYCLING 403
-#define BGM_FRIENDLY 404
-#define BGM_MISHIRO 405
-#define BGM_TOZAN 406
-#define BGM_GIRLEYE 407
-#define BGM_MINAMO 408
-#define BGM_ASHROAD 409
-#define BGM_EVENT0 410
-#define BGM_DEEPDEEP 411
-#define BGM_KACHI1 412
-#define BGM_TITLE3 413
-#define BGM_DEMO1 414
-#define BGM_GIRL_SUP 415
-#define BGM_HAGESHII 416
-#define BGM_KAKKOII 417
-#define BGM_KAZANBAI 418
-#define BGM_AQA_0 419
-#define BGM_TSURETEK 420
-#define BGM_BOY_SUP 421
-#define BGM_RAINBOW 422
-#define BGM_AYASII 423
-#define BGM_KACHI4 424
-#define BGM_ROPEWAY 425
-#define BGM_CASINO 426
-#define BGM_HIGHTOWN 427
-#define BGM_SAFARI 428
-#define BGM_C_ROAD 429
-#define BGM_AJITO 430
-#define BGM_M_BOAT 431
-#define BGM_M_DUNGON 432
-#define BGM_FINECITY 433
-#define BGM_MACHUPI 434
-#define BGM_P_SCHOOL 435
-#define BGM_DENDOU 436
-#define BGM_TONEKUSA 437
-#define BGM_MABOROSI 438
-#define BGM_CON_FAN 439
-#define BGM_CONTEST0 440
-#define BGM_MGM0 441
-#define BGM_T_BATTLE 442
-#define BGM_OOAME 443
-#define BGM_HIDERI 444
-#define BGM_RUNECITY 445
-#define BGM_CON_K 446
-#define BGM_EIKOU_R 447
-#define BGM_KARAKURI 448
-#define BGM_HUTAGO 449
-#define BGM_SITENNOU 450
-#define BGM_YAMA_EYE 451
-#define BGM_CONLOBBY 452
-#define BGM_INTER_V 453
-#define BGM_DAIGO 454
-#define BGM_THANKFOR 455
-#define BGM_END 456
-#define BGM_BATTLE27 457
-#define BGM_BATTLE31 458
-#define BGM_BATTLE20 459
-#define BGM_BATTLE32 460
-#define BGM_BATTLE33 461
-#define BGM_BATTLE36 462
-#define BGM_BATTLE34 463
-#define BGM_BATTLE35 464
-#define BGM_BATTLE38 465
-#define BGM_BATTLE30 466
+#define BGM_TETSUJI 350 // Littleroot Town Test 'TETSUJI'
+#define BGM_FIELD13 351 // GSC - Route 38
+#define BGM_KACHI22 352 // Wild Pokémon Defeated
+#define BGM_KACHI2 353 // Wild Pokémon Defeated with Intro
+#define BGM_KACHI3 354 // Gym Leader Defeated
+#define BGM_KACHI5 355 // Victory! Elite Four
+#define BGM_PCC 356 // Crystal - Pokémon Communication Center
+#define BGM_NIBI 357 // GSC - Viridian/Saffron/Pewter/etc
+#define BGM_SUIKUN 358 // Crystal - Battle! Legendary Beasts
+#define BGM_DOORO1 359 // Route 101
+#define BGM_DOORO_X1 360 // Route 110
+#define BGM_DOORO_X3 361 // Route 120
+#define BGM_MACHI_S2 362 // Petalburg City
+#define BGM_MACHI_S4 363 // Oldale Town
+#define BGM_GIM 364 // Gym
+#define BGM_NAMINORI 365 // Surfing
+#define BGM_DAN01 366 // Caves and Darkness
+#define BGM_FANFA1 367 // Level Up!
+#define BGM_ME_ASA 368 // Pokémon Healed
+#define BGM_ME_BACHI 369 // Obtained a Badge!
+#define BGM_FANFA4 370 // Obtained an Item!
+#define BGM_FANFA5 371 // Your Pokémon Just Evolved!
+#define BGM_ME_WAZA 372 // Obtained a TM/HM!
+#define BGM_BIJYUTU 373 // Lilycove Musseum
+#define BGM_DOORO_X4 374 // Route 122/Intro
+#define BGM_FUNE_KAN 375 // Slateport Museum
+#define BGM_ME_SHINKA 376 // Evolution Intro
+#define BGM_SHINKA 377 // Evolution
+#define BGM_ME_WASURE 378 // Move Deleted
+#define BGM_SYOUJOEYE 379 // Encounter! Tuber
+#define BGM_BOYEYE 380 // Encounter! Boy
+#define BGM_DAN02 381 // Abandoned Ship
+#define BGM_MACHI_S3 382 // Fortree City
+#define BGM_ODAMAKI 383 // Professor Birch's Lab
+#define BGM_B_TOWER 384 // Battle Tower (RS)
+#define BGM_SWIMEYE 385 // Encounter! Swimmer
+#define BGM_DAN03 386 // Meteor Falls
+#define BGM_ME_KINOMI 387 // Obtained a Berry!
+#define BGM_ME_TAMA 388 // Awakening the Super-Ancient Pokémon
+#define BGM_ME_B_BIG 389 // Slots Jackpot!
+#define BGM_ME_B_SMALL 390 // Slots Victory!
+#define BGM_ME_ZANNEN 391 // Too bad!
+#define BGM_BD_TIME 392 // Roulette!
+#define BGM_TEST1 393 // Contest Test 1
+#define BGM_TEST2 394 // Contest Test 2
+#define BGM_TEST3 395 // Contest Test 3
+#define BGM_TEST4 396 // Contest Test 4
+#define BGM_TEST 397 // Encounter! Gentleman (Test?)
+#define BGM_GOMACHI0 398 // Verdanturf Town
+#define BGM_GOTOWN 399 // Rustboro City
+#define BGM_POKECEN 400 // Pokémon Center
+#define BGM_NEXTROAD 401 // Route 104
+#define BGM_GRANROAD 402 // Route 119
+#define BGM_CYCLING 403 // Cycling
+#define BGM_FRIENDLY 404 // Pokémart
+#define BGM_MISHIRO 405 // Littleroot Town
+#define BGM_TOZAN 406 // Sky Pillar
+#define BGM_GIRLEYE 407 // Encounter! Girl
+#define BGM_MINAMO 408 // Lilycove City
+#define BGM_ASHROAD 409 // Route 111
+#define BGM_EVENT0 410 // Help me!
+#define BGM_DEEPDEEP 411 // Underwater
+#define BGM_KACHI1 412 // Victory! Trainer
+#define BGM_TITLE3 413 // Title Screen
+#define BGM_DEMO1 414 // Opening Movie
+#define BGM_GIRL_SUP 415 // Encounter! May
+#define BGM_HAGESHII 416 // Encounter! Biker
+#define BGM_KAKKOII 417 // Encounter! Electric Trainer
+#define BGM_KAZANBAI 418 // Route 113
+#define BGM_AQA_0 419 // Encounter! Team Aqua
+#define BGM_TSURETEK 420 // Follow Me!
+#define BGM_BOY_SUP 421 // Encounter! Brendan
+#define BGM_RAINBOW 422 // Ever Grande City
+#define BGM_AYASII 423 // Encounter! Psychic
+#define BGM_KACHI4 424 // Victory! Aqua/Magma Grunt
+#define BGM_ROPEWAY 425 // Cable Car
+#define BGM_CASINO 426 // Game Corner
+#define BGM_HIGHTOWN 427 // Dewford Town
+#define BGM_SAFARI 428 // Safari Zone
+#define BGM_C_ROAD 429 // Victory Toad
+#define BGM_AJITO 430 // Aqua/Magma Hideout
+#define BGM_M_BOAT 431 // Sailing
+#define BGM_M_DUNGON 432 // Mt. Pyre (Inside)
+#define BGM_FINECITY 433 // Slateport City
+#define BGM_MACHUPI 434 // Mt. Pyre (Outside)
+#define BGM_P_SCHOOL 435 // Pokémon Trainer's School
+#define BGM_DENDOU 436 // Hall of Fame
+#define BGM_TONEKUSA 437 // Lavaridge Town
+#define BGM_MABOROSI 438 // Sealed Chamber
+#define BGM_CON_FAN 439 // You are the Champion!
+#define BGM_CONTEST0 440 // Pokémon Contest
+#define BGM_MGM0 441 // Encounter! Team Magma
+#define BGM_T_BATTLE 442 // Opening Battle
+#define BGM_OOAME 443 // The Flood
+#define BGM_HIDERI 444 // The Drought
+#define BGM_RUNECITY 445 // Sootopolis City
+#define BGM_CON_K 446 // Berry Blending Results
+#define BGM_EIKOU_R 447 // Hall of Fame
+#define BGM_KARAKURI 448 // Trick House
+#define BGM_HUTAGO 449 // Encounter! Kid
+#define BGM_SITENNOU 450 // Encounter! Elite Four
+#define BGM_YAMA_EYE 451 // Encounter! Hiker
+#define BGM_CONLOBBY 452 // Contest Lobby
+#define BGM_INTER_V 453 // Encounter! Gabby and Ty
+#define BGM_DAIGO 454 // Encounter! Wallace
+#define BGM_THANKFOR 455 // Credits
+#define BGM_END 456 // The End
+#define BGM_BATTLE27 457 // Battle! Wild Pokémon
+#define BGM_BATTLE31 458 // Battle! Team Aqua/Magma
+#define BGM_BATTLE20 459 // Battle! Trainer
+#define BGM_BATTLE32 460 // Battle! Gym Leader
+#define BGM_BATTLE33 461 // Battle! Champion
+#define BGM_BATTLE36 462 // Battle! Regi Trio
+#define BGM_BATTLE34 463 // Battle! Legendary Pokémon
+#define BGM_BATTLE35 464 // Battle! Rival
+#define BGM_BATTLE38 465 // Battle! Elite Four
+#define BGM_BATTLE30 466 // Battle! Archie/Maxie
#define BGM_ROUTE_118 0x7FFF // What is this for?
diff --git a/include/constants/weather.h b/include/constants/weather.h
index 946316984..1110be7a2 100644
--- a/include/constants/weather.h
+++ b/include/constants/weather.h
@@ -12,7 +12,7 @@
#define WEATHER_SANDSTORM 8
#define WEATHER_FOG_2 9
#define WEATHER_FOG_3 10
-#define WEATHER_DARK 11
+#define WEATHER_SHADE 11
#define WEATHER_DROUGHT 12
#define WEATHER_RAIN_HEAVY 13
#define WEATHER_BUBBLES 14
@@ -31,7 +31,7 @@
#define COORD_EVENT_WEATHER_FOG_2 7
#define COORD_EVENT_WEATHER_ASH 8
#define COORD_EVENT_WEATHER_SANDSTORM 9
-#define COORD_EVENT_WEATHER_DARK 10
+#define COORD_EVENT_WEATHER_SHADE 10
#define COORD_EVENT_WEATHER_DROUGHT 11
#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
diff --git a/include/contest.h b/include/contest.h
index 10392c00e..b0bdd7f61 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -67,6 +67,22 @@ struct ContestPokemon
/*0x3C*/ u32 otId; // otId
}; // wow
+struct ContestAIInfo {
+ /*0x00*/ u8 aiState;
+ /*0x02*/ u16 unk2;
+ /*0x04*/ u8 unk4;
+ /*0x05*/ u8 unk5[4];
+ /*0x09*/ u8 aiAction;
+ /*0x0A*/ u8 fillerA[0x6]; // TODO: don't know what's here
+ /*0x10*/ u8 unk10;
+ /*0x14*/ u32 flags;
+ /*0x18*/ s16 scriptResult;
+ /*0x1A*/ s16 scriptArr[3];
+ /*0x20*/ u32 stack[8];
+ /*0x40*/ u8 unk40;
+ /*0x41*/ u8 unk41;
+};
+
extern struct ContestPokemon gContestMons[];
extern const struct ContestMove gContestMoves[];
extern const struct ContestEffect gContestEffects[];
@@ -86,5 +102,185 @@ void sub_80B0F28(u8);
bool8 Contest_SaveWinner(u8);
u8 sub_80B2C4C(u8, u8);
void Contest_ResetWinners(void);
+s8 Contest_GetMoveExcitement(u16);
+
+// Contest Shared EWRAM
+
+struct Shared18000
+{
+ /*0x18000*/ u8 unk18000;
+ /*0x18001*/ u8 filler18001[3];
+ /*0x18004*/ u16 unk18004[16][16];
+ /*0x18204*/ u16 unk18204[0x200];
+ /*0x18604*/ u16 unk18604[0x200];
+ /*0x18A04*/ u8 unk18A04[0x800];
+};
+
+struct Contest
+{
+ /*0x19204*/ u8 playerMoveChoice;
+ /*0x19205*/ u8 turnNumber;
+ /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function
+ /*0x1920A*/ u16 unk1920A_0:1; // Task active flags?
+ u16 unk1920A_1:1;
+ u16 unk1920A_2:1;
+ u16 unk1920A_3:1;
+ u16 unk1920A_4:1;
+ u16 unk1920A_5:1;
+ u16 unk1920A_6:1;
+ u16 unk1920A_7:1;
+ /*0x1920B*/ u16 unk1920B_0:1;
+ u16 unk1920B_1:1;
+ u16 unk1920B_2:1;
+ /*0x1920C*/ u8 mainTaskId;
+ /*0x1920D*/ u8 unk1920D[4];
+ /*0x19211*/ u8 unk19211;
+ /*0x19212*/ u8 unk19212;
+ /*0x19213*/ u8 filler19213;
+ /*0x19214*/ u8 unk19214;
+ /*0x19215*/ u8 unk19215;
+ /*0x19216*/ u8 unk19216; // sprite ID
+ /*0x19217*/ s8 applauseLevel;
+ /*0x19218*/ u8 unk19218[4];
+ /*0x1921C*/ u32 unk1921C; // saved RNG value?
+ u16 unk19220[5][4]; // move history?
+ u8 unk19248[5][4]; // excitement history
+ u8 applauseMeterSpriteId; // sprite ID
+ /*0x1925D*/ u8 unk1925D;
+ /*0x1925E*/ u8 unk1925E;
+};
+
+struct ContestantStatus
+{
+ /*0x00*/ s16 appeal1; // move appeal?
+ /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe?
+ /*0x04*/ s16 unk4;
+ /*0x06*/ u16 currMove;
+ /*0x08*/ u16 prevMove;
+ /*0x0A*/ u8 moveCategory;
+ /*0x0B*/ u8 unkB_0:2;
+ u8 unkB_2:2;
+ u8 moveRepeatCount:3;
+ u8 unkB_7:1; // used a one-time move?
+ /*0x0C*/ u8 unkC_0:1;
+ u8 unkC_1:2;
+ /*0x0D*/ s8 unkD;
+ /*0x0E*/ u8 unkE;
+ /*0x0F*/ u8 unkF;
+ /*0x10*/ u8 unk10_0:1;
+ u8 unk10_1:1;
+ u8 unk10_2:1;
+ u8 unk10_3:1;
+ u8 unk10_4:2;
+ u8 unk10_6:2;
+ /*0x11*/ u8 unk11_0:2;
+ u8 unk11_2:1;
+ u8 unk11_3:1;
+ u8 unk11_4:1;
+ u8 unk11_5:1;
+ /*0x12*/ u8 unk12;
+ /*0x13*/ u8 unk13; // status action?
+ /*0x14*/ u8 unk14;
+ /*0x15*/ u8 disappointedRepeat:1;
+ u8 unk15_1:1;
+ u8 unk15_2:1;
+ u8 unk15_3:1;
+ u8 unk15_4:1;
+ u8 unk15_5:1;
+ u8 unk15_6:1;
+ /*0x16*/ u8 unk16;
+ /*0x17*/ u8 unk17;
+ /*0x18*/ u8 unk18;
+ /*0x19*/ u8 unk19; // turn position
+ /*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out"
+ /*0x1B*/ u8 unk1B;
+};
+
+struct UnknownContestStruct3
+{
+ u8 unk0;
+ u8 unk1;
+ //u8 unk2_0:1;
+ //u8 unk2_1:1;
+ u8 unk2; // maybe a bitfield
+ u8 filler3;
+};
+
+// possibly the same as UnknownContestStruct3?
+struct UnknownContestStruct4
+{
+ u8 unk0; // sprite ID
+ u8 unk1; // sprite ID
+ u8 unk2_0:1;
+ u8 unk2_1:1;
+ u8 unk2_2:1;
+ u8 filler3;
+};
+
+struct UnknownContestStruct5
+{
+ s8 bits_0; // current move excitement?
+ u8 bits_8:1;
+ u8 bits_9:3;
+ u8 bits_C:4;
+ s8 unk2;
+ u8 filler3;
+};
+
+struct UnknownContestStruct7
+{
+ u8 unk0[4];
+ u16 unk4;
+ u16 unk6;
+ u8 filler8[0xD-8];
+ u8 unkD[4];
+ u8 unk11;
+ u8 filler12[2];
+};
+
+struct UnknownContestStruct8
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4_0:1;
+ u8 unk5;
+ u8 filler6[2];
+ u32 unk8;
+ u32 unkC;
+ u32 unk10;
+};
+
+struct UnknownContestStruct6
+{
+ s32 unk0;
+ s32 unk4;
+ s32 unk8;
+ s32 unkC;
+};
+
+// TODO: Please move these to ewram.h once the defines are settled down and figured out completely.
+#define shared15800 (gSharedMem + 0x15800)
+#define shared15DE0 (*(struct ContestWinner *)(gSharedMem + 0x15DE0))
+#define shared16800 (gSharedMem + 0x16800)
+#define shared18000 (*(struct Shared18000 *)(gSharedMem + 0x18000))
+#define shared18004 ((u16 *)(gSharedMem + 0x18004))
+#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
+#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
+#define shared192E4 (gSharedMem + 0x192E4)
+#define shared19328 (*(struct UnknownContestStruct5 *)(gSharedMem + 0x19328))
+#define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338))
+#define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348))
+
+extern u8 gContestPlayerMonIndex;
+extern u8 gIsLinkContest;
+extern u32 gContestRngValue;
+extern u8 gUnknown_02038696[4];
+extern s16 gUnknown_02038670[4];
+extern s16 gUnknown_02038678[4];
+extern s16 gUnknown_02038680[4];
+extern u16 gUnknown_02038688[4];
+extern u8 gContestFinalStandings[4];
+extern u8 gUnknown_02038696[4];
+extern u8 gUnknown_0203869B;
#endif // GUARD_CONTEST_H
diff --git a/include/contest_ai.h b/include/contest_ai.h
new file mode 100644
index 000000000..da143b541
--- /dev/null
+++ b/include/contest_ai.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_CONTESTAI_H
+#define GUARD_CONTESTAI_H
+
+// AI states
+enum
+{
+ CONTESTAI_SETTING_UP,
+ CONTESTAI_PROCESSING,
+ CONTESTAI_FINISHED,
+ CONTESTAI_DO_NOT_PROCESS
+};
+
+void ContestAI_ResetAI(u8);
+u8 ContestAI_GetActionToUse(void);
+
+#endif
diff --git a/include/credits.h b/include/credits.h
new file mode 100644
index 000000000..dabe24048
--- /dev/null
+++ b/include/credits.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_credits_H
+#define GUARD_credits_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void sub_81439D0(void);
+
+#endif //GUARD_credits_H
diff --git a/include/data2.h b/include/data2.h
index 97cb4fd7a..2fe8d39f8 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -3,7 +3,7 @@
#include "sprite.h"
-struct UnknownTaskStruct;
+struct ScanlineEffectParams;
struct MonCoords
{
@@ -42,12 +42,13 @@ extern u8 gSpeciesNames[][11];
extern const u8 gMoveNames[][13];
extern const u8 gAbilityNames[][13];
extern const u8 gTypeNames[][7];
-extern const struct UnknownTaskStruct gUnknown_081F9674;
+extern const struct ScanlineEffectParams gUnknown_081F9674;
extern const u8 gUnknown_081F96C8[];
extern struct CompressedSpriteSheet gUnknown_081FAEA4;
extern struct CompressedSpritePalette gUnknown_081FAEAC;
extern const struct SpriteTemplate gSpriteTemplate_81FAF0C;
-extern void *const gUnknown_081FAF4C[];
+extern u8 *const gUnknown_081FAF4C[];
+//extern u8 (*const gUnknown_081FAF4C[])[0x800];
extern struct BattleMove gBattleMoves[];
// data/graphics/trainers/front_pic_coords.inc
diff --git a/include/debug.h b/include/debug.h
index f3ad8c401..2136dbfb8 100644
--- a/include/debug.h
+++ b/include/debug.h
@@ -1,7 +1,17 @@
#ifndef GUARD_DEBUG_H
#define GUARD_DEBUG_H
+// start_menu_debug
+void DebugMenu_8077048(void);
+
// matsuda_debug_menu
void sub_80AAF30(void);
+void Crash(const u8 *text);
+
+// tomomichi_debug_menu
+void debug_nullsub_66(void);
+
+// sound_check_menu
+void CB2_StartSoundCheckMenu(void);
#endif // GUARD_DEBUG_H
diff --git a/include/decoration.h b/include/decoration.h
index 972e82faf..d7f26bd05 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -127,17 +127,12 @@ extern u8 gUnknown_020388F5;
extern u8 gUnknown_020388F6;
extern u8 gUnknown_020388D6[16];
extern u8 gUnknown_020388E6[12];
-extern u16 gSpecialVar_0x8004;
-extern u16 gSpecialVar_0x8005;
-extern u16 gSpecialVar_0x8006;
-extern u16 gSpecialVar_0x8007;
extern u16 gUnknown_020391A4;
extern u16 gUnknown_020391A6;
extern u8 gUnknown_020391A8;
extern u8 gUnknown_020391A9;
extern u8 gUnknown_020391AA;
extern u8 gUnknown_02039234;
-extern void (*gFieldCallback)(void);
extern const struct YesNoFuncTable gUnknown_083EC96C[];
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
@@ -151,7 +146,6 @@ extern const struct YesNoFuncTable gUnknown_083EC634[];
extern const u8 gUnknown_083EC65A[];
extern const u8 gUnknown_083EC97C[];
extern const u8 gUnknown_083EC984[];
-extern void sub_80B3068(u8); // src/shop
extern const struct YesNoFuncTable gUnknown_083EC95C;
extern const struct YesNoFuncTable gUnknown_083EC964;
extern const struct YesNoFuncTable gUnknown_083EC9CC;
@@ -161,7 +155,6 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0;
extern u8 sub_8134194(u8); // src/decoration_inventory
extern bool8 sub_81341D4(void); // src/decoration_inventory
extern void sub_8134104(u8); // src/decoration_inventory
-extern bool8 sub_807D770(void);
extern void sub_8109DAC(u8); // src/trader
extern void ReshowPlayerPC(u8); // src/player_pc
void Task_SecretBasePC_Decoration(u8);
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
index c12d0d740..16b2bdd75 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -2,6 +2,7 @@
#define GUARD_DEWFORDTREND_H
void InitDewfordTrend(void);
+bool8 sub_80FA364(u16 *a);
void sub_80FA4E4(void *, u32, u8);
void UpdateDewfordTrendPerDay(u16);
diff --git a/include/easy_chat.h b/include/easy_chat.h
index a6277fba8..b86b166aa 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -1,8 +1,124 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
-extern u8 gUnknown_020388AC;
+struct Sprite;
+struct UnknownEasyChatStruct1
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ void *unk8;
+};
+
+struct Shared1000
+{
+ void (*unk0)(void); // main cb 2
+ u16 *unk4;
+ u8 unk8;
+ u8 unk9;
+ u8 unkA; // length of unkC array
+ u8 unkB; // reporter talked to (Gabby or Ty)
+ u16 unkC[9];
+ void (*unk20)(void);
+ u16 unk24;
+ u8 unk26;
+ u8 unk27;
+ u16 unk28;
+ u8 unk2A[11][2];
+ u8 unk40[4][14];
+ u8 unk78[5];
+ u8 unk7D;
+ u8 unk7E[5];
+ s8 unk83;
+ s8 unk84;
+ s8 unk85;
+ s8 unk86;
+ bool8 unk87;
+ u16 unk88;
+ u16 unk8A;
+ u8 unk8C[(0x96-0x8C)/2][2];
+ u8 unk96;
+ u8 filler97;
+ struct Sprite *unk98;
+ struct Sprite *unk9C;
+ struct Sprite *unkA0;
+ struct Sprite *unkA4;
+ struct Sprite *unkA8;
+ struct Sprite *unkAC[2];
+ struct Sprite *unkB4[2];
+ u8 unkBC;
+ u8 fillerBD;
+ u16 unkBE;
+ u8 fillerC0[2];
+ u16 unkC2; // length of unkC8 and unk148 arrays
+ u16 unkC4;
+ u8 fillerC6[2];
+ u16 unkC8[(0x148-0xC8)/16][8];
+ struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12];
+ s8 unk1A8;
+ s8 unk1A9;
+ s8 unk1AA[0xB5-0xAA];
+ s8 unk1B5;
+ s8 unk1B6;
+ s8 unk1B7;
+ u8 unk1B8;
+ u8 unk1B9;
+ u16 unk1BA;
+ u16 unk1BC;
+ u8 unk1BE;
+ s8 unk1BF;
+ s8 unk1C0;
+ u8 filler1C1[3];
+ void (*unk1C4)(void);
+ u8 unk1C8[0x500];
+ u8 unk6C8[0xB78-0x6C8];
+#if GERMAN
+ u16 unkB78[27][270];
+#else
+ u16 unkB78[27][255];
+#endif
+ u16 unk4142[(0x78-0x42)/2]; //0x446C
+ u16 unk4178[(0x41A4-0x4178)/2]; // unknown length
+ const u8 *ecWordStrings[0x16][0x100]; //0x44CE in german
+ s8 unk99A4;
+ s8 unk99A5;
+ s8 unk99A6[130];
+ s8 unk9A28;
+ s8 unk9A29;
+ u16 unk9A2A[(0x9C32-0x9A2A)/4][2]; // unknown length
+ u8 unk9C32;
+ u8 filler9C33;
+ u16 unk9C34[3][9];
+ u8 filler9C6A[2];
+ s8 *unk9C6C;
+ u8 unk9C70;
+ s8 unk9C71;
+ u8 filler9C72[2];
+ struct Sprite *unk9C74;
+ u8 filler9C78[4];
+ u16 unk9C7C; // this is at 0x9FA8 in German
+ s16 unk9C7E;
+ u8 unk9C80[0xC9-0x80];
+ u8 unk9CC9[0xD12-0xCC9];
+ u8 unk9D12[0x5B-0x12];
+ u8 unk9D5B[0xA4-0x5B];
+ u8 unk9DA4[0xC9-0xA4];
+ u8 unk9DC9[0xE14 - 0xDC9];
+ u8 unk9E14[0xE41 - 0xE14];
+ u8 unk9E41[0x6E - 0x41];
+ u8 unk9E6E[0xEE - 0x6E];
+ u8 unk9EEE[0xF6E - 0xEEE];
+ u8 unk9F6E[0x8E - 0x6E]; // unknown length
+ u8 unk9F8E[7]; // unknown length
+};
+
+// const pointer to shared1000. easy_chat might be two separate files.
+extern struct Shared1000 *const gEasyChatStruct;
+
+void sub_80E60D8(void);
+void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3);
u16 sub_80EB72C(u16 group);
void sub_80EB6FC(u16 *, u16);
void InitEasyChatPhrases(void);
@@ -19,7 +135,7 @@ u16 sub_80EB8EC(void);
u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3);
#if GERMAN
-u32 de_sub_80EB748(u32, u32);
+u32 de_sub_80EB748(s32, s32);
#endif
#endif // GUARD_EASYCHAT_H
diff --git a/include/ewram.h b/include/ewram.h
index eacc02cab..cafb418fb 100755..100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -8,8 +8,8 @@ extern u8 gSharedMem[];
// regions overlap others but have different definitions. Until some
// dupes can be determined to be the same, they will be deliberate
// seperated.
-#define eWeatherPaletteData (*(struct WeatherPaletteData *)gSharedMem)
-#define BATTLE_STRUCT ((struct BattleStruct *) (gSharedMem + 0x0))
+#define eDroughtPaletteData (*(struct WeatherPaletteData *)gSharedMem)
+#define gBattleStruct ((struct BattleStruct *) (gSharedMem + 0x0))
#define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0))
#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
#define ewramBerryPic (gSharedMem + 0x0)
@@ -20,14 +20,15 @@ extern u8 gSharedMem[];
#define eBrendanSprite (gSharedMem + 0x0)
#define ewram0_6 (u32)(&gSharedMem[0])
#define ewram0_7 (&gSharedMem[0])
-#define eSaveSection (struct SaveSection *)(gSharedMem + 0x0)
+#define eSaveSection (struct SaveSector *)(gSharedMem + 0x0)
#define ewram0arr ((u8 (*)[32])gSharedMem)
#define eVoidSharedArr (void *)(ewram_addr + 0x0)
#define eVoidSharedArr2 (u32)(ewram_addr) // ew(ram)
-#define ewram0_8 ((struct UnkStruct2000000 *)(gSharedMem + 0x0))
+#define eSlotMachine ((struct SlotMachineEwramStruct *)(gSharedMem + 0x0))
#define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20))
#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0))
#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0))
+#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0))
#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
#define ewram520_2 (u8 *)(ewram_addr + 0x520)
@@ -38,10 +39,6 @@ extern u8 gSharedMem[];
#define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000))
#define ewramBerryPicTemp (gSharedMem + 0x1000)
#define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000))
-#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA])
-#define gUnk2002694 (u8 *)(&gSharedMem[0x2694])
-#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6])
-#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4])
#define ewram4000 (gSharedMem + 0x4000)
#define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000))
#define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800))
@@ -70,7 +67,7 @@ extern u8 gSharedMem[];
#define ewramF800 (&gSharedMem[0xF800])
#define ewram_2010000 (*(struct TradeEwramStruct *)(gSharedMem + 0x10000))
#define ewram10000 (&gSharedMem[0x10000])
-#define ewram10000_2 (void *)(gSharedMem + 0x10000) // slot machine
+#define eSlotMachineGfxBuffer (void *)(gSharedMem + 0x10000) // slot machine
#define ePokedexPalAddr3 (void *)(gSharedMem + 0x10000)
#define ewram10800 (&gSharedMem[0x10800])
#define ewram11000 (&gSharedMem[0x11000])
@@ -78,6 +75,7 @@ extern u8 gSharedMem[];
#define ewram12000 (&gSharedMem[0x12000])
#define ewram12800 (&gSharedMem[0x12800])
#define ewram13000 (&gSharedMem[0x13000])
+#define eSlotMachineReelTimeGfxBuffer (&gSharedMem[0x13200])
#define ewram13800 (&gSharedMem[0x13800])
#define EWRAM_14000 ((u8 *)(gSharedMem + 0x14000))
#define ewram14000 (&gSharedMem[0x14000])
@@ -107,6 +105,7 @@ extern u8 gSharedMem[];
#define ewram16010arr(bank) (gSharedMem[0x16010 + bank])
#define ewram1601B (gSharedMem[0x1601B])
#define eDynamicMoveType (gSharedMem[0x1601C])
+#define eFocusPunchBank (gSharedMem[0x1601D])
#define eDmgMultiplier (gSharedMem[0x1601F])
#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
#define ewram16020arr(i) (gSharedMem[0x16020 + i])
@@ -129,9 +128,16 @@ extern u8 gSharedMem[];
#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088))
#define ewram16089 (gSharedMem[0x16089])
#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089))
+
+// src/battle/anim/battle_intro.c
+#define ewram1608A gSharedMem[0x1608A]
+#define ewram1608B gSharedMem[0x1608B]
+
#define ewram1608Carr(bank) (gSharedMem[0x1608C + bank])
#define EWRAM_1609D (gSharedMem[0x1609D])
#define ewram160A1 (gSharedMem[0x160A1])
+#define ewram160A4 (gSharedMem[0x160A4])
+#define ewram160A5 (gSharedMem[0x160A5])
#define ewram160A6 (gSharedMem[0x160A6])
#define ewram160A8 (gSharedMem[0x160A8])
#define ewram160A9 (gSharedMem[0x160A9])
@@ -154,9 +160,12 @@ extern u8 gSharedMem[];
#define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2]))))
#define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)])
#define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2])
+#define ewram160D8(bank) (gSharedMem[0x160D8 + (bank / 2)])
+#define ewram160DA(bank) (gSharedMem[0x160DA + (bank / 2)])
#define ewram160DD (gSharedMem[0x160DD])
#define ewram160E0(i) (gSharedMem[0x160E0 + i])
#define ewram160E6 (gSharedMem[0x160E6])
+#define ewram160E7 (gSharedMem[0x160E7])
#define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2])))
#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8))
#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
@@ -174,6 +183,7 @@ extern u8 gSharedMem[];
#define ewram16108arr(i) (gSharedMem[0x16108 + i])
#define ewram16110 (gSharedMem[0x16110])
#define ewram16111 (gSharedMem[0x16111])
+#define eMultihitMoveEffect (gSharedMem[0x16112])
#define ewram16113 (gSharedMem[0x16113])
#define ewram16400 (gSharedMem + 0x16400)
#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
@@ -184,6 +194,7 @@ extern u8 gSharedMem[];
#define ewram17000 (&gSharedMem[0x17000])
#define eLearnMoveStruct (struct LearnMoveStruct *)(gSharedMem + 0x17000)
#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
+#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
#define ewram17002 (&gSharedMem[0x17002])
#define eFlashFireArr (*(struct Struct2017100 *)(gSharedMem + 0x17100))
#define B_BATTLESCRIPTS_STACK ((struct scriptsStack *) (gSharedMem + 0x17110))
@@ -191,13 +202,14 @@ extern u8 gSharedMem[];
#define B_FUNCTION_STACK ((struct funcStack *) (gSharedMem + 0x17140))
#define ewram17160 (gSharedMem[0x17160])
#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800))
+#define ewram17800_2 (&gSharedMem[0x17800])
#define EWRAM_17800 ((struct UnknownStruct1 *)(gSharedMem + 0x17800))
#define eTransformStatuses ((struct TransformStatus *)(gSharedMem + 0x17800))
-#define ewram17800_2 (&gSharedMem[0x17800])
#define ewram17810 ((struct Struct2017810 *) (gSharedMem + 0x17810))
#define EWRAM_17810 ((struct UnknownStruct3 *)(gSharedMem + 0x17810))
#define ewram17840 (*(struct Struct2017840 *) (gSharedMem + 0x17840))
#define ewram17850 ((struct UnknownStruct5 *)(gSharedMem + 0x17850))
+#define ewram17E00 ((u16 *)(gSharedMem + 0x17E00))
#define ewram_2018000 (*(struct PlayerRecords *)(gSharedMem + 0x18000))
#define EWRAM_18000 ((u16 *)(gSharedMem + 0x18000))
#define ewram18000 ((u16 *)(gSharedMem + 0x18000))
@@ -211,10 +223,17 @@ extern u8 gSharedMem[];
#define ewram18300 ((u16 *)(gSharedMem + 0x18300))
#define ewram18800 (&gSharedMem[0x18800])
#define ePokedexView2 (struct PokedexView *)(gSharedMem + 0x18800)
+#define ewram189a0 ((u16 *)(gSharedMem + 0x189A0))
+#define ewram18a20 ((u16 *)(gSharedMem + 0x18A20))
+#define ewram18a32 ((u16 *)(gSharedMem + 0x18A32))
+#define ewram18a80 ((u16 *)(gSharedMem + 0x18a80))
#define ewram19000 (&gSharedMem[0x19000])
+#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000)
+#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000))
+#define shared192D0 (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
+#define eContestAI ((struct ContestAIInfo *)(gSharedMem + 0x192E4))
#define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348))
-#define ewram19348 (*(struct Struct2019348 *)(gSharedMem + 0x19348))
#define ewram19800 (&gSharedMem[0x19800])
#define ePokedexView4 (struct PokedexView *)(gSharedMem + 0x19800)
#define ewram1A000 (&gSharedMem[0x1A000])
@@ -229,6 +248,7 @@ extern u8 gSharedMem[];
#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000))
#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar
#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000])
+#define eHOFPCScreenEffect (*(struct PCScreenEffectStruct *)(gSharedMem + 0x1c000))
#define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800))
#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000))
#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000))
@@ -239,6 +259,7 @@ extern u8 gSharedMem[];
#define eHallOfFame (struct HallOfFame *)(gSharedMem + 0x1E000)
#define HALL_OF_FAME_SHEET_0 ((u8 *)(gSharedMem + 0x1E000))
#define ewram1E000_2 (const u8 *)(gSharedMem + 0x1E000)
+#define eContestLinkSendBuffer gSharedMem + 0x1E000
#define HALL_OF_FAME_SHEET_1 ((u8 *)(gSharedMem + 0x1E800))
#define ewram_1f000 (*(struct DecoPCPointers *)(gSharedMem + 0x1f000))
#define ewramSavedPokeballsPocket ((struct ItemSlot *)(gSharedMem + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index 2d5693e40..49e9f23e3 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -36,5 +36,6 @@ bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
bool8 sub_8068A64(struct MapPosition *, u16);
u8 sub_8068F18(void);
+bool8 dive_warp(struct MapPosition *position, u16 b);
#endif
diff --git a/include/field_effect.h b/include/field_effect.h
index 9f71efba1..4d0e90767 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -103,7 +103,6 @@ void FieldEffectActiveListClear(void);
void FieldEffectActiveListAdd(u8 id);
void FieldEffectActiveListRemove(u8 id);
bool8 FieldEffectActiveListContains(u8 id);
-void sub_807DE38(u8 index);
void SpriteCB_PokeballGlow(struct Sprite *);
void SpriteCB_PokecenterMonitor(struct Sprite *);
@@ -252,6 +251,7 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite);
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
void sub_80878A8(void);
void sub_8087BA8(void);
+void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
extern s32 gFieldEffectArguments[8];
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 4377367f7..cd0cb6eab 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -27,5 +27,6 @@ void sub_8080F48(void);
void sub_8080F58(void);
void sub_8080F68(void);
void sub_8080F9C(void);
+void debug_sub_80888D8(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index f0b0bb5ab..cf3be36b2 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -337,7 +337,7 @@ void RemoveFieldObjectInternal(struct MapObject *);
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
u8 show_sprite(u8, u8, u8);
void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, const struct SubspriteTable **subspriteTables);
-u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority);
+u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 sub_805B410(u8, u8, s16, s16, u8, u8);
void sub_805B55C(s16 a, s16 b);
void sub_805B710(u16 i, u16 i1);
diff --git a/include/field_weather.h b/include/field_weather.h
index c96d4055e..0bdebf747 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -1,7 +1,15 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
-struct Sprite;
+#include "sprite.h"
+
+// Controls how the weather should be changing the screen palettes.
+enum {
+ WEATHER_PAL_STATE_CHANGING_WEATHER,
+ WEATHER_PAL_STATE_SCREEN_FADING_IN,
+ WEATHER_PAL_STATE_SCREEN_FADING_OUT,
+ WEATHER_PAL_STATE_IDLE,
+};
struct Weather
{
@@ -23,21 +31,17 @@ struct Weather
struct Sprite *sandstormSprites2[5];
} s2;
} sprites;
- u8 unknown_200[2][32];
- u8 filler_240[0x460-0x240];
- u8 unk460[2][32];
- u8 filler4A0[0x6B6-0x4A0];
- s8 unknown_6B6;
- u8 filler_6B7[0xC0-0xB7];
- s8 unknown_6C0;
- s8 unknown_6C1;
- u8 unknown_6C2;
- u8 unknown_6C3;
- u16 unknown_6C4;
- u8 unknown_6C6;
- u8 unknown_6C7;
- u8 unknown_6C8;
- u8 unknown_6C9;
+ u8 gammaShifts[19][32];
+ u8 altGammaShifts[19][32];
+ s8 gammaIndex;
+ s8 gammaTargetIndex;
+ u8 gammaStepDelay;
+ u8 gammaStepFrameCounter;
+ u16 fadeDestColor;
+ u8 palProcessingState;
+ u8 fadeScreenCounter;
+ bool8 readyForInit;
+ u8 taskId;
u8 unknown_6CA;
u8 unknown_6CB;
u16 initStep;
@@ -45,9 +49,9 @@ struct Weather
u8 currWeather;
u8 nextWeather;
u8 weatherGfxLoaded;
- u8 unknown_6D3;
- u8 unknown_6D4;
- u8 unknown_6D5;
+ bool8 weatherChangeComplete;
+ u8 weatherPicSpritePalIndex;
+ u8 altGammaSpritePalIndex;
u16 unknown_6D6;
u8 unknown_6D8;
u8 unknown_6D9;
@@ -70,8 +74,8 @@ struct Weather
u16 fog1ScrollPosX;
u16 unknown_6F0;
u16 unknown_6F2;
- u8 unknown_6F4[6];
- u8 unknown_6FA;
+ u8 lightenedFogSpritePals[6];
+ u8 lightenedFogSpritePalsCount;
u8 fog1SpritesCreated;
u16 unknown_6FC;
u16 unknown_6FE;
@@ -104,8 +108,8 @@ struct Weather
u16 currBlendEVB;
u16 targetBlendEVA;
u16 targetBlendEVB;
- u8 unknown_738;
- u8 unknown_739;
+ u8 blendUpdateCounter;
+ u8 blendFrameCounter;
u8 blendDelay;
u8 filler_73B[0x3C-0x3B];
s16 unknown_73C;
@@ -113,42 +117,35 @@ struct Weather
s16 unknown_740;
s16 unknown_742;
u8 filler_744[0xD-4];
- s8 unknown_74D;
- u8 unknown_74E;
+ s8 loadDroughtPalsIndex;
+ u8 loadDroughtPalsOffset;
};
void StartWeather(void);
-void DoWeatherEffect(u8 effect);
+void ChangeWeather(u8 weather);
void sub_807C988(u8 effect);
void sub_807C9B4(u8 effect);
void Task_WeatherInit(u8);
void Task_WeatherMain(u8);
void sub_807CAE8(void);
void nullsub_38(void);
-void sub_807CB10(void);
-void sub_807CC24(void);
-void sub_807CCAC(void);
-u8 sub_807CDC4(void);
-u8 sub_807CE24(void);
-u8 sub_807CE7C(void);
-void nullsub_39(void);
+void SetWeatherScreenFadeOut(void);
-// ASM
-void sub_807CEBC(u8, u8, s8);
-//void sub_807D1BC(u8, u8, u8, u8, u16);
-void sub_807D1BC(u8 a, u8 a2, s8 c, u8 d, u16 e);
-void sub_807D304(s8 a, u8 arg2, u16 c);
-void sub_807D424(u8, u16);
-// ...
-void fade_screen(u8, u8);
+enum
+{
+ FADE_FROM_BLACK,
+ FADE_TO_BLACK,
+ FADE_FROM_WHITE,
+ FADE_TO_WHITE,
+};
+
+void FadeScreen(u8, u8);
// ...
-void sub_807D78C(u8 tag);
-void sub_807D874(u8);
+void UpdateSpritePaletteWithWeather(u8 tag);
+void ApplyWeatherGammaShiftToPal(u8);
// ...
void Weather_SetBlendCoeffs(u8, u8);
// ...
-void sub_807DE68(void);
-// ...
void PlayRainSoundEffect(void);
// ...
void SetSav1Weather(u32);
@@ -158,9 +155,21 @@ void SetSav1WeatherFromCurrMapHeader(void);
void DoCurrentWeather(void);
void sub_8080750();
-bool8 sub_807D770(void);
-bool8 sub_807DDFC(void);
+bool8 IsWeatherNotFadingIn(void);
+bool8 IsWeatherChangeComplete(void);
void SetWeather(u32);
void UpdateWeatherPerDay(u16);
+void PreservePaletteInWeather(u8 index);
+void ResetPreservedPalettesInWeather(void);
+extern void ResetDroughtWeatherPaletteLoading(void);
+void ResetDroughtWeatherPaletteLoading(void);
+bool8 LoadDroughtWeatherPalettes(void);
+u8 GetCurrentWeather(void);
+void LoadCustomWeatherSpritePalette(const u16 *palette);
+
+
+extern struct Weather gWeather;
+
+extern struct Weather *const gWeatherPtr;
#endif // GUARD_WEATHER_H
diff --git a/include/fldeff_poison.h b/include/fldeff_poison.h
index fe3308ba9..abcacbd03 100644
--- a/include/fldeff_poison.h
+++ b/include/fldeff_poison.h
@@ -1,7 +1,7 @@
#ifndef GUARD_FLDEFF_POISON_H
#define GUARD_FLDEFF_POISON_H
-void DoFieldPoisonEffect(void);
-bool32 FieldPoisonEffectIsRunning(void);
+void FldeffPoison_Start(void);
+bool32 FldeffPoison_IsActive(void);
#endif // GUARD_FLDEFF_POISON_H
diff --git a/include/gba/gba.h b/include/gba/gba.h
index 42ae3cdde..349344031 100644
--- a/include/gba/gba.h
+++ b/include/gba/gba.h
@@ -7,5 +7,6 @@
#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
+#include "gba/isagbprint.h"
#endif // GUARD_GBA_GBA_H
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
new file mode 100644
index 000000000..c5eb456c3
--- /dev/null
+++ b/include/gba/isagbprint.h
@@ -0,0 +1,50 @@
+#ifndef GUARD_GBA_ISAGBPRINT_H
+#define GUARD_GBA_ISAGBPRINT_H
+
+#ifdef NDEBUG
+#define AGBPrintInit()
+#define AGBPutc(cChr)
+#define AGBPrint(pBuf)
+#define AGBPrintf(pBuf, ...)
+#define AGBPrintFlush1Block()
+#define AGBPrintFlush()
+#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
+#else
+void AGBPrintInit(void);
+void AGBPutc(const char cChr);
+void AGBPrint(const char *pBuf);
+void AGBPrintf(const char *pBuf, ...);
+void AGBPrintFlush1Block(void);
+void AGBPrintFlush(void);
+void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
+#endif
+
+#undef AGB_ASSERT
+#ifdef NDEBUG
+#define AGB_ASSERT(exp)
+#else
+#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
+#endif
+
+#undef AGB_WARNING
+#ifdef NDEBUG
+#define AGB_WARNING(exp)
+#else
+#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
+#endif
+
+// for matching purposes
+
+#ifdef NDEBUG
+#define AGB_ASSERT_EX(exp, file, line)
+#else
+#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
+#endif
+
+#ifdef NDEBUG
+#define AGB_WARNING_EX(exp, file, line)
+#else
+#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
+#endif
+
+#endif // GUARD_GBA_ISAGBPRINT_H
diff --git a/include/gba/macro.h b/include/gba/macro.h
index d9e6739b3..ab42c9da3 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -87,7 +87,7 @@
#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \
{ \
const void *_src = src; \
- void *_dest = dest; \
+ void *_dest = (void *)(dest); \
u32 _size = size; \
while (1) \
{ \
@@ -105,7 +105,7 @@
#define DmaClearLarge(dmaNum, dest, size, block, bit) \
{ \
- const void *_dest = dest; \
+ void *_dest = dest; \
u32 _size = size; \
while (1) \
{ \
@@ -129,7 +129,7 @@
#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
{ \
const void *_src = src; \
- void *_dest = dest; \
+ void *_dest = (void *)(dest); \
u32 _size = size; \
DmaCopy##bit(dmaNum, _src, _dest, _size); \
}
@@ -137,4 +137,87 @@
#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+#define DmaFillLarge(dmaNum, fillval, dest, size, block, bit) \
+{ \
+ void *_dest = (void *)(dest); \
+ u32 _size = (u32)(size); \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, fillval, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, fillval, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaFill16Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 16)
+#define DmaFill32Large(dmaNum, fillval, dest, size, block) DmaFillLarge(dmaNum, fillval, dest, size, block, 32)
+
+#define DmaFillDefvars(dmaNum, fillval, dest, size, bit) \
+{ \
+ void *_dest = (void *)(dest); \
+ u32 _size = (u##bit)(size); \
+ DmaFill##bit(dmaNum, fillval, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, fillval, dest, size) DmaFillDefvars(dmaNum, fillval, dest, size, 32)
+
+// from pokeemerald
+// Maximum amount of data we will transfer in one operation
+#define MAX_DMA_BLOCK_SIZE 0x1000
+
+#define MAX_DMA_REQUESTS 128
+
+#define DMA_REQUEST_COPY32 1
+#define DMA_REQUEST_FILL32 2
+#define DMA_REQUEST_COPY16 3
+#define DMA_REQUEST_FILL16 4
+
+#define Dma3CopyLarge_(src, dest, size, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaCopy##bit(3, _src, _dest, _size); \
+ break; \
+ } \
+ DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \
+ _src += MAX_DMA_BLOCK_SIZE; \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16)
+#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32)
+
+#define Dma3FillLarge_(value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaFill##bit(3, value, _dest, _size); \
+ break; \
+ } \
+ DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
+#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
+
#endif // GUARD_GBA_MACRO_H
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index a828cf131..30047c677 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -101,8 +101,7 @@ struct WarpEvent
struct CoordEvent
{
s16 x, y;
- u8 unk4;
- u8 filler_5;
+ u8 elevation;
u16 trigger;
u16 index;
u8 filler_A[0x2];
diff --git a/include/global.h b/include/global.h
index 4ae5de873..d0af4a4d1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -1,11 +1,11 @@
#ifndef GUARD_GLOBAL_H
#define GUARD_GLOBAL_H
+#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
#include "gba/gba.h"
-#include "config.h"
// IDE support
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__CYGWIN__)
#define _(x) x
#define __(x) x
#define INCBIN_U8 {0}
@@ -14,9 +14,9 @@
#define INCBIN_S8 {0}
#define INCBIN_S16 {0}
#define INCBIN_S32 {0}
-void * memcpy (void *, const void *, size_t);
-void * memset (void *, int, size_t);
-int strcmp (const char *, const char *);
+void *memcpy (void *, const void *, size_t);
+void *memset (void *, int, size_t);
+int strcmp (const char *, const char *);
#endif
// Prevent cross-jump optimization.
@@ -27,21 +27,13 @@ int strcmp (const char *, const char *);
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided\n")
-#define nonmatching(fndec, x) {\
-__attribute__((naked))\
-fndec\
-{\
- asm_unified(x);\
-}\
-}
-
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
#define POKEMON_SLOTS_NUMBER 412
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
-#define min(a, b) ((a) <= (b) ? (a) : (b))
+#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) >= (b) ? (a) : (b))
// why does GF hate 2d arrays
@@ -690,7 +682,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2B40*/ u16 unk2B40[6];
} easyChats;
/*0x2B4C*/ struct MailStruct mail[16];
- /*0x2D8C*/ u8 unk2D8C[4];
+ /*0x2D8C*/ u8 unk2D8C[4]; // What is this? Apparently it's supposed to be 64 bytes in size.
/*0x2D90*/ u8 filler_2D90[0x4];
/*0x2D94*/ union MauvilleMan mauvilleMan;
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
@@ -851,5 +843,6 @@ struct HallOfFame
extern struct HallOfFame gHallOfFame;
extern struct SaveBlock2 gSaveBlock2;
+extern u8 ewram[];
#endif // GUARD_GLOBAL_H
diff --git a/include/graphics.h b/include/graphics.h
index 488de07c0..889dc3916 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -51,11 +51,7 @@ extern const u8 gMonFootprint_QuestionMark[];
extern const u8 gContestNextTurnGfx[];
extern const u8 gContestNextTurnNumbersGfx[];
extern const u8 gContestNextTurnRandomGfx[];
-extern const u8 gBattleAnimSpriteSheet_264[];
-extern const u8 gBattleAnimSpritePalette_264[];
-extern const u8 gBattleAnimSpritePalette_265[];
-extern const u8 gBattleAnimSpritePalette_067[];
-extern const u8 gBattleAnimSpritePalette_068[];
+// extern const u8 gBattleAnimSpriteSheet_264[];
extern const u8 gContestApplauseGfx[];
extern const u8 gContestApplauseMeterGfx[];
extern const u16 gContestPal[];
@@ -2656,4 +2652,697 @@ extern const u8 gNamingScreenRightPointingTriangleTiles[];
extern const u8 gNamingScreenUnderscoreTiles[];
extern const u16 gNamingScreenPalettes[][16];
+extern const u8 gMenuWordGroupIndicator_Gfx[];
+extern const u8 gMenuWordGroupFrame_Gfx[];
+extern const u16 gMenuWordGroupIndicator_Pal[];
+extern const u16 gMenuWordGroupFrame1_Pal[];
+extern const u16 gMenuWordGroupFrame2_Pal[];
+
+extern const u8 gUnknown_08E94510[];
+extern const u8 gUnknown_08E94550[];
+extern const u8 gUnknown_08E94590[];
+extern const u8 gUnknown_08E945D0[];
+extern const u8 gUnknown_08E94AD0[];
+extern const u8 gUnknown_08E953D0[];
+extern const u8 gUnknown_08E954B0[];
+extern const u8 gUnknown_08E95774[];
+extern const u16 gUnknown_08E95A18[];
+extern const u16 gUnknown_08E95AB8[];
+extern const u16 gUnknown_08E95FB8[];
+
+extern const u16 gSlotMachineSpritePalette0[];
+extern const u16 gSlotMachineSpritePalette1[];
+extern const u16 gSlotMachineSpritePalette2[];
+extern const u16 gSlotMachineSpritePalette3[];
+extern const u16 gSlotMachineSpritePalette4[];
+extern const u16 gSlotMachineSpritePalette5[];
+extern const u16 gSlotMachineSpritePalette6[];
+extern const u8 gSlotMachine_Gfx[];
+
+extern const u8 gSlotMachineReelSymbol1Tiles[];
+extern const u8 gSlotMachineReelSymbol2Tiles[];
+extern const u8 gSlotMachineReelSymbol3Tiles[];
+extern const u8 gSlotMachineReelSymbol4Tiles[];
+extern const u8 gSlotMachineReelSymbol5Tiles[];
+extern const u8 gSlotMachineReelSymbol6Tiles[];
+extern const u8 gSlotMachineReelSymbol7Tiles[];
+extern const u8 gSlotMachineNumber0Tiles[];
+extern const u8 gSlotMachineNumber1Tiles[];
+extern const u8 gSlotMachineNumber2Tiles[];
+extern const u8 gSlotMachineNumber3Tiles[];
+extern const u8 gSlotMachineNumber4Tiles[];
+extern const u8 gSlotMachineNumber5Tiles[];
+extern const u8 gSlotMachineNumber6Tiles[];
+extern const u8 gSlotMachineNumber7Tiles[];
+extern const u8 gSlotMachineNumber8Tiles[];
+extern const u8 gSlotMachineNumber9Tiles[];
+extern const u8 gSpriteImage_8E98828[];
+extern const u8 gSpriteImage_8E98848[];
+extern const u8 gSpriteImage_8E98868[];
+extern const u8 gSpriteImage_8E988E8[];
+extern const u8 gSpriteImage_8E98968[];
+extern const u8 gSpriteImage_8E989E8[];
+extern const u8 gSpriteImage_8E98A68[];
+extern const u8 gSpriteImage_8E98AE8[];
+extern const u8 gSpriteImage_8E98B68[];
+extern const u8 gSpriteImage_8E98BE8[];
+extern const u8 gSpriteImage_8E98CE8[];
+extern const u8 gSpriteImage_8E98DE8[];
+extern const u8 gSpriteImage_8E98FE8[];
+extern const u8 gSpriteImage_8E991E8[];
+extern const u8 gSpriteImage_8E993E8[];
+extern const u8 gUnknownPalette_08E997E8[];
+extern const u8 gSpriteImage_8E99808[];
+extern const u8 gSlotMachineReelTimeLights_Gfx[];
+extern const u8 gUnknown_08E99FB0[];
+extern const u8 gUnknown_08E9A100[];
+extern const u8 gUnknown_08E9A300[];
+extern const u8 gUnknown_08E9AB00[];
+extern const u8 gUnknown_08E9AB40[];
+extern const u8 gUnknown_08E9AB60[];
+extern const u8 gUnknown_08E9ABB4[];
+extern const u8 gUnknown_08E9AC2C[];
+extern const u8 gUnknown_08E9AC4C[];
+
+extern const u8 gInterviewOutlineCursorTiles[];
+extern const u8 gTitleScreenPressStart_Gfx[];
+extern const u16 gTitleScreenLogoShinePalette[];
+extern const u8 gUnknown_08E9D8CC[];
+extern const u8 gVersionTiles[];
+extern const u16 gUnknown_08E9F624[];
+extern const u8 gUnknown_08E9F7E4[];
+
+extern const u8 gCableCar_Gfx[];
+extern const u8 gCableCarDoor_Gfx[];
+extern const u8 gCableCarCord_Gfx[];
+extern const u16 gCableCar_Pal[];
+extern const u16 gCableCarBG_Pal[];
+extern const u8 gCableCarBG_Gfx[];
+
+extern const u8 gPSSMenuHeader_Gfx[];
+extern const u8 gPSSMenuHeader_Tilemap[];
+extern const u16 gPSSMenu1_Pal[];
+extern const u16 gPSSMenu2_Pal[];
+extern const u8 gPSSMenuMisc_Gfx[];
+extern const u8 gPSSMenuMisc_Tilemap[];
+extern const u16 gPSSMenu3_Pal[];
+extern const u16 gPSSMenu4_Pal[];
+
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_000;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_001;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_002;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_003;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_004;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_005;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_006;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_007;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_008;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_009;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_010;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_011;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_012;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_013;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_014;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_015;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_016;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_017;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_018;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_019;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_020;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_021;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_021;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_023;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_024;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_025;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_026;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_027;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_028;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_029;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_030;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_031;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_032;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_033;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_034;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_035;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_036;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_037;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_038;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_039;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_040;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_041;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_042;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_043;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_044;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_045;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_046;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_046;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_048;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_048;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_050;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_051;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_052;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_053;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_054;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_055;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_056;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_057;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_058;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_059;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_060;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_061;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_062;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_063;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_064;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_065;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_066;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_070;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_071;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_072;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_073;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_074;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_075;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_076;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_077;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_078;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_079;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_080;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_081;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_082;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_083;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_084;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_085;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_086;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_087;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_088;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_089;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_090;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_091;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_092;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_093;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_094;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_095;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_096;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_097;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_098;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_099;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_100;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_101;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_102;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_103;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_104;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_105;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_106;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_107;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_108;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_109;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_110;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_111;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_112;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_113;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_114;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_115;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_116;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_117;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_118;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_119;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_120;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_121;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_122;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_123;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_124;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_125;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_126;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_127;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_128;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_129;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_130;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_131;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_132;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_133;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_134;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_135;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_136;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_137;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_138;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_139;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_140;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_141;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_142;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_143;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_144;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_145;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_146;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_147;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_148;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_149;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_150;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_151;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_152;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_153;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_154;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_155;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_156;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_157;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_158;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_159;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_160;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_161;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_162;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_163;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_166;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_171;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_173;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_174;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_175;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_176;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_177;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_178;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_179;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_180;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_181;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_182;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_183;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_184;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_185;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_186;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_187;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_188;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_189;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_190;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_191;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_192;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_193;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_194;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_195;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_196;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_197;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_198;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_199;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_200;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_201;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_202;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_203;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_204;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_205;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_206;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_207;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_208;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_209;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_210;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_211;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_212;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_213;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_214;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_215;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_210;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_217;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_218;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_210;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_220;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_221;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_222;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_223;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_224;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_225;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_226;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_227;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_228;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_229;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_230;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_231;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_232;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_233;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_234;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_235;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_235;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_235;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_238;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_239;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_240;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_241;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_242;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_243;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_244;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_245;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_246;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_247;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_248;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_249;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_250;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_251;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_252;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_253;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_254;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_255;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_256;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_257;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_258;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_260;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_261;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_262;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_263;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_264;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_266;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_269;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_270;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_271;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_272;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_273;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_274;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_275;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_276;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_277;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_278;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_279;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_280;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_281;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_282;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_283;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_284;
+extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_285;
+
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_000;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_001;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_002;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_003;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_004;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_005;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_006;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_007;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_008;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_009;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_010;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_011;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_012;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_013;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_014;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_015;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_016;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_016;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_018;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_019;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_020;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_021;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_022;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_023;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_024;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_025;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_026;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_027;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_028;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_029;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_030;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_031;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_032;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_033;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_033;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_033;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_036;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_036;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_038;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_039;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_038;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_038;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_042;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_043;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_044;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_045;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_046;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_047;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_048;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_049;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_050;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_050;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_050;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_026;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_054;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_050;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_056;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_057;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_058;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_059;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_060;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_061;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_062;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_063;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_064;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_065;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_066;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_067;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_068;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_065;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_070;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_070;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_072;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_073;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_074;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_075;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_076;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_076;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_078;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_078;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_080;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_081;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_082;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_083;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_084;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_085;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_086;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_087;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_088;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_089;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_090;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_091;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_092;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_093;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_094;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_095;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_096;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_097;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_094;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_099;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_100;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_101;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_101;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_103;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_104;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_105;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_105;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_107;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_107;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_109;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_109;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_111;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_112;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_113;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_114;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_115;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_116;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_117;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_118;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_119;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_120;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_121;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_122;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_122;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_124;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_125;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_126;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_127;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_128;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_128;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_130;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_130;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_132;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_133;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_133;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_135;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_136;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_135;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_135;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_139;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_140;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_141;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_141;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_143;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_144;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_139;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_115;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_147;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_148;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_148;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_150;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_150;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_152;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_153;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_154;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_155;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_156;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_157;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_158;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_159;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_160;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_161;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_162;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_163;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_164;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_165;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_166;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_167;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_168;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_169;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_170;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_171;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_172;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_174;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_175;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_176;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_177;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_178;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_179;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_182;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_183;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_184;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_185;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_186;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_187;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_188;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_189;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_190;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_191;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_192;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_193;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_194;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_195;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_196;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_197;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_198;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_199;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_200;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_201;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_202;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_203;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_204;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_205;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_206;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_207;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_209;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_210;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_211;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_215;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_216;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_217;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_218;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_219;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_220;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_221;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_222;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_223;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_224;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_225;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_226;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_228;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_229;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_230;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_231;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_233;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_234;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_235;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_236;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_237;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_238;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_239;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_240;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_241;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_242;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_243;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_244;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_245;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_248;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_249;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_251;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_252;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_253;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_254;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_255;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_256;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_257;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_258;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_259;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_260;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_261;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_262;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_263;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_264;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_265;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_266;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_267;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_268;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_269;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_270;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_271;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_272;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_274;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_277;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_278;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_279;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_280;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_281;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_282;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_283;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_284;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_285;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_286;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_287;
+extern struct CompressedSpritePalette gBattleAnimSpritePalette_288;
+
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_00;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_02;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_03;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_04;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_07;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_09;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_11;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_12;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_15;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_16;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_17;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_20;
+extern struct BattleAnimBackground gBattleAnimBackgroundImage_21;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_00;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_02;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_03;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_04;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_07;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_09;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_11;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_12;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_15;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_16;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_17;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_18;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_20;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_21;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_22;
+extern struct BattleAnimBackground gBattleAnimBackgroundPalette_24;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_00;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_02;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_03;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_04;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_05;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_06;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_07;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_08;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_09;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_10;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_11;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_12;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_13;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_14;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_15;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_16;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_17;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_20;
+extern struct BattleAnimBackground gBattleAnimBackgroundTilemap_21;
+
#endif // GUARD_GRAPHICS_H
diff --git a/include/hof_pc.h b/include/hof_pc.h
new file mode 100644
index 000000000..c6df4e9a1
--- /dev/null
+++ b/include/hof_pc.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_hof_pc_H
+#define GUARD_hof_pc_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void ReturnFromHallOfFamePC(void);
+
+#endif //GUARD_hof_pc_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 29618f347..726d36789 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -27,7 +27,7 @@ void CleanUpItemMenuMessage(u8);
void CleanUpOverworldMessage(u8);
void ExecuteItemUseFromBlackPalette(void);
void sub_80A5D04(void);
-void sub_80A6300(void);
+void ItemMenu_LoadSellMenu(void);
void sub_80A68CC();
void sub_80A6A30(void);
bool32 sub_80A6D1C(void);
diff --git a/include/link.h b/include/link.h
index 367add625..6a7212645 100644
--- a/include/link.h
+++ b/include/link.h
@@ -167,7 +167,7 @@ u8 GetMultiplayerId(void);
u8 bitmask_all_link_players_but_self(void);
bool8 SendBlock(u8, void *, u16);
bool8 sub_8007E9C(u8);
-bool8 sub_8007ECC(void);
+bool8 IsLinkTaskFinished(void);
u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void);
void ResetBlockReceivedFlag(u8);
@@ -194,5 +194,9 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]);
void LinkVSync(void);
void Timer3Intr(void);
void SerialCB(void);
+void LinkTestScreen(void);
+void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3);
+void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0);
+u32 sub_8007E40(void);
#endif // GUARD_LINK_H
diff --git a/include/m4a.h b/include/m4a.h
index 7d016c98b..57a749a58 100644
--- a/include/m4a.h
+++ b/include/m4a.h
@@ -8,6 +8,7 @@ void m4aSoundVSync(void);
void m4aSoundInit(void);
void m4aSoundMain(void);
void m4aSongNumStart(u16);
+void m4aSongNumStartOrChange(u16);
void m4aSongNumStop(u16 n);
void m4aMPlayAllStop(void);
void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
diff --git a/asm/macros.inc b/include/macros.inc
index 6d8657892..f34353079 100644
--- a/asm/macros.inc
+++ b/include/macros.inc
@@ -1,9 +1,9 @@
- .include "asm/macros/asm.inc"
- .include "asm/macros/function.inc"
- .include "asm/macros/movement.inc"
- .include "asm/macros/pokemon_data.inc"
- .include "asm/macros/ec.inc"
- .include "asm/macros/map.inc"
+ .include "include/macros/asm.inc"
+ .include "include/macros/function.inc"
+ .include "include/macros/movement.inc"
+ .include "include/macros/pokemon_data.inc"
+ .include "include/macros/ec.inc"
+ .include "include/macros/map.inc"
.macro region_map_location x, y, width, height, name
.byte \x
diff --git a/asm/macros/asm.inc b/include/macros/asm.inc
index 26b2707ca..26b2707ca 100644
--- a/asm/macros/asm.inc
+++ b/include/macros/asm.inc
diff --git a/asm/macros/battle_ai_script.inc b/include/macros/battle_ai_script.inc
index 679e30340..679e30340 100644
--- a/asm/macros/battle_ai_script.inc
+++ b/include/macros/battle_ai_script.inc
diff --git a/asm/macros/battle_anim.inc b/include/macros/battle_anim.inc
index 4ff845032..4ff845032 100644
--- a/asm/macros/battle_anim.inc
+++ b/include/macros/battle_anim.inc
diff --git a/asm/macros/battle_script.inc b/include/macros/battle_script.inc
index e4fa0c454..e4fa0c454 100644
--- a/asm/macros/battle_script.inc
+++ b/include/macros/battle_script.inc
diff --git a/asm/macros/contest_ai_script.inc b/include/macros/contest_ai_script.inc
index 05d70e351..05d70e351 100644
--- a/asm/macros/contest_ai_script.inc
+++ b/include/macros/contest_ai_script.inc
diff --git a/asm/macros/ec.inc b/include/macros/ec.inc
index d3fd45c2f..d3fd45c2f 100644
--- a/asm/macros/ec.inc
+++ b/include/macros/ec.inc
diff --git a/asm/macros/event.inc b/include/macros/event.inc
index 5176beff3..fcbd3a055 100644
--- a/asm/macros/event.inc
+++ b/include/macros/event.inc
@@ -229,10 +229,10 @@
@ Generic compare macro which attempts to deduce argument types based on their values
@ Any values between 0x4000 to 0x4FFF and 0x8000 to 0x8FFF are considered event variable identifiers
.macro compare arg1, arg2
- .if ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && ((\arg2 >> 12) == 4 || (\arg2 >> 12) == 8)
- compare_var_to_var \arg1, \arg2
- .elseif ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && (\arg2 >= 0 && \arg2 <= 0xFFFF)
- compare_var_to_value \arg1, \arg2
+ .if (((\arg1) >> 12) == 4 || ((\arg1) >> 12) == 8) && (((\arg2) >> 12) == 4 || ((\arg2) >> 12) == 8)
+ compare_var_to_var (\arg1), (\arg2)
+ .elseif (((\arg1) >> 12) == 4 || ((\arg1) >> 12) == 8) && ((\arg2) >= -0xFFFF && (\arg2) <= 0xFFFF)
+ compare_var_to_value (\arg1), ((\arg2) & 0xFFFF)
.else
.error "Invalid arguments for 'compare'"
.endif
@@ -1361,10 +1361,94 @@
@ Supplementary
- .macro goto_if_eq dest
+ .macro goto_if_trainer_not_defeated opponent, dest
+ checktrainerflag \opponent
+ goto_if 0, \dest
+ .endm
+
+ .macro goto_if_trainer_defeated opponent, dest
+ checktrainerflag \opponent
+ goto_if 1, \dest
+ .endm
+
+ .macro call_if_trainer_not_defeated opponent, dest
+ checktrainerflag \opponent
+ call_if 0, \dest
+ .endm
+
+ .macro call_if_trainer_defeated opponent, dest
+ checktrainerflag \opponent
+ call_if 1, \dest
+ .endm
+
+ .macro goto_if_unset flag, dest
+ checkflag \flag
+ goto_if 0, \dest
+ .endm
+
+ .macro goto_if_set flag, dest
+ checkflag \flag
+ goto_if 1, \dest
+ .endm
+
+ .macro goto_if_lt dest @ LESS THAN
+ goto_if 0, \dest
+ .endm
+
+ .macro goto_if_eq dest @ EQUAL
goto_if 1, \dest
.endm
+ .macro goto_if_gt dest @ GREATER THAN
+ goto_if 2, \dest
+ .endm
+
+ .macro goto_if_le dest @ LESS THAN OR EQUAL
+ goto_if 3, \dest
+ .endm
+
+ .macro goto_if_ge dest @ GREATER THAN OR EQUAL
+ goto_if 4, \dest
+ .endm
+
+ .macro goto_if_ne dest @ NOT EQUAL
+ goto_if 5, \dest
+ .endm
+
+ .macro call_if_unset flag, dest
+ checkflag \flag
+ call_if 0, \dest
+ .endm
+
+ .macro call_if_set flag, dest
+ checkflag \flag
+ call_if 1, \dest
+ .endm
+
+ .macro call_if_lt dest @ LESS THAN
+ call_if 0, \dest
+ .endm
+
+ .macro call_if_eq dest @ EQUAL
+ call_if 1, \dest
+ .endm
+
+ .macro call_if_gt dest @ GREATER THAN
+ call_if 2, \dest
+ .endm
+
+ .macro call_if_le dest @ LESS THAN OR EQUAL
+ call_if 3, \dest
+ .endm
+
+ .macro call_if_ge dest @ GREATER THAN OR EQUAL
+ call_if 4, \dest
+ .endm
+
+ .macro call_if_ne dest @ NOT EQUAL
+ call_if 5, \dest
+ .endm
+
.macro switch var
copyvar VAR_SPECIAL_0, \var
.endm
diff --git a/asm/macros/field_effect_script.inc b/include/macros/field_effect_script.inc
index d5895b0ef..d5895b0ef 100644
--- a/asm/macros/field_effect_script.inc
+++ b/include/macros/field_effect_script.inc
diff --git a/asm/macros/function.inc b/include/macros/function.inc
index 67fb373a8..67fb373a8 100644
--- a/asm/macros/function.inc
+++ b/include/macros/function.inc
diff --git a/asm/macros/m4a.inc b/include/macros/m4a.inc
index 6c5abc09b..6c5abc09b 100644
--- a/asm/macros/m4a.inc
+++ b/include/macros/m4a.inc
diff --git a/asm/macros/map.inc b/include/macros/map.inc
index db37d9346..db37d9346 100644
--- a/asm/macros/map.inc
+++ b/include/macros/map.inc
diff --git a/asm/macros/movement.inc b/include/macros/movement.inc
index 674ce7169..674ce7169 100644
--- a/asm/macros/movement.inc
+++ b/include/macros/movement.inc
diff --git a/asm/macros/music_voice.inc b/include/macros/music_voice.inc
index b7a9e7f8d..b7a9e7f8d 100644
--- a/asm/macros/music_voice.inc
+++ b/include/macros/music_voice.inc
diff --git a/asm/macros/pokemon_data.inc b/include/macros/pokemon_data.inc
index b0a5f22e3..b0a5f22e3 100644
--- a/asm/macros/pokemon_data.inc
+++ b/include/macros/pokemon_data.inc
diff --git a/include/main.h b/include/main.h
index ff9bb89c7..78403225e 100644
--- a/include/main.h
+++ b/include/main.h
@@ -51,6 +51,8 @@ extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
+extern u16 gKeyRepeatStartDelay;
+
void AgbMain(void);
void SetMainCallback2(MainCallback callback);
void InitKeys(void);
diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h
index 60f2dc48c..ad877a014 100644
--- a/include/matsuda_debug_menu.h
+++ b/include/matsuda_debug_menu.h
@@ -3,7 +3,6 @@
#define BIT(n) (1 << (n))
-void sub_80AB184(void);
void sub_80AA280(u8);
void sub_80AA5E8(u8);
void sub_80AA658(u8);
diff --git a/include/menu.h b/include/menu.h
index 9a5ca62a0..3295cd5c5 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -26,45 +26,43 @@ extern u16 gMenuMessageBoxContentTileOffset;
void CloseMenu(void);
void AppendToList(u8 *list, u8 *pindex, u32 value);
-void InitMenuWindow(const struct WindowConfig *);
-void MultistepInitMenuWindowBegin(const struct WindowConfig *);
+void InitMenuWindow(const struct WindowTemplate *);
+void MultistepInitMenuWindowBegin(const struct WindowTemplate *);
bool32 MultistepInitMenuWindowContinue(void);
-void unref_sub_8071DA4(struct WindowConfig *, u16);
-void MenuLoadTextWindowGraphics_OverrideFrameType(u8);
-void MenuLoadTextWindowGraphics(void);
-void BasicInitMenuWindow(const struct WindowConfig *);
-void MenuPrint(const u8 *, u8, u8);
-void MenuZeroFillWindowRect(u8, u8, u8, u8);
-void MenuFillWindowRectWithBlankTile(u8, u8, u8, u8);
-void MenuZeroFillScreen(void);
-void MenuDrawTextWindow(u8, u8, u8, u8);
+void unref_sub_8071DA4(struct WindowTemplate *, u16);
+void Menu_LoadStdFrameGraphicsOverrideStyle(u8);
+void Menu_LoadStdFrameGraphics(void);
+void BasicInitMenuWindow(const struct WindowTemplate *);
+void Menu_PrintText(const u8 *, u8, u8);
+void Menu_EraseWindowRect(u8, u8, u8, u8);
+void Menu_BlankWindowRect(u8, u8, u8, u8);
+void Menu_EraseScreen(void);
+void Menu_DrawStdWindowFrame(u8, u8, u8, u8);
void sub_8071F40(const u8 *);
void sub_8071F60(u8, u8, u8);
u16 unref_sub_8071F98(u8, u8);
void unref_sub_8071FBC(u16, u8, u8, u8, u8);
-void MenuDisplayMessageBox(void);
+void Menu_DisplayDialogueFrame(void);
void MenuPrintMessage(const u8 *, u8, u8);
void MenuPrintMessageDefaultCoords(const u8 *);
-void MenuSetText(const u8 *);
-u8 MenuUpdateWindowText(void);
+void Menu_SetText(const u8 *);
+u8 Menu_UpdateWindowText(void);
u8 unref_sub_8072098(void);
-void sub_80720B0(void);
-u8 MoveMenuCursor(s8);
-u8 MoveMenuCursorNoWrap(s8);
-u8 GetMenuCursorPos(void);
-s8 ProcessMenuInput(void);
-s8 ProcessMenuInputNoWrap(void);
-u8 MoveMenuCursor3(s8);
-u8 MoveMenuCursor4(s8);
+void Menu_ClearWindowText(void);
+u8 Menu_MoveCursor(s8);
+u8 Menu_MoveCursorNoWrap(s8);
+u8 Menu_GetCursorPos(void);
+s8 Menu_ProcessInput(void);
+s8 Menu_ProcessInputNoWrap(void);
void sub_807274C(u8, u8, u8, u8, const struct MenuAction[], u8, u32);
-s8 sub_80727CC(void);
-u8 sub_807288C(u8);
-void PrintMenuItems(u8, u8, u8, const struct MenuAction[]);
-void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction2 menuItems[], const u8 *order);
+s8 Menu_ProcessInputGridLayout(void);
+u8 Menu_GetColumnXCoord(u8);
+void Menu_PrintItems(u8, u8, u8, const struct MenuAction[]);
+void Menu_PrintItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction2 menuItems[], const u8 *order);
void InitYesNoMenu(u8, u8, u8);
void DisplayYesNoMenu(u8, u8, u32);
-s8 ProcessMenuInputNoWrap_(void);
-u8 MenuPrint_PixelCoords(const u8 *, u8, u16, u8);
+s8 Menu_ProcessInputNoWrap_(void);
+u8 Menu_PrintTextPixelCoords(const u8 *, u8, u16, u8);
u8 sub_8072A18(const u8 *, u8, u16, u8, u32);
u8 unref_sub_8072A5C(u8 *, u8 *, u8, u16, u8, u32);
int sub_8072AB0(const u8 *, u8, u16, u8, u8, u32);
@@ -75,16 +73,15 @@ u8 *sub_8072C14(u8 *, s32, u8, u8);
u8 *sub_8072C44(u8 *, s32, u8, u8);
u8 *sub_8072C74(u8 *, const u8 *, u8, u8);
u8 sub_8072CA4(const u8 *s);
-u8 sub_8072CBC(void);
-void sub_8072CD4(u8 *, u8 *, u8 *);
-u32 MenuUpdateWindowText_OverrideLineLength(u8);
+u8 Menu_GetTextWindowPaletteNum(void);
+void Menu_GetTextColors(u8 *, u8 *, u8 *);
+u32 Menu_UpdateWindowTextOverrideLineLength(u8);
struct Window * unref_sub_8072D0C(void);
u8 InitMenu(u8, u8, u8, u8, u8, u8);
-void RedrawMenuCursor(u8, u8);
void unref_sub_8072DC0(void);
void sub_8072DCC(u8);
void sub_8072DDC(u8);
-void HandleDestroyMenuCursors(void);
+void Menu_DestroyCursor(void);
#if GERMAN
u8 *de_sub_8073174(u8 *name, const u8 *format);
diff --git a/include/menu_cursor.h b/include/menu_cursor.h
index ca82ef244..8d9a4f23c 100644
--- a/include/menu_cursor.h
+++ b/include/menu_cursor.h
@@ -4,11 +4,11 @@
#include "sprite.h"
void sub_814A590(void);
-u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+u8 MenuCursor_Create814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4);
u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3);
void DestroyMenuCursor(void);
-void sub_814A880(u8 a1, u8 a2);
+void MenuCursor_SetPos814A880(u8 a1, u8 a2);
void sub_814A904(void);
void sub_814A958(u8 a1);
void sub_814AABC(void (*callback)(struct Sprite *));
@@ -16,8 +16,8 @@ void sub_814AAF8(u16 a1);
void sub_814AB84(void);
void unref_sub_814ABE4(int a1);
u8 CreateBlendedOutlineCursor(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
-void sub_814AD44(void);
-void sub_814AD7C(u8 a1, u8 a2);
+void MenuCursor_Destroy814AD44(void);
+void MenuCursor_SetPos814AD7C(u8 a1, u8 a2);
void sub_814ADC8(void);
void sub_814ADF4(u8 a1);
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 993d698bd..a1c872c73 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -9,7 +9,22 @@ struct YesNoFuncTable
void (*noFunc)(u8);
};
-void sub_80F9020(void);
+// SetVerticalScrollIndicators enums
+enum
+{
+ TOP_ARROW,
+ BOTTOM_ARROW,
+ LEFT_ARROW, // Bag arrows
+ RIGHT_ARROW
+};
+
+enum
+{
+ VISIBLE,
+ INVISIBLE
+};
+
+void ClearBGTilemapBuffers(void);
void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16);
void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *);
void sub_80F914C(u8, const struct YesNoFuncTable *);
@@ -19,21 +34,21 @@ bool8 sub_80F92F4(u16);
bool8 sub_80F931C(u16);
bool8 sub_80F9344(void);
void sub_80F9368(void);
-void sub_80F9438(void);
-void sub_80F944C(void);
+void ClearVideoCallbacks(void);
+void ClearVerticalScrollIndicatorPalettes(void);
void sub_80F9480(u8 *, u8);
void sub_80F94A4(u8, u8 *, s16, s16);
void sub_80F94F8(u8 *);
void sub_80F9520(u8 *, u8);
void CreateVerticalScrollIndicators(u8, u16, u16);
-void sub_80F979C(u8, bool8);
+void SetVerticalScrollIndicators(u8, bool8);
void DestroyVerticalScrollIndicator(u8);
void LoadScrollIndicatorPalette(void);
void BuyMenuFreeMemory(void);
-void sub_80F98A4(u8);
+void StopVerticalScrollIndicators(u8);
void StartVerticalScrollIndicators(u8);
void sub_80F98DC(u8);
void PauseVerticalScrollIndicator(u8);
-void sub_80F9988(u8, u8);
+void SetVerticalScrollIndicatorPriority(u8, u8);
#endif // GUARD_MENU_HELPERS_H
diff --git a/include/mon_markings.h b/include/mon_markings.h
new file mode 100644
index 000000000..d06264865
--- /dev/null
+++ b/include/mon_markings.h
@@ -0,0 +1,31 @@
+#ifndef POKERUBY_MON_MARKINGS_H
+#define POKERUBY_MON_MARKINGS_H
+
+struct PokemonMarkMenu
+{
+ /*0x0000*/ u16 baseTileTag;
+ /*0x0002*/ u16 basePaletteTag;
+ /*0x0004*/ u8 markings; // bit flags
+ /*0x0005*/ s8 cursorPos;
+ /*0x0006*/ bool8 markingsArray[4];
+ /*0x000A*/ u8 cursorBaseY;
+ /*0x000B*/ bool8 spriteSheetLoadRequired;
+ /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
+ /*0x0014*/ struct Sprite *menuMarkingSprites[4];
+ /*0x0024*/ struct Sprite *menuTextSprite;
+ /*0x0028*/ const u8 *frameTiles;
+ /*0x002C*/ const u16 *framePalette;
+ /*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
+ /*0x1030*/ u8 filler1030[0x80];
+ /*0x10B0*/ u8 tileLoadState;
+}; // 10b4
+
+void sub_80F727C(struct PokemonMarkMenu *ptr);
+void sub_80F7404(void);
+void sub_80F7418(u8 markings, s16 x, s16 y);
+void sub_80F7470(void);
+bool8 sub_80F7500(void);
+struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette);
+void sub_80F7A10(u8 markings, void *dest);
+
+#endif //POKERUBY_MON_MARKINGS_H
diff --git a/include/money.h b/include/money.h
index 9f4ef71bc..e3a3f898d 100644
--- a/include/money.h
+++ b/include/money.h
@@ -7,7 +7,7 @@ void RemoveMoney(u32 *, u32);
void GetMoneyAmountText(u8 *buffer, u32 arg1, u8 arg2);
void PrintMoneyAmount(u32 arg0, u8 arg1, u8 x, u8 y);
void sub_80B7AEC(u32, u8 left, u8 top);
-void sub_80B7B34(u8, u8, int);
+void Draw10000Sprite(u8, u8, int);
void UpdateMoneyWindow(u32, u8, u8);
void OpenMoneyWindow(u32, u8, u8);
void CloseMoneyWindow(u8, u8);
diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h
index 8801789d9..c1f5fbb8f 100644
--- a/include/mystery_event_menu.h
+++ b/include/mystery_event_menu.h
@@ -2,5 +2,6 @@
#define GUARD_MYSTERY_EVENT_MENU_H
void CB2_InitMysteryEventMenu(void);
+void debug_sub_815D15C(void);
#endif // GUARD_MYSTERY_EVENT_MENU_H
diff --git a/include/overworld.h b/include/overworld.h
index 0954f1b63..50089593f 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -235,4 +235,6 @@ void CreateLinkPlayerSprite(u8);
void SpriteCB_LinkPlayer(struct Sprite *);
void sub_805465C(void);
+void CB2_InitTestMenu(void);
+
#endif // GUARD_ROM4_H
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
new file mode 100644
index 000000000..d3f6d22de
--- /dev/null
+++ b/include/pc_screen_effect.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_PC_SCREEN_EFFECT_H
+#define GUARD_PC_SCREEN_EFFECT_H
+
+struct PCScreenEffectStruct
+{
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag;
+ /*0x04*/ u16 unk04;
+ /*0x06*/ u16 unk06;
+ /*0x08*/ u16 unk08;
+ /*0x0A*/ u16 unk0A;
+ /*0x0C*/ s16 unk0C;
+ /*0x10*/ u32 selectedPalettes;
+};
+
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct);
+bool8 sub_80C5DCC(void);
+void sub_80C5E38(struct PCScreenEffectStruct *unkStruct);
+bool8 sub_80C5F98(void);
+
+#endif //GUARD_PC_SCREEN_EFFECT_H
diff --git a/include/pokeblock.h b/include/pokeblock.h
index 6720653a0..cda598f6c 100644
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -3,12 +3,20 @@
enum
{
- PBLOCK_CLR_BLACK,
- PBLOCK_CLR_RED,
+ PBLOCK_CLR_RED = 1,
PBLOCK_CLR_BLUE,
PBLOCK_CLR_PINK,
PBLOCK_CLR_GREEN,
- PBLOCK_CLR_YELLOW
+ PBLOCK_CLR_YELLOW,
+ PBLOCK_CLR_PURPLE,
+ PBLOCK_CLR_INDIGO,
+ PBLOCK_CLR_BROWN,
+ PBLOCK_CLR_LITEBLUE,
+ PBLOCK_CLR_OLIVE,
+ PBLOCK_CLR_GRAY,
+ PBLOCK_CLR_BLACK,
+ PBLOCK_CLR_WHITE,
+ PBLOCK_CLR_GOLD,
};
enum
diff --git a/include/pokedex.h b/include/pokedex.h
index d8416889a..73877bead 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -23,6 +23,6 @@ s8 GetSetPokedexFlag(u16, u8);
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
bool8 CompletedHoennPokedex(void);
-u16 sub_8090FF4(void);
+bool16 CompletedNationalPokedex(void);
#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
index a1c30f1f3..169045c0c 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -258,7 +258,6 @@ struct BoxPokemon
/*0x13*/ u8 isBadEgg:1;
u8 hasSpecies:1;
u8 isEgg:1;
- u8 unused:5;
/*0x14*/ u8 otName[OT_NAME_LENGTH];
/*0x1B*/ u8 markings;
/*0x1C*/ u16 checksum;
@@ -351,6 +350,8 @@ struct BattlePokemon
/*0x54*/ u32 otId;
};
+// Shouldn't these be the same enum?
+
enum
{
STAT_STAGE_HP, // 0
@@ -363,6 +364,16 @@ enum
STAT_STAGE_EVASION, // 7
};
+enum
+{
+ STAT_HP, // 0
+ STAT_ATK, // 1
+ STAT_DEF, // 2
+ STAT_SPD, // 3
+ STAT_SPATK, // 4
+ STAT_SPDEF, // 5
+};
+
struct BaseStats
{
/*0x00*/ u8 baseHP;
@@ -405,9 +416,8 @@ struct BattleMove
u8 pp;
u8 secondaryEffectChance;
u8 target;
- u8 priority;
+ s8 priority;
u8 flags;
- u8 pad[3];
};
#define FLAG_MAKES_CONTACT 0x1
@@ -418,10 +428,10 @@ struct BattleMove
struct PokemonStorage
{
- /*0x00*/ u8 currentBox;
- /*0x01*/ struct BoxPokemon boxes[14][30];
- u8 boxNames[14][9];
- u8 unkArray[14];
+ /*0x0000*/ u8 currentBox;
+ /*0x0004*/ struct BoxPokemon boxes[14][30];
+ /*0x8344*/ u8 boxNames[14][9];
+ /*0x83c2*/ u8 wallpaper[14];
};
struct SpindaSpot
@@ -492,8 +502,8 @@ extern struct Pokemon gEnemyParty[PARTY_SIZE];
extern const u8 *const gItemEffectTable[];
extern const struct BaseStats gBaseStats[];
extern const u32 gExperienceTables[][101];
-extern const u16 *const gLevelUpLearnsets[];
-extern const struct EvolutionData gEvolutionTable[];
+extern const u16 *gLevelUpLearnsets[];
+extern struct Evolution gEvolutionTable[][5];
extern struct PokemonStorage gPokemonStorage;
void ZeroBoxMonData(struct BoxPokemon *boxMon);
@@ -512,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
void CalculateMonStats(struct Pokemon *mon);
-void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest);
+void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
@@ -613,8 +623,12 @@ bool8 IsPokeSpriteNotFlipped(u16);
u8 GetLevelUpMovesBySpecies(u16, u16 *);
u8 TryIncrementMonLevel(struct Pokemon *);
bool8 IsShiny(struct Pokemon *mon);
+void RandomlyGivePartyPokerus(struct Pokemon *party);
+void PartySpreadPokerus(struct Pokemon *party);
struct Sprite *sub_80F7920(u16, u16, const u16 *);
+void BoxMonRestorePP(struct BoxPokemon *);
+bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 7e26c1c9b..a1a965d81 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,6 +1,9 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
+extern const u8 * const gMonIconTable[];
+extern const u8 gMonIconPaletteIndices[];
+
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
u8 UpdateMonIconFrame(struct Sprite *sprite);
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
@@ -12,5 +15,6 @@ void sub_809D580(u16);
void sub_809D608(u16);
void sub_809D62C(struct Sprite *sprite);
void sub_809D824(struct Sprite *sprite, u8 animNum);
+u16 mon_icon_convert_unown_species_id(u16 species, u32 personality);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/pokemon_item_effect.h b/include/pokemon_item_effect.h
index c09649aff..014612b05 100644
--- a/include/pokemon_item_effect.h
+++ b/include/pokemon_item_effect.h
@@ -1,6 +1,6 @@
#ifndef GUARD_POKEMON_ITEM_EFFECT_H
#define GUARD_POKEMON_ITEM_EFFECT_H
-bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u16);
+bool8 ExecuteTableBasedItemEffect_(struct Pokemon *mon, u16, u8, u8);
#endif // GUARD_POKEMON_ITEM_EFFECT_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9fe3436ef..5319b7a2d 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -1,8 +1,302 @@
#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
#define GUARD_POKEMON_STORAGE_SYSTEM_H
+#include "pc_screen_effect.h"
+#include "mon_markings.h"
+
+enum {
+ PC_TEXT_EXIT_BOX,
+ PC_TEXT_WHAT_YOU_DO,
+ PC_TEXT_PICK_A_THEME,
+ PC_TEXT_PICK_A_WALLPAPER,
+ PC_TEXT_IS_SELECTED,
+ PC_TEXT_JUMP_TO_WHICH_BOX,
+ PC_TEXT_DEPOSIT_IN_WHICH_BOX,
+ PC_TEXT_WAS_DEPOSITED,
+ PC_TEXT_BOX_IS_FULL,
+ PC_TEXT_RELEASE_POKE,
+ PC_TEXT_WAS_RELEASED,
+ PC_TEXT_BYE_BYE,
+ PC_TEXT_MARK_POKE,
+ PC_TEXT_LAST_POKE,
+ PC_TEXT_PARTY_FULL,
+ PC_TEXT_HOLDING_POKE,
+ PC_TEXT_WHICH_ONE_WILL_TAKE,
+ PC_TEXT_CANT_RELEASE_EGG,
+ PC_TEXT_CONTINUE_BOX,
+ PC_TEXT_CAME_BACK,
+ PC_TEXT_WORRIED,
+ PC_TEXT_SURPRISE,
+ PC_TEXT_PLEASE_REMOVE_MAIL
+};
+
+enum {
+ PC_TEXT_FMT_NORMAL,
+ PC_TEXT_FMT_MON_NAME,
+ PC_TEXT_FMT_UNK_02,
+ PC_TEXT_FMT_UNK_03,
+ PC_TEXT_FMT_MON_NAME_2,
+ PC_TEXT_FMT_UNK_05,
+ PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK
+};
+
+struct StorageAction {
+ const u8 *text;
+ u8 format;
+};
+
+struct PSS_MenuStringPtrs {
+ const u8 *text;
+ const u8 *desc;
+};
+
+struct UnkStruct_2000028 {
+ void *unk_00;
+ void *unk_04;
+ u16 unk_08;
+ u16 unk_0a;
+ void (*unk_0c)(struct UnkStruct_2000028 *data);
+};
+
+struct UnkStruct_2000020 {
+ struct UnkStruct_2000028 *unk_00;
+ u8 unk_04;
+ u8 unk_05;
+};
+
+struct UnkPSSStruct_2002370 {
+ struct Sprite *unk_0000;
+ struct Sprite *unk_0004[4];
+ u32 unk_0014[3];
+ struct Sprite *unk_0020[2];
+ u8 filler_0028[0x214];
+ u8 curBox;
+ u8 unk_023d;
+ u8 unk_023e;
+ u16 unk_0240;
+ u16 unk_0242;
+}; // 0244
+
+struct PokemonStorageSystemData {
+ void (*unk_0000)(void);
+ u8 unk_0004;
+ u8 unk_0005;
+ u8 unk_0006;
+ u8 unk_0007;
+ u16 unk_0008;
+ u16 unk_000a;
+ struct PCScreenEffectStruct unk_000c;
+ struct UnkStruct_2000020 unk_0020;
+ struct UnkStruct_2000028 unk_0028[8];
+ u16 unk_00a8[0x400];
+ u16 unk_08a8;
+ u16 unk_08aa;
+ u8 unk_08ac;
+ u8 unk_08ad;
+ u8 unk_08ae;
+ u8 unk_08af;
+ u8 unk_08b0;
+ bool8 unk_08b1;
+ s16 unk_08b2;
+ u16 unk_08b4;
+ u16 unk_08b6;
+ u16 unk_08b8;
+ bool8 unk_08ba;
+ u8 unk_08bb;
+ u16 unk_08bc;
+ u16 unk_08be;
+ u16 unk_08c0;
+ u16 unk_08c2;
+ u16 unk_08c4;
+ u16 unk_08c6;
+ u16 unk_08c8;
+ u8 unk_08ca[0x400];
+ u8 unk_0cca;
+ u16 unk_0ccc[0x10];
+ u16 unk_0cec;
+ u16 unk_0cee;
+ struct Sprite *unk_0cf0[2];
+ struct Sprite *unk_0cf8[2];
+ struct Sprite *unk_0d00[2];
+ u32 unk_0d08;
+ u8 filler_0d0c[0x50];
+ u16 unk_0d5c;
+ s16 unk_0d5e;
+ s16 unk_0d60;
+ u16 unk_0d62[360];
+ u8 unk_1032;
+ struct Sprite *unk_1034;
+ struct Sprite *unk_1038[6]; // party
+ struct Sprite *unk_1050[30]; // box
+ struct Sprite **unk_10c8;
+ struct Sprite **unk_10cc;
+ u16 unk_10d0[40];
+ u16 unk_1120[40];
+ u8 unk_1170;
+ u8 unk_1171;
+ u16 unk_1172;
+ s16 unk_1174;
+ s16 unk_1176;
+ u16 unk_1178;
+ u8 unk_117a;
+ s8 unk_117b;
+ u8 unk_117c;
+ u8 unk_117d;
+ u8 filler_117e[0x42];
+ struct Sprite *unk_11c0;
+ struct Sprite *unk_11c4;
+ s32 unk_11c8;
+ s32 unk_11cc;
+ s32 unk_11d0;
+ s32 unk_11d4;
+ s16 unk_11d8;
+ s16 unk_11da;
+ u16 unk_11dc;
+ s8 unk_11de;
+ s8 unk_11df;
+ u8 unk_11e0;
+ u8 unk_11e1;
+ u8 unk_11e2;
+ u8 unk_11e3;
+ u8 filler_11e4[4];
+ const u8 *unk_11e8;
+ u32 unk_11ec;
+ u16 unk_11f0;
+ u16 unk_11f2;
+ u8 filler_11f4[2];
+ u8 unk_11f6;
+ u8 unk_11f7;
+ u8 unk_11f8;
+ u8 unk_11f9;
+ u8 unk_11fa[0x15];
+ u8 unk_120f[0x25];
+ u8 unk_1234[0x25];
+ u8 unk_1259[0x21];
+ u8 unk_127a[0x2a];
+ bool8 (*unk_12a4)(void);
+ u8 unk_12a8;
+ u8 unk_12a9;
+ struct Sprite *unk_12ac;
+ struct Sprite *unk_12b0[2];
+ u16 *unk_12b8;
+ struct PokemonMarkMenu unk_12bc;
+ struct UnkPSSStruct_2002370 unk_2370;
+ struct Pokemon unk_25b4;
+ struct Pokemon unk_2618;
+ u8 unk_267c;
+ u8 unk_267d;
+ u8 unk_267e;
+ u8 unk_267f;
+ s8 unk_2680;
+ s8 unk_2681;
+ s8 unk_2682;
+ s8 unk_2683;
+ u16 unk_2684;
+ u16 unk_2686[3];
+ u8 unk_268c;
+ u8 unk_268d;
+ u8 unk_268e;
+ union {
+ struct Pokemon *pokemon;
+ struct BoxPokemon *box;
+ } unk_2690;
+ u8 unk_2694[18];
+ u8 unk_26a6[62];
+ u8 unk_26e4[0x16];
+ u16 unk_26fa;
+ u16 *unk_26fc;
+ struct Sprite *unk_2700;
+ u16 unk_2704[0x10];
+ u8 filler_2724[0x60];
+ u8 unk_2784[0x800];
+ u8 filler_2f84[0x1800];
+ u8 unk_4784[0x800];
+};
+
+extern u16 gUnknown_02039760[0x600];
+extern struct UnkPSSStruct_2002370 *gUnknown_02038478;
+extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr;
+extern u8 *const gUnknown_083B6DB8;
+
+u8 StorageSystemGetPartySize(void);
+s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId);
+u8 CountAlivePartyMonsExceptOne(u8 toSkip);
+u8 CountPokemonInBoxN(u8 boxId);
+void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3);
+void sub_809634C(u8 curBox);
+u8 sub_8096368(void);
+void sub_809635C(void);
+void sub_8096310(void);
+void sub_80961A8(void);
+void task_intro_29(u8 whichMenu);
void ResetPokemonStorageSystem(void);
-void BoxMonRestorePP(struct BoxPokemon *);
-void party_compaction(void);
+void ResetPSSMonIconSprites(void);
+void SpawnBoxIconSprites(u8 boxId);
+u8 get_preferred_box(void);
+void sub_8098BF0(void);
+void sub_8098D20(u8 monId);
+bool8 sub_80990AC(void);
+void sub_8099200(bool8 a0);
+void sub_8099310(void);
+bool8 sub_8099374(void);
+void sub_8099480(void);
+void sub_80994A8(s16 a0);
+void sub_8099520(u8 a0);
+void sub_809954C(void);
+void sub_8099584(u8 a0, u8 a1);
+void sub_809960C(u8 a0, u8 a1);
+void sub_80996B0(u8 a0, u8 a1);
+bool8 sub_809971C(void);
+void sub_809981C(u8 mode, u8 idx);
+bool8 sub_80998D8(void);
+void sub_8099920(void);
+void sub_8099958(void);
+bool8 sub_8099990(void);
+struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
+void sub_8099BF8(u8 a0);
+void sub_8099C70(u8 whichBox);
+bool8 sub_8099D34(void);
+void sub_8099DCC(u8 a0);
+bool8 sub_8099E08(void);
+void sub_809A860(bool8 a0);
+void sub_809AA24(void);
+void sub_809AA98(void);
+bool8 sub_809AC00(void);
+void sub_809B0C0(u8 a0);
+void sub_809B0D4(void);
+void sub_809B0E0(void);
+u8 sub_809B0F4(void);
+void sub_809B068(void);
+void sub_809B100(u8 a0);
+bool8 sub_809B130(void);
+void sub_809B440(void);
+bool8 sub_809B62C(u8);
+void sub_809B6BC(void);
+void sub_809B6DC(void);
+bool8 sub_809B734(void);
+void sub_809B760(void);
+void sub_809B7AC(void);
+void sub_809B7D4(void);
+s8 sub_809B960(void);
+void sub_809BB90(void);
+void sub_809BBC0(void);
+void sub_809BC18(void);
+void sub_809BD14(void);
+s16 party_compaction(void);
+void sub_809BDD8(u8 markings);
+bool8 sub_809BE80(void);
+bool8 sub_809BEBC(void);
+bool8 sub_809BF20(void);
+bool8 sub_809BF48(void);
+u8 sub_809CA40(void);
+void sub_809CDCC(void);
+void sub_809CDEC(u8 a0);
+void sub_809CE84(void);
+s16 sub_809CF30(void);
+void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000028 *a1, u8 a2);
+void sub_809CFF0(void);
+void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/region_map.h b/include/region_map.h
index 254307052..e7a357fe2 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -68,5 +68,6 @@ void CreateRegionMapPlayerIcon(u16, u16);
const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length);
const u8 *CopyMapName(u8 *dest, u16 b);
const u8 *CopyLocationName(u8 *dest, u16 b);
+void CB2_InitFlyRegionMap(void);
#endif // GUARD_REGION_MAP_H
diff --git a/include/region_map_sections.h b/include/region_map_sections.h
index a3bd60b59..a3bd60b59 100755..100644
--- a/include/region_map_sections.h
+++ b/include/region_map_sections.h
diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h
index 5807dec99..2de95534a 100644
--- a/include/reset_rtc_screen.h
+++ b/include/reset_rtc_screen.h
@@ -2,5 +2,6 @@
#define GUARD_RESET_RTC_SCREEN_H
void CB2_InitResetRtcScreen(void);
+void debug_sub_806F8F8(void);
#endif // GUARD_RESET_RTC_SCREEN_H
diff --git a/include/roamer.h b/include/roamer.h
index 9d5f3c4ed..86908bd00 100644
--- a/include/roamer.h
+++ b/include/roamer.h
@@ -7,5 +7,7 @@ void UpdateLocationHistoryForRoamer(void);
void RoamerMoveToOtherLocationSet(void);
void RoamerMove();
u8 TryStartRoamerEncounter(void);
+void UpdateRoamerHPStatus(struct Pokemon *mon);
+void SetRoamerInactive(void);
#endif
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index dda90c48f..ff737135b 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -25,9 +25,9 @@ u8 GetBankSide(u8 slot);
u8 GetBankSide(u8);
u8 GetBankIdentity(u8);
u8 GetBankIdentity(u8 slot);
-u8 GetBankByPlayerAI(u8);
-u8 GetBankByPlayerAI(u8);
-u8 GetBankByPlayerAI(u8 state);
+u8 GetBankByIdentity(u8);
+u8 GetBankByIdentity(u8);
+u8 GetBankByIdentity(u8 state);
bool8 IsBankSpritePresent(u8);
bool8 IsDoubleBattle();
u8 IsDoubleBattle(void);
@@ -85,7 +85,7 @@ void sub_8078174(struct Sprite *sprite);
void sub_80793C4(struct Sprite *sprite);
void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4);
u8 sub_8079ED4(u8 slot);
-int sub_807A100(u8 slot, u8 a2);
+s16 sub_807A100(u8 slot, u8 a2);
u16 sub_80790F0(s16 a, s16 b);
void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
void sub_807867C(struct Sprite *sprite, s16 a2);
@@ -103,5 +103,9 @@ bool8 sub_8078718(struct Sprite *sprite);
bool8 sub_8078CE8(struct Sprite *sprite);
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
void sub_8078BD4(struct Sprite *sprite);
+void sub_807941C(struct Sprite *sprite);
+void sub_80789D4(bool8 a1);
+void sub_8079AB8(u8 sprite, u8 sprite2);
+u8 sub_807A4A0(int bank, u8 sprite, int species);
#endif // GUARD_ROM_8077ABC_H
diff --git a/include/roulette.h b/include/roulette.h
new file mode 100644
index 000000000..7d114a073
--- /dev/null
+++ b/include/roulette.h
@@ -0,0 +1,38 @@
+#ifndef GUARD_ROULETTE_H
+#define GUARD_ROULETTE_H
+
+struct UnkStruct1
+{
+ u16 var00;
+ u16 var02;
+ u8 var04;
+ u8 var05;
+ u8 var06;
+ s8 var07_0:5;
+ s8 var07_5:2;
+ s8 var07_7:1;
+};
+
+struct UnkStruct3
+{
+ u8 var00_0:7;
+ u8 var00_7:1;
+ u8 var01;
+ s8 var02;
+ s8 var03;
+ struct UnkStruct1 var04;
+};
+
+struct UnkStruct0
+{
+ u8 var00;
+ u8 var01;
+ u16 var02; //flag for each UnkStruct3
+ struct UnkStruct3 var04[0x10];
+};
+
+s16 sub_81174C4(s16, s16);
+s16 sub_81174E0(s16);
+void PlayRoulette(void);
+
+#endif
diff --git a/include/roulette_util.h b/include/roulette_util.h
new file mode 100644
index 000000000..daeaeeeef
--- /dev/null
+++ b/include/roulette_util.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_ROULETTE_UTIL_H
+#define GUARD_ROULETTE_UTIL_H
+
+#include "roulette.h"
+
+void sub_8124918(struct UnkStruct0 *);
+u8 sub_812492C(struct UnkStruct0 *, u8, struct UnkStruct1 *);
+void task_tutorial_controls_fadein(struct UnkStruct0 *);
+void sub_8124CE8(struct UnkStruct0 *, u16);
+void sub_8124D3C(struct UnkStruct0 *, u16);
+void sub_8124DDC(u16 *, u16, u8, u8, u8, u8);
+void sub_8124E2C(u16 *, u16 *, u8, u8, u8, u8);
+
+#endif
diff --git a/include/save.h b/include/save.h
index c35ad547a..13e07d06a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -1,85 +1,38 @@
#ifndef GUARD_SAVE_H
#define GUARD_SAVE_H
-struct SaveSectionLocation
-{
- u8 *data;
- u16 size;
-};
-
-struct SaveSection
-{
- u8 data[0xFF4];
- u16 id;
- u16 checksum;
- u32 security;
- u32 counter;
-}; // size is 0x1000
-
-// headless save section?
-struct UnkSaveSection
-{
- u8 data[0xFF4];
- u32 security;
-}; // size is 0xFF8
-
// Ruby/Sapphire's save data is Flash 128K, which is 32 save sectors.
#define NUM_SECTORS 32 // defined in agb_flash but not in a header
-#define UNKNOWN_CHECK_VALUE 0x8012025
+#define SAVE_STATUS_EMPTY 0
+#define SAVE_STATUS_OK 1
+#define SAVE_STATUS_NO_FLASH 4
+#define SAVE_STATUS_ERROR 0xFF
-// SetDamagedSectorBits states
-enum
-{
- ENABLE,
- DISABLE,
- CHECK // unused
-};
+extern u16 gSaveFileStatus;
+
+void Save_EraseAllData(void);
+void Save_ResetSaveCounters(void);
-// Do save types
enum
{
- NORMAL_SAVE,
- LINK_SAVE,
- EREADER_SAVE, // mossdeep event
- HOF_SAVE,
- DIFFERENT_FILE_SAVE,
- HOF_DELETE_SAVE // unused
+ SAVE_NORMAL,
+ SAVE_LINK,
+ SAVE_EREADER,
+ SAVE_HALL_OF_FAME,
+ SAVE_OVERWRITE_DIFFERENT_FILE,
+ SAVE_HALL_OF_FAME_ERASE_BEFORE, // unused
};
-void ClearSaveData(void);
-void ResetSaveCounters(void);
-bool32 ManipulateSectorBits(u8 op, u8 bit);
-u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *a2);
-u8 HandleWriteSector(u16, const struct SaveSectionLocation *);
-u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
-u8 TryWriteSector(u8, u8 *);
-u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location);
-u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location);
-u8 sub_812550C(u16 a1, const struct SaveSectionLocation *location);
-u8 sub_812556C(u16 a1, const struct SaveSectionLocation *location);
-u8 sub_81255B8(u16, const struct SaveSectionLocation *location);
-u8 sub_8125758(u16 a1, const struct SaveSectionLocation *location);
-u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location);
-u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location);
-u8 sub_81258BC(u16, const struct SaveSectionLocation *location);
-u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
-u8 sub_8125B88(u8 a1, u8 *data, u16 size);
-u8 DoReadFlashWholeSection(u8, struct SaveSection *);
-u16 CalculateChecksum(void *, u16);
-u8 HandleSavingData(u8 saveType);
-u8 TrySavingData(u8 saveType);
+u8 Save_WriteDataInternal(u8 saveType);
+u8 Save_WriteData(u8 saveType);
+
u8 sub_8125D80(void);
bool8 sub_8125DA8(void);
u8 sub_8125DDC(void);
u8 sub_8125E04(void);
u8 sub_8125E2C(void);
bool8 sub_8125E6C(void);
-u8 sub_8125EC8(u8 a1);
-bool8 unref_sub_8125F4C(struct UnkSaveSection *a1);
-u8 unref_sub_8125FA0(void);
-u8 unref_sub_8125FF0(u8 *data, u16 size);
-u8 unref_sub_8126068(u8 sector, u8 *data, u32 size);
-u8 unref_sub_8126080(u8 sector, u8 *data);
+u8 Save_LoadGameData(u8 a1);
#endif // GUARD_SAVE_H
diff --git a/include/scanline_effect.h b/include/scanline_effect.h
new file mode 100644
index 000000000..314a856fa
--- /dev/null
+++ b/include/scanline_effect.h
@@ -0,0 +1,48 @@
+#ifndef GUARD_SCANLINE_EFFECT_H
+#define GUARD_SCANLINE_EFFECT_H
+
+// DMA control value to ransfer a single 16-bit value at HBlank
+#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
+
+#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS)
+
+struct ScanlineEffectParams
+{
+ volatile void *dmaDest;
+ u32 dmaControl;
+ u8 initState;
+ u8 unused9;
+};
+
+struct ScanlineEffect
+{
+ void *dmaSrcBuffers[2];
+ volatile void *dmaDest;
+ u32 dmaControl;
+ void (*setFirstScanlineReg)(void);
+ u8 srcBuffer;
+ u8 state;
+ u8 unused16;
+ u8 unused17;
+ u8 waveTaskId;
+ u8 filler19[0x7];
+};
+
+extern struct ScanlineEffect gScanlineEffect;
+
+extern u16 gScanlineEffectRegBuffers[][0x3C0];
+
+void ScanlineEffect_Stop(void);
+void ScanlineEffect_Clear(void);
+void ScanlineEffect_SetParams(struct ScanlineEffectParams);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7);
+
+#endif // GUARD_SCANLINE_EFFECT_H
diff --git a/include/shop.h b/include/shop.h
index b785ca764..80602e26c 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -17,6 +17,14 @@ enum
ANIM_NUM
};
+// shop options
+enum
+{
+ SHOP_BUY,
+ SHOP_SELL,
+ SHOP_EXIT
+};
+
struct MartInfo
{
/* 0x0 */ void (* callback) (void);
@@ -29,20 +37,9 @@ struct MartInfo
/* 0xD */ u8 curItemCount; // if you are selling an item, this is the count of the current item stack you have.
};
-void sub_80B2E38(u8);
-void HandleShopMenuQuit(u8);
-void sub_80B2FA0(u8);
-void BuyMenuDrawGraphics(void);
-void sub_80B3240(void);
-void sub_80B3270(void);
-void BuyMenuDrawMapGraphics(void);
-void sub_80B3764(int, int);
-void sub_80B37EC(void);
-void sub_80B40E8(u8);
-void CreatePokemartMenu(u16 *);
-void CreateDecorationShop1Menu(u16 *);
-void CreateDecorationShop2Menu(u16 *);
-void sub_80B356C(void);
-void sub_80B368C(void);
+void Shop_CreatePokemartMenu(u16 *);
+void Shop_CreateDecorationShop1Menu(u16 *);
+void Shop_CreateDecorationShop2Menu(u16 *);
+void Shop_RunExitSellMenuTask(u8 taskId);
#endif // GUARD_SHOP_H
diff --git a/include/slot_machine.h b/include/slot_machine.h
index c39aa7ca8..7759ca1b2 100644
--- a/include/slot_machine.h
+++ b/include/slot_machine.h
@@ -1,8 +1,80 @@
#ifndef GUARD_SLOT_MACHINE_H
#define GUARD_SLOT_MACHINE_H
-void PlaySlotMachine(u8, void *);
+enum {
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_REPLAY
+};
+
+enum {
+ SLOT_MACHINE_MATCHED_1CHERRY,
+ SLOT_MACHINE_MATCHED_2CHERRY,
+ SLOT_MACHINE_MATCHED_REPLAY,
+ SLOT_MACHINE_MATCHED_LOTAD,
+ SLOT_MACHINE_MATCHED_AZURILL,
+ SLOT_MACHINE_MATCHED_POWER,
+ SLOT_MACHINE_MATCHED_777_MIXED,
+ SLOT_MACHINE_MATCHED_777_RED,
+ SLOT_MACHINE_MATCHED_777_BLUE,
+ SLOT_MACHINE_MATCHED_NONE
+};
+
+struct SlotMachineEwramStruct {
+ /*0x00*/ u8 state;
+ /*0x01*/ u8 unk01;
+ /*0x02*/ u8 pikaPower;
+ /*0x03*/ u8 unk03;
+ /*0x04*/ u8 unk04;
+ /*0x05*/ u8 unk05;
+ /*0x06*/ u8 unk06;
+ /*0x07*/ u8 unk07;
+ /*0x08*/ u16 matchedSymbols;
+ /*0x0A*/ u8 unk0A;
+ /*0x0B*/ u8 unk0B;
+ /*0x0C*/ s16 coins;
+ /*0x0E*/ s16 payout;
+ /*0x10*/ s16 unk10;
+ /*0x12*/ s16 bet;
+ /*0x14*/ s16 unk14;
+ /*0x16*/ s16 unk16;
+ /*0x18*/ s16 unk18;
+ /*0x1A*/ s16 unk1A;
+ /*0x1C*/ s16 unk1C[3];
+ /*0x22*/ u16 unk22[3];
+ /*0x28*/ s16 reelPositions[3];
+ /*0x2E*/ s16 unk2E[3];
+ /*0x34*/ s16 unk34[3];
+ /*0x3A*/ u8 reelTasks[3];
+ /*0x3D*/ u8 unk3D;
+ /*0x3E*/ u8 unk3E;
+ /*0x3F*/ u8 unk3F;
+ /*0x40*/ u8 unk40;
+ /*0x41*/ u8 unk41;
+ /*0x42*/ u8 unk42;
+ /*0x43*/ u8 unk43;
+ /*0x44*/ u8 unk44[5];
+ /*0x49*/ u8 unk49[2];
+ /*0x49*/ u8 unk4B[3];
+ /*0x4E*/ u8 unk4E[2];
+ /*0x50*/ u8 unk50[2];
+ /*0x52*/ u8 unk52[2];
+ /*0x54*/ u8 unk54[4];
+ /*0x58*/ u16 win0h;
+ /*0x5a*/ u16 win0v;
+ /*0x5c*/ u16 winIn;
+ /*0x5e*/ u16 winOut;
+ /*0x60*/ u16 backupMapMusic;
+ /*0x64*/ MainCallback prevMainCb;
+};
+
+void PlaySlotMachine(u8 arg0, MainCallback cb);
void sub_8104DA4(void);
-u8 sub_8105BB4(u8, u8, s16);
+u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2);
+void debug_sub_811609C(u8, void (*)(void));
#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/sprite.h b/include/sprite.h
index 13c76c84b..3ad418356 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -120,10 +120,6 @@ union AffineAnimCmd
{.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
#define AFFINEANIMCMD_END \
{.type = AFFINEANIMCMDTYPE_END}
-#define AFFINEANIMCMD_LOOP(_count) \
- {.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
-#define AFFINEANIMCMD_JUMP(_target) \
- {.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
struct AffineAnimState
{
@@ -172,6 +168,8 @@ struct SpriteTemplate
void (*callback)(struct Sprite *);
};
+typedef void (*SpriteCallback)(struct Sprite *);
+
struct Sprite
{
/*0x00*/ struct OamData oam;
@@ -180,7 +178,7 @@ struct Sprite
/*0x10*/ const union AffineAnimCmd *const *affineAnims;
/*0x14*/ const struct SpriteTemplate *template;
/*0x18*/ const struct SubspriteTable *subspriteTables;
- /*0x1C*/ void (*callback)(struct Sprite *);
+ /*0x1C*/ SpriteCallback callback;
/*0x20*/ struct Coords16 pos1;
/*0x24*/ struct Coords16 pos2;
@@ -237,6 +235,9 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern u8 gReservedSpritePaletteCount;
+extern u16 gReservedSpriteTileCount;
+
+extern u8 gOamLimit;
extern struct Sprite gSprites[];
diff --git a/include/strings.h b/include/strings.h
index fe9cfc6ba..91c5c5344 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -164,7 +164,7 @@ extern const u8 gOtherText_None[];
extern const u8 gOtherText_ThreeQuestions2[];
-extern const u8 gOtherText_FiveQuestionsAndSlash[];
+extern const u8 gOtherText_FiveQuestions[];
extern const u8 gOtherText_OneDash[];
extern const u8 gOtherText_TwoDashes[];
diff --git a/include/text.h b/include/text.h
index ebc4ebe7e..71afd1d00 100644
--- a/include/text.h
+++ b/include/text.h
@@ -74,7 +74,7 @@
#define CHAR_NEWLINE 0xFE
#define EOS 0xFF // end of string
-struct WindowConfig
+struct WindowTemplate
{
u8 bgNum;
u8 charBaseBlock;
@@ -126,7 +126,7 @@ struct Window
/*0x20*/ const u8 *text;
/*0x24*/ u8 *tileData;
/*0x28*/ u16 *tilemap;
- /*0x2C*/ const struct WindowConfig *config;
+ /*0x2C*/ const struct WindowTemplate *template;
};
extern vu16 *const gBGControlRegs[];
@@ -137,65 +137,65 @@ extern const u16 gUnknown_081E29D8[];
extern const u16 gUnknown_081E29E0[];
extern const u16 gUnknown_081E29E8[];
-extern const struct WindowConfig gWindowConfig_81E6C3C;
-extern const struct WindowConfig gWindowConfig_81E6C58;
-extern const struct WindowConfig gWindowConfig_81E6C74;
-extern const struct WindowConfig gWindowConfig_81E6C90;
-extern const struct WindowConfig gWindowConfig_81E6CAC;
-extern const struct WindowConfig gWindowConfig_81E6CC8;
-extern const struct WindowConfig gWindowConfig_81E6CE4;
-extern const struct WindowConfig gWindowConfig_81E6D00;
-extern const struct WindowConfig gWindowConfig_81E6D1C;
-extern const struct WindowConfig gWindowConfig_81E6D38;
-extern const struct WindowConfig gWindowConfig_81E6D54;
-extern const struct WindowConfig gWindowConfig_81E6D70;
-extern const struct WindowConfig gWindowConfig_81E6D8C;
-extern const struct WindowConfig gWindowConfig_81E6DA8;
-extern const struct WindowConfig WindowConfig_TrainerCard_Back_Values;
-extern const struct WindowConfig WindowConfig_TrainerCard_Back_Labels;
-extern const struct WindowConfig gWindowConfig_81E6DFC;
-extern const struct WindowConfig gWindowConfig_81E6E18;
-extern const struct WindowConfig gWindowConfig_81E6E34;
-extern const struct WindowConfig gWindowConfig_81E6E50;
-extern const struct WindowConfig gWindowConfig_81E6E6C;
-extern const struct WindowConfig gWindowConfig_81E6E88;
-extern const struct WindowConfig gWindowConfig_81E6EA4;
-extern const struct WindowConfig gWindowConfig_81E6EC0;
-extern const struct WindowConfig gWindowConfig_81E6EDC;
-extern const struct WindowConfig gWindowConfig_81E6EF8;
-extern const struct WindowConfig gWindowConfig_81E6F14;
-extern const struct WindowConfig gWindowConfig_81E6F30;
-extern const struct WindowConfig gWindowConfig_81E6F4C;
-extern const struct WindowConfig gWindowConfig_81E6F68;
-extern const struct WindowConfig gWindowConfig_81E6F84;
-extern const struct WindowConfig gWindowConfig_81E6FA0;
-extern const struct WindowConfig gWindowConfig_81E6FBC;
-extern const struct WindowConfig gWindowConfig_81E6FD8;
-extern const struct WindowConfig gWindowConfig_81E6FF4;
-extern const struct WindowConfig gWindowConfig_81E7010;
-extern const struct WindowConfig gWindowConfig_81E702C;
-extern const struct WindowConfig gWindowConfig_81E7048;
-extern const struct WindowConfig gWindowConfig_81E7064;
-extern const struct WindowConfig gWindowConfig_81E7080;
-extern const struct WindowConfig gWindowConfig_81E709C;
-extern const struct WindowConfig gWindowConfig_81E70B8;
-extern const struct WindowConfig gWindowConfig_81E70D4;
-extern const struct WindowConfig gWindowConfig_81E70F0;
-extern const struct WindowConfig gWindowConfig_81E710C;
-extern const struct WindowConfig gWindowConfig_81E7128;
-extern const struct WindowConfig gWindowConfig_81E7144;
-extern const struct WindowConfig gWindowConfig_81E7160;
-extern const struct WindowConfig gWindowConfig_81E717C;
-extern const struct WindowConfig gWindowConfig_81E7198;
-extern const struct WindowConfig gWindowConfig_81E71B4;
-extern const struct WindowConfig gWindowConfig_81E71D0;
-extern const struct WindowConfig gWindowConfig_81E71EC;
-extern const struct WindowConfig gWindowConfig_81E7208;
-extern const struct WindowConfig gWindowConfig_81E7224;
-extern const struct WindowConfig gWindowConfig_81E7240;
-extern const struct WindowConfig gWindowConfig_81E725C;
-extern const struct WindowConfig gWindowConfig_81E7278;
-extern const struct WindowConfig gWindowConfig_81E7294;
+extern const struct WindowTemplate gWindowTemplate_81E6C3C;
+extern const struct WindowTemplate gWindowTemplate_81E6C58;
+extern const struct WindowTemplate gWindowTemplate_81E6C74;
+extern const struct WindowTemplate gWindowTemplate_81E6C90;
+extern const struct WindowTemplate gWindowTemplate_81E6CAC;
+extern const struct WindowTemplate gWindowTemplate_81E6CC8;
+extern const struct WindowTemplate gWindowTemplate_81E6CE4;
+extern const struct WindowTemplate gWindowTemplate_81E6D00;
+extern const struct WindowTemplate gWindowTemplate_81E6D1C;
+extern const struct WindowTemplate gWindowTemplate_81E6D38;
+extern const struct WindowTemplate gWindowTemplate_81E6D54;
+extern const struct WindowTemplate gWindowTemplate_81E6D70;
+extern const struct WindowTemplate gWindowTemplate_81E6D8C;
+extern const struct WindowTemplate gWindowTemplate_81E6DA8;
+extern const struct WindowTemplate gWindowTemplate_TrainerCard_Back_Values;
+extern const struct WindowTemplate gWindowTemplate_TrainerCard_Back_Labels;
+extern const struct WindowTemplate gWindowTemplate_81E6DFC;
+extern const struct WindowTemplate gWindowTemplate_81E6E18;
+extern const struct WindowTemplate gWindowTemplate_81E6E34;
+extern const struct WindowTemplate gWindowTemplate_81E6E50;
+extern const struct WindowTemplate gWindowTemplate_81E6E6C;
+extern const struct WindowTemplate gWindowTemplate_81E6E88;
+extern const struct WindowTemplate gWindowTemplate_81E6EA4;
+extern const struct WindowTemplate gWindowTemplate_81E6EC0;
+extern const struct WindowTemplate gWindowTemplate_81E6EDC;
+extern const struct WindowTemplate gWindowTemplate_81E6EF8;
+extern const struct WindowTemplate gWindowTemplate_81E6F14;
+extern const struct WindowTemplate gWindowTemplate_81E6F30;
+extern const struct WindowTemplate gWindowTemplate_81E6F4C;
+extern const struct WindowTemplate gWindowTemplate_81E6F68;
+extern const struct WindowTemplate gWindowTemplate_81E6F84;
+extern const struct WindowTemplate gWindowTemplate_81E6FA0;
+extern const struct WindowTemplate gWindowTemplate_81E6FBC;
+extern const struct WindowTemplate gWindowTemplate_81E6FD8;
+extern const struct WindowTemplate gWindowTemplate_81E6FF4;
+extern const struct WindowTemplate gWindowTemplate_81E7010;
+extern const struct WindowTemplate gWindowTemplate_81E702C;
+extern const struct WindowTemplate gWindowTemplate_81E7048;
+extern const struct WindowTemplate gWindowTemplate_81E7064;
+extern const struct WindowTemplate gWindowTemplate_81E7080;
+extern const struct WindowTemplate gWindowTemplate_81E709C;
+extern const struct WindowTemplate gWindowTemplate_81E70B8;
+extern const struct WindowTemplate gWindowTemplate_81E70D4;
+extern const struct WindowTemplate gWindowTemplate_81E70F0;
+extern const struct WindowTemplate gWindowTemplate_81E710C;
+extern const struct WindowTemplate gWindowTemplate_81E7128;
+extern const struct WindowTemplate gWindowTemplate_81E7144;
+extern const struct WindowTemplate gWindowTemplate_81E7160;
+extern const struct WindowTemplate gWindowTemplate_81E717C;
+extern const struct WindowTemplate gWindowTemplate_81E7198;
+extern const struct WindowTemplate gWindowTemplate_81E71B4;
+extern const struct WindowTemplate gWindowTemplate_81E71D0;
+extern const struct WindowTemplate gWindowTemplate_81E71EC;
+extern const struct WindowTemplate gWindowTemplate_81E7208;
+extern const struct WindowTemplate gWindowTemplate_81E7224;
+extern const struct WindowTemplate gWindowTemplate_81E7240;
+extern const struct WindowTemplate gWindowTemplate_81E725C;
+extern const struct WindowTemplate gWindowTemplate_81E7278;
+extern const struct WindowTemplate gWindowTemplate_81E7294;
extern u16 gBGTilemapBuffers[4][0x400];
@@ -205,52 +205,54 @@ extern u8 gStringVar3[];
extern u8 gStringVar4[];
extern u8 gTileBuffer[];
-void LoadFontDefaultPalette(const struct WindowConfig *winConfig);
-void SetUpWindowConfig(const struct WindowConfig *winConfig);
+void LoadFontDefaultPalette(const struct WindowTemplate *winConfig);
+void Text_LoadWindowTemplate(const struct WindowTemplate *winConfig);
u16 InitWindowTileData(struct Window *win, u16 startOffset);
u32 MultistepInitWindowTileData(struct Window *win, u16 startOffset);
bool32 MultistepLoadFont(void);
-void InitWindowFromConfig(struct Window *win, const struct WindowConfig *winConfig);
-void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
-void sub_8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6);
-void sub_8002E90(struct Window *win, const u8 *text);
-void sub_8002EB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
-u8 sub_8002F44(struct Window *win);
-u8 sub_8003418(struct Window *win);
-u8 sub_8003460(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
+void Text_InitWindowWithTemplate(struct Window *win, const struct WindowTemplate *winConfig);
+void Text_InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
+void Text_InitWindow8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6);
+void Text_SetWindowText(struct Window *win, const u8 *text);
+void Text_InitWindow8002EB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
+u8 Text_PrintWindow8002F44(struct Window *win);
+u8 Text_PrintWindowSimple(struct Window *win);
+u8 Text_InitWindowAndPrintText(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
u8 sub_8003490(struct Window *win, u8 c, u16 tileDataStartOffset, u8 left, u8 top);
void sub_80034D4(u8 *tileData, const u8 *text);
u8 sub_80034EC(u8 *str);
u8 *sub_8003504(u8 *dest, s32 value, u8 alignAmount, u8 alignType);
u8 *sub_8003558(u8 *dest, const u8 *src, u8 alignAmount, u8 alignType);
-u8 sub_80035AC(struct Window *win);
-u8 sub_800374C(struct Window *win);
-u8 sub_8003778(struct Window *win);
-u8 sub_80037A0(struct Window *win);
-u32 sub_80037C8(struct Window *win, u8 lineLength);
-void ClearWindowTextLines(struct Window *win);
-u16 GetWindowTilemapEntry(struct Window *win, u8 x, u8 y);
-void DrawWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom);
+u8 Text_UpdateWindow(struct Window *win);
+u8 Text_UpdateWindowInBattle(struct Window *win);
+u8 Text_UpdateWindowAutoscroll(struct Window *win);
+u8 Text_UpdateWindowInContest(struct Window *win);
+u32 Text_UpdateWindowOverrideLineLength(struct Window *win, u8 lineLength);
+void Text_ClearWindow(struct Window *win);
+u16 Text_GetWindowTilemapEntry(struct Window *win, u8 x, u8 y);
+void Text_FillWindowBorder(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom);
void DrawWindowRect_DefaultPalette(struct Window *win, u16 tileNum, u8 left, u8 top, u8 right, u8 bottom);
-void FillWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom);
-void FillWindowRect_DefaultPalette(struct Window *win, u16 tileNum, u8 left, u8 top, u8 right, u8 bottom);
-void ZeroFillWindowRect(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
-void FillWindowRectWithBlankTile(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
+void Text_FillWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom);
+void Text_FillWindowRectDefPalette(struct Window *win, u16 tileNum, u8 left, u8 top, u8 right, u8 bottom);
+void Text_EraseWindowRect(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
+void Text_BlankWindowRect(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
u8 GetExtCtrlCodeLength(u8 code);
u8 *AlignInt1(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignType);
u8 *AlignInt2(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignType);
u8 *AlignString(struct Window *win, u8 *dest, const u8 *src, u8 alignAmount, u8 alignType);
u8 GetStringWidth(struct Window *win, const u8 *s);
-u8 sub_8004D04(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6);
-u8 sub_8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
-u8 sub_8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6);
-u8 sub_8004E24(struct Window *win);
-void sub_8004E28(struct Window *win, u8 *foreground, u8 *background, u8 *shadow);
-void sub_8004E3C(const struct WindowConfig *winConfig, u8 *tileData, const u8 *text);
-u8 GetStringWidthGivenWindowConfig(const struct WindowConfig *winConfig, const u8 *s);
+u8 Text_InitWindow8004D04(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6);
+u8 Text_InitWindow8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top);
+u8 Text_InitWindow8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6);
+u8 Text_GetWindowPaletteNum(struct Window *win);
+void Text_GetTextColors(struct Window *win, u8 *foreground, u8 *background, u8 *shadow);
+void Text_InitWindow8004E3C(const struct WindowTemplate *winConfig, u8 *tileData, const u8 *text);
+u8 Text_GetStringWidthFromWindowTemplate(const struct WindowTemplate *winConfig, const u8 *s);
void ConvertInternationalString(u8 *s, u8 language);
-void StripExtCtrlCodes(u8 *str);
+void Text_StripExtCtrlCodes(u8 *str);
s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8);
+extern const u16 gUnknownPalette_81E6692[];
+
#endif // GUARD_TEXT_H
diff --git a/include/text_window.h b/include/text_window.h
index 7df1453ca..21e05ece0 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -9,17 +9,17 @@ struct FrameGraphics
const u16 *palette;
};
-u16 SetTextWindowBaseTileNum(u16 baseTileNum);
-void LoadTextWindowGraphics(struct Window *win);
-void LoadTextWindowGraphics_OverridePalSlot(struct Window *win, u8 palSlot);
-void LoadTextWindowGraphics_OverrideFrameType(struct Window *win, u8 frameType);
-void DrawTextWindow(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
-const struct FrameGraphics *GetTextWindowFrameGraphics(u8 frameType);
-u16 SetMessageBoxBaseTileNum(u16 baseTileNum);
+u16 TextWindow_SetBaseTileNum(u16 baseTileNum);
+void TextWindow_LoadStdFrameGraphics(struct Window *win);
+void TextWindow_LoadStdFrameGraphicsOverridePal(struct Window *win, u8 palSlot);
+void TextWindow_LoadStdFrameGraphicsOverrideStyle(struct Window *win, u8 frameType);
+void TextWindow_DrawStdFrame(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
+const struct FrameGraphics *TextWindow_GetFrameGraphics(u8 frameType);
+u16 TextWindow_SetDlgFrameBaseTileNum(u16 baseTileNum);
void unref_sub_80651DC(struct Window *, u8 *);
-void DisplayMessageBox(struct Window *);
-void DrawStandardMessageBox(struct Window *win);
-void LoadMessageBoxTiles(struct Window *win);
-void ClearStandardMessageBox(struct Window *win);
+void TextWindow_DisplayDialogueFrame(struct Window *);
+void TextWindow_DrawDialogueFrame(struct Window *win);
+void TextWindow_LoadDialogueFrameTiles(struct Window *win);
+void TextWindow_EraseDialogueFrame(struct Window *win);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/trade.h b/include/trade.h
index 46f58a802..d6dee0bd9 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -51,6 +51,7 @@ extern const u32 gUnknown_0820CA98[];
extern const u16 gUnknown_0820F798[];
void sub_8047CD8(void);
+void sub_804B790(void);
void sub_804E174(void);
extern const u8 gOtherText_MaleSymbol3[2];
extern const u8 gOtherText_FemaleSymbol3[2];
diff --git a/include/trainer.h b/include/trainer.h
index 2e0beb342..e8f2776d2 100644
--- a/include/trainer.h
+++ b/include/trainer.h
@@ -17,83 +17,83 @@
#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
enum {
- TRAINER_CLASS_AQUA_LEADER,
- TRAINER_CLASS_TEAM_AQUA_M,
- TRAINER_CLASS_TEAM_AQUA_F,
- TRAINER_CLASS_AROMA_LADY,
- TRAINER_CLASS_RUIN_MANIAC,
- TRAINER_CLASS_INTERVIEWER,
- TRAINER_CLASS_TUBER_F,
- TRAINER_CLASS_TUBER_M,
- TRAINER_CLASS_COOL_TRAINER_M,
- TRAINER_CLASS_COOL_TRAINER_F,
- TRAINER_CLASS_HEX_MANIAC,
- TRAINER_CLASS_LADY,
- TRAINER_CLASS_BEAUTY,
- TRAINER_CLASS_RICH_BOY,
- TRAINER_CLASS_POKEMANIAC,
- TRAINER_CLASS_SWIMMER_M,
- TRAINER_CLASS_BLACK_BELT,
- TRAINER_CLASS_GUITARIST,
- TRAINER_CLASS_KINDLER,
- TRAINER_CLASS_CAMPER,
- TRAINER_CLASS_BUG_MANIAC,
- TRAINER_CLASS_PSYCHIC_M,
- TRAINER_CLASS_PSYCHIC_F,
- TRAINER_CLASS_GENTLEMAN,
- TRAINER_CLASS_ELITE_FOUR_M,
- TRAINER_CLASS_ELITE_FOUR_F,
- TRAINER_CLASS_LEADER_F,
- TRAINER_CLASS_LEADER_M,
- TRAINER_CLASS_LEADER_MF,
- TRAINER_CLASS_SCHOOL_KID_M,
- TRAINER_CLASS_SCHOOL_KID_F,
- TRAINER_CLASS_SR_AND_JR,
- TRAINER_CLASS_POKEFAN_M,
- TRAINER_CLASS_POKEFAN_F,
- TRAINER_CLASS_EXPERT_M,
- TRAINER_CLASS_EXPERT_F,
- TRAINER_CLASS_YOUNGSTER,
- TRAINER_CLASS_CHAMPION,
- TRAINER_CLASS_FISHERMAN,
- TRAINER_CLASS_CYCLING_TRIATHLETE_M,
- TRAINER_CLASS_CYCLING_TRIATHLETE_F,
- TRAINER_CLASS_RUNNING_TRIATHLETE_M,
- TRAINER_CLASS_RUNNING_TRIATHLETE_F,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
- TRAINER_CLASS_DRAGON_TAMER,
- TRAINER_CLASS_BIRD_KEEPER,
- TRAINER_CLASS_NINJA_BOY,
- TRAINER_CLASS_BATTLE_GIRL,
- TRAINER_CLASS_PARASOL_LADY,
- TRAINER_CLASS_SWIMMER_F,
- TRAINER_CLASS_PICNICKER,
- TRAINER_CLASS_TWINS,
- TRAINER_CLASS_SAILOR,
- TRAINER_CLASS_BOARDER_1,
- TRAINER_CLASS_BOARDER_2,
- TRAINER_CLASS_COLLECTOR,
- TRAINER_CLASS_WALLY,
- TRAINER_CLASS_BRENDAN_1,
- TRAINER_CLASS_BRENDAN_2,
- TRAINER_CLASS_BRENDAN_3,
- TRAINER_CLASS_MAY_1,
- TRAINER_CLASS_MAY_2,
- TRAINER_CLASS_MAY_3,
- TRAINER_CLASS_POKEMON_BREEDER_M,
- TRAINER_CLASS_POKEMON_BREEDER_F,
- TRAINER_CLASS_POKEMON_RANGER_M,
- TRAINER_CLASS_POKEMON_RANGER_F,
- TRAINER_CLASS_MAGMA_LEADER,
- TRAINER_CLASS_TEAM_MAGMA_M,
- TRAINER_CLASS_TEAM_MAGMA_F,
- TRAINER_CLASS_LASS,
- TRAINER_CLASS_BUG_CATCHER,
- TRAINER_CLASS_HIKER,
- TRAINER_CLASS_YOUNG_COUPLE,
- TRAINER_CLASS_OLD_COUPLE,
- TRAINER_CLASS_SIS_AND_BRO
+ FACILITY_CLASS_AQUA_LEADER,
+ FACILITY_CLASS_TEAM_AQUA_M,
+ FACILITY_CLASS_TEAM_AQUA_F,
+ FACILITY_CLASS_AROMA_LADY,
+ FACILITY_CLASS_RUIN_MANIAC,
+ FACILITY_CLASS_INTERVIEWER,
+ FACILITY_CLASS_TUBER_F,
+ FACILITY_CLASS_TUBER_M,
+ FACILITY_CLASS_COOL_TRAINER_M,
+ FACILITY_CLASS_COOL_TRAINER_F,
+ FACILITY_CLASS_HEX_MANIAC,
+ FACILITY_CLASS_LADY,
+ FACILITY_CLASS_BEAUTY,
+ FACILITY_CLASS_RICH_BOY,
+ FACILITY_CLASS_POKEMANIAC,
+ FACILITY_CLASS_SWIMMER_M,
+ FACILITY_CLASS_BLACK_BELT,
+ FACILITY_CLASS_GUITARIST,
+ FACILITY_CLASS_KINDLER,
+ FACILITY_CLASS_CAMPER,
+ FACILITY_CLASS_BUG_MANIAC,
+ FACILITY_CLASS_PSYCHIC_M,
+ FACILITY_CLASS_PSYCHIC_F,
+ FACILITY_CLASS_GENTLEMAN,
+ FACILITY_CLASS_ELITE_FOUR_M,
+ FACILITY_CLASS_ELITE_FOUR_F,
+ FACILITY_CLASS_LEADER_F,
+ FACILITY_CLASS_LEADER_M,
+ FACILITY_CLASS_LEADER_MF,
+ FACILITY_CLASS_SCHOOL_KID_M,
+ FACILITY_CLASS_SCHOOL_KID_F,
+ FACILITY_CLASS_SR_AND_JR,
+ FACILITY_CLASS_POKEFAN_M,
+ FACILITY_CLASS_POKEFAN_F,
+ FACILITY_CLASS_EXPERT_M,
+ FACILITY_CLASS_EXPERT_F,
+ FACILITY_CLASS_YOUNGSTER,
+ FACILITY_CLASS_CHAMPION,
+ FACILITY_CLASS_FISHERMAN,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_M,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_F,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_M,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_F,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
+ FACILITY_CLASS_DRAGON_TAMER,
+ FACILITY_CLASS_BIRD_KEEPER,
+ FACILITY_CLASS_NINJA_BOY,
+ FACILITY_CLASS_BATTLE_GIRL,
+ FACILITY_CLASS_PARASOL_LADY,
+ FACILITY_CLASS_SWIMMER_F,
+ FACILITY_CLASS_PICNICKER,
+ FACILITY_CLASS_TWINS,
+ FACILITY_CLASS_SAILOR,
+ FACILITY_CLASS_BOARDER_1,
+ FACILITY_CLASS_BOARDER_2,
+ FACILITY_CLASS_COLLECTOR,
+ FACILITY_CLASS_WALLY,
+ FACILITY_CLASS_BRENDAN_1,
+ FACILITY_CLASS_BRENDAN_2,
+ FACILITY_CLASS_BRENDAN_3,
+ FACILITY_CLASS_MAY_1,
+ FACILITY_CLASS_MAY_2,
+ FACILITY_CLASS_MAY_3,
+ FACILITY_CLASS_POKEMON_BREEDER_M,
+ FACILITY_CLASS_POKEMON_BREEDER_F,
+ FACILITY_CLASS_POKEMON_RANGER_M,
+ FACILITY_CLASS_POKEMON_RANGER_F,
+ FACILITY_CLASS_MAGMA_LEADER,
+ FACILITY_CLASS_TEAM_MAGMA_M,
+ FACILITY_CLASS_TEAM_MAGMA_F,
+ FACILITY_CLASS_LASS,
+ FACILITY_CLASS_BUG_CATCHER,
+ FACILITY_CLASS_HIKER,
+ FACILITY_CLASS_YOUNG_COUPLE,
+ FACILITY_CLASS_OLD_COUPLE,
+ FACILITY_CLASS_SIS_AND_BRO
};
enum {
@@ -183,64 +183,64 @@ enum {
};
enum {
- TRAINER_CLASS_NAME_POKEMON_TRAINER_1,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_2,
- TRAINER_CLASS_NAME_AQUA_LEADER,
- TRAINER_CLASS_NAME_TEAM_AQUA,
- TRAINER_CLASS_NAME_AQUA_ADMIN,
- TRAINER_CLASS_NAME_AROMA_LADY,
- TRAINER_CLASS_NAME_RUIN_MANIAC,
- TRAINER_CLASS_NAME_INTERVIEWER,
- TRAINER_CLASS_NAME_TUBER_F,
- TRAINER_CLASS_NAME_TUBER_M,
- TRAINER_CLASS_NAME_COOL_TRAINER,
- TRAINER_CLASS_NAME_HEX_MANIAC,
- TRAINER_CLASS_NAME_LADY,
- TRAINER_CLASS_NAME_BEAUTY,
- TRAINER_CLASS_NAME_RICH_BOY,
- TRAINER_CLASS_NAME_POKEMANIAC,
- TRAINER_CLASS_NAME_SWIMMER_M,
- TRAINER_CLASS_NAME_BLACK_BELT,
- TRAINER_CLASS_NAME_GUITARIST,
- TRAINER_CLASS_NAME_KINDLER,
- TRAINER_CLASS_NAME_CAMPER,
- TRAINER_CLASS_NAME_BUG_MANIAC,
- TRAINER_CLASS_NAME_PSYCHIC,
- TRAINER_CLASS_NAME_GENTLEMAN,
- TRAINER_CLASS_NAME_ELITE_FOUR,
- TRAINER_CLASS_NAME_LEADER,
- TRAINER_CLASS_NAME_SCHOOL_KID,
- TRAINER_CLASS_NAME_SR_AND_JR,
- TRAINER_CLASS_NAME_WINSTRATE,
- TRAINER_CLASS_NAME_POKEFAN,
- TRAINER_CLASS_NAME_EXPERT,
- TRAINER_CLASS_NAME_YOUNGSTER,
- TRAINER_CLASS_NAME_CHAMPION,
- TRAINER_CLASS_NAME_FISHERMAN,
- TRAINER_CLASS_NAME_TRIATHLETE,
- TRAINER_CLASS_NAME_DRAGON_TAMER,
- TRAINER_CLASS_NAME_BIRD_KEEPER,
- TRAINER_CLASS_NAME_NINJA_BOY,
- TRAINER_CLASS_NAME_BATTLE_GIRL,
- TRAINER_CLASS_NAME_PARASOL_LADY,
- TRAINER_CLASS_NAME_SWIMMER_F,
- TRAINER_CLASS_NAME_PICNICKER,
- TRAINER_CLASS_NAME_TWINS,
- TRAINER_CLASS_NAME_SAILOR,
- TRAINER_CLASS_NAME_BOARDER,
- TRAINER_CLASS_NAME_COLLECTOR,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3,
- TRAINER_CLASS_NAME_POKEMON_BREEDER,
- TRAINER_CLASS_NAME_POKEMON_RANGER,
- TRAINER_CLASS_NAME_MAGMA_LEADER,
- TRAINER_CLASS_NAME_TEAM_MAGMA,
- TRAINER_CLASS_NAME_MAGMA_ADMIN,
- TRAINER_CLASS_NAME_LASS,
- TRAINER_CLASS_NAME_BUG_CATCHER,
- TRAINER_CLASS_NAME_HIKER,
- TRAINER_CLASS_NAME_YOUNG_COUPLE,
- TRAINER_CLASS_NAME_OLD_COUPLE,
- TRAINER_CLASS_NAME_SIS_AND_BRO
+ TRAINER_CLASS_POKEMON_TRAINER_1,
+ TRAINER_CLASS_POKEMON_TRAINER_2,
+ TRAINER_CLASS_AQUA_LEADER,
+ TRAINER_CLASS_TEAM_AQUA,
+ TRAINER_CLASS_AQUA_ADMIN,
+ TRAINER_CLASS_AROMA_LADY,
+ TRAINER_CLASS_RUIN_MANIAC,
+ TRAINER_CLASS_INTERVIEWER,
+ TRAINER_CLASS_TUBER_F,
+ TRAINER_CLASS_TUBER_M,
+ TRAINER_CLASS_COOL_TRAINER,
+ TRAINER_CLASS_HEX_MANIAC,
+ TRAINER_CLASS_LADY,
+ TRAINER_CLASS_BEAUTY,
+ TRAINER_CLASS_RICH_BOY,
+ TRAINER_CLASS_POKEMANIAC,
+ TRAINER_CLASS_SWIMMER_M,
+ TRAINER_CLASS_BLACK_BELT,
+ TRAINER_CLASS_GUITARIST,
+ TRAINER_CLASS_KINDLER,
+ TRAINER_CLASS_CAMPER,
+ TRAINER_CLASS_BUG_MANIAC,
+ TRAINER_CLASS_PSYCHIC,
+ TRAINER_CLASS_GENTLEMAN,
+ TRAINER_CLASS_ELITE_FOUR,
+ TRAINER_CLASS_LEADER,
+ TRAINER_CLASS_SCHOOL_KID,
+ TRAINER_CLASS_SR_AND_JR,
+ TRAINER_CLASS_WINSTRATE,
+ TRAINER_CLASS_POKEFAN,
+ TRAINER_CLASS_EXPERT,
+ TRAINER_CLASS_YOUNGSTER,
+ TRAINER_CLASS_CHAMPION,
+ TRAINER_CLASS_FISHERMAN,
+ TRAINER_CLASS_TRIATHLETE,
+ TRAINER_CLASS_DRAGON_TAMER,
+ TRAINER_CLASS_BIRD_KEEPER,
+ TRAINER_CLASS_NINJA_BOY,
+ TRAINER_CLASS_BATTLE_GIRL,
+ TRAINER_CLASS_PARASOL_LADY,
+ TRAINER_CLASS_SWIMMER_F,
+ TRAINER_CLASS_PICNICKER,
+ TRAINER_CLASS_TWINS,
+ TRAINER_CLASS_SAILOR,
+ TRAINER_CLASS_BOARDER,
+ TRAINER_CLASS_COLLECTOR,
+ TRAINER_CLASS_POKEMON_TRAINER_3,
+ TRAINER_CLASS_POKEMON_BREEDER,
+ TRAINER_CLASS_POKEMON_RANGER,
+ TRAINER_CLASS_MAGMA_LEADER,
+ TRAINER_CLASS_TEAM_MAGMA,
+ TRAINER_CLASS_MAGMA_ADMIN,
+ TRAINER_CLASS_LASS,
+ TRAINER_CLASS_BUG_CATCHER,
+ TRAINER_CLASS_HIKER,
+ TRAINER_CLASS_YOUNG_COUPLE,
+ TRAINER_CLASS_OLD_COUPLE,
+ TRAINER_CLASS_SIS_AND_BRO
};
#endif // GUARD_TRAINER_H
diff --git a/include/trainer_card.h b/include/trainer_card.h
index b9d3ca081..28cabbd09 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -28,10 +28,12 @@ struct TrainerCard {
/*0x30*/ u8 playerName[8];
};
-void sub_8093110(void (*)(void));
-void sub_8093130(u8, void (*)(void));
-void sub_8093390(struct TrainerCard *);
+void TrainerCard_ShowPlayerCard(void (*)(void));
+void TrainerCard_ShowLinkCard(u8, void (*)(void));
+void TrainerCard_GenerateCardForPlayer(struct TrainerCard *);
u8 sub_80934C4(u8 id);
+void debug_sub_80A0710(void (*)(void));
+void debug_sub_80A073C(void (*)(void));
extern struct TrainerCard gTrainerCards[4];
diff --git a/include/tv.h b/include/tv.h
index 91b871f71..2edccb365 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -107,5 +107,6 @@ void UpdateTVShowsPerDay(u16);
void sub_80C045C();
void sub_80BF088(u8, s32);
void sub_80BFD20(void);
+void PutPokemonTodayCaughtOnAir(void);
#endif // GUARD_TV_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
deleted file mode 100644
index 011e5f5b5..000000000
--- a/include/unknown_task.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef GUARD_UNKNOWN_TASK_H
-#define GUARD_UNKNOWN_TASK_H
-
-struct UnknownTaskStruct
-{
- volatile void *dest;
- u32 control;
- u8 unk8;
- u8 unk9;
-};
-
-struct UnknownTaskStruct2
-{
- void *src[2];
- volatile void *dest;
- u32 unkC;
- void (*unk10)(void);
- u8 srcBank;
- u8 unk15;
- u8 unk16;
- u8 unk17;
- u8 taskId;
- u8 filler19[0x7];
-};
-
-extern struct UnknownTaskStruct2 gUnknown_03004DC0;
-
-extern u16 gUnknown_03004DE0[][0x3C0];
-
-void remove_some_task(void);
-void remove_some_task(void);
-void dp12_8087EA4(void);
-void dp12_8087EA4(void);
-//void sub_80895F8(u32 i, u32 i1, u32 i2);
-//void sub_80895F8();
-void sub_80895F8(struct UnknownTaskStruct unk);
-void sub_8089668(void);
-void sub_8089668();
-//void sub_8089944(int i, int i1, int i2, int i3, int i4, int i5, int i6);
-u8 sub_8089944(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
-
-#endif // GUARD_UNKNOWN_TASK_H
diff --git a/ld_script.sed b/ld_script.sed
deleted file mode 100644
index b91542b6f..000000000
--- a/ld_script.sed
+++ /dev/null
@@ -1,14 +0,0 @@
-/<EWRAM>/ {
- r sym_ewram.ld
- d
-}
-
-/<BSS>/ {
- r sym_bss.ld
- d
-}
-
-/<COMMON>/ {
- r sym_common.ld
- d
-}
diff --git a/ld_script.txt b/ld_script.txt
index 6c5094245..2a6e4131d 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -9,7 +9,7 @@ SECTIONS {
ewram (NOLOAD) :
ALIGN(4)
{
-<EWRAM>
+ INCLUDE "sym_ewram.ld"
. = 0x40000;
}
@@ -20,14 +20,15 @@ SECTIONS {
ALIGN(4)
{
/* .bss starts at 0x3000000 */
-<BSS>
+ INCLUDE "sym_bss.ld"
/* .bss.code starts at 0x3000F60 */
src/libs/m4a_2.o(.bss.code);
/* COMMON starts at 0x3001760 */
-<COMMON>
-
+ INCLUDE "sym_common.ld"
+ tools/agbcc/lib/libc.a:sbrkr.o(COMMON);
+ end = .;
. = 0x8000;
}
@@ -36,7 +37,7 @@ SECTIONS {
.text :
ALIGN(4)
{
- asm/crt0.o(.text);
+ src/crt0.o(.text);
src/engine/main.o(.text);
src/engine/sprite.o(.text);
src/engine/text.o(.text);
@@ -50,8 +51,7 @@ SECTIONS {
src/rom_800D42C.o(.text);
asm/battle_1.o(.text_800DC24);
src/battle/battle_2.o(.text);
- asm/battle_2.o(.text);
- src/battle/battle_3.o(.text);
+ src/battle/battle_util.o(.text);
src/battle/battle_4.o(.text);
src/battle/battle_controller_player.o(.text);
src/battle/battle_7.o(.text);
@@ -61,7 +61,7 @@ SECTIONS {
src/pokemon/pokemon_1.o(.text);
src/battle/calculate_base_damage.o(.text);
src/pokemon/pokemon_2.o(.text);
- asm/pokemon_item_effect.o(.text);
+ src/pokemon/pokemon_item_effect.o(.text);
src/pokemon/pokemon_3.o(.text);
src/de_rom_8040FE0.o(.text);
src/engine/trig.o(.text);
@@ -100,6 +100,7 @@ SECTIONS {
src/engine/reset_rtc_screen.o(.text);
src/field/party_menu.o(.text);
src/field/start_menu.o(.text);
+ src/debug/start_menu_debug.o(.text);
src/engine/menu.o(.text);
src/engine/tileset_anim.o(.text);
src/engine/palette.o(.text);
@@ -116,11 +117,17 @@ SECTIONS {
src/field/field_screen_effect.o(.text);
src/battle/battle_setup.o(.text);
src/engine/cable_club.o(.text);
+ src/debug/tomomichi_debug_menu.o(.text);
+ asm/tomomichi_debug_menu.o(.text);
+ src/debug/nohara_debug_menu.o(.text);
+ asm/nohara_debug_menu.o(.text);
src/debug/mori_debug_menu.o(.text);
+ asm/taya_debug_window.o(.text);
+ src/debug/taya_debug_window.o(.text);
src/field/trainer_see.o(.text);
src/field/wild_encounter.o(.text);
src/field/field_effect.o(.text);
- src/unknown_task.o(.text);
+ src/scanline_effect.o(.text);
src/pokemon/pokemon_menu.o(.text);
src/engine/option_menu.o(.text);
src/pokemon/pokedex.o(.text);
@@ -128,22 +135,30 @@ SECTIONS {
src/engine/save_menu_util.o(.text);
src/battle/battle_party_menu.o(.text);
src/unk_text_8095904.o(.text);
- asm/pokemon_storage_system.o(.text);
src/pokemon/pokemon_storage_system.o(.text);
- asm/pokemon_storage_system.o(.text_8098A38);
+ src/pokemon/pokemon_storage_system_2.o(.text);
+ src/pokemon/pokemon_storage_system_3.o(.text);
+ src/pokemon/pokemon_storage_system_4.o(.text);
+ src/pokemon/pokemon_storage_system_5.o(.text);
+ asm/pokemon_storage_system.o(.text);
src/pokemon/pokemon_icon.o(.text);
src/pokemon/pokemon_summary_screen.o(.text);
src/field/script_movement.o(.text);
src/field/fldeff_cut.o(.text);
+ src/debug/kagaya_debug_menu.o(.text);
src/pokemon/mail_data.o(.text);
src/field/map_name_popup.o(.text);
src/field/item_menu.o(.text);
src/battle/battle_anim_80A7E7C.o(.text);
src/field/item.o(.text);
src/debug/matsuda_debug_menu.o(.text);
+ src/debug/crash.o(.text);
src/contest.o(.text);
src/field/shop.o(.text);
+ src/field/fldeff_escalator.o(.text);
src/field/berry.o(.text);
+ src/debug/watanabe_debug_menu.o(.text);
+ asm/watanabe_debug_menu.o(.text);
src/field/script_menu.o(.text);
src/engine/naming_screen.o(.text);
src/field/money.o(.text);
@@ -167,7 +182,6 @@ SECTIONS {
src/field/field_special_scene.o(.text);
src/field/rotating_gate.o(.text);
src/field/safari_zone.o(.text);
- asm/contest_link_80C857C.o(.text);
src/battle/contest_link_80C857C.o(.text);
src/field/item_use.o(.text);
src/battle/anim/powder.o(.text);
@@ -283,27 +297,27 @@ SECTIONS {
src/battle/anim/fire_2.o(.text);
src/battle/anim/heated_rock.o(.text);
src/battle/anim/wisp_orb.o(.text);
- asm/wisp_fire.o(.text);
+ src/battle/anim/wisp_fire.o(.text);
src/battle/anim/thunder.o(.text);
src/battle/anim/beta_beat_up.o(.text);
src/battle/anim/shock.o(.text);
asm/current.o(.text);
asm/ice.o(.text);
asm/fight.o(.text);
- asm/poison.o(.text);
+ src/battle/anim/poison.o(.text);
asm/flying.o(.text);
- asm/psychic.o(.text);
- asm/bug.o(.text);
- asm/rock.o(.text);
+ src/battle/anim/psychic.o(.text);
+ src/battle/anim/bug.o(.text);
+ src/battle/anim/rock.o(.text);
asm/ghost.o(.text);
- asm/dragon.o(.text);
- asm/dark.o(.text);
+ src/battle/anim/dragon.o(.text);
+ src/battle/anim/dark.o(.text);
asm/ground.o(.text);
asm/normal.o(.text);
- asm/battle_intro.o(.text);
+ src/battle/anim/battle_intro.o(.text);
src/field/bike.o(.text);
- asm/easy_chat.o(.text);
- src/field/easy_chat.o(.text);
+ src/easy_chat_1.o(.text);
+ src/easy_chat_2.o(.text);
src/pokenav_before.o(.text);
asm/pokenav.o(.text);
src/pokenav_after.o(.text);
@@ -319,10 +333,7 @@ SECTIONS {
src/scene/cute_sketch.o(.text);
asm/cute_sketch.o(.text);
src/field/decoration.o(.text);
- asm/slot_machine.o(.text);
src/field/slot_machine.o(.text);
- asm/slot_machine.o(.text_8104D30)
- src/field/slot_machine.o(.text_b);
src/scene/contest_painting.o(.text);
src/battle/battle_ai.o(.text);
src/field/trader.o(.text);
@@ -339,7 +350,7 @@ SECTIONS {
src/battle/battle_records.o(.text);
asm/pokedex_area_screen.o(.text);
src/scene/evolution_scene.o(.text);
- asm/roulette.o(.text);
+ src/roulette.o(.text);
asm/pokedex_cry_screen.o(.text);
src/pokemon/pokedex_cry_screen.o(.text);
asm/pokedex_cry_screen.o(.text_811A4F8);
@@ -350,15 +361,17 @@ SECTIONS {
src/battle/battle_controller_linkpartner.o(.text);
src/battle/battle_message.o(.text);
src/field/choose_party.o(.text);
- asm/cable_car.o(.text);
- asm/roulette_util.o(.text);
- asm/cable_car_util.o(.text);
+ src/scene/cable_car.o(.text);
+ src/roulette_util.o(.text);
+ src/engine/cable_car_util.o(.text);
src/unused_8124F94.o(.text);
src/engine/save.o(.text);
src/engine/mystery_event_script.o(.text);
+ asm/unk_debug_menu_3.o(.text);
src/field/field_effect_helpers.o(.text);
- asm/contest_ai.o(.text);
- asm/battle_anim_81258BC.o(.text);
+ src/contest_ai.o(.text);
+ src/unused_81258BC.o(.text);
+ src/battle/anim/sfx.o(.text);
src/battle/battle_controller_safari.o(.text);
src/field/fldeff_sweetscent.o(.text);
asm/battle_anim_812C144.o(.text);
@@ -383,6 +396,8 @@ SECTIONS {
src/field/braille_puzzles.o(.text);
src/pokemon/pokeblock_feed.o(.text);
src/engine/clear_save_data_menu.o(.text);
+ src/debug/nakamura_debug_menu.o(.text);
+ asm/nakamura_debug_menu.o(.text);
src/scene/intro_credits_graphics.o(.text);
src/scene/evolution_graphics.o(.text);
src/field/bard_music.o(.text);
@@ -409,8 +424,8 @@ SECTIONS {
lib_text :
ALIGN(4)
{
- asm/libgcnmultiboot.o(.text);
- asm/m4a_1.o(.text);
+ src/libs/libgcnmultiboot.o(.text);
+ src/libs/m4a_1.o(.text);
src/libs/m4a_2.o(.text);
asm/m4a_3.o(.text);
src/libs/m4a_4.o(.text);
@@ -418,7 +433,7 @@ SECTIONS {
src/libs/agb_flash_1m.o(.text);
src/libs/agb_flash_mx.o(.text);
src/libs/siirtc.o(.text);
- asm/libagbsyscall.o(.text);
+ src/libs/libagbsyscall.o(.text);
tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
tools/agbcc/lib/libgcc.a:_divsi3.o(.text);
tools/agbcc/lib/libgcc.a:_dvmd_tls.o(.text);
@@ -433,7 +448,41 @@ SECTIONS {
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);
- src/libs/libc.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: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);
+ src/libs/libisagbprn.o(.text);
} =0
.rodata :
@@ -447,15 +496,22 @@ SECTIONS {
src/engine/link.o(.rodata);
src/engine/rtc.o(.rodata);
src/engine/main_menu.o(.rodata);
- data/data2a.o(.rodata);
+ data/mon_attrs.o(.rodata);
+ data/btl_attrs.o(.rodata);
src/battle/battle_4.o(.rodata);
src/battle/battle_controller_player.o(.rodata);
- data/data2b.o(.rodata);
+ data/smokescreen.o(.rodata); /* why is smokescreen rodata way up here and not in the correct location? */
+ data/battle_7.o(.rodata);
src/battle/battle_controller_opponent.o(.rodata);
src/battle/battle_controller_linkopponent.o(.rodata);
data/battle_moves.o(.rodata);
- src/battle/battle_3.o(.rodata);
- src/pokemon/pokemon_data.o(.rodata);
+ src/battle/battle_util.o(.rodata);
+ src/pokemon/pokemon_1.o(.rodata);
+ src/pokemon/pokemon_1.o(.data); /* gEvolutionTable needs to be non-const to match */
+ src/battle/calculate_base_damage.o(.rodata);
+ src/pokemon/pokemon_2.o(.rodata);
+ src/pokemon/pokemon_item_effect.o(.rodata);
+ src/pokemon/pokemon_3.o(.rodata);
. = ALIGN(4);
src/engine/trig.o(.rodata);
src/engine/util.o(.rodata);
@@ -484,15 +540,22 @@ SECTIONS {
src/engine/reset_rtc_screen.o(.rodata);
src/field/party_menu.o(.rodata);
src/field/start_menu.o(.rodata);
+ src/debug/start_menu_debug.o(.data);
+ src/debug/start_menu_debug.o(.rodata);
+ data/start_menu_debug.o(.rodata);
src/engine/menu.o(.rodata);
src/engine/tileset_anim.o(.rodata);
src/engine/palette.o(.rodata);
src/engine/sound.o(.rodata);
- data/battle_anim.o(.rodata);
src/battle/battle_anim.o(.rodata);
src/rom_8077ABC.o(.rodata);
data/map_events.o(.rodata);
- data/data_8393054.o(.rodata);
+ data/unused_orb.o(.rodata); /* these files are clearly the rodata for latter part of rom_8077ABC, but the linker linked map_events before these objects for some reason. perhaps it was compiling and linking 2 folders at the same time? */
+ data/gray_sun.o(.rodata);
+ data/sparkle.o(.rodata);
+ data/unused_paw.o(.rodata);
+ data/unused_hit.o(.rodata);
+ data/unused_orb2.o(.rodata);
src/engine/task.o(.rodata);
src/battle/battle_anim_807B69C.o(.rodata);
src/scene/title_screen.o(.rodata);
@@ -501,7 +564,10 @@ SECTIONS {
src/field/field_screen_effect.o(.rodata);
src/battle/battle_setup.o(.rodata);
src/engine/cable_club.o(.rodata);
+ data/debug_menu_tomomichi.o(.rodata);
+ data/debug_menu_nohara.o(.rodata);
src/debug/mori_debug_menu.o(.rodata);
+ data/debug_menu_taya.o(.rodata);
src/field/trainer_see.o(.rodata);
src/field/wild_encounter.o(.rodata);
src/field/field_effect.o(.rodata);
@@ -510,17 +576,25 @@ SECTIONS {
src/pokemon/pokedex.o(.rodata);
src/engine/trainer_card.o(.rodata);
src/battle/battle_party_menu.o(.rodata);
+ src/pokemon/pokemon_storage_system.o(.rodata);
+ src/pokemon/pokemon_storage_system_2.o(.rodata);
+ src/pokemon/pokemon_storage_system_3.o(.rodata);
+ src/pokemon/pokemon_storage_system_4.o(.rodata);
+ src/pokemon/pokemon_storage_system_5.o(.rodata);
data/pokemon_storage_system.o(.rodata);
src/pokemon/pokemon_icon.o(.rodata);
src/pokemon/pokemon_summary_screen.o(.rodata);
src/field/fldeff_cut.o(.rodata);
+ src/debug/kagaya_debug_menu.o(.rodata);
src/field/item_menu.o(.rodata);
- data/battle_anim_80A7E7C.o(.rodata);
+ src/battle/battle_anim_80A7E7C.o(.rodata);
src/field/item.o(.rodata);
src/debug/matsuda_debug_menu.o(.rodata);
data/contest.o(.rodata);
src/field/shop.o(.rodata);
+ src/field/fldeff_escalator.o(.rodata);
src/field/berry.o(.rodata);
+ data/debug_menu_watanabe.o(.rodata);
src/field/script_menu.o(.rodata);
src/engine/naming_screen.o(.rodata);
src/field/money.o(.rodata);
@@ -541,7 +615,10 @@ SECTIONS {
src/field/rotating_gate.o(.rodata);
src/field/item_use.o(.rodata);
data/battle_anim_80CA710.o(.rodata);
+ src/battle/anim/battle_intro.o(.rodata);
src/field/bike.o(.rodata);
+ src/easy_chat_1.o(.rodata);
+ src/easy_chat_2.o(.rodata);
data/easy_chat.o(.rodata);
data/pokenav.o(.rodata);
src/pokemon/mon_markings.o(.rodata);
@@ -552,7 +629,7 @@ SECTIONS {
src/field/region_map.o(.rodata);
data/cute_sketch.o(.rodata);
src/field/decoration.o(.rodata);
- data/slot_machine.o(.rodata);
+ src/field/slot_machine.o(.rodata);
src/scene/contest_painting.o(.rodata);
src/battle/battle_ai.o(.rodata);
src/field/trader.o(.rodata);
@@ -562,6 +639,7 @@ SECTIONS {
src/field/fldeff_flash.o(.rodata);
src/engine/time_events.o(.rodata);
src/field/field_specials.o(.rodata);
+ src/battle/battle_records.o(.rodata);
data/pokedex_area_screen.o(.rodata);
src/scene/evolution_scene.o(.rodata);
data/roulette.o(.rodata);
@@ -571,10 +649,11 @@ SECTIONS {
src/battle/battle_controller_linkpartner.o(.rodata);
src/battle/battle_message.o(.rodata);
src/field/choose_party.o(.rodata);
- data/cable_car.o(.rodata);
+ src/scene/cable_car.o(.rodata);
src/engine/save.o(.rodata);
+ data/unk_debug_menu_3.o(.rodata);
src/field/field_effect_helpers.o(.rodata);
- data/contest_ai.o(.rodata);
+ src/contest_ai.o(.rodata);
src/battle/battle_controller_safari.o(.rodata);
data/battle_anim_812C144.o(.rodata);
src/pokemon/learn_move.o(.rodata);
@@ -592,8 +671,10 @@ SECTIONS {
src/field/diploma.o(.rodata);
src/strings.o(.rodata);
src/field/berry_tag_screen.o(.rodata);
+ data/debug_mystery_event_menu.o(.rodata);
src/engine/save_failed_screen.o(.rodata);
src/pokemon/pokeblock_feed.o(.rodata);
+ src/debug/nakamura_debug_menu.o(.rodata);
src/scene/intro_credits_graphics.o(.rodata);
src/scene/evolution_graphics.o(.rodata);
src/field/bard_music.o(.rodata);
@@ -601,6 +682,7 @@ SECTIONS {
data/strings2.o(.rodata);
src/engine/menu_cursor.o(.rodata);
src/engine/mystery_event_msg.o(.rodata);
+ data/debug_menu_3.o(.rodata);
src/libs/m4a_tables.o(.rodata);
data/sound_data.o(.rodata);
} =0
@@ -1036,6 +1118,9 @@ SECTIONS {
src/libs/agb_flash_le.o(.rodata);
src/libs/siirtc.o(.rodata);
tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
+ tools/agbcc/lib/libc.a(.rodata);
+ tools/agbcc/lib/libc.a(.data);
+ src/libs/libisagbprn.o(.rodata);
} =0
. = 0x8D00000;
diff --git a/misc.mk b/misc.mk
index 1d6cb09b0..40234c81b 100644
--- a/misc.mk
+++ b/misc.mk
@@ -1,143 +1,149 @@
-MENUGFXDIR := graphics/interface
-TRADEGFXDIR := graphics/trade
-INTROGFXDIR := graphics/intro
-PSSGFXDIR := graphics/pokemon_storage
-MISCGFXDIR := graphics/misc
-PKNAVGFXDIR := graphics/pokenav
-UNKNOWNGFXDIR := graphics/unknown
-UNUSEDGFXDIR := graphics/unused
-REELGFXDIR := graphics/slot_machine
-ROULGFXDIR := graphics/roulette
-BTLANMSPRGFXDIR := graphics/battle_anims/sprites
-PICFRAMEGFXDIR := graphics/picture_frame
-CONTESTGFXDIR := graphics/contest
-MASKSGFXDIR := graphics/battle_anims/masks
-BATTRANSGFXDIR := graphics/battle_transitions
-TYPESGFXDIR := graphics/types
-TITLEGFXDIR := graphics/title_screen
+#### Pokemon Storage System ####
-types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
-contest_types := cool beauty cute smart tough
-
-$(MENUGFXDIR)/menu.gbapal: $(MENUGFXDIR)/menu_0.gbapal $(MENUGFXDIR)/menu_1.gbapal
- @cat $(MENUGFXDIR)/menu_0.gbapal $(MENUGFXDIR)/menu_1.gbapal >$@
-
-$(INTROGFXDIR)/intro.4bpp: $(INTROGFXDIR)/intro1_waterdrops.4bpp $(INTROGFXDIR)/intro1_gamefreak.4bpp
- @cat $(INTROGFXDIR)/intro1_waterdrops.4bpp $(INTROGFXDIR)/intro1_gamefreak.4bpp >$@
-
-$(INTROGFXDIR)/introgfx.4bpp: $(INTROGFXDIR)/intro1_bg.4bpp $(INTROGFXDIR)/intro1_leaves.4bpp
- @cat $(INTROGFXDIR)/intro1_bg.4bpp $(INTROGFXDIR)/intro1_leaves.4bpp >$@
+PSSGFXDIR := graphics/pokemon_storage
-$(PKNAVGFXDIR)/region_map.8bpp: $(PKNAVGFXDIR)/region_map.png
- $(GFX) $< $@ -num_tiles 233
+$(PSSGFXDIR)/header.4bpp: GFX_OPTS := -num_tiles 47
-$(PSSGFXDIR)/forest_frame.4bpp: $(PSSGFXDIR)/forest_frame.png
- $(GFX) $< $@ -num_tiles 49
+$(PSSGFXDIR)/misc1.4bpp: GFX_OPTS := -num_tiles 91
+$(PSSGFXDIR)/forest_frame.4bpp: GFX_OPTS := -num_tiles 49
$(PSSGFXDIR)/forest.4bpp: $(PSSGFXDIR)/forest_frame.4bpp $(PSSGFXDIR)/forest_bg.4bpp
@cat $(PSSGFXDIR)/forest_frame.4bpp $(PSSGFXDIR)/forest_bg.4bpp >$@
-$(PSSGFXDIR)/city_frame.4bpp: $(PSSGFXDIR)/city_frame.png
- $(GFX) $< $@ -num_tiles 37
-
+$(PSSGFXDIR)/city_frame.4bpp: GFX_OPTS := -num_tiles 37
$(PSSGFXDIR)/city.4bpp: $(PSSGFXDIR)/city_frame.4bpp $(PSSGFXDIR)/city_bg.4bpp
@cat $(PSSGFXDIR)/city_frame.4bpp $(PSSGFXDIR)/city_bg.4bpp >$@
-$(PSSGFXDIR)/desert_frame.4bpp: $(PSSGFXDIR)/desert_frame.png
- $(GFX) $< $@ -num_tiles 48
-
+$(PSSGFXDIR)/desert_frame.4bpp: GFX_OPTS := -num_tiles 48
$(PSSGFXDIR)/desert.4bpp: $(PSSGFXDIR)/desert_frame.4bpp $(PSSGFXDIR)/desert_bg.4bpp
@cat $(PSSGFXDIR)/desert_frame.4bpp $(PSSGFXDIR)/desert_bg.4bpp >$@
-$(PSSGFXDIR)/savanna_frame.4bpp: $(PSSGFXDIR)/savanna_frame.png
- $(GFX) $< $@ -num_tiles 40
-
+$(PSSGFXDIR)/savanna_frame.4bpp: GFX_OPTS := -num_tiles 40
$(PSSGFXDIR)/savanna.4bpp: $(PSSGFXDIR)/savanna_frame.4bpp $(PSSGFXDIR)/savanna_bg.4bpp
@cat $(PSSGFXDIR)/savanna_frame.4bpp $(PSSGFXDIR)/savanna_bg.4bpp >$@
-$(PSSGFXDIR)/crag_frame.4bpp: $(PSSGFXDIR)/crag_frame.png
- $(GFX) $< $@ -num_tiles 46
-
+$(PSSGFXDIR)/crag_frame.4bpp: GFX_OPTS := -num_tiles 46
$(PSSGFXDIR)/crag.4bpp: $(PSSGFXDIR)/crag_frame.4bpp $(PSSGFXDIR)/crag_bg.4bpp
@cat $(PSSGFXDIR)/crag_frame.4bpp $(PSSGFXDIR)/crag_bg.4bpp >$@
-$(PSSGFXDIR)/volcano_frame.4bpp: $(PSSGFXDIR)/volcano_frame.png
- $(GFX) $< $@ -num_tiles 49
-
+$(PSSGFXDIR)/volcano_frame.4bpp: GFX_OPTS := -num_tiles 49
$(PSSGFXDIR)/volcano.4bpp: $(PSSGFXDIR)/volcano_frame.4bpp $(PSSGFXDIR)/volcano_bg.4bpp
@cat $(PSSGFXDIR)/volcano_frame.4bpp $(PSSGFXDIR)/volcano_bg.4bpp >$@
-$(PSSGFXDIR)/snow_frame.4bpp: $(PSSGFXDIR)/snow_frame.png
- $(GFX) $< $@ -num_tiles 46
-
+$(PSSGFXDIR)/snow_frame.4bpp: GFX_OPTS := -num_tiles 46
$(PSSGFXDIR)/snow.4bpp: $(PSSGFXDIR)/snow_frame.4bpp $(PSSGFXDIR)/snow_bg.4bpp
@cat $(PSSGFXDIR)/snow_frame.4bpp $(PSSGFXDIR)/snow_bg.4bpp >$@
-$(PSSGFXDIR)/cave_frame.4bpp: $(PSSGFXDIR)/cave_frame.png
- $(GFX) $< $@ -num_tiles 57
-
+$(PSSGFXDIR)/cave_frame.4bpp: GFX_OPTS := -num_tiles 57
$(PSSGFXDIR)/cave.4bpp: $(PSSGFXDIR)/cave_frame.4bpp $(PSSGFXDIR)/cave_bg.4bpp
@cat $(PSSGFXDIR)/cave_frame.4bpp $(PSSGFXDIR)/cave_bg.4bpp >$@
-$(PSSGFXDIR)/beach_frame.4bpp: $(PSSGFXDIR)/beach_frame.png
- $(GFX) $< $@ -num_tiles 48
-
+$(PSSGFXDIR)/beach_frame.4bpp: GFX_OPTS := -num_tiles 48
$(PSSGFXDIR)/beach.4bpp: $(PSSGFXDIR)/beach_frame.4bpp $(PSSGFXDIR)/beach_bg.4bpp
@cat $(PSSGFXDIR)/beach_frame.4bpp $(PSSGFXDIR)/beach_bg.4bpp >$@
-$(PSSGFXDIR)/seafloor_frame.4bpp: $(PSSGFXDIR)/seafloor_frame.png
- $(GFX) $< $@ -num_tiles 45
-
+$(PSSGFXDIR)/seafloor_frame.4bpp: GFX_OPTS := -num_tiles 45
$(PSSGFXDIR)/seafloor.4bpp: $(PSSGFXDIR)/seafloor_frame.4bpp $(PSSGFXDIR)/seafloor_bg.4bpp
@cat $(PSSGFXDIR)/seafloor_frame.4bpp $(PSSGFXDIR)/seafloor_bg.4bpp >$@
-$(PSSGFXDIR)/river_frame.4bpp: $(PSSGFXDIR)/river_frame.png
- $(GFX) $< $@ -num_tiles 57
-
+$(PSSGFXDIR)/river_frame.4bpp: GFX_OPTS := -num_tiles 57
$(PSSGFXDIR)/river.4bpp: $(PSSGFXDIR)/river_frame.4bpp $(PSSGFXDIR)/river_bg.4bpp
@cat $(PSSGFXDIR)/river_frame.4bpp $(PSSGFXDIR)/river_bg.4bpp >$@
-$(PSSGFXDIR)/sky_frame.4bpp: $(PSSGFXDIR)/sky_frame.png
- $(GFX) $< $@ -num_tiles 45
-
+$(PSSGFXDIR)/sky_frame.4bpp: GFX_OPTS := -num_tiles 45
$(PSSGFXDIR)/sky.4bpp: $(PSSGFXDIR)/sky_frame.4bpp $(PSSGFXDIR)/sky_bg.4bpp
@cat $(PSSGFXDIR)/sky_frame.4bpp $(PSSGFXDIR)/sky_bg.4bpp >$@
-$(PSSGFXDIR)/polkadot_frame.4bpp: $(PSSGFXDIR)/polkadot_frame.png
- $(GFX) $< $@ -num_tiles 34
-
+$(PSSGFXDIR)/polkadot_frame.4bpp: GFX_OPTS := -num_tiles 34
$(PSSGFXDIR)/polkadot.4bpp: $(PSSGFXDIR)/polkadot_frame.4bpp $(PSSGFXDIR)/polkadot_bg.4bpp
@cat $(PSSGFXDIR)/polkadot_frame.4bpp $(PSSGFXDIR)/polkadot_bg.4bpp >$@
-$(PSSGFXDIR)/pokecenter_bg.4bpp: $(PSSGFXDIR)/pokecenter_bg.png
- $(GFX) $< $@ -num_tiles 38
-
+$(PSSGFXDIR)/pokecenter_bg.4bpp: GFX_OPTS := -num_tiles 38
$(PSSGFXDIR)/pokecenter.4bpp: $(PSSGFXDIR)/pokecenter_frame.4bpp $(PSSGFXDIR)/pokecenter_bg.4bpp
@cat $(PSSGFXDIR)/pokecenter_frame.4bpp $(PSSGFXDIR)/pokecenter_bg.4bpp >$@
-$(PSSGFXDIR)/machine_frame.4bpp: $(PSSGFXDIR)/machine_frame.png
- $(GFX) $< $@ -num_tiles 46
-
+$(PSSGFXDIR)/machine_frame.4bpp: GFX_OPTS := -num_tiles 46
$(PSSGFXDIR)/machine.4bpp: $(PSSGFXDIR)/machine_frame.4bpp $(PSSGFXDIR)/machine_bg.4bpp
@cat $(PSSGFXDIR)/machine_frame.4bpp $(PSSGFXDIR)/machine_bg.4bpp >$@
-$(PSSGFXDIR)/plain_frame.4bpp: $(PSSGFXDIR)/plain_frame.png
- $(GFX) $< $@ -num_tiles 18
-
+$(PSSGFXDIR)/plain_frame.4bpp: GFX_OPTS := -num_tiles 18
$(PSSGFXDIR)/plain.4bpp: $(PSSGFXDIR)/plain_frame.4bpp $(PSSGFXDIR)/plain_bg.4bpp
@cat $(PSSGFXDIR)/plain_frame.4bpp $(PSSGFXDIR)/plain_bg.4bpp >$@
-$(PKNAVGFXDIR)/outline.4bpp: $(PKNAVGFXDIR)/outline.png
- $(GFX) $< $@ -num_tiles 43
-$(REELGFXDIR)/reel_time.4bpp: $(REELGFXDIR)/reel_pikachu.4bpp $(REELGFXDIR)/reel_machine.4bpp
- @cat $(REELGFXDIR)/reel_pikachu.4bpp $(REELGFXDIR)/reel_machine.4bpp >$@
+#### Intro ####
-$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp
- @cat $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp >$@
+INTROGFXDIR := graphics/intro
-$(MISCGFXDIR)/clock_misc.4bpp: $(MISCGFXDIR)/clock_hands.4bpp $(MISCGFXDIR)/clock_ampm.4bpp
- @cat $(MISCGFXDIR)/clock_hands.4bpp $(MISCGFXDIR)/clock_ampm.4bpp >$@
+$(INTROGFXDIR)/intro.4bpp: $(INTROGFXDIR)/intro1_waterdrops.4bpp $(INTROGFXDIR)/intro1_gamefreak.4bpp
+ @cat $(INTROGFXDIR)/intro1_waterdrops.4bpp $(INTROGFXDIR)/intro1_gamefreak.4bpp >$@
+
+$(INTROGFXDIR)/introgfx.4bpp: $(INTROGFXDIR)/intro1_bg.4bpp $(INTROGFXDIR)/intro1_leaves.4bpp
+ @cat $(INTROGFXDIR)/intro1_bg.4bpp $(INTROGFXDIR)/intro1_leaves.4bpp >$@
+
+$(INTROGFXDIR)/intro3_misc.4bpp: $(INTROGFXDIR)/intro3_star.4bpp $(INTROGFXDIR)/intro3_attackgfx.4bpp $(INTROGFXDIR)/intro3_explosion.4bpp
+ @cat $(INTROGFXDIR)/intro3_star.4bpp $(INTROGFXDIR)/intro3_attackgfx.4bpp $(INTROGFXDIR)/intro3_explosion.4bpp >$@
+
+$(INTROGFXDIR)/copyright.4bpp: GFX_OPTS := -num_tiles 43
+
+
+#### Title Screen ####
+
+TITLEGFXDIR := graphics/title_screen
+
+$(TITLEGFXDIR)/press_start.4bpp: GFX_OPTS := -num_tiles 41
+
+
+#### Interface ####
+
+MENUGFXDIR := graphics/interface
+
+$(MENUGFXDIR)/menu.gbapal: $(MENUGFXDIR)/menu_0.gbapal $(MENUGFXDIR)/menu_1.gbapal
+ @cat $(MENUGFXDIR)/menu_0.gbapal $(MENUGFXDIR)/menu_1.gbapal >$@
+
+$(MENUGFXDIR)/wordgroup_frame.4bpp: GFX_OPTS := -num_tiles 65
+
+$(MENUGFXDIR)/party_menu_misc.4bpp: GFX_OPTS := -num_tiles 116
+
+$(MENUGFXDIR)/status_screen.4bpp: GFX_OPTS := -num_tiles 217
+
+$(MENUGFXDIR)/hp_numbers.4bpp: $(MENUGFXDIR)/hpbar_anim.4bpp $(MENUGFXDIR)/numbers1.4bpp $(MENUGFXDIR)/numbers2.4bpp
+ @cat $(MENUGFXDIR)/hpbar_anim.4bpp $(MENUGFXDIR)/numbers1.4bpp $(MENUGFXDIR)/numbers2.4bpp >$@
+
+
+#### PokeNav ####
+
+PKNAVGFXDIR := graphics/pokenav
+
+$(PKNAVGFXDIR)/region_map.8bpp: GFX_OPTS := -num_tiles 233
+
+$(PKNAVGFXDIR)/outline.4bpp: GFX_OPTS := -num_tiles 43
+
+$(PKNAVGFXDIR)/menu_options.4bpp: $(PKNAVGFXDIR)/menu_hoennmap.4bpp $(PKNAVGFXDIR)/menu_condition.4bpp $(PKNAVGFXDIR)/menu_eyes.4bpp $(PKNAVGFXDIR)/menu_ribbons.4bpp $(PKNAVGFXDIR)/menu_off.4bpp
+ @cat $(PKNAVGFXDIR)/menu_hoennmap.4bpp $(PKNAVGFXDIR)/menu_condition.4bpp $(PKNAVGFXDIR)/menu_eyes.4bpp $(PKNAVGFXDIR)/menu_ribbons.4bpp $(PKNAVGFXDIR)/menu_off.4bpp >$@
+
+$(PKNAVGFXDIR)/condition_menu_misc.4bpp: GFX_OPTS := -num_tiles 41
+
+$(PKNAVGFXDIR)/condition_search.4bpp: $(PKNAVGFXDIR)/condition_search_cool.4bpp $(PKNAVGFXDIR)/condition_search_beauty.4bpp $(PKNAVGFXDIR)/condition_search_cute.4bpp $(PKNAVGFXDIR)/condition_search_smart.4bpp $(PKNAVGFXDIR)/condition_search_tough.4bpp $(PKNAVGFXDIR)/condition_search_cancel.4bpp
+ @cat $(PKNAVGFXDIR)/condition_search_cool.4bpp $(PKNAVGFXDIR)/condition_search_beauty.4bpp $(PKNAVGFXDIR)/condition_search_cute.4bpp $(PKNAVGFXDIR)/condition_search_smart.4bpp $(PKNAVGFXDIR)/condition_search_tough.4bpp $(PKNAVGFXDIR)/condition_search_cancel.4bpp >$@
+
+
+#### Trade ####
+
+TRADEGFXDIR := graphics/trade
+
+$(TRADEGFXDIR)/gba_affine.8bpp: GFX_OPTS := -num_tiles 129
+
+$(TRADEGFXDIR)/menu.4bpp: GFX_OPTS := -num_tiles 148
+
+
+#### Casino ####
+
+REELGFXDIR := graphics/slot_machine
+ROULGFXDIR := graphics/roulette
+
+$(REELGFXDIR)/reel_time.4bpp: $(REELGFXDIR)/reel_pikachu.4bpp $(REELGFXDIR)/reel_machine.4bpp
+ @cat $(REELGFXDIR)/reel_pikachu.4bpp $(REELGFXDIR)/reel_machine.4bpp >$@
$(ROULGFXDIR)/roulette_tilt.4bpp: $(ROULGFXDIR)/shroomish.4bpp $(ROULGFXDIR)/tailow.4bpp
@cat $(ROULGFXDIR)/shroomish.4bpp $(ROULGFXDIR)/tailow.4bpp >$@
@@ -145,14 +151,11 @@ $(ROULGFXDIR)/roulette_tilt.4bpp: $(ROULGFXDIR)/shroomish.4bpp $(ROULGFXDIR)/tai
$(ROULGFXDIR)/poke_icons2.4bpp: $(ROULGFXDIR)/wynaut.4bpp $(ROULGFXDIR)/azurill.4bpp $(ROULGFXDIR)/skitty.4bpp $(ROULGFXDIR)/makuhita.4bpp
@cat $(ROULGFXDIR)/wynaut.4bpp $(ROULGFXDIR)/azurill.4bpp $(ROULGFXDIR)/skitty.4bpp $(ROULGFXDIR)/makuhita.4bpp >$@
-$(INTROGFXDIR)/intro3_misc.4bpp: $(INTROGFXDIR)/intro3_star.4bpp $(INTROGFXDIR)/intro3_attackgfx.4bpp $(INTROGFXDIR)/intro3_explosion.4bpp
- @cat $(INTROGFXDIR)/intro3_star.4bpp $(INTROGFXDIR)/intro3_attackgfx.4bpp $(INTROGFXDIR)/intro3_explosion.4bpp >$@
-$(TRADEGFXDIR)/gba_affine.8bpp: $(TRADEGFXDIR)/gba_affine.png
- $(GFX) $< $@ -num_tiles 129
+#### Battle Animations ####
-$(TRADEGFXDIR)/menu.4bpp: $(TRADEGFXDIR)/menu.png
- $(GFX) $< $@ -num_tiles 148
+BTLANMSPRGFXDIR := graphics/battle_anims/sprites
+MASKSGFXDIR := graphics/battle_anims/masks
$(BTLANMSPRGFXDIR)/001.4bpp: $(BTLANMSPRGFXDIR)/001_0.4bpp $(BTLANMSPRGFXDIR)/001_1.4bpp
@cat $(BTLANMSPRGFXDIR)/001_0.4bpp $(BTLANMSPRGFXDIR)/001_1.4bpp >$@
@@ -169,47 +172,36 @@ $(BTLANMSPRGFXDIR)/141.4bpp: $(BTLANMSPRGFXDIR)/141_0.4bpp $(BTLANMSPRGFXDIR)/14
$(BTLANMSPRGFXDIR)/159.4bpp: $(BTLANMSPRGFXDIR)/159_0.4bpp $(BTLANMSPRGFXDIR)/159_1.4bpp
@cat $(BTLANMSPRGFXDIR)/159_0.4bpp $(BTLANMSPRGFXDIR)/159_1.4bpp >$@
-$(PICFRAMEGFXDIR)/frame5.4bpp: $(PICFRAMEGFXDIR)/frame5.png
- $(GFX) $< $@ -num_tiles 86
+$(MASKSGFXDIR)/unknown_D2EDFC.4bpp: GFX_OPTS := -num_tiles 14
-$(CONTESTGFXDIR)/nextturn.4bpp: $(CONTESTGFXDIR)/nextturn.png
- $(GFX) $< $@ -num_tiles 8
-$(UNUSEDGFXDIR)/obi_palpak1.gbapal: $(UNUSEDGFXDIR)/old_pal1.gbapal $(UNUSEDGFXDIR)/old_pal2.gbapal $(UNUSEDGFXDIR)/old_pal3.gbapal
- @cat $(UNUSEDGFXDIR)/old_pal1.gbapal $(UNUSEDGFXDIR)/old_pal2.gbapal $(UNUSEDGFXDIR)/old_pal3.gbapal >$@
+#### Battle Transition
-$(UNUSEDGFXDIR)/obi_palpak3.gbapal: $(UNUSEDGFXDIR)/old_pal5.gbapal $(UNUSEDGFXDIR)/old_pal6.gbapal $(UNUSEDGFXDIR)/old_pal7.gbapal
- @cat $(UNUSEDGFXDIR)/old_pal5.gbapal $(UNUSEDGFXDIR)/old_pal6.gbapal $(UNUSEDGFXDIR)/old_pal7.gbapal >$@
+BATTRANSGFXDIR := graphics/battle_transitions
-$(UNUSEDGFXDIR)/obi1.4bpp: $(UNUSEDGFXDIR)/old_bulbasaur.4bpp $(UNUSEDGFXDIR)/old_charizard.4bpp
- @cat $(UNUSEDGFXDIR)/old_bulbasaur.4bpp $(UNUSEDGFXDIR)/old_charizard.4bpp >$@
+$(BATTRANSGFXDIR)/vs_frame.4bpp: GFX_OPTS := -num_tiles 16
-$(UNUSEDGFXDIR)/obi2.4bpp: $(UNUSEDGFXDIR)/old_bulbasaur2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_1.4bpp $(UNUSEDGFXDIR)/old_battle_interface_2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_3.4bpp
- @cat $(UNUSEDGFXDIR)/old_bulbasaur2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_1.4bpp $(UNUSEDGFXDIR)/old_battle_interface_2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_3.4bpp >$@
-$(MENUGFXDIR)/hp_numbers.4bpp: $(MENUGFXDIR)/hpbar_anim.4bpp $(MENUGFXDIR)/numbers1.4bpp $(MENUGFXDIR)/numbers2.4bpp
- @cat $(MENUGFXDIR)/hpbar_anim.4bpp $(MENUGFXDIR)/numbers1.4bpp $(MENUGFXDIR)/numbers2.4bpp >$@
+#### Contest ####
-$(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin $(UNUSEDGFXDIR)/yellow_frame.bin $(UNUSEDGFXDIR)/green_frame.bin $(UNUSEDGFXDIR)/blank_frame.bin
- @cat $(UNUSEDGFXDIR)/red_frame.bin $(UNUSEDGFXDIR)/yellow_frame.bin $(UNUSEDGFXDIR)/green_frame.bin $(UNUSEDGFXDIR)/blank_frame.bin >$@
+CONTESTGFXDIR := graphics/contest
-$(UNUSEDGFXDIR)/color_frames.4bpp: $(UNUSEDGFXDIR)/color_frames.png
- $(GFX) $< $@ -num_tiles 353
+$(CONTESTGFXDIR)/nextturn.4bpp: GFX_OPTS := -num_tiles 8
-$(UNUSEDGFXDIR)/old_contest.4bpp: $(UNUSEDGFXDIR)/old_contest_frame_1.4bpp $(UNUSEDGFXDIR)/old_contest_floor.4bpp $(UNUSEDGFXDIR)/old_contest_frame_2.4bpp $(UNUSEDGFXDIR)/old_contest_symbols.4bpp $(UNUSEDGFXDIR)/old_contest_meter.4bpp $(UNUSEDGFXDIR)/old_contest_classes.4bpp $(UNUSEDGFXDIR)/old_contest_numbers.4bpp
- @cat $(UNUSEDGFXDIR)/old_contest_frame_1.4bpp $(UNUSEDGFXDIR)/old_contest_floor.4bpp $(UNUSEDGFXDIR)/old_contest_frame_2.4bpp $(UNUSEDGFXDIR)/old_contest_symbols.4bpp $(UNUSEDGFXDIR)/old_contest_meter.4bpp $(UNUSEDGFXDIR)/old_contest_classes.4bpp $(UNUSEDGFXDIR)/old_contest_numbers.4bpp >$@
-$(UNUSEDGFXDIR)/old_contest_2.4bpp: $(UNUSEDGFXDIR)/old_contest_2_1.4bpp $(UNUSEDGFXDIR)/old_contest_2_2.4bpp
- @cat $(UNUSEDGFXDIR)/old_contest_2_1.4bpp $(UNUSEDGFXDIR)/old_contest_2_2.4bpp >$@
+#### Picture Frame ####
-$(MASKSGFXDIR)/unknown_D2EDFC.4bpp: $(MASKSGFXDIR)/unknown_D2EDFC.png
- $(GFX) $< $@ -num_tiles 14
+PICFRAMEGFXDIR := graphics/picture_frame
+
+$(PICFRAMEGFXDIR)/frame5.4bpp: GFX_OPTS := -num_tiles 86
-$(BATTRANSGFXDIR)/vs_frame.4bpp: $(BATTRANSGFXDIR)/vs_frame.png
- $(GFX) $< $@ -num_tiles 16
-$(MENUGFXDIR)/party_menu_misc.4bpp: $(MENUGFXDIR)/party_menu_misc.png
- $(GFX) $< $@ -num_tiles 116
+#### Move Types ####
+
+TYPESGFXDIR := graphics/types
+
+types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark
+contest_types := cool beauty cute smart tough
$(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types:%=$(TYPESGFXDIR)/contest_%.4bpp)
@cat $^ >$@
@@ -217,35 +209,45 @@ $(TYPESGFXDIR)/move_types.4bpp: $(types:%=$(TYPESGFXDIR)/%.4bpp) $(contest_types
$(TYPESGFXDIR)/move_types.gbapal: $(TYPESGFXDIR)/move_types_1.gbapal $(TYPESGFXDIR)/move_types_2.gbapal $(TYPESGFXDIR)/move_types_3.gbapal
@cat $(TYPESGFXDIR)/move_types_1.gbapal $(TYPESGFXDIR)/move_types_2.gbapal $(TYPESGFXDIR)/move_types_3.gbapal >$@
-$(MENUGFXDIR)/status_screen.4bpp: $(MENUGFXDIR)/status_screen.png
- $(GFX) $< $@ -num_tiles 217
-$(PKNAVGFXDIR)/menu_options.4bpp: $(PKNAVGFXDIR)/menu_hoennmap.4bpp $(PKNAVGFXDIR)/menu_condition.4bpp $(PKNAVGFXDIR)/menu_eyes.4bpp $(PKNAVGFXDIR)/menu_ribbons.4bpp $(PKNAVGFXDIR)/menu_off.4bpp
- @cat $(PKNAVGFXDIR)/menu_hoennmap.4bpp $(PKNAVGFXDIR)/menu_condition.4bpp $(PKNAVGFXDIR)/menu_eyes.4bpp $(PKNAVGFXDIR)/menu_ribbons.4bpp $(PKNAVGFXDIR)/menu_off.4bpp >$@
+#### Miscellaneous ####
-$(PKNAVGFXDIR)/condition_menu_misc.4bpp: $(PKNAVGFXDIR)/condition_menu_misc.png
- $(GFX) $< $@ -num_tiles 41
+MISCGFXDIR := graphics/misc
-$(PKNAVGFXDIR)/condition_search.4bpp: $(PKNAVGFXDIR)/condition_search_cool.4bpp $(PKNAVGFXDIR)/condition_search_beauty.4bpp $(PKNAVGFXDIR)/condition_search_cute.4bpp $(PKNAVGFXDIR)/condition_search_smart.4bpp $(PKNAVGFXDIR)/condition_search_tough.4bpp $(PKNAVGFXDIR)/condition_search_cancel.4bpp
- @cat $(PKNAVGFXDIR)/condition_search_cool.4bpp $(PKNAVGFXDIR)/condition_search_beauty.4bpp $(PKNAVGFXDIR)/condition_search_cute.4bpp $(PKNAVGFXDIR)/condition_search_smart.4bpp $(PKNAVGFXDIR)/condition_search_tough.4bpp $(PKNAVGFXDIR)/condition_search_cancel.4bpp >$@
+$(MISCGFXDIR)/hof.4bpp: GFX_OPTS := -num_tiles 37
-$(PSSGFXDIR)/header.4bpp: $(PSSGFXDIR)/header.png
- $(GFX) $< $@ -num_tiles 47
+$(MISCGFXDIR)/end_copyright.4bpp: GFX_OPTS := -num_tiles 90
-$(PSSGFXDIR)/misc1.4bpp: $(PSSGFXDIR)/misc1.png
- $(GFX) $< $@ -num_tiles 91
+$(MISCGFXDIR)/birch_help.4bpp: $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp
+ @cat $(MISCGFXDIR)/birch_bag.4bpp $(MISCGFXDIR)/birch_grass.4bpp >$@
-$(MISCGFXDIR)/hof.4bpp: $(MISCGFXDIR)/hof.png
- $(GFX) $< $@ -num_tiles 37
+$(MISCGFXDIR)/clock_misc.4bpp: $(MISCGFXDIR)/clock_hands.4bpp $(MISCGFXDIR)/clock_ampm.4bpp
+ @cat $(MISCGFXDIR)/clock_hands.4bpp $(MISCGFXDIR)/clock_ampm.4bpp >$@
-$(MENUGFXDIR)/wordgroup_frame.4bpp: $(MENUGFXDIR)/wordgroup_frame.png
- $(GFX) $< $@ -num_tiles 65
-$(INTROGFXDIR)/copyright.4bpp: $(INTROGFXDIR)/copyright.png
- $(GFX) $< $@ -num_tiles 43
+#### Unused ####
-$(TITLEGFXDIR)/press_start.4bpp: $(TITLEGFXDIR)/press_start.png
- $(GFX) $< $@ -num_tiles 41
+UNUSEDGFXDIR := graphics/unused
-$(MISCGFXDIR)/end_copyright.4bpp: $(MISCGFXDIR)/end_copyright.png
- $(GFX) $< $@ -num_tiles 90
+$(UNUSEDGFXDIR)/redyellowgreen_frame.bin: $(UNUSEDGFXDIR)/red_frame.bin $(UNUSEDGFXDIR)/yellow_frame.bin $(UNUSEDGFXDIR)/green_frame.bin $(UNUSEDGFXDIR)/blank_frame.bin
+ @cat $(UNUSEDGFXDIR)/red_frame.bin $(UNUSEDGFXDIR)/yellow_frame.bin $(UNUSEDGFXDIR)/green_frame.bin $(UNUSEDGFXDIR)/blank_frame.bin >$@
+
+$(UNUSEDGFXDIR)/color_frames.4bpp: GFX_OPTS := -num_tiles 353
+
+$(UNUSEDGFXDIR)/old_contest.4bpp: $(UNUSEDGFXDIR)/old_contest_frame_1.4bpp $(UNUSEDGFXDIR)/old_contest_floor.4bpp $(UNUSEDGFXDIR)/old_contest_frame_2.4bpp $(UNUSEDGFXDIR)/old_contest_symbols.4bpp $(UNUSEDGFXDIR)/old_contest_meter.4bpp $(UNUSEDGFXDIR)/old_contest_classes.4bpp $(UNUSEDGFXDIR)/old_contest_numbers.4bpp
+ @cat $(UNUSEDGFXDIR)/old_contest_frame_1.4bpp $(UNUSEDGFXDIR)/old_contest_floor.4bpp $(UNUSEDGFXDIR)/old_contest_frame_2.4bpp $(UNUSEDGFXDIR)/old_contest_symbols.4bpp $(UNUSEDGFXDIR)/old_contest_meter.4bpp $(UNUSEDGFXDIR)/old_contest_classes.4bpp $(UNUSEDGFXDIR)/old_contest_numbers.4bpp >$@
+
+$(UNUSEDGFXDIR)/old_contest_2.4bpp: $(UNUSEDGFXDIR)/old_contest_2_1.4bpp $(UNUSEDGFXDIR)/old_contest_2_2.4bpp
+ @cat $(UNUSEDGFXDIR)/old_contest_2_1.4bpp $(UNUSEDGFXDIR)/old_contest_2_2.4bpp >$@
+
+$(UNUSEDGFXDIR)/obi_palpak1.gbapal: $(UNUSEDGFXDIR)/old_pal1.gbapal $(UNUSEDGFXDIR)/old_pal2.gbapal $(UNUSEDGFXDIR)/old_pal3.gbapal
+ @cat $(UNUSEDGFXDIR)/old_pal1.gbapal $(UNUSEDGFXDIR)/old_pal2.gbapal $(UNUSEDGFXDIR)/old_pal3.gbapal >$@
+
+$(UNUSEDGFXDIR)/obi_palpak3.gbapal: $(UNUSEDGFXDIR)/old_pal5.gbapal $(UNUSEDGFXDIR)/old_pal6.gbapal $(UNUSEDGFXDIR)/old_pal7.gbapal
+ @cat $(UNUSEDGFXDIR)/old_pal5.gbapal $(UNUSEDGFXDIR)/old_pal6.gbapal $(UNUSEDGFXDIR)/old_pal7.gbapal >$@
+
+$(UNUSEDGFXDIR)/obi1.4bpp: $(UNUSEDGFXDIR)/old_bulbasaur.4bpp $(UNUSEDGFXDIR)/old_charizard.4bpp
+ @cat $(UNUSEDGFXDIR)/old_bulbasaur.4bpp $(UNUSEDGFXDIR)/old_charizard.4bpp >$@
+
+$(UNUSEDGFXDIR)/obi2.4bpp: $(UNUSEDGFXDIR)/old_bulbasaur2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_1.4bpp $(UNUSEDGFXDIR)/old_battle_interface_2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_3.4bpp
+ @cat $(UNUSEDGFXDIR)/old_bulbasaur2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_1.4bpp $(UNUSEDGFXDIR)/old_battle_interface_2.4bpp $(UNUSEDGFXDIR)/old_battle_interface_3.4bpp >$@
diff --git a/override-de.mk b/override-de.mk
index 02861fc6a..64a139efb 100644
--- a/override-de.mk
+++ b/override-de.mk
@@ -6,15 +6,15 @@ INTROGFXDIR := graphics/intro
MISCGFXDIR := graphics/misc
$(MENUGFXDIR)/wordgroup_frame.4bpp: $(MENUGFXDIR)/wordgroup_frame.png
- $(GFX) $< $@ -num_tiles 76
+ $(GBAGFX) $< $@ -num_tiles 76
$(MENUGFXDIR)/check_berry.4bpp: $(MENUGFXDIR)/check_berry.png
- $(GFX) $< $@ -num_tiles 97
+ $(GBAGFX) $< $@ -num_tiles 97
$(INTROGFXDIR)/copyright.4bpp: $(INTROGFXDIR)/copyright.png
- $(GFX) $< $@ -num_tiles 47
+ $(GBAGFX) $< $@ -num_tiles 47
$(MISCGFXDIR)/end_copyright.4bpp: $(MISCGFXDIR)/end_copyright.png
- $(GFX) $< $@ -num_tiles 92
+ $(GBAGFX) $< $@ -num_tiles 92
#
# tilesets.mk
@@ -22,4 +22,4 @@ $(MISCGFXDIR)/end_copyright.4bpp: $(MISCGFXDIR)/end_copyright.png
TILESETDIR := data/tilesets
$(TILESETDIR)/secondary/shop/tiles.4bpp: $(TILESETDIR)/secondary/shop/tiles.png
- $(GFX) $< $@ -num_tiles 503
+ $(GBAGFX) $< $@ -num_tiles 503
diff --git a/ruby_de_debug.sha1 b/ruby_de_debug.sha1
new file mode 100644
index 000000000..4ecbf29a7
--- /dev/null
+++ b/ruby_de_debug.sha1
@@ -0,0 +1 @@
+ca5e3d415c4b47353a73a616878ba833f3648b7a pokeruby_de_debug.gba
diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc
index d4c39b2f8..455763ccf 100644
--- a/sound/direct_sound_data.inc
+++ b/sound/direct_sound_data.inc
@@ -1,2023 +1,2023 @@
.align 2
-DirectSoundWaveData_8456330:: @ 8456330
- .incbin "sound/direct_sound_samples/8456330.bin"
+DirectSoundWaveData_Tone1:: @ 8456330
+ .incbin "sound/direct_sound_samples/synth/tone1.bin"
.align 2
-DirectSoundWaveData_84569D4:: @ 84569D4
- .incbin "sound/direct_sound_samples/84569D4.bin"
+DirectSoundWaveData_SC88_Organ2:: @ 84569D4
+ .incbin "sound/direct_sound_samples/synth/sc88_18_organ_2.bin"
.align 2
-DirectSoundWaveData_84571CC:: @ 84571CC
- .incbin "sound/direct_sound_samples/84571CC.bin"
+DirectSoundWaveData_SC88_FretlessBass:: @ 84571CC
+ .incbin "sound/direct_sound_samples/synth/sc88_36_fretless_bass.bin"
.align 2
-DirectSoundWaveData_8457D98:: @ 8457D98
- .incbin "sound/direct_sound_samples/8457D98.bin"
+DirectSoundWaveData_SC88_FingerSlap:: @ 8457D98
+ .incbin "sound/direct_sound_samples/synth/sc88_34_finger_slap.bin"
.align 2
-DirectSoundWaveData_8458CD0:: @ 8458CD0
- .incbin "sound/direct_sound_samples/8458CD0.bin"
+DirectSoundWaveData_SC88_SynthBass1:: @ 8458CD0
+ .incbin "sound/direct_sound_samples/synth/sc88_39_synth_bass_1.bin"
.align 2
-DirectSoundWaveData_8459944:: @ 8459944
- .incbin "sound/direct_sound_samples/8459944.bin"
+DirectSoundWaveData_SC88_DrumKitTimbale2:: @ 8459944
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_timbale_2.bin"
.align 2
-DirectSoundWaveData_845AE14:: @ 845AE14
- .incbin "sound/direct_sound_samples/845AE14.bin"
+DirectSoundWaveData_SC88_DrumKitBassDrum:: @ 845AE14
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_bass_drum.bin"
.align 2
-DirectSoundWaveData_845B2B4:: @ 845B2B4
- .incbin "sound/direct_sound_samples/845B2B4.bin"
+DirectSoundWaveData_SC88_DrumKitSnare1:: @ 845B2B4
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_snare_1.bin"
.align 2
-DirectSoundWaveData_845B9A8:: @ 845B9A8
- .incbin "sound/direct_sound_samples/845B9A8.bin"
+DirectSoundWaveData_SC88_DrumKitHandClap:: @ 845B9A8
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_hand_clap.bin"
.align 2
-DirectSoundWaveData_845C238:: @ 845C238
- .incbin "sound/direct_sound_samples/845C238.bin"
+DirectSoundWaveData_SC88_DrumKitSnare2:: @ 845C238
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_snare_2.bin"
.align 2
-DirectSoundWaveData_845CAB0:: @ 845CAB0
- .incbin "sound/direct_sound_samples/845CAB0.bin"
+DirectSoundWaveData_SC88_DrumKitHiMidTom:: @ 845CAB0
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_hi_mid_tom.bin"
.align 2
-DirectSoundWaveData_845DAF0:: @ 845DAF0
- .incbin "sound/direct_sound_samples/845DAF0.bin"
+DirectSoundWaveData_SC88_DrumKitClosedHiHat:: @ 845DAF0
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_closed_hi_hat.bin"
.align 2
-DirectSoundWaveData_845DF04:: @ 845DF04
- .incbin "sound/direct_sound_samples/845DF04.bin"
+DirectSoundWaveData_SC88_DrumKitOpenHiHat:: @ 845DF04
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_open_hi_hat.bin"
.align 2
-DirectSoundWaveData_845ED34:: @ 845ED34
- .incbin "sound/direct_sound_samples/845ED34.bin"
+DirectSoundWaveData_HiHatRattle:: @ 845ED34
+ .incbin "sound/direct_sound_samples/synth/hi_hat_rattle.bin"
.align 2
-DirectSoundWaveData_845FCC8:: @ 845FCC8
- .incbin "sound/direct_sound_samples/845FCC8.bin"
+DirectSoundWaveData_SC88_DrumKitCabasa:: @ 845FCC8
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_cabasa.bin"
.align 2
-DirectSoundWaveData_846057C:: @ 846057C
- .incbin "sound/direct_sound_samples/846057C.bin"
+DirectSoundWaveData_SC88_DrumKitCrashCymbal2:: @ 846057C
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_2.bin"
.align 2
-DirectSoundWaveData_8460E60:: @ 8460E60
- .incbin "sound/direct_sound_samples/8460E60.bin"
+DirectSoundWaveData_SC88_DrumKitCrashCymbal1:: @ 8460E60
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_1.bin"
.align 2
-DirectSoundWaveData_8461D8C:: @ 8461D8C
- .incbin "sound/direct_sound_samples/8461D8C.bin"
+DirectSoundWaveData_SC88_DrumKitMuteHiConga:: @ 8461D8C
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_mute_hi_conga.bin"
.align 2
-DirectSoundWaveData_84622A4:: @ 84622A4
- .incbin "sound/direct_sound_samples/84622A4.bin"
+DirectSoundWaveData_SC88_DrumKitLowConga:: @ 84622A4
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_low_conga.bin"
.align 2
-DirectSoundWaveData_846286C:: @ 846286C
- .incbin "sound/direct_sound_samples/846286C.bin"
+DirectSoundWaveData_SC88_SteelStringGuitar:: @ 846286C
+ .incbin "sound/direct_sound_samples/synth/sc88_26_steel_string_guitar.bin"
.align 2
-DirectSoundWaveData_84637CC:: @ 84637CC
- .incbin "sound/direct_sound_samples/84637CC.bin"
+DirectSoundWaveData_SC88_Piano3:: @ 84637CC
+ .incbin "sound/direct_sound_samples/synth/sc88_3_piano_3.bin"
.align 2
-DirectSoundWaveData_8464E2C:: @ 8464E2C
- .incbin "sound/direct_sound_samples/8464E2C.bin"
+DirectSoundWaveData_SC88_Piano2:: @ 8464E2C
+ .incbin "sound/direct_sound_samples/synth/sc88_2_piano_2.bin"
.align 2
-DirectSoundWaveData_8466388:: @ 8466388
- .incbin "sound/direct_sound_samples/8466388.bin"
+DirectSoundWaveData_SC88_UnisonSlap:: @ 8466388
+ .incbin "sound/direct_sound_samples/synth/sc88_37_unison_slap.bin"
.align 2
-DirectSoundWaveData_8466F14:: @ 8466F14
- .incbin "sound/direct_sound_samples/8466F14.bin"
+DirectSoundWaveData_SC88_Strings:: @ 8466F14
+ .incbin "sound/direct_sound_samples/synth/sc88_49_strings.bin"
.align 2
-DirectSoundWaveData_846A4B8:: @ 846A4B8
- .incbin "sound/direct_sound_samples/846A4B8.bin"
+DirectSoundWaveData_SC88_StringsPlusFlute:: @ 846A4B8
+ .incbin "sound/direct_sound_samples/synth/sc88_49_strings_plus_flute.bin"
.align 2
-DirectSoundWaveData_846C7D4:: @ 846C7D4
- .incbin "sound/direct_sound_samples/846C7D4.bin"
+DirectSoundWaveData_SC88_StringsPlusHorn:: @ 846C7D4
+ .incbin "sound/direct_sound_samples/synth/sc88_49_strings_plus_horn.bin"
.align 2
-DirectSoundWaveData_846FEA0:: @ 846FEA0
- .incbin "sound/direct_sound_samples/846FEA0.bin"
+DirectSoundWaveData_SC88_Trumpet:: @ 846FEA0
+ .incbin "sound/direct_sound_samples/synth/sc88_57_trumpet.bin"
.align 2
-DirectSoundWaveData_84711F0:: @ 84711F0
- .incbin "sound/direct_sound_samples/84711F0.bin"
+DirectSoundWaveData_SC88_Trombone:: @ 84711F0
+ .incbin "sound/direct_sound_samples/synth/sc88_58_trombone.bin"
.align 2
-DirectSoundWaveData_8472700:: @ 8472700
- .incbin "sound/direct_sound_samples/8472700.bin"
+DirectSoundWaveData_SC88_Tuba:: @ 8472700
+ .incbin "sound/direct_sound_samples/synth/sc88_59_tuba.bin"
.align 2
-DirectSoundWaveData_8473B20:: @ 8473B20
- .incbin "sound/direct_sound_samples/8473B20.bin"
+DirectSoundWaveData_SC88_CupMutedTrumpet:: @ 8473B20
+ .incbin "sound/direct_sound_samples/synth/sc88_60_cup_muted_trumpet.bin"
.align 2
-DirectSoundWaveData_8474BBC:: @ 8474BBC
- .incbin "sound/direct_sound_samples/8474BBC.bin"
+DirectSoundWaveData_SC88_MutedTrumpet3:: @ 8474BBC
+ .incbin "sound/direct_sound_samples/synth/sc88_60_muted_trumpet_3.bin"
.align 2
-DirectSoundWaveData_8475C18:: @ 8475C18
- .incbin "sound/direct_sound_samples/8475C18.bin"
+DirectSoundWaveData_SC88_FrenchHorns:: @ 8475C18
+ .incbin "sound/direct_sound_samples/synth/sc88_61_french_horns.bin"
.align 2
-DirectSoundWaveData_847CBAC:: @ 847CBAC
- .incbin "sound/direct_sound_samples/847CBAC.bin"
+DirectSoundWaveData_SC88_WideFrenchHorns:: @ 847CBAC
+ .incbin "sound/direct_sound_samples/synth/sc88_61_wide_french_horns.bin"
.align 2
-DirectSoundWaveData_8481130:: @ 8481130
- .incbin "sound/direct_sound_samples/8481130.bin"
+DirectSoundWaveData_SC88_NylonStringGuitar:: @ 8481130
+ .incbin "sound/direct_sound_samples/synth/sc88_25_nylon_string_guitar.bin"
.align 2
-DirectSoundWaveData_84830A0:: @ 84830A0
- .incbin "sound/direct_sound_samples/84830A0.bin"
+DirectSoundWaveData_SC88_Flute:: @ 84830A0
+ .incbin "sound/direct_sound_samples/synth/sc88_74_flute.bin"
.align 2
-DirectSoundWaveData_8483804:: @ 8483804
- .incbin "sound/direct_sound_samples/8483804.bin"
+DirectSoundWaveData_SC88_FingeredBass:: @ 8483804
+ .incbin "sound/direct_sound_samples/synth/sc88_34_fingered_bass.bin"
.align 2
-DirectSoundWaveData_8485454:: @ 8485454
- .incbin "sound/direct_sound_samples/8485454.bin"
+DirectSoundWaveData_SC88_DrumKitTimbale1:: @ 8485454
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_timbale_1.bin"
.align 2
-DirectSoundWaveData_8486924:: @ 8486924
- .incbin "sound/direct_sound_samples/8486924.bin"
+DirectSoundWaveData_SC88_DrumKitSnare4:: @ 8486924
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_snare_4.bin"
.align 2
-DirectSoundWaveData_8487330:: @ 8487330
- .incbin "sound/direct_sound_samples/8487330.bin"
+DirectSoundWaveData_SC88_SquareWave:: @ 8487330
+ .incbin "sound/direct_sound_samples/synth/sc88_81_square_wave.bin"
.align 2
-DirectSoundWaveData_8488F44:: @ 8488F44
- .incbin "sound/direct_sound_samples/8488F44.bin"
+DirectSoundWaveData_Ring:: @ 8488F44
+ .incbin "sound/direct_sound_samples/synth/ring.bin"
.align 2
-DirectSoundWaveData_848A8A4:: @ 848A8A4
- .incbin "sound/direct_sound_samples/848A8A4.bin"
+DirectSoundWaveData_SC88_DrumKitSnare3:: @ 848A8A4
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_snare_3.bin"
.align 2
-DirectSoundWaveData_848BD68:: @ 848BD68
- .incbin "sound/direct_sound_samples/848BD68.bin"
+DirectSoundWaveData_SC88_PizzicatoStrings:: @ 848BD68
+ .incbin "sound/direct_sound_samples/synth/sc88_46_pizzicato_strings.bin"
.align 2
-DirectSoundWaveData_848C4A4:: @ 848C4A4
- .incbin "sound/direct_sound_samples/848C4A4.bin"
+DirectSoundWaveData_MachineSound2:: @ 848C4A4
+ .incbin "sound/direct_sound_samples/synth/machine_sound2.bin"
.align 2
-DirectSoundWaveData_848E094:: @ 848E094
- .incbin "sound/direct_sound_samples/848E094.bin"
+DirectSoundWaveData_MachineSound1:: @ 848E094
+ .incbin "sound/direct_sound_samples/synth/machine_sound1.bin"
.align 2
-DirectSoundWaveData_848F448:: @ 848F448
- .incbin "sound/direct_sound_samples/848F448.bin"
+DirectSoundWaveData_SC88_Applause2:: @ 848F448
+ .incbin "sound/direct_sound_samples/synth/sc88_127_applause_2.bin"
.align 2
-DirectSoundWaveData_8491ACC:: @ 8491ACC
- .incbin "sound/direct_sound_samples/8491ACC.bin"
+DirectSoundWaveData_Noise3:: @ 8491ACC
+ .incbin "sound/direct_sound_samples/synth/noise3.bin"
.align 2
-DirectSoundWaveData_8492D10:: @ 8492D10
- .incbin "sound/direct_sound_samples/8492D10.bin"
+DirectSoundWaveData_SC88_Bubble:: @ 8492D10
+ .incbin "sound/direct_sound_samples/synth/sc88_123_bubble.bin"
.align 2
-DirectSoundWaveData_8493D20:: @ 8493D20
- .incbin "sound/direct_sound_samples/8493D20.bin"
+DirectSoundWaveData_SC88_CarCrash:: @ 8493D20
+ .incbin "sound/direct_sound_samples/synth/sc88_126_car_crash.bin"
.align 2
-DirectSoundWaveData_8495028:: @ 8495028
- .incbin "sound/direct_sound_samples/8495028.bin"
+DirectSoundWaveData_SC88_PinkNoise:: @ 8495028
+ .incbin "sound/direct_sound_samples/synth/sc88_123_pink_noise.bin"
.align 2
-DirectSoundWaveData_8497134:: @ 8497134
- .incbin "sound/direct_sound_samples/8497134.bin"
+DirectSoundWaveData_SC88_WaspySynth:: @ 8497134
+ .incbin "sound/direct_sound_samples/synth/sc88_82_waspy_synth.bin"
.align 2
-DirectSoundWaveData_8499110:: @ 8499110
- .incbin "sound/direct_sound_samples/8499110.bin"
+DirectSoundWaveData_SC88_WhiteNoise:: @ 8499110
+ .incbin "sound/direct_sound_samples/synth/sc88_123_white_noise.bin"
.align 2
-DirectSoundWaveData_849B320:: @ 849B320
- .incbin "sound/direct_sound_samples/849B320.bin"
+DirectSoundWaveData_SC88_DrumkitGuiro:: @ 849B320
+ .incbin "sound/direct_sound_samples/synth/sc88_drumkit_guiro.bin"
.align 2
-DirectSoundWaveData_849BAEC:: @ 849BAEC
- .incbin "sound/direct_sound_samples/849BAEC.bin"
+DirectSoundWaveData_SC88_TubularBell:: @ 849BAEC
+ .incbin "sound/direct_sound_samples/synth/sc88_15_tubular_bell.bin"
.align 2
-DirectSoundWaveData_849D45C:: @ 849D45C
- .incbin "sound/direct_sound_samples/849D45C.bin"
+DirectSoundWaveData_Noise1:: @ 849D45C
+ .incbin "sound/direct_sound_samples/synth/noise1.bin"
.align 2
-DirectSoundWaveData_849F40C:: @ 849F40C
- .incbin "sound/direct_sound_samples/849F40C.bin"
+DirectSoundWaveData_SC88_JPSuperSaw:: @ 849F40C
+ .incbin "sound/direct_sound_samples/synth/sc88_82_jp_super_saw.bin"
.align 2
-DirectSoundWaveData_84A26EC:: @ 84A26EC
- .incbin "sound/direct_sound_samples/84A26EC.bin"
+DirectSoundWaveData_SC88_Piano1:: @ 84A26EC
+ .incbin "sound/direct_sound_samples/synth/sc88_1_piano_1.bin"
.align 2
-DirectSoundWaveData_84A311C:: @ 84A311C
- .incbin "sound/direct_sound_samples/84A311C.bin"
+DirectSoundWaveData_SC88_Marimba:: @ 84A311C
+ .incbin "sound/direct_sound_samples/synth/sc88_13_marimba.bin"
.align 2
-DirectSoundWaveData_84A3B50:: @ 84A3B50
- .incbin "sound/direct_sound_samples/84A3B50.bin"
+DirectSoundWaveData_Noise2:: @ 84A3B50
+ .incbin "sound/direct_sound_samples/synth/noise2.bin"
.align 2
-DirectSoundWaveData_84A5690:: @ 84A5690
- .incbin "sound/direct_sound_samples/84A5690.bin"
+DirectSoundWaveData_SC88_HorseGallop:: @ 84A5690
+ .incbin "sound/direct_sound_samples/synth/sc88_124_horse_gallop.bin"
.align 2
-DirectSoundWaveData_84A5F58:: @ 84A5F58
- .incbin "sound/direct_sound_samples/84A5F58.bin"
+DirectSoundWaveData_SC88_AccordianFr:: @ 84A5F58
+ .incbin "sound/direct_sound_samples/synth/sc88_22_accordion_fr.bin"
.align 2
-DirectSoundWaveData_84A7328:: @ 84A7328
- .incbin "sound/direct_sound_samples/84A7328.bin"
+DirectSoundWaveData_Phoneme_Vowel1:: @ 84A7328
+ .incbin "sound/direct_sound_samples/phonemes/vowel_1.bin"
.align 2
-DirectSoundWaveData_84A7F38:: @ 84A7F38
- .incbin "sound/direct_sound_samples/84A7F38.bin"
+DirectSoundWaveData_Phoneme_Vowel2:: @ 84A7F38
+ .incbin "sound/direct_sound_samples/phonemes/vowel_2.bin"
.align 2
-DirectSoundWaveData_84A8AC8:: @ 84A8AC8
- .incbin "sound/direct_sound_samples/84A8AC8.bin"
+DirectSoundWaveData_Phoneme_Vowel3:: @ 84A8AC8
+ .incbin "sound/direct_sound_samples/phonemes/vowel_3.bin"
.align 2
-DirectSoundWaveData_84A9564:: @ 84A9564
- .incbin "sound/direct_sound_samples/84A9564.bin"
+DirectSoundWaveData_Phoneme_Vowel4:: @ 84A9564
+ .incbin "sound/direct_sound_samples/phonemes/vowel_4.bin"
.align 2
-DirectSoundWaveData_84A9EAC:: @ 84A9EAC
- .incbin "sound/direct_sound_samples/84A9EAC.bin"
+DirectSoundWaveData_Phoneme_Vowel5:: @ 84A9EAC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_5.bin"
.align 2
-DirectSoundWaveData_84AA8F4:: @ 84AA8F4
- .incbin "sound/direct_sound_samples/84AA8F4.bin"
+DirectSoundWaveData_Phoneme_Vowel6:: @ 84AA8F4
+ .incbin "sound/direct_sound_samples/phonemes/vowel_6.bin"
.align 2
Cry_Bulbasaur:: @ 84AB57C
- .incbin "sound/direct_sound_samples/cry_bulbasaur.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_bulbasaur.bin"
.align 2
Cry_Ivysaur:: @ 84AC608
- .incbin "sound/direct_sound_samples/cry_ivysaur.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ivysaur.bin"
.align 2
Cry_Venusaur:: @ 84AD698
- .incbin "sound/direct_sound_samples/cry_venusaur.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_venusaur.bin"
.align 2
Cry_Charmander:: @ 84AE9F0
- .incbin "sound/direct_sound_samples/cry_charmander.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_charmander.bin"
.align 2
Cry_Charmeleon:: @ 84AF860
- .incbin "sound/direct_sound_samples/cry_charmeleon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_charmeleon.bin"
.align 2
Cry_Charizard:: @ 84B06E0
- .incbin "sound/direct_sound_samples/cry_charizard.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_charizard.bin"
.align 2
Cry_Squirtle:: @ 84B1A28
- .incbin "sound/direct_sound_samples/cry_squirtle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_squirtle.bin"
.align 2
Cry_Wartortle:: @ 84B289C
- .incbin "sound/direct_sound_samples/cry_wartortle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wartortle.bin"
.align 2
Cry_Blastoise:: @ 84B39DC
- .incbin "sound/direct_sound_samples/cry_blastoise.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_blastoise.bin"
.align 2
Cry_Caterpie:: @ 84B4D24
- .incbin "sound/direct_sound_samples/cry_caterpie.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_caterpie.bin"
.align 2
Cry_Metapod:: @ 84B557C
- .incbin "sound/direct_sound_samples/cry_metapod.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_metapod.bin"
.align 2
Cry_Butterfree:: @ 84B6CCC
- .incbin "sound/direct_sound_samples/cry_butterfree.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_butterfree.bin"
.align 2
Cry_Weedle:: @ 84B76D4
- .incbin "sound/direct_sound_samples/cry_weedle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_weedle.bin"
.align 2
Cry_Kakuna:: @ 84B8718
- .incbin "sound/direct_sound_samples/cry_kakuna.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kakuna.bin"
.align 2
Cry_Beedrill:: @ 84B9954
- .incbin "sound/direct_sound_samples/cry_beedrill.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_beedrill.bin"
.align 2
Cry_Pidgey:: @ 84BACB0
- .incbin "sound/direct_sound_samples/cry_pidgey.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pidgey.bin"
.align 2
Cry_Pidgeotto:: @ 84BB098
- .incbin "sound/direct_sound_samples/cry_pidgeotto.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pidgeotto.bin"
.align 2
Cry_Pidgeot:: @ 84BBFA0
- .incbin "sound/direct_sound_samples/cry_pidgeot.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pidgeot.bin"
.align 2
Cry_Rattata:: @ 84BD0D4
- .incbin "sound/direct_sound_samples/cry_rattata.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_rattata.bin"
.align 2
Cry_Raticate:: @ 84BD8B4
- .incbin "sound/direct_sound_samples/cry_raticate.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_raticate.bin"
.align 2
Cry_Spearow:: @ 84BE238
- .incbin "sound/direct_sound_samples/cry_spearow.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_spearow.bin"
.align 2
Cry_Fearow:: @ 84BF3DC
- .incbin "sound/direct_sound_samples/cry_fearow.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_fearow.bin"
.align 2
Cry_Ekans:: @ 84C0518
- .incbin "sound/direct_sound_samples/cry_ekans.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ekans.bin"
.align 2
Cry_Arbok:: @ 84C1864
- .incbin "sound/direct_sound_samples/cry_arbok.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_arbok.bin"
.align 2
Cry_Pikachu:: @ 84C2BBC
- .incbin "sound/direct_sound_samples/cry_pikachu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pikachu.bin"
.align 2
Cry_Raichu:: @ 84C3C64
- .incbin "sound/direct_sound_samples/cry_raichu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_raichu.bin"
.align 2
Cry_Sandshrew:: @ 84C5424
- .incbin "sound/direct_sound_samples/cry_sandshrew.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sandshrew.bin"
.align 2
Cry_Sandslash:: @ 84C5D78
- .incbin "sound/direct_sound_samples/cry_sandslash.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sandslash.bin"
.align 2
Cry_NidoranF:: @ 84C6B08
- .incbin "sound/direct_sound_samples/cry_nidoran_f.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nidoran_f.bin"
.align 2
Cry_Nidorina:: @ 84C74B8
- .incbin "sound/direct_sound_samples/cry_nidorina.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nidorina.bin"
.align 2
Cry_Nidoqueen:: @ 84C8180
- .incbin "sound/direct_sound_samples/cry_nidoqueen.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nidoqueen.bin"
.align 2
Cry_NidoranM:: @ 84C9260
- .incbin "sound/direct_sound_samples/cry_nidoran_m.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nidoran_m.bin"
.align 2
Cry_Nidorino:: @ 84C9CC8
- .incbin "sound/direct_sound_samples/cry_nidorino.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nidorino.bin"
.align 2
Cry_Nidoking:: @ 84CA8DC
- .incbin "sound/direct_sound_samples/cry_nidoking.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nidoking.bin"
.align 2
Cry_Clefairy:: @ 84CC148
- .incbin "sound/direct_sound_samples/cry_clefairy.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_clefairy.bin"
.align 2
Cry_Clefable:: @ 84CC9B8
- .incbin "sound/direct_sound_samples/cry_clefable.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_clefable.bin"
.align 2
Cry_Vulpix:: @ 84CD448
- .incbin "sound/direct_sound_samples/cry_vulpix.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_vulpix.bin"
.align 2
Cry_Ninetales:: @ 84CEC18
- .incbin "sound/direct_sound_samples/cry_ninetales.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ninetales.bin"
.align 2
Cry_Jigglypuff:: @ 84D0484
- .incbin "sound/direct_sound_samples/cry_jigglypuff.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_jigglypuff.bin"
.align 2
Cry_Wigglytuff:: @ 84D09E8
- .incbin "sound/direct_sound_samples/cry_wigglytuff.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wigglytuff.bin"
.align 2
Cry_Zubat:: @ 84D10B0
- .incbin "sound/direct_sound_samples/cry_zubat.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_zubat.bin"
.align 2
Cry_Golbat:: @ 84D241C
- .incbin "sound/direct_sound_samples/cry_golbat.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_golbat.bin"
.align 2
Cry_Oddish:: @ 84D3780
- .incbin "sound/direct_sound_samples/cry_oddish.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_oddish.bin"
.align 2
Cry_Gloom:: @ 84D461C
- .incbin "sound/direct_sound_samples/cry_gloom.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gloom.bin"
.align 2
Cry_Vileplume:: @ 84D5298
- .incbin "sound/direct_sound_samples/cry_vileplume.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_vileplume.bin"
.align 2
Cry_Paras:: @ 84D6C34
- .incbin "sound/direct_sound_samples/cry_paras.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_paras.bin"
.align 2
Cry_Parasect:: @ 84D8828
- .incbin "sound/direct_sound_samples/cry_parasect.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_parasect.bin"
.align 2
Cry_Venonat:: @ 84DA690
- .incbin "sound/direct_sound_samples/cry_venonat.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_venonat.bin"
.align 2
Cry_Venomoth:: @ 84DB610
- .incbin "sound/direct_sound_samples/cry_venomoth.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_venomoth.bin"
.align 2
Cry_Diglett:: @ 84DC614
- .incbin "sound/direct_sound_samples/cry_diglett.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_diglett.bin"
.align 2
Cry_Dugtrio:: @ 84DD984
- .incbin "sound/direct_sound_samples/cry_dugtrio.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dugtrio.bin"
.align 2
Cry_Meowth:: @ 84DECF0
- .incbin "sound/direct_sound_samples/cry_meowth.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_meowth.bin"
.align 2
Cry_Persian:: @ 84DF680
- .incbin "sound/direct_sound_samples/cry_persian.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_persian.bin"
.align 2
Cry_Psyduck:: @ 84E095C
- .incbin "sound/direct_sound_samples/cry_psyduck.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_psyduck.bin"
.align 2
Cry_Golduck:: @ 84E1684
- .incbin "sound/direct_sound_samples/cry_golduck.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_golduck.bin"
.align 2
Cry_Mankey:: @ 84E21CC
- .incbin "sound/direct_sound_samples/cry_mankey.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mankey.bin"
.align 2
Cry_Primeape:: @ 84E322C
- .incbin "sound/direct_sound_samples/cry_primeape.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_primeape.bin"
.align 2
Cry_Growlithe:: @ 84E425C
- .incbin "sound/direct_sound_samples/cry_growlithe.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_growlithe.bin"
.align 2
Cry_Arcanine:: @ 84E4FC0
- .incbin "sound/direct_sound_samples/cry_arcanine.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_arcanine.bin"
.align 2
Cry_Poliwag:: @ 84E60FC
- .incbin "sound/direct_sound_samples/cry_poliwag.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_poliwag.bin"
.align 2
Cry_Poliwhirl:: @ 84E6C18
- .incbin "sound/direct_sound_samples/cry_poliwhirl.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_poliwhirl.bin"
.align 2
Cry_Poliwrath:: @ 84E72C0
- .incbin "sound/direct_sound_samples/cry_poliwrath.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_poliwrath.bin"
.align 2
Cry_Abra:: @ 84E7DE4
- .incbin "sound/direct_sound_samples/cry_abra.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_abra.bin"
.align 2
Cry_Kadabra:: @ 84E9548
- .incbin "sound/direct_sound_samples/cry_kadabra.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kadabra.bin"
.align 2
Cry_Alakazam:: @ 84EB030
- .incbin "sound/direct_sound_samples/cry_alakazam.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_alakazam.bin"
.align 2
Cry_Machop:: @ 84ECFCC
- .incbin "sound/direct_sound_samples/cry_machop.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_machop.bin"
.align 2
Cry_Machoke:: @ 84EDD30
- .incbin "sound/direct_sound_samples/cry_machoke.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_machoke.bin"
.align 2
Cry_Machamp:: @ 84EEAC0
- .incbin "sound/direct_sound_samples/cry_machamp.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_machamp.bin"
.align 2
Cry_Bellsprout:: @ 84EFB48
- .incbin "sound/direct_sound_samples/cry_bellsprout.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_bellsprout.bin"
.align 2
Cry_Weepinbell:: @ 84F02D4
- .incbin "sound/direct_sound_samples/cry_weepinbell.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_weepinbell.bin"
.align 2
Cry_Victreebel:: @ 84F1174
- .incbin "sound/direct_sound_samples/cry_victreebel.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_victreebel.bin"
.align 2
Cry_Tentacool:: @ 84F24C0
- .incbin "sound/direct_sound_samples/cry_tentacool.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tentacool.bin"
.align 2
Cry_Tentacruel:: @ 84F34B0
- .incbin "sound/direct_sound_samples/cry_tentacruel.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tentacruel.bin"
.align 2
Cry_Geodude:: @ 84F4BAC
- .incbin "sound/direct_sound_samples/cry_geodude.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_geodude.bin"
.align 2
Cry_Graveler:: @ 84F6360
- .incbin "sound/direct_sound_samples/cry_graveler.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_graveler.bin"
.align 2
Cry_Golem:: @ 84F7F48
- .incbin "sound/direct_sound_samples/cry_golem.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_golem.bin"
.align 2
Cry_Ponyta:: @ 84F8D74
- .incbin "sound/direct_sound_samples/cry_ponyta.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ponyta.bin"
.align 2
Cry_Rapidash:: @ 84F9C84
- .incbin "sound/direct_sound_samples/cry_rapidash.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_rapidash.bin"
.align 2
Cry_Slowpoke:: @ 84FAF24
- .incbin "sound/direct_sound_samples/cry_slowpoke.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_slowpoke.bin"
.align 2
Cry_Slowbro:: @ 84FB68C
- .incbin "sound/direct_sound_samples/cry_slowbro.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_slowbro.bin"
.align 2
Cry_Magnemite:: @ 84FC3FC
- .incbin "sound/direct_sound_samples/cry_magnemite.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_magnemite.bin"
.align 2
Cry_Magneton:: @ 84FD740
- .incbin "sound/direct_sound_samples/cry_magneton.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_magneton.bin"
.align 2
Cry_Farfetchd:: @ 84FEF28
- .incbin "sound/direct_sound_samples/cry_farfetchd.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_farfetchd.bin"
.align 2
Cry_Doduo:: @ 84FF6A4
- .incbin "sound/direct_sound_samples/cry_doduo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_doduo.bin"
.align 2
Cry_Dodrio:: @ 85009E8
- .incbin "sound/direct_sound_samples/cry_dodrio.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dodrio.bin"
.align 2
Cry_Seel:: @ 8501D60
- .incbin "sound/direct_sound_samples/cry_seel.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_seel.bin"
.align 2
Cry_Dewgong:: @ 8502F50
- .incbin "sound/direct_sound_samples/cry_dewgong.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dewgong.bin"
.align 2
Cry_Grimer:: @ 8504474
- .incbin "sound/direct_sound_samples/cry_grimer.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_grimer.bin"
.align 2
Cry_Muk:: @ 8504EFC
- .incbin "sound/direct_sound_samples/cry_muk.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_muk.bin"
.align 2
Cry_Shellder:: @ 8505DBC
- .incbin "sound/direct_sound_samples/cry_shellder.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shellder.bin"
.align 2
Cry_Cloyster:: @ 8506D30
- .incbin "sound/direct_sound_samples/cry_cloyster.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cloyster.bin"
.align 2
Cry_Gastly:: @ 85081F4
- .incbin "sound/direct_sound_samples/cry_gastly.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gastly.bin"
.align 2
Cry_Haunter:: @ 8509944
- .incbin "sound/direct_sound_samples/cry_haunter.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_haunter.bin"
.align 2
Cry_Gengar:: @ 850B0C4
- .incbin "sound/direct_sound_samples/cry_gengar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gengar.bin"
.align 2
Cry_Onix:: @ 850BF84
- .incbin "sound/direct_sound_samples/cry_onix.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_onix.bin"
.align 2
Cry_Drowzee:: @ 850D848
- .incbin "sound/direct_sound_samples/cry_drowzee.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_drowzee.bin"
.align 2
Cry_Hypno:: @ 850F560
- .incbin "sound/direct_sound_samples/cry_hypno.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hypno.bin"
.align 2
Cry_Krabby:: @ 8511264
- .incbin "sound/direct_sound_samples/cry_krabby.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_krabby.bin"
.align 2
Cry_Kingler:: @ 8512AB0
- .incbin "sound/direct_sound_samples/cry_kingler.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kingler.bin"
.align 2
Cry_Voltorb:: @ 8514308
- .incbin "sound/direct_sound_samples/cry_voltorb.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_voltorb.bin"
.align 2
Cry_Electrode:: @ 8515BCC
- .incbin "sound/direct_sound_samples/cry_electrode.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_electrode.bin"
.align 2
Cry_Exeggcute:: @ 8517504
- .incbin "sound/direct_sound_samples/cry_exeggcute.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_exeggcute.bin"
.align 2
Cry_Exeggutor:: @ 85187E4
- .incbin "sound/direct_sound_samples/cry_exeggutor.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_exeggutor.bin"
.align 2
Cry_Cubone:: @ 851A7C8
- .incbin "sound/direct_sound_samples/cry_cubone.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cubone.bin"
.align 2
Cry_Marowak:: @ 851B6E8
- .incbin "sound/direct_sound_samples/cry_marowak.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_marowak.bin"
.align 2
Cry_Hitmonlee:: @ 851C558
- .incbin "sound/direct_sound_samples/cry_hitmonlee.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hitmonlee.bin"
.align 2
Cry_Hitmonchan:: @ 851D804
- .incbin "sound/direct_sound_samples/cry_hitmonchan.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hitmonchan.bin"
.align 2
Cry_Lickitung:: @ 851E9DC
- .incbin "sound/direct_sound_samples/cry_lickitung.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lickitung.bin"
.align 2
Cry_Koffing:: @ 851F904
- .incbin "sound/direct_sound_samples/cry_koffing.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_koffing.bin"
.align 2
Cry_Weezing:: @ 8520D60
- .incbin "sound/direct_sound_samples/cry_weezing.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_weezing.bin"
.align 2
Cry_Rhyhorn:: @ 852230C
- .incbin "sound/direct_sound_samples/cry_rhyhorn.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_rhyhorn.bin"
.align 2
Cry_Rhydon:: @ 8523678
- .incbin "sound/direct_sound_samples/cry_rhydon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_rhydon.bin"
.align 2
Cry_Chansey:: @ 8524AE4
- .incbin "sound/direct_sound_samples/cry_chansey.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_chansey.bin"
.align 2
Cry_Tangela:: @ 85259B0
- .incbin "sound/direct_sound_samples/cry_tangela.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tangela.bin"
.align 2
Cry_Kangaskhan:: @ 85268CC
- .incbin "sound/direct_sound_samples/cry_kangaskhan.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kangaskhan.bin"
.align 2
Cry_Horsea:: @ 8527B80
- .incbin "sound/direct_sound_samples/cry_horsea.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_horsea.bin"
.align 2
Cry_Seadra:: @ 85284FC
- .incbin "sound/direct_sound_samples/cry_seadra.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_seadra.bin"
.align 2
Cry_Goldeen:: @ 8528D68
- .incbin "sound/direct_sound_samples/cry_goldeen.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_goldeen.bin"
.align 2
Cry_Seaking:: @ 8529740
- .incbin "sound/direct_sound_samples/cry_seaking.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_seaking.bin"
.align 2
Cry_Staryu:: @ 852AA98
- .incbin "sound/direct_sound_samples/cry_staryu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_staryu.bin"
.align 2
Cry_Starmie:: @ 852BE80
- .incbin "sound/direct_sound_samples/cry_starmie.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_starmie.bin"
.align 2
Cry_MrMime:: @ 852D35C
- .incbin "sound/direct_sound_samples/cry_mr_mime.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mr_mime.bin"
.align 2
Cry_Scyther:: @ 852E64C
- .incbin "sound/direct_sound_samples/cry_scyther.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_scyther.bin"
.align 2
Cry_Jynx:: @ 852F3A8
- .incbin "sound/direct_sound_samples/cry_jynx.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_jynx.bin"
.align 2
Cry_Electabuzz:: @ 853231C
- .incbin "sound/direct_sound_samples/cry_electabuzz.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_electabuzz.bin"
.align 2
Cry_Magmar:: @ 8534200
- .incbin "sound/direct_sound_samples/cry_magmar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_magmar.bin"
.align 2
Cry_Pinsir:: @ 853517C
- .incbin "sound/direct_sound_samples/cry_pinsir.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pinsir.bin"
.align 2
Cry_Tauros:: @ 8535DD8
- .incbin "sound/direct_sound_samples/cry_tauros.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tauros.bin"
.align 2
Cry_Magikarp:: @ 853702C
- .incbin "sound/direct_sound_samples/cry_magikarp.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_magikarp.bin"
.align 2
Cry_Gyarados:: @ 8538334
- .incbin "sound/direct_sound_samples/cry_gyarados.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gyarados.bin"
.align 2
Cry_Lapras:: @ 8539768
- .incbin "sound/direct_sound_samples/cry_lapras.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lapras.bin"
.align 2
Cry_Ditto:: @ 853A63C
- .incbin "sound/direct_sound_samples/cry_ditto.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ditto.bin"
.align 2
Cry_Eevee:: @ 853B158
- .incbin "sound/direct_sound_samples/cry_eevee.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_eevee.bin"
.align 2
Cry_Vaporeon:: @ 853BF90
- .incbin "sound/direct_sound_samples/cry_vaporeon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_vaporeon.bin"
.align 2
Cry_Jolteon:: @ 853D5A8
- .incbin "sound/direct_sound_samples/cry_jolteon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_jolteon.bin"
.align 2
Cry_Flareon:: @ 853E57C
- .incbin "sound/direct_sound_samples/cry_flareon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_flareon.bin"
.align 2
Cry_Porygon:: @ 853F500
- .incbin "sound/direct_sound_samples/cry_porygon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_porygon.bin"
.align 2
Cry_Omanyte:: @ 854090C
- .incbin "sound/direct_sound_samples/cry_omanyte.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_omanyte.bin"
.align 2
Cry_Omastar:: @ 8541664
- .incbin "sound/direct_sound_samples/cry_omastar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_omastar.bin"
.align 2
Cry_Kabuto:: @ 85423B8
- .incbin "sound/direct_sound_samples/cry_kabuto.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kabuto.bin"
.align 2
Cry_Kabutops:: @ 854300C
- .incbin "sound/direct_sound_samples/cry_kabutops.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kabutops.bin"
.align 2
Cry_Aerodactyl:: @ 8543DC8
- .incbin "sound/direct_sound_samples/cry_aerodactyl.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_aerodactyl.bin"
.align 2
Cry_Snorlax:: @ 8545624
- .incbin "sound/direct_sound_samples/cry_snorlax.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_snorlax.bin"
.align 2
Cry_Articuno:: @ 8545B60
- .incbin "sound/direct_sound_samples/cry_articuno.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_articuno.bin"
.align 2
Cry_Zapdos:: @ 8547308
- .incbin "sound/direct_sound_samples/cry_zapdos.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_zapdos.bin"
.align 2
Cry_Moltres:: @ 8548280
- .incbin "sound/direct_sound_samples/cry_moltres.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_moltres.bin"
.align 2
Cry_Dratini:: @ 8549A2C
- .incbin "sound/direct_sound_samples/cry_dratini.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dratini.bin"
.align 2
Cry_Dragonair:: @ 854A5C8
- .incbin "sound/direct_sound_samples/cry_dragonair.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dragonair.bin"
.align 2
Cry_Dragonite:: @ 854B670
- .incbin "sound/direct_sound_samples/cry_dragonite.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dragonite.bin"
.align 2
Cry_Mewtwo:: @ 854C97C
- .incbin "sound/direct_sound_samples/cry_mewtwo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mewtwo.bin"
.align 2
Cry_Mew:: @ 854E7E4
- .incbin "sound/direct_sound_samples/cry_mew.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mew.bin"
.align 2
Cry_Chikorita:: @ 855064C
- .incbin "sound/direct_sound_samples/cry_chikorita.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_chikorita.bin"
.align 2
Cry_Bayleef:: @ 8550B8C
- .incbin "sound/direct_sound_samples/cry_bayleef.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_bayleef.bin"
.align 2
Cry_Meganium:: @ 8551458
- .incbin "sound/direct_sound_samples/cry_meganium.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_meganium.bin"
.align 2
Cry_Cyndaquil:: @ 8552490
- .incbin "sound/direct_sound_samples/cry_cyndaquil.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cyndaquil.bin"
.align 2
Cry_Quilava:: @ 8552B94
- .incbin "sound/direct_sound_samples/cry_quilava.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_quilava.bin"
.align 2
Cry_Typhlosion:: @ 855377C
- .incbin "sound/direct_sound_samples/cry_typhlosion.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_typhlosion.bin"
.align 2
Cry_Totodile:: @ 8555D8C
- .incbin "sound/direct_sound_samples/cry_totodile.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_totodile.bin"
.align 2
Cry_Croconaw:: @ 8556FE4
- .incbin "sound/direct_sound_samples/cry_croconaw.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_croconaw.bin"
.align 2
Cry_Feraligatr:: @ 8558420
- .incbin "sound/direct_sound_samples/cry_feraligatr.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_feraligatr.bin"
.align 2
Cry_Sentret:: @ 8559DA4
- .incbin "sound/direct_sound_samples/cry_sentret.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sentret.bin"
.align 2
Cry_Furret:: @ 855A1CC
- .incbin "sound/direct_sound_samples/cry_furret.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_furret.bin"
.align 2
Cry_Hoothoot:: @ 855A814
- .incbin "sound/direct_sound_samples/cry_hoothoot.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hoothoot.bin"
.align 2
Cry_Noctowl:: @ 855B2F8
- .incbin "sound/direct_sound_samples/cry_noctowl.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_noctowl.bin"
.align 2
Cry_Ledyba:: @ 855C828
- .incbin "sound/direct_sound_samples/cry_ledyba.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ledyba.bin"
.align 2
Cry_Ledian:: @ 855CF20
- .incbin "sound/direct_sound_samples/cry_ledian.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ledian.bin"
.align 2
Cry_Spinarak:: @ 855D784
- .incbin "sound/direct_sound_samples/cry_spinarak.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_spinarak.bin"
.align 2
Cry_Ariados:: @ 855E4E8
- .incbin "sound/direct_sound_samples/cry_ariados.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ariados.bin"
.align 2
Cry_Crobat:: @ 855F13C
- .incbin "sound/direct_sound_samples/cry_crobat.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_crobat.bin"
.align 2
Cry_Chinchou:: @ 856086C
- .incbin "sound/direct_sound_samples/cry_chinchou.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_chinchou.bin"
.align 2
Cry_Lanturn:: @ 856151C
- .incbin "sound/direct_sound_samples/cry_lanturn.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lanturn.bin"
.align 2
Cry_Pichu:: @ 8561FA8
- .incbin "sound/direct_sound_samples/cry_pichu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pichu.bin"
.align 2
Cry_Cleffa:: @ 85626FC
- .incbin "sound/direct_sound_samples/cry_cleffa.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cleffa.bin"
.align 2
Cry_Igglybuff:: @ 8562CEC
- .incbin "sound/direct_sound_samples/cry_igglybuff.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_igglybuff.bin"
.align 2
Cry_Togepi:: @ 85633E8
- .incbin "sound/direct_sound_samples/cry_togepi.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_togepi.bin"
.align 2
Cry_Togetic:: @ 8563ED0
- .incbin "sound/direct_sound_samples/cry_togetic.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_togetic.bin"
.align 2
Cry_Natu:: @ 85645D0
- .incbin "sound/direct_sound_samples/cry_natu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_natu.bin"
.align 2
Cry_Xatu:: @ 8565060
- .incbin "sound/direct_sound_samples/cry_xatu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_xatu.bin"
.align 2
Cry_Mareep:: @ 8565F2C
- .incbin "sound/direct_sound_samples/cry_mareep.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mareep.bin"
.align 2
Cry_Flaaffy:: @ 8566684
- .incbin "sound/direct_sound_samples/cry_flaaffy.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_flaaffy.bin"
.align 2
Cry_Ampharos:: @ 8567438
- .incbin "sound/direct_sound_samples/cry_ampharos.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ampharos.bin"
.align 2
Cry_Bellossom:: @ 85684B8
- .incbin "sound/direct_sound_samples/cry_bellossom.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_bellossom.bin"
.align 2
Cry_Marill:: @ 85692D0
- .incbin "sound/direct_sound_samples/cry_marill.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_marill.bin"
.align 2
Cry_Azumarill:: @ 8569FE4
- .incbin "sound/direct_sound_samples/cry_azumarill.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_azumarill.bin"
.align 2
Cry_Sudowoodo:: @ 856B0D0
- .incbin "sound/direct_sound_samples/cry_sudowoodo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sudowoodo.bin"
.align 2
Cry_Politoed:: @ 856C100
- .incbin "sound/direct_sound_samples/cry_politoed.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_politoed.bin"
.align 2
Cry_Hoppip:: @ 856D344
- .incbin "sound/direct_sound_samples/cry_hoppip.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hoppip.bin"
.align 2
Cry_Skiploom:: @ 856DBB0
- .incbin "sound/direct_sound_samples/cry_skiploom.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_skiploom.bin"
.align 2
Cry_Jumpluff:: @ 856E8B8
- .incbin "sound/direct_sound_samples/cry_jumpluff.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_jumpluff.bin"
.align 2
Cry_Aipom:: @ 856F8F4
- .incbin "sound/direct_sound_samples/cry_aipom.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_aipom.bin"
.align 2
Cry_Sunkern:: @ 8570714
- .incbin "sound/direct_sound_samples/cry_sunkern.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sunkern.bin"
.align 2
Cry_Sunflora:: @ 8570F28
- .incbin "sound/direct_sound_samples/cry_sunflora.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sunflora.bin"
.align 2
Cry_Yanma:: @ 8571F08
- .incbin "sound/direct_sound_samples/cry_yanma.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_yanma.bin"
.align 2
Cry_Wooper:: @ 8573010
- .incbin "sound/direct_sound_samples/cry_wooper.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wooper.bin"
.align 2
Cry_Quagsire:: @ 8573770
- .incbin "sound/direct_sound_samples/cry_quagsire.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_quagsire.bin"
.align 2
Cry_Espeon:: @ 85744D0
- .incbin "sound/direct_sound_samples/cry_espeon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_espeon.bin"
.align 2
Cry_Umbreon:: @ 8575884
- .incbin "sound/direct_sound_samples/cry_umbreon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_umbreon.bin"
.align 2
Cry_Murkrow:: @ 8576804
- .incbin "sound/direct_sound_samples/cry_murkrow.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_murkrow.bin"
.align 2
Cry_Slowking:: @ 85778C8
- .incbin "sound/direct_sound_samples/cry_slowking.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_slowking.bin"
.align 2
Cry_Misdreavus:: @ 85790AC
- .incbin "sound/direct_sound_samples/cry_misdreavus.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_misdreavus.bin"
.align 2
Cry_Unown:: @ 8579C4C
- .incbin "sound/direct_sound_samples/cry_unown.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_unown.bin"
.align 2
Cry_Wobbuffet:: @ 857A974
- .incbin "sound/direct_sound_samples/cry_wobbuffet.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wobbuffet.bin"
.align 2
Cry_Girafarig:: @ 857BE10
- .incbin "sound/direct_sound_samples/cry_girafarig.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_girafarig.bin"
.align 2
Cry_Pineco:: @ 857CCC4
- .incbin "sound/direct_sound_samples/cry_pineco.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pineco.bin"
.align 2
Cry_Forretress:: @ 857DA24
- .incbin "sound/direct_sound_samples/cry_forretress.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_forretress.bin"
.align 2
Cry_Dunsparce:: @ 857EE2C
- .incbin "sound/direct_sound_samples/cry_dunsparce.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dunsparce.bin"
.align 2
Cry_Gligar:: @ 857FE0C
- .incbin "sound/direct_sound_samples/cry_gligar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gligar.bin"
.align 2
Cry_Steelix:: @ 8580A2C
- .incbin "sound/direct_sound_samples/cry_steelix.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_steelix.bin"
.align 2
Cry_Snubbull:: @ 8583054
- .incbin "sound/direct_sound_samples/cry_snubbull.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_snubbull.bin"
.align 2
Cry_Granbull:: @ 8583EC8
- .incbin "sound/direct_sound_samples/cry_granbull.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_granbull.bin"
.align 2
Cry_Qwilfish:: @ 858566C
- .incbin "sound/direct_sound_samples/cry_qwilfish.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_qwilfish.bin"
.align 2
Cry_Scizor:: @ 8586208
- .incbin "sound/direct_sound_samples/cry_scizor.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_scizor.bin"
.align 2
Cry_Shuckle:: @ 8587904
- .incbin "sound/direct_sound_samples/cry_shuckle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shuckle.bin"
.align 2
Cry_Heracross:: @ 8588338
- .incbin "sound/direct_sound_samples/cry_heracross.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_heracross.bin"
.align 2
Cry_Sneasel:: @ 858958C
- .incbin "sound/direct_sound_samples/cry_sneasel.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sneasel.bin"
.align 2
Cry_Teddiursa:: @ 8589EB0
- .incbin "sound/direct_sound_samples/cry_teddiursa.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_teddiursa.bin"
.align 2
Cry_Ursaring:: @ 858AF3C
- .incbin "sound/direct_sound_samples/cry_ursaring.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ursaring.bin"
.align 2
Cry_Slugma:: @ 858CD14
- .incbin "sound/direct_sound_samples/cry_slugma.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_slugma.bin"
.align 2
Cry_Magcargo:: @ 858DE2C
- .incbin "sound/direct_sound_samples/cry_magcargo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_magcargo.bin"
.align 2
Cry_Swinub:: @ 858F334
- .incbin "sound/direct_sound_samples/cry_swinub.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_swinub.bin"
.align 2
Cry_Piloswine:: @ 858FFDC
- .incbin "sound/direct_sound_samples/cry_piloswine.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_piloswine.bin"
.align 2
Cry_Corsola:: @ 8590CD0
- .incbin "sound/direct_sound_samples/cry_corsola.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_corsola.bin"
.align 2
Cry_Remoraid:: @ 85919B0
- .incbin "sound/direct_sound_samples/cry_remoraid.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_remoraid.bin"
.align 2
Cry_Octillery:: @ 8592440
- .incbin "sound/direct_sound_samples/cry_octillery.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_octillery.bin"
.align 2
Cry_Delibird:: @ 8593E84
- .incbin "sound/direct_sound_samples/cry_delibird.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_delibird.bin"
.align 2
Cry_Mantine:: @ 8594EB8
- .incbin "sound/direct_sound_samples/cry_mantine.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mantine.bin"
.align 2
Cry_Skarmory:: @ 8595E80
- .incbin "sound/direct_sound_samples/cry_skarmory.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_skarmory.bin"
.align 2
Cry_Houndour:: @ 8597688
- .incbin "sound/direct_sound_samples/cry_houndour.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_houndour.bin"
.align 2
Cry_Houndoom:: @ 8598330
- .incbin "sound/direct_sound_samples/cry_houndoom.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_houndoom.bin"
.align 2
Cry_Kingdra:: @ 85996E0
- .incbin "sound/direct_sound_samples/cry_kingdra.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kingdra.bin"
.align 2
Cry_Phanpy:: @ 859A4B8
- .incbin "sound/direct_sound_samples/cry_phanpy.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_phanpy.bin"
.align 2
Cry_Donphan:: @ 859B008
- .incbin "sound/direct_sound_samples/cry_donphan.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_donphan.bin"
.align 2
Cry_Porygon2:: @ 859C12C
- .incbin "sound/direct_sound_samples/cry_porygon2.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_porygon2.bin"
.align 2
Cry_Stantler:: @ 859D0E4
- .incbin "sound/direct_sound_samples/cry_stantler.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_stantler.bin"
.align 2
Cry_Smeargle:: @ 859E760
- .incbin "sound/direct_sound_samples/cry_smeargle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_smeargle.bin"
.align 2
Cry_Tyrogue:: @ 859F194
- .incbin "sound/direct_sound_samples/cry_tyrogue.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tyrogue.bin"
.align 2
Cry_Hitmontop:: @ 85A01BC
- .incbin "sound/direct_sound_samples/cry_hitmontop.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hitmontop.bin"
.align 2
Cry_Smoochum:: @ 85A0F9C
- .incbin "sound/direct_sound_samples/cry_smoochum.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_smoochum.bin"
.align 2
Cry_Elekid:: @ 85A1B50
- .incbin "sound/direct_sound_samples/cry_elekid.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_elekid.bin"
.align 2
Cry_Magby:: @ 85A25DC
- .incbin "sound/direct_sound_samples/cry_magby.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_magby.bin"
.align 2
Cry_Miltank:: @ 85A344C
- .incbin "sound/direct_sound_samples/cry_miltank.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_miltank.bin"
.align 2
Cry_Blissey:: @ 85A4328
- .incbin "sound/direct_sound_samples/cry_blissey.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_blissey.bin"
.align 2
Cry_Raikou:: @ 85A53BC
- .incbin "sound/direct_sound_samples/cry_raikou.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_raikou.bin"
.align 2
Cry_Entei:: @ 85A652C
- .incbin "sound/direct_sound_samples/cry_entei.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_entei.bin"
.align 2
Cry_Suicune:: @ 85A79A0
- .incbin "sound/direct_sound_samples/cry_suicune.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_suicune.bin"
.align 2
Cry_Larvitar:: @ 85A8BE8
- .incbin "sound/direct_sound_samples/cry_larvitar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_larvitar.bin"
.align 2
Cry_Pupitar:: @ 85A9898
- .incbin "sound/direct_sound_samples/cry_pupitar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pupitar.bin"
.align 2
Cry_Tyranitar:: @ 85AA108
- .incbin "sound/direct_sound_samples/cry_tyranitar.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tyranitar.bin"
.align 2
Cry_Lugia:: @ 85AB868
- .incbin "sound/direct_sound_samples/cry_lugia.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lugia.bin"
.align 2
Cry_HoOh:: @ 85ADE60
- .incbin "sound/direct_sound_samples/cry_ho_oh.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ho_oh.bin"
.align 2
Cry_Celebi:: @ 85AF4F4
- .incbin "sound/direct_sound_samples/cry_celebi.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_celebi.bin"
.align 2
Cry_Kecleon:: @ 85B036C
- .incbin "sound/direct_sound_samples/cry_kecleon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kecleon.bin"
.align 2
Cry_Roselia:: @ 85B0BCC
- .incbin "sound/direct_sound_samples/cry_roselia.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_roselia.bin"
.align 2
Cry_Torkoal:: @ 85B168C
- .incbin "sound/direct_sound_samples/cry_torkoal.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_torkoal.bin"
.align 2
Cry_Electrike:: @ 85B1FD8
- .incbin "sound/direct_sound_samples/cry_electrike.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_electrike.bin"
.align 2
Cry_Manectric:: @ 85B2C34
- .incbin "sound/direct_sound_samples/cry_manectric.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_manectric.bin"
.align 2
Cry_Duskull:: @ 85B413C
- .incbin "sound/direct_sound_samples/cry_duskull.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_duskull.bin"
.align 2
Cry_Latias:: @ 85B4BD4
- .incbin "sound/direct_sound_samples/cry_latias.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_latias.bin"
.align 2
Cry_Wynaut:: @ 85B5804
- .incbin "sound/direct_sound_samples/cry_wynaut.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wynaut.bin"
.align 2
Cry_Seviper:: @ 85B65E4
- .incbin "sound/direct_sound_samples/cry_seviper.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_seviper.bin"
.align 2
Cry_Sharpedo:: @ 85B7184
- .incbin "sound/direct_sound_samples/cry_sharpedo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sharpedo.bin"
.align 2
Cry_Zangoose:: @ 85B8890
- .incbin "sound/direct_sound_samples/cry_zangoose.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_zangoose.bin"
.align 2
Cry_Azurill:: @ 85B9220
- .incbin "sound/direct_sound_samples/cry_azurill.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_azurill.bin"
.align 2
Cry_Swablu:: @ 85B9C88
- .incbin "sound/direct_sound_samples/cry_swablu.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_swablu.bin"
.align 2
Cry_Altaria:: @ 85BA220
- .incbin "sound/direct_sound_samples/cry_altaria.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_altaria.bin"
.align 2
Cry_Unused265:: @ 85BAD3C
- .incbin "sound/direct_sound_samples/cry_unused_265.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_unused_265.bin"
.align 2
Cry_Taillow:: @ 85BB690
- .incbin "sound/direct_sound_samples/cry_taillow.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_taillow.bin"
.align 2
Cry_Swellow:: @ 85BBC90
- .incbin "sound/direct_sound_samples/cry_swellow.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_swellow.bin"
.align 2
Cry_Unused268:: @ 85BC594
- .incbin "sound/direct_sound_samples/cry_unused_268.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_unused_268.bin"
.align 2
Cry_Spinda:: @ 85BD744
- .incbin "sound/direct_sound_samples/cry_spinda.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_spinda.bin"
.align 2
Cry_Torchic:: @ 85BE3B0
- .incbin "sound/direct_sound_samples/cry_torchic.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_torchic.bin"
.align 2
Cry_Combusken:: @ 85BED58
- .incbin "sound/direct_sound_samples/cry_combusken.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_combusken.bin"
.align 2
Cry_Blaziken:: @ 85C0A2C
- .incbin "sound/direct_sound_samples/cry_blaziken.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_blaziken.bin"
.align 2
Cry_Treecko:: @ 85C29AC
- .incbin "sound/direct_sound_samples/cry_treecko.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_treecko.bin"
.align 2
Cry_Grovyle:: @ 85C3554
- .incbin "sound/direct_sound_samples/cry_grovyle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_grovyle.bin"
.align 2
Cry_Sceptile:: @ 85C49C8
- .incbin "sound/direct_sound_samples/cry_sceptile.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sceptile.bin"
.align 2
Cry_Mudkip:: @ 85C63E4
- .incbin "sound/direct_sound_samples/cry_mudkip.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mudkip.bin"
.align 2
Cry_Marshtomp:: @ 85C6B68
- .incbin "sound/direct_sound_samples/cry_marshtomp.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_marshtomp.bin"
.align 2
Cry_Swampert:: @ 85C7C6C
- .incbin "sound/direct_sound_samples/cry_swampert.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_swampert.bin"
.align 2
Cry_Pelipper:: @ 85C92EC
- .incbin "sound/direct_sound_samples/cry_pelipper.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_pelipper.bin"
.align 2
Cry_Wingull:: @ 85C9EB4
- .incbin "sound/direct_sound_samples/cry_wingull.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wingull.bin"
.align 2
Cry_Banette:: @ 85CAAF4
- .incbin "sound/direct_sound_samples/cry_banette.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_banette.bin"
.align 2
Cry_Shuppet:: @ 85CB79C
- .incbin "sound/direct_sound_samples/cry_shuppet.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shuppet.bin"
.align 2
Cry_Lotad:: @ 85CBFDC
- .incbin "sound/direct_sound_samples/cry_lotad.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lotad.bin"
.align 2
Cry_Lombre:: @ 85CC444
- .incbin "sound/direct_sound_samples/cry_lombre.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lombre.bin"
.align 2
Cry_Ludicolo:: @ 85CD2D8
- .incbin "sound/direct_sound_samples/cry_ludicolo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ludicolo.bin"
.align 2
Cry_Seedot:: @ 85CE3A8
- .incbin "sound/direct_sound_samples/cry_seedot.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_seedot.bin"
.align 2
Cry_Nuzleaf:: @ 85CEBD4
- .incbin "sound/direct_sound_samples/cry_nuzleaf.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nuzleaf.bin"
.align 2
Cry_Shiftry:: @ 85CF73C
- .incbin "sound/direct_sound_samples/cry_shiftry.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shiftry.bin"
.align 2
Cry_Carvanha:: @ 85D0B00
- .incbin "sound/direct_sound_samples/cry_carvanha.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_carvanha.bin"
.align 2
Cry_Wurmple:: @ 85D1514
- .incbin "sound/direct_sound_samples/cry_wurmple.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wurmple.bin"
.align 2
Cry_Silcoon:: @ 85D1DE0
- .incbin "sound/direct_sound_samples/cry_silcoon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_silcoon.bin"
.align 2
Cry_Beautifly:: @ 85D2E0C
- .incbin "sound/direct_sound_samples/cry_beautifly.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_beautifly.bin"
.align 2
Cry_Cascoon:: @ 85D3644
- .incbin "sound/direct_sound_samples/cry_cascoon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cascoon.bin"
.align 2
Cry_Dustox:: @ 85D4688
- .incbin "sound/direct_sound_samples/cry_dustox.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dustox.bin"
.align 2
Cry_Ralts:: @ 85D5334
- .incbin "sound/direct_sound_samples/cry_ralts.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ralts.bin"
.align 2
Cry_Kirlia:: @ 85D5D50
- .incbin "sound/direct_sound_samples/cry_kirlia.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kirlia.bin"
.align 2
Cry_Gardevoir:: @ 85D6980
- .incbin "sound/direct_sound_samples/cry_gardevoir.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gardevoir.bin"
.align 2
Cry_Slakoth:: @ 85D81E4
- .incbin "sound/direct_sound_samples/cry_slakoth.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_slakoth.bin"
.align 2
Cry_Vigoroth:: @ 85D8A68
- .incbin "sound/direct_sound_samples/cry_vigoroth.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_vigoroth.bin"
.align 2
Cry_Slaking:: @ 85D98C0
- .incbin "sound/direct_sound_samples/cry_slaking.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_slaking.bin"
.align 2
Cry_Nincada:: @ 85DA2AC
- .incbin "sound/direct_sound_samples/cry_nincada.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nincada.bin"
.align 2
Cry_Ninjask:: @ 85DA91C
- .incbin "sound/direct_sound_samples/cry_ninjask.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_ninjask.bin"
.align 2
Cry_Shedinja:: @ 85DB544
- .incbin "sound/direct_sound_samples/cry_shedinja.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shedinja.bin"
.align 2
Cry_Makuhita:: @ 85DBCFC
- .incbin "sound/direct_sound_samples/cry_makuhita.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_makuhita.bin"
.align 2
Cry_Hariyama:: @ 85DC458
- .incbin "sound/direct_sound_samples/cry_hariyama.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_hariyama.bin"
.align 2
Cry_Nosepass:: @ 85DD510
- .incbin "sound/direct_sound_samples/cry_nosepass.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_nosepass.bin"
.align 2
Cry_Glalie:: @ 85DE274
- .incbin "sound/direct_sound_samples/cry_glalie.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_glalie.bin"
.align 2
Cry_Plusle:: @ 85DF758
- .incbin "sound/direct_sound_samples/cry_plusle.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_plusle.bin"
.align 2
Cry_Minun:: @ 85E0054
- .incbin "sound/direct_sound_samples/cry_minun.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_minun.bin"
.align 2
Cry_Surskit:: @ 85E105C
- .incbin "sound/direct_sound_samples/cry_surskit.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_surskit.bin"
.align 2
Cry_Masquerain:: @ 85E1ADC
- .incbin "sound/direct_sound_samples/cry_masquerain.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_masquerain.bin"
.align 2
Cry_Skitty:: @ 85E2E90
- .incbin "sound/direct_sound_samples/cry_skitty.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_skitty.bin"
.align 2
Cry_Delcatty:: @ 85E35A4
- .incbin "sound/direct_sound_samples/cry_delcatty.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_delcatty.bin"
.align 2
Cry_Gulpin:: @ 85E4ABC
- .incbin "sound/direct_sound_samples/cry_gulpin.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gulpin.bin"
.align 2
Cry_Swalot:: @ 85E52C0
- .incbin "sound/direct_sound_samples/cry_swalot.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_swalot.bin"
.align 2
Cry_Numel:: @ 85E6420
- .incbin "sound/direct_sound_samples/cry_numel.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_numel.bin"
.align 2
Cry_Camerupt:: @ 85E6D6C
- .incbin "sound/direct_sound_samples/cry_camerupt.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_camerupt.bin"
.align 2
Cry_Barboach:: @ 85E848C
- .incbin "sound/direct_sound_samples/cry_barboach.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_barboach.bin"
.align 2
Cry_Whiscash:: @ 85E8DC8
- .incbin "sound/direct_sound_samples/cry_whiscash.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_whiscash.bin"
.align 2
Cry_Corphish:: @ 85E9EC4
- .incbin "sound/direct_sound_samples/cry_corphish.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_corphish.bin"
.align 2
Cry_Crawdaunt:: @ 85EAAC8
- .incbin "sound/direct_sound_samples/cry_crawdaunt.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_crawdaunt.bin"
.align 2
Cry_Spoink:: @ 85EC380
- .incbin "sound/direct_sound_samples/cry_spoink.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_spoink.bin"
.align 2
Cry_Grumpig:: @ 85ECAC0
- .incbin "sound/direct_sound_samples/cry_grumpig.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_grumpig.bin"
.align 2
Cry_Trapinch:: @ 85ED760
- .incbin "sound/direct_sound_samples/cry_trapinch.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_trapinch.bin"
.align 2
Cry_Vibrava:: @ 85EE184
- .incbin "sound/direct_sound_samples/cry_vibrava.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_vibrava.bin"
.align 2
Cry_Flygon:: @ 85EEF88
- .incbin "sound/direct_sound_samples/cry_flygon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_flygon.bin"
.align 2
Cry_Cacnea:: @ 85F0990
- .incbin "sound/direct_sound_samples/cry_cacnea.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cacnea.bin"
.align 2
Cry_Cacturne:: @ 85F1280
- .incbin "sound/direct_sound_samples/cry_cacturne.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cacturne.bin"
.align 2
Cry_Baltoy:: @ 85F2930
- .incbin "sound/direct_sound_samples/cry_baltoy.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_baltoy.bin"
.align 2
Cry_Claydol:: @ 85F35B4
- .incbin "sound/direct_sound_samples/cry_claydol.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_claydol.bin"
.align 2
Cry_Lunatone:: @ 85F4914
- .incbin "sound/direct_sound_samples/cry_lunatone.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lunatone.bin"
.align 2
Cry_Solrock:: @ 85F6110
- .incbin "sound/direct_sound_samples/cry_solrock.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_solrock.bin"
.align 2
Cry_Feebas:: @ 85F713C
- .incbin "sound/direct_sound_samples/cry_feebas.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_feebas.bin"
.align 2
Cry_Milotic:: @ 85F7910
- .incbin "sound/direct_sound_samples/cry_milotic.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_milotic.bin"
.align 2
Cry_Absol:: @ 85FA054
- .incbin "sound/direct_sound_samples/cry_absol.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_absol.bin"
.align 2
Cry_Meditite:: @ 85FAAD0
- .incbin "sound/direct_sound_samples/cry_meditite.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_meditite.bin"
.align 2
Cry_Medicham:: @ 85FB2F0
- .incbin "sound/direct_sound_samples/cry_medicham.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_medicham.bin"
.align 2
Cry_Spheal:: @ 85FC374
- .incbin "sound/direct_sound_samples/cry_spheal.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_spheal.bin"
.align 2
Cry_Sealeo:: @ 85FC928
- .incbin "sound/direct_sound_samples/cry_sealeo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sealeo.bin"
.align 2
Cry_Walrein:: @ 85FD500
- .incbin "sound/direct_sound_samples/cry_walrein.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_walrein.bin"
.align 2
Cry_Clamperl:: @ 85FF94C
- .incbin "sound/direct_sound_samples/cry_clamperl.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_clamperl.bin"
.align 2
Cry_Huntail:: @ 8600B9C
- .incbin "sound/direct_sound_samples/cry_huntail.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_huntail.bin"
.align 2
Cry_Gorebyss:: @ 8601B84
- .incbin "sound/direct_sound_samples/cry_gorebyss.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_gorebyss.bin"
.align 2
Cry_Lileep:: @ 86031F0
- .incbin "sound/direct_sound_samples/cry_lileep.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lileep.bin"
.align 2
Cry_Cradily:: @ 8603B98
- .incbin "sound/direct_sound_samples/cry_cradily.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_cradily.bin"
.align 2
Cry_Anorith:: @ 86058C8
- .incbin "sound/direct_sound_samples/cry_anorith.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_anorith.bin"
.align 2
Cry_Armaldo:: @ 8606480
- .incbin "sound/direct_sound_samples/cry_armaldo.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_armaldo.bin"
.align 2
Cry_Beldum:: @ 8607B54
- .incbin "sound/direct_sound_samples/cry_beldum.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_beldum.bin"
.align 2
Cry_Metang:: @ 86084F4
- .incbin "sound/direct_sound_samples/cry_metang.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_metang.bin"
.align 2
Cry_Metagross:: @ 86097C8
- .incbin "sound/direct_sound_samples/cry_metagross.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_metagross.bin"
.align 2
Cry_Bagon:: @ 860BF40
- .incbin "sound/direct_sound_samples/cry_bagon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_bagon.bin"
.align 2
Cry_Shelgon:: @ 860C714
- .incbin "sound/direct_sound_samples/cry_shelgon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shelgon.bin"
.align 2
Cry_Regirock:: @ 860DB1C
- .incbin "sound/direct_sound_samples/cry_regirock.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_regirock.bin"
.align 2
Cry_Regice:: @ 860FAF8
- .incbin "sound/direct_sound_samples/cry_regice.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_regice.bin"
.align 2
Cry_Registeel:: @ 8611AF8
- .incbin "sound/direct_sound_samples/cry_registeel.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_registeel.bin"
.align 2
Cry_Castform:: @ 86131FC
- .incbin "sound/direct_sound_samples/cry_castform.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_castform.bin"
.align 2
Cry_Volbeat:: @ 8613E94
- .incbin "sound/direct_sound_samples/cry_volbeat.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_volbeat.bin"
.align 2
Cry_Illumise:: @ 8614A1C
- .incbin "sound/direct_sound_samples/cry_illumise.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_illumise.bin"
.align 2
Cry_Poochyena:: @ 8615B34
- .incbin "sound/direct_sound_samples/cry_poochyena.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_poochyena.bin"
.align 2
Cry_Mightyena:: @ 861647C
- .incbin "sound/direct_sound_samples/cry_mightyena.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mightyena.bin"
.align 2
Cry_Dusclops:: @ 8617808
- .incbin "sound/direct_sound_samples/cry_dusclops.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_dusclops.bin"
.align 2
Cry_Sableye:: @ 86185C0
- .incbin "sound/direct_sound_samples/cry_sableye.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_sableye.bin"
.align 2
Cry_Mawile:: @ 8619164
- .incbin "sound/direct_sound_samples/cry_mawile.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_mawile.bin"
.align 2
Cry_Aron:: @ 8619CE4
- .incbin "sound/direct_sound_samples/cry_aron.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_aron.bin"
.align 2
Cry_Lairon:: @ 861A610
- .incbin "sound/direct_sound_samples/cry_lairon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_lairon.bin"
.align 2
Cry_Aggron:: @ 861BAE8
- .incbin "sound/direct_sound_samples/cry_aggron.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_aggron.bin"
.align 2
Cry_Relicanth:: @ 861D48C
- .incbin "sound/direct_sound_samples/cry_relicanth.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_relicanth.bin"
.align 2
Cry_Luvdisc:: @ 861E8BC
- .incbin "sound/direct_sound_samples/cry_luvdisc.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_luvdisc.bin"
.align 2
Cry_Groudon:: @ 861ED98
- .incbin "sound/direct_sound_samples/cry_groudon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_groudon.bin"
.align 2
Cry_Kyogre:: @ 86212A4
- .incbin "sound/direct_sound_samples/cry_kyogre.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_kyogre.bin"
.align 2
Cry_Rayquaza:: @ 862365C
- .incbin "sound/direct_sound_samples/cry_rayquaza.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_rayquaza.bin"
.align 2
Cry_Salamence:: @ 8625388
- .incbin "sound/direct_sound_samples/cry_salamence.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_salamence.bin"
.align 2
Cry_Breloom:: @ 8626CA4
- .incbin "sound/direct_sound_samples/cry_breloom.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_breloom.bin"
.align 2
Cry_Shroomish:: @ 8627964
- .incbin "sound/direct_sound_samples/cry_shroomish.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_shroomish.bin"
.align 2
Cry_Linoone:: @ 862823C
- .incbin "sound/direct_sound_samples/cry_linoone.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_linoone.bin"
.align 2
Cry_Tropius:: @ 862A0D8
- .incbin "sound/direct_sound_samples/cry_tropius.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_tropius.bin"
.align 2
Cry_Wailmer:: @ 862C19C
- .incbin "sound/direct_sound_samples/cry_wailmer.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wailmer.bin"
.align 2
Cry_Zigzagoon:: @ 862DDFC
- .incbin "sound/direct_sound_samples/cry_zigzagoon.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_zigzagoon.bin"
.align 2
Cry_Exploud:: @ 862E98C
- .incbin "sound/direct_sound_samples/cry_exploud.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_exploud.bin"
.align 2
Cry_Loudred:: @ 86305D4
- .incbin "sound/direct_sound_samples/cry_loudred.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_loudred.bin"
.align 2
Cry_Wailord:: @ 86312FC
- .incbin "sound/direct_sound_samples/cry_wailord.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_wailord.bin"
.align 2
Cry_Whismur:: @ 8633D0C
- .incbin "sound/direct_sound_samples/cry_whismur.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_whismur.bin"
.align 2
Cry_Snorunt:: @ 8634530
- .incbin "sound/direct_sound_samples/cry_snorunt.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_snorunt.bin"
.align 2
Cry_Latios:: @ 8635638
- .incbin "sound/direct_sound_samples/cry_latios.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_latios.bin"
.align 2
Cry_Jirachi:: @ 8636C30
- .incbin "sound/direct_sound_samples/cry_jirachi.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_jirachi.bin"
.align 2
Cry_Deoxys:: @ 86379B4
- .incbin "sound/direct_sound_samples/cry_deoxys.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_deoxys.bin"
.align 2
Cry_Chimecho:: @ 8638E88
- .incbin "sound/direct_sound_samples/cry_chimecho.bin"
+ .incbin "sound/direct_sound_samples/cries/cry_chimecho.bin"
.align 2
-DirectSoundWaveData_8639898:: @ 8639898
- .incbin "sound/direct_sound_samples/8639898.bin"
+DirectSoundWaveData_Phoneme_Vowel7:: @ 8639898
+ .incbin "sound/direct_sound_samples/phonemes/vowel_7.bin"
.align 2
-DirectSoundWaveData_8639EF8:: @ 8639EF8
- .incbin "sound/direct_sound_samples/8639EF8.bin"
+DirectSoundWaveData_Phoneme_Vowel8:: @ 8639EF8
+ .incbin "sound/direct_sound_samples/phonemes/vowel_8.bin"
.align 2
-DirectSoundWaveData_863A3DC:: @ 863A3DC
- .incbin "sound/direct_sound_samples/863A3DC.bin"
+DirectSoundWaveData_Phoneme_Vowel9:: @ 863A3DC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_9.bin"
.align 2
-DirectSoundWaveData_863AD2C:: @ 863AD2C
- .incbin "sound/direct_sound_samples/863AD2C.bin"
+DirectSoundWaveData_Phoneme_Vowel10:: @ 863AD2C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_10.bin"
.align 2
-DirectSoundWaveData_863B79C:: @ 863B79C
- .incbin "sound/direct_sound_samples/863B79C.bin"
+DirectSoundWaveData_Phoneme_Vowel11:: @ 863B79C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_11.bin"
.align 2
-DirectSoundWaveData_863BABC:: @ 863BABC
- .incbin "sound/direct_sound_samples/863BABC.bin"
+DirectSoundWaveData_Phoneme_Vowel12:: @ 863BABC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_12.bin"
.align 2
-DirectSoundWaveData_863C744:: @ 863C744
- .incbin "sound/direct_sound_samples/863C744.bin"
+DirectSoundWaveData_Phoneme_Vowel13:: @ 863C744
+ .incbin "sound/direct_sound_samples/phonemes/vowel_13.bin"
.align 2
-DirectSoundWaveData_863CD64:: @ 863CD64
- .incbin "sound/direct_sound_samples/863CD64.bin"
+DirectSoundWaveData_Phoneme_Vowel14:: @ 863CD64
+ .incbin "sound/direct_sound_samples/phonemes/vowel_14.bin"
.align 2
-DirectSoundWaveData_863D0EC:: @ 863D0EC
- .incbin "sound/direct_sound_samples/863D0EC.bin"
+DirectSoundWaveData_Phoneme_Vowel15:: @ 863D0EC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_15.bin"
.align 2
-DirectSoundWaveData_863DED0:: @ 863DED0
- .incbin "sound/direct_sound_samples/863DED0.bin"
+DirectSoundWaveData_Phoneme_Vowel16:: @ 863DED0
+ .incbin "sound/direct_sound_samples/phonemes/vowel_16.bin"
.align 2
-DirectSoundWaveData_863E840:: @ 863E840
- .incbin "sound/direct_sound_samples/863E840.bin"
+DirectSoundWaveData_Phoneme_Vowel17:: @ 863E840
+ .incbin "sound/direct_sound_samples/phonemes/vowel_17.bin"
.align 2
-DirectSoundWaveData_863EBDC:: @ 863EBDC
- .incbin "sound/direct_sound_samples/863EBDC.bin"
+DirectSoundWaveData_Phoneme_Vowel18:: @ 863EBDC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_18.bin"
.align 2
-DirectSoundWaveData_863F390:: @ 863F390
- .incbin "sound/direct_sound_samples/863F390.bin"
+DirectSoundWaveData_Phoneme_Vowel19:: @ 863F390
+ .incbin "sound/direct_sound_samples/phonemes/vowel_19.bin"
.align 2
-DirectSoundWaveData_86400EC:: @ 86400EC
- .incbin "sound/direct_sound_samples/86400EC.bin"
+DirectSoundWaveData_Phoneme_Vowel20:: @ 86400EC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_20.bin"
.align 2
-DirectSoundWaveData_8640330:: @ 8640330
- .incbin "sound/direct_sound_samples/8640330.bin"
+DirectSoundWaveData_Phoneme_Vowel21:: @ 8640330
+ .incbin "sound/direct_sound_samples/phonemes/vowel_21.bin"
.align 2
-DirectSoundWaveData_8641170:: @ 8641170
- .incbin "sound/direct_sound_samples/8641170.bin"
+DirectSoundWaveData_Phoneme_Vowel22:: @ 8641170
+ .incbin "sound/direct_sound_samples/phonemes/vowel_22.bin"
.align 2
-DirectSoundWaveData_8641AC4:: @ 8641AC4
- .incbin "sound/direct_sound_samples/8641AC4.bin"
+DirectSoundWaveData_Phoneme_Vowel23:: @ 8641AC4
+ .incbin "sound/direct_sound_samples/phonemes/vowel_23.bin"
.align 2
-DirectSoundWaveData_8641E18:: @ 8641E18
- .incbin "sound/direct_sound_samples/8641E18.bin"
+DirectSoundWaveData_Phoneme_Vowel24:: @ 8641E18
+ .incbin "sound/direct_sound_samples/phonemes/vowel_24.bin"
.align 2
-DirectSoundWaveData_864244C:: @ 864244C
- .incbin "sound/direct_sound_samples/864244C.bin"
+DirectSoundWaveData_Phoneme_Vowel25:: @ 864244C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_25.bin"
.align 2
-DirectSoundWaveData_86430B8:: @ 86430B8
- .incbin "sound/direct_sound_samples/86430B8.bin"
+DirectSoundWaveData_Phoneme_Vowel26:: @ 86430B8
+ .incbin "sound/direct_sound_samples/phonemes/vowel_26.bin"
.align 2
-DirectSoundWaveData_8643650:: @ 8643650
- .incbin "sound/direct_sound_samples/8643650.bin"
+DirectSoundWaveData_Phoneme_Vowel27:: @ 8643650
+ .incbin "sound/direct_sound_samples/phonemes/vowel_27.bin"
.align 2
-DirectSoundWaveData_8644154:: @ 8644154
- .incbin "sound/direct_sound_samples/8644154.bin"
+DirectSoundWaveData_Phoneme_Vowel28:: @ 8644154
+ .incbin "sound/direct_sound_samples/phonemes/vowel_28.bin"
.align 2
-DirectSoundWaveData_8644758:: @ 8644758
- .incbin "sound/direct_sound_samples/8644758.bin"
+DirectSoundWaveData_Phoneme_Vowel29:: @ 8644758
+ .incbin "sound/direct_sound_samples/phonemes/vowel_29.bin"
.align 2
-DirectSoundWaveData_8644950:: @ 8644950
- .incbin "sound/direct_sound_samples/8644950.bin"
+DirectSoundWaveData_Phoneme_Vowel30:: @ 8644950
+ .incbin "sound/direct_sound_samples/phonemes/vowel_30.bin"
.align 2
-DirectSoundWaveData_86452B4:: @ 86452B4
- .incbin "sound/direct_sound_samples/86452B4.bin"
+DirectSoundWaveData_Phoneme_Vowel31:: @ 86452B4
+ .incbin "sound/direct_sound_samples/phonemes/vowel_31.bin"
.align 2
-DirectSoundWaveData_8646240:: @ 8646240
- .incbin "sound/direct_sound_samples/8646240.bin"
+DirectSoundWaveData_Phoneme_Vowel32:: @ 8646240
+ .incbin "sound/direct_sound_samples/phonemes/vowel_32.bin"
.align 2
-DirectSoundWaveData_8646878:: @ 8646878
- .incbin "sound/direct_sound_samples/8646878.bin"
+DirectSoundWaveData_Phoneme_Vowel33:: @ 8646878
+ .incbin "sound/direct_sound_samples/phonemes/vowel_33.bin"
.align 2
-DirectSoundWaveData_864734C:: @ 864734C
- .incbin "sound/direct_sound_samples/864734C.bin"
+DirectSoundWaveData_Phoneme_Vowel34:: @ 864734C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_34.bin"
.align 2
-DirectSoundWaveData_8648290:: @ 8648290
- .incbin "sound/direct_sound_samples/8648290.bin"
+DirectSoundWaveData_Phoneme_Vowel35:: @ 8648290
+ .incbin "sound/direct_sound_samples/phonemes/vowel_35.bin"
.align 2
-DirectSoundWaveData_8648808:: @ 8648808
- .incbin "sound/direct_sound_samples/8648808.bin"
+DirectSoundWaveData_Phoneme_Vowel36:: @ 8648808
+ .incbin "sound/direct_sound_samples/phonemes/vowel_36.bin"
.align 2
-DirectSoundWaveData_8649654:: @ 8649654
- .incbin "sound/direct_sound_samples/8649654.bin"
+DirectSoundWaveData_Phoneme_Vowel37:: @ 8649654
+ .incbin "sound/direct_sound_samples/phonemes/vowel_37.bin"
.align 2
-DirectSoundWaveData_864A55C:: @ 864A55C
- .incbin "sound/direct_sound_samples/864A55C.bin"
+DirectSoundWaveData_Phoneme_Vowel38:: @ 864A55C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_38.bin"
.align 2
-DirectSoundWaveData_864B030:: @ 864B030
- .incbin "sound/direct_sound_samples/864B030.bin"
+DirectSoundWaveData_Phoneme_Vowel39:: @ 864B030
+ .incbin "sound/direct_sound_samples/phonemes/vowel_39.bin"
.align 2
-DirectSoundWaveData_864BBC4:: @ 864BBC4
- .incbin "sound/direct_sound_samples/864BBC4.bin"
+DirectSoundWaveData_Phoneme_Vowel40:: @ 864BBC4
+ .incbin "sound/direct_sound_samples/phonemes/vowel_40.bin"
.align 2
-DirectSoundWaveData_864C59C:: @ 864C59C
- .incbin "sound/direct_sound_samples/864C59C.bin"
+DirectSoundWaveData_Phoneme_Vowel41:: @ 864C59C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_41.bin"
.align 2
-DirectSoundWaveData_864CBDC:: @ 864CBDC
- .incbin "sound/direct_sound_samples/864CBDC.bin"
+DirectSoundWaveData_Phoneme_Vowel42:: @ 864CBDC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_42.bin"
.align 2
-DirectSoundWaveData_864D6BC:: @ 864D6BC
- .incbin "sound/direct_sound_samples/864D6BC.bin"
+DirectSoundWaveData_Phoneme_Vowel43:: @ 864D6BC
+ .incbin "sound/direct_sound_samples/phonemes/vowel_43.bin"
.align 2
-DirectSoundWaveData_864DCF8:: @ 864DCF8
- .incbin "sound/direct_sound_samples/864DCF8.bin"
+DirectSoundWaveData_Phoneme_Vowel44:: @ 864DCF8
+ .incbin "sound/direct_sound_samples/phonemes/vowel_44.bin"
.align 2
-DirectSoundWaveData_864E410:: @ 864E410
- .incbin "sound/direct_sound_samples/864E410.bin"
+DirectSoundWaveData_Phoneme_Vowel45:: @ 864E410
+ .incbin "sound/direct_sound_samples/phonemes/vowel_45.bin"
.align 2
-DirectSoundWaveData_864ED4C:: @ 864ED4C
- .incbin "sound/direct_sound_samples/864ED4C.bin"
+DirectSoundWaveData_Phoneme_Vowel46:: @ 864ED4C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_46.bin"
.align 2
-DirectSoundWaveData_864F508:: @ 864F508
- .incbin "sound/direct_sound_samples/864F508.bin"
+DirectSoundWaveData_Phoneme_Vowel47:: @ 864F508
+ .incbin "sound/direct_sound_samples/phonemes/vowel_47.bin"
.align 2
-DirectSoundWaveData_864FA6C:: @ 864FA6C
- .incbin "sound/direct_sound_samples/864FA6C.bin"
+DirectSoundWaveData_Phoneme_Vowel48:: @ 864FA6C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_48.bin"
.align 2
-DirectSoundWaveData_86507E0:: @ 86507E0
- .incbin "sound/direct_sound_samples/86507E0.bin"
+DirectSoundWaveData_Phoneme_Vowel49:: @ 86507E0
+ .incbin "sound/direct_sound_samples/phonemes/vowel_49.bin"
.align 2
-DirectSoundWaveData_8650C5C:: @ 8650C5C
- .incbin "sound/direct_sound_samples/8650C5C.bin"
+DirectSoundWaveData_Phoneme_Vowel50:: @ 8650C5C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_50.bin"
.align 2
-DirectSoundWaveData_8651148:: @ 8651148
- .incbin "sound/direct_sound_samples/8651148.bin"
+DirectSoundWaveData_Phoneme_Vowel51:: @ 8651148
+ .incbin "sound/direct_sound_samples/phonemes/vowel_51.bin"
.align 2
-DirectSoundWaveData_8651910:: @ 8651910
- .incbin "sound/direct_sound_samples/8651910.bin"
+DirectSoundWaveData_Phoneme_Vowel52:: @ 8651910
+ .incbin "sound/direct_sound_samples/phonemes/vowel_52.bin"
.align 2
-DirectSoundWaveData_865250C:: @ 865250C
- .incbin "sound/direct_sound_samples/865250C.bin"
+DirectSoundWaveData_Phoneme_Vowel53:: @ 865250C
+ .incbin "sound/direct_sound_samples/phonemes/vowel_53.bin"
.align 2
-DirectSoundWaveData_8652884:: @ 8652884
- .incbin "sound/direct_sound_samples/8652884.bin"
+DirectSoundWaveData_Phoneme_Vowel54:: @ 8652884
+ .incbin "sound/direct_sound_samples/phonemes/vowel_54.bin"
.align 2
-DirectSoundWaveData_8653040:: @ 8653040
- .incbin "sound/direct_sound_samples/8653040.bin"
+DirectSoundWaveData_Phoneme_Vowel55:: @ 8653040
+ .incbin "sound/direct_sound_samples/phonemes/vowel_55.bin"
.align 2
-DirectSoundWaveData_8653CA4:: @ 8653CA4
- .incbin "sound/direct_sound_samples/8653CA4.bin"
+DirectSoundWaveData_Phoneme_Vowel56:: @ 8653CA4
+ .incbin "sound/direct_sound_samples/phonemes/vowel_56.bin"
.align 2
-DirectSoundWaveData_8654170:: @ 8654170
- .incbin "sound/direct_sound_samples/8654170.bin"
+DirectSoundWaveData_Phoneme_Vowel57:: @ 8654170
+ .incbin "sound/direct_sound_samples/phonemes/vowel_57.bin"
.align 2
-DirectSoundWaveData_8654C20:: @ 8654C20
- .incbin "sound/direct_sound_samples/8654C20.bin"
+DirectSoundWaveData_SC88_AccordionFr_Copy:: @ 8654C20
+ .incbin "sound/direct_sound_samples/synth/sc88_22_accordion_fr.bin"
diff --git a/sound/direct_sound_samples/8654C20.aif b/sound/direct_sound_samples/8654C20.aif
deleted file mode 100644
index 6d6c2e998..000000000
--- a/sound/direct_sound_samples/8654C20.aif
+++ /dev/null
Binary files differ
diff --git a/sound/direct_sound_samples/cry_abra.aif b/sound/direct_sound_samples/cries/cry_abra.aif
index 7df4446db..7df4446db 100644
--- a/sound/direct_sound_samples/cry_abra.aif
+++ b/sound/direct_sound_samples/cries/cry_abra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_absol.aif b/sound/direct_sound_samples/cries/cry_absol.aif
index 884ab22b3..884ab22b3 100644
--- a/sound/direct_sound_samples/cry_absol.aif
+++ b/sound/direct_sound_samples/cries/cry_absol.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aerodactyl.aif b/sound/direct_sound_samples/cries/cry_aerodactyl.aif
index c0e40f6d1..c0e40f6d1 100644
--- a/sound/direct_sound_samples/cry_aerodactyl.aif
+++ b/sound/direct_sound_samples/cries/cry_aerodactyl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aggron.aif b/sound/direct_sound_samples/cries/cry_aggron.aif
index b89ea1222..b89ea1222 100644
--- a/sound/direct_sound_samples/cry_aggron.aif
+++ b/sound/direct_sound_samples/cries/cry_aggron.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aipom.aif b/sound/direct_sound_samples/cries/cry_aipom.aif
index 5ca276de2..5ca276de2 100644
--- a/sound/direct_sound_samples/cry_aipom.aif
+++ b/sound/direct_sound_samples/cries/cry_aipom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_alakazam.aif b/sound/direct_sound_samples/cries/cry_alakazam.aif
index 920e2ff94..920e2ff94 100644
--- a/sound/direct_sound_samples/cry_alakazam.aif
+++ b/sound/direct_sound_samples/cries/cry_alakazam.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_altaria.aif b/sound/direct_sound_samples/cries/cry_altaria.aif
index 3e8e35e8e..3e8e35e8e 100644
--- a/sound/direct_sound_samples/cry_altaria.aif
+++ b/sound/direct_sound_samples/cries/cry_altaria.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ampharos.aif b/sound/direct_sound_samples/cries/cry_ampharos.aif
index 4f6e255a0..4f6e255a0 100644
--- a/sound/direct_sound_samples/cry_ampharos.aif
+++ b/sound/direct_sound_samples/cries/cry_ampharos.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_anorith.aif b/sound/direct_sound_samples/cries/cry_anorith.aif
index 96e87e919..96e87e919 100644
--- a/sound/direct_sound_samples/cry_anorith.aif
+++ b/sound/direct_sound_samples/cries/cry_anorith.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_arbok.aif b/sound/direct_sound_samples/cries/cry_arbok.aif
index 6ccace9f9..6ccace9f9 100644
--- a/sound/direct_sound_samples/cry_arbok.aif
+++ b/sound/direct_sound_samples/cries/cry_arbok.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_arcanine.aif b/sound/direct_sound_samples/cries/cry_arcanine.aif
index 61d802153..61d802153 100644
--- a/sound/direct_sound_samples/cry_arcanine.aif
+++ b/sound/direct_sound_samples/cries/cry_arcanine.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ariados.aif b/sound/direct_sound_samples/cries/cry_ariados.aif
index 1748624fb..1748624fb 100644
--- a/sound/direct_sound_samples/cry_ariados.aif
+++ b/sound/direct_sound_samples/cries/cry_ariados.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_armaldo.aif b/sound/direct_sound_samples/cries/cry_armaldo.aif
index 756bf0842..756bf0842 100644
--- a/sound/direct_sound_samples/cry_armaldo.aif
+++ b/sound/direct_sound_samples/cries/cry_armaldo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_aron.aif b/sound/direct_sound_samples/cries/cry_aron.aif
index cce70b73b..cce70b73b 100644
--- a/sound/direct_sound_samples/cry_aron.aif
+++ b/sound/direct_sound_samples/cries/cry_aron.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_articuno.aif b/sound/direct_sound_samples/cries/cry_articuno.aif
index 4f237dd0f..4f237dd0f 100644
--- a/sound/direct_sound_samples/cry_articuno.aif
+++ b/sound/direct_sound_samples/cries/cry_articuno.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_azumarill.aif b/sound/direct_sound_samples/cries/cry_azumarill.aif
index 18411f93c..18411f93c 100644
--- a/sound/direct_sound_samples/cry_azumarill.aif
+++ b/sound/direct_sound_samples/cries/cry_azumarill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_azurill.aif b/sound/direct_sound_samples/cries/cry_azurill.aif
index 7f651c3d3..7f651c3d3 100644
--- a/sound/direct_sound_samples/cry_azurill.aif
+++ b/sound/direct_sound_samples/cries/cry_azurill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bagon.aif b/sound/direct_sound_samples/cries/cry_bagon.aif
index 3843fb9f4..3843fb9f4 100644
--- a/sound/direct_sound_samples/cry_bagon.aif
+++ b/sound/direct_sound_samples/cries/cry_bagon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_baltoy.aif b/sound/direct_sound_samples/cries/cry_baltoy.aif
index 25e1a708a..25e1a708a 100644
--- a/sound/direct_sound_samples/cry_baltoy.aif
+++ b/sound/direct_sound_samples/cries/cry_baltoy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_banette.aif b/sound/direct_sound_samples/cries/cry_banette.aif
index 23713f1b5..23713f1b5 100644
--- a/sound/direct_sound_samples/cry_banette.aif
+++ b/sound/direct_sound_samples/cries/cry_banette.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_barboach.aif b/sound/direct_sound_samples/cries/cry_barboach.aif
index 4b9228259..4b9228259 100644
--- a/sound/direct_sound_samples/cry_barboach.aif
+++ b/sound/direct_sound_samples/cries/cry_barboach.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bayleef.aif b/sound/direct_sound_samples/cries/cry_bayleef.aif
index 8cef22df3..8cef22df3 100644
--- a/sound/direct_sound_samples/cry_bayleef.aif
+++ b/sound/direct_sound_samples/cries/cry_bayleef.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_beautifly.aif b/sound/direct_sound_samples/cries/cry_beautifly.aif
index 0924b6c55..0924b6c55 100644
--- a/sound/direct_sound_samples/cry_beautifly.aif
+++ b/sound/direct_sound_samples/cries/cry_beautifly.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_beedrill.aif b/sound/direct_sound_samples/cries/cry_beedrill.aif
index 00d0bc96c..00d0bc96c 100644
--- a/sound/direct_sound_samples/cry_beedrill.aif
+++ b/sound/direct_sound_samples/cries/cry_beedrill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_beldum.aif b/sound/direct_sound_samples/cries/cry_beldum.aif
index 76435a6a8..76435a6a8 100644
--- a/sound/direct_sound_samples/cry_beldum.aif
+++ b/sound/direct_sound_samples/cries/cry_beldum.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bellossom.aif b/sound/direct_sound_samples/cries/cry_bellossom.aif
index 86580df65..86580df65 100644
--- a/sound/direct_sound_samples/cry_bellossom.aif
+++ b/sound/direct_sound_samples/cries/cry_bellossom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bellsprout.aif b/sound/direct_sound_samples/cries/cry_bellsprout.aif
index cfdd7aed2..cfdd7aed2 100644
--- a/sound/direct_sound_samples/cry_bellsprout.aif
+++ b/sound/direct_sound_samples/cries/cry_bellsprout.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_blastoise.aif b/sound/direct_sound_samples/cries/cry_blastoise.aif
index 76dac2bcc..76dac2bcc 100644
--- a/sound/direct_sound_samples/cry_blastoise.aif
+++ b/sound/direct_sound_samples/cries/cry_blastoise.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_blaziken.aif b/sound/direct_sound_samples/cries/cry_blaziken.aif
index 83e5ccf23..83e5ccf23 100644
--- a/sound/direct_sound_samples/cry_blaziken.aif
+++ b/sound/direct_sound_samples/cries/cry_blaziken.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_blissey.aif b/sound/direct_sound_samples/cries/cry_blissey.aif
index 897eb3d69..897eb3d69 100644
--- a/sound/direct_sound_samples/cry_blissey.aif
+++ b/sound/direct_sound_samples/cries/cry_blissey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_breloom.aif b/sound/direct_sound_samples/cries/cry_breloom.aif
index ea3f1bb66..ea3f1bb66 100644
--- a/sound/direct_sound_samples/cry_breloom.aif
+++ b/sound/direct_sound_samples/cries/cry_breloom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_bulbasaur.aif b/sound/direct_sound_samples/cries/cry_bulbasaur.aif
index 040fb1df7..040fb1df7 100644
--- a/sound/direct_sound_samples/cry_bulbasaur.aif
+++ b/sound/direct_sound_samples/cries/cry_bulbasaur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_butterfree.aif b/sound/direct_sound_samples/cries/cry_butterfree.aif
index f27616395..f27616395 100644
--- a/sound/direct_sound_samples/cry_butterfree.aif
+++ b/sound/direct_sound_samples/cries/cry_butterfree.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cacnea.aif b/sound/direct_sound_samples/cries/cry_cacnea.aif
index 4fd5acd36..4fd5acd36 100644
--- a/sound/direct_sound_samples/cry_cacnea.aif
+++ b/sound/direct_sound_samples/cries/cry_cacnea.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cacturne.aif b/sound/direct_sound_samples/cries/cry_cacturne.aif
index d9fb8fda8..d9fb8fda8 100644
--- a/sound/direct_sound_samples/cry_cacturne.aif
+++ b/sound/direct_sound_samples/cries/cry_cacturne.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_camerupt.aif b/sound/direct_sound_samples/cries/cry_camerupt.aif
index 325df1220..325df1220 100644
--- a/sound/direct_sound_samples/cry_camerupt.aif
+++ b/sound/direct_sound_samples/cries/cry_camerupt.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_carvanha.aif b/sound/direct_sound_samples/cries/cry_carvanha.aif
index c7cdedf91..c7cdedf91 100644
--- a/sound/direct_sound_samples/cry_carvanha.aif
+++ b/sound/direct_sound_samples/cries/cry_carvanha.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cascoon.aif b/sound/direct_sound_samples/cries/cry_cascoon.aif
index 17eef0ee9..17eef0ee9 100644
--- a/sound/direct_sound_samples/cry_cascoon.aif
+++ b/sound/direct_sound_samples/cries/cry_cascoon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_castform.aif b/sound/direct_sound_samples/cries/cry_castform.aif
index c10745640..c10745640 100644
--- a/sound/direct_sound_samples/cry_castform.aif
+++ b/sound/direct_sound_samples/cries/cry_castform.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_caterpie.aif b/sound/direct_sound_samples/cries/cry_caterpie.aif
index b0b246b4f..b0b246b4f 100644
--- a/sound/direct_sound_samples/cry_caterpie.aif
+++ b/sound/direct_sound_samples/cries/cry_caterpie.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_celebi.aif b/sound/direct_sound_samples/cries/cry_celebi.aif
index 9f9f3ea39..9f9f3ea39 100644
--- a/sound/direct_sound_samples/cry_celebi.aif
+++ b/sound/direct_sound_samples/cries/cry_celebi.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chansey.aif b/sound/direct_sound_samples/cries/cry_chansey.aif
index d764c86ce..d764c86ce 100644
--- a/sound/direct_sound_samples/cry_chansey.aif
+++ b/sound/direct_sound_samples/cries/cry_chansey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_charizard.aif b/sound/direct_sound_samples/cries/cry_charizard.aif
index 48321b792..48321b792 100644
--- a/sound/direct_sound_samples/cry_charizard.aif
+++ b/sound/direct_sound_samples/cries/cry_charizard.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_charmander.aif b/sound/direct_sound_samples/cries/cry_charmander.aif
index d72c0f9e0..d72c0f9e0 100644
--- a/sound/direct_sound_samples/cry_charmander.aif
+++ b/sound/direct_sound_samples/cries/cry_charmander.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_charmeleon.aif b/sound/direct_sound_samples/cries/cry_charmeleon.aif
index 8e84af0d8..8e84af0d8 100644
--- a/sound/direct_sound_samples/cry_charmeleon.aif
+++ b/sound/direct_sound_samples/cries/cry_charmeleon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chikorita.aif b/sound/direct_sound_samples/cries/cry_chikorita.aif
index 67ceafdc3..67ceafdc3 100644
--- a/sound/direct_sound_samples/cry_chikorita.aif
+++ b/sound/direct_sound_samples/cries/cry_chikorita.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chimecho.aif b/sound/direct_sound_samples/cries/cry_chimecho.aif
index 87ee2faee..87ee2faee 100644
--- a/sound/direct_sound_samples/cry_chimecho.aif
+++ b/sound/direct_sound_samples/cries/cry_chimecho.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_chinchou.aif b/sound/direct_sound_samples/cries/cry_chinchou.aif
index 356475678..356475678 100644
--- a/sound/direct_sound_samples/cry_chinchou.aif
+++ b/sound/direct_sound_samples/cries/cry_chinchou.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_clamperl.aif b/sound/direct_sound_samples/cries/cry_clamperl.aif
index 7250bd703..7250bd703 100644
--- a/sound/direct_sound_samples/cry_clamperl.aif
+++ b/sound/direct_sound_samples/cries/cry_clamperl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_claydol.aif b/sound/direct_sound_samples/cries/cry_claydol.aif
index b89772021..b89772021 100644
--- a/sound/direct_sound_samples/cry_claydol.aif
+++ b/sound/direct_sound_samples/cries/cry_claydol.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_clefable.aif b/sound/direct_sound_samples/cries/cry_clefable.aif
index 9c2d8c664..9c2d8c664 100644
--- a/sound/direct_sound_samples/cry_clefable.aif
+++ b/sound/direct_sound_samples/cries/cry_clefable.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_clefairy.aif b/sound/direct_sound_samples/cries/cry_clefairy.aif
index c370c4a9b..c370c4a9b 100644
--- a/sound/direct_sound_samples/cry_clefairy.aif
+++ b/sound/direct_sound_samples/cries/cry_clefairy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cleffa.aif b/sound/direct_sound_samples/cries/cry_cleffa.aif
index b27cdeca9..b27cdeca9 100644
--- a/sound/direct_sound_samples/cry_cleffa.aif
+++ b/sound/direct_sound_samples/cries/cry_cleffa.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cloyster.aif b/sound/direct_sound_samples/cries/cry_cloyster.aif
index b406deab0..b406deab0 100644
--- a/sound/direct_sound_samples/cry_cloyster.aif
+++ b/sound/direct_sound_samples/cries/cry_cloyster.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_combusken.aif b/sound/direct_sound_samples/cries/cry_combusken.aif
index 7d4b0d4cc..7d4b0d4cc 100644
--- a/sound/direct_sound_samples/cry_combusken.aif
+++ b/sound/direct_sound_samples/cries/cry_combusken.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_corphish.aif b/sound/direct_sound_samples/cries/cry_corphish.aif
index f0f5ca01e..f0f5ca01e 100644
--- a/sound/direct_sound_samples/cry_corphish.aif
+++ b/sound/direct_sound_samples/cries/cry_corphish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_corsola.aif b/sound/direct_sound_samples/cries/cry_corsola.aif
index 68e743bfd..68e743bfd 100644
--- a/sound/direct_sound_samples/cry_corsola.aif
+++ b/sound/direct_sound_samples/cries/cry_corsola.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cradily.aif b/sound/direct_sound_samples/cries/cry_cradily.aif
index 197dc8d92..197dc8d92 100644
--- a/sound/direct_sound_samples/cry_cradily.aif
+++ b/sound/direct_sound_samples/cries/cry_cradily.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_crawdaunt.aif b/sound/direct_sound_samples/cries/cry_crawdaunt.aif
index a203ce2fb..a203ce2fb 100644
--- a/sound/direct_sound_samples/cry_crawdaunt.aif
+++ b/sound/direct_sound_samples/cries/cry_crawdaunt.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_crobat.aif b/sound/direct_sound_samples/cries/cry_crobat.aif
index 75d039bd8..75d039bd8 100644
--- a/sound/direct_sound_samples/cry_crobat.aif
+++ b/sound/direct_sound_samples/cries/cry_crobat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_croconaw.aif b/sound/direct_sound_samples/cries/cry_croconaw.aif
index afb7f3fdc..afb7f3fdc 100644
--- a/sound/direct_sound_samples/cry_croconaw.aif
+++ b/sound/direct_sound_samples/cries/cry_croconaw.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cubone.aif b/sound/direct_sound_samples/cries/cry_cubone.aif
index 170745da1..170745da1 100644
--- a/sound/direct_sound_samples/cry_cubone.aif
+++ b/sound/direct_sound_samples/cries/cry_cubone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_cyndaquil.aif b/sound/direct_sound_samples/cries/cry_cyndaquil.aif
index 4aa580199..4aa580199 100644
--- a/sound/direct_sound_samples/cry_cyndaquil.aif
+++ b/sound/direct_sound_samples/cries/cry_cyndaquil.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_delcatty.aif b/sound/direct_sound_samples/cries/cry_delcatty.aif
index dd665b110..dd665b110 100644
--- a/sound/direct_sound_samples/cry_delcatty.aif
+++ b/sound/direct_sound_samples/cries/cry_delcatty.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_delibird.aif b/sound/direct_sound_samples/cries/cry_delibird.aif
index dbedc42d4..dbedc42d4 100644
--- a/sound/direct_sound_samples/cry_delibird.aif
+++ b/sound/direct_sound_samples/cries/cry_delibird.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_deoxys.aif b/sound/direct_sound_samples/cries/cry_deoxys.aif
index b9623b337..b9623b337 100644
--- a/sound/direct_sound_samples/cry_deoxys.aif
+++ b/sound/direct_sound_samples/cries/cry_deoxys.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dewgong.aif b/sound/direct_sound_samples/cries/cry_dewgong.aif
index 72d69b773..72d69b773 100644
--- a/sound/direct_sound_samples/cry_dewgong.aif
+++ b/sound/direct_sound_samples/cries/cry_dewgong.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_diglett.aif b/sound/direct_sound_samples/cries/cry_diglett.aif
index b116af7f2..b116af7f2 100644
--- a/sound/direct_sound_samples/cry_diglett.aif
+++ b/sound/direct_sound_samples/cries/cry_diglett.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ditto.aif b/sound/direct_sound_samples/cries/cry_ditto.aif
index 2c797f4c4..2c797f4c4 100644
--- a/sound/direct_sound_samples/cry_ditto.aif
+++ b/sound/direct_sound_samples/cries/cry_ditto.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dodrio.aif b/sound/direct_sound_samples/cries/cry_dodrio.aif
index 111d8bf3e..111d8bf3e 100644
--- a/sound/direct_sound_samples/cry_dodrio.aif
+++ b/sound/direct_sound_samples/cries/cry_dodrio.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_doduo.aif b/sound/direct_sound_samples/cries/cry_doduo.aif
index 5700b91d9..5700b91d9 100644
--- a/sound/direct_sound_samples/cry_doduo.aif
+++ b/sound/direct_sound_samples/cries/cry_doduo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_donphan.aif b/sound/direct_sound_samples/cries/cry_donphan.aif
index a41c124b1..a41c124b1 100644
--- a/sound/direct_sound_samples/cry_donphan.aif
+++ b/sound/direct_sound_samples/cries/cry_donphan.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dragonair.aif b/sound/direct_sound_samples/cries/cry_dragonair.aif
index 38c3955ef..38c3955ef 100644
--- a/sound/direct_sound_samples/cry_dragonair.aif
+++ b/sound/direct_sound_samples/cries/cry_dragonair.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dragonite.aif b/sound/direct_sound_samples/cries/cry_dragonite.aif
index d1e7b11cf..d1e7b11cf 100644
--- a/sound/direct_sound_samples/cry_dragonite.aif
+++ b/sound/direct_sound_samples/cries/cry_dragonite.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dratini.aif b/sound/direct_sound_samples/cries/cry_dratini.aif
index 298497480..298497480 100644
--- a/sound/direct_sound_samples/cry_dratini.aif
+++ b/sound/direct_sound_samples/cries/cry_dratini.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_drowzee.aif b/sound/direct_sound_samples/cries/cry_drowzee.aif
index 0d53eb2ff..0d53eb2ff 100644
--- a/sound/direct_sound_samples/cry_drowzee.aif
+++ b/sound/direct_sound_samples/cries/cry_drowzee.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dugtrio.aif b/sound/direct_sound_samples/cries/cry_dugtrio.aif
index dff573dfe..dff573dfe 100644
--- a/sound/direct_sound_samples/cry_dugtrio.aif
+++ b/sound/direct_sound_samples/cries/cry_dugtrio.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dunsparce.aif b/sound/direct_sound_samples/cries/cry_dunsparce.aif
index 454617c05..454617c05 100644
--- a/sound/direct_sound_samples/cry_dunsparce.aif
+++ b/sound/direct_sound_samples/cries/cry_dunsparce.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dusclops.aif b/sound/direct_sound_samples/cries/cry_dusclops.aif
index de9657e4f..de9657e4f 100644
--- a/sound/direct_sound_samples/cry_dusclops.aif
+++ b/sound/direct_sound_samples/cries/cry_dusclops.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_duskull.aif b/sound/direct_sound_samples/cries/cry_duskull.aif
index d84ea274e..d84ea274e 100644
--- a/sound/direct_sound_samples/cry_duskull.aif
+++ b/sound/direct_sound_samples/cries/cry_duskull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_dustox.aif b/sound/direct_sound_samples/cries/cry_dustox.aif
index 56d8eb336..56d8eb336 100644
--- a/sound/direct_sound_samples/cry_dustox.aif
+++ b/sound/direct_sound_samples/cries/cry_dustox.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_eevee.aif b/sound/direct_sound_samples/cries/cry_eevee.aif
index 8711a1470..8711a1470 100644
--- a/sound/direct_sound_samples/cry_eevee.aif
+++ b/sound/direct_sound_samples/cries/cry_eevee.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ekans.aif b/sound/direct_sound_samples/cries/cry_ekans.aif
index 9eb396735..9eb396735 100644
--- a/sound/direct_sound_samples/cry_ekans.aif
+++ b/sound/direct_sound_samples/cries/cry_ekans.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_electabuzz.aif b/sound/direct_sound_samples/cries/cry_electabuzz.aif
index 5abdb49b7..5abdb49b7 100644
--- a/sound/direct_sound_samples/cry_electabuzz.aif
+++ b/sound/direct_sound_samples/cries/cry_electabuzz.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_electrike.aif b/sound/direct_sound_samples/cries/cry_electrike.aif
index 56c9666df..56c9666df 100644
--- a/sound/direct_sound_samples/cry_electrike.aif
+++ b/sound/direct_sound_samples/cries/cry_electrike.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_electrode.aif b/sound/direct_sound_samples/cries/cry_electrode.aif
index cbd7f0971..cbd7f0971 100644
--- a/sound/direct_sound_samples/cry_electrode.aif
+++ b/sound/direct_sound_samples/cries/cry_electrode.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_elekid.aif b/sound/direct_sound_samples/cries/cry_elekid.aif
index 839bdee17..839bdee17 100644
--- a/sound/direct_sound_samples/cry_elekid.aif
+++ b/sound/direct_sound_samples/cries/cry_elekid.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_entei.aif b/sound/direct_sound_samples/cries/cry_entei.aif
index 56a740207..56a740207 100644
--- a/sound/direct_sound_samples/cry_entei.aif
+++ b/sound/direct_sound_samples/cries/cry_entei.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_espeon.aif b/sound/direct_sound_samples/cries/cry_espeon.aif
index 53dc62f4d..53dc62f4d 100644
--- a/sound/direct_sound_samples/cry_espeon.aif
+++ b/sound/direct_sound_samples/cries/cry_espeon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_exeggcute.aif b/sound/direct_sound_samples/cries/cry_exeggcute.aif
index 147912c2f..147912c2f 100644
--- a/sound/direct_sound_samples/cry_exeggcute.aif
+++ b/sound/direct_sound_samples/cries/cry_exeggcute.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_exeggutor.aif b/sound/direct_sound_samples/cries/cry_exeggutor.aif
index c0b9177bf..c0b9177bf 100644
--- a/sound/direct_sound_samples/cry_exeggutor.aif
+++ b/sound/direct_sound_samples/cries/cry_exeggutor.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_exploud.aif b/sound/direct_sound_samples/cries/cry_exploud.aif
index 5b80870cc..5b80870cc 100644
--- a/sound/direct_sound_samples/cry_exploud.aif
+++ b/sound/direct_sound_samples/cries/cry_exploud.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_farfetchd.aif b/sound/direct_sound_samples/cries/cry_farfetchd.aif
index f1db556dc..f1db556dc 100644
--- a/sound/direct_sound_samples/cry_farfetchd.aif
+++ b/sound/direct_sound_samples/cries/cry_farfetchd.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_fearow.aif b/sound/direct_sound_samples/cries/cry_fearow.aif
index 74a76f6d4..74a76f6d4 100644
--- a/sound/direct_sound_samples/cry_fearow.aif
+++ b/sound/direct_sound_samples/cries/cry_fearow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_feebas.aif b/sound/direct_sound_samples/cries/cry_feebas.aif
index c386522f1..c386522f1 100644
--- a/sound/direct_sound_samples/cry_feebas.aif
+++ b/sound/direct_sound_samples/cries/cry_feebas.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_feraligatr.aif b/sound/direct_sound_samples/cries/cry_feraligatr.aif
index 9fcd93cff..9fcd93cff 100644
--- a/sound/direct_sound_samples/cry_feraligatr.aif
+++ b/sound/direct_sound_samples/cries/cry_feraligatr.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_flaaffy.aif b/sound/direct_sound_samples/cries/cry_flaaffy.aif
index 93dfacfaf..93dfacfaf 100644
--- a/sound/direct_sound_samples/cry_flaaffy.aif
+++ b/sound/direct_sound_samples/cries/cry_flaaffy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_flareon.aif b/sound/direct_sound_samples/cries/cry_flareon.aif
index 58d28e60a..58d28e60a 100644
--- a/sound/direct_sound_samples/cry_flareon.aif
+++ b/sound/direct_sound_samples/cries/cry_flareon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_flygon.aif b/sound/direct_sound_samples/cries/cry_flygon.aif
index c8c377016..c8c377016 100644
--- a/sound/direct_sound_samples/cry_flygon.aif
+++ b/sound/direct_sound_samples/cries/cry_flygon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_forretress.aif b/sound/direct_sound_samples/cries/cry_forretress.aif
index 288dacbea..288dacbea 100644
--- a/sound/direct_sound_samples/cry_forretress.aif
+++ b/sound/direct_sound_samples/cries/cry_forretress.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_furret.aif b/sound/direct_sound_samples/cries/cry_furret.aif
index 6b4e9ce11..6b4e9ce11 100644
--- a/sound/direct_sound_samples/cry_furret.aif
+++ b/sound/direct_sound_samples/cries/cry_furret.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gardevoir.aif b/sound/direct_sound_samples/cries/cry_gardevoir.aif
index a14780990..a14780990 100644
--- a/sound/direct_sound_samples/cry_gardevoir.aif
+++ b/sound/direct_sound_samples/cries/cry_gardevoir.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gastly.aif b/sound/direct_sound_samples/cries/cry_gastly.aif
index 93cef851d..93cef851d 100644
--- a/sound/direct_sound_samples/cry_gastly.aif
+++ b/sound/direct_sound_samples/cries/cry_gastly.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gengar.aif b/sound/direct_sound_samples/cries/cry_gengar.aif
index 379b5d37e..379b5d37e 100644
--- a/sound/direct_sound_samples/cry_gengar.aif
+++ b/sound/direct_sound_samples/cries/cry_gengar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_geodude.aif b/sound/direct_sound_samples/cries/cry_geodude.aif
index 143b9031c..143b9031c 100644
--- a/sound/direct_sound_samples/cry_geodude.aif
+++ b/sound/direct_sound_samples/cries/cry_geodude.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_girafarig.aif b/sound/direct_sound_samples/cries/cry_girafarig.aif
index 1dd5f93e2..1dd5f93e2 100644
--- a/sound/direct_sound_samples/cry_girafarig.aif
+++ b/sound/direct_sound_samples/cries/cry_girafarig.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_glalie.aif b/sound/direct_sound_samples/cries/cry_glalie.aif
index e4e896547..e4e896547 100644
--- a/sound/direct_sound_samples/cry_glalie.aif
+++ b/sound/direct_sound_samples/cries/cry_glalie.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gligar.aif b/sound/direct_sound_samples/cries/cry_gligar.aif
index 4050f08b0..4050f08b0 100644
--- a/sound/direct_sound_samples/cry_gligar.aif
+++ b/sound/direct_sound_samples/cries/cry_gligar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gloom.aif b/sound/direct_sound_samples/cries/cry_gloom.aif
index e930328ac..e930328ac 100644
--- a/sound/direct_sound_samples/cry_gloom.aif
+++ b/sound/direct_sound_samples/cries/cry_gloom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_golbat.aif b/sound/direct_sound_samples/cries/cry_golbat.aif
index 11413df3a..11413df3a 100644
--- a/sound/direct_sound_samples/cry_golbat.aif
+++ b/sound/direct_sound_samples/cries/cry_golbat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_goldeen.aif b/sound/direct_sound_samples/cries/cry_goldeen.aif
index 81fd1ecdf..81fd1ecdf 100644
--- a/sound/direct_sound_samples/cry_goldeen.aif
+++ b/sound/direct_sound_samples/cries/cry_goldeen.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_golduck.aif b/sound/direct_sound_samples/cries/cry_golduck.aif
index b6b71a7a4..b6b71a7a4 100644
--- a/sound/direct_sound_samples/cry_golduck.aif
+++ b/sound/direct_sound_samples/cries/cry_golduck.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_golem.aif b/sound/direct_sound_samples/cries/cry_golem.aif
index 0d2c4515e..0d2c4515e 100644
--- a/sound/direct_sound_samples/cry_golem.aif
+++ b/sound/direct_sound_samples/cries/cry_golem.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gorebyss.aif b/sound/direct_sound_samples/cries/cry_gorebyss.aif
index b7605062c..b7605062c 100644
--- a/sound/direct_sound_samples/cry_gorebyss.aif
+++ b/sound/direct_sound_samples/cries/cry_gorebyss.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_granbull.aif b/sound/direct_sound_samples/cries/cry_granbull.aif
index 146b3bd0c..146b3bd0c 100644
--- a/sound/direct_sound_samples/cry_granbull.aif
+++ b/sound/direct_sound_samples/cries/cry_granbull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_graveler.aif b/sound/direct_sound_samples/cries/cry_graveler.aif
index 773994228..773994228 100644
--- a/sound/direct_sound_samples/cry_graveler.aif
+++ b/sound/direct_sound_samples/cries/cry_graveler.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_grimer.aif b/sound/direct_sound_samples/cries/cry_grimer.aif
index 95eed1061..95eed1061 100644
--- a/sound/direct_sound_samples/cry_grimer.aif
+++ b/sound/direct_sound_samples/cries/cry_grimer.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_groudon.aif b/sound/direct_sound_samples/cries/cry_groudon.aif
index 62452b4d9..62452b4d9 100644
--- a/sound/direct_sound_samples/cry_groudon.aif
+++ b/sound/direct_sound_samples/cries/cry_groudon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_grovyle.aif b/sound/direct_sound_samples/cries/cry_grovyle.aif
index 983bcfff3..983bcfff3 100644
--- a/sound/direct_sound_samples/cry_grovyle.aif
+++ b/sound/direct_sound_samples/cries/cry_grovyle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_growlithe.aif b/sound/direct_sound_samples/cries/cry_growlithe.aif
index 134e29834..134e29834 100644
--- a/sound/direct_sound_samples/cry_growlithe.aif
+++ b/sound/direct_sound_samples/cries/cry_growlithe.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_grumpig.aif b/sound/direct_sound_samples/cries/cry_grumpig.aif
index 97c372076..97c372076 100644
--- a/sound/direct_sound_samples/cry_grumpig.aif
+++ b/sound/direct_sound_samples/cries/cry_grumpig.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gulpin.aif b/sound/direct_sound_samples/cries/cry_gulpin.aif
index f3043b422..f3043b422 100644
--- a/sound/direct_sound_samples/cry_gulpin.aif
+++ b/sound/direct_sound_samples/cries/cry_gulpin.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_gyarados.aif b/sound/direct_sound_samples/cries/cry_gyarados.aif
index 238b6d721..238b6d721 100644
--- a/sound/direct_sound_samples/cry_gyarados.aif
+++ b/sound/direct_sound_samples/cries/cry_gyarados.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hariyama.aif b/sound/direct_sound_samples/cries/cry_hariyama.aif
index 1ac1f3f7e..1ac1f3f7e 100644
--- a/sound/direct_sound_samples/cry_hariyama.aif
+++ b/sound/direct_sound_samples/cries/cry_hariyama.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_haunter.aif b/sound/direct_sound_samples/cries/cry_haunter.aif
index 60ec72171..60ec72171 100644
--- a/sound/direct_sound_samples/cry_haunter.aif
+++ b/sound/direct_sound_samples/cries/cry_haunter.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_heracross.aif b/sound/direct_sound_samples/cries/cry_heracross.aif
index a0734748f..a0734748f 100644
--- a/sound/direct_sound_samples/cry_heracross.aif
+++ b/sound/direct_sound_samples/cries/cry_heracross.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hitmonchan.aif b/sound/direct_sound_samples/cries/cry_hitmonchan.aif
index 40479452c..40479452c 100644
--- a/sound/direct_sound_samples/cry_hitmonchan.aif
+++ b/sound/direct_sound_samples/cries/cry_hitmonchan.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hitmonlee.aif b/sound/direct_sound_samples/cries/cry_hitmonlee.aif
index 3a4bcddca..3a4bcddca 100644
--- a/sound/direct_sound_samples/cry_hitmonlee.aif
+++ b/sound/direct_sound_samples/cries/cry_hitmonlee.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hitmontop.aif b/sound/direct_sound_samples/cries/cry_hitmontop.aif
index 3fbee8041..3fbee8041 100644
--- a/sound/direct_sound_samples/cry_hitmontop.aif
+++ b/sound/direct_sound_samples/cries/cry_hitmontop.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ho_oh.aif b/sound/direct_sound_samples/cries/cry_ho_oh.aif
index 52f8dd307..52f8dd307 100644
--- a/sound/direct_sound_samples/cry_ho_oh.aif
+++ b/sound/direct_sound_samples/cries/cry_ho_oh.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hoothoot.aif b/sound/direct_sound_samples/cries/cry_hoothoot.aif
index 59e685dcc..59e685dcc 100644
--- a/sound/direct_sound_samples/cry_hoothoot.aif
+++ b/sound/direct_sound_samples/cries/cry_hoothoot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hoppip.aif b/sound/direct_sound_samples/cries/cry_hoppip.aif
index ea47877d0..ea47877d0 100644
--- a/sound/direct_sound_samples/cry_hoppip.aif
+++ b/sound/direct_sound_samples/cries/cry_hoppip.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_horsea.aif b/sound/direct_sound_samples/cries/cry_horsea.aif
index e41eff4b1..e41eff4b1 100644
--- a/sound/direct_sound_samples/cry_horsea.aif
+++ b/sound/direct_sound_samples/cries/cry_horsea.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_houndoom.aif b/sound/direct_sound_samples/cries/cry_houndoom.aif
index 6fec16d39..6fec16d39 100644
--- a/sound/direct_sound_samples/cry_houndoom.aif
+++ b/sound/direct_sound_samples/cries/cry_houndoom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_houndour.aif b/sound/direct_sound_samples/cries/cry_houndour.aif
index 7431bbf29..7431bbf29 100644
--- a/sound/direct_sound_samples/cry_houndour.aif
+++ b/sound/direct_sound_samples/cries/cry_houndour.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_huntail.aif b/sound/direct_sound_samples/cries/cry_huntail.aif
index f1d3b29d9..f1d3b29d9 100644
--- a/sound/direct_sound_samples/cry_huntail.aif
+++ b/sound/direct_sound_samples/cries/cry_huntail.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_hypno.aif b/sound/direct_sound_samples/cries/cry_hypno.aif
index 32672a3c3..32672a3c3 100644
--- a/sound/direct_sound_samples/cry_hypno.aif
+++ b/sound/direct_sound_samples/cries/cry_hypno.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_igglybuff.aif b/sound/direct_sound_samples/cries/cry_igglybuff.aif
index 8de8394d5..8de8394d5 100644
--- a/sound/direct_sound_samples/cry_igglybuff.aif
+++ b/sound/direct_sound_samples/cries/cry_igglybuff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_illumise.aif b/sound/direct_sound_samples/cries/cry_illumise.aif
index 75e03efc8..75e03efc8 100644
--- a/sound/direct_sound_samples/cry_illumise.aif
+++ b/sound/direct_sound_samples/cries/cry_illumise.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ivysaur.aif b/sound/direct_sound_samples/cries/cry_ivysaur.aif
index ea474ff88..ea474ff88 100644
--- a/sound/direct_sound_samples/cry_ivysaur.aif
+++ b/sound/direct_sound_samples/cries/cry_ivysaur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jigglypuff.aif b/sound/direct_sound_samples/cries/cry_jigglypuff.aif
index 780424b4f..780424b4f 100644
--- a/sound/direct_sound_samples/cry_jigglypuff.aif
+++ b/sound/direct_sound_samples/cries/cry_jigglypuff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jirachi.aif b/sound/direct_sound_samples/cries/cry_jirachi.aif
index ea8a5c8ad..ea8a5c8ad 100644
--- a/sound/direct_sound_samples/cry_jirachi.aif
+++ b/sound/direct_sound_samples/cries/cry_jirachi.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jolteon.aif b/sound/direct_sound_samples/cries/cry_jolteon.aif
index 013369158..013369158 100644
--- a/sound/direct_sound_samples/cry_jolteon.aif
+++ b/sound/direct_sound_samples/cries/cry_jolteon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jumpluff.aif b/sound/direct_sound_samples/cries/cry_jumpluff.aif
index 13b0fd315..13b0fd315 100644
--- a/sound/direct_sound_samples/cry_jumpluff.aif
+++ b/sound/direct_sound_samples/cries/cry_jumpluff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_jynx.aif b/sound/direct_sound_samples/cries/cry_jynx.aif
index 7394a48a2..7394a48a2 100644
--- a/sound/direct_sound_samples/cry_jynx.aif
+++ b/sound/direct_sound_samples/cries/cry_jynx.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kabuto.aif b/sound/direct_sound_samples/cries/cry_kabuto.aif
index 6ae9801b5..6ae9801b5 100644
--- a/sound/direct_sound_samples/cry_kabuto.aif
+++ b/sound/direct_sound_samples/cries/cry_kabuto.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kabutops.aif b/sound/direct_sound_samples/cries/cry_kabutops.aif
index f23778e57..f23778e57 100644
--- a/sound/direct_sound_samples/cry_kabutops.aif
+++ b/sound/direct_sound_samples/cries/cry_kabutops.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kadabra.aif b/sound/direct_sound_samples/cries/cry_kadabra.aif
index bfcc18031..bfcc18031 100644
--- a/sound/direct_sound_samples/cry_kadabra.aif
+++ b/sound/direct_sound_samples/cries/cry_kadabra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kakuna.aif b/sound/direct_sound_samples/cries/cry_kakuna.aif
index 7c4e9d7a8..7c4e9d7a8 100644
--- a/sound/direct_sound_samples/cry_kakuna.aif
+++ b/sound/direct_sound_samples/cries/cry_kakuna.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kangaskhan.aif b/sound/direct_sound_samples/cries/cry_kangaskhan.aif
index 643e81eb7..643e81eb7 100644
--- a/sound/direct_sound_samples/cry_kangaskhan.aif
+++ b/sound/direct_sound_samples/cries/cry_kangaskhan.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kecleon.aif b/sound/direct_sound_samples/cries/cry_kecleon.aif
index f27ae1832..f27ae1832 100644
--- a/sound/direct_sound_samples/cry_kecleon.aif
+++ b/sound/direct_sound_samples/cries/cry_kecleon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kingdra.aif b/sound/direct_sound_samples/cries/cry_kingdra.aif
index ade230c82..ade230c82 100644
--- a/sound/direct_sound_samples/cry_kingdra.aif
+++ b/sound/direct_sound_samples/cries/cry_kingdra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kingler.aif b/sound/direct_sound_samples/cries/cry_kingler.aif
index a1d845f45..a1d845f45 100644
--- a/sound/direct_sound_samples/cry_kingler.aif
+++ b/sound/direct_sound_samples/cries/cry_kingler.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kirlia.aif b/sound/direct_sound_samples/cries/cry_kirlia.aif
index 692e03e5f..692e03e5f 100644
--- a/sound/direct_sound_samples/cry_kirlia.aif
+++ b/sound/direct_sound_samples/cries/cry_kirlia.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_koffing.aif b/sound/direct_sound_samples/cries/cry_koffing.aif
index 7ca9de088..7ca9de088 100644
--- a/sound/direct_sound_samples/cry_koffing.aif
+++ b/sound/direct_sound_samples/cries/cry_koffing.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_krabby.aif b/sound/direct_sound_samples/cries/cry_krabby.aif
index 6b7692f21..6b7692f21 100644
--- a/sound/direct_sound_samples/cry_krabby.aif
+++ b/sound/direct_sound_samples/cries/cry_krabby.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_kyogre.aif b/sound/direct_sound_samples/cries/cry_kyogre.aif
index 290948319..290948319 100644
--- a/sound/direct_sound_samples/cry_kyogre.aif
+++ b/sound/direct_sound_samples/cries/cry_kyogre.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lairon.aif b/sound/direct_sound_samples/cries/cry_lairon.aif
index b487165bf..b487165bf 100644
--- a/sound/direct_sound_samples/cry_lairon.aif
+++ b/sound/direct_sound_samples/cries/cry_lairon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lanturn.aif b/sound/direct_sound_samples/cries/cry_lanturn.aif
index dfeac1fbd..dfeac1fbd 100644
--- a/sound/direct_sound_samples/cry_lanturn.aif
+++ b/sound/direct_sound_samples/cries/cry_lanturn.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lapras.aif b/sound/direct_sound_samples/cries/cry_lapras.aif
index 61de32408..61de32408 100644
--- a/sound/direct_sound_samples/cry_lapras.aif
+++ b/sound/direct_sound_samples/cries/cry_lapras.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_larvitar.aif b/sound/direct_sound_samples/cries/cry_larvitar.aif
index 1ab0e1d5f..1ab0e1d5f 100644
--- a/sound/direct_sound_samples/cry_larvitar.aif
+++ b/sound/direct_sound_samples/cries/cry_larvitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_latias.aif b/sound/direct_sound_samples/cries/cry_latias.aif
index 46f7235f3..46f7235f3 100644
--- a/sound/direct_sound_samples/cry_latias.aif
+++ b/sound/direct_sound_samples/cries/cry_latias.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_latios.aif b/sound/direct_sound_samples/cries/cry_latios.aif
index b8ace2a30..b8ace2a30 100644
--- a/sound/direct_sound_samples/cry_latios.aif
+++ b/sound/direct_sound_samples/cries/cry_latios.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ledian.aif b/sound/direct_sound_samples/cries/cry_ledian.aif
index baefb5fa3..baefb5fa3 100644
--- a/sound/direct_sound_samples/cry_ledian.aif
+++ b/sound/direct_sound_samples/cries/cry_ledian.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ledyba.aif b/sound/direct_sound_samples/cries/cry_ledyba.aif
index 4f26859a7..4f26859a7 100644
--- a/sound/direct_sound_samples/cry_ledyba.aif
+++ b/sound/direct_sound_samples/cries/cry_ledyba.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lickitung.aif b/sound/direct_sound_samples/cries/cry_lickitung.aif
index ef889a275..ef889a275 100644
--- a/sound/direct_sound_samples/cry_lickitung.aif
+++ b/sound/direct_sound_samples/cries/cry_lickitung.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lileep.aif b/sound/direct_sound_samples/cries/cry_lileep.aif
index ed8258eb7..ed8258eb7 100644
--- a/sound/direct_sound_samples/cry_lileep.aif
+++ b/sound/direct_sound_samples/cries/cry_lileep.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_linoone.aif b/sound/direct_sound_samples/cries/cry_linoone.aif
index 4e5e7d3b5..4e5e7d3b5 100644
--- a/sound/direct_sound_samples/cry_linoone.aif
+++ b/sound/direct_sound_samples/cries/cry_linoone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lombre.aif b/sound/direct_sound_samples/cries/cry_lombre.aif
index abafe4321..abafe4321 100644
--- a/sound/direct_sound_samples/cry_lombre.aif
+++ b/sound/direct_sound_samples/cries/cry_lombre.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lotad.aif b/sound/direct_sound_samples/cries/cry_lotad.aif
index 2596f4390..2596f4390 100644
--- a/sound/direct_sound_samples/cry_lotad.aif
+++ b/sound/direct_sound_samples/cries/cry_lotad.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_loudred.aif b/sound/direct_sound_samples/cries/cry_loudred.aif
index fed7ebec8..fed7ebec8 100644
--- a/sound/direct_sound_samples/cry_loudred.aif
+++ b/sound/direct_sound_samples/cries/cry_loudred.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ludicolo.aif b/sound/direct_sound_samples/cries/cry_ludicolo.aif
index 7cf670f38..7cf670f38 100644
--- a/sound/direct_sound_samples/cry_ludicolo.aif
+++ b/sound/direct_sound_samples/cries/cry_ludicolo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lugia.aif b/sound/direct_sound_samples/cries/cry_lugia.aif
index 45890a2fc..45890a2fc 100644
--- a/sound/direct_sound_samples/cry_lugia.aif
+++ b/sound/direct_sound_samples/cries/cry_lugia.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_lunatone.aif b/sound/direct_sound_samples/cries/cry_lunatone.aif
index 42cbc5e3c..42cbc5e3c 100644
--- a/sound/direct_sound_samples/cry_lunatone.aif
+++ b/sound/direct_sound_samples/cries/cry_lunatone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_luvdisc.aif b/sound/direct_sound_samples/cries/cry_luvdisc.aif
index 3cc0cc744..3cc0cc744 100644
--- a/sound/direct_sound_samples/cry_luvdisc.aif
+++ b/sound/direct_sound_samples/cries/cry_luvdisc.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_machamp.aif b/sound/direct_sound_samples/cries/cry_machamp.aif
index ddeaf22c8..ddeaf22c8 100644
--- a/sound/direct_sound_samples/cry_machamp.aif
+++ b/sound/direct_sound_samples/cries/cry_machamp.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_machoke.aif b/sound/direct_sound_samples/cries/cry_machoke.aif
index 97065ee09..97065ee09 100644
--- a/sound/direct_sound_samples/cry_machoke.aif
+++ b/sound/direct_sound_samples/cries/cry_machoke.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_machop.aif b/sound/direct_sound_samples/cries/cry_machop.aif
index d92419e84..d92419e84 100644
--- a/sound/direct_sound_samples/cry_machop.aif
+++ b/sound/direct_sound_samples/cries/cry_machop.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magby.aif b/sound/direct_sound_samples/cries/cry_magby.aif
index 12f3dc889..12f3dc889 100644
--- a/sound/direct_sound_samples/cry_magby.aif
+++ b/sound/direct_sound_samples/cries/cry_magby.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magcargo.aif b/sound/direct_sound_samples/cries/cry_magcargo.aif
index bef0351c0..bef0351c0 100644
--- a/sound/direct_sound_samples/cry_magcargo.aif
+++ b/sound/direct_sound_samples/cries/cry_magcargo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magikarp.aif b/sound/direct_sound_samples/cries/cry_magikarp.aif
index f4f9219c5..f4f9219c5 100644
--- a/sound/direct_sound_samples/cry_magikarp.aif
+++ b/sound/direct_sound_samples/cries/cry_magikarp.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magmar.aif b/sound/direct_sound_samples/cries/cry_magmar.aif
index b79c8b9a1..b79c8b9a1 100644
--- a/sound/direct_sound_samples/cry_magmar.aif
+++ b/sound/direct_sound_samples/cries/cry_magmar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magnemite.aif b/sound/direct_sound_samples/cries/cry_magnemite.aif
index ebb9103d9..ebb9103d9 100644
--- a/sound/direct_sound_samples/cry_magnemite.aif
+++ b/sound/direct_sound_samples/cries/cry_magnemite.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_magneton.aif b/sound/direct_sound_samples/cries/cry_magneton.aif
index 53083ac62..53083ac62 100644
--- a/sound/direct_sound_samples/cry_magneton.aif
+++ b/sound/direct_sound_samples/cries/cry_magneton.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_makuhita.aif b/sound/direct_sound_samples/cries/cry_makuhita.aif
index 38d7f4b44..38d7f4b44 100644
--- a/sound/direct_sound_samples/cry_makuhita.aif
+++ b/sound/direct_sound_samples/cries/cry_makuhita.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_manectric.aif b/sound/direct_sound_samples/cries/cry_manectric.aif
index 18a8f4666..18a8f4666 100644
--- a/sound/direct_sound_samples/cry_manectric.aif
+++ b/sound/direct_sound_samples/cries/cry_manectric.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mankey.aif b/sound/direct_sound_samples/cries/cry_mankey.aif
index dda929d4c..dda929d4c 100644
--- a/sound/direct_sound_samples/cry_mankey.aif
+++ b/sound/direct_sound_samples/cries/cry_mankey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mantine.aif b/sound/direct_sound_samples/cries/cry_mantine.aif
index d1840aafa..d1840aafa 100644
--- a/sound/direct_sound_samples/cry_mantine.aif
+++ b/sound/direct_sound_samples/cries/cry_mantine.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mareep.aif b/sound/direct_sound_samples/cries/cry_mareep.aif
index 2615b9def..2615b9def 100644
--- a/sound/direct_sound_samples/cry_mareep.aif
+++ b/sound/direct_sound_samples/cries/cry_mareep.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_marill.aif b/sound/direct_sound_samples/cries/cry_marill.aif
index 48d936e7d..48d936e7d 100644
--- a/sound/direct_sound_samples/cry_marill.aif
+++ b/sound/direct_sound_samples/cries/cry_marill.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_marowak.aif b/sound/direct_sound_samples/cries/cry_marowak.aif
index 279381bb5..279381bb5 100644
--- a/sound/direct_sound_samples/cry_marowak.aif
+++ b/sound/direct_sound_samples/cries/cry_marowak.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_marshtomp.aif b/sound/direct_sound_samples/cries/cry_marshtomp.aif
index c0106ff6c..c0106ff6c 100644
--- a/sound/direct_sound_samples/cry_marshtomp.aif
+++ b/sound/direct_sound_samples/cries/cry_marshtomp.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_masquerain.aif b/sound/direct_sound_samples/cries/cry_masquerain.aif
index 107bed2f7..107bed2f7 100644
--- a/sound/direct_sound_samples/cry_masquerain.aif
+++ b/sound/direct_sound_samples/cries/cry_masquerain.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mawile.aif b/sound/direct_sound_samples/cries/cry_mawile.aif
index 81b252b57..81b252b57 100644
--- a/sound/direct_sound_samples/cry_mawile.aif
+++ b/sound/direct_sound_samples/cries/cry_mawile.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_medicham.aif b/sound/direct_sound_samples/cries/cry_medicham.aif
index dc85dd3b5..dc85dd3b5 100644
--- a/sound/direct_sound_samples/cry_medicham.aif
+++ b/sound/direct_sound_samples/cries/cry_medicham.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_meditite.aif b/sound/direct_sound_samples/cries/cry_meditite.aif
index 8ac680f79..8ac680f79 100644
--- a/sound/direct_sound_samples/cry_meditite.aif
+++ b/sound/direct_sound_samples/cries/cry_meditite.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_meganium.aif b/sound/direct_sound_samples/cries/cry_meganium.aif
index ea1e1aa51..ea1e1aa51 100644
--- a/sound/direct_sound_samples/cry_meganium.aif
+++ b/sound/direct_sound_samples/cries/cry_meganium.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_meowth.aif b/sound/direct_sound_samples/cries/cry_meowth.aif
index aaf3825d5..aaf3825d5 100644
--- a/sound/direct_sound_samples/cry_meowth.aif
+++ b/sound/direct_sound_samples/cries/cry_meowth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_metagross.aif b/sound/direct_sound_samples/cries/cry_metagross.aif
index b96e6647c..b96e6647c 100644
--- a/sound/direct_sound_samples/cry_metagross.aif
+++ b/sound/direct_sound_samples/cries/cry_metagross.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_metang.aif b/sound/direct_sound_samples/cries/cry_metang.aif
index da544ce4d..da544ce4d 100644
--- a/sound/direct_sound_samples/cry_metang.aif
+++ b/sound/direct_sound_samples/cries/cry_metang.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_metapod.aif b/sound/direct_sound_samples/cries/cry_metapod.aif
index ddba3ed44..ddba3ed44 100644
--- a/sound/direct_sound_samples/cry_metapod.aif
+++ b/sound/direct_sound_samples/cries/cry_metapod.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mew.aif b/sound/direct_sound_samples/cries/cry_mew.aif
index 2651b96ca..2651b96ca 100644
--- a/sound/direct_sound_samples/cry_mew.aif
+++ b/sound/direct_sound_samples/cries/cry_mew.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mewtwo.aif b/sound/direct_sound_samples/cries/cry_mewtwo.aif
index 8e1e6c7f1..8e1e6c7f1 100644
--- a/sound/direct_sound_samples/cry_mewtwo.aif
+++ b/sound/direct_sound_samples/cries/cry_mewtwo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mightyena.aif b/sound/direct_sound_samples/cries/cry_mightyena.aif
index 53a645edc..53a645edc 100644
--- a/sound/direct_sound_samples/cry_mightyena.aif
+++ b/sound/direct_sound_samples/cries/cry_mightyena.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_milotic.aif b/sound/direct_sound_samples/cries/cry_milotic.aif
index 93a14161b..93a14161b 100644
--- a/sound/direct_sound_samples/cry_milotic.aif
+++ b/sound/direct_sound_samples/cries/cry_milotic.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_miltank.aif b/sound/direct_sound_samples/cries/cry_miltank.aif
index ad8a41a45..ad8a41a45 100644
--- a/sound/direct_sound_samples/cry_miltank.aif
+++ b/sound/direct_sound_samples/cries/cry_miltank.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_minun.aif b/sound/direct_sound_samples/cries/cry_minun.aif
index a55aa5631..a55aa5631 100644
--- a/sound/direct_sound_samples/cry_minun.aif
+++ b/sound/direct_sound_samples/cries/cry_minun.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_misdreavus.aif b/sound/direct_sound_samples/cries/cry_misdreavus.aif
index 39a09f4d0..39a09f4d0 100644
--- a/sound/direct_sound_samples/cry_misdreavus.aif
+++ b/sound/direct_sound_samples/cries/cry_misdreavus.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_moltres.aif b/sound/direct_sound_samples/cries/cry_moltres.aif
index 2e038a3d7..2e038a3d7 100644
--- a/sound/direct_sound_samples/cry_moltres.aif
+++ b/sound/direct_sound_samples/cries/cry_moltres.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mr_mime.aif b/sound/direct_sound_samples/cries/cry_mr_mime.aif
index ff870dbc4..ff870dbc4 100644
--- a/sound/direct_sound_samples/cry_mr_mime.aif
+++ b/sound/direct_sound_samples/cries/cry_mr_mime.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_mudkip.aif b/sound/direct_sound_samples/cries/cry_mudkip.aif
index e8fa5c212..e8fa5c212 100644
--- a/sound/direct_sound_samples/cry_mudkip.aif
+++ b/sound/direct_sound_samples/cries/cry_mudkip.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_muk.aif b/sound/direct_sound_samples/cries/cry_muk.aif
index f61ff4075..f61ff4075 100644
--- a/sound/direct_sound_samples/cry_muk.aif
+++ b/sound/direct_sound_samples/cries/cry_muk.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_murkrow.aif b/sound/direct_sound_samples/cries/cry_murkrow.aif
index 4beddff1e..4beddff1e 100644
--- a/sound/direct_sound_samples/cry_murkrow.aif
+++ b/sound/direct_sound_samples/cries/cry_murkrow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_natu.aif b/sound/direct_sound_samples/cries/cry_natu.aif
index e6e38d5cc..e6e38d5cc 100644
--- a/sound/direct_sound_samples/cry_natu.aif
+++ b/sound/direct_sound_samples/cries/cry_natu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoking.aif b/sound/direct_sound_samples/cries/cry_nidoking.aif
index a0c86f9ab..a0c86f9ab 100644
--- a/sound/direct_sound_samples/cry_nidoking.aif
+++ b/sound/direct_sound_samples/cries/cry_nidoking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoqueen.aif b/sound/direct_sound_samples/cries/cry_nidoqueen.aif
index 6c8f5254b..6c8f5254b 100644
--- a/sound/direct_sound_samples/cry_nidoqueen.aif
+++ b/sound/direct_sound_samples/cries/cry_nidoqueen.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoran_f.aif b/sound/direct_sound_samples/cries/cry_nidoran_f.aif
index b7c8a5317..b7c8a5317 100644
--- a/sound/direct_sound_samples/cry_nidoran_f.aif
+++ b/sound/direct_sound_samples/cries/cry_nidoran_f.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidoran_m.aif b/sound/direct_sound_samples/cries/cry_nidoran_m.aif
index 08fc81c8b..08fc81c8b 100644
--- a/sound/direct_sound_samples/cry_nidoran_m.aif
+++ b/sound/direct_sound_samples/cries/cry_nidoran_m.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidorina.aif b/sound/direct_sound_samples/cries/cry_nidorina.aif
index 91e293a50..91e293a50 100644
--- a/sound/direct_sound_samples/cry_nidorina.aif
+++ b/sound/direct_sound_samples/cries/cry_nidorina.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nidorino.aif b/sound/direct_sound_samples/cries/cry_nidorino.aif
index 959351363..959351363 100644
--- a/sound/direct_sound_samples/cry_nidorino.aif
+++ b/sound/direct_sound_samples/cries/cry_nidorino.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nincada.aif b/sound/direct_sound_samples/cries/cry_nincada.aif
index 5f96bda50..5f96bda50 100644
--- a/sound/direct_sound_samples/cry_nincada.aif
+++ b/sound/direct_sound_samples/cries/cry_nincada.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ninetales.aif b/sound/direct_sound_samples/cries/cry_ninetales.aif
index 70c8cf528..70c8cf528 100644
--- a/sound/direct_sound_samples/cry_ninetales.aif
+++ b/sound/direct_sound_samples/cries/cry_ninetales.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ninjask.aif b/sound/direct_sound_samples/cries/cry_ninjask.aif
index a6f07e8d3..a6f07e8d3 100644
--- a/sound/direct_sound_samples/cry_ninjask.aif
+++ b/sound/direct_sound_samples/cries/cry_ninjask.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_noctowl.aif b/sound/direct_sound_samples/cries/cry_noctowl.aif
index fe2e63d45..fe2e63d45 100644
--- a/sound/direct_sound_samples/cry_noctowl.aif
+++ b/sound/direct_sound_samples/cries/cry_noctowl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_none.aif b/sound/direct_sound_samples/cries/cry_none.aif
index 44bb79c3c..44bb79c3c 100644
--- a/sound/direct_sound_samples/cry_none.aif
+++ b/sound/direct_sound_samples/cries/cry_none.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nosepass.aif b/sound/direct_sound_samples/cries/cry_nosepass.aif
index be65ba082..be65ba082 100644
--- a/sound/direct_sound_samples/cry_nosepass.aif
+++ b/sound/direct_sound_samples/cries/cry_nosepass.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_numel.aif b/sound/direct_sound_samples/cries/cry_numel.aif
index 55cce5f2c..55cce5f2c 100644
--- a/sound/direct_sound_samples/cry_numel.aif
+++ b/sound/direct_sound_samples/cries/cry_numel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_nuzleaf.aif b/sound/direct_sound_samples/cries/cry_nuzleaf.aif
index d668f3fd3..d668f3fd3 100644
--- a/sound/direct_sound_samples/cry_nuzleaf.aif
+++ b/sound/direct_sound_samples/cries/cry_nuzleaf.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_octillery.aif b/sound/direct_sound_samples/cries/cry_octillery.aif
index 75ee28ceb..75ee28ceb 100644
--- a/sound/direct_sound_samples/cry_octillery.aif
+++ b/sound/direct_sound_samples/cries/cry_octillery.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_oddish.aif b/sound/direct_sound_samples/cries/cry_oddish.aif
index 6909a8dad..6909a8dad 100644
--- a/sound/direct_sound_samples/cry_oddish.aif
+++ b/sound/direct_sound_samples/cries/cry_oddish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_omanyte.aif b/sound/direct_sound_samples/cries/cry_omanyte.aif
index 15ec2d1ef..15ec2d1ef 100644
--- a/sound/direct_sound_samples/cry_omanyte.aif
+++ b/sound/direct_sound_samples/cries/cry_omanyte.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_omastar.aif b/sound/direct_sound_samples/cries/cry_omastar.aif
index e67d5d7fc..e67d5d7fc 100644
--- a/sound/direct_sound_samples/cry_omastar.aif
+++ b/sound/direct_sound_samples/cries/cry_omastar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_onix.aif b/sound/direct_sound_samples/cries/cry_onix.aif
index aa8a16505..aa8a16505 100644
--- a/sound/direct_sound_samples/cry_onix.aif
+++ b/sound/direct_sound_samples/cries/cry_onix.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_paras.aif b/sound/direct_sound_samples/cries/cry_paras.aif
index f9d69c21c..f9d69c21c 100644
--- a/sound/direct_sound_samples/cry_paras.aif
+++ b/sound/direct_sound_samples/cries/cry_paras.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_parasect.aif b/sound/direct_sound_samples/cries/cry_parasect.aif
index d6d9433e9..d6d9433e9 100644
--- a/sound/direct_sound_samples/cry_parasect.aif
+++ b/sound/direct_sound_samples/cries/cry_parasect.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pelipper.aif b/sound/direct_sound_samples/cries/cry_pelipper.aif
index 26718f848..26718f848 100644
--- a/sound/direct_sound_samples/cry_pelipper.aif
+++ b/sound/direct_sound_samples/cries/cry_pelipper.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_persian.aif b/sound/direct_sound_samples/cries/cry_persian.aif
index 40b3a2c56..40b3a2c56 100644
--- a/sound/direct_sound_samples/cry_persian.aif
+++ b/sound/direct_sound_samples/cries/cry_persian.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_phanpy.aif b/sound/direct_sound_samples/cries/cry_phanpy.aif
index 2fcab3c82..2fcab3c82 100644
--- a/sound/direct_sound_samples/cry_phanpy.aif
+++ b/sound/direct_sound_samples/cries/cry_phanpy.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pichu.aif b/sound/direct_sound_samples/cries/cry_pichu.aif
index de47bbab8..de47bbab8 100644
--- a/sound/direct_sound_samples/cry_pichu.aif
+++ b/sound/direct_sound_samples/cries/cry_pichu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pidgeot.aif b/sound/direct_sound_samples/cries/cry_pidgeot.aif
index af400cdc6..af400cdc6 100644
--- a/sound/direct_sound_samples/cry_pidgeot.aif
+++ b/sound/direct_sound_samples/cries/cry_pidgeot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pidgeotto.aif b/sound/direct_sound_samples/cries/cry_pidgeotto.aif
index 7c71c8f3e..7c71c8f3e 100644
--- a/sound/direct_sound_samples/cry_pidgeotto.aif
+++ b/sound/direct_sound_samples/cries/cry_pidgeotto.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pidgey.aif b/sound/direct_sound_samples/cries/cry_pidgey.aif
index b9c3a5d2a..b9c3a5d2a 100644
--- a/sound/direct_sound_samples/cry_pidgey.aif
+++ b/sound/direct_sound_samples/cries/cry_pidgey.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pikachu.aif b/sound/direct_sound_samples/cries/cry_pikachu.aif
index 690bf5e1d..690bf5e1d 100644
--- a/sound/direct_sound_samples/cry_pikachu.aif
+++ b/sound/direct_sound_samples/cries/cry_pikachu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_piloswine.aif b/sound/direct_sound_samples/cries/cry_piloswine.aif
index b1f34d3b5..b1f34d3b5 100644
--- a/sound/direct_sound_samples/cry_piloswine.aif
+++ b/sound/direct_sound_samples/cries/cry_piloswine.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pineco.aif b/sound/direct_sound_samples/cries/cry_pineco.aif
index 80292bda0..80292bda0 100644
--- a/sound/direct_sound_samples/cry_pineco.aif
+++ b/sound/direct_sound_samples/cries/cry_pineco.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pinsir.aif b/sound/direct_sound_samples/cries/cry_pinsir.aif
index cf27a11de..cf27a11de 100644
--- a/sound/direct_sound_samples/cry_pinsir.aif
+++ b/sound/direct_sound_samples/cries/cry_pinsir.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_plusle.aif b/sound/direct_sound_samples/cries/cry_plusle.aif
index d68984263..d68984263 100644
--- a/sound/direct_sound_samples/cry_plusle.aif
+++ b/sound/direct_sound_samples/cries/cry_plusle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_politoed.aif b/sound/direct_sound_samples/cries/cry_politoed.aif
index 38b1883b4..38b1883b4 100644
--- a/sound/direct_sound_samples/cry_politoed.aif
+++ b/sound/direct_sound_samples/cries/cry_politoed.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poliwag.aif b/sound/direct_sound_samples/cries/cry_poliwag.aif
index 8467f0540..8467f0540 100644
--- a/sound/direct_sound_samples/cry_poliwag.aif
+++ b/sound/direct_sound_samples/cries/cry_poliwag.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poliwhirl.aif b/sound/direct_sound_samples/cries/cry_poliwhirl.aif
index f0851c693..f0851c693 100644
--- a/sound/direct_sound_samples/cry_poliwhirl.aif
+++ b/sound/direct_sound_samples/cries/cry_poliwhirl.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poliwrath.aif b/sound/direct_sound_samples/cries/cry_poliwrath.aif
index 8d19f1d86..8d19f1d86 100644
--- a/sound/direct_sound_samples/cry_poliwrath.aif
+++ b/sound/direct_sound_samples/cries/cry_poliwrath.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ponyta.aif b/sound/direct_sound_samples/cries/cry_ponyta.aif
index 46feb123d..46feb123d 100644
--- a/sound/direct_sound_samples/cry_ponyta.aif
+++ b/sound/direct_sound_samples/cries/cry_ponyta.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_poochyena.aif b/sound/direct_sound_samples/cries/cry_poochyena.aif
index 3b464ce13..3b464ce13 100644
--- a/sound/direct_sound_samples/cry_poochyena.aif
+++ b/sound/direct_sound_samples/cries/cry_poochyena.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_porygon.aif b/sound/direct_sound_samples/cries/cry_porygon.aif
index ced70b379..ced70b379 100644
--- a/sound/direct_sound_samples/cry_porygon.aif
+++ b/sound/direct_sound_samples/cries/cry_porygon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_porygon2.aif b/sound/direct_sound_samples/cries/cry_porygon2.aif
index c08a3caaf..c08a3caaf 100644
--- a/sound/direct_sound_samples/cry_porygon2.aif
+++ b/sound/direct_sound_samples/cries/cry_porygon2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_primeape.aif b/sound/direct_sound_samples/cries/cry_primeape.aif
index a868b3120..a868b3120 100644
--- a/sound/direct_sound_samples/cry_primeape.aif
+++ b/sound/direct_sound_samples/cries/cry_primeape.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_psyduck.aif b/sound/direct_sound_samples/cries/cry_psyduck.aif
index d2d0612f2..d2d0612f2 100644
--- a/sound/direct_sound_samples/cry_psyduck.aif
+++ b/sound/direct_sound_samples/cries/cry_psyduck.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_pupitar.aif b/sound/direct_sound_samples/cries/cry_pupitar.aif
index 7386636ce..7386636ce 100644
--- a/sound/direct_sound_samples/cry_pupitar.aif
+++ b/sound/direct_sound_samples/cries/cry_pupitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_quagsire.aif b/sound/direct_sound_samples/cries/cry_quagsire.aif
index 1953d0e42..1953d0e42 100644
--- a/sound/direct_sound_samples/cry_quagsire.aif
+++ b/sound/direct_sound_samples/cries/cry_quagsire.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_quilava.aif b/sound/direct_sound_samples/cries/cry_quilava.aif
index efe873229..efe873229 100644
--- a/sound/direct_sound_samples/cry_quilava.aif
+++ b/sound/direct_sound_samples/cries/cry_quilava.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_qwilfish.aif b/sound/direct_sound_samples/cries/cry_qwilfish.aif
index 268c5c89d..268c5c89d 100644
--- a/sound/direct_sound_samples/cry_qwilfish.aif
+++ b/sound/direct_sound_samples/cries/cry_qwilfish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_raichu.aif b/sound/direct_sound_samples/cries/cry_raichu.aif
index e59ffbad4..e59ffbad4 100644
--- a/sound/direct_sound_samples/cry_raichu.aif
+++ b/sound/direct_sound_samples/cries/cry_raichu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_raikou.aif b/sound/direct_sound_samples/cries/cry_raikou.aif
index a57a2365c..a57a2365c 100644
--- a/sound/direct_sound_samples/cry_raikou.aif
+++ b/sound/direct_sound_samples/cries/cry_raikou.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ralts.aif b/sound/direct_sound_samples/cries/cry_ralts.aif
index 0baef5760..0baef5760 100644
--- a/sound/direct_sound_samples/cry_ralts.aif
+++ b/sound/direct_sound_samples/cries/cry_ralts.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rapidash.aif b/sound/direct_sound_samples/cries/cry_rapidash.aif
index 920f510e4..920f510e4 100644
--- a/sound/direct_sound_samples/cry_rapidash.aif
+++ b/sound/direct_sound_samples/cries/cry_rapidash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_raticate.aif b/sound/direct_sound_samples/cries/cry_raticate.aif
index 01601cab5..01601cab5 100644
--- a/sound/direct_sound_samples/cry_raticate.aif
+++ b/sound/direct_sound_samples/cries/cry_raticate.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rattata.aif b/sound/direct_sound_samples/cries/cry_rattata.aif
index cb0e1f422..cb0e1f422 100644
--- a/sound/direct_sound_samples/cry_rattata.aif
+++ b/sound/direct_sound_samples/cries/cry_rattata.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rayquaza.aif b/sound/direct_sound_samples/cries/cry_rayquaza.aif
index 6115e11d8..6115e11d8 100644
--- a/sound/direct_sound_samples/cry_rayquaza.aif
+++ b/sound/direct_sound_samples/cries/cry_rayquaza.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_regice.aif b/sound/direct_sound_samples/cries/cry_regice.aif
index 6fa23dd73..6fa23dd73 100644
--- a/sound/direct_sound_samples/cry_regice.aif
+++ b/sound/direct_sound_samples/cries/cry_regice.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_regirock.aif b/sound/direct_sound_samples/cries/cry_regirock.aif
index ab2a47eb8..ab2a47eb8 100644
--- a/sound/direct_sound_samples/cry_regirock.aif
+++ b/sound/direct_sound_samples/cries/cry_regirock.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_registeel.aif b/sound/direct_sound_samples/cries/cry_registeel.aif
index f5374e5f0..f5374e5f0 100644
--- a/sound/direct_sound_samples/cry_registeel.aif
+++ b/sound/direct_sound_samples/cries/cry_registeel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_relicanth.aif b/sound/direct_sound_samples/cries/cry_relicanth.aif
index 60af9cf4e..60af9cf4e 100644
--- a/sound/direct_sound_samples/cry_relicanth.aif
+++ b/sound/direct_sound_samples/cries/cry_relicanth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_remoraid.aif b/sound/direct_sound_samples/cries/cry_remoraid.aif
index 16d3f1d65..16d3f1d65 100644
--- a/sound/direct_sound_samples/cry_remoraid.aif
+++ b/sound/direct_sound_samples/cries/cry_remoraid.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rhydon.aif b/sound/direct_sound_samples/cries/cry_rhydon.aif
index cfa709ee9..cfa709ee9 100644
--- a/sound/direct_sound_samples/cry_rhydon.aif
+++ b/sound/direct_sound_samples/cries/cry_rhydon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_rhyhorn.aif b/sound/direct_sound_samples/cries/cry_rhyhorn.aif
index 47f344ba2..47f344ba2 100644
--- a/sound/direct_sound_samples/cry_rhyhorn.aif
+++ b/sound/direct_sound_samples/cries/cry_rhyhorn.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_roselia.aif b/sound/direct_sound_samples/cries/cry_roselia.aif
index 50b60b77b..50b60b77b 100644
--- a/sound/direct_sound_samples/cry_roselia.aif
+++ b/sound/direct_sound_samples/cries/cry_roselia.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sableye.aif b/sound/direct_sound_samples/cries/cry_sableye.aif
index 1b3a9be30..1b3a9be30 100644
--- a/sound/direct_sound_samples/cry_sableye.aif
+++ b/sound/direct_sound_samples/cries/cry_sableye.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_salamence.aif b/sound/direct_sound_samples/cries/cry_salamence.aif
index d2957809c..d2957809c 100644
--- a/sound/direct_sound_samples/cry_salamence.aif
+++ b/sound/direct_sound_samples/cries/cry_salamence.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sandshrew.aif b/sound/direct_sound_samples/cries/cry_sandshrew.aif
index 6879be11d..6879be11d 100644
--- a/sound/direct_sound_samples/cry_sandshrew.aif
+++ b/sound/direct_sound_samples/cries/cry_sandshrew.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sandslash.aif b/sound/direct_sound_samples/cries/cry_sandslash.aif
index ee4a458ed..ee4a458ed 100644
--- a/sound/direct_sound_samples/cry_sandslash.aif
+++ b/sound/direct_sound_samples/cries/cry_sandslash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sceptile.aif b/sound/direct_sound_samples/cries/cry_sceptile.aif
index 7252cb85f..7252cb85f 100644
--- a/sound/direct_sound_samples/cry_sceptile.aif
+++ b/sound/direct_sound_samples/cries/cry_sceptile.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_scizor.aif b/sound/direct_sound_samples/cries/cry_scizor.aif
index f1f7832ce..f1f7832ce 100644
--- a/sound/direct_sound_samples/cry_scizor.aif
+++ b/sound/direct_sound_samples/cries/cry_scizor.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_scyther.aif b/sound/direct_sound_samples/cries/cry_scyther.aif
index 2b8cbc104..2b8cbc104 100644
--- a/sound/direct_sound_samples/cry_scyther.aif
+++ b/sound/direct_sound_samples/cries/cry_scyther.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seadra.aif b/sound/direct_sound_samples/cries/cry_seadra.aif
index 2f60cce4a..2f60cce4a 100644
--- a/sound/direct_sound_samples/cry_seadra.aif
+++ b/sound/direct_sound_samples/cries/cry_seadra.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seaking.aif b/sound/direct_sound_samples/cries/cry_seaking.aif
index e4fc7e70d..e4fc7e70d 100644
--- a/sound/direct_sound_samples/cry_seaking.aif
+++ b/sound/direct_sound_samples/cries/cry_seaking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sealeo.aif b/sound/direct_sound_samples/cries/cry_sealeo.aif
index d9ea50026..d9ea50026 100644
--- a/sound/direct_sound_samples/cry_sealeo.aif
+++ b/sound/direct_sound_samples/cries/cry_sealeo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seedot.aif b/sound/direct_sound_samples/cries/cry_seedot.aif
index c37b769f8..c37b769f8 100644
--- a/sound/direct_sound_samples/cry_seedot.aif
+++ b/sound/direct_sound_samples/cries/cry_seedot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seel.aif b/sound/direct_sound_samples/cries/cry_seel.aif
index 84c4a0a94..84c4a0a94 100644
--- a/sound/direct_sound_samples/cry_seel.aif
+++ b/sound/direct_sound_samples/cries/cry_seel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sentret.aif b/sound/direct_sound_samples/cries/cry_sentret.aif
index 4aed7cd70..4aed7cd70 100644
--- a/sound/direct_sound_samples/cry_sentret.aif
+++ b/sound/direct_sound_samples/cries/cry_sentret.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_seviper.aif b/sound/direct_sound_samples/cries/cry_seviper.aif
index 6a15dd6e2..6a15dd6e2 100644
--- a/sound/direct_sound_samples/cry_seviper.aif
+++ b/sound/direct_sound_samples/cries/cry_seviper.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sharpedo.aif b/sound/direct_sound_samples/cries/cry_sharpedo.aif
index 1b02b56ce..1b02b56ce 100644
--- a/sound/direct_sound_samples/cry_sharpedo.aif
+++ b/sound/direct_sound_samples/cries/cry_sharpedo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shedinja.aif b/sound/direct_sound_samples/cries/cry_shedinja.aif
index 6d1d565f3..6d1d565f3 100644
--- a/sound/direct_sound_samples/cry_shedinja.aif
+++ b/sound/direct_sound_samples/cries/cry_shedinja.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shelgon.aif b/sound/direct_sound_samples/cries/cry_shelgon.aif
index 24f234ffe..24f234ffe 100644
--- a/sound/direct_sound_samples/cry_shelgon.aif
+++ b/sound/direct_sound_samples/cries/cry_shelgon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shellder.aif b/sound/direct_sound_samples/cries/cry_shellder.aif
index b2ea85228..b2ea85228 100644
--- a/sound/direct_sound_samples/cry_shellder.aif
+++ b/sound/direct_sound_samples/cries/cry_shellder.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shiftry.aif b/sound/direct_sound_samples/cries/cry_shiftry.aif
index c91ece114..c91ece114 100644
--- a/sound/direct_sound_samples/cry_shiftry.aif
+++ b/sound/direct_sound_samples/cries/cry_shiftry.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shroomish.aif b/sound/direct_sound_samples/cries/cry_shroomish.aif
index 9e944ca20..9e944ca20 100644
--- a/sound/direct_sound_samples/cry_shroomish.aif
+++ b/sound/direct_sound_samples/cries/cry_shroomish.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shuckle.aif b/sound/direct_sound_samples/cries/cry_shuckle.aif
index d835d2de6..d835d2de6 100644
--- a/sound/direct_sound_samples/cry_shuckle.aif
+++ b/sound/direct_sound_samples/cries/cry_shuckle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_shuppet.aif b/sound/direct_sound_samples/cries/cry_shuppet.aif
index 1cd9a2f14..1cd9a2f14 100644
--- a/sound/direct_sound_samples/cry_shuppet.aif
+++ b/sound/direct_sound_samples/cries/cry_shuppet.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_silcoon.aif b/sound/direct_sound_samples/cries/cry_silcoon.aif
index ff48950ad..ff48950ad 100644
--- a/sound/direct_sound_samples/cry_silcoon.aif
+++ b/sound/direct_sound_samples/cries/cry_silcoon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_skarmory.aif b/sound/direct_sound_samples/cries/cry_skarmory.aif
index 88d3985a3..88d3985a3 100644
--- a/sound/direct_sound_samples/cry_skarmory.aif
+++ b/sound/direct_sound_samples/cries/cry_skarmory.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_skiploom.aif b/sound/direct_sound_samples/cries/cry_skiploom.aif
index 201744d12..201744d12 100644
--- a/sound/direct_sound_samples/cry_skiploom.aif
+++ b/sound/direct_sound_samples/cries/cry_skiploom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_skitty.aif b/sound/direct_sound_samples/cries/cry_skitty.aif
index 7dc4578f4..7dc4578f4 100644
--- a/sound/direct_sound_samples/cry_skitty.aif
+++ b/sound/direct_sound_samples/cries/cry_skitty.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slaking.aif b/sound/direct_sound_samples/cries/cry_slaking.aif
index b6a4160f3..b6a4160f3 100644
--- a/sound/direct_sound_samples/cry_slaking.aif
+++ b/sound/direct_sound_samples/cries/cry_slaking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slakoth.aif b/sound/direct_sound_samples/cries/cry_slakoth.aif
index 0e4bbc3c3..0e4bbc3c3 100644
--- a/sound/direct_sound_samples/cry_slakoth.aif
+++ b/sound/direct_sound_samples/cries/cry_slakoth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slowbro.aif b/sound/direct_sound_samples/cries/cry_slowbro.aif
index f74b753d2..f74b753d2 100644
--- a/sound/direct_sound_samples/cry_slowbro.aif
+++ b/sound/direct_sound_samples/cries/cry_slowbro.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slowking.aif b/sound/direct_sound_samples/cries/cry_slowking.aif
index 245a42023..245a42023 100644
--- a/sound/direct_sound_samples/cry_slowking.aif
+++ b/sound/direct_sound_samples/cries/cry_slowking.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slowpoke.aif b/sound/direct_sound_samples/cries/cry_slowpoke.aif
index 82b05a9a7..82b05a9a7 100644
--- a/sound/direct_sound_samples/cry_slowpoke.aif
+++ b/sound/direct_sound_samples/cries/cry_slowpoke.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_slugma.aif b/sound/direct_sound_samples/cries/cry_slugma.aif
index fed42817c..fed42817c 100644
--- a/sound/direct_sound_samples/cry_slugma.aif
+++ b/sound/direct_sound_samples/cries/cry_slugma.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_smeargle.aif b/sound/direct_sound_samples/cries/cry_smeargle.aif
index 00dbedead..00dbedead 100644
--- a/sound/direct_sound_samples/cry_smeargle.aif
+++ b/sound/direct_sound_samples/cries/cry_smeargle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_smoochum.aif b/sound/direct_sound_samples/cries/cry_smoochum.aif
index 4005b4ad4..4005b4ad4 100644
--- a/sound/direct_sound_samples/cry_smoochum.aif
+++ b/sound/direct_sound_samples/cries/cry_smoochum.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sneasel.aif b/sound/direct_sound_samples/cries/cry_sneasel.aif
index 54242a23f..54242a23f 100644
--- a/sound/direct_sound_samples/cry_sneasel.aif
+++ b/sound/direct_sound_samples/cries/cry_sneasel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_snorlax.aif b/sound/direct_sound_samples/cries/cry_snorlax.aif
index f95128e3a..f95128e3a 100644
--- a/sound/direct_sound_samples/cry_snorlax.aif
+++ b/sound/direct_sound_samples/cries/cry_snorlax.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_snorunt.aif b/sound/direct_sound_samples/cries/cry_snorunt.aif
index 53b05b229..53b05b229 100644
--- a/sound/direct_sound_samples/cry_snorunt.aif
+++ b/sound/direct_sound_samples/cries/cry_snorunt.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_snubbull.aif b/sound/direct_sound_samples/cries/cry_snubbull.aif
index bbba023fd..bbba023fd 100644
--- a/sound/direct_sound_samples/cry_snubbull.aif
+++ b/sound/direct_sound_samples/cries/cry_snubbull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_solrock.aif b/sound/direct_sound_samples/cries/cry_solrock.aif
index 64c71f289..64c71f289 100644
--- a/sound/direct_sound_samples/cry_solrock.aif
+++ b/sound/direct_sound_samples/cries/cry_solrock.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spearow.aif b/sound/direct_sound_samples/cries/cry_spearow.aif
index 7ce86ae29..7ce86ae29 100644
--- a/sound/direct_sound_samples/cry_spearow.aif
+++ b/sound/direct_sound_samples/cries/cry_spearow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spheal.aif b/sound/direct_sound_samples/cries/cry_spheal.aif
index fb6470210..fb6470210 100644
--- a/sound/direct_sound_samples/cry_spheal.aif
+++ b/sound/direct_sound_samples/cries/cry_spheal.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spinarak.aif b/sound/direct_sound_samples/cries/cry_spinarak.aif
index 3c4c1eff1..3c4c1eff1 100644
--- a/sound/direct_sound_samples/cry_spinarak.aif
+++ b/sound/direct_sound_samples/cries/cry_spinarak.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spinda.aif b/sound/direct_sound_samples/cries/cry_spinda.aif
index 0217573c7..0217573c7 100644
--- a/sound/direct_sound_samples/cry_spinda.aif
+++ b/sound/direct_sound_samples/cries/cry_spinda.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_spoink.aif b/sound/direct_sound_samples/cries/cry_spoink.aif
index 6cc9bf546..6cc9bf546 100644
--- a/sound/direct_sound_samples/cry_spoink.aif
+++ b/sound/direct_sound_samples/cries/cry_spoink.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_squirtle.aif b/sound/direct_sound_samples/cries/cry_squirtle.aif
index 43a98a53d..43a98a53d 100644
--- a/sound/direct_sound_samples/cry_squirtle.aif
+++ b/sound/direct_sound_samples/cries/cry_squirtle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_stantler.aif b/sound/direct_sound_samples/cries/cry_stantler.aif
index 36ba54658..36ba54658 100644
--- a/sound/direct_sound_samples/cry_stantler.aif
+++ b/sound/direct_sound_samples/cries/cry_stantler.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_starmie.aif b/sound/direct_sound_samples/cries/cry_starmie.aif
index 7452a78f9..7452a78f9 100644
--- a/sound/direct_sound_samples/cry_starmie.aif
+++ b/sound/direct_sound_samples/cries/cry_starmie.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_staryu.aif b/sound/direct_sound_samples/cries/cry_staryu.aif
index 6ab5584bf..6ab5584bf 100644
--- a/sound/direct_sound_samples/cry_staryu.aif
+++ b/sound/direct_sound_samples/cries/cry_staryu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_steelix.aif b/sound/direct_sound_samples/cries/cry_steelix.aif
index aa05e2d4c..aa05e2d4c 100644
--- a/sound/direct_sound_samples/cry_steelix.aif
+++ b/sound/direct_sound_samples/cries/cry_steelix.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sudowoodo.aif b/sound/direct_sound_samples/cries/cry_sudowoodo.aif
index 1af7e18eb..1af7e18eb 100644
--- a/sound/direct_sound_samples/cry_sudowoodo.aif
+++ b/sound/direct_sound_samples/cries/cry_sudowoodo.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_suicune.aif b/sound/direct_sound_samples/cries/cry_suicune.aif
index 697732d68..697732d68 100644
--- a/sound/direct_sound_samples/cry_suicune.aif
+++ b/sound/direct_sound_samples/cries/cry_suicune.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sunflora.aif b/sound/direct_sound_samples/cries/cry_sunflora.aif
index 126931adc..126931adc 100644
--- a/sound/direct_sound_samples/cry_sunflora.aif
+++ b/sound/direct_sound_samples/cries/cry_sunflora.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_sunkern.aif b/sound/direct_sound_samples/cries/cry_sunkern.aif
index bede3bf95..bede3bf95 100644
--- a/sound/direct_sound_samples/cry_sunkern.aif
+++ b/sound/direct_sound_samples/cries/cry_sunkern.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_surskit.aif b/sound/direct_sound_samples/cries/cry_surskit.aif
index 438b5b67a..438b5b67a 100644
--- a/sound/direct_sound_samples/cry_surskit.aif
+++ b/sound/direct_sound_samples/cries/cry_surskit.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swablu.aif b/sound/direct_sound_samples/cries/cry_swablu.aif
index 066095f55..066095f55 100644
--- a/sound/direct_sound_samples/cry_swablu.aif
+++ b/sound/direct_sound_samples/cries/cry_swablu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swalot.aif b/sound/direct_sound_samples/cries/cry_swalot.aif
index 518a9bf5a..518a9bf5a 100644
--- a/sound/direct_sound_samples/cry_swalot.aif
+++ b/sound/direct_sound_samples/cries/cry_swalot.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swampert.aif b/sound/direct_sound_samples/cries/cry_swampert.aif
index 56bd26405..56bd26405 100644
--- a/sound/direct_sound_samples/cry_swampert.aif
+++ b/sound/direct_sound_samples/cries/cry_swampert.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swellow.aif b/sound/direct_sound_samples/cries/cry_swellow.aif
index 2b94eb432..2b94eb432 100644
--- a/sound/direct_sound_samples/cry_swellow.aif
+++ b/sound/direct_sound_samples/cries/cry_swellow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_swinub.aif b/sound/direct_sound_samples/cries/cry_swinub.aif
index dc68d62d8..dc68d62d8 100644
--- a/sound/direct_sound_samples/cry_swinub.aif
+++ b/sound/direct_sound_samples/cries/cry_swinub.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_taillow.aif b/sound/direct_sound_samples/cries/cry_taillow.aif
index 8322a3224..8322a3224 100644
--- a/sound/direct_sound_samples/cry_taillow.aif
+++ b/sound/direct_sound_samples/cries/cry_taillow.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tangela.aif b/sound/direct_sound_samples/cries/cry_tangela.aif
index c900b426d..c900b426d 100644
--- a/sound/direct_sound_samples/cry_tangela.aif
+++ b/sound/direct_sound_samples/cries/cry_tangela.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tauros.aif b/sound/direct_sound_samples/cries/cry_tauros.aif
index 84fa9b317..84fa9b317 100644
--- a/sound/direct_sound_samples/cry_tauros.aif
+++ b/sound/direct_sound_samples/cries/cry_tauros.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_teddiursa.aif b/sound/direct_sound_samples/cries/cry_teddiursa.aif
index ba5cb5bc3..ba5cb5bc3 100644
--- a/sound/direct_sound_samples/cry_teddiursa.aif
+++ b/sound/direct_sound_samples/cries/cry_teddiursa.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tentacool.aif b/sound/direct_sound_samples/cries/cry_tentacool.aif
index 332bec4b2..332bec4b2 100644
--- a/sound/direct_sound_samples/cry_tentacool.aif
+++ b/sound/direct_sound_samples/cries/cry_tentacool.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tentacruel.aif b/sound/direct_sound_samples/cries/cry_tentacruel.aif
index e8ec1b14c..e8ec1b14c 100644
--- a/sound/direct_sound_samples/cry_tentacruel.aif
+++ b/sound/direct_sound_samples/cries/cry_tentacruel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_togepi.aif b/sound/direct_sound_samples/cries/cry_togepi.aif
index 87ef6ef2d..87ef6ef2d 100644
--- a/sound/direct_sound_samples/cry_togepi.aif
+++ b/sound/direct_sound_samples/cries/cry_togepi.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_togetic.aif b/sound/direct_sound_samples/cries/cry_togetic.aif
index 8aa18ac41..8aa18ac41 100644
--- a/sound/direct_sound_samples/cry_togetic.aif
+++ b/sound/direct_sound_samples/cries/cry_togetic.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_torchic.aif b/sound/direct_sound_samples/cries/cry_torchic.aif
index 185a79499..185a79499 100644
--- a/sound/direct_sound_samples/cry_torchic.aif
+++ b/sound/direct_sound_samples/cries/cry_torchic.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_torkoal.aif b/sound/direct_sound_samples/cries/cry_torkoal.aif
index 9e56d3810..9e56d3810 100644
--- a/sound/direct_sound_samples/cry_torkoal.aif
+++ b/sound/direct_sound_samples/cries/cry_torkoal.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_totodile.aif b/sound/direct_sound_samples/cries/cry_totodile.aif
index dbf2179a7..dbf2179a7 100644
--- a/sound/direct_sound_samples/cry_totodile.aif
+++ b/sound/direct_sound_samples/cries/cry_totodile.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_trapinch.aif b/sound/direct_sound_samples/cries/cry_trapinch.aif
index 01664b72e..01664b72e 100644
--- a/sound/direct_sound_samples/cry_trapinch.aif
+++ b/sound/direct_sound_samples/cries/cry_trapinch.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_treecko.aif b/sound/direct_sound_samples/cries/cry_treecko.aif
index a7416e8da..a7416e8da 100644
--- a/sound/direct_sound_samples/cry_treecko.aif
+++ b/sound/direct_sound_samples/cries/cry_treecko.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tropius.aif b/sound/direct_sound_samples/cries/cry_tropius.aif
index bbb52787b..bbb52787b 100644
--- a/sound/direct_sound_samples/cry_tropius.aif
+++ b/sound/direct_sound_samples/cries/cry_tropius.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_typhlosion.aif b/sound/direct_sound_samples/cries/cry_typhlosion.aif
index f0238d066..f0238d066 100644
--- a/sound/direct_sound_samples/cry_typhlosion.aif
+++ b/sound/direct_sound_samples/cries/cry_typhlosion.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tyranitar.aif b/sound/direct_sound_samples/cries/cry_tyranitar.aif
index 557f61769..557f61769 100644
--- a/sound/direct_sound_samples/cry_tyranitar.aif
+++ b/sound/direct_sound_samples/cries/cry_tyranitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_tyrogue.aif b/sound/direct_sound_samples/cries/cry_tyrogue.aif
index e5065f58b..e5065f58b 100644
--- a/sound/direct_sound_samples/cry_tyrogue.aif
+++ b/sound/direct_sound_samples/cries/cry_tyrogue.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_umbreon.aif b/sound/direct_sound_samples/cries/cry_umbreon.aif
index 38129b1a7..38129b1a7 100644
--- a/sound/direct_sound_samples/cry_umbreon.aif
+++ b/sound/direct_sound_samples/cries/cry_umbreon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_unown.aif b/sound/direct_sound_samples/cries/cry_unown.aif
index 8339ccb6b..8339ccb6b 100644
--- a/sound/direct_sound_samples/cry_unown.aif
+++ b/sound/direct_sound_samples/cries/cry_unown.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_unused_265.aif b/sound/direct_sound_samples/cries/cry_unused_265.aif
index 7f5965f06..7f5965f06 100644
--- a/sound/direct_sound_samples/cry_unused_265.aif
+++ b/sound/direct_sound_samples/cries/cry_unused_265.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_unused_268.aif b/sound/direct_sound_samples/cries/cry_unused_268.aif
index 5cae364c3..5cae364c3 100644
--- a/sound/direct_sound_samples/cry_unused_268.aif
+++ b/sound/direct_sound_samples/cries/cry_unused_268.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_ursaring.aif b/sound/direct_sound_samples/cries/cry_ursaring.aif
index fcc748bd1..fcc748bd1 100644
--- a/sound/direct_sound_samples/cry_ursaring.aif
+++ b/sound/direct_sound_samples/cries/cry_ursaring.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vaporeon.aif b/sound/direct_sound_samples/cries/cry_vaporeon.aif
index 4967cfdeb..4967cfdeb 100644
--- a/sound/direct_sound_samples/cry_vaporeon.aif
+++ b/sound/direct_sound_samples/cries/cry_vaporeon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_venomoth.aif b/sound/direct_sound_samples/cries/cry_venomoth.aif
index bc291ec33..bc291ec33 100644
--- a/sound/direct_sound_samples/cry_venomoth.aif
+++ b/sound/direct_sound_samples/cries/cry_venomoth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_venonat.aif b/sound/direct_sound_samples/cries/cry_venonat.aif
index e89d87fa8..e89d87fa8 100644
--- a/sound/direct_sound_samples/cry_venonat.aif
+++ b/sound/direct_sound_samples/cries/cry_venonat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_venusaur.aif b/sound/direct_sound_samples/cries/cry_venusaur.aif
index 8a1f69e6e..8a1f69e6e 100644
--- a/sound/direct_sound_samples/cry_venusaur.aif
+++ b/sound/direct_sound_samples/cries/cry_venusaur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vibrava.aif b/sound/direct_sound_samples/cries/cry_vibrava.aif
index 3e3180219..3e3180219 100644
--- a/sound/direct_sound_samples/cry_vibrava.aif
+++ b/sound/direct_sound_samples/cries/cry_vibrava.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_victreebel.aif b/sound/direct_sound_samples/cries/cry_victreebel.aif
index d6e6a4fe9..d6e6a4fe9 100644
--- a/sound/direct_sound_samples/cry_victreebel.aif
+++ b/sound/direct_sound_samples/cries/cry_victreebel.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vigoroth.aif b/sound/direct_sound_samples/cries/cry_vigoroth.aif
index fc414f33d..fc414f33d 100644
--- a/sound/direct_sound_samples/cry_vigoroth.aif
+++ b/sound/direct_sound_samples/cries/cry_vigoroth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vileplume.aif b/sound/direct_sound_samples/cries/cry_vileplume.aif
index 723eec697..723eec697 100644
--- a/sound/direct_sound_samples/cry_vileplume.aif
+++ b/sound/direct_sound_samples/cries/cry_vileplume.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_volbeat.aif b/sound/direct_sound_samples/cries/cry_volbeat.aif
index 6f765081e..6f765081e 100644
--- a/sound/direct_sound_samples/cry_volbeat.aif
+++ b/sound/direct_sound_samples/cries/cry_volbeat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_voltorb.aif b/sound/direct_sound_samples/cries/cry_voltorb.aif
index 96e3bff31..96e3bff31 100644
--- a/sound/direct_sound_samples/cry_voltorb.aif
+++ b/sound/direct_sound_samples/cries/cry_voltorb.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_vulpix.aif b/sound/direct_sound_samples/cries/cry_vulpix.aif
index 20da23fb4..20da23fb4 100644
--- a/sound/direct_sound_samples/cry_vulpix.aif
+++ b/sound/direct_sound_samples/cries/cry_vulpix.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wailmer.aif b/sound/direct_sound_samples/cries/cry_wailmer.aif
index e8de91333..e8de91333 100644
--- a/sound/direct_sound_samples/cry_wailmer.aif
+++ b/sound/direct_sound_samples/cries/cry_wailmer.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wailord.aif b/sound/direct_sound_samples/cries/cry_wailord.aif
index 2c0468010..2c0468010 100644
--- a/sound/direct_sound_samples/cry_wailord.aif
+++ b/sound/direct_sound_samples/cries/cry_wailord.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_walrein.aif b/sound/direct_sound_samples/cries/cry_walrein.aif
index 24c00a596..24c00a596 100644
--- a/sound/direct_sound_samples/cry_walrein.aif
+++ b/sound/direct_sound_samples/cries/cry_walrein.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wartortle.aif b/sound/direct_sound_samples/cries/cry_wartortle.aif
index 5dab7fd93..5dab7fd93 100644
--- a/sound/direct_sound_samples/cry_wartortle.aif
+++ b/sound/direct_sound_samples/cries/cry_wartortle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_weedle.aif b/sound/direct_sound_samples/cries/cry_weedle.aif
index 773c2c8ae..773c2c8ae 100644
--- a/sound/direct_sound_samples/cry_weedle.aif
+++ b/sound/direct_sound_samples/cries/cry_weedle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_weepinbell.aif b/sound/direct_sound_samples/cries/cry_weepinbell.aif
index cdd61380a..cdd61380a 100644
--- a/sound/direct_sound_samples/cry_weepinbell.aif
+++ b/sound/direct_sound_samples/cries/cry_weepinbell.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_weezing.aif b/sound/direct_sound_samples/cries/cry_weezing.aif
index 2e4a7fe13..2e4a7fe13 100644
--- a/sound/direct_sound_samples/cry_weezing.aif
+++ b/sound/direct_sound_samples/cries/cry_weezing.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_whiscash.aif b/sound/direct_sound_samples/cries/cry_whiscash.aif
index 219737f32..219737f32 100644
--- a/sound/direct_sound_samples/cry_whiscash.aif
+++ b/sound/direct_sound_samples/cries/cry_whiscash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_whismur.aif b/sound/direct_sound_samples/cries/cry_whismur.aif
index 4da92ca6a..4da92ca6a 100644
--- a/sound/direct_sound_samples/cry_whismur.aif
+++ b/sound/direct_sound_samples/cries/cry_whismur.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wigglytuff.aif b/sound/direct_sound_samples/cries/cry_wigglytuff.aif
index 90aa90a23..90aa90a23 100644
--- a/sound/direct_sound_samples/cry_wigglytuff.aif
+++ b/sound/direct_sound_samples/cries/cry_wigglytuff.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wingull.aif b/sound/direct_sound_samples/cries/cry_wingull.aif
index 182ef18e6..182ef18e6 100644
--- a/sound/direct_sound_samples/cry_wingull.aif
+++ b/sound/direct_sound_samples/cries/cry_wingull.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wobbuffet.aif b/sound/direct_sound_samples/cries/cry_wobbuffet.aif
index 70ee1f704..70ee1f704 100644
--- a/sound/direct_sound_samples/cry_wobbuffet.aif
+++ b/sound/direct_sound_samples/cries/cry_wobbuffet.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wooper.aif b/sound/direct_sound_samples/cries/cry_wooper.aif
index 51a6b627e..51a6b627e 100644
--- a/sound/direct_sound_samples/cry_wooper.aif
+++ b/sound/direct_sound_samples/cries/cry_wooper.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wurmple.aif b/sound/direct_sound_samples/cries/cry_wurmple.aif
index 6442a4063..6442a4063 100644
--- a/sound/direct_sound_samples/cry_wurmple.aif
+++ b/sound/direct_sound_samples/cries/cry_wurmple.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_wynaut.aif b/sound/direct_sound_samples/cries/cry_wynaut.aif
index 798732c74..798732c74 100644
--- a/sound/direct_sound_samples/cry_wynaut.aif
+++ b/sound/direct_sound_samples/cries/cry_wynaut.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_xatu.aif b/sound/direct_sound_samples/cries/cry_xatu.aif
index ac758fdbf..ac758fdbf 100644
--- a/sound/direct_sound_samples/cry_xatu.aif
+++ b/sound/direct_sound_samples/cries/cry_xatu.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_yanma.aif b/sound/direct_sound_samples/cries/cry_yanma.aif
index df76534c5..df76534c5 100644
--- a/sound/direct_sound_samples/cry_yanma.aif
+++ b/sound/direct_sound_samples/cries/cry_yanma.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zangoose.aif b/sound/direct_sound_samples/cries/cry_zangoose.aif
index ce1622043..ce1622043 100644
--- a/sound/direct_sound_samples/cry_zangoose.aif
+++ b/sound/direct_sound_samples/cries/cry_zangoose.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zapdos.aif b/sound/direct_sound_samples/cries/cry_zapdos.aif
index a8d914d14..a8d914d14 100644
--- a/sound/direct_sound_samples/cry_zapdos.aif
+++ b/sound/direct_sound_samples/cries/cry_zapdos.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zigzagoon.aif b/sound/direct_sound_samples/cries/cry_zigzagoon.aif
index 52b9bb4f4..52b9bb4f4 100644
--- a/sound/direct_sound_samples/cry_zigzagoon.aif
+++ b/sound/direct_sound_samples/cries/cry_zigzagoon.aif
Binary files differ
diff --git a/sound/direct_sound_samples/cry_zubat.aif b/sound/direct_sound_samples/cries/cry_zubat.aif
index 45036d072..45036d072 100644
--- a/sound/direct_sound_samples/cry_zubat.aif
+++ b/sound/direct_sound_samples/cries/cry_zubat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A7328.aif b/sound/direct_sound_samples/phonemes/vowel_1.aif
index 9521d0b6e..9521d0b6e 100644
--- a/sound/direct_sound_samples/84A7328.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863AD2C.aif b/sound/direct_sound_samples/phonemes/vowel_10.aif
index 3b136fa43..3b136fa43 100644
--- a/sound/direct_sound_samples/863AD2C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_10.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863B79C.aif b/sound/direct_sound_samples/phonemes/vowel_11.aif
index fd72512cf..fd72512cf 100644
--- a/sound/direct_sound_samples/863B79C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_11.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863BABC.aif b/sound/direct_sound_samples/phonemes/vowel_12.aif
index 6f7794bec..6f7794bec 100644
--- a/sound/direct_sound_samples/863BABC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_12.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863C744.aif b/sound/direct_sound_samples/phonemes/vowel_13.aif
index 89b845f21..89b845f21 100644
--- a/sound/direct_sound_samples/863C744.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_13.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863CD64.aif b/sound/direct_sound_samples/phonemes/vowel_14.aif
index 1d99a3a93..1d99a3a93 100644
--- a/sound/direct_sound_samples/863CD64.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_14.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863D0EC.aif b/sound/direct_sound_samples/phonemes/vowel_15.aif
index 883398129..883398129 100644
--- a/sound/direct_sound_samples/863D0EC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_15.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863DED0.aif b/sound/direct_sound_samples/phonemes/vowel_16.aif
index 776815e63..776815e63 100644
--- a/sound/direct_sound_samples/863DED0.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_16.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863E840.aif b/sound/direct_sound_samples/phonemes/vowel_17.aif
index 545bd1292..545bd1292 100644
--- a/sound/direct_sound_samples/863E840.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_17.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863EBDC.aif b/sound/direct_sound_samples/phonemes/vowel_18.aif
index c0a3be10d..c0a3be10d 100644
--- a/sound/direct_sound_samples/863EBDC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_18.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863F390.aif b/sound/direct_sound_samples/phonemes/vowel_19.aif
index d26ecdd6d..d26ecdd6d 100644
--- a/sound/direct_sound_samples/863F390.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_19.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A7F38.aif b/sound/direct_sound_samples/phonemes/vowel_2.aif
index 2519572e2..2519572e2 100644
--- a/sound/direct_sound_samples/84A7F38.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/86400EC.aif b/sound/direct_sound_samples/phonemes/vowel_20.aif
index 2b51201a4..2b51201a4 100644
--- a/sound/direct_sound_samples/86400EC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_20.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8640330.aif b/sound/direct_sound_samples/phonemes/vowel_21.aif
index cf5ac4e03..cf5ac4e03 100644
--- a/sound/direct_sound_samples/8640330.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_21.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8641170.aif b/sound/direct_sound_samples/phonemes/vowel_22.aif
index 606742e60..606742e60 100644
--- a/sound/direct_sound_samples/8641170.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_22.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8641AC4.aif b/sound/direct_sound_samples/phonemes/vowel_23.aif
index 71d4987d6..71d4987d6 100644
--- a/sound/direct_sound_samples/8641AC4.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_23.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8641E18.aif b/sound/direct_sound_samples/phonemes/vowel_24.aif
index 070c44a37..070c44a37 100644
--- a/sound/direct_sound_samples/8641E18.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_24.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864244C.aif b/sound/direct_sound_samples/phonemes/vowel_25.aif
index b0ca84a38..b0ca84a38 100644
--- a/sound/direct_sound_samples/864244C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_25.aif
Binary files differ
diff --git a/sound/direct_sound_samples/86430B8.aif b/sound/direct_sound_samples/phonemes/vowel_26.aif
index f44101b23..f44101b23 100644
--- a/sound/direct_sound_samples/86430B8.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_26.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8643650.aif b/sound/direct_sound_samples/phonemes/vowel_27.aif
index a33809d42..a33809d42 100644
--- a/sound/direct_sound_samples/8643650.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_27.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8644154.aif b/sound/direct_sound_samples/phonemes/vowel_28.aif
index 6a005efcc..6a005efcc 100644
--- a/sound/direct_sound_samples/8644154.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_28.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8644758.aif b/sound/direct_sound_samples/phonemes/vowel_29.aif
index 62f9493fd..62f9493fd 100644
--- a/sound/direct_sound_samples/8644758.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_29.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A8AC8.aif b/sound/direct_sound_samples/phonemes/vowel_3.aif
index d411e6612..d411e6612 100644
--- a/sound/direct_sound_samples/84A8AC8.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_3.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8644950.aif b/sound/direct_sound_samples/phonemes/vowel_30.aif
index 5767bd6d9..5767bd6d9 100644
--- a/sound/direct_sound_samples/8644950.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_30.aif
Binary files differ
diff --git a/sound/direct_sound_samples/86452B4.aif b/sound/direct_sound_samples/phonemes/vowel_31.aif
index 33e328a82..33e328a82 100644
--- a/sound/direct_sound_samples/86452B4.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_31.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8646240.aif b/sound/direct_sound_samples/phonemes/vowel_32.aif
index 548e740c8..548e740c8 100644
--- a/sound/direct_sound_samples/8646240.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_32.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8646878.aif b/sound/direct_sound_samples/phonemes/vowel_33.aif
index cbbe09266..cbbe09266 100644
--- a/sound/direct_sound_samples/8646878.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_33.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864734C.aif b/sound/direct_sound_samples/phonemes/vowel_34.aif
index 8bdf7faaa..8bdf7faaa 100644
--- a/sound/direct_sound_samples/864734C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_34.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8648290.aif b/sound/direct_sound_samples/phonemes/vowel_35.aif
index f96f8853b..f96f8853b 100644
--- a/sound/direct_sound_samples/8648290.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_35.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8648808.aif b/sound/direct_sound_samples/phonemes/vowel_36.aif
index ab9abbf79..ab9abbf79 100644
--- a/sound/direct_sound_samples/8648808.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_36.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8649654.aif b/sound/direct_sound_samples/phonemes/vowel_37.aif
index 9d21d0ab4..9d21d0ab4 100644
--- a/sound/direct_sound_samples/8649654.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_37.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864A55C.aif b/sound/direct_sound_samples/phonemes/vowel_38.aif
index c037ed4af..c037ed4af 100644
--- a/sound/direct_sound_samples/864A55C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_38.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864B030.aif b/sound/direct_sound_samples/phonemes/vowel_39.aif
index ac1f8b66f..ac1f8b66f 100644
--- a/sound/direct_sound_samples/864B030.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_39.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A9564.aif b/sound/direct_sound_samples/phonemes/vowel_4.aif
index 3bc1aa839..3bc1aa839 100644
--- a/sound/direct_sound_samples/84A9564.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864BBC4.aif b/sound/direct_sound_samples/phonemes/vowel_40.aif
index 1fd9111c8..1fd9111c8 100644
--- a/sound/direct_sound_samples/864BBC4.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_40.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864C59C.aif b/sound/direct_sound_samples/phonemes/vowel_41.aif
index 5d6ae2282..5d6ae2282 100644
--- a/sound/direct_sound_samples/864C59C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_41.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864CBDC.aif b/sound/direct_sound_samples/phonemes/vowel_42.aif
index f26700690..f26700690 100644
--- a/sound/direct_sound_samples/864CBDC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_42.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864D6BC.aif b/sound/direct_sound_samples/phonemes/vowel_43.aif
index 3ba97a9fc..3ba97a9fc 100644
--- a/sound/direct_sound_samples/864D6BC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_43.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864DCF8.aif b/sound/direct_sound_samples/phonemes/vowel_44.aif
index 37f1be4b1..37f1be4b1 100644
--- a/sound/direct_sound_samples/864DCF8.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_44.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864E410.aif b/sound/direct_sound_samples/phonemes/vowel_45.aif
index 4b3facb99..4b3facb99 100644
--- a/sound/direct_sound_samples/864E410.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_45.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864ED4C.aif b/sound/direct_sound_samples/phonemes/vowel_46.aif
index 8a4d7653b..8a4d7653b 100644
--- a/sound/direct_sound_samples/864ED4C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_46.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864F508.aif b/sound/direct_sound_samples/phonemes/vowel_47.aif
index db5bae244..db5bae244 100644
--- a/sound/direct_sound_samples/864F508.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_47.aif
Binary files differ
diff --git a/sound/direct_sound_samples/864FA6C.aif b/sound/direct_sound_samples/phonemes/vowel_48.aif
index 6612dd54d..6612dd54d 100644
--- a/sound/direct_sound_samples/864FA6C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_48.aif
Binary files differ
diff --git a/sound/direct_sound_samples/86507E0.aif b/sound/direct_sound_samples/phonemes/vowel_49.aif
index 441eecfcd..441eecfcd 100644
--- a/sound/direct_sound_samples/86507E0.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_49.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A9EAC.aif b/sound/direct_sound_samples/phonemes/vowel_5.aif
index 3bacf3676..3bacf3676 100644
--- a/sound/direct_sound_samples/84A9EAC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_5.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8650C5C.aif b/sound/direct_sound_samples/phonemes/vowel_50.aif
index 95670cf0a..95670cf0a 100644
--- a/sound/direct_sound_samples/8650C5C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_50.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8651148.aif b/sound/direct_sound_samples/phonemes/vowel_51.aif
index 0fadcba8e..0fadcba8e 100644
--- a/sound/direct_sound_samples/8651148.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_51.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8651910.aif b/sound/direct_sound_samples/phonemes/vowel_52.aif
index 6017c55b4..6017c55b4 100644
--- a/sound/direct_sound_samples/8651910.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_52.aif
Binary files differ
diff --git a/sound/direct_sound_samples/865250C.aif b/sound/direct_sound_samples/phonemes/vowel_53.aif
index 2327b6d65..2327b6d65 100644
--- a/sound/direct_sound_samples/865250C.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_53.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8652884.aif b/sound/direct_sound_samples/phonemes/vowel_54.aif
index 19ceca0d0..19ceca0d0 100644
--- a/sound/direct_sound_samples/8652884.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_54.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8653040.aif b/sound/direct_sound_samples/phonemes/vowel_55.aif
index 8438d301a..8438d301a 100644
--- a/sound/direct_sound_samples/8653040.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_55.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8653CA4.aif b/sound/direct_sound_samples/phonemes/vowel_56.aif
index 74d4bcf4a..74d4bcf4a 100644
--- a/sound/direct_sound_samples/8653CA4.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_56.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8654170.aif b/sound/direct_sound_samples/phonemes/vowel_57.aif
index dfef8a82b..dfef8a82b 100644
--- a/sound/direct_sound_samples/8654170.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_57.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84AA8F4.aif b/sound/direct_sound_samples/phonemes/vowel_6.aif
index 5ddaa153d..5ddaa153d 100644
--- a/sound/direct_sound_samples/84AA8F4.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_6.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8639898.aif b/sound/direct_sound_samples/phonemes/vowel_7.aif
index 4b15a94b7..4b15a94b7 100644
--- a/sound/direct_sound_samples/8639898.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_7.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8639EF8.aif b/sound/direct_sound_samples/phonemes/vowel_8.aif
index 74c129073..74c129073 100644
--- a/sound/direct_sound_samples/8639EF8.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_8.aif
Binary files differ
diff --git a/sound/direct_sound_samples/863A3DC.aif b/sound/direct_sound_samples/phonemes/vowel_9.aif
index 359972c16..359972c16 100644
--- a/sound/direct_sound_samples/863A3DC.aif
+++ b/sound/direct_sound_samples/phonemes/vowel_9.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845ED34.aif b/sound/direct_sound_samples/synth/hi_hat_rattle.aif
index 7de79e747..7de79e747 100644
--- a/sound/direct_sound_samples/845ED34.aif
+++ b/sound/direct_sound_samples/synth/hi_hat_rattle.aif
Binary files differ
diff --git a/sound/direct_sound_samples/848E094.aif b/sound/direct_sound_samples/synth/machine_sound1.aif
index 49f24936f..49f24936f 100644
--- a/sound/direct_sound_samples/848E094.aif
+++ b/sound/direct_sound_samples/synth/machine_sound1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/848C4A4.aif b/sound/direct_sound_samples/synth/machine_sound2.aif
index 2e09d0822..2e09d0822 100644
--- a/sound/direct_sound_samples/848C4A4.aif
+++ b/sound/direct_sound_samples/synth/machine_sound2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/849D45C.aif b/sound/direct_sound_samples/synth/noise1.aif
index ebd46eeaa..ebd46eeaa 100644
--- a/sound/direct_sound_samples/849D45C.aif
+++ b/sound/direct_sound_samples/synth/noise1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A3B50.aif b/sound/direct_sound_samples/synth/noise2.aif
index 6a11945c5..6a11945c5 100644
--- a/sound/direct_sound_samples/84A3B50.aif
+++ b/sound/direct_sound_samples/synth/noise2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8491ACC.aif b/sound/direct_sound_samples/synth/noise3.aif
index ece919ea5..ece919ea5 100644
--- a/sound/direct_sound_samples/8491ACC.aif
+++ b/sound/direct_sound_samples/synth/noise3.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8488F44.aif b/sound/direct_sound_samples/synth/ring.aif
index 578a81c2f..578a81c2f 100644
--- a/sound/direct_sound_samples/8488F44.aif
+++ b/sound/direct_sound_samples/synth/ring.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8492D10.aif b/sound/direct_sound_samples/synth/sc88_123_bubble.aif
index 89872bf55..89872bf55 100644
--- a/sound/direct_sound_samples/8492D10.aif
+++ b/sound/direct_sound_samples/synth/sc88_123_bubble.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8495028.aif b/sound/direct_sound_samples/synth/sc88_123_pink_noise.aif
index 102830efa..102830efa 100644
--- a/sound/direct_sound_samples/8495028.aif
+++ b/sound/direct_sound_samples/synth/sc88_123_pink_noise.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8499110.aif b/sound/direct_sound_samples/synth/sc88_123_white_noise.aif
index 556be0238..556be0238 100644
--- a/sound/direct_sound_samples/8499110.aif
+++ b/sound/direct_sound_samples/synth/sc88_123_white_noise.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A5690.aif b/sound/direct_sound_samples/synth/sc88_124_horse_gallop.aif
index a0fb49f89..a0fb49f89 100644
--- a/sound/direct_sound_samples/84A5690.aif
+++ b/sound/direct_sound_samples/synth/sc88_124_horse_gallop.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8493D20.aif b/sound/direct_sound_samples/synth/sc88_126_car_crash.aif
index 515818a4d..515818a4d 100644
--- a/sound/direct_sound_samples/8493D20.aif
+++ b/sound/direct_sound_samples/synth/sc88_126_car_crash.aif
Binary files differ
diff --git a/sound/direct_sound_samples/848F448.aif b/sound/direct_sound_samples/synth/sc88_127_applause_2.aif
index 5c55d91ed..5c55d91ed 100644
--- a/sound/direct_sound_samples/848F448.aif
+++ b/sound/direct_sound_samples/synth/sc88_127_applause_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A311C.aif b/sound/direct_sound_samples/synth/sc88_13_marimba.aif
index 1bd43ca92..1bd43ca92 100644
--- a/sound/direct_sound_samples/84A311C.aif
+++ b/sound/direct_sound_samples/synth/sc88_13_marimba.aif
Binary files differ
diff --git a/sound/direct_sound_samples/849BAEC.aif b/sound/direct_sound_samples/synth/sc88_15_tubular_bell.aif
index 9d00ecae6..9d00ecae6 100644
--- a/sound/direct_sound_samples/849BAEC.aif
+++ b/sound/direct_sound_samples/synth/sc88_15_tubular_bell.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84569D4.aif b/sound/direct_sound_samples/synth/sc88_18_organ_2.aif
index 6372bbc32..6372bbc32 100644
--- a/sound/direct_sound_samples/84569D4.aif
+++ b/sound/direct_sound_samples/synth/sc88_18_organ_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A26EC.aif b/sound/direct_sound_samples/synth/sc88_1_piano_1.aif
index 083c45e3d..083c45e3d 100644
--- a/sound/direct_sound_samples/84A26EC.aif
+++ b/sound/direct_sound_samples/synth/sc88_1_piano_1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84A5F58.aif b/sound/direct_sound_samples/synth/sc88_22_accordion_fr.aif
index 6d6c2e998..6d6c2e998 100644
--- a/sound/direct_sound_samples/84A5F58.aif
+++ b/sound/direct_sound_samples/synth/sc88_22_accordion_fr.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8481130.aif b/sound/direct_sound_samples/synth/sc88_25_nylon_string_guitar.aif
index dea429a25..dea429a25 100644
--- a/sound/direct_sound_samples/8481130.aif
+++ b/sound/direct_sound_samples/synth/sc88_25_nylon_string_guitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/846286C.aif b/sound/direct_sound_samples/synth/sc88_26_steel_string_guitar.aif
index c2b3757b0..c2b3757b0 100644
--- a/sound/direct_sound_samples/846286C.aif
+++ b/sound/direct_sound_samples/synth/sc88_26_steel_string_guitar.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8464E2C.aif b/sound/direct_sound_samples/synth/sc88_2_piano_2.aif
index 5236141ba..5236141ba 100644
--- a/sound/direct_sound_samples/8464E2C.aif
+++ b/sound/direct_sound_samples/synth/sc88_2_piano_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8457D98.aif b/sound/direct_sound_samples/synth/sc88_34_finger_slap.aif
index 9175b63c5..9175b63c5 100644
--- a/sound/direct_sound_samples/8457D98.aif
+++ b/sound/direct_sound_samples/synth/sc88_34_finger_slap.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8483804.aif b/sound/direct_sound_samples/synth/sc88_34_fingered_bass.aif
index f244a9982..f244a9982 100644
--- a/sound/direct_sound_samples/8483804.aif
+++ b/sound/direct_sound_samples/synth/sc88_34_fingered_bass.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84571CC.aif b/sound/direct_sound_samples/synth/sc88_36_fretless_bass.aif
index f3aa47d91..f3aa47d91 100644
--- a/sound/direct_sound_samples/84571CC.aif
+++ b/sound/direct_sound_samples/synth/sc88_36_fretless_bass.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8466388.aif b/sound/direct_sound_samples/synth/sc88_37_unison_slap.aif
index a7c4e94f8..a7c4e94f8 100644
--- a/sound/direct_sound_samples/8466388.aif
+++ b/sound/direct_sound_samples/synth/sc88_37_unison_slap.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8458CD0.aif b/sound/direct_sound_samples/synth/sc88_39_synth_bass_1.aif
index f39931a7e..f39931a7e 100644
--- a/sound/direct_sound_samples/8458CD0.aif
+++ b/sound/direct_sound_samples/synth/sc88_39_synth_bass_1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84637CC.aif b/sound/direct_sound_samples/synth/sc88_3_piano_3.aif
index 7de586c9b..7de586c9b 100644
--- a/sound/direct_sound_samples/84637CC.aif
+++ b/sound/direct_sound_samples/synth/sc88_3_piano_3.aif
Binary files differ
diff --git a/sound/direct_sound_samples/848BD68.aif b/sound/direct_sound_samples/synth/sc88_46_pizzicato_strings.aif
index 1c0a027f7..1c0a027f7 100644
--- a/sound/direct_sound_samples/848BD68.aif
+++ b/sound/direct_sound_samples/synth/sc88_46_pizzicato_strings.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8466F14.aif b/sound/direct_sound_samples/synth/sc88_49_strings.aif
index bfaa5c196..bfaa5c196 100644
--- a/sound/direct_sound_samples/8466F14.aif
+++ b/sound/direct_sound_samples/synth/sc88_49_strings.aif
Binary files differ
diff --git a/sound/direct_sound_samples/846A4B8.aif b/sound/direct_sound_samples/synth/sc88_49_strings_plus_flute.aif
index 3e76cacdd..3e76cacdd 100644
--- a/sound/direct_sound_samples/846A4B8.aif
+++ b/sound/direct_sound_samples/synth/sc88_49_strings_plus_flute.aif
Binary files differ
diff --git a/sound/direct_sound_samples/846C7D4.aif b/sound/direct_sound_samples/synth/sc88_49_strings_plus_horn.aif
index 2647c78ec..2647c78ec 100644
--- a/sound/direct_sound_samples/846C7D4.aif
+++ b/sound/direct_sound_samples/synth/sc88_49_strings_plus_horn.aif
Binary files differ
diff --git a/sound/direct_sound_samples/846FEA0.aif b/sound/direct_sound_samples/synth/sc88_57_trumpet.aif
index e56df7f60..e56df7f60 100644
--- a/sound/direct_sound_samples/846FEA0.aif
+++ b/sound/direct_sound_samples/synth/sc88_57_trumpet.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84711F0.aif b/sound/direct_sound_samples/synth/sc88_58_trombone.aif
index 8c68a83b3..8c68a83b3 100644
--- a/sound/direct_sound_samples/84711F0.aif
+++ b/sound/direct_sound_samples/synth/sc88_58_trombone.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8472700.aif b/sound/direct_sound_samples/synth/sc88_59_tuba.aif
index a03bafc97..a03bafc97 100644
--- a/sound/direct_sound_samples/8472700.aif
+++ b/sound/direct_sound_samples/synth/sc88_59_tuba.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8473B20.aif b/sound/direct_sound_samples/synth/sc88_60_cup_muted_trumpet.aif
index d4077b481..d4077b481 100644
--- a/sound/direct_sound_samples/8473B20.aif
+++ b/sound/direct_sound_samples/synth/sc88_60_cup_muted_trumpet.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8474BBC.aif b/sound/direct_sound_samples/synth/sc88_60_muted_trumpet_3.aif
index 2ad86876b..2ad86876b 100644
--- a/sound/direct_sound_samples/8474BBC.aif
+++ b/sound/direct_sound_samples/synth/sc88_60_muted_trumpet_3.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8475C18.aif b/sound/direct_sound_samples/synth/sc88_61_french_horns.aif
index 742c4385e..742c4385e 100644
--- a/sound/direct_sound_samples/8475C18.aif
+++ b/sound/direct_sound_samples/synth/sc88_61_french_horns.aif
Binary files differ
diff --git a/sound/direct_sound_samples/847CBAC.aif b/sound/direct_sound_samples/synth/sc88_61_wide_french_horns.aif
index 004fda6a1..004fda6a1 100644
--- a/sound/direct_sound_samples/847CBAC.aif
+++ b/sound/direct_sound_samples/synth/sc88_61_wide_french_horns.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84830A0.aif b/sound/direct_sound_samples/synth/sc88_74_flute.aif
index 703f3adbd..703f3adbd 100644
--- a/sound/direct_sound_samples/84830A0.aif
+++ b/sound/direct_sound_samples/synth/sc88_74_flute.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8487330.aif b/sound/direct_sound_samples/synth/sc88_81_square_wave.aif
index 09e17f0ca..09e17f0ca 100644
--- a/sound/direct_sound_samples/8487330.aif
+++ b/sound/direct_sound_samples/synth/sc88_81_square_wave.aif
Binary files differ
diff --git a/sound/direct_sound_samples/849F40C.aif b/sound/direct_sound_samples/synth/sc88_82_jp_super_saw.aif
index 455ced13e..455ced13e 100644
--- a/sound/direct_sound_samples/849F40C.aif
+++ b/sound/direct_sound_samples/synth/sc88_82_jp_super_saw.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8497134.aif b/sound/direct_sound_samples/synth/sc88_82_waspy_synth.aif
index 09fe6f12e..09fe6f12e 100644
--- a/sound/direct_sound_samples/8497134.aif
+++ b/sound/direct_sound_samples/synth/sc88_82_waspy_synth.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845AE14.aif b/sound/direct_sound_samples/synth/sc88_drumkit_bass_drum.aif
index 9c504e3d0..9c504e3d0 100644
--- a/sound/direct_sound_samples/845AE14.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_bass_drum.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845FCC8.aif b/sound/direct_sound_samples/synth/sc88_drumkit_cabasa.aif
index 39ec57d29..39ec57d29 100644
--- a/sound/direct_sound_samples/845FCC8.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_cabasa.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845DAF0.aif b/sound/direct_sound_samples/synth/sc88_drumkit_closed_hi_hat.aif
index 8747aef28..8747aef28 100644
--- a/sound/direct_sound_samples/845DAF0.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_closed_hi_hat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8460E60.aif b/sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_1.aif
index 576e3e19e..576e3e19e 100644
--- a/sound/direct_sound_samples/8460E60.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/846057C.aif b/sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_2.aif
index 4aec6882f..4aec6882f 100644
--- a/sound/direct_sound_samples/846057C.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_crash_cymbal_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/849B320.aif b/sound/direct_sound_samples/synth/sc88_drumkit_guiro.aif
index dd80b1185..dd80b1185 100644
--- a/sound/direct_sound_samples/849B320.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_guiro.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845B9A8.aif b/sound/direct_sound_samples/synth/sc88_drumkit_hand_clap.aif
index b11787ffc..b11787ffc 100644
--- a/sound/direct_sound_samples/845B9A8.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_hand_clap.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845CAB0.aif b/sound/direct_sound_samples/synth/sc88_drumkit_hi_mid_tom.aif
index 04f990b13..04f990b13 100644
--- a/sound/direct_sound_samples/845CAB0.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_hi_mid_tom.aif
Binary files differ
diff --git a/sound/direct_sound_samples/84622A4.aif b/sound/direct_sound_samples/synth/sc88_drumkit_low_conga.aif
index 8e1cb620a..8e1cb620a 100644
--- a/sound/direct_sound_samples/84622A4.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_low_conga.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8461D8C.aif b/sound/direct_sound_samples/synth/sc88_drumkit_mute_hi_conga.aif
index 2e1bf9c64..2e1bf9c64 100644
--- a/sound/direct_sound_samples/8461D8C.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_mute_hi_conga.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845DF04.aif b/sound/direct_sound_samples/synth/sc88_drumkit_open_hi_hat.aif
index 5ad9410d0..5ad9410d0 100644
--- a/sound/direct_sound_samples/845DF04.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_open_hi_hat.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845B2B4.aif b/sound/direct_sound_samples/synth/sc88_drumkit_snare_1.aif
index 544b187d5..544b187d5 100644
--- a/sound/direct_sound_samples/845B2B4.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_snare_1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/845C238.aif b/sound/direct_sound_samples/synth/sc88_drumkit_snare_2.aif
index 36b640758..36b640758 100644
--- a/sound/direct_sound_samples/845C238.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_snare_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/848A8A4.aif b/sound/direct_sound_samples/synth/sc88_drumkit_snare_3.aif
index ee6ff45b7..ee6ff45b7 100644
--- a/sound/direct_sound_samples/848A8A4.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_snare_3.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8486924.aif b/sound/direct_sound_samples/synth/sc88_drumkit_snare_4.aif
index b3122457d..b3122457d 100644
--- a/sound/direct_sound_samples/8486924.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_snare_4.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8485454.aif b/sound/direct_sound_samples/synth/sc88_drumkit_timbale_1.aif
index 7270872d6..7270872d6 100644
--- a/sound/direct_sound_samples/8485454.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_timbale_1.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8459944.aif b/sound/direct_sound_samples/synth/sc88_drumkit_timbale_2.aif
index dfdfd702e..dfdfd702e 100644
--- a/sound/direct_sound_samples/8459944.aif
+++ b/sound/direct_sound_samples/synth/sc88_drumkit_timbale_2.aif
Binary files differ
diff --git a/sound/direct_sound_samples/8456330.aif b/sound/direct_sound_samples/synth/tone1.aif
index 199ead811..199ead811 100644
--- a/sound/direct_sound_samples/8456330.aif
+++ b/sound/direct_sound_samples/synth/tone1.aif
Binary files differ
diff --git a/sound/music_player_table.inc b/sound/music_player_table.inc
index eadcfc90a..452ee78f5 100644
--- a/sound/music_player_table.inc
+++ b/sound/music_player_table.inc
@@ -1,6 +1,6 @@
.align 2
gMPlayTable:: @ 845545C
- music_player gMPlay_BGM, 0x30007F8, 10, 0
- music_player gMPlay_SE1, 0x3000B18, 3, 1
- music_player gMPlay_SE2, 0x3000C08, 9, 1
- music_player gMPlay_SE3, 0x3000ED8, 1, 0
+ music_player gMPlay_BGM, gUnknown_030007B8 + 0x40, 10, 0
+ music_player gMPlay_SE1, gUnknown_030007B8 + 0x360, 3, 1
+ music_player gMPlay_SE2, gUnknown_030007B8 + 0x450, 9, 1
+ music_player gMPlay_SE3, gUnknown_030007B8 + 0x720, 1, 0
diff --git a/sound/song_table.inc b/sound/song_table.inc
index ac2e3b494..d2aa7d327 100644
--- a/sound/song_table.inc
+++ b/sound/song_table.inc
@@ -1,253 +1,253 @@
.align 2
gSongTable:: @ 845548C
song se_stop, 0, 0
- song se_kaifuku, 1, 1
- song se_pc_logon, 1, 1
- song se_pc_off, 1, 1
- song se_pc_on, 1, 1
- song se_select, 2, 2
- song se_win_open, 1, 1
- song se_wall_hit, 2, 2
- song se_door, 1, 1
- song se_kaidan, 1, 1
- song se_dansa, 1, 1
- song se_jitensya, 1, 1
- song se_kouka_l, 1, 1
- song se_kouka_m, 1, 1
- song se_kouka_h, 1, 1
- song se_bowa2, 1, 1
- song se_poke_dead, 1, 1
- song se_nigeru, 1, 1
- song se_jido_doa, 1, 1
- song se_naminori, 1, 1
- song se_ban, 1, 1
- song se_pin, 1, 1
- song se_boo, 1, 1
- song se_bowa, 1, 1
- song se_jyuni, 2, 2
- song se_a, 1, 1
- song se_i, 1, 1
- song se_u, 1, 1
- song se_e, 1, 1
- song se_o, 1, 1
- song se_n, 1, 1
- song se_seikai, 1, 1
- song se_hazure, 1, 1
- song se_exp, 1, 1
- song se_jite_pyoko, 1, 1
+ song se_kaifuku, 1, 1 @ Healing Item
+ song se_pc_logon, 1, 1 @ PC Logon
+ song se_pc_off, 1, 1 @ PC Shutdown
+ song se_pc_on, 1, 1 @ PC Startup
+ song se_select, 2, 2 @ Cursor Selection
+ song se_win_open, 1, 1 @ Start Menu
+ song se_wall_hit, 2, 2 @ Wall Bump
+ song se_door, 1, 1 @ Opening Door
+ song se_kaidan, 1, 1 @ Stairs
+ song se_dansa, 1, 1 @ Ledge
+ song se_jitensya, 1, 1 @ Bicycle Bell
+ song se_kouka_l, 1, 1 @ Not Very Effective
+ song se_kouka_m, 1, 1 @ Normal Effectiveness
+ song se_kouka_h, 1, 1 @ Super Effective
+ song se_bowa2, 1, 1 @ Pokémon Withdrawl
+ song se_poke_dead, 1, 1 @ Pokémon Fainted
+ song se_nigeru, 1, 1 @ Flee from Wild Battle
+ song se_jido_doa, 1, 1 @ Pokémon Center Door
+ song se_naminori, 1, 1 @ Briney's Ship
+ song se_ban, 1, 1 @ Bang
+ song se_pin, 1, 1 @ Exclamation Bubble
+ song se_boo, 1, 1 @ Contest Jam
+ song se_bowa, 1, 1 @ Giving Poké Ball to Nurse, Poké Ball wiggle
+ song se_jyuni, 2, 2 @ Places in Contest Appearing
+ song se_a, 1, 1 @ Bard A
+ song se_i, 1, 1 @ Bard I
+ song se_u, 1, 1 @ Bard U
+ song se_e, 1, 1 @ Bard E
+ song se_o, 1, 1 @ Bard O
+ song se_n, 1, 1 @ Bard N
+ song se_seikai, 1, 1 @ Success
+ song se_hazure, 1, 1 @ Failure
+ song se_exp, 1, 1 @ Exp. Bar
+ song se_jite_pyoko, 1, 1 @ Bunny Hop
song se_mu_pachi, 1, 1
- song se_tk_kasya, 1, 1
+ song se_tk_kasya, 1, 1 @ Mossdeep Gym/Trick House Switch
song se_fu_zaku, 1, 1
song se_fu_zaku2, 1, 1
- song se_fu_zuzuzu, 1, 1
- song se_ru_gashin, 1, 1
- song se_ru_gasyan, 1, 1
- song se_ru_bari, 1, 1
- song se_ru_hyuu, 1, 1
+ song se_fu_zuzuzu, 1, 1 @ Lavaridge Gym Warp
+ song se_ru_gashin, 1, 1 @ Sootopolis Gym - Stairs Appear
+ song se_ru_gasyan, 1, 1 @ Sootopolis Gym - Ice Breaking
+ song se_ru_bari, 1, 1 @ Sootopolis Gym - Walking on Ice
+ song se_ru_hyuu, 1, 1 @ Falling Down
song se_ki_gasyan, 2, 2
- song se_tk_warpin, 1, 1
- song se_tk_warpout, 1, 1
- song se_tu_saa, 1, 1
- song se_hi_turun, 1, 1
- song se_track_move, 1, 1
- song se_track_stop, 1, 1
- song se_track_haik, 2, 2
- song se_track_door, 1, 1
+ song se_tk_warpin, 1, 1 @ Warp In
+ song se_tk_warpout, 1, 1 @ Warp Out
+ song se_tu_saa, 1, 1 @ Repel
+ song se_hi_turun, 1, 1 @ Moving Obstacle in Fortree Gym
+ song se_track_move, 1, 1 @ Moving Truck
+ song se_track_stop, 1, 1 @ Moving Truck Stop
+ song se_track_haik, 2, 2 @ Moving Truck Unload
+ song se_track_door, 1, 1 @ Moving Truck Door
song se_moter, 2, 2
song se_card, 1, 1
- song se_save, 1, 1
- song se_kon, 1, 1
- song se_kon2, 1, 1
- song se_kon3, 1, 1
- song se_kon4, 1, 1
- song se_suikomu, 2, 2
- song se_nageru, 1, 1
- song se_toy_c, 2, 2
- song se_toy_d, 2, 2
- song se_toy_e, 2, 2
- song se_toy_f, 2, 2
- song se_toy_g, 2, 2
- song se_toy_a, 2, 2
- song se_toy_b, 2, 2
- song se_toy_c1, 2, 2
- song se_mizu, 2, 2
- song se_hashi, 2, 2
- song se_daugi, 1, 1
- song se_pinpon, 1, 1
- song se_fuusen1, 2, 2
- song se_fuusen2, 2, 2
- song se_fuusen3, 2, 2
- song se_toy_kabe, 2, 2
- song se_toy_dango, 2, 2
- song se_doku, 1, 1
- song se_esuka, 1, 1
- song se_t_ame, 3, 3
- song se_t_ame_e, 3, 3
- song se_t_ooame, 3, 3
- song se_t_ooame_e, 3, 3
- song se_t_koame, 3, 3
- song se_t_koame_e, 3, 3
- song se_t_kami, 1, 1
- song se_t_kami2, 1, 1
- song se_elebeta, 1, 1
- song se_hinsi, 3, 3
- song se_expmax, 1, 1
- song se_tamakoro, 2, 2
- song se_tamakoro_e, 2, 2
+ song se_save, 1, 1 @ Save
+ song se_kon, 1, 1 @ Poke Ball Bounce 1
+ song se_kon2, 1, 1 @ Poké Ball Bounce 2
+ song se_kon3, 1, 1 @ Poké Ball Bounce 3
+ song se_kon4, 1, 1 @ Poké Ball Bounce 4
+ song se_suikomu, 2, 2 @ Poké Ball Trade
+ song se_nageru, 1, 1 @ Poké Ball Throw
+ song se_toy_c, 2, 2 @ Note C
+ song se_toy_d, 2, 2 @ Note D
+ song se_toy_e, 2, 2 @ Note E
+ song se_toy_f, 2, 2 @ Note F
+ song se_toy_g, 2, 2 @ Note G
+ song se_toy_a, 2, 2 @ Note A
+ song se_toy_b, 2, 2 @ Note B
+ song se_toy_c1, 2, 2 @ Note High C
+ song se_mizu, 2, 2 @ Puddle
+ song se_hashi, 2, 2 @ Boardwalk
+ song se_daugi, 1, 1 @ Slots Credits
+ song se_pinpon, 1, 1 @ Ding-dong!
+ song se_fuusen1, 2, 2 @ Red Balloon
+ song se_fuusen2, 2, 2 @ Blue Balloon
+ song se_fuusen3, 2, 2 @ Yellow Balloon
+ song se_toy_kabe, 2, 2 @ Breakable Door
+ song se_toy_dango, 2, 2 @ Mud Ball
+ song se_doku, 1, 1 @ Overworld Poison damage
+ song se_esuka, 1, 1 @ Escalator
+ song se_t_ame, 3, 3 @ Rain
+ song se_t_ame_e, 3, 3 @ Rain stop
+ song se_t_ooame, 3, 3 @ Heavy Rain
+ song se_t_ooame_e, 3, 3 @ Heavy Rain stop
+ song se_t_koame, 3, 3 @ Light Rain
+ song se_t_koame_e, 3, 3 @ Light Rain stop
+ song se_t_kami, 1, 1 @ Thunder
+ song se_t_kami2, 1, 1 @ Thunder 2
+ song se_elebeta, 1, 1 @ Elevator
+ song se_hinsi, 3, 3 @ Low Health
+ song se_expmax, 1, 1 @ Exp. Max
+ song se_tamakoro, 2, 2 @ Roulette Ball
+ song se_tamakoro_e, 2, 2 @ Roulette Ball 2
song se_basabasa, 1, 1
- song se_regi, 1, 1
- song se_c_gaji, 1, 1
- song se_c_maku_u, 1, 1
- song se_c_maku_d, 1, 1
+ song se_regi, 1, 1 @ Cash Register
+ song se_c_gaji, 1, 1 @ Contest Hearts
+ song se_c_maku_u, 1, 1 @ Contest Curtain rise
+ song se_c_maku_d, 1, 1 @ Contest Curtain fall
song se_c_pasi, 1, 1
song se_c_syu, 1, 1
- song se_c_pikon, 1, 1
- song se_reapoke, 1, 1
- song se_op_basyu, 1, 1
- song se_bt_start, 1, 1
- song se_dendou, 1, 1
- song se_jihanki, 1, 1
- song se_tama, 1, 1
- song se_z_scroll, 1, 1
- song se_z_page, 1, 1
- song se_pn_on, 1, 1
- song se_pn_off, 1, 1
- song se_z_search, 1, 1
- song se_tamago, 1, 1
- song se_tb_start, 1, 1
- song se_tb_kon, 1, 1
- song se_tb_kara, 2, 2
+ song se_c_pikon, 1, 1 @ Pokémon Appears in Contest
+ song se_reapoke, 1, 1 @ Shiny Pokémon
+ song se_op_basyu, 1, 1 @ Opening Movie -> Title Screen whoosh
+ song se_bt_start, 1, 1 @ Battle Mugshot whoosh
+ song se_dendou, 1, 1 @ Audience Cheering
+ song se_jihanki, 1, 1 @ Vending Machine
+ song se_tama, 1, 1 @ Orb Used
+ song se_z_scroll, 1, 1 @ Pokédex Scrolling
+ song se_z_page, 1, 1 @ Pokédex Page
+ song se_pn_on, 1, 1 @ PokéNav On
+ song se_pn_off, 1, 1 @ PokéNav Off
+ song se_z_search, 1, 1 @ Pokédex Search
+ song se_tamago, 1, 1 @ Egg hatch
+ song se_tb_start, 1, 1 @ Battle - Poké Ball Tray slide in
+ song se_tb_kon, 1, 1 @ Battle - Poké Ball Tray ball sound
+ song se_tb_kara, 2, 2 @ Battle - Poké Ball Tray slide out
song se_bidoro, 1, 1
- song se_w085, 2, 2
- song se_w085b, 1, 1
- song se_w231, 1, 1
- song se_w171, 1, 1
- song se_w233, 1, 1
- song se_w233b, 1, 1
- song se_w145, 1, 1
- song se_w145b, 1, 1
- song se_w145c, 1, 1
- song se_w240, 1, 1
- song se_w015, 1, 1
- song se_w081, 1, 1
- song se_w081b, 1, 1
- song se_w088, 1, 1
- song se_w016, 2, 2
- song se_w016b, 2, 2
- song se_w003, 1, 1
- song se_w104, 1, 1
- song se_w013, 1, 1
- song se_w196, 1, 1
- song se_w086, 1, 1
- song se_w004, 1, 1
- song se_w025, 1, 1
- song se_w025b, 1, 1
- song se_w152, 1, 1
- song se_w026, 1, 1
- song se_w172, 1, 1
- song se_w172b, 1, 1
- song se_w053, 1, 1
- song se_w007, 1, 1
- song se_w092, 1, 1
- song se_w221, 1, 1
- song se_w221b, 2, 2
- song se_w052, 1, 1
- song se_w036, 2, 2
- song se_w059, 1, 1
- song se_w059b, 1, 1
- song se_w010, 1, 1
- song se_w011, 1, 1
- song se_w017, 1, 1
- song se_w019, 1, 1
- song se_w028, 1, 1
- song se_w013b, 1, 1
- song se_w044, 1, 1
- song se_w029, 1, 1
- song se_w057, 1, 1
- song se_w056, 1, 1
- song se_w250, 1, 1
- song se_w030, 1, 1
- song se_w039, 2, 2
- song se_w054, 1, 1
- song se_w077, 1, 1
- song se_w020, 2, 2
- song se_w082, 1, 1
- song se_w047, 1, 1
- song se_w195, 1, 1
- song se_w006, 1, 1
- song se_w091, 1, 1
- song se_w146, 1, 1
- song se_w120, 1, 1
- song se_w153, 1, 1
- song se_w071b, 1, 1
- song se_w071, 1, 1
- song se_w103, 1, 1
- song se_w062, 1, 1
- song se_w062b, 1, 1
- song se_w048, 1, 1
- song se_w187, 1, 1
- song se_w118, 1, 1
- song se_w155, 1, 1
- song se_w122, 1, 1
- song se_w060, 1, 1
- song se_w185, 1, 1
- song se_w014, 1, 1
- song se_w043, 1, 1
- song se_w207, 1, 1
- song se_w207b, 1, 1
- song se_w215, 1, 1
- song se_w109, 1, 1
- song se_w173, 1, 1
- song se_w280, 1, 1
- song se_w202, 1, 1
- song se_w060b, 1, 1
- song se_w076, 2, 2
- song se_w080, 1, 1
- song se_w100, 1, 1
- song se_w107, 1, 1
- song se_w166, 1, 1
- song se_w129, 1, 1
- song se_w115, 1, 1
- song se_w112, 1, 1
- song se_w197, 2, 2
- song se_w199, 1, 1
- song se_w236, 1, 1
- song se_w204, 1, 1
- song se_w268, 1, 1
- song se_w070, 1, 1
- song se_w063, 1, 1
- song se_w127, 1, 1
- song se_w179, 1, 1
- song se_w151, 1, 1
- song se_w201, 1, 1
- song se_w161, 1, 1
- song se_w161b, 1, 1
- song se_w227, 1, 1
- song se_w227b, 2, 2
- song se_w226, 1, 1
- song se_w208, 1, 1
- song se_w213, 1, 1
- song se_w213b, 1, 1
- song se_w234, 1, 1
- song se_w260, 1, 1
- song se_w328, 1, 1
- song se_w320, 1, 1
- song se_w255, 1, 1
- song se_w291, 1, 1
- song se_w089, 2, 2
- song se_w239, 2, 2
- song se_w230, 1, 1
- song se_w281, 1, 1
- song se_w327, 2, 2
- song se_w287, 1, 1
- song se_w257, 1, 1
- song se_w253, 1, 1
- song se_w258, 1, 1
- song se_w322, 2, 2
- song se_w298, 1, 1
- song se_w287b, 1, 1
- song se_w114, 1, 1
- song se_w063b, 1, 1
+ song se_w085, 2, 2 @ Thunderbolt
+ song se_w085b, 1, 1 @ Thunderbolt 2
+ song se_w231, 1, 1 @ Harden
+ song se_w171, 1, 1 @ Nightmare
+ song se_w233, 1, 1 @ Vital Throw
+ song se_w233b, 1, 1 @ Vital Throw 2
+ song se_w145, 1, 1 @ Bubble
+ song se_w145b, 1, 1 @ Bubble 2
+ song se_w145c, 1, 1 @ Bubble 3
+ song se_w240, 1, 1 @ Rain Dance
+ song se_w015, 1, 1 @ Cut
+ song se_w081, 1, 1 @ String Shot
+ song se_w081b, 1, 1 @ String Shot 2
+ song se_w088, 1, 1 @ Rock Throw
+ song se_w016, 2, 2 @ Gust
+ song se_w016b, 2, 2 @ Gust 2
+ song se_w003, 1, 1 @ DoubleSlap
+ song se_w104, 1, 1 @ Double Team
+ song se_w013, 1, 1 @ Razor Wind
+ song se_w196, 1, 1 @ Icy Wind
+ song se_w086, 1, 1 @ Thunder Wave
+ song se_w004, 1, 1 @ Comet Punch
+ song se_w025, 1, 1 @ Mega Kick
+ song se_w025b, 1, 1 @ Mega Kick 2
+ song se_w152, 1, 1 @ Crabhammer
+ song se_w026, 1, 1 @ Jump Kick
+ song se_w172, 1, 1 @ Flame Wheel
+ song se_w172b, 1, 1 @ Flame Wheel 2
+ song se_w053, 1, 1 @ Flamethrower
+ song se_w007, 1, 1 @ Fire Punch
+ song se_w092, 1, 1 @ Toxic
+ song se_w221, 1, 1 @ Sacred Fire
+ song se_w221b, 2, 2 @ Sacred Fire 2
+ song se_w052, 1, 1 @ Ember
+ song se_w036, 2, 2 @ Take Down
+ song se_w059, 1, 1 @ Blizzard
+ song se_w059b, 1, 1 @ Blizzard 2
+ song se_w010, 1, 1 @ Scratch
+ song se_w011, 1, 1 @ Vicegrip
+ song se_w017, 1, 1 @ Wing Attack
+ song se_w019, 1, 1 @ Fly
+ song se_w028, 1, 1 @ Sand-Attack
+ song se_w013b, 1, 1 @ Razor Wind 2
+ song se_w044, 1, 1 @ Bite
+ song se_w029, 1, 1 @ Headbutt
+ song se_w057, 1, 1 @ Surf
+ song se_w056, 1, 1 @ Hydro Pump
+ song se_w250, 1, 1 @ Whirlpool
+ song se_w030, 1, 1 @ Horn Attack
+ song se_w039, 2, 2 @ Tail Whip
+ song se_w054, 1, 1 @ Mist
+ song se_w077, 1, 1 @ PoisonPowder
+ song se_w020, 2, 2 @ Bind
+ song se_w082, 1, 1 @ Dragon Rage
+ song se_w047, 1, 1 @ Sing
+ song se_w195, 1, 1 @ Perish Song
+ song se_w006, 1, 1 @ Pay Day
+ song se_w091, 1, 1 @ Dig
+ song se_w146, 1, 1 @ Dizzy Punch
+ song se_w120, 1, 1 @ Self-Destruct
+ song se_w153, 1, 1 @ Explosion
+ song se_w071b, 1, 1 @ Absorb 2
+ song se_w071, 1, 1 @ Absorb
+ song se_w103, 1, 1 @ Screech
+ song se_w062, 1, 1 @ BubbleBeam
+ song se_w062b, 1, 1 @ BubbleBeam 2
+ song se_w048, 1, 1 @ Supersonic
+ song se_w187, 1, 1 @ Belly Drum
+ song se_w118, 1, 1 @ Metronome
+ song se_w155, 1, 1 @ Bonemerang
+ song se_w122, 1, 1 @ Lick
+ song se_w060, 1, 1 @ Psybeam
+ song se_w185, 1, 1 @ Faint Attack
+ song se_w014, 1, 1 @ Swords Dance
+ song se_w043, 1, 1 @ Leer
+ song se_w207, 1, 1 @ Swagger
+ song se_w207b, 1, 1 @ Swagger 2
+ song se_w215, 1, 1 @ Heal Bell
+ song se_w109, 1, 1 @ Confuse Ray
+ song se_w173, 1, 1 @ Snore
+ song se_w280, 1, 1 @ Brick Break
+ song se_w202, 1, 1 @ Giga Drain
+ song se_w060b, 1, 1 @ Psybeam 2
+ song se_w076, 2, 2 @ SolarBeam
+ song se_w080, 1, 1 @ Petal Dance
+ song se_w100, 1, 1 @ Teleport
+ song se_w107, 1, 1 @ Minimize
+ song se_w166, 1, 1 @ Sketch
+ song se_w129, 1, 1 @ Swift
+ song se_w115, 1, 1 @ Reflect
+ song se_w112, 1, 1 @ Barrier
+ song se_w197, 2, 2 @ Detect
+ song se_w199, 1, 1 @ Lock-On
+ song se_w236, 1, 1 @ Moonlight
+ song se_w204, 1, 1 @ Charm
+ song se_w268, 1, 1 @ Charge
+ song se_w070, 1, 1 @ Strength
+ song se_w063, 1, 1 @ Hyper Beam
+ song se_w127, 1, 1 @ Waterfall
+ song se_w179, 1, 1 @ Reversal
+ song se_w151, 1, 1 @ Acid Armor
+ song se_w201, 1, 1 @ Sandstorm
+ song se_w161, 1, 1 @ Tri-Attack
+ song se_w161b, 1, 1 @ Tri-Attack 2
+ song se_w227, 1, 1 @ Encore
+ song se_w227b, 2, 2 @ Encore 2
+ song se_w226, 1, 1 @ Baton Pass
+ song se_w208, 1, 1 @ Milk Drink
+ song se_w213, 1, 1 @ Attract
+ song se_w213b, 1, 1 @ Attract 2
+ song se_w234, 1, 1 @ Morning Sun
+ song se_w260, 1, 1 @ Flatter
+ song se_w328, 1, 1 @ Sand Tomb
+ song se_w320, 1, 1 @ GrassWhistle
+ song se_w255, 1, 1 @ Spit Up
+ song se_w291, 1, 1 @ Dive
+ song se_w089, 2, 2 @ Earthquake
+ song se_w239, 2, 2 @ Twister
+ song se_w230, 1, 1 @ Sweet Scent
+ song se_w281, 1, 1 @ Yawn
+ song se_w327, 2, 2 @ Sky Uppercut
+ song se_w287, 1, 1 @ Stat Increased
+ song se_w257, 1, 1 @ Heat Wave
+ song se_w253, 1, 1 @ Uproar
+ song se_w258, 1, 1 @ Hail
+ song se_w322, 2, 2 @ Cosmic Power
+ song se_w298, 1, 1 @ Teeter Dance
+ song se_w287b, 1, 1 @ Stat Decreased
+ song se_w114, 1, 1 @ Haze
+ song se_w063b, 1, 1 @ Hyper Beam 2
song song_248, 2, 2
song song_249, 2, 2
song song_250, 2, 2
@@ -350,125 +350,125 @@ gSongTable:: @ 845548C
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
song dummy_song_header, 0, 0
- song bgm_tetsuji, 0, 0
- song bgm_field13, 0, 0
- song bgm_kachi22, 0, 0
- song bgm_kachi2, 0, 0
- song bgm_kachi3, 0, 0
- song bgm_kachi5, 0, 0
- song bgm_pcc, 0, 0
- song bgm_nibi, 0, 0
- song bgm_suikun, 0, 0
- song bgm_dooro1, 0, 0
- song bgm_dooro_x1, 0, 0
- song bgm_dooro_x3, 0, 0
- song bgm_machi_s2, 0, 0
- song bgm_machi_s4, 0, 0
- song bgm_gim, 0, 0
- song bgm_naminori, 0, 0
- song bgm_dan01, 0, 0
- song bgm_fanfa1, 2, 2
- song bgm_me_asa, 2, 2
- song bgm_me_bachi, 2, 2
- song bgm_fanfa4, 2, 2
- song bgm_fanfa5, 2, 2
- song bgm_me_waza, 2, 2
- song bgm_bijyutu, 0, 0
- song bgm_dooro_x4, 0, 0
- song bgm_fune_kan, 0, 0
- song bgm_me_shinka, 2, 2
- song bgm_shinka, 0, 0
- song bgm_me_wasure, 2, 2
- song bgm_syoujoeye, 0, 0
- song bgm_boyeye, 0, 0
- song bgm_dan02, 0, 0
- song bgm_machi_s3, 0, 0
- song bgm_odamaki, 0, 0
- song bgm_b_tower, 0, 0
- song bgm_swimeye, 0, 0
- song bgm_dan03, 0, 0
- song bgm_me_kinomi, 2, 2
- song bgm_me_tama, 2, 2
- song bgm_me_b_big, 2, 2
- song bgm_me_b_small, 2, 2
- song bgm_me_zannen, 2, 2
- song bgm_bd_time, 0, 0
- song bgm_test1, 0, 0
- song bgm_test2, 0, 0
- song bgm_test3, 0, 0
- song bgm_test4, 0, 0
- song bgm_test, 0, 0
- song bgm_gomachi0, 0, 0
- song bgm_gotown, 0, 0
- song bgm_pokecen, 0, 0
- song bgm_nextroad, 0, 0
- song bgm_granroad, 0, 0
- song bgm_cycling, 0, 0
- song bgm_friendly, 0, 0
- song bgm_mishiro, 0, 0
- song bgm_tozan, 0, 0
- song bgm_girleye, 0, 0
- song bgm_minamo, 0, 0
- song bgm_ashroad, 0, 0
- song bgm_event0, 0, 0
- song bgm_deepdeep, 0, 0
- song bgm_kachi1, 0, 0
- song bgm_title3, 0, 0
- song bgm_demo1, 0, 0
- song bgm_girl_sup, 0, 0
- song bgm_hageshii, 0, 0
- song bgm_kakkoii, 0, 0
- song bgm_kazanbai, 0, 0
- song bgm_aqa_0, 0, 0
- song bgm_tsuretek, 0, 0
- song bgm_boy_sup, 0, 0
- song bgm_rainbow, 0, 0
- song bgm_ayasii, 0, 0
- song bgm_kachi4, 0, 0
- song bgm_ropeway, 0, 0
- song bgm_casino, 0, 0
- song bgm_hightown, 0, 0
- song bgm_safari, 0, 0
- song bgm_c_road, 0, 0
- song bgm_ajito, 0, 0
- song bgm_m_boat, 0, 0
- song bgm_m_dungon, 0, 0
- song bgm_finecity, 0, 0
- song bgm_machupi, 0, 0
- song bgm_p_school, 0, 0
- song bgm_dendou, 0, 0
- song bgm_tonekusa, 0, 0
- song bgm_maborosi, 0, 0
- song bgm_con_fan, 0, 0
- song bgm_contest0, 0, 0
- song bgm_mgm0, 0, 0
- song bgm_t_battle, 0, 0
- song bgm_ooame, 0, 0
- song bgm_hideri, 0, 0
- song bgm_runecity, 0, 0
- song bgm_con_k, 0, 0
- song bgm_eikou_r, 0, 0
- song bgm_karakuri, 0, 0
- song bgm_hutago, 0, 0
- song bgm_sitennou, 0, 0
- song bgm_yama_eye, 0, 0
- song bgm_conlobby, 0, 0
- song bgm_inter_v, 0, 0
- song bgm_daigo, 0, 0
- song bgm_thankfor, 0, 0
- song bgm_end, 0, 0
- song bgm_battle27, 0, 0
- song bgm_battle31, 0, 0
- song bgm_battle20, 0, 0
- song bgm_battle32, 0, 0
- song bgm_battle33, 0, 0
- song bgm_battle36, 0, 0
- song bgm_battle34, 0, 0
- song bgm_battle35, 0, 0
- song bgm_battle38, 0, 0
- song bgm_battle30, 0, 0
- song bgm_radio_tower_occupied, 0, 0
+ song bgm_tetsuji, 0, 0 @ Littleroot Town Test 'TETSUJI'
+ song bgm_field13, 0, 0 @ GSC - Route 38
+ song bgm_kachi22, 0, 0 @ Wild Pokémon Defeated
+ song bgm_kachi2, 0, 0 @ Wild Pokémon Defeated with Intro
+ song bgm_kachi3, 0, 0 @ Gym Leader Defeated
+ song bgm_kachi5, 0, 0 @ Victory! Elite Four
+ song bgm_pcc, 0, 0 @ Crystal - Pokémon Communication Center
+ song bgm_nibi, 0, 0 @ GSC - Viridian/Saffron/Pewter/etc
+ song bgm_suikun, 0, 0 @ Crystal - Battle! Legendary Beasts
+ song bgm_dooro1, 0, 0 @ Route 101
+ song bgm_dooro_x1, 0, 0 @ Route 110
+ song bgm_dooro_x3, 0, 0 @ Route 120
+ song bgm_machi_s2, 0, 0 @ Petalburg City
+ song bgm_machi_s4, 0, 0 @ Oldale Town
+ song bgm_gim, 0, 0 @ Gym
+ song bgm_naminori, 0, 0 @ Surfing
+ song bgm_dan01, 0, 0 @ Caves and Darkness
+ song bgm_fanfa1, 2, 2 @ Level Up!
+ song bgm_me_asa, 2, 2 @ Pokémon Healed
+ song bgm_me_bachi, 2, 2 @ Obtained a Badge!
+ song bgm_fanfa4, 2, 2 @ Obtained an Item!
+ song bgm_fanfa5, 2, 2 @ Your Pokémon Just Evolved!
+ song bgm_me_waza, 2, 2 @ Obtained a TM/HM!
+ song bgm_bijyutu, 0, 0 @ Lilycove Museum
+ song bgm_dooro_x4, 0, 0 @ Route 122/Intro
+ song bgm_fune_kan, 0, 0 @ Slateport Museum
+ song bgm_me_shinka, 2, 2 @ Evolution Intro
+ song bgm_shinka, 0, 0 @ Evolution
+ song bgm_me_wasure, 2, 2 @ Move Deleted
+ song bgm_syoujoeye, 0, 0 @ Encounter! Tuber
+ song bgm_boyeye, 0, 0 @ Encounter! Boy
+ song bgm_dan02, 0, 0 @ Abandoned Ship
+ song bgm_machi_s3, 0, 0 @ Fortree City
+ song bgm_odamaki, 0, 0 @ Professor Birch's Lab
+ song bgm_b_tower, 0, 0 @ Battle Tower (RS)
+ song bgm_swimeye, 0, 0 @ Encounter! Swimmer
+ song bgm_dan03, 0, 0 @ Meteor Falls
+ song bgm_me_kinomi, 2, 2 @ Obtained a Berry!
+ song bgm_me_tama, 2, 2 @ Awakening the Super-Ancient Pokémon
+ song bgm_me_b_big, 2, 2 @ Slots Jackpot!
+ song bgm_me_b_small, 2, 2 @ Slots Victory!
+ song bgm_me_zannen, 2, 2 @ Too bad!
+ song bgm_bd_time, 0, 0 @ Roulette!
+ song bgm_test1, 0, 0 @ Contest Test 1
+ song bgm_test2, 0, 0 @ Contest Test 2
+ song bgm_test3, 0, 0 @ Contest Test 3
+ song bgm_test4, 0, 0 @ Contest Test 4
+ song bgm_test, 0, 0 @ Encounter! Gentleman (Test?)
+ song bgm_gomachi0, 0, 0 @ Verdanturf Town
+ song bgm_gotown, 0, 0 @ Rustboro City
+ song bgm_pokecen, 0, 0 @ Pokémon Center
+ song bgm_nextroad, 0, 0 @ Route 104
+ song bgm_granroad, 0, 0 @ Route 119
+ song bgm_cycling, 0, 0 @ Cycling
+ song bgm_friendly, 0, 0 @ Pokémart
+ song bgm_mishiro, 0, 0 @ Littleroot Town
+ song bgm_tozan, 0, 0 @ Sky Pillar
+ song bgm_girleye, 0, 0 @ Encounter! Girl
+ song bgm_minamo, 0, 0 @ Lilycove City
+ song bgm_ashroad, 0, 0 @ Route 111
+ song bgm_event0, 0, 0 @ Help me!
+ song bgm_deepdeep, 0, 0 @ Underwater
+ song bgm_kachi1, 0, 0 @ Victory! Trainer
+ song bgm_title3, 0, 0 @ Title Screen
+ song bgm_demo1, 0, 0 @ Opening Movie
+ song bgm_girl_sup, 0, 0 @ Encounter! May
+ song bgm_hageshii, 0, 0 @ Encounter! Biker
+ song bgm_kakkoii, 0, 0 @ Encounter! Electric Trainer
+ song bgm_kazanbai, 0, 0 @ Route 113
+ song bgm_aqa_0, 0, 0 @ Encounter! Team Aqua
+ song bgm_tsuretek, 0, 0 @ Follow Me!
+ song bgm_boy_sup, 0, 0 @ Encounter! Brendan
+ song bgm_rainbow, 0, 0 @ Ever Grande City
+ song bgm_ayasii, 0, 0 @ Encounter! Psychic
+ song bgm_kachi4, 0, 0 @ Victory! Aqua/Magma Grunt
+ song bgm_ropeway, 0, 0 @ Cable Car
+ song bgm_casino, 0, 0 @ Game Corner
+ song bgm_hightown, 0, 0 @ Dewford Town
+ song bgm_safari, 0, 0 @ Safari Zone
+ song bgm_c_road, 0, 0 @ Victory Road
+ song bgm_ajito, 0, 0 @ Aqua/Magma Hideout
+ song bgm_m_boat, 0, 0 @ Sailing
+ song bgm_m_dungon, 0, 0 @ Mt. Pyre (Inside)
+ song bgm_finecity, 0, 0 @ Slateport City
+ song bgm_machupi, 0, 0 @ Mt. Pyte (Outside)
+ song bgm_p_school, 0, 0 @ Pokémon Trainer's School
+ song bgm_dendou, 0, 0 @ Hall of Fame
+ song bgm_tonekusa, 0, 0 @ Lavaridge Town
+ song bgm_maborosi, 0, 0 @ Sealed Chamber
+ song bgm_con_fan, 0, 0 @ You are the Champion!
+ song bgm_contest0, 0, 0 @ Pokémon Contest
+ song bgm_mgm0, 0, 0 @ Encounter! Team Magma
+ song bgm_t_battle, 0, 0 @ Opening Battle
+ song bgm_ooame, 0, 0 @ The Flood
+ song bgm_hideri, 0, 0 @ The Drought
+ song bgm_runecity, 0, 0 @ Sootopolis City
+ song bgm_con_k, 0, 0 @ Berry Blending Results
+ song bgm_eikou_r, 0, 0 @ Hall of Fame
+ song bgm_karakuri, 0, 0 @ Trick House
+ song bgm_hutago, 0, 0 @ Encounter! Kid
+ song bgm_sitennou, 0, 0 @ Encounter! Elite Four
+ song bgm_yama_eye, 0, 0 @ Encounter! Hiker
+ song bgm_conlobby, 0, 0 @ Contest Lobby
+ song bgm_inter_v, 0, 0 @ Encounter! Gabby and Ty
+ song bgm_daigo, 0, 0 @ Encounter! Wallace
+ song bgm_thankfor, 0, 0 @ Credits
+ song bgm_end, 0, 0 @ The End
+ song bgm_battle27, 0, 0 @ Battle! Wild Pokémon
+ song bgm_battle31, 0, 0 @ Battle! Team Aqua/Magma
+ song bgm_battle20, 0, 0 @ Battle! Trainer
+ song bgm_battle32, 0, 0 @ Battle! Gym Leader
+ song bgm_battle33, 0, 0 @ Battle! Champion
+ song bgm_battle36, 0, 0 @ Battle! Regi Trio
+ song bgm_battle34, 0, 0 @ Battle! Legendary Pokémon (dupe)
+ song bgm_battle35, 0, 0 @ Battle! Rival
+ song bgm_battle38, 0, 0 @ Battle! Elite Four
+ song bgm_battle30, 0, 0 @ Battle! Archie/Maxie
+ song bgm_radio_tower_occupied, 0, 0 @ GSC - Radio Tower Takeover!
.align 2
-dummy_song_header: @ 845632C
+dummy_song_header: @ 845632C
.byte 0, 0, 0, 0
diff --git a/sound/voice_groups.inc b/sound/voice_groups.inc
index d9e925956..1d7c46c83 100644
--- a/sound/voice_groups.inc
+++ b/sound/voice_groups.inc
@@ -9,7 +9,7 @@ voicegroup_pokemon_cry:: @ 842FC8
voice_square_2 2, 0, 0, 9, 2 @ 842FCD0
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FCDC
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FCE8
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 51, 235 @ 842FCF4
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 51, 235 @ 842FCF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD00
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD0C
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD18
@@ -17,7 +17,7 @@ voicegroup_pokemon_cry:: @ 842FC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD30
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD48
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 127 @ 842FD54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 127 @ 842FD54
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD60
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FD78
@@ -32,13 +32,13 @@ voicegroup_pokemon_cry:: @ 842FC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FDE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FDF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FDFC
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 149 @ 842FE08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 149 @ 842FE08
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE14
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE20
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE2C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 115 @ 842FE38
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 115 @ 842FE38
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE44
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 842FE50
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 842FE50
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE68
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE74
@@ -47,7 +47,7 @@ voicegroup_pokemon_cry:: @ 842FC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FE98
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FEA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FEB0
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 204, 193, 239 @ 842FEBC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 204, 193, 239 @ 842FEBC
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 842FEC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FED4
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FEE0
@@ -91,54 +91,54 @@ voicegroup_842FEF8:: @ 842FEF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430084
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430090
voice_square_1 0, 0, 0, 1, 6, 0 @ 843009C
- voice_directsound_no_resample 60, 0x40, DirectSoundWaveData_845AE14, 255, 0, 255, 242 @ 84300A8
+ voice_directsound_no_resample 60, 0x40, DirectSoundWaveData_SC88_DrumKitBassDrum, 255, 0, 255, 242 @ 84300A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84300B4
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845B2B4, 255, 0, 255, 242 @ 84300C0
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845B9A8, 255, 255, 255, 127 @ 84300CC
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845C238, 255, 0, 255, 242 @ 84300D8
- voice_directsound 48, 172, DirectSoundWaveData_845CAB0, 255, 210, 77, 204 @ 84300E4
- voice_directsound_no_resample 60, 207, DirectSoundWaveData_845DAF0, 255, 127, 0, 188 @ 84300F0
- voice_directsound 51, 0x31, DirectSoundWaveData_845CAB0, 255, 216, 77, 204 @ 84300FC
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare1, 255, 0, 255, 242 @ 84300C0
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitHandClap, 255, 255, 255, 127 @ 84300CC
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare2, 255, 0, 255, 242 @ 84300D8
+ voice_directsound 48, 172, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 210, 77, 204 @ 84300E4
+ voice_directsound_no_resample 60, 207, DirectSoundWaveData_SC88_DrumKitClosedHiHat, 255, 127, 0, 188 @ 84300F0
+ voice_directsound 51, 0x31, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 216, 77, 204 @ 84300FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430108
- voice_directsound 54, 187, DirectSoundWaveData_845CAB0, 255, 216, 77, 204 @ 8430114
- voice_directsound_no_resample 60, 207, DirectSoundWaveData_845DF04, 255, 242, 141, 0 @ 8430120
- voice_directsound 57, 197, DirectSoundWaveData_845CAB0, 255, 210, 77, 204 @ 843012C
- voice_directsound 60, 207, DirectSoundWaveData_845CAB0, 255, 204, 77, 204 @ 8430138
+ voice_directsound 54, 187, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 216, 77, 204 @ 8430114
+ voice_directsound_no_resample 60, 207, DirectSoundWaveData_SC88_DrumKitOpenHiHat, 255, 242, 141, 0 @ 8430120
+ voice_directsound 57, 197, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 210, 77, 204 @ 843012C
+ voice_directsound 60, 207, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 204, 77, 204 @ 8430138
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430144
- voice_directsound 62, 212, DirectSoundWaveData_845CAB0, 255, 204, 77, 204 @ 8430150
+ voice_directsound 62, 212, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 204, 77, 204 @ 8430150
voice_square_1 0, 2, 0, 0, 15, 0 @ 843015C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430168
- voice_directsound_no_resample 70, 177, DirectSoundWaveData_845ED34, 255, 165, 103, 231 @ 8430174
- voice_directsound_no_resample 32, 162, DirectSoundWaveData_845FCC8, 255, 127, 77, 204 @ 8430180
- voice_directsound_no_resample 60, 142, DirectSoundWaveData_846057C, 255, 235, 0, 165 @ 843018C
+ voice_directsound_no_resample 70, 177, DirectSoundWaveData_HiHatRattle, 255, 165, 103, 231 @ 8430174
+ voice_directsound_no_resample 32, 162, DirectSoundWaveData_SC88_DrumKitCabasa, 255, 127, 77, 204 @ 8430180
+ voice_directsound_no_resample 60, 142, DirectSoundWaveData_SC88_DrumKitCrashCymbal2, 255, 235, 0, 165 @ 843018C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430198
- voice_directsound_no_resample 30, 182, DirectSoundWaveData_8460E60, 255, 246, 0, 216 @ 84301A4
+ voice_directsound_no_resample 30, 182, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 255, 246, 0, 216 @ 84301A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84301B0
- voice_directsound_no_resample 30, 182, DirectSoundWaveData_8460E60, 255, 246, 0, 216 @ 84301BC
- voice_directsound_no_resample 30, 182, DirectSoundWaveData_8460E60, 8, 0, 255, 216 @ 84301C8
+ voice_directsound_no_resample 30, 182, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 255, 246, 0, 216 @ 84301BC
+ voice_directsound_no_resample 30, 182, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 8, 0, 255, 216 @ 84301C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84301D4
- voice_directsound_no_resample 72, 232, DirectSoundWaveData_8461D8C, 255, 0, 255, 0 @ 84301E0
+ voice_directsound_no_resample 72, 232, DirectSoundWaveData_SC88_DrumKitMuteHiConga, 255, 0, 255, 0 @ 84301E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84301EC
- voice_directsound_no_resample 72, 222, DirectSoundWaveData_84622A4, 255, 0, 255, 0 @ 84301F8
+ voice_directsound_no_resample 72, 222, DirectSoundWaveData_SC88_DrumKitLowConga, 255, 0, 255, 0 @ 84301F8
.align 2
voicegroup_8430204:: @ 8430204
- voice_directsound 60, 0, DirectSoundWaveData_846286C, 255, 252, 0, 239 @ 8430204
- voice_directsound 60, 0, DirectSoundWaveData_84637CC, 255, 250, 0, 221 @ 8430210
- voice_directsound 60, 0, DirectSoundWaveData_8464E2C, 255, 250, 0, 221 @ 843021C
- voice_directsound 60, 0, DirectSoundWaveData_8466388, 255, 247, 0, 221 @ 8430228
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SteelStringGuitar, 255, 252, 0, 239 @ 8430204
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano3, 255, 250, 0, 221 @ 8430210
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano2, 255, 250, 0, 221 @ 843021C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_UnisonSlap, 255, 247, 0, 221 @ 8430228
.align 2
voicegroup_8430234:: @ 8430234
- voice_directsound 60, 0, DirectSoundWaveData_8466F14, 255, 0, 255, 196 @ 8430234
- voice_directsound 60, 0, DirectSoundWaveData_846A4B8, 255, 0, 255, 196 @ 8430240
- voice_directsound 60, 0, DirectSoundWaveData_846C7D4, 255, 0, 255, 196 @ 843024C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Strings, 255, 0, 255, 196 @ 8430234
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_StringsPlusFlute, 255, 0, 255, 196 @ 8430240
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_StringsPlusHorn, 255, 0, 255, 196 @ 843024C
.align 2
voicegroup_8430258:: @ 8430258
- voice_directsound 60, 0, DirectSoundWaveData_846FEA0, 255, 0, 193, 127 @ 8430258
- voice_directsound 60, 0, DirectSoundWaveData_84711F0, 255, 0, 193, 127 @ 8430264
- voice_directsound 60, 0, DirectSoundWaveData_8472700, 255, 0, 193, 127 @ 8430270
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Trumpet, 255, 0, 193, 127 @ 8430258
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Trombone, 255, 0, 193, 127 @ 8430264
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Tuba, 255, 0, 193, 127 @ 8430270
voice_square_1_alt 38, 2, 1, 0, 0, 0 @ 843027C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430288
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430294
@@ -270,13 +270,13 @@ voicegroup_8430258:: @ 8430258
.align 2
voicegroup_843087C:: @ 843087
- voice_directsound 60, 0, DirectSoundWaveData_8473B20, 255, 0, 255, 165 @ 843087C
- voice_directsound 60, 0, DirectSoundWaveData_8474BBC, 255, 0, 255, 165 @ 8430888
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_CupMutedTrumpet, 255, 0, 255, 165 @ 843087C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_MutedTrumpet3, 255, 0, 255, 165 @ 8430888
.align 2
voicegroup_8430894:: @ 8430894
- voice_directsound 60, 0, DirectSoundWaveData_8475C18, 255, 0, 224, 165 @ 8430894
- voice_directsound 60, 0, DirectSoundWaveData_847CBAC, 255, 0, 218, 165 @ 84308A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FrenchHorns, 255, 0, 224, 165 @ 8430894
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WideFrenchHorns, 255, 0, 218, 165 @ 84308A0
.align 2
voicegroup_84308AC:: @ 84308AC
@@ -294,7 +294,7 @@ voicegroup_84308AC:: @ 84308AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430930
voice_square_1 0, 2, 0, 0, 15, 0 @ 843093C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430948
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 216, 90, 242 @ 8430954
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 216, 90, 242 @ 8430954
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430960
voice_square_1 0, 2, 0, 0, 15, 0 @ 843096C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430978
@@ -326,8 +326,8 @@ voicegroup_84308AC:: @ 84308AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430AB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430ABC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430AC8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 204 @ 8430AD4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8430AE0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 204 @ 8430AD4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8430AE0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8430AEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430AF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430B04
@@ -391,7 +391,7 @@ voicegroup_8430C9C:: @ 8430C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430D98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430DA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430DB0
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 149 @ 8430DBC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 149 @ 8430DBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430DC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430DD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430DE0
@@ -402,7 +402,7 @@ voicegroup_8430C9C:: @ 8430C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430E1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430E28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430E34
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 149 @ 8430E40
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 149 @ 8430E40
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430E4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430E58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430E64
@@ -440,7 +440,7 @@ voicegroup_8430C9C:: @ 8430C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430FE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430FF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8430FFC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8431008
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8431008
voice_programmable_wave_alt ProgrammableWaveData_84553BC, 0, 7, 15, 1 @ 8431014
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431020
voice_square_1 0, 2, 0, 0, 15, 0 @ 843102C
@@ -500,18 +500,18 @@ voicegroup_8430C9C:: @ 8430C9C
voicegroup_843129C:: @ 843129C
voice_keysplit_all voicegroup_842FEF8 @ 843129C
voice_keysplit voicegroup_8430204, KeySplitTable_8455224 @ 84312A8
- voice_directsound 60, 0, DirectSoundWaveData_8497134, 255, 178, 180, 165 @ 84312B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WaspySynth, 255, 178, 180, 165 @ 84312B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84312C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84312CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84312D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84312E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84312F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84312FC
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 51, 235 @ 8431308
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 51, 235 @ 8431308
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431314
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431320
voice_square_1 0, 2, 0, 0, 15, 0 @ 843132C
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 8431338
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 8431338
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431344
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431350
voice_square_1 0, 2, 0, 0, 15, 0 @ 843135C
@@ -536,7 +536,7 @@ voicegroup_843129C:: @ 843129C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431440
voice_square_1 0, 2, 0, 0, 15, 0 @ 843144C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431458
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 8431464
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 8431464
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431470
voice_square_1 0, 2, 0, 0, 15, 0 @ 843147C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431488
@@ -544,8 +544,8 @@ voicegroup_843129C:: @ 843129C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84314A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84314AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84314B8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 204 @ 84314C4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 84314D0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 204 @ 84314C4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 84314D0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84314DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84314E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84314F4
@@ -571,7 +571,7 @@ voicegroup_843129C:: @ 843129C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84315E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84315F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84315FC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8431608
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8431608
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431614
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431620
voice_square_1 0, 2, 0, 0, 15, 0 @ 843162C
@@ -650,7 +650,7 @@ voicegroup_8431764:: @ 8431764
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431974
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431980
voice_square_1 0, 2, 0, 0, 15, 0 @ 843198C
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8431998
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8431998
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84319A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84319B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84319BC
@@ -720,7 +720,7 @@ voicegroup_8431B9C:: @ 8431B9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431C98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431CA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431CB0
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 149 @ 8431CBC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 149 @ 8431CBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431CC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431CD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431CE0
@@ -742,8 +742,8 @@ voicegroup_8431B9C:: @ 8431B9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431DA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431DAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431DB8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 8431DC4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8431DD0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 8431DC4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8431DD0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8431DDC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431DF4
@@ -769,7 +769,7 @@ voicegroup_8431B9C:: @ 8431B9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431EE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431EF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431EFC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8431F08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8431F08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431F14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431F20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8431F2C
@@ -819,7 +819,7 @@ voicegroup_8431F98:: @ 8431F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432118
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432124
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432130
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 149 @ 843213C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 149 @ 843213C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432148
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432154
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432160
@@ -840,7 +840,7 @@ voicegroup_8431F98:: @ 8431F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432214
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432220
voice_square_1 0, 2, 0, 0, 15, 0 @ 843222C
- voice_directsound 60, 0, DirectSoundWaveData_84A5F58, 255, 0, 255, 165 @ 8432238
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_AccordianFr, 255, 0, 255, 165 @ 8432238
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432244
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432250
voice_square_1 0, 2, 0, 0, 15, 0 @ 843225C
@@ -857,7 +857,7 @@ voicegroup_8431F98:: @ 8431F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 84322E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84322EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84322F8
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8432304
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8432304
voice_programmable_wave ProgrammableWaveData_84553BC, 0, 7, 15, 1 @ 8432310
voice_square_1 0, 2, 0, 0, 15, 0 @ 843231C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432328
@@ -915,11 +915,11 @@ voicegroup_84323E8:: @ 84323E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432574
voice_noise_alt 0, 0, 2, 0, 2 @ 8432580
voice_noise_alt 0, 0, 1, 0, 1 @ 843258C
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845AE14, 255, 0, 255, 242 @ 8432598
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitBassDrum, 255, 0, 255, 242 @ 8432598
voice_square_1 0, 2, 0, 0, 15, 0 @ 84325A4
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845B2B4, 255, 0, 255, 242 @ 84325B0
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare1, 255, 0, 255, 242 @ 84325B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84325BC
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845C238, 255, 0, 255, 242 @ 84325C8
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare2, 255, 0, 255, 242 @ 84325C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84325D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84325E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84325EC
@@ -933,7 +933,7 @@ voicegroup_84323E8:: @ 84323E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843264C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432658
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432664
- voice_directsound_no_resample 32, 202, DirectSoundWaveData_845FCC8, 255, 127, 77, 204 @ 8432670
+ voice_directsound_no_resample 32, 202, DirectSoundWaveData_SC88_DrumKitCabasa, 255, 127, 77, 204 @ 8432670
voice_square_1 0, 2, 0, 0, 15, 0 @ 843267C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432688
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432694
@@ -941,9 +941,9 @@ voicegroup_84323E8:: @ 84323E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84326AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84326B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84326C4
- voice_directsound_no_resample 72, 194, DirectSoundWaveData_8461D8C, 255, 0, 255, 0 @ 84326D0
+ voice_directsound_no_resample 72, 194, DirectSoundWaveData_SC88_DrumKitMuteHiConga, 255, 0, 255, 0 @ 84326D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84326DC
- voice_directsound_no_resample 72, 190, DirectSoundWaveData_84622A4, 255, 0, 255, 0 @ 84326E8
+ voice_directsound_no_resample 72, 190, DirectSoundWaveData_SC88_DrumKitLowConga, 255, 0, 255, 0 @ 84326E8
.align 2
voicegroup_84326F4:: @ 84326F4
@@ -992,8 +992,8 @@ voicegroup_84326F4:: @ 84326F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84328EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84328F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432904
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 8432910
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 204 @ 843291C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 8432910
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 204 @ 843291C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432928
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8432934
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432940
@@ -1020,7 +1020,7 @@ voicegroup_84326F4:: @ 84326F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432A3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432A48
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432A54
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8432A60
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8432A60
voice_programmable_wave ProgrammableWaveData_84553BC, 0, 7, 15, 0 @ 8432A6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432A78
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432A84
@@ -1086,7 +1086,7 @@ voicegroup_8432B38:: @ 8432B38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432D30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432D3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432D48
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 8432D54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 8432D54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432D60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432D6C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8432D78
@@ -1114,7 +1114,7 @@ voicegroup_8432B38:: @ 8432B38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432E80
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432E8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432E98
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8432EA4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8432EA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432EB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432EBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8432EC8
@@ -1217,7 +1217,7 @@ voicegroup_8433138:: @ 8433138
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433330
voice_square_1 0, 2, 0, 0, 15, 0 @ 843333C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433348
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 8433354
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 8433354
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433360
voice_square_1 0, 2, 0, 0, 15, 0 @ 843336C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8433378
@@ -1245,7 +1245,7 @@ voicegroup_8433138:: @ 8433138
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433480
voice_square_1 0, 2, 0, 0, 15, 0 @ 843348C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433498
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 84334A4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 84334A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84334B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84334BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84334C8
@@ -1305,7 +1305,7 @@ voicegroup_8433534:: @ 8433534
voice_square_1 0, 2, 0, 0, 15, 0 @ 843372C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433738
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433744
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 8433750
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 8433750
voice_square_1 0, 2, 0, 0, 15, 0 @ 843375C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433768
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8433774
@@ -1397,7 +1397,7 @@ voicegroup_8433948:: @ 8433948
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433B58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433B64
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433B70
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8433B7C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8433B7C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8433B88
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433B94
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433BA0
@@ -1426,7 +1426,7 @@ voicegroup_8433BAC:: @ 8433BAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433C90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433CA8
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8433CB4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8433CB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433CC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433CCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433CD8
@@ -1440,11 +1440,11 @@ voicegroup_8433BAC:: @ 8433BAC
voice_programmable_wave_alt ProgrammableWaveData_84553FC, 0, 7, 15, 0 @ 8433D38
voice_programmable_wave_alt ProgrammableWaveData_84553FC, 0, 7, 15, 1 @ 8433D44
voice_square_1_alt 0, 0, 0, 0, 7, 0 @ 8433D50
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845AE14, 255, 0, 255, 242 @ 8433D5C
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitBassDrum, 255, 0, 255, 242 @ 8433D5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433D68
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845B2B4, 255, 0, 255, 242 @ 8433D74
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare1, 255, 0, 255, 242 @ 8433D74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433D80
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845C238, 255, 0, 255, 242 @ 8433D8C
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare2, 255, 0, 255, 242 @ 8433D8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433D98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433DA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433DB0
@@ -1458,7 +1458,7 @@ voicegroup_8433BAC:: @ 8433BAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E28
- voice_directsound_no_resample 32, 162, DirectSoundWaveData_845FCC8, 255, 127, 77, 204 @ 8433E34
+ voice_directsound_no_resample 32, 162, DirectSoundWaveData_SC88_DrumKitCabasa, 255, 127, 77, 204 @ 8433E34
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E40
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E58
@@ -1466,9 +1466,9 @@ voicegroup_8433BAC:: @ 8433BAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E70
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433E88
- voice_directsound_no_resample 72, 195, DirectSoundWaveData_8461D8C, 255, 0, 255, 0 @ 8433E94
+ voice_directsound_no_resample 72, 195, DirectSoundWaveData_SC88_DrumKitMuteHiConga, 255, 0, 255, 0 @ 8433E94
voice_square_1 0, 2, 0, 0, 15, 0 @ 8433EA0
- voice_directsound_no_resample 72, 189, DirectSoundWaveData_84622A4, 255, 0, 255, 0 @ 8433EAC
+ voice_directsound_no_resample 72, 189, DirectSoundWaveData_SC88_DrumKitLowConga, 255, 0, 255, 0 @ 8433EAC
.align 2
voicegroup_8433EB8:: @ 8433EB8
@@ -1507,7 +1507,7 @@ voicegroup_8433EB8:: @ 8433EB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434038
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434044
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434050
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 149 @ 843405C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 149 @ 843405C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434068
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434074
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434080
@@ -1518,7 +1518,7 @@ voicegroup_8433EB8:: @ 8433EB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84340BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84340C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84340D4
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 84340E0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 84340E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84340EC
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84340F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434104
@@ -1609,9 +1609,9 @@ voicegroup_84342E4:: @ 84342E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84344DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84344E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84344F4
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 8434500
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 8434500
voice_square_1 0, 2, 0, 0, 15, 0 @ 843450C
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8434518
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8434518
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8434524
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434530
voice_square_1 0, 2, 0, 0, 15, 0 @ 843453C
@@ -1637,7 +1637,7 @@ voicegroup_84342E4:: @ 84342E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843462C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434638
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434644
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8434650
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8434650
voice_square_1 0, 2, 0, 0, 15, 0 @ 843465C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434668
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434674
@@ -1705,7 +1705,7 @@ voicegroup_8434728:: @ 8434728
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434938
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434944
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434950
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 843495C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 843495C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434968
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434974
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434980
@@ -1731,7 +1731,7 @@ voicegroup_8434728:: @ 8434728
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434A70
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434A7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434A88
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8434A94
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8434A94
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434AA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434AAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434AB8
@@ -1792,7 +1792,7 @@ voicegroup_8434B18:: @ 8434B18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434D28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434D34
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434D40
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8434D4C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8434D4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434D58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434D64
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434D70
@@ -1846,7 +1846,7 @@ voicegroup_8434F14:: @ 8434F14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434F8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434FA4
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 8434FB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 8434FB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434FBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434FC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8434FD4
@@ -1871,7 +1871,7 @@ voicegroup_8434F14:: @ 8434F14
voice_square_1 0, 2, 0, 0, 15, 0 @ 84350B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84350C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84350D0
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 84350DC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 84350DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84350E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84350F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435100
@@ -1981,7 +1981,7 @@ voicegroup_8435514:: @ 8435514
voice_square_1 0, 2, 0, 0, 15, 0 @ 84355BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84355C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84355D4
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 127 @ 84355E0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 127 @ 84355E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84355EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84355F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435604
@@ -2000,7 +2000,7 @@ voicegroup_8435514:: @ 8435514
voice_square_1 0, 2, 0, 0, 15, 0 @ 84356A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84356AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84356B8
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 84356C4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 84356C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84356D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84356DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84356E8
@@ -2064,7 +2064,7 @@ voicegroup_84358F8:: @ 84358F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843597C
voice_square_2_alt 2, 0, 2, 0, 0 @ 8435988
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435994
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 216, 90, 242 @ 84359A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 216, 90, 242 @ 84359A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84359AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84359B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84359C4
@@ -2095,9 +2095,9 @@ voicegroup_84358F8:: @ 84358F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435AF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435AFC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435B08
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 8435B14
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 8435B14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435B20
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8435B2C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8435B2C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8435B38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435B44
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435B50
@@ -2123,7 +2123,7 @@ voicegroup_84358F8:: @ 84358F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435C40
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435C4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435C58
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8435C64
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8435C64
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435C70
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435C7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435C88
@@ -2155,10 +2155,10 @@ voicegroup_8435D18:: @ 8435D18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435D9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435DA8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435DB4
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 216, 90, 242 @ 8435DC0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 216, 90, 242 @ 8435DC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435DCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435DD8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 37, 165, 180, 127 @ 8435DE4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 37, 165, 180, 127 @ 8435DE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435DF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435DFC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435E08
@@ -2187,8 +2187,8 @@ voicegroup_8435D18:: @ 8435D18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435F1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435F28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435F34
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 8435F40
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8435F4C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 8435F40
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8435F4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435F58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435F64
voice_square_1 0, 2, 0, 0, 15, 0 @ 8435F70
@@ -2234,12 +2234,12 @@ voicegroup_8435FAC:: @ 8435FAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843612C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436138
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436144
- voice_directsound 60, 0, DirectSoundWaveData_849F40C, 255, 165, 154, 127 @ 8436150
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_JPSuperSaw, 255, 165, 154, 127 @ 8436150
voice_square_1 0, 2, 0, 0, 15, 0 @ 843615C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436168
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436174
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436180
- voice_directsound_no_resample 60, 192, DirectSoundWaveData_845C238, 255, 0, 255, 242 @ 843618C
+ voice_directsound_no_resample 60, 192, DirectSoundWaveData_SC88_DrumKitSnare2, 255, 0, 255, 242 @ 843618C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436198
voice_square_1 0, 2, 0, 0, 15, 0 @ 84361A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84361B0
@@ -2253,17 +2253,17 @@ voicegroup_8435FAC:: @ 8435FAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436210
voice_square_1 0, 2, 0, 0, 15, 0 @ 843621C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436228
- voice_directsound_no_resample 32, 177, DirectSoundWaveData_845FCC8, 255, 127, 77, 204 @ 8436234
+ voice_directsound_no_resample 32, 177, DirectSoundWaveData_SC88_DrumKitCabasa, 255, 127, 77, 204 @ 8436234
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436240
voice_square_1 0, 2, 0, 0, 15, 0 @ 843624C
- voice_directsound_no_resample 30, 182, DirectSoundWaveData_8460E60, 8, 0, 255, 216 @ 8436258
+ voice_directsound_no_resample 30, 182, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 8, 0, 255, 216 @ 8436258
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436264
- voice_directsound_no_resample 30, 182, DirectSoundWaveData_8460E60, 255, 246, 0, 216 @ 8436270
+ voice_directsound_no_resample 30, 182, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 255, 246, 0, 216 @ 8436270
voice_square_1 0, 2, 0, 0, 15, 0 @ 843627C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436288
- voice_directsound_no_resample 72, 207, DirectSoundWaveData_8461D8C, 255, 0, 255, 0 @ 8436294
+ voice_directsound_no_resample 72, 207, DirectSoundWaveData_SC88_DrumKitMuteHiConga, 255, 0, 255, 0 @ 8436294
voice_square_1 0, 2, 0, 0, 15, 0 @ 84362A0
- voice_directsound_no_resample 72, 202, DirectSoundWaveData_84622A4, 255, 0, 255, 0 @ 84362AC
+ voice_directsound_no_resample 72, 202, DirectSoundWaveData_SC88_DrumKitLowConga, 255, 0, 255, 0 @ 84362AC
.align 2
voicegroup_84362B8:: @ 84362B8
@@ -2302,7 +2302,7 @@ voicegroup_84362B8:: @ 84362B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436438
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436444
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436450
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 250, 0, 149 @ 843645C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 250, 0, 149 @ 843645C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436468
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436474
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436480
@@ -2340,7 +2340,7 @@ voicegroup_84362B8:: @ 84362B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436600
voice_square_1 0, 2, 0, 0, 15, 0 @ 843660C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436618
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8436624
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8436624
voice_programmable_wave ProgrammableWaveData_84553BC, 0, 7, 15, 1 @ 8436630
voice_square_1 0, 2, 0, 0, 15, 0 @ 843663C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436648
@@ -2433,7 +2433,7 @@ voicegroup_84368B8:: @ 84368B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436A38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436A44
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436A50
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 149 @ 8436A5C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 149 @ 8436A5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436A68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436A74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436A80
@@ -2444,7 +2444,7 @@ voicegroup_84368B8:: @ 84368B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436ABC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436AC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436AD4
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 8436AE0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 8436AE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436AEC
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8436AF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436B04
@@ -2471,7 +2471,7 @@ voicegroup_84368B8:: @ 84368B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436C00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436C0C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436C18
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 127, 231, 127 @ 8436C24
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 127, 231, 127 @ 8436C24
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436C30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436C3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436C48
@@ -2519,7 +2519,7 @@ voicegroup_8436C9C:: @ 8436C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E34
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8436E40
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8436E40
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E64
@@ -2529,7 +2529,7 @@ voicegroup_8436C9C:: @ 8436C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436E94
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436EA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436EAC
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8436EB8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8436EB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436EC4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436ED0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8436EDC
@@ -2557,7 +2557,7 @@ voicegroup_8436C9C:: @ 8436C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436FE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436FF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8436FFC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 8437008
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 8437008
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437014
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437020
voice_square_1 0, 2, 0, 0, 15, 0 @ 843702C
@@ -2618,7 +2618,7 @@ voicegroup_843708C:: @ 843708C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843729C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84372A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84372B4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 84372C0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 84372C0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84372CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84372D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84372E4
@@ -2692,7 +2692,7 @@ voicegroup_8437488:: @ 8437488
voice_square_1 0, 2, 0, 0, 15, 0 @ 84375F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84375FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437608
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 8437614
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 8437614
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437620
voice_square_1 0, 2, 0, 0, 15, 0 @ 843762C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437638
@@ -2704,8 +2704,8 @@ voicegroup_8437488:: @ 8437488
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437680
voice_square_1 0, 2, 0, 0, 15, 0 @ 843768C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437698
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 84376A4
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 84376B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 84376A4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 84376B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84376BC
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84376C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84376D4
@@ -2804,7 +2804,7 @@ voicegroup_8437A88:: @ 8437A88
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437B0C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437B18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437B24
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 216, 90, 242 @ 8437B30
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 216, 90, 242 @ 8437B30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437B3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437B48
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437B54
@@ -2836,8 +2836,8 @@ voicegroup_8437A88:: @ 8437A88
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437C8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437C98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437CA4
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 8437CB0
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8437CBC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 8437CB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8437CBC
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8437CC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437CD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437CE0
@@ -2899,7 +2899,7 @@ voicegroup_8437EB4:: @ 8437EB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437F5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437F68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437F74
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 127 @ 8437F80
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 127 @ 8437F80
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437F8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8437FA4
@@ -2920,7 +2920,7 @@ voicegroup_8437EB4:: @ 8437EB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438058
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438064
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438070
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 843807C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 843807C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438088
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438094
voice_square_1 0, 2, 0, 0, 15, 0 @ 84380A0
@@ -2984,14 +2984,14 @@ voicegroup_843828C:: @ 843828C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438334
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438340
voice_square_1 0, 2, 0, 0, 15, 0 @ 843834C
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 8438358
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 8438358
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438364
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438370
voice_square_1 0, 2, 0, 0, 15, 0 @ 843837C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438388
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438394
voice_square_1 0, 2, 0, 0, 15, 0 @ 84383A0
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 84383AC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 84383AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84383B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84383C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84383D0
@@ -3003,7 +3003,7 @@ voicegroup_843828C:: @ 843828C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438418
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438424
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438430
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 843843C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 843843C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438448
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438454
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438460
@@ -3040,7 +3040,7 @@ voicegroup_843828C:: @ 843828C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84385D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84385E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84385EC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 84385F8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 84385F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438604
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438610
voice_square_1 0, 2, 0, 0, 15, 0 @ 843861C
@@ -3115,14 +3115,14 @@ voicegroup_843888C:: @ 843888C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438934
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438940
voice_square_1 0, 2, 0, 0, 15, 0 @ 843894C
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 8438958
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 8438958
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438964
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438970
voice_square_1 0, 2, 0, 0, 15, 0 @ 843897C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438988
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438994
voice_square_1 0, 2, 0, 0, 15, 0 @ 84389A0
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 84389AC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 84389AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84389B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84389C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84389D0
@@ -3134,7 +3134,7 @@ voicegroup_843888C:: @ 843888C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438A18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438A24
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438A30
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 8438A3C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 8438A3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438A48
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438A54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438A60
@@ -3171,7 +3171,7 @@ voicegroup_843888C:: @ 843888C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438BD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438BE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438BEC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8438BF8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8438BF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438C04
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438C10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438C1C
@@ -3246,14 +3246,14 @@ voicegroup_8438E8C:: @ 8438E8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F34
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F40
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F4C
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 8438F58
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 8438F58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F64
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F70
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F88
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438F94
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438FA0
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8438FAC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8438FAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438FB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438FC4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8438FD0
@@ -3265,7 +3265,7 @@ voicegroup_8438E8C:: @ 8438E8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439018
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439024
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439030
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 843903C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 843903C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439048
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439054
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439060
@@ -3302,7 +3302,7 @@ voicegroup_8438E8C:: @ 8438E8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84391D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84391E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84391EC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 84391F8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 84391F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439204
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439210
voice_square_1 0, 2, 0, 0, 15, 0 @ 843921C
@@ -3377,14 +3377,14 @@ voicegroup_843948C:: @ 843948C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439534
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439540
voice_square_1 0, 2, 0, 0, 15, 0 @ 843954C
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 8439558
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 8439558
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439564
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439570
voice_square_1 0, 2, 0, 0, 15, 0 @ 843957C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439588
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439594
voice_square_1 0, 2, 0, 0, 15, 0 @ 84395A0
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 84395AC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 84395AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84395B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84395C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84395D0
@@ -3396,7 +3396,7 @@ voicegroup_843948C:: @ 843948C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439618
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439624
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439630
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 843963C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 843963C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439648
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439654
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439660
@@ -3433,7 +3433,7 @@ voicegroup_843948C:: @ 843948C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84397D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84397E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84397EC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 84397F8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 84397F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439804
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439810
voice_square_1 0, 2, 0, 0, 15, 0 @ 843981C
@@ -3523,7 +3523,7 @@ voicegroup_8439A8C:: @ 8439A8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439BF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439C00
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 149 @ 8439C0C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 149 @ 8439C0C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439C18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439C24
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439C30
@@ -3564,7 +3564,7 @@ voicegroup_8439A8C:: @ 8439A8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439DD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439DE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439DEC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 8439DF8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 8439DF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439E04
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439E10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439E1C
@@ -3610,7 +3610,7 @@ voicegroup_8439E58:: @ 8439E58
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439FD8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439FE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8439FF0
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 224 @ 8439FFC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 224 @ 8439FFC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A008
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A014
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A020
@@ -3620,7 +3620,7 @@ voicegroup_8439E58:: @ 8439E58
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A050
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A05C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A068
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 843A074
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 843A074
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A080
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A08C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843A098
@@ -3648,7 +3648,7 @@ voicegroup_8439E58:: @ 8439E58
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A1A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A1AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A1B8
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843A1C4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843A1C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A1D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A1DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A1E8
@@ -3676,7 +3676,7 @@ voicegroup_843A224:: @ 843A224
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A2CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A2D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A2E4
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 843A2F0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 843A2F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A2FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A308
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A314
@@ -3697,7 +3697,7 @@ voicegroup_843A224:: @ 843A224
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A3C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A3D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A3E0
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 216 @ 843A3EC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 216 @ 843A3EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A3F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A404
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A410
@@ -3732,7 +3732,7 @@ voicegroup_843A224:: @ 843A224
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A56C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A578
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A584
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843A590
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843A590
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A59C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A5A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A5B4
@@ -3795,7 +3795,7 @@ voicegroup_843A824:: @ 843A824
voice_square_1_alt 0, 0, 1, 1, 9, 0 @ 843A83C
voice_square_2_alt 2, 0, 2, 6, 3 @ 843A848
voice_programmable_wave_alt ProgrammableWaveData_84553DC, 0, 7, 15, 1 @ 843A854
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 216 @ 843A860
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 216 @ 843A860
voice_square_2_alt 1, 0, 2, 6, 3 @ 843A86C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A878
voice_square_1 0, 2, 0, 0, 15, 0 @ 843A884
@@ -3835,7 +3835,7 @@ voicegroup_843A824:: @ 843A824
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AA1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AA28
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AA34
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 165 @ 843AA40
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 165 @ 843AA40
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AA4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AA58
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843AA64
@@ -3863,7 +3863,7 @@ voicegroup_843A824:: @ 843A824
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AB6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AB78
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AB84
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843AB90
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843AB90
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AB9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ABA8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ABB4
@@ -3959,7 +3959,7 @@ voicegroup_843AE24:: @ 843AE24
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AFC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AFD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AFE0
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 843AFEC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 843AFEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843AFF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B004
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B010
@@ -3967,8 +3967,8 @@ voicegroup_843AE24:: @ 843AE24
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B028
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B034
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B040
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 204 @ 843B04C
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 204, 193, 239 @ 843B058
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 204 @ 843B04C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 204, 193, 239 @ 843B058
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843B064
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B070
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B07C
@@ -4061,7 +4061,7 @@ voicegroup_843B424:: @ 843B424
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B46C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B478
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B484
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 204, 51, 242 @ 843B490
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 204, 51, 242 @ 843B490
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B49C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B4A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B4B4
@@ -4098,8 +4098,8 @@ voicegroup_843B424:: @ 843B424
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B628
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B634
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B640
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 843B64C
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 193, 239 @ 843B658
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 843B64C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 193, 239 @ 843B658
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843B664
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B670
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B67C
@@ -4152,7 +4152,7 @@ voicegroup_843B844:: @ 843B844
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B88C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B898
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B8A4
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 51, 242 @ 843B8B0
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 51, 242 @ 843B8B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B8BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B8C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B8D4
@@ -4178,7 +4178,7 @@ voicegroup_843B844:: @ 843B844
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B9C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B9D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B9DC
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 843B9E8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 843B9E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843B9F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA00
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA0C
@@ -4188,9 +4188,9 @@ voicegroup_843B844:: @ 843B844
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA48
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA54
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 843BA60
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 843BA6C
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 193, 226 @ 843BA78
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 843BA60
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 843BA6C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 193, 226 @ 843BA78
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843BA84
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA90
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BA9C
@@ -4216,7 +4216,7 @@ voicegroup_843B844:: @ 843B844
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BB8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BB98
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BBA4
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843BBB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843BBB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BBBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BBC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BBD4
@@ -4291,7 +4291,7 @@ voicegroup_843BE44:: @ 843BE44
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BEEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BEF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BF04
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 843BF10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 843BF10
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BF1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BF28
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BF34
@@ -4309,7 +4309,7 @@ voicegroup_843BE44:: @ 843BE44
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BFC4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BFD0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BFDC
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 843BFE8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 843BFE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843BFF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C000
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C00C
@@ -4320,7 +4320,7 @@ voicegroup_843BE44:: @ 843BE44
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C048
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C054
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C060
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 843C06C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 843C06C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C078
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C084
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C090
@@ -4440,7 +4440,7 @@ voicegroup_843C444:: @ 843C444
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C5C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C5D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C5DC
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 843C5E8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 843C5E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C5F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C600
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C60C
@@ -4450,7 +4450,7 @@ voicegroup_843C444:: @ 843C444
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C63C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C648
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C654
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 99 @ 843C660
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 99 @ 843C660
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C66C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C678
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843C684
@@ -4478,7 +4478,7 @@ voicegroup_843C444:: @ 843C444
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C78C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C798
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C7A4
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843C7B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843C7B0
.align 2
voicegroup_843C7BC:: @ 843C7BC
@@ -4529,7 +4529,7 @@ voicegroup_843C7BC:: @ 843C7BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C9CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C9D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843C9E4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 193, 226 @ 843C9F0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 193, 226 @ 843C9F0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843C9FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CA08
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CA14
@@ -4648,7 +4648,7 @@ voicegroup_843CDBC:: @ 843CDBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CF3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CF48
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CF54
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 843CF60
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 843CF60
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CF6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CF78
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CF84
@@ -4658,7 +4658,7 @@ voicegroup_843CDBC:: @ 843CDBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CFB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CFC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CFCC
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 843CFD8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 843CFD8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CFE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843CFF0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843CFFC
@@ -4686,7 +4686,7 @@ voicegroup_843CDBC:: @ 843CDBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D104
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D110
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D11C
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843D128
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843D128
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D134
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D140
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D14C
@@ -4789,8 +4789,8 @@ voicegroup_843D3BC:: @ 843D3BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D5B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D5C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D5CC
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 843D5D8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 843D5E4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 843D5D8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 843D5E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D5F0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843D5FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D608
@@ -4817,7 +4817,7 @@ voicegroup_843D3BC:: @ 843D3BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D704
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D710
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D71C
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843D728
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843D728
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D734
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D740
voice_square_1 0, 2, 0, 0, 15, 0 @ 843D74C
@@ -4913,7 +4913,7 @@ voicegroup_843D9BC:: @ 843D9BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DB60
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DB6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DB78
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 843DB84
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 843DB84
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DB90
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DB9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DBA8
@@ -4921,8 +4921,8 @@ voicegroup_843D9BC:: @ 843D9BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DBC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DBCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DBD8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 204 @ 843DBE4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 204, 193, 239 @ 843DBF0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 204 @ 843DBE4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 204, 193, 239 @ 843DBF0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843DBFC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DC08
voice_square_1 0, 2, 0, 0, 15, 0 @ 843DC14
@@ -5044,7 +5044,7 @@ voicegroup_843DFBC:: @ 843DFBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E160
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E16C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E178
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 843E184
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 843E184
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E190
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E19C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E1A8
@@ -5079,7 +5079,7 @@ voicegroup_843DFBC:: @ 843DFBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E304
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E310
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E31C
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843E328
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843E328
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E334
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E340
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E34C
@@ -5146,12 +5146,12 @@ voicegroup_843E5BC:: @ 843E5BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E604
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E610
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E61C
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 188, 51, 242 @ 843E628
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 188, 51, 242 @ 843E628
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E634
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E640
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E64C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E658
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 128, 165, 90, 216 @ 843E664
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 128, 165, 90, 216 @ 843E664
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E670
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E67C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E688
@@ -5160,7 +5160,7 @@ voicegroup_843E5BC:: @ 843E5BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E6AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E6B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E6C4
- voice_directsound 60, 0, DirectSoundWaveData_8492D10, 255, 0, 255, 127 @ 843E6D0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Bubble, 255, 0, 255, 127 @ 843E6D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E6DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E6E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E6F4
@@ -5172,7 +5172,7 @@ voicegroup_843E5BC:: @ 843E5BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E73C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E748
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E754
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 843E760
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 843E760
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E76C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E778
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E784
@@ -5182,9 +5182,9 @@ voicegroup_843E5BC:: @ 843E5BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E7B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E7C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E7CC
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 843E7D8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 843E7E4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 193, 226 @ 843E7F0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 843E7D8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 843E7E4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 193, 226 @ 843E7F0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843E7FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E808
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E814
@@ -5210,7 +5210,7 @@ voicegroup_843E5BC:: @ 843E5BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E904
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E910
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E91C
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843E928
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843E928
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E934
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E940
voice_square_1 0, 2, 0, 0, 15, 0 @ 843E94C
@@ -5285,7 +5285,7 @@ voicegroup_843EBBC:: @ 843EBBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843EC64
voice_square_1 0, 2, 0, 0, 15, 0 @ 843EC70
voice_square_1 0, 2, 0, 0, 15, 0 @ 843EC7C
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 843EC88
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 843EC88
voice_square_1 0, 2, 0, 0, 15, 0 @ 843EC94
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ECA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ECAC
@@ -5303,7 +5303,7 @@ voicegroup_843EBBC:: @ 843EBBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ED3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ED48
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ED54
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 843ED60
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 843ED60
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ED6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ED78
voice_square_1 0, 2, 0, 0, 15, 0 @ 843ED84
@@ -5408,12 +5408,12 @@ voicegroup_843F1BC:: @ 843F1BC
voice_programmable_wave_alt ProgrammableWaveData_84553FC, 0, 7, 15, 0 @ 843F204
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F210
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F21C
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 51, 242 @ 843F228
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 51, 242 @ 843F228
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F234
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F240
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F24C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F258
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 843F264
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 843F264
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F270
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F27C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F288
@@ -5445,8 +5445,8 @@ voicegroup_843F1BC:: @ 843F1BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F3C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F3CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F3D8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 843F3E4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 239 @ 843F3F0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 843F3E4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 239 @ 843F3F0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843F3FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F408
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F414
@@ -5472,7 +5472,7 @@ voicegroup_843F1BC:: @ 843F1BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F504
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F510
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F51C
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 843F528
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 843F528
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F534
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F540
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F54C
@@ -5504,7 +5504,7 @@ voicegroup_843F5E8:: @ 843F5E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F660
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F66C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F678
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 843F684
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 843F684
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F690
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F69C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F6A8
@@ -5536,9 +5536,9 @@ voicegroup_843F5E8:: @ 843F5E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F7E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F7EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F7F8
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 128, 226, 0, 38 @ 843F804
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 843F810
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 843F81C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 128, 226, 0, 38 @ 843F804
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 843F810
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 843F81C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 843F828
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F834
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F840
@@ -5564,7 +5564,7 @@ voicegroup_843F5E8:: @ 843F5E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F930
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F93C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F948
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 843F954
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 843F954
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F960
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F96C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843F978
@@ -5639,7 +5639,7 @@ voicegroup_843FBE8:: @ 843FBE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FC90
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FC9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FCA8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 843FCB4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 843FCB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FCC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FCCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FCD8
@@ -5658,7 +5658,7 @@ voicegroup_843FBE8:: @ 843FBE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FD74
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FD80
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FD8C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 115 @ 843FD98
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 115 @ 843FD98
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FDA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FDB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FDBC
@@ -5695,7 +5695,7 @@ voicegroup_843FBE8:: @ 843FBE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FF30
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FF3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FF48
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 843FF54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 843FF54
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FF60
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FF6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 843FF78
@@ -5791,7 +5791,7 @@ voicegroup_84401E8:: @ 84401E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844038C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440398
voice_square_1 0, 2, 0, 0, 15, 0 @ 84403A4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 84403B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 84403B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84403BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84403C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84403D4
@@ -5901,7 +5901,7 @@ voicegroup_84407E8:: @ 84407E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440890
voice_square_1 0, 2, 0, 0, 15, 0 @ 844089C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84408A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 84408B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 84408B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84408C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84408CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84408D8
@@ -5920,7 +5920,7 @@ voicegroup_84407E8:: @ 84407E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440974
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440980
voice_square_1 0, 2, 0, 0, 15, 0 @ 844098C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 8440998
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 8440998
voice_square_1 0, 2, 0, 0, 15, 0 @ 84409A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84409B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84409BC
@@ -6039,7 +6039,7 @@ voicegroup_8440DE8:: @ 8440DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440EE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440EF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440EFC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8440F08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8440F08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440F14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440F20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440F2C
@@ -6061,8 +6061,8 @@ voicegroup_8440DE8:: @ 8440DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440FEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8440FF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441004
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8441010
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844101C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8441010
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844101C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8441028
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441034
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441040
@@ -6088,7 +6088,7 @@ voicegroup_8440DE8:: @ 8440DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441130
voice_square_1 0, 2, 0, 0, 15, 0 @ 844113C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441148
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8441154
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8441154
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441160
voice_square_1 0, 2, 0, 0, 15, 0 @ 844116C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441178
@@ -6163,7 +6163,7 @@ voicegroup_84413E8:: @ 84413E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441490
voice_square_1 0, 2, 0, 0, 15, 0 @ 844149C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84414A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 84414B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 84414B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84414C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84414CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84414D8
@@ -6182,7 +6182,7 @@ voicegroup_84413E8:: @ 84413E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441574
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441580
voice_square_1 0, 2, 0, 0, 15, 0 @ 844158C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 8441598
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 8441598
voice_square_1 0, 2, 0, 0, 15, 0 @ 84415A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84415B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84415BC
@@ -6301,7 +6301,7 @@ voicegroup_84419E8:: @ 84419E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441AE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441AF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441AFC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8441B08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8441B08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B2C
@@ -6312,17 +6312,17 @@ voicegroup_84419E8:: @ 84419E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B80
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8441B8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8441B8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441B98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BA4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 8441BB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 8441BB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441BF8
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8441C04
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8441C04
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441C10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441C1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441C28
@@ -6350,7 +6350,7 @@ voicegroup_84419E8:: @ 84419E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441D30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441D3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441D48
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8441D54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8441D54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441D60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441D6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8441D78
@@ -6425,14 +6425,14 @@ voicegroup_8441FE8:: @ 8441FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442090
voice_square_1 0, 2, 0, 0, 15, 0 @ 844209C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 84420B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 84420B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84420FC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8442108
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8442108
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442114
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442120
voice_square_1 0, 2, 0, 0, 15, 0 @ 844212C
@@ -6446,7 +6446,7 @@ voicegroup_8441FE8:: @ 8441FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844218C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442198
voice_square_1 0, 2, 0, 0, 15, 0 @ 84421A4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 84421B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 84421B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84421BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84421C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84421D4
@@ -6481,7 +6481,7 @@ voicegroup_8441FE8:: @ 8441FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442330
voice_square_1 0, 2, 0, 0, 15, 0 @ 844233C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442348
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8442354
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8442354
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442360
voice_square_1 0, 2, 0, 0, 15, 0 @ 844236C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442378
@@ -6553,17 +6553,17 @@ voicegroup_84425E8:: @ 84425E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844266C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442678
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442684
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8442690
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8442690
voice_square_1 0, 2, 0, 0, 15, 0 @ 844269C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 84426B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 84426B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84426FC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8442708
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8442708
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442714
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442720
voice_square_1 0, 2, 0, 0, 15, 0 @ 844272C
@@ -6574,10 +6574,10 @@ voicegroup_84425E8:: @ 84425E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442768
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442774
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442780
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 844278C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 844278C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442798
voice_square_1 0, 2, 0, 0, 15, 0 @ 84427A4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 84427B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 84427B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84427BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84427C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84427D4
@@ -6612,7 +6612,7 @@ voicegroup_84425E8:: @ 84425E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442930
voice_square_1 0, 2, 0, 0, 15, 0 @ 844293C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442948
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8442954
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8442954
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442960
voice_square_1 0, 2, 0, 0, 15, 0 @ 844296C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442978
@@ -6687,14 +6687,14 @@ voicegroup_8442BE8:: @ 8442BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442C90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CA8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 8442CB4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 8442CB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CD8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442CFC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8442D08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8442D08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D2C
@@ -6705,17 +6705,17 @@ voicegroup_8442BE8:: @ 8442BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D80
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8442D8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8442D8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442D98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DA4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 8442DB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 8442DB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442DF8
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8442E04
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8442E04
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442E10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442E1C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8442E28
@@ -6743,7 +6743,7 @@ voicegroup_8442BE8:: @ 8442BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442F30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442F3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442F48
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8442F54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8442F54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442F60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442F6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8442F78
@@ -6825,7 +6825,7 @@ voicegroup_84431E8:: @ 84431E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84432E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84432F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84432FC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8443308
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8443308
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443314
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443320
voice_square_1 0, 2, 0, 0, 15, 0 @ 844332C
@@ -6836,7 +6836,7 @@ voicegroup_84431E8:: @ 84431E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443368
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443374
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443380
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 844338C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 844338C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443398
voice_square_1 0, 2, 0, 0, 15, 0 @ 84433A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84433B0
@@ -6847,8 +6847,8 @@ voicegroup_84431E8:: @ 84431E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84433EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84433F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443404
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8443410
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844341C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8443410
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844341C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8443428
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443434
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443440
@@ -7076,18 +7076,18 @@ voicegroup_8443DE8:: @ 8443DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443E60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443E6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443E78
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 8443E84
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 8443E84
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443E90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443E9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443EA8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 8443EB4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 8443EB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443EC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443ECC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443ED8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443EE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443EF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443EFC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8443F08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8443F08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F2C
@@ -7098,7 +7098,7 @@ voicegroup_8443DE8:: @ 8443DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F80
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8443F8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8443F8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443FA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443FB0
@@ -7109,7 +7109,7 @@ voicegroup_8443DE8:: @ 8443DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443FEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8443FF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444004
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8444010
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8444010
voice_square_1 0, 2, 0, 0, 15, 0 @ 844401C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8444028
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444034
@@ -7207,18 +7207,18 @@ voicegroup_84443E8:: @ 84443E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444460
voice_square_1 0, 2, 0, 0, 15, 0 @ 844446C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444478
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 8444484
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 8444484
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444490
voice_square_1 0, 2, 0, 0, 15, 0 @ 844449C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 84444B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 84444B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84444FC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8444508
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8444508
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444514
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444520
voice_square_1 0, 2, 0, 0, 15, 0 @ 844452C
@@ -7229,10 +7229,10 @@ voicegroup_84443E8:: @ 84443E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444568
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444574
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444580
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 844458C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 844458C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444598
voice_square_1 0, 2, 0, 0, 15, 0 @ 84445A4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 84445B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 84445B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84445BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84445C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84445D4
@@ -7240,7 +7240,7 @@ voicegroup_84443E8:: @ 84443E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84445EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84445F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444604
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8444610
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8444610
voice_square_1 0, 2, 0, 0, 15, 0 @ 844461C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8444628
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444634
@@ -7267,7 +7267,7 @@ voicegroup_84443E8:: @ 84443E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444730
voice_square_1 0, 2, 0, 0, 15, 0 @ 844473C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444748
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8444754
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8444754
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444760
voice_square_1 0, 2, 0, 0, 15, 0 @ 844476C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444778
@@ -7338,7 +7338,7 @@ voicegroup_84449E8:: @ 84449E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444A60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444A6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444A78
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 8444A84
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 8444A84
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444A90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444A9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444AA8
@@ -7360,7 +7360,7 @@ voicegroup_84449E8:: @ 84449E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444B68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444B74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444B80
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8444B8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8444B8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444B98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444BA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444BB0
@@ -7372,7 +7372,7 @@ voicegroup_84449E8:: @ 84449E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444BF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444C04
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444C10
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 216 @ 8444C1C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 216 @ 8444C1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444C28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444C34
voice_square_1 0, 2, 0, 0, 15, 0 @ 8444C40
@@ -7470,7 +7470,7 @@ voicegroup_8444FE8:: @ 8444FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844506C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445078
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445084
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8445090
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8445090
voice_square_1 0, 2, 0, 0, 15, 0 @ 844509C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84450A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84450B4
@@ -7491,8 +7491,8 @@ voicegroup_8444FE8:: @ 8444FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445168
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445174
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445180
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 844518C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 8445198
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 844518C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 8445198
voice_square_1 0, 2, 0, 0, 15, 0 @ 84451A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84451B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84451BC
@@ -7503,7 +7503,7 @@ voicegroup_8444FE8:: @ 8444FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84451F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445204
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445210
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844521C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844521C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8445228
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445234
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445240
@@ -7529,7 +7529,7 @@ voicegroup_8444FE8:: @ 8444FE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445330
voice_square_1 0, 2, 0, 0, 15, 0 @ 844533C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445348
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8445354
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8445354
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445360
voice_square_1 0, 2, 0, 0, 15, 0 @ 844536C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445378
@@ -7604,7 +7604,7 @@ voicegroup_84455E8:: @ 84455E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445690
voice_square_1 0, 2, 0, 0, 15, 0 @ 844569C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84456A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 84456B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 84456B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84456C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84456CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84456D8
@@ -7622,8 +7622,8 @@ voicegroup_84455E8:: @ 84455E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445768
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445774
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445780
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 844578C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 8445798
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 844578C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 8445798
voice_square_1 0, 2, 0, 0, 15, 0 @ 84457A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84457B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84457BC
@@ -7731,18 +7731,18 @@ voicegroup_8445BE8:: @ 8445BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445C60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445C6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445C78
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 8445C84
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 8445C84
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445C90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445C9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CA8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 8445CB4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 8445CB4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CC0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CD8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445CFC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8445D08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8445D08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D2C
@@ -7753,7 +7753,7 @@ voicegroup_8445BE8:: @ 8445BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D80
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 196 @ 8445D8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 196 @ 8445D8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445D98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445DA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445DB0
@@ -7764,7 +7764,7 @@ voicegroup_8445BE8:: @ 8445BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445DEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445DF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445E04
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8445E10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8445E10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445E1C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8445E28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445E34
@@ -7791,7 +7791,7 @@ voicegroup_8445BE8:: @ 8445BE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445F30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445F3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445F48
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8445F54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8445F54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445F60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445F6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8445F78
@@ -7863,7 +7863,7 @@ voicegroup_84461E8:: @ 84461E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844626C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446278
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446284
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8446290
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8446290
voice_square_1 0, 2, 0, 0, 15, 0 @ 844629C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84462A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84462B4
@@ -7873,7 +7873,7 @@ voicegroup_84461E8:: @ 84461E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84462E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84462F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84462FC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8446308
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8446308
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446314
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446320
voice_square_1 0, 2, 0, 0, 15, 0 @ 844632C
@@ -7884,7 +7884,7 @@ voicegroup_84461E8:: @ 84461E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446368
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446374
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446380
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 196 @ 844638C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 196 @ 844638C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446398
voice_square_1 0, 2, 0, 0, 15, 0 @ 84463A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84463B0
@@ -7894,9 +7894,9 @@ voicegroup_84461E8:: @ 84461E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84463E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84463EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84463F8
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8446404
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8446404
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446410
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844641C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844641C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8446428
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446434
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446440
@@ -7994,17 +7994,17 @@ voicegroup_84467E8:: @ 84467E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844686C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446878
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446884
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8446890
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8446890
voice_square_1 0, 2, 0, 0, 15, 0 @ 844689C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468A8
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 84468B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 84468B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84468FC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8446908
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8446908
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446914
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446920
voice_square_1 0, 2, 0, 0, 15, 0 @ 844692C
@@ -8025,8 +8025,8 @@ voicegroup_84467E8:: @ 84467E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84469E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84469EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84469F8
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8446A04
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8446A10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8446A04
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8446A10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446A1C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8446A28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446A34
@@ -8053,7 +8053,7 @@ voicegroup_84467E8:: @ 84467E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446B30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446B3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446B48
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8446B54
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8446B54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446B60
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446B6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446B78
@@ -8135,7 +8135,7 @@ voicegroup_8446DE8:: @ 8446DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446EE4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446EF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446EFC
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8446F08
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8446F08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446F14
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446F20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446F2C
@@ -8149,16 +8149,16 @@ voicegroup_8446DE8:: @ 8446DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446F8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446F98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FA4
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 8446FB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 8446FB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8446FF8
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8447004
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8447010
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844701C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8447004
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8447010
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844701C
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8447028
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447034
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447040
@@ -8184,7 +8184,7 @@ voicegroup_8446DE8:: @ 8446DE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447130
voice_square_1 0, 2, 0, 0, 15, 0 @ 844713C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447148
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8447154
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8447154
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447160
voice_square_1 0, 2, 0, 0, 15, 0 @ 844716C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447178
@@ -8261,7 +8261,7 @@ voicegroup_8447400:: @ 8447400
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447484
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447490
voice_square_1 0, 2, 0, 0, 15, 0 @ 844749C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 84474A8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 84474A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84474B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84474C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84474CC
@@ -8271,7 +8271,7 @@ voicegroup_8447400:: @ 8447400
voice_square_1 0, 2, 0, 0, 15, 0 @ 84474FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447508
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447514
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8447520
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8447520
voice_square_1 0, 2, 0, 0, 15, 0 @ 844752C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447538
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447544
@@ -8294,7 +8294,7 @@ voicegroup_8447400:: @ 8447400
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447610
voice_square_1 0, 2, 0, 0, 15, 0 @ 844761C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447628
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 8447634
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 8447634
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8447640
voice_square_1 0, 2, 0, 0, 15, 0 @ 844764C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447658
@@ -8387,7 +8387,7 @@ voicegroup_8447A00:: @ 8447A00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447A48
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447A54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447A60
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 72, 249 @ 8447A6C
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 72, 249 @ 8447A6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447A78
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447A84
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447A90
@@ -8402,7 +8402,7 @@ voicegroup_8447A00:: @ 8447A00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447AFC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B08
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B14
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 128, 249, 25, 76 @ 8447B20
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 128, 249, 25, 76 @ 8447B20
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B2C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B44
@@ -8413,7 +8413,7 @@ voicegroup_8447A00:: @ 8447A00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B80
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447B98
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8447BA4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8447BA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447BB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447BBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447BC8
@@ -8423,8 +8423,8 @@ voicegroup_8447A00:: @ 8447A00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447BF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447C04
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447C10
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 8447C1C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 8447C28
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 8447C1C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 8447C28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447C34
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8447C40
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447C4C
@@ -8451,7 +8451,7 @@ voicegroup_8447A00:: @ 8447A00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447D48
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447D54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447D60
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 8447D6C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 8447D6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447D78
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447D84
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447D90
@@ -8479,7 +8479,7 @@ voicegroup_8447DF0:: @ 8447DF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447E74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447E80
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447E8C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8447E98
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8447E98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447EA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447EB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447EBC
@@ -8489,7 +8489,7 @@ voicegroup_8447DF0:: @ 8447DF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447EEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447EF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447F04
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8447F10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8447F10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447F1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447F28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447F34
@@ -8511,8 +8511,8 @@ voicegroup_8447DF0:: @ 8447DF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8447FF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448000
voice_square_1 0, 2, 0, 0, 15, 0 @ 844800C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8448018
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 8448024
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8448018
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 8448024
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8448030
voice_square_1 0, 2, 0, 0, 15, 0 @ 844803C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448048
@@ -8538,7 +8538,7 @@ voicegroup_8447DF0:: @ 8447DF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448138
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448144
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448150
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 844815C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 844815C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448168
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448174
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448180
@@ -8620,7 +8620,7 @@ voicegroup_84483F0:: @ 84483F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84484EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84484F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448504
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8448510
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8448510
voice_square_1 0, 2, 0, 0, 15, 0 @ 844851C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448528
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448534
@@ -8642,8 +8642,8 @@ voicegroup_84483F0:: @ 84483F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84485F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448600
voice_square_1 0, 2, 0, 0, 15, 0 @ 844860C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8448618
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 8448624
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8448618
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 8448624
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448630
voice_square_1 0, 2, 0, 0, 15, 0 @ 844863C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448648
@@ -8669,7 +8669,7 @@ voicegroup_84483F0:: @ 84483F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448738
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448744
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448750
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 844875C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 844875C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448768
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448774
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448780
@@ -8741,17 +8741,17 @@ voicegroup_84489F0:: @ 84489F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448A74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448A80
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448A8C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8448A98
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8448A98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AB0
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 8448ABC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 8448ABC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448AF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B04
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 8448B10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 8448B10
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B28
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B34
@@ -8762,8 +8762,8 @@ voicegroup_84489F0:: @ 84489F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B70
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448B88
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 8448B94
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 8448BA0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 8448B94
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 8448BA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448BAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448BB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448BC4
@@ -8773,7 +8773,7 @@ voicegroup_84489F0:: @ 84489F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448BF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448C00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448C0C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8448C18
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8448C18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448C24
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8448C30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448C3C
@@ -8800,7 +8800,7 @@ voicegroup_84489F0:: @ 84489F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448D38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448D44
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448D50
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8448D5C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8448D5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448D68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448D74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8448D80
@@ -8894,9 +8894,9 @@ voicegroup_8448FF0:: @ 8448FF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844917C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449188
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449194
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 84491A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 84491A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84491AC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 84491B8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 84491B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84491C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84491D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84491DC
@@ -8905,7 +8905,7 @@ voicegroup_8448FF0:: @ 8448FF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449200
voice_square_1 0, 2, 0, 0, 15, 0 @ 844920C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449218
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 8449224
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 8449224
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449230
voice_square_1 0, 2, 0, 0, 15, 0 @ 844923C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449248
@@ -9003,7 +9003,7 @@ voicegroup_84495F0:: @ 84495F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449674
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449680
voice_square_1 0, 2, 0, 0, 15, 0 @ 844968C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8449698
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8449698
voice_square_1 0, 2, 0, 0, 15, 0 @ 84496A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84496B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84496BC
@@ -9035,8 +9035,8 @@ voicegroup_84495F0:: @ 84495F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84497F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449800
voice_square_1 0, 2, 0, 0, 15, 0 @ 844980C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 8449818
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 239 @ 8449824
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 8449818
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 239 @ 8449824
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8449830
voice_square_1 0, 2, 0, 0, 15, 0 @ 844983C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449848
@@ -9062,7 +9062,7 @@ voicegroup_84495F0:: @ 84495F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449938
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449944
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449950
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 844995C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 844995C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449968
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449974
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449980
@@ -9134,7 +9134,7 @@ voicegroup_8449BF0:: @ 8449BF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449C74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449C80
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449C8C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8449C98
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8449C98
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449CA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449CB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449CBC
@@ -9193,7 +9193,7 @@ voicegroup_8449BF0:: @ 8449BF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449F38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449F44
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449F50
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 8449F5C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 8449F5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449F68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449F74
voice_square_1 0, 2, 0, 0, 15, 0 @ 8449F80
@@ -9391,22 +9391,22 @@ voicegroup_844A7F0:: @ 844A7F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A838
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A844
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A850
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 72, 249 @ 844A85C
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 72, 249 @ 844A85C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A868
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A874
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A880
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844A88C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844A88C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A898
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8B0
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 165 @ 844A8BC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 165 @ 844A8BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A8F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A904
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 128, 249, 25, 76 @ 844A910
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 128, 249, 25, 76 @ 844A910
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A91C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A928
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A934
@@ -9417,7 +9417,7 @@ voicegroup_844A7F0:: @ 844A7F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A970
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A97C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A988
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 253, 0, 188 @ 844A994
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 253, 0, 188 @ 844A994
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A9A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A9AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A9B8
@@ -9427,8 +9427,8 @@ voicegroup_844A7F0:: @ 844A7F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A9E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844A9F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AA00
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 226, 0, 38 @ 844AA0C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 844AA18
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 226, 0, 38 @ 844AA0C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 844AA18
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AA24
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844AA30
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AA3C
@@ -9455,7 +9455,7 @@ voicegroup_844A7F0:: @ 844A7F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AB38
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AB44
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AB50
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 844AB5C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 844AB5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AB68
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AB74
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AB80
@@ -9526,7 +9526,7 @@ voicegroup_844ADF0:: @ 844ADF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AE68
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AE74
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AE80
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844AE8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844AE8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AE98
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AEA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AEB0
@@ -9537,7 +9537,7 @@ voicegroup_844ADF0:: @ 844ADF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AEEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AEF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AF04
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 128, 249, 25, 76 @ 844AF10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 128, 249, 25, 76 @ 844AF10
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AF1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AF28
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AF34
@@ -9551,7 +9551,7 @@ voicegroup_844ADF0:: @ 844ADF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AF94
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AFA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AFAC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844AFB8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844AFB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AFC4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AFD0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AFDC
@@ -9559,7 +9559,7 @@ voicegroup_844ADF0:: @ 844ADF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844AFF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B000
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B00C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 844B018
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 844B018
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B024
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B030
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B03C
@@ -9657,7 +9657,7 @@ voicegroup_844B3F0:: @ 844B3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B468
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B474
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B480
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844B48C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844B48C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B498
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B4A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B4B0
@@ -9668,7 +9668,7 @@ voicegroup_844B3F0:: @ 844B3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B4EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B4F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B504
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 128, 249, 25, 76 @ 844B510
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 128, 249, 25, 76 @ 844B510
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B51C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B528
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B534
@@ -9680,9 +9680,9 @@ voicegroup_844B3F0:: @ 844B3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B57C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B588
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B594
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 844B5A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 844B5A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B5AC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844B5B8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844B5B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B5C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B5D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B5DC
@@ -9690,7 +9690,7 @@ voicegroup_844B3F0:: @ 844B3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B5F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B600
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B60C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 0, 242 @ 844B618
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 0, 242 @ 844B618
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B624
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844B630
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B63C
@@ -9717,7 +9717,7 @@ voicegroup_844B3F0:: @ 844B3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B738
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B744
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B750
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 844B75C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 844B75C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B768
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B774
voice_square_1 0, 2, 0, 0, 15, 0 @ 844B780
@@ -9784,22 +9784,22 @@ voicegroup_844B9F0:: @ 844B9F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BA38
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BA44
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BA50
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 165, 72, 249 @ 844BA5C
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 165, 72, 249 @ 844BA5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BA68
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BA74
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BA80
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844BA8C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 844BA98
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844BA8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 844BA98
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BAA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BAB0
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 844BABC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 844BABC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BAC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BAD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BAE0
- voice_directsound 60, 0, DirectSoundWaveData_84A5F58, 255, 0, 255, 165 @ 844BAEC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_AccordianFr, 255, 0, 255, 165 @ 844BAEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BAF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BB04
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 128, 249, 25, 76 @ 844BB10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 128, 249, 25, 76 @ 844BB10
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BB1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BB28
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BB34
@@ -9822,7 +9822,7 @@ voicegroup_844B9F0:: @ 844B9F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BC00
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BC0C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BC18
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844BC24
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844BC24
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844BC30
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BC3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BC48
@@ -9848,7 +9848,7 @@ voicegroup_844B9F0:: @ 844B9F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BD38
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BD44
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BD50
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 844BD5C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 844BD5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BD68
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BD74
voice_square_1 0, 2, 0, 0, 15, 0 @ 844BD80
@@ -9923,14 +9923,14 @@ voicegroup_844BFF0:: @ 844BFF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C098
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0B0
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 844C0BC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 844C0BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C0F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C104
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 844C110
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 844C110
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C11C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C128
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C134
@@ -9944,7 +9944,7 @@ voicegroup_844BFF0:: @ 844BFF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C194
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C1A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C1AC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844C1B8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844C1B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C1C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C1D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C1DC
@@ -9979,7 +9979,7 @@ voicegroup_844BFF0:: @ 844BFF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C338
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C344
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C350
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 844C35C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 844C35C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C368
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C374
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C380
@@ -10050,18 +10050,18 @@ voicegroup_844C5F0:: @ 844C5F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C668
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C674
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C680
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844C68C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844C68C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C698
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6B0
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 844C6BC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 844C6BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C6F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C704
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 844C710
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 844C710
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C71C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C728
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C734
@@ -10073,9 +10073,9 @@ voicegroup_844C5F0:: @ 844C5F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C77C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C788
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C794
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 844C7A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 844C7A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C7AC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844C7B8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844C7B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C7C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C7D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C7DC
@@ -10084,7 +10084,7 @@ voicegroup_844C5F0:: @ 844C5F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C800
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C80C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C818
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844C824
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844C824
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C830
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C83C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844C848
@@ -10182,7 +10182,7 @@ voicegroup_844CBF0:: @ 844CBF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CC74
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CC80
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CC8C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 844CC98
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 844CC98
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CCA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CCB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CCBC
@@ -10215,7 +10215,7 @@ voicegroup_844CBF0:: @ 844CBF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CE00
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CE0C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CE18
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 249 @ 844CE24
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 249 @ 844CE24
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CE30
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CE3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844CE48
@@ -10372,7 +10372,7 @@ voicegroup_844D1F0:: @ 844D1F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D538
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D544
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D550
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 844D55C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 844D55C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D568
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D574
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D580
@@ -10424,8 +10424,8 @@ voicegroup_844D1F0:: @ 844D1F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D7A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D7B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D7C0
- voice_directsound 60, 0, DirectSoundWaveData_84A3B50, 255, 255, 255, 127 @ 844D7CC
- voice_directsound 60, 0, DirectSoundWaveData_845B9A8, 255, 255, 255, 127 @ 844D7D8
+ voice_directsound 60, 0, DirectSoundWaveData_Noise2, 255, 255, 255, 127 @ 844D7CC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitHandClap, 255, 255, 255, 127 @ 844D7D8
voice_noise_alt 0, 0, 1, 0, 0 @ 844D7E4
.align 2
@@ -10443,7 +10443,7 @@ voicegroup_844D7F0:: @ 844D7F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D868
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D874
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D880
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844D88C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844D88C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D898
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D8A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D8B0
@@ -10466,9 +10466,9 @@ voicegroup_844D7F0:: @ 844D7F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D97C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D988
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D994
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 844D9A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 844D9A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D9AC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844D9B8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844D9B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D9C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D9D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844D9DC
@@ -10574,18 +10574,18 @@ voicegroup_844DDF0:: @ 844DDF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DE68
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DE74
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DE80
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 844DE8C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 844DE8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DE98
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DEA4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DEB0
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 210 @ 844DEBC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 210 @ 844DEBC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DEC8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DED4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DEE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DEEC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DEF8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF04
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 76 @ 844DF10
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 76 @ 844DF10
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF28
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF34
@@ -10597,9 +10597,9 @@ voicegroup_844DDF0:: @ 844DDF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF88
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DF94
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 844DFA0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 844DFA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DFAC
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844DFB8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844DFB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DFC4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DFD0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844DFDC
@@ -10608,7 +10608,7 @@ voicegroup_844DDF0:: @ 844DDF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E000
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E00C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E018
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 246 @ 844E024
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 246 @ 844E024
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E030
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E03C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E048
@@ -10634,7 +10634,7 @@ voicegroup_844DDF0:: @ 844DDF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E138
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E144
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E150
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 127 @ 844E15C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 127 @ 844E15C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E168
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E174
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E180
@@ -10706,7 +10706,7 @@ voicegroup_844E3F0:: @ 844E3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E474
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E480
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E48C
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 844E498
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 844E498
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E4A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E4B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E4BC
@@ -10738,8 +10738,8 @@ voicegroup_844E3F0:: @ 844E3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E5F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E600
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E60C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 242 @ 844E618
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 180, 239 @ 844E624
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 242 @ 844E618
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 180, 239 @ 844E624
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844E630
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E63C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E648
@@ -10765,7 +10765,7 @@ voicegroup_844E3F0:: @ 844E3F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E738
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E744
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E750
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 844E75C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 844E75C
voice_programmable_wave_alt ProgrammableWaveData_845540C, 0, 7, 15, 0 @ 844E768
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E774
voice_square_1 0, 2, 0, 0, 15, 0 @ 844E780
@@ -10829,7 +10829,7 @@ voicegroup_844E918:: @ 844E918
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EA14
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EA20
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EA2C
- voice_directsound 60, 0, DirectSoundWaveData_8481130, 255, 249, 25, 248 @ 844EA38
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_NylonStringGuitar, 255, 249, 25, 248 @ 844EA38
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EA44
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EA50
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EA5C
@@ -10851,7 +10851,7 @@ voicegroup_844E918:: @ 844E918
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EB1C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EB28
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EB34
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 242, 51, 165 @ 844EB40
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 242, 51, 165 @ 844EB40
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EB4C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EB58
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EB64
@@ -10923,7 +10923,7 @@ voicegroup_844ECF0:: @ 844ECF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EE58
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EE64
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EE70
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 844EE7C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 844EE7C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EE88
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EE94
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EEA0
@@ -10936,8 +10936,8 @@ voicegroup_844ECF0:: @ 844ECF0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EEF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EF00
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EF0C
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 844EF18
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 844EF24
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 844EF18
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 844EF24
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844EF30
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EF3C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844EF48
@@ -10989,14 +10989,14 @@ voicegroup_844F0C8:: @ 844F0C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F14C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F158
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F164
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 250, 0, 242 @ 844F170
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 250, 0, 242 @ 844F170
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F17C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F188
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 127 @ 844F194
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 127 @ 844F194
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F1A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F1AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F1B8
- voice_directsound 60, 0, DirectSoundWaveData_84A5F58, 255, 0, 255, 165 @ 844F1C4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_AccordianFr, 255, 0, 255, 165 @ 844F1C4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F1D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F1DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F1E8
@@ -11008,12 +11008,12 @@ voicegroup_844F0C8:: @ 844F0C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F230
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F23C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F248
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 844F254
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 844F254
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F260
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F26C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F278
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F284
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 844F290
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 844F290
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F29C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F2A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F2B4
@@ -11021,8 +11021,8 @@ voicegroup_844F0C8:: @ 844F0C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F2CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F2D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F2E4
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 844F2F0
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 844F2FC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 844F2F0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 844F2FC
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844F308
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F314
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F320
@@ -11065,7 +11065,7 @@ voicegroup_844F0C8:: @ 844F0C8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F4DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F4E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F4F4
- voice_directsound 60, 0, DirectSoundWaveData_849F40C, 255, 0, 255, 127 @ 844F500
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_JPSuperSaw, 255, 0, 255, 127 @ 844F500
.align 2
voicegroup_844F50C:: @ 844F50C
@@ -11086,7 +11086,7 @@ voicegroup_844F50C:: @ 844F50C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F5B4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F5C0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F5CC
- voice_directsound 60, 0, DirectSoundWaveData_84569D4, 255, 0, 255, 127 @ 844F5D8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Organ2, 255, 0, 255, 127 @ 844F5D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F5E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F5F0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F5FC
@@ -11102,7 +11102,7 @@ voicegroup_844F50C:: @ 844F50C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F674
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F680
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F68C
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 844F698
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 844F698
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F6A4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F6B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F6BC
@@ -11115,8 +11115,8 @@ voicegroup_844F50C:: @ 844F50C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F710
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F71C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F728
- voice_directsound_no_resample 60, 0, DirectSoundWaveData_8485454, 255, 246, 0, 226 @ 844F734
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 844F740
+ voice_directsound_no_resample 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale1, 255, 246, 0, 226 @ 844F734
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 844F740
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844F74C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F758
voice_square_1 0, 2, 0, 0, 15, 0 @ 844F764
@@ -11196,7 +11196,7 @@ voicegroup_844F950:: @ 844F950
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FAB8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FAC4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FAD0
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 844FADC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 844FADC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FAE8
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FAF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FB00
@@ -11208,9 +11208,9 @@ voicegroup_844F950:: @ 844F950
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FB48
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FB54
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FB60
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 844FB6C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 844FB6C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FB78
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 844FB84
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 844FB84
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844FB90
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FB9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FBA8
@@ -11290,7 +11290,7 @@ voicegroup_844FD94:: @ 844FD94
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FEFC
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF08
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF14
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 844FF20
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 844FF20
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF2C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF38
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF44
@@ -11302,9 +11302,9 @@ voicegroup_844FD94:: @ 844FD94
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FF98
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FFA4
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 844FFB0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 844FFB0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FFBC
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 844FFC8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 844FFC8
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 844FFD4
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FFE0
voice_square_1 0, 2, 0, 0, 15, 0 @ 844FFEC
@@ -11330,7 +11330,7 @@ voicegroup_844FD94:: @ 844FD94
voice_square_1 0, 2, 0, 0, 15, 0 @ 84500DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84500E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84500F4
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 8450100
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 8450100
voice_square_1 0, 2, 0, 0, 15, 0 @ 845010C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450118
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450124
@@ -11382,7 +11382,7 @@ voicegroup_845019C:: @ 845019C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450328
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450334
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450340
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 845034C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 845034C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450358
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450364
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450370
@@ -11391,9 +11391,9 @@ voicegroup_845019C:: @ 845019C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450394
voice_square_1 0, 2, 0, 0, 15, 0 @ 84503A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84503AC
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 216, 0, 165 @ 84503B8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 216, 0, 165 @ 84503B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84503C4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 84503D0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 84503D0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84503DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84503E8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84503F4
@@ -11402,7 +11402,7 @@ voicegroup_845019C:: @ 845019C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450418
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450424
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450430
- voice_directsound 60, 0, DirectSoundWaveData_849F40C, 255, 165, 154, 127 @ 845043C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_JPSuperSaw, 255, 165, 154, 127 @ 845043C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450448
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450454
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450460
@@ -11447,7 +11447,7 @@ voicegroup_845058C:: @ 845058C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450610
voice_square_1 0, 2, 0, 0, 15, 0 @ 845061C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450628
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 216, 90, 242 @ 8450634
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 216, 90, 242 @ 8450634
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450640
voice_square_1 0, 2, 0, 0, 15, 0 @ 845064C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450658
@@ -11466,7 +11466,7 @@ voicegroup_845058C:: @ 845058C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84506F4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450700
voice_square_1 0, 2, 0, 0, 15, 0 @ 845070C
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 8450718
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 8450718
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450724
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450730
voice_square_1 0, 2, 0, 0, 15, 0 @ 845073C
@@ -11480,7 +11480,7 @@ voicegroup_845058C:: @ 845058C
voice_square_1 0, 2, 0, 0, 15, 0 @ 845079C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84507A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84507B4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 84507C0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 84507C0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84507CC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84507D8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84507E4
@@ -11506,7 +11506,7 @@ voicegroup_845058C:: @ 845058C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84508D4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84508E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84508EC
- voice_directsound 60, 0, DirectSoundWaveData_84830A0, 255, 0, 255, 165 @ 84508F8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Flute, 255, 0, 255, 165 @ 84508F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450904
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450910
voice_square_1 0, 2, 0, 0, 15, 0 @ 845091C
@@ -11560,7 +11560,7 @@ voicegroup_845058C:: @ 845058C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450B5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450B68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450B74
- voice_directsound 60, 0, DirectSoundWaveData_8460E60, 255, 246, 0, 216 @ 8450B80
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 255, 246, 0, 216 @ 8450B80
.align 2
voicegroup_8450B8C:: @ 8450B8C
@@ -11597,7 +11597,7 @@ voicegroup_8450B8C:: @ 8450B8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450CF4
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D00
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D0C
- voice_directsound 60, 0, DirectSoundWaveData_8483804, 255, 253, 0, 149 @ 8450D18
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingeredBass, 255, 253, 0, 149 @ 8450D18
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D24
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D30
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D3C
@@ -11610,8 +11610,8 @@ voicegroup_8450B8C:: @ 8450B8C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450D9C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450DA8
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 246, 0, 235 @ 8450DB4
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8450DC0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 246, 0, 235 @ 8450DB4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8450DC0
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8450DCC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450DD8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8450DE4
@@ -11692,7 +11692,7 @@ voicegroup_8450FA0:: @ 8450FA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451144
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451150
voice_square_1 0, 2, 0, 0, 15, 0 @ 845115C
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 252, 0, 115 @ 8451168
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 252, 0, 115 @ 8451168
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451174
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451180
voice_square_1 0, 2, 0, 0, 15, 0 @ 845118C
@@ -11701,7 +11701,7 @@ voicegroup_8450FA0:: @ 8450FA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84511B0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84511BC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84511C8
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 84511D4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 84511D4
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84511E0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84511EC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84511F8
@@ -11774,7 +11774,7 @@ voicegroup_8451390:: @ 8451390
voice_square_1 0, 2, 0, 0, 15, 0 @ 84514F8
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451504
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451510
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 235, 128, 99 @ 845151C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 235, 128, 99 @ 845151C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451528
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451534
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451540
@@ -11788,7 +11788,7 @@ voicegroup_8451390:: @ 8451390
voice_square_1 0, 2, 0, 0, 15, 0 @ 84515A0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84515AC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84515B8
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 84515C4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 84515C4
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 84515D0
voice_square_1 0, 2, 0, 0, 15, 0 @ 84515DC
voice_square_1 0, 2, 0, 0, 15, 0 @ 84515E8
@@ -11867,12 +11867,12 @@ voicegroup_8451390:: @ 8451390
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451954
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451960
voice_square_1 0, 2, 0, 0, 15, 0 @ 845196C
- voice_directsound 60, 0, DirectSoundWaveData_8460E60, 255, 235, 0, 216 @ 8451978
- voice_directsound 60, 0, DirectSoundWaveData_8460E60, 255, 246, 0, 216 @ 8451984
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 255, 235, 0, 216 @ 8451978
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 255, 246, 0, 216 @ 8451984
.align 2
voicegroup_8451990:: @ 8451990
- voice_directsound 60, 0, DirectSoundWaveData_8486924, 255, 249, 103, 165 @ 8451990
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitSnare4, 255, 249, 103, 165 @ 8451990
voice_square_1 0, 2, 0, 0, 15, 0 @ 845199C
voice_square_1 0, 2, 0, 0, 15, 0 @ 84519A8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84519B4
@@ -11885,8 +11885,8 @@ voicegroup_8451990:: @ 8451990
voice_square_1_alt 0, 2, 2, 0, 15, 0 @ 8451A08
voice_square_1_alt 0, 1, 2, 0, 15, 0 @ 8451A14
voice_square_1_alt 23, 1, 0, 1, 9, 0 @ 8451A20
- voice_directsound 60, 0, DirectSoundWaveData_8487330, 255, 0, 255, 165 @ 8451A2C
- voice_directsound 60, 0, DirectSoundWaveData_8487330, 255, 226, 0, 165 @ 8451A38
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SquareWave, 255, 0, 255, 165 @ 8451A2C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SquareWave, 255, 226, 0, 165 @ 8451A38
voice_square_1_alt 0, 2, 0, 6, 0, 1 @ 8451A44
voice_square_1_alt 36, 0, 0, 2, 0, 0 @ 8451A50
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451A5C
@@ -11919,7 +11919,7 @@ voicegroup_8451990:: @ 8451990
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451BA0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451BAC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451BB8
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 246, 0, 226 @ 8451BC4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 246, 0, 226 @ 8451BC4
voice_keysplit voicegroup_8430234, KeySplitTable_845526C @ 8451BD0
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451BDC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8451BE8
@@ -12003,80 +12003,80 @@ voicegroup_8451990:: @ 8451990
.align 2
voicegroup_8451F90:: @ 8451F90
- voice_directsound_no_resample 60, 0, DirectSoundWaveData_8488F44, 255, 249, 0, 165 @ 8451F90
- voice_directsound_alt 60, 0, DirectSoundWaveData_8488F44, 255, 0, 255, 165 @ 8451F9C
- voice_directsound 60, 0, DirectSoundWaveData_8486924, 255, 0, 255, 165 @ 8451FA8
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 242, 0, 127 @ 8451FB4
+ voice_directsound_no_resample 60, 0, DirectSoundWaveData_Ring, 255, 249, 0, 165 @ 8451F90
+ voice_directsound_alt 60, 0, DirectSoundWaveData_Ring, 255, 0, 255, 165 @ 8451F9C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitSnare4, 255, 0, 255, 165 @ 8451FA8
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 242, 0, 127 @ 8451FB4
voice_noise_alt 0, 0, 1, 0, 1 @ 8451FC0
voice_noise_alt 1, 0, 1, 0, 1 @ 8451FCC
- voice_directsound 60, 0, DirectSoundWaveData_8459944, 255, 0, 255, 165 @ 8451FD8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitTimbale2, 255, 0, 255, 165 @ 8451FD8
voice_square_1_alt 0, 2, 0, 2, 0, 1 @ 8451FE4
- voice_directsound 60, 0, DirectSoundWaveData_848A8A4, 255, 0, 255, 165 @ 8451FF0
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 0, 255, 127 @ 8451FFC
- voice_directsound 60, 0, DirectSoundWaveData_848C4A4, 255, 0, 255, 127 @ 8452008
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitSnare3, 255, 0, 255, 165 @ 8451FF0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 0, 255, 127 @ 8451FFC
+ voice_directsound 60, 0, DirectSoundWaveData_MachineSound2, 255, 0, 255, 127 @ 8452008
voice_noise_alt 1, 0, 2, 0, 0 @ 8452014
voice_square_1 0x67, 3, 2, 7, 0, 0 @ 8452020
voice_square_2 3, 2, 7, 0, 0 @ 845202C
- voice_directsound 60, 0, DirectSoundWaveData_8487330, 255, 226, 0, 127 @ 8452038
- voice_directsound 60, 0, DirectSoundWaveData_848E094, 255, 0, 255, 0 @ 8452044
- voice_directsound 60, 0, DirectSoundWaveData_8487330, 255, 204, 0, 127 @ 8452050
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SquareWave, 255, 226, 0, 127 @ 8452038
+ voice_directsound 60, 0, DirectSoundWaveData_MachineSound1, 255, 0, 255, 0 @ 8452044
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SquareWave, 255, 204, 0, 127 @ 8452050
voice_square_1_alt 0, 2, 0, 2, 0, 1 @ 845205C
- voice_directsound 60, 0, DirectSoundWaveData_848F448, 255, 0, 255, 127 @ 8452068
- voice_directsound 60, 0, DirectSoundWaveData_8487330, 255, 0, 255, 127 @ 8452074
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Applause2, 255, 0, 255, 127 @ 8452068
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SquareWave, 255, 0, 255, 127 @ 8452074
voice_square_1 103, 0, 0, 7, 0, 0 @ 8452080
- voice_directsound 60, 0, DirectSoundWaveData_845C238, 255, 0, 255, 127 @ 845208C
- voice_directsound 60, 0, DirectSoundWaveData_8491ACC, 255, 0, 255, 127 @ 8452098
- voice_directsound 60, 0, DirectSoundWaveData_8492D10, 255, 0, 255, 127 @ 84520A4
- voice_directsound 60, 0, DirectSoundWaveData_845B2B4, 255, 0, 255, 127 @ 84520B0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitSnare2, 255, 0, 255, 127 @ 845208C
+ voice_directsound 60, 0, DirectSoundWaveData_Noise3, 255, 0, 255, 127 @ 8452098
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Bubble, 255, 0, 255, 127 @ 84520A4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitSnare1, 255, 0, 255, 127 @ 84520B0
voice_noise_alt 0, 0, 7, 15, 1 @ 84520BC
- voice_directsound 60, 0, DirectSoundWaveData_8493D20, 255, 0, 255, 127 @ 84520C8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_CarCrash, 255, 0, 255, 127 @ 84520C8
voice_noise_alt 1, 0, 7, 15, 1 @ 84520D4
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 246, 0, 127 @ 84520E0
- voice_directsound 60, 0, DirectSoundWaveData_8495028, 255, 0, 255, 127 @ 84520EC
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 246, 0, 127 @ 84520E0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PinkNoise, 255, 0, 255, 127 @ 84520EC
voice_square_1_alt 19, 2, 0, 2, 0, 0 @ 84520F8
- voice_directsound 60, 0, DirectSoundWaveData_8497134, 255, 0, 255, 127 @ 8452104
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WaspySynth, 255, 0, 255, 127 @ 8452104
voice_square_1 103, 0, 0, 0, 15, 0 @ 8452110
- voice_directsound_alt 60, 0, DirectSoundWaveData_8495028, 255, 0, 255, 127 @ 845211C
- voice_directsound 60, 0, DirectSoundWaveData_84571CC, 255, 255, 255, 127 @ 8452128
- voice_directsound 60, 0, DirectSoundWaveData_8458CD0, 255, 0, 255, 127 @ 8452134
- voice_directsound 60, 0, DirectSoundWaveData_8499110, 255, 0, 255, 127 @ 8452140
- voice_directsound 60, 0, DirectSoundWaveData_8497134, 255, 242, 0, 0 @ 845214C
- voice_directsound 60, 0, DirectSoundWaveData_849B320, 255, 0, 255, 0 @ 8452158
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 165, 90, 216 @ 8452164
- voice_directsound 60, 0, DirectSoundWaveData_845DAF0, 255, 127, 0, 188 @ 8452170
- voice_directsound 60, 0, DirectSoundWaveData_849D45C, 255, 249, 0, 165 @ 845217C
+ voice_directsound_alt 60, 0, DirectSoundWaveData_SC88_PinkNoise, 255, 0, 255, 127 @ 845211C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FretlessBass, 255, 255, 255, 127 @ 8452128
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SynthBass1, 255, 0, 255, 127 @ 8452134
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WhiteNoise, 255, 0, 255, 127 @ 8452140
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WaspySynth, 255, 242, 0, 0 @ 845214C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumkitGuiro, 255, 0, 255, 0 @ 8452158
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 165, 90, 216 @ 8452164
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitClosedHiHat, 255, 127, 0, 188 @ 8452170
+ voice_directsound 60, 0, DirectSoundWaveData_Noise1, 255, 249, 0, 165 @ 845217C
voice_square_1 0, 0, 4, 6, 0, 0 @ 8452188
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 13, 0, 255, 127 @ 8452194
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 13, 0, 255, 127 @ 84521A0
- voice_directsound 60, 0, DirectSoundWaveData_849F40C, 255, 0, 255, 127 @ 84521AC
- voice_directsound 60, 0, DirectSoundWaveData_84A26EC, 255, 252, 0, 204 @ 84521B8
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 13, 0, 255, 127 @ 8452194
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 13, 0, 255, 127 @ 84521A0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_JPSuperSaw, 255, 0, 255, 127 @ 84521AC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Piano1, 255, 252, 0, 204 @ 84521B8
voice_square_1 0, 2, 0, 0, 15, 0 @ 84521C4
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 235, 0, 204 @ 84521D0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 235, 0, 204 @ 84521D0
voice_square_1 0, 0, 4, 0, 15, 0 @ 84521DC
- voice_directsound 60, 0, DirectSoundWaveData_84A311C, 255, 188, 0, 0 @ 84521E8
- voice_directsound 60, 0, DirectSoundWaveData_849BAEC, 255, 226, 0, 127 @ 84521F4
- voice_directsound 60, 0, DirectSoundWaveData_8460E60, 26, 0, 255, 127 @ 8452200
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_Marimba, 255, 188, 0, 0 @ 84521E8
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_TubularBell, 255, 226, 0, 127 @ 84521F4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitCrashCymbal1, 26, 0, 255, 127 @ 8452200
voice_square_1_alt 0, 2, 0, 1, 0, 0 @ 845220C
- voice_directsound 60, 0, DirectSoundWaveData_8456330, 255, 252, 0, 127 @ 8452218
+ voice_directsound 60, 0, DirectSoundWaveData_Tone1, 255, 252, 0, 127 @ 8452218
voice_square_1_alt 0, 1, 0, 2, 0, 0 @ 8452224
- voice_directsound 60, 0, DirectSoundWaveData_848BD68, 255, 127, 0, 127 @ 8452230
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_PizzicatoStrings, 255, 127, 0, 127 @ 8452230
voice_noise_alt 0, 1, 6, 0, 0 @ 845223C
- voice_directsound 60, 0, DirectSoundWaveData_8457D98, 255, 255, 255, 127 @ 8452248
- voice_directsound 60, 0, DirectSoundWaveData_845B9A8, 255, 255, 255, 127 @ 8452254
- voice_directsound 60, 0, DirectSoundWaveData_84A3B50, 255, 255, 255, 127 @ 8452260
- voice_directsound 60, 0, DirectSoundWaveData_847CBAC, 11, 242, 0, 127 @ 845226C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_FingerSlap, 255, 255, 255, 127 @ 8452248
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitHandClap, 255, 255, 255, 127 @ 8452254
+ voice_directsound 60, 0, DirectSoundWaveData_Noise2, 255, 255, 255, 127 @ 8452260
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WideFrenchHorns, 11, 242, 0, 127 @ 845226C
voice_square_1_alt 0, 2, 4, 6, 0, 0 @ 8452278
- voice_directsound 60, 0, DirectSoundWaveData_84A5690, 255, 255, 255, 127 @ 8452284
- voice_directsound 60, 0, DirectSoundWaveData_84A5F58, 255, 0, 255, 165 @ 8452290
- voice_directsound 60, 0, DirectSoundWaveData_845CAB0, 255, 0, 255, 165 @ 845229C
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_HorseGallop, 255, 255, 255, 127 @ 8452284
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_AccordianFr, 255, 0, 255, 165 @ 8452290
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_DrumKitHiMidTom, 255, 0, 255, 165 @ 845229C
voice_noise_alt 0, 5, 7, 15, 1 @ 84522A8
- voice_directsound 60, 0, DirectSoundWaveData_8487330, 128, 242, 0, 165 @ 84522B4
- voice_directsound 60, 0, DirectSoundWaveData_846A4B8, 255, 0, 255, 165 @ 84522C0
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_SquareWave, 128, 242, 0, 165 @ 84522B4
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_StringsPlusFlute, 255, 0, 255, 165 @ 84522C0
voice_square_1 0, 0, 1, 5, 0, 0 @ 84522CC
voice_noise_alt 0, 6, 6, 0, 1 @ 84522D8
voice_noise_alt 0, 3, 6, 0, 1 @ 84522E4
voice_square_1 0, 2, 0, 0, 15, 0 @ 84522F0
- voice_directsound 60, 0, DirectSoundWaveData_8497134, 15, 127, 231, 127 @ 84522FC
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_WaspySynth, 15, 127, 231, 127 @ 84522FC
voice_square_1 0, 2, 0, 0, 15, 0 @ 8452308
voice_square_1 0, 2, 0, 0, 15, 0 @ 8452314
voice_square_1 0, 2, 0, 0, 15, 0 @ 8452320
@@ -12125,12 +12125,12 @@ voicegroup_8451F90:: @ 8451F90
voice_square_1 0, 2, 0, 0, 15, 0 @ 8452524
voice_square_1 0, 2, 0, 0, 15, 0 @ 8452530
voice_square_1 0, 2, 0, 0, 15, 0 @ 845253C
- voice_directsound 60, 0, DirectSoundWaveData_84A7328, 255, 0, 255, 165 @ 8452548
- voice_directsound 60, 0, DirectSoundWaveData_84A7F38, 255, 0, 255, 165 @ 8452554
- voice_directsound 60, 0, DirectSoundWaveData_84A8AC8, 255, 0, 255, 165 @ 8452560
- voice_directsound 60, 0, DirectSoundWaveData_84A9564, 255, 0, 255, 165 @ 845256C
- voice_directsound 60, 0, DirectSoundWaveData_84A9EAC, 255, 0, 255, 165 @ 8452578
- voice_directsound 60, 0, DirectSoundWaveData_84AA8F4, 255, 0, 255, 165 @ 8452584
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel1, 255, 0, 255, 165 @ 8452548
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel2, 255, 0, 255, 165 @ 8452554
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel3, 255, 0, 255, 165 @ 8452560
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel4, 255, 0, 255, 165 @ 845256C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel5, 255, 0, 255, 165 @ 8452578
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel6, 255, 0, 255, 165 @ 8452584
.align 2
voicegroup_8452590:: @ 8452590
@@ -12934,57 +12934,57 @@ voicegroup_84549C0:: @ 84549C0
.align 2
voicegroup_84549F0:: @ 84549F0
- voice_directsound 60, 0, DirectSoundWaveData_8639898, 255, 0, 255, 0 @ 84549F0
- voice_directsound 60, 0, DirectSoundWaveData_8639EF8, 255, 0, 255, 0 @ 84549FC
- voice_directsound 60, 0, DirectSoundWaveData_863A3DC, 255, 0, 255, 0 @ 8454A08
- voice_directsound 60, 0, DirectSoundWaveData_863AD2C, 255, 0, 255, 0 @ 8454A14
- voice_directsound 60, 0, DirectSoundWaveData_863B79C, 255, 0, 255, 0 @ 8454A20
- voice_directsound 60, 0, DirectSoundWaveData_863BABC, 255, 0, 255, 0 @ 8454A2C
- voice_directsound 60, 0, DirectSoundWaveData_863C744, 255, 0, 255, 0 @ 8454A38
- voice_directsound 60, 0, DirectSoundWaveData_863CD64, 255, 0, 255, 0 @ 8454A44
- voice_directsound 60, 0, DirectSoundWaveData_863D0EC, 255, 0, 255, 0 @ 8454A50
- voice_directsound 60, 0, DirectSoundWaveData_863DED0, 255, 0, 255, 0 @ 8454A5C
- voice_directsound 60, 0, DirectSoundWaveData_863E840, 255, 0, 255, 0 @ 8454A68
- voice_directsound 60, 0, DirectSoundWaveData_863EBDC, 255, 0, 255, 0 @ 8454A74
- voice_directsound 60, 0, DirectSoundWaveData_863F390, 255, 0, 255, 0 @ 8454A80
- voice_directsound 60, 0, DirectSoundWaveData_86400EC, 255, 0, 255, 0 @ 8454A8C
- voice_directsound 60, 0, DirectSoundWaveData_8640330, 255, 0, 255, 0 @ 8454A98
- voice_directsound 60, 0, DirectSoundWaveData_8641170, 255, 0, 255, 0 @ 8454AA4
- voice_directsound 60, 0, DirectSoundWaveData_8641AC4, 255, 0, 255, 0 @ 8454AB0
- voice_directsound 60, 0, DirectSoundWaveData_8641E18, 255, 0, 255, 0 @ 8454ABC
- voice_directsound 60, 0, DirectSoundWaveData_864244C, 255, 0, 255, 0 @ 8454AC8
- voice_directsound 60, 0, DirectSoundWaveData_86430B8, 255, 0, 255, 0 @ 8454AD4
- voice_directsound 60, 0, DirectSoundWaveData_8643650, 255, 0, 255, 0 @ 8454AE0
- voice_directsound 60, 0, DirectSoundWaveData_8644154, 255, 0, 255, 0 @ 8454AEC
- voice_directsound 60, 0, DirectSoundWaveData_8644758, 255, 0, 255, 0 @ 8454AF8
- voice_directsound 60, 0, DirectSoundWaveData_8644950, 255, 0, 255, 0 @ 8454B04
- voice_directsound 60, 0, DirectSoundWaveData_86452B4, 255, 0, 255, 0 @ 8454B10
- voice_directsound 60, 0, DirectSoundWaveData_8646240, 255, 0, 255, 0 @ 8454B1C
- voice_directsound 60, 0, DirectSoundWaveData_8646878, 255, 0, 255, 0 @ 8454B28
- voice_directsound 60, 0, DirectSoundWaveData_864734C, 255, 0, 255, 0 @ 8454B34
- voice_directsound 60, 0, DirectSoundWaveData_8648290, 255, 0, 255, 0 @ 8454B40
- voice_directsound 60, 0, DirectSoundWaveData_8648808, 255, 0, 255, 0 @ 8454B4C
- voice_directsound 60, 0, DirectSoundWaveData_8649654, 255, 0, 255, 0 @ 8454B58
- voice_directsound 60, 0, DirectSoundWaveData_864A55C, 255, 0, 255, 0 @ 8454B64
- voice_directsound 60, 0, DirectSoundWaveData_864B030, 255, 0, 255, 0 @ 8454B70
- voice_directsound 60, 0, DirectSoundWaveData_864BBC4, 255, 0, 255, 0 @ 8454B7C
- voice_directsound 60, 0, DirectSoundWaveData_864C59C, 255, 0, 255, 0 @ 8454B88
- voice_directsound 60, 0, DirectSoundWaveData_864CBDC, 255, 0, 255, 0 @ 8454B94
- voice_directsound 60, 0, DirectSoundWaveData_864D6BC, 255, 0, 255, 0 @ 8454BA0
- voice_directsound 60, 0, DirectSoundWaveData_864DCF8, 255, 0, 255, 0 @ 8454BAC
- voice_directsound 60, 0, DirectSoundWaveData_864E410, 255, 0, 255, 0 @ 8454BB8
- voice_directsound 60, 0, DirectSoundWaveData_864ED4C, 255, 0, 255, 0 @ 8454BC4
- voice_directsound 60, 0, DirectSoundWaveData_864F508, 255, 0, 255, 0 @ 8454BD0
- voice_directsound 60, 0, DirectSoundWaveData_864FA6C, 255, 0, 255, 0 @ 8454BDC
- voice_directsound 60, 0, DirectSoundWaveData_86507E0, 255, 0, 255, 0 @ 8454BE8
- voice_directsound 60, 0, DirectSoundWaveData_8650C5C, 255, 0, 255, 0 @ 8454BF4
- voice_directsound 60, 0, DirectSoundWaveData_8651148, 255, 0, 255, 0 @ 8454C00
- voice_directsound 60, 0, DirectSoundWaveData_8651910, 255, 0, 255, 0 @ 8454C0C
- voice_directsound 60, 0, DirectSoundWaveData_865250C, 255, 0, 255, 0 @ 8454C18
- voice_directsound 60, 0, DirectSoundWaveData_8652884, 255, 0, 255, 0 @ 8454C24
- voice_directsound 60, 0, DirectSoundWaveData_8653040, 255, 0, 255, 0 @ 8454C30
- voice_directsound 60, 0, DirectSoundWaveData_8653CA4, 255, 0, 255, 0 @ 8454C3C
- voice_directsound 60, 0, DirectSoundWaveData_8654170, 255, 0, 255, 0 @ 8454C48
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel7, 255, 0, 255, 0 @ 84549F0
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel8, 255, 0, 255, 0 @ 84549FC
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel9, 255, 0, 255, 0 @ 8454A08
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel10, 255, 0, 255, 0 @ 8454A14
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel11, 255, 0, 255, 0 @ 8454A20
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel12, 255, 0, 255, 0 @ 8454A2C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel13, 255, 0, 255, 0 @ 8454A38
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel14, 255, 0, 255, 0 @ 8454A44
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel15, 255, 0, 255, 0 @ 8454A50
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel16, 255, 0, 255, 0 @ 8454A5C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel17, 255, 0, 255, 0 @ 8454A68
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel18, 255, 0, 255, 0 @ 8454A74
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel19, 255, 0, 255, 0 @ 8454A80
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel20, 255, 0, 255, 0 @ 8454A8C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel21, 255, 0, 255, 0 @ 8454A98
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel22, 255, 0, 255, 0 @ 8454AA4
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel23, 255, 0, 255, 0 @ 8454AB0
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel24, 255, 0, 255, 0 @ 8454ABC
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel25, 255, 0, 255, 0 @ 8454AC8
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel26, 255, 0, 255, 0 @ 8454AD4
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel27, 255, 0, 255, 0 @ 8454AE0
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel28, 255, 0, 255, 0 @ 8454AEC
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel29, 255, 0, 255, 0 @ 8454AF8
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel30, 255, 0, 255, 0 @ 8454B04
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel31, 255, 0, 255, 0 @ 8454B10
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel32, 255, 0, 255, 0 @ 8454B1C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel33, 255, 0, 255, 0 @ 8454B28
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel34, 255, 0, 255, 0 @ 8454B34
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel35, 255, 0, 255, 0 @ 8454B40
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel36, 255, 0, 255, 0 @ 8454B4C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel37, 255, 0, 255, 0 @ 8454B58
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel38, 255, 0, 255, 0 @ 8454B64
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel39, 255, 0, 255, 0 @ 8454B70
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel40, 255, 0, 255, 0 @ 8454B7C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel41, 255, 0, 255, 0 @ 8454B88
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel42, 255, 0, 255, 0 @ 8454B94
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel43, 255, 0, 255, 0 @ 8454BA0
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel44, 255, 0, 255, 0 @ 8454BAC
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel45, 255, 0, 255, 0 @ 8454BB8
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel46, 255, 0, 255, 0 @ 8454BC4
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel47, 255, 0, 255, 0 @ 8454BD0
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel48, 255, 0, 255, 0 @ 8454BDC
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel49, 255, 0, 255, 0 @ 8454BE8
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel50, 255, 0, 255, 0 @ 8454BF4
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel51, 255, 0, 255, 0 @ 8454C00
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel52, 255, 0, 255, 0 @ 8454C0C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel53, 255, 0, 255, 0 @ 8454C18
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel54, 255, 0, 255, 0 @ 8454C24
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel55, 255, 0, 255, 0 @ 8454C30
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel56, 255, 0, 255, 0 @ 8454C3C
+ voice_directsound 60, 0, DirectSoundWaveData_Phoneme_Vowel57, 255, 0, 255, 0 @ 8454C48
.align 2
voicegroup_8454C54:: @ 8454C54
@@ -13009,7 +13009,7 @@ voicegroup_8454C54:: @ 8454C54
voice_square_1 0, 2, 0, 0, 15, 0 @ 8454D2C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8454D38
voice_square_1 0, 2, 0, 0, 15, 0 @ 8454D44
- voice_directsound 60, 0, DirectSoundWaveData_8654C20, 255, 249, 25, 248 @ 8454D50
+ voice_directsound 60, 0, DirectSoundWaveData_SC88_AccordionFr_Copy, 255, 249, 25, 248 @ 8454D50
voice_square_1 0, 2, 0, 0, 15, 0 @ 8454D5C
voice_square_1 0, 2, 0, 0, 15, 0 @ 8454D68
voice_square_1 0, 2, 0, 0, 15, 0 @ 8454D74
diff --git a/src/battle/anim/alert.c b/src/battle/anim/alert.c
index 7cd42c17b..7cd42c17b 100755..100644
--- a/src/battle/anim/alert.c
+++ b/src/battle/anim/alert.c
diff --git a/src/battle/anim/angel.c b/src/battle/anim/angel.c
index 5ec083887..5ec083887 100755..100644
--- a/src/battle/anim/angel.c
+++ b/src/battle/anim/angel.c
diff --git a/src/battle/anim/angel_kiss.c b/src/battle/anim/angel_kiss.c
index d5be6e2af..d5be6e2af 100755..100644
--- a/src/battle/anim/angel_kiss.c
+++ b/src/battle/anim/angel_kiss.c
diff --git a/src/battle/anim/anger.c b/src/battle/anim/anger.c
index 011aa68ce..011aa68ce 100755..100644
--- a/src/battle/anim/anger.c
+++ b/src/battle/anim/anger.c
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c
new file mode 100644
index 000000000..01f823fa7
--- /dev/null
+++ b/src/battle/anim/battle_intro.c
@@ -0,0 +1,499 @@
+#include "global.h"
+#include "constants/battle_constants.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "battle_anim_80CA710.h"
+#include "data2.h"
+#include "ewram.h"
+#include "main.h"
+#include "rom_8077ABC.h"
+#include "scanline_effect.h"
+#include "task.h"
+#include "trig.h"
+
+extern u16 gBattleTypeFlags;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_WIN0V;
+extern u16 gUnknown_02024DE8;
+extern u8 gBattleMonForms[];
+
+extern void sub_800FE20(struct Sprite *);
+
+static void BattleIntroTask_ScrollScenery(u8);
+static void BattleIntroTask_FadeScenery(u8);
+static void BattleIntroTask_ScrollAndFadeScenery(u8);
+static void BattleIntroTask_80E4C34(u8);
+
+static const TaskFunc sBattleIntroTaskFuncs[] =
+{
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_FadeScenery,
+ BattleIntroTask_FadeScenery,
+ BattleIntroTask_FadeScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollScenery,
+ BattleIntroTask_ScrollAndFadeScenery,
+ BattleIntroTask_ScrollAndFadeScenery,
+};
+
+#define tState data[0]
+#define tBgXOffset data[2]
+#define tFramesUntilBg1Slide data[3]
+
+void StartBattleIntroAnim(u8 a)
+{
+ u8 taskId;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ taskId = CreateTask(BattleIntroTask_80E4C34, 0);
+ }
+ else if ((gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) && gGameVersion != VERSION_RUBY)
+ {
+ a = 3;
+ taskId = CreateTask(BattleIntroTask_FadeScenery, 0);
+ }
+ else
+ {
+ taskId = CreateTask(sBattleIntroTaskFuncs[a], 0);
+ }
+
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].data[1] = a;
+ gTasks[taskId].tBgXOffset = 0;
+ gTasks[taskId].tFramesUntilBg1Slide = 0;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].data[6] = 0;
+}
+
+static void EndBattleIntroTask(u8 taskId)
+{
+ DestroyTask(taskId);
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3F;
+}
+
+static void BattleIntroTask_ScrollScenery(u8 taskId)
+{
+ s32 i;
+
+ gBattle_BG1_X += 6;
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ }
+ else
+ {
+ gTasks[taskId].tBgXOffset = 1;
+ gTasks[taskId].tState++;
+ }
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ REG_WININ = 0x3F;
+ }
+ break;
+ case 2:
+ // Open up the window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].tFramesUntilBg1Slide != 0)
+ {
+ gTasks[taskId].tFramesUntilBg1Slide--;
+ }
+ else
+ {
+ if (gTasks[taskId].data[1] == 1)
+ {
+ if (gBattle_BG1_Y != 0xFFB0)
+ gBattle_BG1_Y -= 2;
+ }
+ else
+ {
+ if (gBattle_BG1_Y != 0xFFC8)
+ gBattle_BG1_Y -= 1;
+ }
+ }
+
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+}
+
+static void BattleIntroTask_FadeScenery(u8 taskId)
+{
+ s32 i;
+
+ switch (gTasks[taskId].data[1])
+ {
+ case 2:
+ case 4:
+ gBattle_BG1_X += 8;
+ break;
+ case 3:
+ gBattle_BG1_X += 6;
+ break;
+ }
+
+ if (gTasks[taskId].data[1] == 4)
+ {
+ gBattle_BG1_Y = Cos2(gTasks[taskId].data[6]) / 512 - 8;
+ if (gTasks[taskId].data[6] < 0xB4)
+ gTasks[taskId].data[6] += 4;
+ else
+ gTasks[taskId].data[6] += 6;
+ if (gTasks[taskId].data[6] == 0x168)
+ gTasks[taskId].data[6] = 0;
+ }
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ gTasks[taskId].data[4] = 16;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ }
+ else
+ {
+ gTasks[taskId].tBgXOffset = 1;
+ gTasks[taskId].tState++;
+ }
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ REG_WININ = 0x3F;
+ }
+ break;
+ case 2:
+ // Open up window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gTasks[taskId].data[5] = 1;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].tFramesUntilBg1Slide != 0)
+ {
+ gTasks[taskId].tFramesUntilBg1Slide--;
+ if (gTasks[taskId].tFramesUntilBg1Slide == 0)
+ {
+ REG_BLDCNT = 0x1842;
+ REG_BLDALPHA = 0xF;
+ REG_BLDY = 0;
+ }
+ }
+ else
+ {
+ if ((gTasks[taskId].data[4] & 0x1F) && --gTasks[taskId].data[5] == 0)
+ {
+ gTasks[taskId].data[4] += 255;
+ gTasks[taskId].data[5] = 4;
+ }
+ }
+
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+
+ if (gTasks[taskId].tState != 4)
+ REG_BLDALPHA = gTasks[taskId].data[4];
+}
+
+static void BattleIntroTask_ScrollAndFadeScenery(u8 taskId)
+{
+ s32 i;
+
+ gBattle_BG1_X += 8;
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ REG_BLDCNT = 0x1842;
+ REG_BLDALPHA = 0x0808;
+ REG_BLDY = 0;
+ gTasks[taskId].data[4] = 0x0808;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ }
+ else
+ {
+ gTasks[taskId].tBgXOffset = 1;
+ gTasks[taskId].tState++;
+ }
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ REG_WININ = 0x3F;
+ }
+ break;
+ case 2:
+ // Open up window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gTasks[taskId].data[5] = 1;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].tFramesUntilBg1Slide != 0)
+ {
+ gTasks[taskId].tFramesUntilBg1Slide--;
+ }
+ else
+ {
+ if ((gTasks[taskId].data[4] & 0xF) && --gTasks[taskId].data[5] == 0)
+ {
+ gTasks[taskId].data[4] += 255;
+ gTasks[taskId].data[5] = 6;
+ }
+ }
+
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+
+ if (gTasks[taskId].tState != 4)
+ REG_BLDALPHA = gTasks[taskId].data[4];
+}
+
+// Seems to only be used for link battles.
+static void BattleIntroTask_80E4C34(u8 taskId)
+{
+ s32 i;
+
+ if (gTasks[taskId].tState > 1 && gTasks[taskId].data[4] == 0)
+ {
+ if ((gBattle_BG1_X & 0x8000) || gBattle_BG1_X < 80) // hmm...
+ {
+ gBattle_BG1_X += 3;
+ gBattle_BG2_X -= 3;
+ }
+ else
+ {
+ CpuFill32(0, (void *)(VRAM + 0xE000), 0x800);
+ CpuFill32(0, (void *)(VRAM + 0xF000), 0x800);
+ gTasks[taskId].data[4] = 1;
+ }
+ }
+
+ switch (gTasks[taskId].tState)
+ {
+ case 0:
+ gTasks[taskId].tBgXOffset = 16;
+ gTasks[taskId].tState++;
+ break;
+ case 1:
+ gTasks[taskId].tBgXOffset--;
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gTasks[taskId].tState++;
+ gSprites[ewram1608A].oam.objMode = 2;
+ gSprites[ewram1608A].callback = sub_800FE20;
+ gSprites[ewram1608B].oam.objMode = 2;
+ gSprites[ewram1608B].callback = sub_800FE20;
+ REG_WININ = 0x3F;
+ REG_WINOUT = 0x3F06;
+ }
+ break;
+ case 2:
+ // Open up window
+ gBattle_WIN0V -= WIN_RANGE(1, 0); // decrement min Y
+ gBattle_WIN0V += WIN_RANGE(0, 1); // increment max Y
+ if ((gBattle_WIN0V & 0xFF00) == 0x3000)
+ {
+ gTasks[taskId].tState++;
+ gTasks[taskId].tBgXOffset = DISPLAY_WIDTH;
+ gTasks[taskId].tFramesUntilBg1Slide = 32;
+ gUnknown_02024DE8 &= ~1;
+ }
+ break;
+ case 3:
+ if ((gBattle_WIN0V & 0xFF00) != 0)
+ gBattle_WIN0V -= 1020;
+
+ if (gTasks[taskId].tBgXOffset != 0)
+ gTasks[taskId].tBgXOffset -= 2;
+
+ // Slide in the top half of the BG from the left
+ for (i = 0; i < DISPLAY_HEIGHT / 2; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gTasks[taskId].tBgXOffset;
+ // Slide in the bottom half of the BG from the right
+ for (; i < DISPLAY_HEIGHT; i++)
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = -gTasks[taskId].tBgXOffset;
+
+ if (gTasks[taskId].tBgXOffset == 0)
+ {
+ gScanlineEffect.state = 3;
+ gTasks[taskId].tState++;
+ REG_BG1CNT = 0x9C00;
+ REG_BG2CNT = 0x5E00;
+ }
+ break;
+ case 4:
+ EndBattleIntroTask(taskId);
+ break;
+ }
+}
+
+void unref_sub_80E4EC8(u8 a, u8 b, u8 c, u8 d)
+{
+ sub_80E4EF8(a, b, c, d, 0x4000, 30, 1);
+}
+
+// draws some 8x8 tilemap
+void sub_80E4EF8(u8 left, u8 top, u8 c, u8 paletteNum, u16 e, u8 bgMap, u8 g)
+{
+ u32 tileNum;
+ s32 x;
+ s32 y;
+ u8 bank = GetBankByIdentity(c);
+
+ DmaCopy16(3, gUnknown_081FAF4C[c] + gBattleMonForms[bank] * 0x800, (void *)(VRAM + e), 0x800);
+ tileNum = e / 32 - g * 512;
+ for (y = top; y < top + 8; y++)
+ {
+ for (x = left; x < left + 8; x++)
+ {
+ *(u16 *)(VRAM + x * 2 + bgMap * 0x800 + y * 64) = tileNum | (paletteNum << 12);
+ tileNum++;
+ }
+ }
+}
+
+void unref_sub_80E4FDC(u8 left, u8 top, u8 c, u8 form, u8 paletteNum, u16 f, u8 bgMap, u8 h)
+{
+ u32 tileNum;
+ s32 x;
+ s32 y;
+
+ DmaCopy16(3, gUnknown_081FAF4C[c] + form * 0x800, (void *)(VRAM + f), 0x800);
+ tileNum = f / 32 - h * 512;
+ for (y = top; y < top + 8; y++)
+ {
+ for (x = left; x < left + 8; x++)
+ {
+ *(u16 *)(VRAM + x * 2 + bgMap * 0x800 + y * 64) = tileNum | (paletteNum << 12);
+ tileNum++;
+ }
+ }
+}
diff --git a/src/battle/anim/blow_kiss.c b/src/battle/anim/blow_kiss.c
index e7b49471d..e7b49471d 100755..100644
--- a/src/battle/anim/blow_kiss.c
+++ b/src/battle/anim/blow_kiss.c
diff --git a/src/battle/anim/bottle.c b/src/battle/anim/bottle.c
index 5485bcf5d..5485bcf5d 100755..100644
--- a/src/battle/anim/bottle.c
+++ b/src/battle/anim/bottle.c
diff --git a/src/battle/anim/brace.c b/src/battle/anim/brace.c
index 19ea4297b..19ea4297b 100755..100644
--- a/src/battle/anim/brace.c
+++ b/src/battle/anim/brace.c
diff --git a/src/battle/anim/breath.c b/src/battle/anim/breath.c
index 831b222ad..831b222ad 100755..100644
--- a/src/battle/anim/breath.c
+++ b/src/battle/anim/breath.c
diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c
new file mode 100644
index 000000000..dbc0f75a5
--- /dev/null
+++ b/src/battle/anim/bug.c
@@ -0,0 +1,302 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "contest.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+// #include "util.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+
+static void sub_80DCA38(struct Sprite *sprite);
+static void sub_80DCAEC(struct Sprite *sprite);
+static void sub_80DCB5C(struct Sprite *sprite);
+static void sub_80DCBB4(struct Sprite *sprite);
+void sub_80DCD78(struct Sprite *sprite);
+
+// used in Move_MEGAHORN
+void sub_80DC824(struct Sprite *sprite)
+{
+ if (IsContest())
+ {
+ StartSpriteAffineAnim(sprite, 2);
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+ }
+ else if (!GetBankSide(gAnimBankTarget))
+ {
+ StartSpriteAffineAnim(sprite, 1);
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+ }
+
+ sprite->pos1.x = sub_8077EE4(gAnimBankTarget, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077EE4(gAnimBankTarget, 3) + gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[4];
+
+ sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+}
+
+// used in Move_LEECH_LIFE
+void sub_80DC8F4(struct Sprite *sprite)
+{
+ if (IsContest())
+ {
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+ StartSpriteAffineAnim(sprite, 2);
+ }
+ else if (!GetBankSide(gAnimBankTarget))
+ {
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+ }
+
+ sprite->pos1.x = sub_8077EE4(gAnimBankTarget, 2) + gBattleAnimArgs[0];
+ sprite->pos1.y = sub_8077EE4(gAnimBankTarget, 3) + gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+
+ sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
+ sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+}
+
+// used in 2 moves:
+// Move_STRING_SHOT, Move_SPIDER_WEB
+void sub_80DC9A0(struct Sprite *sprite)
+{
+ if (IsContest())
+ gBattleAnimArgs[2] /= 2;
+
+ sub_80787B0(sprite, 1);
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[3] = sprite->pos1.y;
+
+ if (!gBattleAnimArgs[4])
+ {
+ sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
+ sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
+ }
+ else
+ {
+ sub_807A3FC(gAnimBankTarget, 1, &sprite->data[2], &sprite->data[4]);
+ }
+
+ sub_8078BD4(sprite);
+ sprite->data[5] = gBattleAnimArgs[3];
+ sprite->callback = sub_80DCA38;
+}
+
+static void sub_80DCA38(struct Sprite *sprite)
+{
+ if (sub_8078B5C(sprite))
+ {
+ DestroyAnimSprite(sprite);
+ return;
+ }
+
+ sprite->pos2.x += Sin(sprite->data[6], sprite->data[5]);
+ sprite->data[6] = (sprite->data[6] + 13) & 0xFF;
+}
+
+// used in Move_STRING_SHOT
+void sub_80DCA70(struct Sprite *sprite)
+{
+ sub_807A3FC(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
+ if (GetBankSide(gAnimBankAttacker))
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ else
+ sprite->pos1.x += gBattleAnimArgs[0];
+
+ sprite->pos1.y += gBattleAnimArgs[1];
+ if (!GetBankSide(gAnimBankTarget))
+ sprite->pos1.y += 8;
+
+ sprite->callback = sub_80DCAEC;
+}
+
+static void sub_80DCAEC(struct Sprite *sprite)
+{
+ if (++sprite->data[0] == 3)
+ {
+ sprite->data[0] = 0;
+ sprite->invisible ^= 1;
+ }
+
+ if (++sprite->data[1] == 51)
+ {
+ DestroyAnimSprite(sprite);
+ }
+}
+
+// used in Move_SPIDER_WEB
+void sub_80DCB38(struct Sprite *sprite)
+{
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = 16;
+
+ sprite->data[0] = 16;
+ sprite->callback = sub_80DCB5C;
+}
+
+static void sub_80DCB5C(struct Sprite *sprite)
+{
+ if (sprite->data[2] < 20)
+ {
+ sprite->data[2]++;
+ }
+ else if (sprite->data[1]++ & 1)
+ {
+ sprite->data[0]--;
+ REG_BLDALPHA = sprite->data[0] | ((16 - sprite->data[0]) << 8);
+
+ if (sprite->data[0] == 0)
+ {
+ sprite->invisible = TRUE;
+ sprite->callback = sub_80DCBB4;
+ }
+ }
+}
+
+static void sub_80DCBB4(struct Sprite *sprite)
+{
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ DestroyAnimSprite(sprite);
+}
+
+// used in 3 moves:
+// Move_POISON_STING, Move_TWINEEDLE, Move_SPIKE_CANNON
+void sub_80DCBCC(struct Sprite *sprite)
+{
+ s16 lVarX, lVarY;
+ u16 rot;
+
+ if (IsContest())
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker))
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ }
+ }
+
+ if (!IsContest())
+ {
+ if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget))
+ {
+ if (GetBankIdentity(gAnimBankTarget) == 0 || GetBankIdentity(gAnimBankTarget) == 1)
+ {
+ s16 temp1, temp2;
+
+ temp1 = gBattleAnimArgs[2];
+ gBattleAnimArgs[2] = -temp1;
+
+ temp2 = gBattleAnimArgs[0];
+ gBattleAnimArgs[0] = -temp2;
+ }
+ }
+ }
+
+ sub_80787B0(sprite, 1);
+
+ lVarX = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
+ lVarY = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
+ rot = sub_80790F0(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y);
+ rot += 0xC000;
+ sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot);
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = lVarX;
+ sprite->data[4] = lVarY;
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+}
+
+// used in 2 moves:
+// Move_PIN_MISSILE, Move_ICICLE_SPEAR
+void sub_80DCCFC(struct Sprite *sprite)
+{
+ sub_80787B0(sprite, 1);
+
+ if (GetBankSide(gAnimBankAttacker))
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
+ sprite->data[5] = gBattleAnimArgs[5];
+ sub_80786EC(sprite);
+
+ sprite->callback = sub_80DCD78;
+ sprite->invisible = TRUE;
+}
+
+void sub_80DCD78(struct Sprite *sprite)
+{
+ sprite->invisible = FALSE;
+
+ if (sub_8078718(sprite))
+ {
+ DestroyAnimSprite(sprite);
+ }
+ else
+ {
+ s16 tempData[8];
+ u16 *data = sprite->data;
+ u16 x1 = sprite->pos1.x;
+ s16 x2 = sprite->pos2.x;
+ u16 y1 = sprite->pos1.y;
+ s16 y2 = sprite->pos2.y;
+ int i;
+
+ for (i = 0; i < 8; i++)
+ tempData[i] = data[i];
+
+ x2 += x1;
+ y2 += y1;
+
+ if (!sub_8078718(sprite))
+ {
+ u16 rot = sub_80790F0(sprite->pos1.x + sprite->pos2.x - x2,
+ sprite->pos1.y + sprite->pos2.y - y2);
+ rot += 0xC000;
+ sub_8078FDC(sprite, FALSE, 0x100, 0x100, rot);
+
+ for (i = 0; i < 8; i++)
+ data[i] = tempData[i];
+ }
+ }
+}
+
+void sub_80DCE40(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + 18;
+ }
+ else
+ {
+ sprite->pos1.x = GetBankPosition(gAnimBankTarget, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankTarget, 3) + 18;
+ }
+
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_80785E4;
+}
diff --git a/src/battle/anim/bullet.c b/src/battle/anim/bullet.c
index 90b2021f1..90b2021f1 100755..100644
--- a/src/battle/anim/bullet.c
+++ b/src/battle/anim/bullet.c
diff --git a/src/battle/anim/copy_orb.c b/src/battle/anim/copy_orb.c
index 4fa8ea163..4fa8ea163 100755..100644
--- a/src/battle/anim/copy_orb.c
+++ b/src/battle/anim/copy_orb.c
diff --git a/src/battle/anim/cube.c b/src/battle/anim/cube.c
index 9adf46e32..9adf46e32 100755..100644
--- a/src/battle/anim/cube.c
+++ b/src/battle/anim/cube.c
diff --git a/src/battle/anim/curtain.c b/src/battle/anim/curtain.c
index 3c9e4e84c..3c9e4e84c 100755..100644
--- a/src/battle/anim/curtain.c
+++ b/src/battle/anim/curtain.c
diff --git a/src/battle/anim/cutter.c b/src/battle/anim/cutter.c
index 2234ebacb..2234ebacb 100755..100644
--- a/src/battle/anim/cutter.c
+++ b/src/battle/anim/cutter.c
diff --git a/src/battle/anim/cyclone.c b/src/battle/anim/cyclone.c
index 0f83df211..0f83df211 100755..100644
--- a/src/battle/anim/cyclone.c
+++ b/src/battle/anim/cyclone.c
diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c
new file mode 100644
index 000000000..1c88dc23e
--- /dev/null
+++ b/src/battle/anim/dark.c
@@ -0,0 +1,1008 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "blend_palette.h"
+#include "decompress.h"
+#include "ewram.h"
+#include "palette.h"
+#include "rom_8077ABC.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "sprite.h"
+#include "trig.h"
+#include "constants/battle_constants.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u8 gObjectBankIDs[];
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_WIN0H;
+extern u16 gBattle_WIN0V;
+extern u16 gBattlePartyID[];
+extern u8 gAnimMoveTurn;
+
+extern const u8 gUnknown_08D1D574[];
+extern const u8 gUnknown_08D1D410[];
+extern const u16 gUnknown_08D1D54C[];
+
+static void sub_80DFE90(struct Sprite *sprite);
+static void sub_80DFC9C(u8 taskId);
+static void sub_80DFD58(u8 taskId);
+static void sub_80DFF58(struct Sprite *sprite);
+static void sub_80DFF98(struct Sprite *sprite);
+static void sub_80E00D0(struct Sprite *sprite);
+static void sub_80E02A4(u8 taskId);
+static void sub_80E0620(u8 taskId);
+static void sub_80E08CC(u8 priority);
+static void sub_80E079C(struct Task *task);
+static void sub_80E0CD0(u8 taskId);
+
+
+// used in Smoke Ball escape, Sky Attack, Feint Attack and Camouflage
+void sub_80DFC24(u8 taskId)
+{
+ int bank;
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ bank = gAnimBankAttacker;
+ gTasks[taskId].data[1] = 16;
+ REG_BLDALPHA = 16;
+ if (GetBankIdentity_permutated(bank) == 1)
+ REG_BLDCNT = 0x3F42;
+ else
+ REG_BLDCNT = 0x3F44;
+ gTasks[taskId].func = sub_80DFC9C;
+}
+
+static void sub_80DFC9C(u8 taskId)
+{
+ u8 r2 = gTasks[taskId].data[1] >> 8;
+ u8 r1 = gTasks[taskId].data[1];
+ if (gTasks[taskId].data[2] == (u8)gTasks[taskId].data[0])
+ {
+ r2++;
+ r1--;
+ gTasks[taskId].data[1] = (r2 << 8) | r1;
+ REG_BLDALPHA = (r2 << 8) | r1;
+ gTasks[taskId].data[2] = 0;
+ if (r2 == 16)
+ {
+ gSprites[gObjectBankIDs[gAnimBankAttacker]].invisible = 1;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+ else
+ gTasks[taskId].data[2]++;
+}
+
+void sub_80DFD24(u8 taskId)
+{
+ gTasks[taskId].data[0] = gBattleAnimArgs[0];
+ gTasks[taskId].data[1] = 0x1000;
+ gTasks[taskId].func = sub_80DFD58;
+ REG_BLDALPHA = 0x1000;
+}
+
+void sub_80DFD58(u8 taskId)
+{
+ u8 r1 = gTasks[taskId].data[1] >> 8;
+ u8 r5 = gTasks[taskId].data[1];
+ if (gTasks[taskId].data[2] == (u8)gTasks[taskId].data[0])
+ {
+ r1--;
+ r5++;
+ gTasks[taskId].data[1] = (r1 << 8) | r5;
+ REG_BLDALPHA = (r1 << 8) | r5;
+ gTasks[taskId].data[2] = 0;
+ if (r1 == 0)
+ {
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+ }
+ else
+ gTasks[taskId].data[2]++;
+}
+
+// unlike the above is only used in Feint Attack
+
+void sub_80DFDC0(u8 taskId)
+{
+ REG_BLDALPHA = 0x1000;
+ if (GetBankIdentity_permutated(gAnimBankAttacker) == 1)
+ REG_BLDCNT = 0x3F42;
+ else
+ REG_BLDCNT = 0x3F44;
+ DestroyAnimVisualTask(taskId);
+}
+
+// unused sprite template's callback
+
+void sub_80DFE14(struct Sprite *sprite)
+{
+ sprite->data[1] = GetBankPosition(gAnimBankTarget, 2);
+ sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->data[3] = GetBankPosition(gAnimBankTarget, 3);
+ sprite->data[4] = GetBankPosition(gAnimBankAttacker, 3);
+ sprite->data[0] = 0x7E;
+ sub_8078A5C(sprite);
+ sprite->data[3] = -sprite->data[1];
+ sprite->data[4] = -sprite->data[2];
+ sprite->data[6] = 0xFFD8;
+ sprite->callback = sub_80DFE90;
+ sub_80DFE90(sprite);
+}
+
+static void sub_80DFE90(struct Sprite *sprite)
+{
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x = sprite->data[3] >> 8;
+ sprite->pos2.y = sprite->data[4] >> 8;
+ if (sprite->data[7] == 0)
+ {
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x = sprite->data[3] >> 8;
+ sprite->pos2.y = sprite->data[4] >> 8;
+ sprite->data[0]--;
+ }
+ sprite->pos2.y += Sin(sprite->data[5], sprite->data[6]);
+ sprite->data[5] = (sprite->data[5] + 3) & 0xFF;
+ if (sprite->data[5] > 0x7F)
+ {
+ sprite->data[5] = 0;
+ sprite->data[6] += 20;
+ sprite->data[7]++;
+ }
+ if (--sprite->data[0] == 0)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80DFF1C(struct Sprite *sprite)
+{
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]);
+
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[1] = gBattleAnimArgs[4];
+ sprite->data[2] = gBattleAnimArgs[5];
+ sprite->callback = sub_80DFF58;
+}
+
+static void sub_80DFF58(struct Sprite *sprite)
+{
+ sprite->data[4] += sprite->data[0];
+ sprite->data[5] += sprite->data[1];
+ sprite->pos2.x = sprite->data[4] >> 8;
+ sprite->pos2.y = sprite->data[5] >> 8;
+
+ if (++sprite->data[3] == sprite->data[2])
+ sprite->callback = sub_80DFF98;
+}
+
+static void sub_80DFF98(struct Sprite *sprite)
+{
+ sprite->data[4] -= sprite->data[0];
+ sprite->data[5] -= sprite->data[1];
+ sprite->pos2.x = sprite->data[4] >> 8;
+ sprite->pos2.y = sprite->data[5] >> 8;
+
+ if (--sprite->data[3] == 0)
+ move_anim_8074EE0(sprite);
+}
+
+void sub_80DFFD0(struct Sprite *sprite)
+{
+ u8 bank;
+ s8 xOffset;
+
+ if (gBattleAnimArgs[0] == 0)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ xOffset = 20;
+ sprite->oam.tileNum += 4;
+
+ switch (gBattleAnimArgs[1])
+ {
+ case 0:
+ sprite->pos1.x = sub_807A100(bank, 5) - 8;
+ sprite->pos1.y = sub_807A100(bank, 2) + 8;
+ break;
+ case 1:
+ sprite->pos1.x = sub_807A100(bank, 5) - 14;
+ sprite->pos1.y = sub_807A100(bank, 2) + 16;
+ break;
+ case 2:
+ sprite->pos1.x = sub_807A100(bank, 4) + 8;
+ sprite->pos1.y = sub_807A100(bank, 2) + 8;
+ StartSpriteAffineAnim(sprite, 1);
+ xOffset = -20;
+ break;
+ case 3:
+ sprite->pos1.x = sub_807A100(bank, 4) + 14;
+ sprite->pos1.y = sub_807A100(bank, 2) + 16;
+ StartSpriteAffineAnim(sprite, 1);
+ xOffset = -20;
+ break;
+ }
+
+ sprite->data[0] = 32;
+ sprite->data[2] = sprite->pos1.x + xOffset;
+ sprite->data[4] = sprite->pos1.y + 12;
+ sprite->data[5] = -12;
+
+ sub_80786EC(sprite);
+ sprite->callback = sub_80E00D0;
+}
+
+static void sub_80E00D0(struct Sprite *sprite)
+{
+ if (sub_8078718(sprite))
+ move_anim_8074EE0(sprite);
+}
+
+void sub_80E00EC(u8 taskId)
+{
+ struct ScanlineEffectParams scanlineParams;
+ struct Struct_sub_8078914 subStruct;
+ u16 i;
+ u8 pos;
+ int var0;
+ struct Task *task = &gTasks[taskId];
+
+ task->data[7] = GetBankPosition(gAnimBankAttacker, 1) + 31;
+ task->data[6] = sub_807A100(gAnimBankAttacker, 2) - 7;
+ task->data[5] = task->data[7];
+ task->data[4] = task->data[6];
+ task->data[13] = (task->data[7] - task->data[6]) << 8;
+
+ pos = GetBankPosition(gAnimBankAttacker, 0);
+ task->data[14] = pos - 32;
+ task->data[15] = pos + 32;
+
+ if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER)
+ task->data[8] = -12;
+ else
+ task->data[8] = -64;
+
+ task->data[3] = GetBankIdentity_permutated(gAnimBankAttacker);
+ if (task->data[3] == 1)
+ {
+ sub_8078914(&subStruct);
+ task->data[10] = gBattle_BG1_Y;
+ REG_BLDCNT = 0x3F42;
+ FillPalette(0, subStruct.field_8 << 4, 32);
+ scanlineParams.dmaDest = &REG_BG1VOFS;
+ var0 = 2;
+
+ if (!IsContest())
+ gBattle_BG2_X += 240;
+ }
+ else
+ {
+ task->data[10] = gBattle_BG2_Y;
+ REG_BLDCNT = 0x3F44;
+ FillPalette(0, 144, 32);
+ scanlineParams.dmaDest = &REG_BG2VOFS;
+ var0 = 4;
+
+ if (!IsContest())
+ gBattle_BG1_X += 240;
+ }
+
+ scanlineParams.dmaControl = 0xA2600001;
+ scanlineParams.initState = 1;
+ scanlineParams.unused9 = 0;
+ task->data[11] = 0;
+ task->data[12] = 16;
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+
+ sub_80E08CC(3);
+
+ for (i = 0; i < 112; i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = task->data[10];
+ gScanlineEffectRegBuffers[1][i] = task->data[10];
+ }
+
+ ScanlineEffect_SetParams(scanlineParams);
+
+ REG_WINOUT = 0x3F00 | (var0 ^ 0x3F);
+ REG_WININ = 0x3F3F;
+ gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
+ gBattle_WIN0V = 160;
+
+ task->func = sub_80E02A4;
+}
+
+static void sub_80E02A4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ if (++task->data[2] & 1)
+ {
+ if (task->data[11] != 12)
+ task->data[11]++;
+ }
+ else
+ {
+ if (task->data[12] != 8)
+ task->data[12]--;
+ }
+
+ REG_BLDALPHA = (task->data[12] << 8) | task->data[11];
+
+ if (task->data[11] == 12 && task->data[12] == 8)
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ task->data[4] -= 8;
+ sub_80E079C(task);
+
+ if (task->data[4] < task->data[8])
+ task->data[0]++;
+ break;
+ case 2:
+ task->data[4] -= 8;
+ sub_80E079C(task);
+ task->data[14] += 4;
+ task->data[15] -= 4;
+
+ if (task->data[14] >= task->data[15])
+ task->data[14] = task->data[15];
+
+ gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
+
+ if (task->data[14] == task->data[15])
+ task->data[0]++;
+ break;
+ case 3:
+ gScanlineEffect.state = 3;
+ task->data[0]++;
+ break;
+ case 4:
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_80E03BC(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+ struct ScanlineEffectParams scanlineParams;
+ u8 pos;
+ u16 i;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (IsContest() == TRUE)
+ {
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3F;
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ task->data[3] = GetBankIdentity_permutated(gAnimBankTarget);
+ if (task->data[3] == 1)
+ {
+ REG_BLDCNT = 0x3F42;
+ gBattle_BG2_X += 240;
+ }
+ else
+ {
+ REG_BLDCNT = 0x3F44;
+ gBattle_BG1_X += 240;
+ }
+
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ if (task->data[3] == 1)
+ {
+ sub_8078914(&subStruct);
+ task->data[10] = gBattle_BG1_Y;
+ FillPalette(0, subStruct.field_8 << 4, 32);
+ }
+ else
+ {
+ task->data[10] = gBattle_BG2_Y;
+ FillPalette(0, 144, 32);
+ }
+
+ sub_80E08CC(3);
+ task->data[0]++;
+ break;
+ case 2:
+ task->data[7] = GetBankPosition(gAnimBankTarget, 1) + 31;
+ task->data[6] = sub_807A100(gAnimBankTarget, 2) - 7;
+ task->data[13] = (task->data[7] - task->data[6]) << 8;
+ pos = GetBankPosition(gAnimBankTarget, 0);
+ task->data[14] = pos - 4;
+ task->data[15] = pos + 4;
+
+ if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ task->data[8] = -12;
+ else
+ task->data[8] = -64;
+
+ task->data[4] = task->data[8];
+ task->data[5] = task->data[8];
+ task->data[11] = 12;
+ task->data[12] = 8;
+ task->data[0]++;
+ break;
+ case 3:
+ if (task->data[3] == 1)
+ scanlineParams.dmaDest = &REG_BG1VOFS;
+ else
+ scanlineParams.dmaDest = &REG_BG2VOFS;
+
+ for (i = 0; i < 112; i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = task->data[10] + (159 - i);
+ gScanlineEffectRegBuffers[1][i] = task->data[10] + (159 - i);
+ }
+
+ scanlineParams.dmaControl = 0xA2600001;
+ scanlineParams.initState = 1;
+ scanlineParams.unused9 = 0;
+ ScanlineEffect_SetParams(scanlineParams);
+ task->data[0]++;
+ break;
+ case 4:
+ if (task->data[3] == 1)
+ REG_WINOUT = 0x3F3D;
+ else
+ REG_WINOUT = 0x3F3B;
+
+ REG_WININ = 0x3F3F;
+ gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
+ gBattle_WIN0V = 160;
+
+ task->data[0] = 0;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ REG_BLDALPHA = 0x80C;
+ task->func = sub_80E0620;
+ break;
+ }
+}
+
+static void sub_80E0620(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[5] += 8;
+ if (task->data[5] >= task->data[7])
+ task->data[5] = task->data[7];
+
+ sub_80E079C(task);
+
+ if (task->data[5] == task->data[7])
+ task->data[0]++;
+ break;
+ case 1:
+ if (task->data[15] - task->data[14] < 64)
+ {
+ task->data[14] -= 4;
+ task->data[15] += 4;
+ }
+ else
+ {
+ task->data[1] = 1;
+ }
+
+ gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
+ task->data[4] += 8;
+
+ if (task->data[4] >= task->data[6])
+ task->data[4] = task->data[6];
+
+ sub_80E079C(task);
+
+ if (task->data[4] == task->data[6] && task->data[1] != 0)
+ {
+ task->data[1] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ if (++task->data[1] > 1)
+ {
+ task->data[1] = 0;
+ if ((++task->data[2] & 1) != 0)
+ {
+ if (task->data[11] != 0)
+ task->data[11]--;
+ }
+ else
+ {
+ if (task->data[12] < 16)
+ task->data[12]++;
+ }
+
+ REG_BLDALPHA = (task->data[12] << 8) | task->data[11];
+
+ if (task->data[11] == 0 && task->data[12] == 16)
+ task->data[0]++;
+ }
+ break;
+ case 3:
+ gScanlineEffect.state = 3;
+ task->data[0]++;
+ break;
+ case 4:
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3F;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+// static void sub_80E079C(struct Task *task)
+// {
+// int var0, var1;
+// s16 var2;
+// s16 i, j;
+
+// var2 = task->data[5] - task->data[4];
+// if (var2 != 0)
+// {
+// var0 = task->data[13] / var2;
+// var1 = task->data[6];
+
+// for (i = 0; i < task->data[4]; i++)
+// {
+// gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[10] - (i - 159);
+// }
+
+// for (i = task->data[4]; i <= task->data[5]; i++)
+// {
+// if (i >= 0)
+// {
+// gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = (var1 - i) + task->data[10];
+// }
+
+// var1 += var0;
+// }
+
+// for (j = i; j < task->data[7]; j++)
+// {
+// if (j >= 0)
+// {
+// gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][j] = (task->data[10] + 159) - j;
+// }
+// }
+// }
+// else
+// {
+// for (i = 0; i < 112; i++)
+// {
+// gScanlineEffectRegBuffers[0][i] = task->data[10] + 159 - i;
+// gScanlineEffectRegBuffers[1][i] = task->data[10] + 159 - i;
+// }
+// }
+// }
+
+__attribute__((naked))
+static void sub_80E079C(struct Task *task)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ adds r6, r0, 0\n\
+ ldrh r0, [r6, 0x12]\n\
+ ldrh r4, [r6, 0x10]\n\
+ subs r0, r4\n\
+ lsls r0, 16\n\
+ asrs r1, r0, 16\n\
+ cmp r1, 0\n\
+ beq _080E0890\n\
+ movs r2, 0x22\n\
+ ldrsh r0, [r6, r2]\n\
+ bl __divsi3\n\
+ mov r8, r0\n\
+ movs r3, 0x14\n\
+ ldrsh r0, [r6, r3]\n\
+ lsls r5, r0, 8\n\
+ lsls r0, r4, 16\n\
+ movs r4, 0\n\
+ cmp r0, 0\n\
+ ble _080E07FC\n\
+ ldr r0, _080E0888 @ =gScanlineEffectRegBuffers\n\
+ mov r12, r0\n\
+ ldr r7, _080E088C @ =gScanlineEffect\n\
+_080E07D0:\n\
+ lsls r2, r4, 16\n\
+ asrs r2, 16\n\
+ lsls r3, r2, 1\n\
+ ldrb r1, [r7, 0x14]\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 7\n\
+ adds r3, r0\n\
+ add r3, r12\n\
+ adds r1, r2, 0\n\
+ subs r1, 0x9F\n\
+ ldrh r0, [r6, 0x1C]\n\
+ subs r0, r1\n\
+ strh r0, [r3]\n\
+ adds r2, 0x1\n\
+ lsls r2, 16\n\
+ lsrs r4, r2, 16\n\
+ asrs r2, 16\n\
+ movs r1, 0x10\n\
+ ldrsh r0, [r6, r1]\n\
+ cmp r2, r0\n\
+ blt _080E07D0\n\
+_080E07FC:\n\
+ ldrh r4, [r6, 0x10]\n\
+ lsls r3, r4, 16\n\
+ asrs r1, r3, 16\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r6, r2]\n\
+ cmp r1, r0\n\
+ bgt _080E0846\n\
+ ldr r0, _080E0888 @ =gScanlineEffectRegBuffers\n\
+ mov r12, r0\n\
+ ldr r7, _080E088C @ =gScanlineEffect\n\
+_080E0810:\n\
+ asrs r4, r3, 16\n\
+ cmp r4, 0\n\
+ blt _080E0832\n\
+ asrs r1, r5, 8\n\
+ subs r1, r4\n\
+ lsls r3, r4, 1\n\
+ ldrb r2, [r7, 0x14]\n\
+ lsls r0, r2, 4\n\
+ subs r0, r2\n\
+ lsls r0, 7\n\
+ adds r3, r0\n\
+ add r3, r12\n\
+ lsls r1, 16\n\
+ asrs r1, 16\n\
+ ldrh r2, [r6, 0x1C]\n\
+ adds r1, r2\n\
+ strh r1, [r3]\n\
+_080E0832:\n\
+ add r5, r8\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ lsls r3, r4, 16\n\
+ asrs r1, r3, 16\n\
+ movs r2, 0x12\n\
+ ldrsh r0, [r6, r2]\n\
+ cmp r1, r0\n\
+ ble _080E0810\n\
+_080E0846:\n\
+ movs r3, 0x1C\n\
+ ldrsh r0, [r6, r3]\n\
+ adds r0, 0x9F\n\
+ lsls r2, r4, 16\n\
+ asrs r1, r2, 16\n\
+ subs r5, r0, r1\n\
+ movs r3, 0x16\n\
+ ldrsh r0, [r6, r3]\n\
+ cmp r1, r0\n\
+ bge _080E08BE\n\
+ ldr r7, _080E0888 @ =gScanlineEffectRegBuffers\n\
+ ldr r4, _080E088C @ =gScanlineEffect\n\
+_080E085E:\n\
+ asrs r3, r2, 16\n\
+ cmp r3, 0\n\
+ blt _080E0876\n\
+ lsls r2, r3, 1\n\
+ ldrb r1, [r4, 0x14]\n\
+ lsls r0, r1, 4\n\
+ subs r0, r1\n\
+ lsls r0, 7\n\
+ adds r2, r0\n\
+ adds r2, r7\n\
+ strh r5, [r2]\n\
+ subs r5, 0x1\n\
+_080E0876:\n\
+ adds r0, r3, 0x1\n\
+ lsls r2, r0, 16\n\
+ asrs r1, r2, 16\n\
+ movs r3, 0x16\n\
+ ldrsh r0, [r6, r3]\n\
+ cmp r1, r0\n\
+ blt _080E085E\n\
+ b _080E08BE\n\
+ .align 2, 0\n\
+_080E0888: .4byte gScanlineEffectRegBuffers\n\
+_080E088C: .4byte gScanlineEffect\n\
+_080E0890:\n\
+ movs r1, 0x1C\n\
+ ldrsh r0, [r6, r1]\n\
+ adds r5, r0, 0\n\
+ adds r5, 0x9F\n\
+ movs r4, 0\n\
+ ldr r3, _080E08C8 @ =gScanlineEffectRegBuffers\n\
+ movs r2, 0xF0\n\
+ lsls r2, 3\n\
+ adds r6, r3, r2\n\
+_080E08A2:\n\
+ lsls r0, r4, 16\n\
+ asrs r0, 16\n\
+ lsls r2, r0, 1\n\
+ adds r1, r2, r3\n\
+ strh r5, [r1]\n\
+ adds r2, r6\n\
+ strh r5, [r2]\n\
+ subs r5, 0x1\n\
+ adds r0, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x6F\n\
+ ble _080E08A2\n\
+_080E08BE:\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080E08C8: .4byte gScanlineEffectRegBuffers\n\
+ .syntax divided\n");
+}
+
+static void sub_80E08CC(u8 priority)
+{
+ u16 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ u8 spriteId = GetAnimBankSpriteId(i);
+ if (spriteId != 0xFF)
+ gSprites[spriteId].oam.priority = priority;
+ }
+}
+
+void sub_80E0918(u8 taskId)
+{
+ u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0;
+ sub_8076034(gAnimBankAttacker, toBG2);
+ gSprites[gObjectBankIDs[gAnimBankAttacker]].invisible = 0;
+
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
+ {
+ sub_8076034(gAnimBankAttacker ^ 2, toBG2 ^ 1);
+ gSprites[gObjectBankIDs[gAnimBankAttacker ^ 2]].invisible = 0;
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80E09C4(u8 taskId)
+{
+ u8 toBG2 = GetBankIdentity_permutated(gAnimBankAttacker) ^ 1 ? 1 : 0;
+ sub_8076464(toBG2);
+
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
+ sub_8076464(toBG2 ^ 1);
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80E0A10(struct Sprite *sprite)
+{
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ StartSpriteAnim(sprite, gBattleAnimArgs[2]);
+ sprite->callback = sub_8078600;
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+}
+
+void sub_80E0A4C(u8 taskId)
+{
+ u16 species;
+ u8 spriteId;
+ u8 newSpriteId;
+ u16 paletteNum;
+ struct Struct_sub_8078914 subStruct;
+ int var0 = 0;
+
+ gBattle_WIN0H = var0;
+ gBattle_WIN0V = var0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3D;
+ REG_DISPCNT |= DISPCNT_OBJWIN_ON;
+ REG_BLDCNT = 0x3F42;
+ REG_BLDALPHA = 0xC08;
+ REG_BG1CNT_BITFIELD.priority = 0;
+ REG_BG1CNT_BITFIELD.screenSize = 0;
+ if (!IsContest())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 1;
+
+ if (IsDoubleBattle() && !IsContest())
+ {
+ if (GetBankIdentity(gAnimBankAttacker) == 3 || GetBankIdentity(gAnimBankAttacker) == 0)
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2) == TRUE)
+ {
+ gSprites[gObjectBankIDs[gAnimBankAttacker ^ 2]].oam.priority--;
+ REG_BG1CNT_BITFIELD.priority = 1;
+ var0 = 1;
+ }
+ }
+ }
+
+ if (IsContest())
+ {
+ species = EWRAM_19348;
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ species = GetMonData(&gEnemyParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES);
+ else
+ species = GetMonData(&gPlayerParty[gBattlePartyID[gAnimBankAttacker]], MON_DATA_SPECIES);
+ }
+
+ spriteId = GetAnimBankSpriteId(0);
+ newSpriteId = sub_807A4A0(gAnimBankAttacker, spriteId, species);
+
+ sub_8078914(&subStruct);
+ DmaClear32(3, subStruct.field_4, 0x1000);
+ LZDecompressVram(&gUnknown_08D1D574, subStruct.field_4);
+ LZDecompressVram(&gUnknown_08D1D410, subStruct.field_0);
+ LoadCompressedPalette(&gUnknown_08D1D54C, subStruct.field_8 << 4, 32);
+
+ gBattle_BG1_X = -gSprites[spriteId].pos1.x + 96;
+ gBattle_BG1_Y = -gSprites[spriteId].pos1.y + 32;
+ paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
+
+ if (gBattleAnimArgs[1] == 0)
+ sub_8079108(paletteNum, FALSE);
+ else
+ BlendPalette(paletteNum * 16, 16, 11, gBattleAnimArgs[2]);
+
+ gTasks[taskId].data[0] = newSpriteId;
+ gTasks[taskId].data[1] = gBattleAnimArgs[0];
+ gTasks[taskId].data[2] = gBattleAnimArgs[1];
+ gTasks[taskId].data[3] = gBattleAnimArgs[2];
+ gTasks[taskId].data[6] = var0;
+ gTasks[taskId].func = sub_80E0CD0;
+}
+
+static void sub_80E0CD0(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+ u16 paletteNum;
+ u8 spriteId;
+ u8 taskIdCopy = taskId;
+
+ gTasks[taskIdCopy].data[10] += 4;
+ gBattle_BG1_X -= 4;
+
+ if (gTasks[taskIdCopy].data[10] == 128)
+ {
+ gTasks[taskIdCopy].data[10] = 0;
+ gBattle_BG1_X += 128;
+
+ if (++gTasks[taskIdCopy].data[11] == 2)
+ {
+ sub_8076464(0);
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x3F3F;
+
+ if (!IsContest())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 0;
+
+ REG_DISPCNT ^= DISPCNT_OBJWIN_ON;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+
+ spriteId = GetAnimBankSpriteId(0);
+ paletteNum = 16 + gSprites[spriteId].oam.paletteNum;
+ if (gTasks[taskIdCopy].data[1] == 0)
+ sub_8079108(paletteNum, 1);
+
+ DestroySprite(&gSprites[gTasks[taskIdCopy].data[0]]);
+ sub_8078914(&subStruct);
+ DmaClear32(3, subStruct.field_4, 0x800);
+
+ if (gTasks[taskIdCopy].data[6] == 1)
+ {
+ gSprites[gObjectBankIDs[gAnimBankAttacker ^ 2]].oam.priority++;
+ }
+
+ DestroyAnimVisualTask(taskIdCopy);
+ }
+ }
+}
+
+void sub_80E0E24(u8 taskId)
+{
+ u8 spriteId;
+ u8 bank;
+ bool8 calcSpriteId = FALSE;
+ u8 identity = 0;
+
+ switch (gBattleAnimArgs[0])
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
+ break;
+ case 4:
+ identity = IDENTITY_PLAYER_MON1;
+ calcSpriteId = TRUE;
+ break;
+ case 5:
+ identity = IDENTITY_PLAYER_MON2;
+ calcSpriteId = TRUE;
+ break;
+ case 6:
+ identity = IDENTITY_OPPONENT_MON1;
+ calcSpriteId = TRUE;
+ break;
+ case 7:
+ identity = IDENTITY_OPPONENT_MON2;
+ calcSpriteId = TRUE;
+ break;
+ default:
+ spriteId = 0xFF;
+ break;
+ }
+
+ if (calcSpriteId)
+ {
+ bank = GetBankByIdentity(identity);
+ if (IsAnimBankSpriteVisible(bank))
+ spriteId = gObjectBankIDs[bank];
+ else
+ spriteId = 0xFF;
+ }
+
+ if (spriteId != 0xFF)
+ sub_8079108(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]);
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80E0EE8(u8 taskId)
+{
+ if (gAnimMoveTurn < 2)
+ gBattleAnimArgs[7] = 0;
+
+ if (gAnimMoveTurn == 2)
+ gBattleAnimArgs[7] = 1;
+
+ DestroyAnimVisualTask(taskId);
+}
diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c
new file mode 100644
index 000000000..bf39e01c0
--- /dev/null
+++ b/src/battle/anim/dragon.c
@@ -0,0 +1,275 @@
+#include "global.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+#include "battle_anim.h"
+#include "sound.h"
+#include "scanline_effect.h"
+
+void sub_80DF81C(struct Sprite *sprite);
+void sub_80DFBD8(struct Sprite *sprite);
+
+void sub_80DF9F4(u8 taskId);
+
+void sub_80DFAB0(struct Task *task);
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u8 gBankAttacker;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG2_X;
+extern u16 gUnknown_03000730[];
+extern u8 gObjectBankIDs[];
+
+// Outrage
+
+void sub_80DF5A0(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
+ if (GetBankSide(gAnimBankAttacker))
+ {
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ gBattleAnimArgs[4] = -gBattleAnimArgs[4];
+ }
+ else
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->data[3] = gBattleAnimArgs[4];
+ sprite->data[5] = gBattleAnimArgs[5];
+ sprite->invisible = 1;
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_8078504;
+}
+
+// part of Dragon Breath
+
+void sub_80DF63C(struct Sprite *sprite)
+{
+ sub_8078650(sprite);
+ sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
+ sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
+ if (GetBankSide(gAnimBankAttacker))
+ {
+ sprite->pos1.x -= gBattleAnimArgs[1];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[2] -= gBattleAnimArgs[2];
+ sprite->data[4] += gBattleAnimArgs[3];
+ }
+ else
+ {
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ sprite->data[2] += gBattleAnimArgs[2];
+ sprite->data[4] += gBattleAnimArgs[3];
+ StartSpriteAnim(sprite, 1);
+ }
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+}
+
+// Dragon Rage
+
+void sub_80DF6F0(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1);
+ }
+ else
+ {
+ sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0);
+ sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1);
+ }
+ sub_807867C(sprite, gBattleAnimArgs[1]);
+ sprite->pos1.y += gBattleAnimArgs[2];
+ sprite->callback = sub_8078600;
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+}
+
+// Dragon Breath init
+
+void sub_80DF760(struct Sprite *sprite)
+{
+ if (GetBankSide(gAnimBankAttacker))
+ StartSpriteAffineAnim(sprite, 1);
+ sub_80DF63C(sprite);
+}
+
+//next 2 tasks might be Dragon Dance orbs?
+
+void sub_80DF78C(struct Sprite *sprite)
+{
+ u16 r5;
+ u16 r0;
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
+ sprite->data[4] = 0;
+ sprite->data[5] = 1;
+ sprite->data[6] = gBattleAnimArgs[0];
+ r5 = sub_807A100(gBankAttacker, 0);
+ r0 = sub_807A100(gBankAttacker, 1);
+ if (r5 > r0)
+ sprite->data[7] = r5 / 2;
+ else
+ sprite->data[7] = r0 / 2;
+ sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]);
+ sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]);
+ sprite->callback = sub_80DF81C;
+}
+
+void sub_80DF81C(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->data[6] = (sprite->data[6] - sprite->data[5]) & 0xFF;
+ sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]);
+ sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]);
+ if (++sprite->data[4] > 5)
+ {
+ sprite->data[4] = 0;
+ if (sprite->data[5] <= 15 && ++sprite->data[5] > 15)
+ sprite->data[5] = 16;
+ }
+ if (++sprite->data[3] > 0x3C)
+ {
+ sprite->data[3] = 0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ sprite->data[6] = (sprite->data[6] - sprite->data[5]) & 0xFF;
+ if (sprite->data[7] <= 0x95 && (sprite->data[7] += 8) > 0x95)
+ sprite->data[7] = 0x96;
+ sprite->pos2.x = Cos(sprite->data[6], sprite->data[7]);
+ sprite->pos2.y = Sin(sprite->data[6], sprite->data[7]);
+ if (++sprite->data[4] > 5)
+ {
+ sprite->data[4] = 0;
+ if (sprite->data[5] <= 15 && ++sprite->data[5] > 15)
+ sprite->data[5] = 16;
+ }
+ if (++sprite->data[3] > 20)
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
+
+// Dragon Dance scanline eff
+
+void sub_80DF924(u8 taskId)
+{
+ struct ScanlineEffectParams sp;
+ struct Task *task = &gTasks[taskId];
+ u16 i;
+ u8 r1;
+ if (GetBankIdentity_permutated(gAnimBankAttacker) == 1)
+ {
+ sp.dmaDest = &REG_BG1HOFS;
+ task->data[2] = gBattle_BG1_X;
+ }
+ else
+ {
+ sp.dmaDest = &REG_BG2HOFS;
+ task->data[2] = gBattle_BG2_X;
+ }
+ sp.dmaControl = 0xA2600001;
+ sp.initState = 1;
+ sp.unused9 = 0;
+ r1 = sub_8077FC0(gAnimBankAttacker);
+ task->data[3] = r1 - 32;
+ task->data[4] = r1 + 32;
+ if (task->data[3] < 0)
+ task->data[3] = 0;
+ for(i = task->data[3];i <= task->data[4];i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = task->data[2];
+ gScanlineEffectRegBuffers[1][i] = task->data[2];
+ }
+ ScanlineEffect_SetParams(sp);
+ task->func = sub_80DF9F4;
+}
+
+void sub_80DF9F4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[7] > 1)
+ {
+ task->data[7] = 0;
+ if (++task->data[6] == 3)
+ task->data[0]++;
+ }
+ sub_80DFAB0(task);
+ break;
+ case 1:
+ if (++task->data[1] > 0x3C)
+ task->data[0]++;
+ sub_80DFAB0(task);
+ break;
+ case 2:
+ if (++task->data[7] > 1)
+ {
+ task->data[7] = 0;
+ if (--task->data[6] == 0)
+ task->data[0]++;
+ }
+ sub_80DFAB0(task);
+ break;
+ case 3:
+ gScanlineEffect.state = 3;
+ task->data[0]++;
+ break;
+ case 4:
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_80DFAB0(struct Task *task)
+{
+ u16 r3 = task->data[5];
+ u16 i;
+ for (i = task->data[3]; i <= task->data[4]; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = ((gSineTable[r3] * task->data[6]) >> 7) + task->data[2];
+ r3 = (r3 + 8) & 0xFF;
+ }
+ task->data[5] = (task->data[5] + 9) & 0xFF;
+}
+
+// Overheat
+
+void sub_80DFB28(struct Sprite *sprite)
+{
+ int r6 = (gBattleAnimArgs[2] * 3) / 5;
+ int i;
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + gBattleAnimArgs[4];
+ sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]);
+ sprite->data[2] = Sin(gBattleAnimArgs[1], r6);
+ sprite->pos1.x += sprite->data[1] * gBattleAnimArgs[0];
+ sprite->pos1.y += sprite->data[2] * gBattleAnimArgs[0];
+ sprite->data[3] = gBattleAnimArgs[3];
+ sprite->callback = sub_80DFBD8;
+ for (i = 0; i <= 6; i++)
+ gUnknown_03000730[i] = sprite->data[i];
+}
+
+void sub_80DFBD8(struct Sprite *sprite)
+{
+ sprite->data[4] += sprite->data[1];
+ sprite->data[5] += sprite->data[2];
+ sprite->pos2.x = sprite->data[4] / 10;
+ sprite->pos2.y = sprite->data[5] / 10;
+ if (++sprite->data[0] > sprite->data[3])
+ DestroyAnimSprite(sprite);
+}
diff --git a/src/battle/anim/draw.c b/src/battle/anim/draw.c
index 3adb62e06..f9e505bf2 100755..100644
--- a/src/battle/anim/draw.c
+++ b/src/battle/anim/draw.c
@@ -3,7 +3,7 @@
#include "trig.h"
#include "battle_anim.h"
#include "sound.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
extern s16 gBattleAnimArgs[];
extern u8 gAnimBankAttacker;
@@ -21,7 +21,8 @@ static void sub_80D0E8C(struct Sprite* sprite);
void sub_80D0C88(u8 taskId)
{
struct Task* task = &gTasks[taskId];
- struct UnknownTaskStruct sp;
+ struct ScanlineEffectParams params;
+
s16 i;
task->data[0] = sub_8077FC0(gAnimBankTarget) + 32;
task->data[1] = 4;
@@ -30,30 +31,31 @@ void sub_80D0C88(u8 taskId)
task->data[4] = 0;
task->data[5] = 0;
task->data[15] = sub_807A100(gAnimBankTarget, 0);
+
if (GetBankIdentity_permutated(gAnimBankTarget) == 1)
{
task->data[6] = gBattle_BG1_X;
- sp.dest = (u16 *)REG_ADDR_BG1HOFS;
+ params.dmaDest = (u16 *)REG_ADDR_BG1HOFS;
}
else
{
task->data[6] = gBattle_BG2_X;
- sp.dest = (u16 *)REG_ADDR_BG2HOFS;
+ params.dmaDest = (u16 *)REG_ADDR_BG2HOFS;
}
for (i = task->data[0] - 0x40; i <= task->data[0];i++)
{
if (i >= 0)
{
- gUnknown_03004DE0[0][i] = task->data[6] + 0xF0;
- gUnknown_03004DE0[1][i] = task->data[6] + 0xF0;
+ gScanlineEffectRegBuffers[0][i] = task->data[6] + 0xF0;
+ gScanlineEffectRegBuffers[1][i] = task->data[6] + 0xF0;
}
}
- sp.control = 0xa2600001;
- sp.unk8 = 1;
- sp.unk9 = 0;
- sub_80895F8(sp);
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.initState = 1;
+ params.unused9 = 0;
+ ScanlineEffect_SetParams(params);
task->func = sub_80D0D68;
}
@@ -91,13 +93,13 @@ void sub_80D0D68(u8 taskId)
if (task->data[5] >= 0)
{
- gUnknown_03004DE0[0][task->data[5]] = task->data[6];
- gUnknown_03004DE0[1][task->data[5]] = task->data[6];
+ gScanlineEffectRegBuffers[0][task->data[5]] = task->data[6];
+ gScanlineEffectRegBuffers[1][task->data[5]] = task->data[6];
}
if (++task->data[3] >= task->data[15])
{
- gUnknown_03004DC0.unk15 = 3;
+ gScanlineEffect.unk15 = 3;
DestroyAnimVisualTask(taskId);
}
}
@@ -178,7 +180,7 @@ _080D0DE0:\n\
ldrsh r0, [r3, r1]\n\
cmp r0, 0\n\
blt _080D0E04\n\
- ldr r2, _080D0E28 @ =gUnknown_03004DE0\n\
+ ldr r2, _080D0E28 @ =gScanlineEffectRegBuffers\n\
lsls r0, 1\n\
adds r0, r2\n\
ldrh r1, [r3, 0x14]\n\
@@ -202,7 +204,7 @@ _080D0E04:\n\
ldrsh r1, [r3, r2]\n\
cmp r0, r1\n\
blt _080D0E22\n\
- ldr r1, _080D0E2C @ =gUnknown_03004DC0\n\
+ ldr r1, _080D0E2C @ =gScanlineEffect\n\
movs r0, 0x3\n\
strb r0, [r1, 0x15]\n\
adds r0, r4, 0\n\
@@ -212,8 +214,8 @@ _080D0E22:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_080D0E28: .4byte gUnknown_03004DE0\n\
-_080D0E2C: .4byte gUnknown_03004DC0\n\
+_080D0E28: .4byte gScanlineEffectRegBuffers\n\
+_080D0E2C: .4byte gScanlineEffect\n\
.syntax divided\n");
}
#endif
diff --git a/src/battle/anim/drum.c b/src/battle/anim/drum.c
index 6306778ae..6306778ae 100755..100644
--- a/src/battle/anim/drum.c
+++ b/src/battle/anim/drum.c
diff --git a/src/battle/anim/egg.c b/src/battle/anim/egg.c
index 8004b3bf5..8004b3bf5 100755..100644
--- a/src/battle/anim/egg.c
+++ b/src/battle/anim/egg.c
diff --git a/src/battle/anim/espeed.c b/src/battle/anim/espeed.c
index 469522092..469522092 100755..100644
--- a/src/battle/anim/espeed.c
+++ b/src/battle/anim/espeed.c
diff --git a/src/battle/anim/evasion.c b/src/battle/anim/evasion.c
index ded8428d4..ded8428d4 100755..100644
--- a/src/battle/anim/evasion.c
+++ b/src/battle/anim/evasion.c
diff --git a/src/battle/anim/fang.c b/src/battle/anim/fang.c
index 5ed7372a8..5ed7372a8 100755..100644
--- a/src/battle/anim/fang.c
+++ b/src/battle/anim/fang.c
diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c
index 6dc304232..4d577a765 100644
--- a/src/battle/anim/fire_2.c
+++ b/src/battle/anim/fire_2.c
@@ -23,8 +23,8 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3);
void sub_80D51A8(struct Sprite *sprite)
{
if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget)
- && (gAnimBankAttacker == GetBankByPlayerAI(2)
- || gAnimBankAttacker == GetBankByPlayerAI(3)))
+ && (gAnimBankAttacker == GetBankByIdentity(2)
+ || gAnimBankAttacker == GetBankByIdentity(3)))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
sprite->callback = sub_8079534;
diff --git a/src/battle/anim/flash.c b/src/battle/anim/flash.c
index eaa38e5b7..eaa38e5b7 100755..100644
--- a/src/battle/anim/flash.c
+++ b/src/battle/anim/flash.c
diff --git a/src/battle/anim/flying_hearts.c b/src/battle/anim/flying_hearts.c
index d2d22602a..d2d22602a 100755..100644
--- a/src/battle/anim/flying_hearts.c
+++ b/src/battle/anim/flying_hearts.c
diff --git a/src/battle/anim/flying_path.c b/src/battle/anim/flying_path.c
index 441ac0e6d..441ac0e6d 100755..100644
--- a/src/battle/anim/flying_path.c
+++ b/src/battle/anim/flying_path.c
diff --git a/src/battle/anim/flying_petals.c b/src/battle/anim/flying_petals.c
index 4eeaa5215..4eeaa5215 100755..100644
--- a/src/battle/anim/flying_petals.c
+++ b/src/battle/anim/flying_petals.c
diff --git a/src/battle/anim/glitter.c b/src/battle/anim/glitter.c
index e4577f1e1..e4577f1e1 100755..100644
--- a/src/battle/anim/glitter.c
+++ b/src/battle/anim/glitter.c
diff --git a/src/battle/anim/glow.c b/src/battle/anim/glow.c
index 63466c0ff..63466c0ff 100755..100644
--- a/src/battle/anim/glow.c
+++ b/src/battle/anim/glow.c
diff --git a/src/battle/anim/grip.c b/src/battle/anim/grip.c
index c4d7b1cef..c4d7b1cef 100755..100644
--- a/src/battle/anim/grip.c
+++ b/src/battle/anim/grip.c
diff --git a/src/battle/anim/grow.c b/src/battle/anim/grow.c
index 8788b32fe..8788b32fe 100755..100644
--- a/src/battle/anim/grow.c
+++ b/src/battle/anim/grow.c
diff --git a/src/battle/anim/guard.c b/src/battle/anim/guard.c
index ab093eab1..254160109 100644
--- a/src/battle/anim/guard.c
+++ b/src/battle/anim/guard.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "battle.h"
#include "battle_anim.h"
#include "rom_8077ABC.h"
@@ -12,7 +13,7 @@ extern u16 gBattleTypeFlags;
void sub_80D3014(struct Sprite *sprite)
{
- if ((gBattleTypeFlags & 1) && IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
+ if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
{
sub_807A3FC(gAnimBankAttacker, 0, &sprite->pos1.x, &sprite->pos1.y);
sprite->pos1.y += 40;
diff --git a/src/battle/anim/guillotine.c b/src/battle/anim/guillotine.c
index b3d842cdf..b3d842cdf 100755..100644
--- a/src/battle/anim/guillotine.c
+++ b/src/battle/anim/guillotine.c
diff --git a/src/battle/anim/heal.c b/src/battle/anim/heal.c
index a8c14ea1c..a8c14ea1c 100755..100644
--- a/src/battle/anim/heal.c
+++ b/src/battle/anim/heal.c
diff --git a/src/battle/anim/heart_1.c b/src/battle/anim/heart_1.c
index 5df89f929..5df89f929 100755..100644
--- a/src/battle/anim/heart_1.c
+++ b/src/battle/anim/heart_1.c
diff --git a/src/battle/anim/homing.c b/src/battle/anim/homing.c
index 6fb4a76d8..6fb4a76d8 100755..100644
--- a/src/battle/anim/homing.c
+++ b/src/battle/anim/homing.c
diff --git a/src/battle/anim/hop.c b/src/battle/anim/hop.c
index 4006e2d43..4006e2d43 100755..100644
--- a/src/battle/anim/hop.c
+++ b/src/battle/anim/hop.c
diff --git a/src/battle/anim/hop_2.c b/src/battle/anim/hop_2.c
index 1bc3f46af..1bc3f46af 100755..100644
--- a/src/battle/anim/hop_2.c
+++ b/src/battle/anim/hop_2.c
diff --git a/src/battle/anim/kiss_fountain.c b/src/battle/anim/kiss_fountain.c
index d3270ee65..d3270ee65 100755..100644
--- a/src/battle/anim/kiss_fountain.c
+++ b/src/battle/anim/kiss_fountain.c
diff --git a/src/battle/anim/leaf.c b/src/battle/anim/leaf.c
index 676734717..676734717 100755..100644
--- a/src/battle/anim/leaf.c
+++ b/src/battle/anim/leaf.c
diff --git a/src/battle/anim/love_bg.c b/src/battle/anim/love_bg.c
index bd3d22ca6..c3828c681 100755..100644
--- a/src/battle/anim/love_bg.c
+++ b/src/battle/anim/love_bg.c
@@ -25,7 +25,7 @@ static void sub_80D21F0(u8 taskId);
void sub_80D2100(u8 taskId)
{
struct Struct_sub_8078914 subStruct;
- u8* tempvar;
+
REG_BLDCNT = 0x3F42;
REG_BLDALPHA = 0x1000;
REG_BG1CNT_BITFIELD.priority = 3;
@@ -38,9 +38,8 @@ void sub_80D2100(u8 taskId)
REG_BG1HOFS = 0;
REG_BG1VOFS = 0;
sub_8078914(&subStruct);
- tempvar = subStruct.field_4;
- DmaFill32(3, 0x0, tempvar, 0x1000);
- LZDecompressVram(&gAttractTilemap, tempvar);
+ DmaFill32Defvars(3, 0, subStruct.field_4, 0x1000);
+ LZDecompressVram(&gAttractTilemap, subStruct.field_4);
LZDecompressVram(&gAttractGfx, subStruct.field_0);
LoadCompressedPalette(&gAttractPal, subStruct.field_8 << 4, 32);
if (IsContest())
@@ -90,21 +89,7 @@ void sub_80D21F0(u8 taskId)
break;
case 3:
sub_8078914(&subStruct);
- {
- u8 *addr = subStruct.field_0;
- u32 size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- }
+ DmaFill32Large(3, 0, subStruct.field_0, 0x2000, 0x1000);
DmaClear32(3, subStruct.field_4, 0x800);
if (!IsContest())
REG_BG1CNT_BITFIELD.charBaseBlock = 0;
diff --git a/src/battle/anim/lunge_1.c b/src/battle/anim/lunge_1.c
index d379c8f09..d379c8f09 100755..100644
--- a/src/battle/anim/lunge_1.c
+++ b/src/battle/anim/lunge_1.c
diff --git a/src/battle/anim/lunge_2.c b/src/battle/anim/lunge_2.c
index fe2470567..fe2470567 100755..100644
--- a/src/battle/anim/lunge_2.c
+++ b/src/battle/anim/lunge_2.c
diff --git a/src/battle/anim/money.c b/src/battle/anim/money.c
index 8358d23db..8358d23db 100755..100644
--- a/src/battle/anim/money.c
+++ b/src/battle/anim/money.c
diff --git a/src/battle/anim/moon.c b/src/battle/anim/moon.c
index c532e8057..c532e8057 100755..100644
--- a/src/battle/anim/moon.c
+++ b/src/battle/anim/moon.c
diff --git a/src/battle/anim/note_rain.c b/src/battle/anim/note_rain.c
index 715462d73..715462d73 100755..100644
--- a/src/battle/anim/note_rain.c
+++ b/src/battle/anim/note_rain.c
diff --git a/src/battle/anim/note_scatter.c b/src/battle/anim/note_scatter.c
index 8564c58fe..8564c58fe 100755..100644
--- a/src/battle/anim/note_scatter.c
+++ b/src/battle/anim/note_scatter.c
diff --git a/src/battle/anim/note_scatter_2.c b/src/battle/anim/note_scatter_2.c
index 524c51c08..524c51c08 100755..100644
--- a/src/battle/anim/note_scatter_2.c
+++ b/src/battle/anim/note_scatter_2.c
diff --git a/src/battle/anim/note_wave.c b/src/battle/anim/note_wave.c
index 80ed2256f..80ed2256f 100755..100644
--- a/src/battle/anim/note_wave.c
+++ b/src/battle/anim/note_wave.c
diff --git a/src/battle/anim/orbit.c b/src/battle/anim/orbit.c
index c8cf339d2..c8cf339d2 100755..100644
--- a/src/battle/anim/orbit.c
+++ b/src/battle/anim/orbit.c
diff --git a/src/battle/anim/orbit_fast.c b/src/battle/anim/orbit_fast.c
index 92b67672b..92b67672b 100755..100644
--- a/src/battle/anim/orbit_fast.c
+++ b/src/battle/anim/orbit_fast.c
diff --git a/src/battle/anim/orbit_scatter.c b/src/battle/anim/orbit_scatter.c
index 54c157839..54c157839 100755..100644
--- a/src/battle/anim/orbit_scatter.c
+++ b/src/battle/anim/orbit_scatter.c
diff --git a/src/battle/anim/orbs.c b/src/battle/anim/orbs.c
index 6ca2fa71c..6ca2fa71c 100755..100644
--- a/src/battle/anim/orbs.c
+++ b/src/battle/anim/orbs.c
diff --git a/src/battle/anim/osmose.c b/src/battle/anim/osmose.c
index 1140aa34a..1140aa34a 100755..100644
--- a/src/battle/anim/osmose.c
+++ b/src/battle/anim/osmose.c
diff --git a/src/battle/anim/perceive.c b/src/battle/anim/perceive.c
index 3b3153428..3b3153428 100755..100644
--- a/src/battle/anim/perceive.c
+++ b/src/battle/anim/perceive.c
diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c
new file mode 100644
index 000000000..f31c441fb
--- /dev/null
+++ b/src/battle/anim/poison.c
@@ -0,0 +1,140 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "rom_8077ABC.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+
+void sub_80D9DD4(struct Sprite *sprite);
+void sub_80D9E78(struct Sprite *sprite);
+void sub_80D9EE8(struct Sprite *sprite);
+void sub_80D9FF0(struct Sprite *sprite);
+
+void sub_80D9D70(struct Sprite *sprite)
+{
+ if (!gBattleAnimArgs[3])
+ StartSpriteAnim(sprite, 2);
+
+ sub_80787B0(sprite, 1);
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
+ sprite->data[4] = GetBankPosition(gAnimBankTarget, 3);
+ sprite->data[5] = -30;
+
+ sub_80786EC(sprite);
+
+ sprite->callback = sub_80D9DD4;
+}
+
+void sub_80D9DD4(struct Sprite *sprite) // same as sub_80D9E78
+{
+ if (sub_8078718(sprite))
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80D9DF0(struct Sprite *sprite)
+{
+ s16 l1, l2;
+ if (!gBattleAnimArgs[3])
+ StartSpriteAnim(sprite, 2);
+
+ sub_80787B0(sprite, 1);
+ sub_807A3FC(gAnimBankTarget, 1, &l1, &l2);
+
+ if (GetBankSide(gAnimBankAttacker))
+ gBattleAnimArgs[4] = -gBattleAnimArgs[4];
+
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[2] = l1 + gBattleAnimArgs[4];
+ sprite->data[4] = l2 + gBattleAnimArgs[5];
+ sprite->data[5] = -30;
+
+ sub_80786EC(sprite);
+
+ sprite->callback = sub_80D9E78;
+}
+
+void sub_80D9E78(struct Sprite *sprite) // same as sub_80D9DD4
+{
+ if (sub_8078718(sprite))
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80D9E94(struct Sprite *sprite)
+{
+ sprite->data[0] = gBattleAnimArgs[2];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[0];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[1];
+
+ sub_8078A5C(sprite);
+
+ sprite->data[5] = sprite->data[1] / gBattleAnimArgs[2];
+ sprite->data[6] = sprite->data[2] / gBattleAnimArgs[2];
+
+ sprite->callback = sub_80D9EE8;
+}
+
+void sub_80D9EE8(struct Sprite *sprite)
+{
+ sub_8078394(sprite);
+
+ sprite->data[1] -= sprite->data[5];
+ sprite->data[2] -= sprite->data[6];
+
+ if (!sprite->data[0])
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80D9F14(struct Sprite *sprite)
+{
+ sub_807A3FC(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
+
+ if (GetBankSide(gAnimBankAttacker))
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
+ sprite->data[4] = sprite->pos1.y + sprite->data[0];
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+}
+
+void sub_80D9F88(struct Sprite *sprite)
+{
+ if (!gBattleAnimArgs[2])
+ {
+ sub_8078764(sprite, TRUE);
+ }
+ else
+ {
+ sub_807A3FC(gAnimBankTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
+
+ if (GetBankSide(gAnimBankAttacker))
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+ }
+
+ sprite->callback = sub_80D9FF0;
+}
+
+void sub_80D9FF0(struct Sprite *sprite)
+{
+ sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF;
+ sprite->pos2.x = Sin(sprite->data[0], 4);
+ sprite->data[1] += 0x30;
+ sprite->pos2.y = -(sprite->data[1] >> 8);
+
+ if (sprite->affineAnimEnded)
+ DestroyAnimSprite(sprite);
+} \ No newline at end of file
diff --git a/src/battle/anim/powder.c b/src/battle/anim/powder.c
index a0be20d6f..a0be20d6f 100755..100644
--- a/src/battle/anim/powder.c
+++ b/src/battle/anim/powder.c
diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c
new file mode 100644
index 000000000..6617183cb
--- /dev/null
+++ b/src/battle/anim/psychic.c
@@ -0,0 +1,900 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "palette.h"
+#include "rom_8077ABC.h"
+#include "scanline_effect.h"
+#include "sound.h"
+#include "task.h"
+#include "trig.h"
+#include "constants/songs.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG2_X;
+extern u8 gObjectBankIDs[];
+
+extern const union AffineAnimCmd *const gUnknown_083DA888[];
+extern struct AffineAnimFrameCmd gUnknown_083DA8A4;
+extern struct AffineAnimFrameCmd gUnknown_083DA8C4;
+extern const struct SpriteTemplate gSpriteTemplate_83DA8DC;
+extern const struct SpriteTemplate gSpriteTemplate_83DA9AC;
+
+static void sub_80DB88C(struct Sprite *sprite);
+static void sub_80DB8C0(struct Sprite *sprite);
+static void sub_80DB92C(struct Sprite *sprite);
+static void sub_80DB9E4(struct Sprite *sprite);
+static void sub_80DBC00(struct Sprite *sprite);
+static void sub_80DBC34(struct Sprite *sprite);
+static void sub_80DBCD0(u8 taskId);
+static void sub_80DBD58(u8 taskId);
+static void sub_80DBE98(u8 taskId);
+static void sub_80DC1FC(u8 taskId);
+static void sub_80DC3F4(u8 taskId);
+void sub_80DC5F4(u8 taskId);
+
+
+void sub_80DB74C(struct Sprite *sprite)
+{
+ if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER || IsContest())
+ {
+ sprite->oam.priority = 2;
+ sprite->subpriority = 200;
+ }
+
+ if (!IsContest())
+ {
+ u8 bankCopy;
+ u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ u8 identity = GetBankIdentity_permutated(bank);
+ int var0 = 1;
+ u8 toBG_2 = (identity ^ var0) != 0;
+
+ if (IsAnimBankSpriteVisible(bank))
+ sub_8076034(bank, toBG_2);
+
+ bank = bankCopy ^ 2;
+ if (IsAnimBankSpriteVisible(bank))
+ sub_8076034(bank, toBG_2 ^ var0);
+ }
+
+ if (!IsContest() && IsDoubleBattle())
+ {
+ if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER)
+ {
+ sprite->pos1.x = 72;
+ sprite->pos1.y = 80;
+ }
+ else
+ {
+ sprite->pos1.x = 176;
+ sprite->pos1.y = 40;
+ }
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ gBattleAnimArgs[0] = -gBattleAnimArgs[0];
+
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0) + gBattleAnimArgs[0];
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1) + gBattleAnimArgs[1];
+ }
+
+ if (IsContest())
+ sprite->pos1.y += 9;
+
+ sprite->data[0] = 256 + IndexOfSpritePaletteTag(gBattleAnimArgs[2]) * 16;
+ sprite->callback = sub_80DB88C;
+ sprite->callback(sprite);
+}
+
+static void sub_80DB88C(struct Sprite *sprite)
+{
+ REG_BLDALPHA = ((16 - sprite->data[3]) << 8) | sprite->data[3];
+
+ if (sprite->data[3] == 13)
+ sprite->callback = sub_80DB8C0;
+ else
+ sprite->data[3]++;
+}
+
+static void sub_80DB8C0(struct Sprite *sprite)
+{
+ u16 color;
+ u16 startOffset;
+ int i;
+
+ if (++sprite->data[1] == 2)
+ {
+ sprite->data[1] = 0;
+ startOffset = sprite->data[0];
+ color = gPlttBufferFaded[startOffset + 8];
+
+ for (i = 8; i > 0; i--)
+ gPlttBufferFaded[startOffset + i] = gPlttBufferFaded[startOffset + i - 1];
+
+ gPlttBufferFaded[startOffset + 1] = color;
+
+ if (++sprite->data[2] == 16)
+ sprite->callback = sub_80DB92C;
+ }
+}
+
+static void sub_80DB92C(struct Sprite *sprite)
+{
+ REG_BLDALPHA = ((16 - sprite->data[3]) << 8) | sprite->data[3];
+
+ if (--sprite->data[3] == -1)
+ {
+ if (!IsContest())
+ {
+ u8 bankCopy;
+ u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+
+ if (IsAnimBankSpriteVisible(bank))
+ gSprites[gObjectBankIDs[bank]].invisible = 0;
+
+ bank = bankCopy ^ 2;
+ if (IsAnimBankSpriteVisible(bank))
+ gSprites[gObjectBankIDs[bank]].invisible = 0;
+ }
+
+ sprite->invisible = 1;
+ sprite->callback = sub_80DB9E4;
+ }
+}
+
+static void sub_80DB9E4(struct Sprite *sprite)
+{
+ if (!IsContest())
+ {
+ u8 bankCopy;
+ u8 bank = bankCopy = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ u8 identity = GetBankIdentity_permutated(bank);
+ int var0 = 1;
+ u8 toBG_2 = (identity ^ var0) != 0;
+
+ if (IsAnimBankSpriteVisible(bank))
+ sub_8076464(toBG_2);
+
+ bank = bankCopy ^ 2;
+ if (IsAnimBankSpriteVisible(bank))
+ sub_8076464(toBG_2 ^ var0);
+ }
+
+ sprite->callback = DestroyAnimSprite;
+}
+
+void sub_80DBA4C(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ int arg3 = gBattleAnimArgs[3];
+ u8 var0 = 0;
+ if (arg3 == 0)
+ var0 = 1;
+
+ if (!IsContest() && IsDoubleBattle())
+ {
+ if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER)
+ {
+ sprite->pos1.x = 72 - gBattleAnimArgs[0];
+ sprite->pos1.y = gBattleAnimArgs[1] + 80;
+ }
+ else
+ {
+ sprite->pos1.x = gBattleAnimArgs[0] + 176;
+ sprite->pos1.y = gBattleAnimArgs[1] + 40;
+ }
+ }
+ else
+ {
+ if (gBattleAnimArgs[2] == 0)
+ sub_80787B0(sprite, var0);
+ else
+ sub_8078764(sprite, var0);
+ }
+
+ sprite->data[0]++;
+ }
+ else
+ {
+ if (sprite->animEnded || sprite->affineAnimEnded)
+ move_anim_8074EE0(sprite);
+ }
+}
+
+void sub_80DBAF4(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
+
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ {
+ StartSpriteAnim(sprite, 1);
+ sprite->pos1.x -= 40;
+ sprite->pos1.y += 10;
+ sprite->data[1] = -1;
+ }
+ else
+ {
+ sprite->pos1.x += 40;
+ sprite->pos1.y -= 10;
+ sprite->data[1] = 1;
+ }
+
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+ sprite->callback = sub_8078600;
+}
+
+void sub_80DBB70(struct Sprite *sprite)
+{
+ s16 x = sub_807A100(gAnimBankAttacker, 1) / 2;
+ s16 y = sub_807A100(gAnimBankAttacker, 0) / -2;
+
+ if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT)
+ {
+ x = -x;
+ }
+
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2) + x;
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3) + y;
+
+ if (sprite->pos1.y < 16)
+ {
+ sprite->pos1.y = 16;
+ }
+
+ StoreSpriteCallbackInData(sprite, sub_80DBC00);
+ sprite->callback = sub_8078600;
+}
+
+static void sub_80DBC00(struct Sprite *sprite)
+{
+ sprite->oam.affineMode = 1;
+ sprite->affineAnims = gUnknown_083DA888;
+ sprite->data[0] = 0;
+ InitSpriteAffineAnim(sprite);
+ sprite->callback = sub_80DBC34;
+}
+
+static void sub_80DBC34(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (sprite->affineAnimEnded)
+ {
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->oam.affineMode = 0;
+ sprite->data[1] = 18;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (--sprite->data[1] == -1)
+ {
+ DestroyAnimSprite(sprite);
+ }
+ break;
+ }
+}
+
+void sub_80DBC94(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ u8 spriteId = GetAnimBankSpriteId(0);
+ task->data[0] = spriteId;
+ sub_80798F4(task, spriteId, &gUnknown_083DA8A4);
+ task->func = sub_80DBCD0;
+}
+
+static void sub_80DBCD0(u8 taskId)
+{
+ if (!sub_807992C(&gTasks[taskId]))
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+}
+
+void sub_80DBCFC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ u8 spriteId = GetAnimBankSpriteId(0);
+ task->data[0] = spriteId;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ task->data[3] = GetBankSide(gAnimBankAttacker) != SIDE_PLAYER ? 4 : 8;
+
+ sub_80798F4(task, task->data[0], &gUnknown_083DA8C4);
+ task->func = sub_80DBD58;
+}
+
+static void sub_80DBD58(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[1])
+ {
+ case 0:
+ sub_807992C(task);
+ if (++task->data[2] > 19)
+ task->data[1]++;
+ break;
+ case 1:
+ if (task->data[3] != 0)
+ {
+ gSprites[task->data[0]].pos2.y -= 8;
+ task->data[3]--;
+ }
+ else
+ {
+ gSprites[task->data[0]].invisible = 1;
+ gSprites[task->data[0]].pos1.x = 272;
+ sub_8078F40(task->data[0]);
+ DestroyAnimVisualTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_80DBE00(u8 taskId)
+{
+ u16 var0, var1;
+
+ struct Task *task = &gTasks[taskId];
+
+ task->data[3] = 16;
+ task->data[4] = 0;
+ task->data[13] = GetBankPosition(gAnimBankAttacker, 2);
+ task->data[14] = GetBankPosition(gAnimBankAttacker, 3);
+
+ var0 = sub_807A100(gAnimBankAttacker, 1) / 3;
+ var1 = sub_807A100(gAnimBankAttacker, 0) / 3;
+ task->data[12] = var0 > var1 ? var0 : var1;
+
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = 0x10;
+
+ task->func = sub_80DBE98;
+}
+
+static void sub_80DBE98(u8 taskId)
+{
+ u16 i;
+ u8 spriteId;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 8)
+ {
+ task->data[1] = 0;
+ spriteId = CreateSprite(&gSpriteTemplate_83DA8DC, task->data[13], task->data[14], 0);
+ task->data[task->data[2] + 8] = spriteId;
+
+ if (spriteId != 64)
+ {
+ switch (task->data[2])
+ {
+ case 0:
+ gSprites[spriteId].pos2.x = task->data[12];
+ gSprites[spriteId].pos2.y = -task->data[12];
+ break;
+ case 1:
+ gSprites[spriteId].pos2.x = -task->data[12];
+ gSprites[spriteId].pos2.y = task->data[12];
+ break;
+ case 2:
+ gSprites[spriteId].pos2.x = task->data[12];
+ gSprites[spriteId].pos2.y = task->data[12];
+ break;
+ case 3:
+ gSprites[spriteId].pos2.x = -task->data[12];
+ gSprites[spriteId].pos2.y = -task->data[12];
+ break;
+ }
+ }
+
+ if (++task->data[2] == 5)
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ if (task->data[1] & 1)
+ task->data[3]--;
+ else
+ task->data[4]++;
+
+ REG_BLDALPHA = (task->data[4] << 8) | task->data[3];
+
+ if (++task->data[1] == 32)
+ {
+ for (i = 8; i < 13; i++)
+ {
+ if (task->data[i] != 64)
+ DestroySprite(&gSprites[task->data[i]]);
+ }
+
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[0]++;
+ break;
+ case 3:
+ REG_BLDALPHA = 0;
+ REG_BLDCNT = 0;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+static void sub_80DC020(struct Sprite *sprite)
+{
+ if (sprite->data[1] > sprite->data[0] - 10)
+ sprite->invisible = sprite->data[1] & 1;
+
+ if (sprite->data[1] == sprite->data[0])
+ DestroyAnimSprite(sprite);
+
+ sprite->data[1]++;
+}
+
+void sub_80DC068(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[0] == 0)
+ {
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
+ }
+
+ sprite->data[0] = gBattleAnimArgs[1];
+ sprite->callback = sub_80DC020;
+}
+
+void sub_80DC0B0(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if (IsContest())
+ {
+ if (gBattleAnimArgs[0] == 1)
+ {
+ task->data[10] = -10;
+ task->data[11] = sub_807A100(gAnimBankTarget, 5) - 8;
+ task->data[12] = sub_807A100(gAnimBankTarget, 2) + 8;
+ task->data[13] = sub_807A100(gAnimBankAttacker, 5) - 8;
+ task->data[14] = sub_807A100(gAnimBankAttacker, 2) + 8;
+ }
+ else
+ {
+ task->data[10] = 10;
+ task->data[11] = sub_807A100(gAnimBankAttacker, 4) + 8;
+ task->data[12] = sub_807A100(gAnimBankAttacker, 3) - 8;
+ task->data[13] = sub_807A100(gAnimBankTarget, 4) + 8;
+ task->data[14] = sub_807A100(gAnimBankTarget, 3) - 8;
+ }
+ }
+ else
+ {
+ if (gBattleAnimArgs[0] == 1)
+ {
+ task->data[10] = -10;
+ task->data[11] = sub_807A100(gAnimBankTarget, 4) + 8;
+ task->data[12] = sub_807A100(gAnimBankTarget, 2) + 8;
+ task->data[13] = sub_807A100(gAnimBankAttacker, 4) + 8;
+ task->data[14] = sub_807A100(gAnimBankAttacker, 2) + 8;
+ }
+ else
+ {
+ task->data[10] = 10;
+ task->data[11] = sub_807A100(gAnimBankAttacker, 5) - 8;
+ task->data[12] = sub_807A100(gAnimBankAttacker, 3) - 8;
+ task->data[13] = sub_807A100(gAnimBankTarget, 5) - 8;
+ task->data[14] = sub_807A100(gAnimBankTarget, 3) - 8;
+ }
+ }
+
+ task->data[1] = 6;
+ task->func = sub_80DC1FC;
+}
+
+static void sub_80DC1FC(u8 taskId)
+{
+ u8 spriteId;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ if (++task->data[1] > 6)
+ {
+ task->data[1] = 0;
+ spriteId = CreateSprite(&gSpriteTemplate_83DA9AC, task->data[11], task->data[12], 0);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data[0] = 16;
+ gSprites[spriteId].data[2] = task->data[13];
+ gSprites[spriteId].data[4] = task->data[14];
+ gSprites[spriteId].data[5] = task->data[10];
+
+ sub_80786EC(&gSprites[spriteId]);
+ StartSpriteAffineAnim(&gSprites[spriteId], task->data[2] & 3);
+ }
+
+ if (++task->data[2] == 12)
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ if (++task->data[1] > 17)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_80DC2B0(struct Sprite *sprite)
+{
+ if (sub_8078718(sprite))
+ {
+ FreeOamMatrix(sprite->oam.matrixNum);
+ DestroySprite(sprite);
+ }
+}
+
+void sub_80DC2D4(u8 taskId)
+{
+ s16 i;
+ u8 var1;
+ struct ScanlineEffectParams scanlineParams;
+ struct Task *task = &gTasks[taskId];
+
+ var1 = sub_8077FC0(gAnimBankTarget);
+ task->data[14] = var1 - 32;
+
+ switch (gBattleAnimArgs[0])
+ {
+ case 0:
+ task->data[11] = 2;
+ task->data[12] = 5;
+ task->data[13] = 64;
+ task->data[15] = var1 + 32;
+ break;
+ case 1:
+ task->data[11] = 2;
+ task->data[12] = 5;
+ task->data[13] = 192;
+ task->data[15] = var1 + 32;
+ break;
+ case 2:
+ task->data[11] = 4;
+ task->data[12] = 4;
+ task->data[13] = 0;
+ task->data[15] = var1 + 32;
+ break;
+ }
+
+ if (task->data[14] < 0)
+ task->data[14] = 0;
+
+ if (GetBankIdentity_permutated(gAnimBankTarget) == 1)
+ {
+ task->data[10] = gBattle_BG1_X;
+ scanlineParams.dmaDest = &REG_BG1HOFS;
+ }
+ else
+ {
+ task->data[10] = gBattle_BG2_X;
+ scanlineParams.dmaDest = &REG_BG2HOFS;
+ }
+
+ i = task->data[14];
+ while (i <= task->data[14] + 64)
+ {
+ gScanlineEffectRegBuffers[0][i] = task->data[10];
+ gScanlineEffectRegBuffers[1][i] = task->data[10];
+ i++;
+ }
+
+ scanlineParams.dmaControl = 0XA2600001;
+ scanlineParams.initState = 1;
+ scanlineParams.unused9 = 0;
+ ScanlineEffect_SetParams(scanlineParams);
+
+ task->func = sub_80DC3F4;
+}
+
+static void sub_80DC3F4(u8 taskId)
+{
+ s16 sineIndex, i;
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ sineIndex = task->data[13];
+ i = task->data[14];
+ while (i <= task->data[15])
+ {
+ s16 var2 = (gSineTable[sineIndex] >> task->data[12]);
+ if (var2 > 0)
+ {
+ var2 += (task->data[1] & 3);
+ }
+ else if (var2 < 0)
+ {
+ var2 -= (task->data[1] & 3);
+ }
+
+ gScanlineEffectRegBuffers[0][i] = task->data[10] + var2;
+ gScanlineEffectRegBuffers[1][i] = task->data[10] + var2;
+
+ sineIndex += task->data[11];
+ i++;
+ }
+
+ if (++task->data[1] > 23)
+ {
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ gScanlineEffect.state = 3;
+ task->data[0]++;
+ break;
+ case 2:
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+#ifdef NONMATCHING
+void sub_80DC4F4(u8 taskId)
+{
+ s16 spriteId;
+ u8 matrixNum;
+ register u8 matrixNum2 asm("r6");
+ struct Task *task = &gTasks[taskId];
+
+ matrixNum = AllocOamMatrix();
+ matrixNum2 = matrixNum;
+ if (matrixNum2 == 0xFF)
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ spriteId = duplicate_obj_of_side_rel2move_in_transparent_mode(gBattleAnimArgs[0]);
+ if (spriteId < 0)
+ {
+ FreeOamMatrix(matrixNum);
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
+ gSprites[spriteId].oam.matrixNum = matrixNum2;
+ gSprites[spriteId].affineAnimPaused = 1;
+ gSprites[spriteId].subpriority++;
+ obj_id_set_rotscale(spriteId, 256, 256, 0);
+ CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
+
+ task->data[13] = GetAnimBankSpriteId(gBattleAnimArgs[0]);
+ task->data[14] = matrixNum;
+ task->data[15] = spriteId;
+ task->func = sub_80DC5F4;
+}
+#else
+__attribute__((naked))
+void sub_80DC4F4(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ mov r8, r4\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ ldr r1, _080DC528 @ =gTasks\n\
+ adds r7, r0, r1\n\
+ bl AllocOamMatrix\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ mov r10, r5\n\
+ adds r6, r5, 0\n\
+ cmp r6, 0xFF\n\
+ bne _080DC52C\n\
+ adds r0, r4, 0\n\
+ bl DestroyAnimVisualTask\n\
+ b _080DC5D6\n\
+ .align 2, 0\n\
+_080DC528: .4byte gTasks\n\
+_080DC52C:\n\
+ ldr r1, _080DC550 @ =gBattleAnimArgs\n\
+ ldrb r0, [r1]\n\
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ mov r9, r1\n\
+ asrs r0, 16\n\
+ cmp r0, 0\n\
+ bge _080DC554\n\
+ adds r0, r5, 0\n\
+ bl FreeOamMatrix\n\
+ mov r0, r8\n\
+ bl DestroyAnimVisualTask\n\
+ b _080DC5D6\n\
+ .align 2, 0\n\
+_080DC550: .4byte gBattleAnimArgs\n\
+_080DC554:\n\
+ ldr r2, _080DC5E4 @ =gSprites\n\
+ lsls r4, r0, 4\n\
+ adds r4, r0\n\
+ lsls r4, 2\n\
+ adds r0, r2, 0\n\
+ adds r0, 0x1C\n\
+ adds r0, r4, r0\n\
+ ldr r1, _080DC5E8 @ =SpriteCallbackDummy\n\
+ str r1, [r0]\n\
+ adds r4, r2\n\
+ ldrb r0, [r4, 0x1]\n\
+ movs r1, 0x3\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x1]\n\
+ movs r0, 0x1F\n\
+ ands r6, r0\n\
+ lsls r2, r6, 1\n\
+ ldrb r1, [r4, 0x3]\n\
+ movs r0, 0x3F\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ orrs r0, r2\n\
+ strb r0, [r4, 0x3]\n\
+ adds r2, r4, 0\n\
+ adds r2, 0x2C\n\
+ ldrb r0, [r2]\n\
+ movs r1, 0x80\n\
+ orrs r0, r1\n\
+ strb r0, [r2]\n\
+ adds r1, r4, 0\n\
+ adds r1, 0x43\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ mov r1, r9\n\
+ lsls r0, r1, 24\n\
+ lsrs r0, 24\n\
+ movs r2, 0x80\n\
+ lsls r2, 1\n\
+ adds r1, r2, 0\n\
+ movs r3, 0\n\
+ bl obj_id_set_rotscale\n\
+ ldrb r3, [r4, 0x1]\n\
+ lsrs r1, r3, 6\n\
+ ldrb r2, [r4, 0x3]\n\
+ lsrs r2, 6\n\
+ lsls r3, 30\n\
+ lsrs r3, 30\n\
+ adds r0, r4, 0\n\
+ bl CalcCenterToCornerVec\n\
+ ldr r1, _080DC5EC @ =gBattleAnimArgs\n\
+ ldrb r0, [r1]\n\
+ bl GetAnimBankSpriteId\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r7, 0x22]\n\
+ mov r0, r10\n\
+ strh r0, [r7, 0x24]\n\
+ mov r1, r9\n\
+ strh r1, [r7, 0x26]\n\
+ ldr r0, _080DC5F0 @ =sub_80DC5F4\n\
+ str r0, [r7]\n\
+_080DC5D6:\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\
+ .align 2, 0\n\
+_080DC5E4: .4byte gSprites\n\
+_080DC5E8: .4byte SpriteCallbackDummy\n\
+_080DC5EC: .4byte gBattleAnimArgs\n\
+_080DC5F0: .4byte sub_80DC5F4\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+void sub_80DC5F4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[1] += 4;
+ task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);
+ obj_id_set_rotscale(task->data[15], task->data[2], task->data[2], 0);
+ sub_8079AB8(task->data[15], task->data[13]);
+ if (task->data[1] == 48)
+ task->data[0]++;
+ break;
+ case 1:
+ task->data[1] -= 4;
+ task->data[2] = 256 - (gSineTable[task->data[1]] >> 1);;
+ obj_id_set_rotscale(task->data[15], task->data[2], task->data[2], 0);
+ sub_8079AB8(task->data[15], task->data[13]);
+ if (task->data[1] == 0)
+ task->data[0]++;
+ break;
+ case 2:
+ obj_delete_but_dont_free_vram(&gSprites[task->data[15]]);
+ task->data[0]++;
+ break;
+ case 3:
+ FreeOamMatrix(task->data[14]);
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_80DC700(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 0);
+ sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 1);
+
+ if (IsContest())
+ sprite->pos1.y += 12;
+
+ sprite->data[1] = 8;
+ REG_BLDCNT = 0x3F40;
+ REG_BLDALPHA = ((16 - sprite->data[1]) << 8) | sprite->data[1];
+ sprite->data[0]++;
+ break;
+ case 1:
+ if (sprite->affineAnimEnded)
+ {
+ PlaySE12WithPanning(SE_W100, BattleAnimAdjustPanning(-64));
+ ChangeSpriteAffineAnim(sprite, 1);
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (sprite->data[2]++ > 1)
+ {
+ sprite->data[2] = 0;
+ sprite->data[1]--;
+ REG_BLDALPHA = ((16 - sprite->data[1]) << 8) | sprite->data[1];
+
+ if (sprite->data[1] == 0)
+ {
+ sprite->data[0]++;
+ sprite->invisible = 1;
+ }
+ }
+
+ sprite->data[3] += 896;
+ sprite->pos2.y -= sprite->data[3] >> 8;
+ sprite->data[3] &= 0xFF;
+ break;
+ case 3:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ DestroyAnimSprite(sprite);
+ break;
+ }
+}
diff --git a/src/battle/anim/ring.c b/src/battle/anim/ring.c
index 915cadcbc..915cadcbc 100755..100644
--- a/src/battle/anim/ring.c
+++ b/src/battle/anim/ring.c
diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c
new file mode 100644
index 000000000..b113ce040
--- /dev/null
+++ b/src/battle/anim/rock.c
@@ -0,0 +1,602 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "decompress.h"
+#include "palette.h"
+#include "rom_8077ABC.h"
+#include "sound.h"
+#include "task.h"
+#include "trig.h"
+#include "constants/songs.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u32 gAnimMoveDmg;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG3_Y;
+
+extern const u8 gBattleAnimBackgroundTilemap_SandstormBrew[];
+extern const u8 gBattleAnimBackgroundImage_SandstormBrew[];
+extern const u16 gBattleAnimSpritePalette_261[];
+extern const struct SpriteTemplate gSpriteTemplate_83DAD78;
+extern const struct SpriteTemplate gSpriteTemplate_83DAD90;
+
+extern const struct SubspriteTable gUnknown_083DAD10;
+
+static void sub_80DCF1C(struct Sprite *sprite);
+static void sub_80DD02C(struct Sprite *sprite);
+static void sub_80DD190(u8 taskId);
+static void sub_80DD604(u8 taskId);
+static void sub_80DD774(struct Task *task);
+static u8 sub_80DD8BC(void);
+static void sub_80DD928(struct Sprite *sprite);
+static void sub_80DD9FC(struct Sprite *sprite);
+
+
+void sub_80DCE9C(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[3] != 0)
+ sub_807A3FC(gAnimBankTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
+
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += 14;
+
+ StartSpriteAnim(sprite, gBattleAnimArgs[1]);
+ AnimateSprite(sprite);
+
+ sprite->data[0] = 0;
+ sprite->data[1] = 0;
+ sprite->data[2] = 4;
+ sprite->data[3] = 16;
+ sprite->data[4] = -70;
+ sprite->data[5] = gBattleAnimArgs[2];
+
+ StoreSpriteCallbackInData(sprite, sub_80DCF1C);
+ sprite->callback = sub_8078278;
+ sprite->callback(sprite);
+}
+
+static void sub_80DCF1C(struct Sprite *sprite)
+{
+ sprite->pos1.x += sprite->data[5];
+
+ sprite->data[0] = 192;
+ sprite->data[1] = sprite->data[5];
+ sprite->data[2] = 4;
+ sprite->data[3] = 32;
+ sprite->data[4] = -24;
+
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+ sprite->callback = sub_8078278;
+ sprite->callback(sprite);
+}
+
+void sub_80DCF60(struct Sprite *sprite)
+{
+ StartSpriteAnim(sprite, gBattleAnimArgs[5]);
+ AnimateSprite(sprite);
+
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ sprite->pos1.x -= gBattleAnimArgs[0];
+ else
+ sprite->pos1.x += gBattleAnimArgs[0];
+
+ sprite->pos1.y += gBattleAnimArgs[1];
+
+ sprite->data[0] = gBattleAnimArgs[4];
+ sprite->data[1] = sprite->pos1.x;
+ sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2];
+ sprite->data[3] = sprite->pos1.y;
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[3];
+
+ sub_8078A5C(sprite);
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+
+ sprite->callback = sub_8078394;
+ StoreSpriteCallbackInData(sprite, move_anim_8074EE0);
+}
+
+void sub_80DCFE4(struct Sprite *sprite)
+{
+ if (gBattleAnimArgs[6] == 0)
+ sub_80787B0(sprite, 0);
+ else
+ sub_8078764(sprite, 0);
+
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[1] = gBattleAnimArgs[2];
+ sprite->data[2] = gBattleAnimArgs[4];
+ sprite->data[3] = gBattleAnimArgs[5];
+
+ sprite->callback = sub_80DD02C;
+}
+
+static void sub_80DD02C(struct Sprite *sprite)
+{
+ sprite->data[4] += sprite->data[1];
+ sprite->pos2.y = -(sprite->data[4] >> 8);
+ sprite->pos2.x = Sin(sprite->data[5], sprite->data[3]);
+ sprite->data[5] = (sprite->data[5] + sprite->data[2]) & 0xFF;
+
+ if (--sprite->data[0] == -1)
+ {
+ DestroyAnimSprite(sprite);
+ }
+}
+
+void do_boulder_dust(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+ int var0 = 0;
+
+ REG_BLDCNT = 0x3F42;
+ REG_BLDALPHA = 0x1000;
+ REG_BG1CNT_BITFIELD.priority = 1;
+ REG_BG1CNT_BITFIELD.screenSize = 0;
+
+ if (!IsContest())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 1;
+
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+
+ sub_8078914(&subStruct);
+ DmaFill32Defvars(3, 0, subStruct.field_4, 0x1000);
+ LZDecompressVram(&gBattleAnimBackgroundTilemap_SandstormBrew, subStruct.field_4);
+ LZDecompressVram(&gBattleAnimBackgroundImage_SandstormBrew, subStruct.field_0);
+ LoadCompressedPalette(&gBattleAnimSpritePalette_261, subStruct.field_8 << 4, 32);
+
+ if (IsContest())
+ sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0);
+
+ if (gBattleAnimArgs[0] != 0 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ var0 = 1;
+
+ gTasks[taskId].data[0] = var0;
+ gTasks[taskId].func = sub_80DD190;
+}
+
+static void sub_80DD190(u8 taskId)
+{
+ struct Struct_sub_8078914 subStruct;
+
+ if (gTasks[taskId].data[0] == 0)
+ gBattle_BG1_X += 0xFFFA;
+ else
+ gBattle_BG1_X += 6;
+
+ gBattle_BG1_Y += -1;
+
+ switch (gTasks[taskId].data[12])
+ {
+ case 0:
+ if (++gTasks[taskId].data[10] == 4)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[11]++;
+ REG_BLDALPHA = gTasks[taskId].data[11] | ((16 - gTasks[taskId].data[11]) << 8);
+ if (gTasks[taskId].data[11] == 7)
+ {
+ gTasks[taskId].data[12]++;
+ gTasks[taskId].data[11] = 0;
+ }
+ }
+ break;
+ case 1:
+ if (++gTasks[taskId].data[11] == 101)
+ {
+ gTasks[taskId].data[11] = 7;
+ gTasks[taskId].data[12]++;
+ }
+ break;
+ case 2:
+ if (++gTasks[taskId].data[10] == 4)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[11]--;
+ REG_BLDALPHA = gTasks[taskId].data[11] | ((16 - gTasks[taskId].data[11]) << 8);
+ if (gTasks[taskId].data[11] == 0)
+ {
+ gTasks[taskId].data[12]++;
+ gTasks[taskId].data[11] = 0;
+ }
+ }
+ break;
+ case 3:
+ sub_8078914(&subStruct);
+ DmaFill32Large(3, 0, subStruct.field_0, 0x2000, 0x1000);
+ DmaClear32(3, subStruct.field_4, 0x800);
+ if (!IsContest())
+ REG_BG1CNT_BITFIELD.charBaseBlock = 0;
+
+ gTasks[taskId].data[12]++;
+ // fall through
+ case 4:
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BG1CNT_BITFIELD.priority = 1;
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_80DD3AC(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ if (gBattleAnimArgs[3] != 0 && GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ {
+ sprite->pos1.x = 304;
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ sprite->data[5] = 1;
+ sprite->oam.matrixNum = 8;
+ }
+ else
+ {
+ sprite->pos1.x = -64;
+ }
+
+ sprite->pos1.y = gBattleAnimArgs[0];
+ SetSubspriteTables(sprite, &gUnknown_083DAD10);
+ sprite->data[1] = gBattleAnimArgs[1];
+ sprite->data[2] = gBattleAnimArgs[2];
+ sprite->data[0]++;
+ }
+ else
+ {
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+ sprite->pos2.x += (sprite->data[3] >> 8);
+ sprite->pos2.y += (sprite->data[4] >> 8);
+ sprite->data[3] &= 0xFF;
+ sprite->data[4] &= 0xFF;
+
+ if (sprite->data[5] == 0)
+ {
+ if (sprite->pos1.x + sprite->pos2.x > 272)
+ {
+ sprite->callback = DestroyAnimSprite;
+ }
+ }
+ else if (sprite->pos1.x + sprite->pos2.x < -32)
+ {
+ sprite->callback = DestroyAnimSprite;
+ }
+ }
+}
+
+void sub_80DD490(struct Sprite *sprite)
+{
+ StartSpriteAnim(sprite, gBattleAnimArgs[4]);
+ sub_80787B0(sprite, 0);
+
+ sprite->data[0] = gBattleAnimArgs[3];
+ sprite->data[2] = sprite->pos1.x;
+ sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[2];
+
+ sprite->callback = sub_8078B34;
+ StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
+}
+
+void sub_80DD4D4(u8 taskId)
+{
+ u16 var0, var1, var2, var3;
+ u8 var4;
+ int var5;
+ s16 pan1, pan2;
+ struct Task *task;
+
+ task = &gTasks[taskId];
+
+ var0 = GetBankPosition(gAnimBankAttacker, 2);
+ var1 = GetBankPosition(gAnimBankAttacker, 1) + 24;
+ var2 = GetBankPosition(gAnimBankTarget, 2);
+ var3 = GetBankPosition(gAnimBankTarget, 1) + 24;
+
+ if ((gAnimBankAttacker ^ 2) == gAnimBankTarget)
+ var3 = var1;
+
+ var4 = sub_80DD8BC();
+ if (var4 == 1)
+ task->data[8] = 32;
+ else
+ task->data[8] = 48 - (var4 * 8);
+
+ task->data[0] = 0;
+ task->data[11] = 0;
+ task->data[9] = 0;
+ task->data[12] = 1;
+
+ var5 = task->data[8];
+ if (var5 < 0)
+ var5 += 7;
+
+ task->data[10] = (var5 >> 3) - 1;
+
+ task->data[2] = var0 * 8;
+ task->data[3] = var1 * 8;
+ task->data[4] = ((var2 - var0) * 8) / task->data[8];
+ task->data[5] = ((var3 - var1) * 8) / task->data[8];
+ task->data[6] = 0;
+ task->data[7] = 0;
+
+ pan1 = BattleAnimAdjustPanning(-64);
+ pan2 = BattleAnimAdjustPanning(63);
+
+ task->data[13] = pan1;
+ task->data[14] = (pan2 - pan1) / task->data[8];
+ task->data[1] = var4;
+ task->data[15] = GetAnimBankSpriteId(0);
+
+ task->func = sub_80DD604;
+}
+
+static void sub_80DD604(u8 taskId)
+{
+ struct Task *task;
+
+ task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[6] -= task->data[4];
+ task->data[7] -= task->data[5];
+ gSprites[task->data[15]].pos2.x = task->data[6] >> 3;
+ gSprites[task->data[15]].pos2.y = task->data[7] >> 3;
+
+ if (++task->data[9] == 10)
+ {
+ task->data[11] = 20;
+ task->data[0]++;
+ }
+
+ PlaySE12WithPanning(SE_W029, task->data[13]);
+ break;
+ case 1:
+ if (--task->data[11] == 0)
+ task->data[0]++;
+ break;
+ case 2:
+ if (--task->data[9] != 0)
+ {
+ task->data[6] += task->data[4];
+ task->data[7] += task->data[5];
+ }
+ else
+ {
+ task->data[6] = 0;
+ task->data[7] = 0;
+ task->data[0]++;
+ }
+
+ gSprites[task->data[15]].pos2.x = task->data[6] >> 3;
+ gSprites[task->data[15]].pos2.y = task->data[7] >> 3;
+ break;
+ case 3:
+ task->data[2] += task->data[4];
+ task->data[3] += task->data[5];
+ if (++task->data[9] >= task->data[10])
+ {
+ task->data[9] = 0;
+ sub_80DD774(task);
+ task->data[13] += task->data[14];
+ PlaySE12WithPanning(SE_W091, task->data[13]);
+ }
+
+ if (--task->data[8] == 0)
+ {
+ task->data[0]++;
+ }
+ break;
+ case 4:
+ if (task->data[11] == 0)
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+static void sub_80DD774(struct Task *task)
+{
+ const struct SpriteTemplate *spriteTemplate;
+ int var0;
+ u16 x, y;
+ u8 spriteId;
+
+ switch (task->data[1])
+ {
+ case 1:
+ spriteTemplate = &gSpriteTemplate_83DAD78;
+ var0 = 0;
+ break;
+ case 2:
+ case 3:
+ spriteTemplate = &gSpriteTemplate_83DAD90;
+ var0 = 80;
+ break;
+ case 4:
+ spriteTemplate = &gSpriteTemplate_83DAD90;
+ var0 = 64;
+ break;
+ case 5:
+ spriteTemplate = &gSpriteTemplate_83DAD90;
+ var0 = 48;
+ break;
+ default:
+ return;
+ }
+
+ x = task->data[2] >> 3;
+ y = task->data[3] >> 3;
+ x += (task->data[12] * 4);
+
+ spriteId = CreateSprite(spriteTemplate, x, y, 35);
+ if (spriteId != 64)
+ {
+ gSprites[spriteId].data[0] = 18;
+ gSprites[spriteId].data[2] = ((task->data[12] * 20) + x) + (task->data[1] * 3);
+ gSprites[spriteId].data[4] = y;
+ gSprites[spriteId].data[5] = -16 - (task->data[1] * 2);
+ gSprites[spriteId].oam.tileNum += var0;
+
+ sub_80786EC(&gSprites[spriteId]);
+ task->data[11]++;
+ }
+
+ task->data[12] *= -1;
+}
+
+void sub_80DD87C(struct Sprite *sprite)
+{
+ if (sub_8078718(sprite))
+ {
+ u8 taskId = FindTaskIdByFunc(sub_80DD604);
+ if (taskId != 0xFF)
+ gTasks[taskId].data[11]--;
+
+ DestroySprite(sprite);
+ }
+}
+
+u8 sub_80DD8BC(void)
+{
+ u8 retVal = gAnimDisableStructPtr->rolloutTimer2 - gAnimDisableStructPtr->rolloutTimer1;
+ u8 var0 = retVal - 1;
+ if (var0 > 4)
+ {
+ retVal = 1;
+ }
+
+ return retVal;
+}
+
+void sub_80DD8E8(struct Sprite *sprite)
+{
+ StartSpriteAnim(sprite, gBattleAnimArgs[4]);
+
+ sprite->pos2.x = gBattleAnimArgs[0];
+ sprite->data[2] = gBattleAnimArgs[1];
+ sprite->data[3] -= gBattleAnimArgs[2];
+ sprite->data[0] = 3;
+ sprite->data[1] = gBattleAnimArgs[3];
+ sprite->callback = sub_80DD928;
+ sprite->invisible = 1;
+}
+
+static void sub_80DD928(struct Sprite *sprite)
+{
+ sprite->invisible = 0;
+ if (sprite->data[3] != 0)
+ {
+ sprite->pos2.y = sprite->data[2] + sprite->data[3];
+ sprite->data[3] += sprite->data[0];
+ sprite->data[0]++;
+ if (sprite->data[3] > 0)
+ {
+ sprite->data[3] = 0;
+ }
+ }
+ else
+ {
+ if (--sprite->data[1] == 0)
+ {
+ DestroyAnimSprite(sprite);
+ }
+ }
+}
+
+void sub_80DD978(struct Sprite *sprite)
+{
+ if (GetBankSide(gAnimBankAttacker) == SIDE_OPPONENT)
+ StartSpriteAffineAnim(sprite, 1);
+
+ sub_807941C(sprite);
+}
+
+void sub_80DD9A4(struct Sprite *sprite)
+{
+ sprite->pos1.x = GetBankPosition(gAnimBankTarget, 0);
+ sprite->pos1.y = GetBankPosition(gAnimBankTarget, 1);
+ sprite->pos1.x += gBattleAnimArgs[0];
+ sprite->pos1.y += gBattleAnimArgs[1];
+
+ sprite->data[1] = gBattleAnimArgs[0];
+ sprite->data[2] = gBattleAnimArgs[1];
+ sprite->data[5] = gBattleAnimArgs[2];
+
+ StartSpriteAnim(sprite, gBattleAnimArgs[3]);
+ sprite->callback = sub_80DD9FC;
+}
+
+static void sub_80DD9FC(struct Sprite *sprite)
+{
+ sprite->data[0] += 8;
+ sprite->data[3] += sprite->data[1];
+ sprite->data[4] += sprite->data[2];
+
+ sprite->pos2.x += sprite->data[3] / 40;
+ sprite->pos2.y -= Sin(sprite->data[0], sprite->data[5]);
+
+ if (sprite->data[0] > 140)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80DDA4C(u8 taskId)
+{
+ if ((s32)gAnimMoveDmg < 33)
+ gBattleAnimArgs[7] = 0;
+ if (gAnimMoveDmg - 33 < 33)
+ gBattleAnimArgs[7] = 1;
+ if ((s32)gAnimMoveDmg > 65)
+ gBattleAnimArgs[7] = 2;
+
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80DDA8C(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ sub_80789D4(0);
+ gTasks[taskId].data[1] = 200;
+ }
+
+ gBattle_BG3_Y += gTasks[taskId].data[1] / 10;
+ gTasks[taskId].data[1] -= 3;
+
+ if (gTasks[taskId].data[0] == 120)
+ {
+ sub_80789D4(1);
+ DestroyAnimVisualTask(taskId);
+ }
+
+ gTasks[taskId].data[0]++;
+}
+
+void sub_80DDAF0(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ sub_80789D4(0);
+ gTasks[taskId].data[0]++;
+ gTasks[taskId].data[2] = gBattle_BG3_Y;
+ }
+
+ gTasks[taskId].data[1] += 80;
+ gTasks[taskId].data[1] &= 0xFF;
+ gBattle_BG3_Y = gTasks[taskId].data[2] + Cos(4, gTasks[taskId].data[1]);
+
+ if (gBattleAnimArgs[7] == 0xFFF)
+ {
+ gBattle_BG3_Y = 0;
+ sub_80789D4(1);
+ DestroyAnimVisualTask(taskId);
+ }
+}
diff --git a/src/battle/anim/roots.c b/src/battle/anim/roots.c
index 68f8a3e2f..68f8a3e2f 100755..100644
--- a/src/battle/anim/roots.c
+++ b/src/battle/anim/roots.c
diff --git a/src/battle/anim/scan.c b/src/battle/anim/scan.c
index 22bb26973..22bb26973 100755..100644
--- a/src/battle/anim/scan.c
+++ b/src/battle/anim/scan.c
diff --git a/src/battle/anim/scary_face.c b/src/battle/anim/scary_face.c
index 47776a3cb..8d51521ee 100755..100644
--- a/src/battle/anim/scary_face.c
+++ b/src/battle/anim/scary_face.c
@@ -27,7 +27,7 @@ static void sub_80D24E0(u8 taskId);
void sub_80D23B4(u8 taskId)
{
struct Struct_sub_8078914 subStruct;
- u8* tempvar;
+
REG_BLDCNT = 0x3F42;
REG_BLDALPHA = 0x1000;
REG_BG1CNT_BITFIELD.priority = 1;
@@ -40,8 +40,7 @@ void sub_80D23B4(u8 taskId)
REG_BG1HOFS = 0;
REG_BG1VOFS = 0;
sub_8078914(&subStruct);
- tempvar = subStruct.field_4;
- DmaFill32(3, 0x0, tempvar, 0x1000);
+ DmaFill32Defvars(3, 0, subStruct.field_4, 0x1000);
if (IsContest())
LZDecompressVram(&gBattleAnimBackgroundTilemap_ScaryFaceContest, subStruct.field_4);
else if (GetBankSide(gAnimBankTarget) == 1)
@@ -98,21 +97,7 @@ void sub_80D24E0(u8 taskId)
break;
case 3:
sub_8078914(&subStruct);
- {
- u8 *addr = subStruct.field_0;
- u32 size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- }
+ DmaFill32Large(3, 0, subStruct.field_0, 0x2000, 0x1000);
DmaClear32(3, subStruct.field_4, 0x800);
if (!IsContest())
REG_BG1CNT_BITFIELD.charBaseBlock = 0;
diff --git a/src/battle/anim/seed.c b/src/battle/anim/seed.c
index be8613a74..be8613a74 100755..100644
--- a/src/battle/anim/seed.c
+++ b/src/battle/anim/seed.c
diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c
new file mode 100644
index 000000000..10ef1681e
--- /dev/null
+++ b/src/battle/anim/sfx.c
@@ -0,0 +1,280 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "contest.h"
+#include "ewram.h"
+#include "rom_8077ABC.h"
+#include "sound.h"
+#include "task.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u16 gBattlePartyID[];
+extern u16 gAnimSpeciesByBanks[];
+extern u8 gUnknown_0202F7D2;
+
+static void sub_812AF98(u8 taskId);
+static void sub_812B004(u8 taskId);
+static void sub_812B108(u8 taskId);
+static void sub_812B404(u8 taskId);
+
+// used in 1 move:
+// Move_FIRE_BLAST
+void sub_812AF30(u8 taskId)
+{
+ s8 sourcePan, targetPan, panIncrement;
+
+ TASK.data[0] = gBattleAnimArgs[0];
+ TASK.data[1] = gBattleAnimArgs[1];
+
+ sourcePan = BattleAnimAdjustPanning(-64);
+ targetPan = BattleAnimAdjustPanning(63);
+ panIncrement = CalculatePanIncrement(sourcePan, targetPan, 2);
+
+ TASK.data[2] = sourcePan;
+ TASK.data[3] = targetPan;
+ TASK.data[4] = panIncrement;
+ TASK.data[10] = 10;
+
+ TASK.func = sub_812AF98;
+}
+
+static void sub_812AF98(u8 taskId)
+{
+ s16 pan = TASK.data[2];
+ s8 dPan = TASK.data[4];
+
+ if (++TASK.data[11] == 111)
+ {
+ TASK.data[10] = 5;
+ TASK.data[11] = 0;
+ TASK.func = sub_812B004;
+ }
+ else
+ {
+ if (++TASK.data[10] == 11)
+ {
+ TASK.data[10] = 0;
+ PlaySE12WithPanning(TASK.data[0], pan);
+ }
+ pan += dPan;
+ TASK.data[2] = sub_8077104(pan, dPan);
+ }
+}
+
+static void sub_812B004(u8 taskId)
+{
+ s8 pan;
+
+ if (++TASK.data[10] == 6)
+ {
+ TASK.data[10] = 0;
+
+ pan = BattleAnimAdjustPanning(63);
+ PlaySE12WithPanning(TASK.data[1], pan);
+
+ if (++TASK.data[11] == 2)
+ {
+ DestroyAnimSoundTask(taskId);
+ }
+ }
+}
+
+// used in 7 moves:
+// Move_ICE_BEAM, Move_AURORA_BEAM, Move_PSYBEAM,
+// Move_PSYWAVE, Move_SHADOW_BALL, Move_TRI_ATTACK,
+// Move_HYPER_BEAM
+void sub_812B058(u8 taskId)
+{
+ s16 sp = gBattleAnimArgs[0];
+ s8 r5 = gBattleAnimArgs[2];
+ s8 panIncrement = gBattleAnimArgs[3];
+ u8 r10 = gBattleAnimArgs[4]; // number of times the sound must be played
+ u8 r7 = gBattleAnimArgs[5];
+ u8 r9 = gBattleAnimArgs[6];
+
+ s8 pan1 = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
+ s8 pan2 = BattleAnimAdjustPanning(r5);
+ panIncrement = CalculatePanIncrement(pan1, pan2, panIncrement);
+
+ TASK.data[0] = sp;
+ TASK.data[1] = pan1;
+ TASK.data[2] = pan2;
+ TASK.data[3] = panIncrement;
+ TASK.data[4] = r10;
+ TASK.data[5] = r7;
+ TASK.data[6] = r9;
+ TASK.data[10] = 0;
+ TASK.data[11] = pan1;
+ TASK.data[12] = r9;
+
+ TASK.func = sub_812B108;
+ TASK.func(taskId);
+}
+
+static void sub_812B108(u8 taskId)
+{
+ if (TASK.data[12]++ == TASK.data[6])
+ {
+ TASK.data[12] = 0;
+ PlaySE12WithPanning(TASK.data[0], TASK.data[11]);
+
+ if (--TASK.data[4] == 0)
+ {
+ DestroyAnimSoundTask(taskId);
+ return;
+ }
+ }
+
+ if (TASK.data[10]++ == TASK.data[5])
+ {
+ u16 dPan, oldPan;
+ TASK.data[10] = 0;
+ dPan = TASK.data[3];
+ oldPan = TASK.data[11];
+ TASK.data[11] = dPan + oldPan;
+ TASK.data[11] = sub_8077104(TASK.data[11], oldPan);
+ }
+}
+
+// #define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348))
+// #define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348))
+
+// used in 3 moves:
+// Move_HOWL, Move_ROAR, Move_GROWL
+void sub_812B18C(u8 taskId)
+{
+ u16 species = 0;
+ s8 pan = BattleAnimAdjustPanning(-64);
+
+ if (IsContest())
+ {
+ if (!gBattleAnimArgs[0])
+ species = shared19348.unk0;
+ else
+ DestroyAnimVisualTask(taskId);
+ }
+ else
+ {
+ u8 bank;
+ if (gBattleAnimArgs[0] == 0)
+ bank = gAnimBankAttacker;
+ else if (gBattleAnimArgs[0] == 1)
+ bank = gAnimBankTarget;
+ else if (gBattleAnimArgs[0] == 2)
+ bank = gAnimBankAttacker ^ 0x2;
+ else
+ bank = gAnimBankTarget ^ 0x2;
+
+ if (gBattleAnimArgs[0] == 1 || gBattleAnimArgs[0] == 3)
+ {
+ if (!IsAnimBankSpriteVisible(bank))
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+ }
+
+ if (GetBankSide(bank))
+ species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], 0xB);
+ else
+ species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], 0xB);
+ }
+
+ if (species != 0)
+ {
+ s16 mode = gBattleAnimArgs[1];
+ if (mode == 0xFF)
+ PlayCry1(species, pan);
+ else
+ PlayCry3(species, pan, mode);
+ }
+
+ DestroyAnimVisualTask(taskId);
+}
+
+// used in Move_HYPER_VOICE
+void sub_812B2B8(u8 taskId)
+{
+ u16 species;
+ s8 pan = BattleAnimAdjustPanning(-64);
+
+ if (IsContest())
+ species = shared19348.unk0;
+ else
+ species = gAnimSpeciesByBanks[gAnimBankAttacker];
+
+ if (species != 0)
+ PlayCry3(species, pan, 4);
+
+ DestroyAnimVisualTask(taskId);
+}
+
+// used in 6 moves:
+// Move_SKY_ATTACK, Move_LUSTER_PURGE, Move_FLATTER,
+// Move_DRAGON_CLAW, Move_RETURN, Move_COSMIC_POWER,
+void sub_812B30C(u8 taskId)
+{
+ u16 songNum = gBattleAnimArgs[0];
+ s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
+ PlaySE1WithPanning(songNum, pan);
+
+ DestroyAnimVisualTask(taskId);
+}
+
+// used in 6 moves:
+// Move_SKY_ATTACK, Move_SUPERPOWER, Move_ENCORE,
+// Move_FLATTER, Move_RETURN, Move_COSMIC_POWER
+void sub_812B340(u8 taskId)
+{
+ u16 songNum = gBattleAnimArgs[0];
+ s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
+ PlaySE2WithPanning(songNum, pan);
+
+ DestroyAnimVisualTask(taskId);
+}
+
+// used in 2 moves:
+// Move_CONFUSE_RAY, Move_WILL_O_WISP
+void sub_812B374(u8 taskId)
+{
+ u8 r5 = gBattleAnimArgs[1];
+ s8 panIncrement = gBattleAnimArgs[2];
+ s16 r9 = gBattleAnimArgs[3];
+ s8 r1 = gBattleAnimArgs[0];
+
+ s8 sourcePan = BattleAnimAdjustPanning(r1);
+ s8 targetPan = BattleAnimAdjustPanning(r5);
+ panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement);
+
+ TASK.data[1] = sourcePan;
+ TASK.data[2] = targetPan;
+ TASK.data[3] = panIncrement;
+ TASK.data[5] = r9;
+ TASK.data[10] = 0;
+ TASK.data[11] = sourcePan;
+
+ TASK.func = sub_812B404;
+ TASK.func(taskId);
+}
+
+static void sub_812B404(u8 taskId)
+{
+ u16 dPan = TASK.data[3];
+
+ if (TASK.data[10]++ == TASK.data[5])
+ {
+ u16 oldPan;
+ TASK.data[10] = 0;
+ oldPan = TASK.data[11];
+ TASK.data[11] = dPan + oldPan;
+ TASK.data[11] = sub_8077104(TASK.data[11], oldPan);
+ }
+
+ gUnknown_0202F7D2 = TASK.data[11];
+
+ if (TASK.data[11] == TASK.data[2])
+ {
+ DestroyAnimVisualTask(taskId);
+ }
+} \ No newline at end of file
diff --git a/src/battle/anim/shadow_enlarge.c b/src/battle/anim/shadow_enlarge.c
index 399cf1ba4..399cf1ba4 100755..100644
--- a/src/battle/anim/shadow_enlarge.c
+++ b/src/battle/anim/shadow_enlarge.c
diff --git a/src/battle/anim/shadow_minimize.c b/src/battle/anim/shadow_minimize.c
index 94069374f..94069374f 100755..100644
--- a/src/battle/anim/shadow_minimize.c
+++ b/src/battle/anim/shadow_minimize.c
diff --git a/src/battle/anim/shield.c b/src/battle/anim/shield.c
index 676318545..676318545 100755..100644
--- a/src/battle/anim/shield.c
+++ b/src/battle/anim/shield.c
diff --git a/src/battle/anim/shimmer.c b/src/battle/anim/shimmer.c
index 9e7bea1e4..9e7bea1e4 100755..100644
--- a/src/battle/anim/shimmer.c
+++ b/src/battle/anim/shimmer.c
diff --git a/src/battle/anim/silhouette.c b/src/battle/anim/silhouette.c
index a3147f598..a3147f598 100755..100644
--- a/src/battle/anim/silhouette.c
+++ b/src/battle/anim/silhouette.c
diff --git a/src/battle/anim/slash.c b/src/battle/anim/slash.c
index 6adcaf098..6adcaf098 100755..100644
--- a/src/battle/anim/slash.c
+++ b/src/battle/anim/slash.c
diff --git a/src/battle/anim/sleep.c b/src/battle/anim/sleep.c
index 0f0e54f80..0f0e54f80 100755..100644
--- a/src/battle/anim/sleep.c
+++ b/src/battle/anim/sleep.c
diff --git a/src/battle/anim/slice.c b/src/battle/anim/slice.c
index fe8745483..fe8745483 100755..100644
--- a/src/battle/anim/slice.c
+++ b/src/battle/anim/slice.c
diff --git a/src/battle/anim/smoke.c b/src/battle/anim/smoke.c
index 7ab873e63..7ab873e63 100755..100644
--- a/src/battle/anim/smoke.c
+++ b/src/battle/anim/smoke.c
diff --git a/src/battle/anim/sonic.c b/src/battle/anim/sonic.c
index 0897ec6e3..0897ec6e3 100755..100644
--- a/src/battle/anim/sonic.c
+++ b/src/battle/anim/sonic.c
diff --git a/src/battle/anim/sonic_task.c b/src/battle/anim/sonic_task.c
index 924b1b568..924b1b568 100755..100644
--- a/src/battle/anim/sonic_task.c
+++ b/src/battle/anim/sonic_task.c
diff --git a/src/battle/anim/spin_finger.c b/src/battle/anim/spin_finger.c
index 8eb060358..8eb060358 100755..100644
--- a/src/battle/anim/spin_finger.c
+++ b/src/battle/anim/spin_finger.c
diff --git a/src/battle/anim/spit.c b/src/battle/anim/spit.c
index 1e65ba53e..1e65ba53e 100755..100644
--- a/src/battle/anim/spit.c
+++ b/src/battle/anim/spit.c
diff --git a/src/battle/anim/splash.c b/src/battle/anim/splash.c
index 570ef0dca..570ef0dca 100755..100644
--- a/src/battle/anim/splash.c
+++ b/src/battle/anim/splash.c
diff --git a/src/battle/anim/startle.c b/src/battle/anim/startle.c
index 50e78af37..50e78af37 100755..100644
--- a/src/battle/anim/startle.c
+++ b/src/battle/anim/startle.c
diff --git a/src/battle/anim/strike.c b/src/battle/anim/strike.c
index bfa1dc4f7..bfa1dc4f7 100755..100644
--- a/src/battle/anim/strike.c
+++ b/src/battle/anim/strike.c
diff --git a/src/battle/anim/switch.c b/src/battle/anim/switch.c
index c4082b6aa..c4082b6aa 100755..100644
--- a/src/battle/anim/switch.c
+++ b/src/battle/anim/switch.c
diff --git a/src/battle/anim/sword.c b/src/battle/anim/sword.c
index b46fe6759..b46fe6759 100755..100644
--- a/src/battle/anim/sword.c
+++ b/src/battle/anim/sword.c
diff --git a/src/battle/anim/taunt_finger.c b/src/battle/anim/taunt_finger.c
index 023e14e45..023e14e45 100755..100644
--- a/src/battle/anim/taunt_finger.c
+++ b/src/battle/anim/taunt_finger.c
diff --git a/src/battle/anim/tendrils.c b/src/battle/anim/tendrils.c
index 9f57ffd45..9f57ffd45 100755..100644
--- a/src/battle/anim/tendrils.c
+++ b/src/battle/anim/tendrils.c
diff --git a/src/battle/anim/thought.c b/src/battle/anim/thought.c
index c3ab6f82c..c3ab6f82c 100755..100644
--- a/src/battle/anim/thought.c
+++ b/src/battle/anim/thought.c
diff --git a/src/battle/anim/thrashing.c b/src/battle/anim/thrashing.c
index 3fde815ae..3fde815ae 100755..100644
--- a/src/battle/anim/thrashing.c
+++ b/src/battle/anim/thrashing.c
diff --git a/src/battle/anim/tile_in.c b/src/battle/anim/tile_in.c
index a4a544a0c..a4a544a0c 100755..100644
--- a/src/battle/anim/tile_in.c
+++ b/src/battle/anim/tile_in.c
diff --git a/src/battle/anim/tile_out.c b/src/battle/anim/tile_out.c
index 50468a440..50468a440 100755..100644
--- a/src/battle/anim/tile_out.c
+++ b/src/battle/anim/tile_out.c
diff --git a/src/battle/anim/twinkle.c b/src/battle/anim/twinkle.c
index e26669f63..e26669f63 100755..100644
--- a/src/battle/anim/twinkle.c
+++ b/src/battle/anim/twinkle.c
diff --git a/src/battle/anim/unused_1.c b/src/battle/anim/unused_1.c
index d7e5fbfe4..d7e5fbfe4 100755..100644
--- a/src/battle/anim/unused_1.c
+++ b/src/battle/anim/unused_1.c
diff --git a/src/battle/anim/unused_2.c b/src/battle/anim/unused_2.c
index 122f39e02..122f39e02 100755..100644
--- a/src/battle/anim/unused_2.c
+++ b/src/battle/anim/unused_2.c
diff --git a/src/battle/anim/unused_3.c b/src/battle/anim/unused_3.c
index 6dbcbfefe..6dbcbfefe 100755..100644
--- a/src/battle/anim/unused_3.c
+++ b/src/battle/anim/unused_3.c
diff --git a/src/battle/anim/unused_4.c b/src/battle/anim/unused_4.c
index bda476a0a..bda476a0a 100755..100644
--- a/src/battle/anim/unused_4.c
+++ b/src/battle/anim/unused_4.c
diff --git a/src/battle/anim/unused_5.c b/src/battle/anim/unused_5.c
index 421cdd6bf..421cdd6bf 100755..100644
--- a/src/battle/anim/unused_5.c
+++ b/src/battle/anim/unused_5.c
diff --git a/src/battle/anim/unused_6.c b/src/battle/anim/unused_6.c
index 37e2031b0..37e2031b0 100755..100644
--- a/src/battle/anim/unused_6.c
+++ b/src/battle/anim/unused_6.c
diff --git a/src/battle/anim/unused_7.c b/src/battle/anim/unused_7.c
index 2be6e7633..2be6e7633 100755..100644
--- a/src/battle/anim/unused_7.c
+++ b/src/battle/anim/unused_7.c
diff --git a/src/battle/anim/unused_8.c b/src/battle/anim/unused_8.c
index 03772f951..03772f951 100755..100644
--- a/src/battle/anim/unused_8.c
+++ b/src/battle/anim/unused_8.c
diff --git a/src/battle/anim/unused_9.c b/src/battle/anim/unused_9.c
index cf3ccb0d4..cf3ccb0d4 100755..100644
--- a/src/battle/anim/unused_9.c
+++ b/src/battle/anim/unused_9.c
diff --git a/src/battle/anim/wave_finger.c b/src/battle/anim/wave_finger.c
index 2cf68c34c..2cf68c34c 100755..100644
--- a/src/battle/anim/wave_finger.c
+++ b/src/battle/anim/wave_finger.c
diff --git a/src/battle/anim/whip.c b/src/battle/anim/whip.c
index cb3ce327e..cb3ce327e 100755..100644
--- a/src/battle/anim/whip.c
+++ b/src/battle/anim/whip.c
diff --git a/src/battle/anim/wisp_fire.c b/src/battle/anim/wisp_fire.c
new file mode 100644
index 000000000..348ce6426
--- /dev/null
+++ b/src/battle/anim/wisp_fire.c
@@ -0,0 +1,196 @@
+#include "global.h"
+#include "battle_anim.h"
+#include "blend_palette.h"
+#include "main.h"
+#include "rom_8077ABC.h"
+#include "task.h"
+#include "trig.h"
+
+extern s16 gBattleAnimArgs[];
+extern u8 gAnimBankTarget;
+extern u8 gAnimBankAttacker;
+
+extern u8 gObjectBankIDs[];
+extern s8 gUnknown_083D9794[16];
+extern s8 gUnknown_083D97A4[16];
+
+void sub_80D5E4C(u8 taskId);
+
+void sub_80D5CC0(struct Sprite *sprite)
+{
+ if (!sprite->data[0])
+ {
+ sprite->data[1] = gBattleAnimArgs[0];
+ sprite->data[0] += 1;
+ }
+
+ sprite->data[3] += 0xC0 * 2;
+ sprite->data[4] += 0xA0;
+
+ sprite->pos2.x = Sin(sprite->data[1], sprite->data[3] >> 8);
+ sprite->pos2.y = Cos(sprite->data[1], sprite->data[4] >> 8);
+
+ sprite->data[1] = (sprite->data[1] + 7) & 0xFF;
+
+ if (gMain.inBattle)
+ {
+ if (sprite->data[1] < 64 || sprite->data[1] > 195)
+ sprite->oam.priority = sub_8079ED4(gAnimBankTarget);
+ else
+ sprite->oam.priority = sub_8079ED4(gAnimBankTarget) + 1;
+ }
+ else
+ {
+ if (sprite->data[1] < 64 || sprite->data[1] > 195)
+ sprite->subpriority = 0x1D;
+ else
+ sprite->subpriority = 0x1F;
+ }
+
+ if (++sprite->data[2] > 0x14)
+ sprite->invisible ^= 1;
+
+ if (sprite->data[2] == 0x1E)
+ DestroyAnimSprite(sprite);
+}
+
+void sub_80D5DDC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->data[12] = !GetBankSide(gAnimBankAttacker) ? 1 : -1;
+ task->data[13] = IsAnimBankSpriteVisible(gAnimBankTarget ^ 2) + 1;
+ task->data[14] = GetAnimBankSpriteId(1);
+ task->data[15] = GetAnimBankSpriteId(3);
+
+ task->func = sub_80D5E4C;
+}
+
+void sub_80D5E4C(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[10] += task->data[12] * 2;
+ if (++task->data[1] >= 2)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+ if (task->data[2] & 1)
+ task->data[11] = 2;
+ else
+ task->data[11] = -2;
+ }
+
+ for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
+ {
+ gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
+ }
+
+ if (++task->data[9] == 16)
+ {
+ task->data[9] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 1:
+ if (++task->data[1] >= 5)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+
+ if (task->data[2] & 1)
+ task->data[11] = 2;
+ else
+ task->data[11] = -2;
+ }
+
+ for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
+ {
+ gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
+ }
+
+ if (++task->data[9] == 96)
+ {
+ task->data[9] = 0;
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[10] -= task->data[12] * 2;
+
+ if (++task->data[1] >= 2)
+ {
+ task->data[1] = 0;
+ task->data[2]++;
+
+ if (task->data[2] & 1)
+ task->data[11] = 2;
+ else
+ task->data[11] = -2;
+ }
+
+ for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
+ {
+ gSprites[task->data[task->data[3] + 14]].pos2.x = task->data[10] + task->data[11];
+ }
+
+ if (++task->data[9] == 16)
+ {
+ task->data[0]++;
+ }
+ break;
+ case 3:
+ for (task->data[3] = 0; task->data[3] < task->data[13]; task->data[3]++)
+ {
+ gSprites[task->data[task->data[3] + 14]].pos2.x = 0;
+ }
+
+ DestroyAnimVisualTask(taskId);
+ break;
+ }
+}
+
+void sub_80D6080(u8 taskId)
+{
+ struct Struct_sub_8078914 unk;
+ sub_8078914(&unk);
+ BlendPalette(unk.field_8 << 4, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]); // u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor
+ DestroyAnimVisualTask(taskId);
+}
+
+void sub_80D60B4(u8 taskId)
+{
+ s8 unk;
+ u8 spriteId;
+
+ if (gTasks[taskId].data[0] == 0)
+ {
+ gTasks[taskId].data[1] = gBattleAnimArgs[0];
+ gTasks[taskId].data[2] = gBattleAnimArgs[1];
+ gTasks[taskId].data[3] = gBattleAnimArgs[2];
+ gTasks[taskId].data[4] = gBattleAnimArgs[3];
+ }
+ gTasks[taskId].data[0]++;
+
+ spriteId = gObjectBankIDs[gAnimBankTarget];
+
+ if (!gTasks[taskId].data[4])
+ unk = gUnknown_083D9794[gTasks[taskId].data[0] % 10];
+ else
+ unk = gUnknown_083D97A4[gTasks[taskId].data[0] % 10];
+
+ if (gTasks[taskId].data[3] == 1)
+ gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk;
+ else
+ gSprites[spriteId].pos2.x = gBattleAnimArgs[1] * unk;
+
+ if (gTasks[taskId].data[0] == gTasks[taskId].data[1])
+ {
+ gSprites[spriteId].pos2.x = 0;
+ gSprites[spriteId].pos2.y = 0;
+ DestroyAnimVisualTask(taskId);
+ }
+} \ No newline at end of file
diff --git a/src/battle/anim/withdraw.c b/src/battle/anim/withdraw.c
index e67248b9f..e67248b9f 100755..100644
--- a/src/battle/anim/withdraw.c
+++ b/src/battle/anim/withdraw.c
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index b0654950b..b09d9ad8d 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -1,34 +1,48 @@
#include "global.h"
#include "constants/abilities.h"
+#include "constants/battle_move_effects.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "gba/flash_internal.h"
#include "battle.h"
+#include "battle_ai.h"
#include "battle_interface.h"
+#include "battle_message.h"
#include "battle_setup.h"
+#include "battle_util.h"
#include "data2.h"
+#include "decompress.h"
+#include "event_data.h"
+#include "evolution_scene.h"
#include "item.h"
#include "link.h"
#include "main.h"
+#include "m4a.h"
#include "name_string_util.h"
+#include "overworld.h"
#include "palette.h"
#include "party_menu.h"
#include "pokeball.h"
#include "pokedex.h"
#include "pokemon.h"
#include "random.h"
+#include "roamer.h"
#include "rom3.h"
#include "rom_8077ABC.h"
#include "rom_8094928.h"
-#include "constants/songs.h"
#include "sound.h"
-#include "constants/species.h"
#include "sprite.h"
+#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "trainer.h"
#include "trig.h"
-#include "unknown_task.h"
+#include "tv.h"
+#include "scanline_effect.h"
#include "util.h"
-#include "constants/items.h"
-#include "constants/hold_effects.h"
-#include "constants/battle_move_effects.h"
#include "ewram.h"
struct UnknownStruct7
@@ -53,20 +67,29 @@ struct UnknownStruct12
u8 filler4[0x54];
};
+extern void sub_802BBD4();
+
+extern struct SpriteTemplate gUnknown_02024E8C;
+extern const u8 Str_821F7B8[];
+extern u8 gUnknown_02023A14_50;
extern const u16 gUnknown_08D004E0[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
-
+extern const u8 Str_821F7EA[];
+extern const u8 gUnknown_Debug_821F7F3[];
+extern const u8 BattleText_YesNo[];
+extern u8 gStatStageRatios[][2];
+extern u8 gActionsByTurnOrder[4];
extern struct UnknownPokemonStruct2 gUnknown_02023A00[];
extern u8 gBattleBufferB[][0x200];
extern u8 gActiveBank;
extern u32 gBattleExecBuffer;
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
-extern u8 gFightStateTracker;
-extern u8 gTurnOrder[];
+extern u8 gCurrentActionFuncId;
+extern u8 gBanksByTurnOrder[];
extern struct UnknownStruct12 gUnknown_02024AD0[];
extern u8 gObjectBankIDs[];
-extern u16 gCurrentMove;
+extern u16 gCurrentMove; // This is mis-named. It is a species, not a move ID.
extern u8 gLastUsedAbility;
extern u8 gStringBank;
extern u8 gAbsentBankFlags;
@@ -74,10 +97,10 @@ extern u8 gMultiHitCounter;
extern u8 gActionForBanks[];
extern u16 gUnknown_02024C2C[];
extern u16 gLastUsedMove[];
-extern u16 gMoveHitWith[];
-extern u16 gUnknown_02024C44[];
+extern u16 gLastLandedMoves[];
+extern u16 gLastHitByType[];
extern u16 gUnknown_02024C4C[];
-extern u16 gLockedMove[];
+extern u16 gLockedMoves[];
extern u8 gUnknown_02024C5C[];
extern u16 gChosenMovesByBanks[];
extern u32 gHitMarker;
@@ -95,9 +118,9 @@ extern u16 gUnknown_02024DE8;
extern u8 gActionSelectionCursor[];
extern u8 gMoveSelectionCursor[];
extern u8 gUnknown_02038470[];
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern struct Window gUnknown_030041D0;
extern u16 gBattle_WIN1H;
extern struct Window gUnknown_03004210;
@@ -107,8 +130,8 @@ extern u16 gBattle_WIN0V;
extern u16 gBattle_BG2_Y;
extern u32 gUnknown_03004284;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u16 gBattle_WIN0H;
extern MainCallback gPreBattleCallback1;
@@ -129,8 +152,52 @@ extern u16 gBattleWeather;
extern u32 gBattleMoveDamage;
extern struct BattlePokemon gBattleMons[];
extern u8 gBattleMoveFlags;
-
+extern u8 BattleScript_FocusPunchSetUp[];
+extern u16 gDynamicBasePower;
+extern u8 gCurrentTurnActionNumber;
+extern void (* const gUnknown_081FA640[])(void);
+extern void (* const gUnknown_081FA678[])(void);
+extern u8* gBattlescriptCurrInstr;
+extern u8 BattleScript_LinkBattleWonOrLost[];
+extern u8 BattleScript_PayDayMoneyAndPickUpItems[];
+extern u8 gUnknown_081D8E0D[];
+extern u8 BattleScript_LocalTrainerBattleWon[];
+extern u8 BattleScript_LocalBattleLost[];
+extern u8 BattleScript_GotAwaySafely[];
+extern u8 BattleScript_SmokeBallEscape[];
+extern u8 BattleScript_RanAwayUsingMonAbility[];
+extern u8 BattleScript_WildMonFled[];
+extern u8 BattleScript_ActionSwitch[];
+extern u8 BattleScript_PrintFailedToRunString[];
+extern const BattleCmdFunc gBattleScriptingCommandsTable[];
+extern u8 gCritMultiplier;
+extern u8 gCurrMovePos;
+extern u8 gUnknown_02024BE5;
+extern u16 gChosenMove;
+extern u8* gBattleScriptsForMoveEffects[];
+extern u16 gLastUsedItem;
+extern u8 * const gBattlescriptsForBallThrow[];
+extern u8 * const gBattlescriptsForRunningByItem[];
+extern u8 * const gBattlescriptsForUsingItem[];
+extern u8 * const gBattlescriptsForSafariActions[];
+extern u8 gBattleTextBuff2[];
+extern u8 gNumSafariBalls;
+extern u8 gUnknown_081FA70C[][3];
+extern u8 gUnknown_081FA71B[];
+extern u8 gUnknown_081FA71F[];
+
+void sub_8010824(void);
static void BattlePrepIntroSlide(void);
+void CheckFocusPunch_ClearVarsBeforeTurnStarts(void);
+void SetActionsAndBanksTurnOrder(void);
+static void TurnValuesCleanUp(u8);
+void SpecialStatusesClear(void);
+static void RunTurnActionsFunctions(void);
+void HandleEndTurn_FinishBattle();
+static void FreeResetData_ReturnToOvOrDoEvolutions(void);
+void TryEvolvePokemon(void);
+static void ReturnFromBattleToOverworld(void);
+static void WaitForEvoSceneToFinish(void);
void sub_800E7C4(void)
{
@@ -162,35 +229,42 @@ void InitBattle(void)
REG_WINOUT = 0;
gBattle_WIN0H = 0xF0;
gBattle_WIN0V = 0x5051;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0[0][i] = 0xF0;
- gUnknown_03004DE0[1][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_03004DE0[0][i] = 0xFF10;
- gUnknown_03004DE0[1][i] = 0xFF10;
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
- //sub_80895F8(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8);
- sub_80895F8(gUnknown_081F9674);
- SetUpWindowConfig(&gWindowConfig_81E6C58);
+ //ScanlineEffect_SetParams(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8);
+ ScanlineEffect_SetParams(gUnknown_081F9674);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+
+#if DEBUG
+ if (!(gUnknown_02023A14_50 & 8))
+ gBattleTerrain = BattleSetup_GetTerrain();
+#else
gBattleTerrain = BattleSetup_GetTerrain();
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58);
- InitWindowFromConfig(&gUnknown_030041D0, &gWindowConfig_81E71D0);
- InitWindowFromConfig(&gUnknown_03004250, &gWindowConfig_81E71EC);
+#endif
+
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
+ Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0);
+ Text_InitWindowWithTemplate(&gUnknown_03004250, &gWindowTemplate_81E71EC);
sub_800D6D4();
sub_800DAB8();
ResetSpriteData();
@@ -204,7 +278,11 @@ void InitBattle(void)
SetMainCallback2(sub_800F298);
else
SetMainCallback2(sub_800EC9C);
- if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)
+#if DEBUG
+ && !(gUnknown_02023A14_50 & 8)
+#endif
+ )
{
CreateNPCTrainerParty(gEnemyParty, gTrainerBattleOpponent);
SetWildMonHeldItem();
@@ -244,8 +322,8 @@ void sub_800E9EC(void)
if (species != SPECIES_EGG && hp == 0)
r6 |= 3 << i * 2;
}
- BATTLE_STRUCT->unk2 = r6;
- BATTLE_STRUCT->unk3 = r6 >> 8;
+ gBattleStruct->unk2 = r6;
+ gBattleStruct->unk3 = r6 >> 8;
}
void sub_800EAAC(void)
@@ -326,6 +404,7 @@ void sub_800EC9C(void)
{
u8 playerId;
u8 enemyId;
+ s32 id;
RunTasks();
AnimateSprites();
@@ -339,13 +418,23 @@ void sub_800EC9C(void)
case 0:
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
+ if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
{
- BATTLE_STRUCT->unk0 = 1;
- BATTLE_STRUCT->unk1 = 1;
+ gBattleStruct->unk0 = 1;
+ gBattleStruct->unk1 = 1;
sub_800E9EC();
sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), BATTLE_STRUCT, 32);
+#if DEBUG
+ if (gUnknown_02023A14_50 & 8)
+ {
+ for (id = 0; id < 2; id++) // Why < 2 here?
+ {
+ gLinkPlayers[id].lp_field_18 = id;
+ gLinkPlayers[id].linkType = 0x2211;
+ }
+ }
+#endif
+ SendBlock(bitmask_all_link_players_but_self(), gBattleStruct, 32);
gBattleCommunication[0] = 1;
}
}
@@ -359,7 +448,6 @@ void sub_800EC9C(void)
case 1:
if ((GetBlockReceivedStatus() & 3) == 3)
{
- s32 id;
u8 taskId;
ResetBlockReceivedFlags();
@@ -401,13 +489,13 @@ void sub_800EC9C(void)
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = BATTLE_STRUCT->unk2 | (BATTLE_STRUCT->unk3 << 8);
+ gTasks[taskId].data[3] = gBattleStruct->unk2 | (gBattleStruct->unk3 << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1];
gBattleCommunication[0]++;
}
break;
case 2:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(*gPlayerParty) * 2);
gBattleCommunication[0]++;
@@ -422,7 +510,7 @@ void sub_800EC9C(void)
}
break;
case 4:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(*gPlayerParty) * 2);
gBattleCommunication[0]++;
@@ -437,7 +525,7 @@ void sub_800EC9C(void)
}
break;
case 6:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(*gPlayerParty) * 2);
gBattleCommunication[0]++;
@@ -468,7 +556,7 @@ void sub_800EC9C(void)
{
gPreBattleCallback1 = gMain.callback1;
gMain.callback1 = sub_8010824;
- SetMainCallback2(sub_800F808);
+ SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gTrainerBattleOpponent = 0x800;
@@ -496,7 +584,7 @@ void sub_800F02C(void)
gUnknown_02023A00[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
gUnknown_02023A00[i].personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
gUnknown_02023A00[i].gender = GetMonGender(&gPlayerParty[i]);
- StripExtCtrlCodes(nickname);
+ Text_StripExtCtrlCodes(nickname);
gUnknown_02023A00[i].language = GetMonData(&gPlayerParty[i], MON_DATA_LANGUAGE);
if (gUnknown_02023A00[i].language != 1)
PadNameString(nickname, 0);
@@ -509,6 +597,7 @@ void sub_800F104(void)
u8 playerId;
MainCallback *pSavedCallback;
u16 *pSavedBattleTypeFlags;
+ s32 i;
playerId = GetMultiplayerId();
ewram160CB = playerId;
@@ -522,17 +611,30 @@ void sub_800F104(void)
switch (gBattleCommunication[0])
{
case 0:
- if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
+ if (gReceivedRemoteLinkPlayers != 0)
{
- sub_800F02C();
- SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
- gBattleCommunication[0]++;
+#if DEBUG
+ if (gUnknown_02023A14_50 & 8)
+ {
+ for (i = 0; i < 4; i++)
+ {
+ gLinkPlayers[i].lp_field_18 = i;
+ gLinkPlayers[i].linkType = 0x2211;
+ }
+ }
+#endif
+ if (IsLinkTaskFinished())
+ {
+ sub_800F02C();
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
+ gBattleCommunication[0]++;
+ }
}
break;
case 1:
if ((GetBlockReceivedStatus() & 0xF) == 0xF)
{
- s32 i;
+ //s32 i;
ResetBlockReceivedFlags();
for (i = 0; i < 4; i++)
@@ -582,14 +684,27 @@ void sub_800F298(void)
switch (gBattleCommunication[0])
{
case 0:
- if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
+ if (gReceivedRemoteLinkPlayers != 0)
{
- BATTLE_STRUCT->unk0 = 1;
- BATTLE_STRUCT->unk1 = 1;
- sub_800E9EC();
- sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
- gBattleCommunication[0]++;
+#if DEBUG
+ if (gUnknown_02023A14_50 & 8)
+ {
+ for (id = 0; id < 4; id++)
+ {
+ gLinkPlayers[id].lp_field_18 = id;
+ gLinkPlayers[id].linkType = 0x2211;
+ }
+ }
+#endif
+ if (IsLinkTaskFinished())
+ {
+ gBattleStruct->unk0 = 1;
+ gBattleStruct->unk1 = 1;
+ sub_800E9EC();
+ sub_800EAAC();
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
+ gBattleCommunication[0]++;
+ }
}
break;
case 1:
@@ -675,7 +790,7 @@ void sub_800F298(void)
break;
case 2:
step_2:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
SendBlock(bitmask_all_link_players_but_self(), ewram1D000, sizeof(struct Pokemon) * 2);
gBattleCommunication[0]++;
@@ -738,7 +853,7 @@ void sub_800F298(void)
}
break;
case 4:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
SendBlock(bitmask_all_link_players_but_self(), ewram1D000 + 2, sizeof(struct Pokemon));
gBattleCommunication[0]++;
@@ -826,7 +941,7 @@ void sub_800F298(void)
{
gPreBattleCallback1 = gMain.callback1;
gMain.callback1 = sub_8010824;
- SetMainCallback2(sub_800F808);
+ SetMainCallback2(BattleMainCB2);
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
gTrainerBattleOpponent = 0x800;
@@ -837,11 +952,34 @@ void sub_800F298(void)
}
}
-void sub_800F808(void)
+void BattleMainCB2(void)
{
AnimateSprites();
BuildOamBuffer();
- sub_800374C(&gUnknown_03004210);
+
+#if DEBUG
+ if ((gMain.heldKeys & (R_BUTTON | SELECT_BUTTON)) == ((R_BUTTON | SELECT_BUTTON)))
+ {
+ gSpecialVar_Result = gBattleOutcome = 1;
+ gMain.inBattle = FALSE;
+ gScanlineEffect.state = 3;
+ gMain.callback1 = gPreBattleCallback1;
+ ZeroEnemyPartyMons();
+ m4aSongNumStop(0x5A);
+ if (gBattleTypeFlags & 2)
+ SetMainCallback2(sub_805465C);
+ else
+ SetMainCallback2(gMain.savedCallback);
+ }
+ if (gBattleTypeFlags & 2)
+ {
+ debug_sub_8008264((gBattleTypeFlags >> 2) % 2, 1, 1, 1, 1);
+ debug_sub_8008264((gBattleTypeFlags >> 2) % 2, 1, 21, 1, 1);
+ debug_sub_8008264((gBattleTypeFlags >> 2) % 2, 1, 41, 1, 1);
+ }
+#endif
+
+ Text_UpdateWindowInBattle(&gUnknown_03004210);
UpdatePaletteFade();
RunTasks();
}
@@ -1001,14 +1139,14 @@ void sub_800FCD4(void)
void sub_800FCFC(void)
{
Random(); // unused return value
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
REG_WIN0H = gBattle_WIN0H;
REG_WIN0V = gBattle_WIN0V;
REG_WIN1H = gBattle_WIN1H;
@@ -1016,7 +1154,7 @@ void sub_800FCFC(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void nullsub_36(struct Sprite *sprite)
@@ -1140,33 +1278,33 @@ void c2_8011A1C(void)
REG_WINOUT = 0;
gBattle_WIN0H = 0xF0;
gBattle_WIN0V = 0x5051;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0[0][i] = 0xF0;
- gUnknown_03004DE0[1][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_03004DE0[0][i] = 0xFF10;
- gUnknown_03004DE0[1][i] = 0xFF10;
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
- SetUpWindowConfig(&gWindowConfig_81E6C58);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58);
- InitWindowFromConfig(&gUnknown_030041D0, &gWindowConfig_81E71D0);
- InitWindowFromConfig(&gUnknown_03004250, &gWindowConfig_81E71EC);
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
+ Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0);
+ Text_InitWindowWithTemplate(&gUnknown_03004250, &gWindowTemplate_81E71EC);
sub_800D6D4();
LoadCompressedPalette(gUnknown_08D004E0, 0, 64);
sub_800D74C();
@@ -1218,6 +1356,3104 @@ void c2_081284E0(void)
}
}
+// A LOT of debug code!
+#if DEBUG
+
+extern u8 gUnknown_Debug_2023B62[];
+extern const u8 Str_821F7BD[];
+extern const u8 Str_821F7DA[];
+
+void debug_sub_8010818(void);
+void debug_sub_80108B8(void);
+void debug_sub_8010CAC(void);
+void debug_sub_8011498(void);
+void debug_sub_801174C(void);
+void debug_sub_8011D40(void);
+void debug_sub_8011E5C(void);
+void debug_sub_8011E74(void);
+void debug_sub_8011EA0(u8);
+void debug_sub_8012294(void);
+void debug_sub_80123D8(u8);
+void debug_sub_8012540(void);
+void debug_nullsub_3(void);
+void debug_sub_80125A0(void);
+void debug_sub_80125E4(void);
+void debug_sub_8012628(void);
+void debug_sub_8012688(void);
+void debug_sub_8012878(void);
+void debug_sub_8012D10(u8);
+u32 debug_sub_8013294(u8, void *, u32);
+void debug_sub_80132C8(u8, void *, u32);
+
+extern s16 gUnknown_Debug_2023A76[][0x23];
+extern s16 gUnknown_Debug_2023A76_[][7][5];
+extern s16 gUnknown_Debug_2023B02[][6][4];
+extern u8 gUnknown_Debug_03004360;
+extern struct Window gUnknown_Debug_03004370;
+extern u8 gUnknown_Debug_030043A0;
+extern u8 gUnknown_Debug_030043A4;
+extern u8 gUnknown_Debug_030043A8;
+extern u8 gBattleBuffersTransferData[];
+
+extern const u16 gUnknown_Debug_821F424[][5];
+extern const u16 gUnknown_Debug_821F56C[][5];
+extern const u32 gUnknown_Debug_821F798[][4];
+
+extern const u8 gUnusedOldCharmap_Gfx_lz[];
+extern const u8 gUnusedOldCharmap_Tilemap_lz[];
+extern const u8 gUnusedOldCharmap_Pal_lz[];
+
+void debug_sub_8010800(void)
+{
+ debug_sub_8010818();
+ debug_sub_80108B8();
+ *(u32 *)(gBattleBuffersTransferData + 0x100) = 0;
+}
+
+void debug_sub_8010818(void)
+{
+ s32 i;
+
+ gUnknown_Debug_2023A76[0][0] = 0x115;
+ gUnknown_Debug_2023A76[1][0] = 0x115;
+ for (i = 1; i < 31; i++)
+ {
+ gUnknown_Debug_2023A76[0][i] = gUnknown_Debug_821F424[i][4];
+ gUnknown_Debug_2023A76[1][i] = gUnknown_Debug_821F424[i][4];
+ }
+
+ for (i = 0; i < 6; i++)
+ {
+ for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++)
+ {
+ gUnknown_Debug_2023B02[0][i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0];
+ gUnknown_Debug_2023B02[1][i][gUnknown_Debug_030043A8] = gUnknown_Debug_821F56C[gUnknown_Debug_030043A8][0];
+ }
+ }
+}
+
+void debug_sub_80108B8(void)
+{
+ s32 i;
+
+ m4aSoundVSyncOff();
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ DmaFill32(3, 0, (void *)VRAM, VRAM_SIZE);
+ REG_IE = 1;
+ REG_DISPCNT = 0x1340;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ REG_BG0CNT = 0x1F09;
+ REG_BG1CNT = 0x4801;
+ REG_BLDCNT = 0;
+ REG_BLDY = 0;
+ LZDecompressVram(gUnusedOldCharmap_Gfx_lz, (void *)VRAM);
+ LZDecompressWram(gUnusedOldCharmap_Tilemap_lz, gSharedMem);
+ LZDecompressVram(gUnusedOldCharmap_Pal_lz, (void *)PLTT);
+ LZDecompressVram(gUnusedOldCharmap_Pal_lz, (void *)(PLTT + 0x1E0));
+ m4aSoundVSyncOn();
+ SetVBlankCallback(debug_sub_8011D40);
+ SetMainCallback2(debug_sub_8010CAC);
+ ResetTasks();
+ ResetSpriteData();
+ ScanlineEffect_Stop();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ Text_InitWindowWithTemplate(&gUnknown_Debug_03004370, &gWindowTemplate_81E6C3C);
+ gUnknown_Debug_03004360 = 0;
+ gUnknown_Debug_030043A0 = 0;
+ gUnknown_Debug_030043A4 = 0;
+ for (i = 0; i < 31; i++)
+ debug_sub_8011EA0(i);
+ for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++)
+ debug_sub_8012294();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ debug_sub_8012540();
+ debug_nullsub_3();
+ gUnknown_Debug_030043A8 = 0;
+ debug_sub_80125A0();
+ if (gUnknown_Debug_2023A76[0][0x22] == 8)
+ {
+ debug_sub_801174C();
+ }
+ else
+ {
+ for (i = 0; i < 8; i++)
+ gSharedMem[0x160B4 + i] = 0;
+ }
+}
+
+void debug_sub_8010A7C(u8 a, u8 b)
+{
+ s32 i;
+
+ for (i = 0; i < b; i++)
+ gBattleTextBuff1[i] = a;
+ gBattleTextBuff1[i] = EOS;
+}
+
+// gUnknown_Debug_2023A76_ seems like a 3D array, but this function refuses to match when I do that.
+#ifdef NONMATCHING
+void debug_sub_8010AAC(u8 a)
+{
+ switch (gBaseStats[gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][0]].genderRatio)
+ {
+ case 0:
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 2;
+ break;
+ case 0xFE:
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 3;
+ break;
+ case 0xFF:
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 4;
+ break;
+ default:
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] &= 1;
+ if (a != 0)
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] ^= 1;
+ else
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][4] = 0;
+ break;
+ }
+}
+#else
+void debug_sub_8010AAC(u8 a)
+{
+ switch (gBaseStats[gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5]].genderRatio)
+ {
+ case 0:
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 2;
+ break;
+ case 0xFE:
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 3;
+ break;
+ case 0xFF:
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 4;
+ break;
+ default:
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] &= 1;
+ if (a != 0)
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] ^= 1;
+ else
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + 4] = 0;
+ break;
+ }
+}
+#endif
+
+void debug_sub_8010B80(u8 a)
+{
+ s8 r12 = 0;
+ s8 r7 = gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0];
+
+ while (r7 >= 10)
+ {
+ r7 -= 10;
+ r12++;
+ }
+
+ if (a & 2)
+ {
+ if (a & 1)
+ r12++;
+ else
+ r12--;
+ if (r12 < 0)
+ r12 = 9;
+ if (r12 > 9)
+ r12 = 0;
+ }
+ else
+ {
+ if (a & 1)
+ r7++;
+ else
+ r7--;
+ if (r7 < 1)
+ r7 = 9;
+ if (r7 > 9)
+ r7 = 1;
+ }
+ gUnknown_Debug_2023A76_[gUnknown_Debug_03004360 ^ 1][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0]
+ = gUnknown_Debug_2023A76_[gUnknown_Debug_03004360][gUnknown_Debug_030043A4][gUnknown_Debug_030043A0]
+ = r12 * 10 + r7;
+}
+
+void debug_sub_8010CAC(void)
+{
+ s32 r5;
+
+ if (gMain.heldKeysRaw == 0x204)
+ DoSoftReset();
+ if (gMain.newKeysRaw == 4)
+ {
+ if (gUnknown_Debug_030043A4 < 6)
+ {
+ gUnknown_Debug_030043A8 = 0;
+ debug_sub_8012628();
+ SetMainCallback2(debug_sub_8011498);
+ }
+ //_546
+ if (gUnknown_Debug_030043A0 == 0 && gUnknown_Debug_030043A4 == 6)
+ {
+ gMain.savedCallback = debug_sub_80108B8;
+ CreateMon(
+ &gPlayerParty[0],
+ gUnknown_Debug_2023A76_[0][0][0],
+ gUnknown_Debug_2023A76_[0][0][1],
+ 32,
+ 0, 0, 0, 0);
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1 + r5, &gUnknown_Debug_2023B02[0][0][r5]);
+ SetMonData(&gPlayerParty[0], MON_DATA_PP1 + r5, &gBattleMoves[gUnknown_Debug_2023B02[0][0][r5]].pp);
+ }
+ switch (gUnknown_Debug_2023A76_[0][6][0])
+ {
+ case 1: //_550
+ gCB2_AfterEvolution = debug_sub_80108B8;
+ EvolutionScene(&gPlayerParty[0], gUnknown_Debug_2023A76_[0][1][0], 1, 0);
+ break;
+ case 2: //_551
+ debug_sub_8012688();
+ break;
+ }
+ }
+ //_555
+ if (gUnknown_Debug_030043A0 == 1 && gUnknown_Debug_030043A4 == 6)
+ {
+ // This is really weird
+ r5 = (gSaveBlock2.optionsBattleSceneOff | (gSaveBlock2.optionsSound << 1));
+ r5++;
+ if (r5 == 4)
+ r5 = 0;
+ gSaveBlock2.optionsBattleSceneOff = (r5 & 1);
+ gSaveBlock2.optionsSound = (r5 & 2) >> 1;
+ SetPokemonCryStereo(gSaveBlock2.optionsSound);
+ debug_nullsub_3();
+ }
+ }
+ //_559
+ if (gMain.newKeysRaw == 8)
+ debug_sub_801174C();
+ if (gMain.newKeysRaw == 0x40)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A4 != 0)
+ gUnknown_Debug_030043A4--;
+ else
+ gUnknown_Debug_030043A4 = 6;
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ debug_sub_80125A0();
+ }
+ //_562
+ if (gMain.newKeysRaw == 0x80)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A4 == 6)
+ gUnknown_Debug_030043A4 = 0;
+ else
+ gUnknown_Debug_030043A4++;
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ debug_sub_80125A0();
+ }
+ //_567
+ if (gMain.newKeysRaw == 0x20)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A0 != 0)
+ {
+ gUnknown_Debug_030043A0--;
+ }
+ else
+ {
+ if (gUnknown_Debug_03004360 != 0)
+ {
+ gUnknown_Debug_03004360 = 0;
+ gUnknown_Debug_030043A0 = 4;
+ gBattle_BG1_X = 0;
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ }
+ //_577
+ debug_sub_80125A0();
+ }
+ //_572
+ if (gMain.newKeysRaw == 0x10)
+ {
+ debug_sub_80125E4();
+ if (gUnknown_Debug_030043A0 != 4)
+ {
+ gUnknown_Debug_030043A0++;
+ }
+ else
+ {
+ if (gUnknown_Debug_03004360 == 0)
+ {
+ gUnknown_Debug_03004360 = 1;
+ gUnknown_Debug_030043A0 = 0;
+ gBattle_BG1_X = 0x100;
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ }
+ debug_sub_80125A0();
+ }
+ //_578
+ if (gMain.newAndRepeatedKeys & B_BUTTON)
+ {
+ switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5)
+ {
+ case 31:
+ debug_sub_8010818();
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 32:
+ debug_sub_80132C8(31, gUnknown_Debug_2023A76, 0xEC);
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 33:
+ debug_sub_8013294(31, gUnknown_Debug_2023A76, 0xEC);
+ break;
+ case 34:
+ if (gUnknown_Debug_2023A76_[0][6][4] != 0)
+ {
+ gUnknown_Debug_2023A76_[0][6][4]--;
+ gUnknown_Debug_2023A76_[1][6][4]--;
+ }
+ else
+ {
+ gUnknown_Debug_2023A76_[0][6][4] = 8;
+ gUnknown_Debug_2023A76_[1][6][4] = 8;
+ }
+ debug_sub_8012540();
+ break;
+ case 30:
+ debug_sub_8010B80(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
+ break;
+ default:
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]--;
+ if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
+ }
+ //_613
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ }
+ }
+ //_607
+ if (gMain.newAndRepeatedKeys & A_BUTTON)
+ {
+ switch (gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5)
+ {
+ case 31:
+ debug_sub_8010818();
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 32:
+ debug_sub_80132C8(31, gUnknown_Debug_2023A76, 0xEC);
+ debug_sub_8011E5C();
+ debug_sub_8011E74();
+ debug_sub_8012540();
+ debug_nullsub_3();
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ case 33:
+ debug_sub_8013294(31, gUnknown_Debug_2023A76, 0xEC);
+ break;
+ case 34:
+ if (gUnknown_Debug_2023A76_[0][6][4] < 8)
+ {
+ gUnknown_Debug_2023A76_[0][6][4]++;
+ gUnknown_Debug_2023A76_[1][6][4]++;
+ }
+ else
+ {
+ gUnknown_Debug_2023A76_[0][6][4] = 0;
+ gUnknown_Debug_2023A76_[1][6][4] = 0;
+ }
+ debug_sub_8012540();
+ break;
+ case 30:
+ debug_sub_8010B80(1);
+ debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
+ break;
+ default:
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5]++;
+ if (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] = gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4];
+ }
+ //_644
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ //_645
+ debug_sub_8011EA0(gUnknown_Debug_030043A0 + gUnknown_Debug_030043A4 * 5);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ break;
+ }
+ }
+ //_638
+ if (gMain.newAndRepeatedKeys & 0x200)
+ {
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ //_648
+ else
+ {
+ if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30)
+ {
+ debug_sub_8010B80(2);
+ }
+ //_652
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= 10;
+ while (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] < gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][4])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
+ }
+ }
+ //_653
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ //_658
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ //_646
+ if (gMain.newAndRepeatedKeys & 0x100)
+ {
+ if (gUnknown_Debug_030043A0 == 4 && gUnknown_Debug_030043A4 < 6)
+ {
+ debug_sub_8010AAC(1);
+ }
+ //_661
+ else
+ {
+ if (gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0 == 30)
+ {
+ debug_sub_8010B80(3);
+ }
+ //_665
+ else
+ {
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] += 10;
+ while (gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] > gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3])
+ gUnknown_Debug_2023A76[gUnknown_Debug_03004360][gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0] -= gUnknown_Debug_821F424[gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0][3];
+ }
+ }
+ //_666
+ if (gUnknown_Debug_030043A0 == 0)
+ {
+ debug_sub_8010AAC(0);
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + 4);
+ }
+ //_671
+ debug_sub_8011EA0(gUnknown_Debug_030043A4 * 5 + gUnknown_Debug_030043A0);
+ debug_sub_80123D8(gUnknown_Debug_030043A4 * 5);
+ }
+ //_659
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+__attribute__((naked))
+void debug_sub_8011498()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " ldr r2, ._687 @ gUnknown_Debug_030043A0\n"
+ " ldr r0, ._687 + 4 @ gUnknown_Debug_030043A4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r9, r0\n"
+ " ldr r4, ._687 + 8 @ gMain\n"
+ " ldrh r1, [r4, #0x28]\n"
+ " mov r0, #0x81\n"
+ " lsl r0, r0, #0x2\n"
+ " cmp r1, r0\n"
+ " bne ._674 @cond_branch\n"
+ " bl DoSoftReset\n"
+ "._674:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x4\n"
+ " bne ._675 @cond_branch\n"
+ " bl debug_sub_8012658\n"
+ " ldr r0, ._687 + 12 @ debug_sub_8010CAC\n"
+ " bl SetMainCallback2\n"
+ "._675:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x8\n"
+ " bne ._676 @cond_branch\n"
+ " bl debug_sub_801174C\n"
+ "._676:\n"
+ " ldrh r0, [r4, #0x2a]\n"
+ " cmp r0, #0x40\n"
+ " beq ._677 @cond_branch\n"
+ " cmp r0, #0x80\n"
+ " bne ._678 @cond_branch\n"
+ "._677:\n"
+ " bl debug_sub_8012658\n"
+ " ldr r0, ._687 + 16 @ gUnknown_Debug_030043A8\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x2\n"
+ " eor r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bl debug_sub_8012628\n"
+ "._678:\n"
+ " ldr r0, ._687 + 8 @ gMain\n"
+ " ldrh r0, [r0, #0x2a]\n"
+ " cmp r0, #0x20\n"
+ " beq ._679 @cond_branch\n"
+ " cmp r0, #0x10\n"
+ " bne ._680 @cond_branch\n"
+ "._679:\n"
+ " bl debug_sub_8012658\n"
+ " ldr r0, ._687 + 16 @ gUnknown_Debug_030043A8\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x1\n"
+ " eor r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bl debug_sub_8012628\n"
+ "._680:\n"
+ " ldr r0, ._687 + 8 @ gMain\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._681 @cond_branch\n"
+ " ldr r0, ._687 + 20 @ gUnknown_Debug_2023B02\n"
+ " mov r8, r0\n"
+ " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n"
+ " ldrb r4, [r6]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r5]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x4\n"
+ " add r4, r4, r1\n"
+ " add r4, r4, r8\n"
+ " ldrh r1, [r4]\n"
+ " sub r1, r1, #0x1\n"
+ " strh r1, [r4]\n"
+ " ldrb r3, [r6]\n"
+ " lsl r1, r3, #0x1\n"
+ " add r1, r1, r0\n"
+ " ldrb r2, [r5]\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " add r4, r1, r0\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " ldr r5, ._687 + 28 @ gUnknown_Debug_821F564\n"
+ " lsl r0, r3, #0x2\n"
+ " add r0, r0, r3\n"
+ " lsl r2, r0, #0x1\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r1, r0\n"
+ " bge ._682 @cond_branch\n"
+ " add r0, r5, #6\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r4]\n"
+ "._682:\n"
+ " bl debug_sub_8012294\n"
+ "._681:\n"
+ " ldr r0, ._687 + 8 @ gMain\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._683 @cond_branch\n"
+ " ldr r1, ._687 + 20 @ gUnknown_Debug_2023B02\n"
+ " mov r8, r1\n"
+ " ldr r6, ._687 + 16 @ gUnknown_Debug_030043A8\n"
+ " ldrb r4, [r6]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r5, ._687 + 24 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r5]\n"
+ " lsl r1, r2, #0x1\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x4\n"
+ " add r4, r4, r1\n"
+ " add r4, r4, r8\n"
+ " ldrh r1, [r4]\n"
+ " add r1, r1, #0x1\n"
+ " strh r1, [r4]\n"
+ " ldrb r3, [r6]\n"
+ " lsl r1, r3, #0x1\n"
+ " add r1, r1, r0\n"
+ " ldrb r2, [r5]\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " add r4, r1, r0\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " ldr r5, ._687 + 28 @ gUnknown_Debug_821F564\n"
+ " lsl r0, r3, #0x2\n"
+ " add r0, r0, r3\n"
+ " lsl r2, r0, #0x1\n"
+ " add r0, r5, #6\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r1, r0\n"
+ " ble ._684 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r4]\n"
+ "._684:\n"
+ " bl debug_sub_8012294\n"
+ "._683:\n"
+ " ldr r0, ._687 + 8 @ gMain\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._685 @cond_branch\n"
+ " ldr r6, ._687 + 20 @ gUnknown_Debug_2023B02\n"
+ " ldr r5, ._687 + 16 @ gUnknown_Debug_030043A8\n"
+ " ldrb r4, [r5]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._687 + 24 @ gUnknown_Debug_03004360\n"
+ " ldrb r1, [r2]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r6\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0xa\n"
+ " strh r0, [r4]\n"
+ " mov sl, r5\n"
+ " mov r8, r6\n"
+ " add r7, r2, #0\n"
+ " ldr r6, ._687 + 28 @ gUnknown_Debug_821F564\n"
+ " b ._686\n"
+ "._688:\n"
+ " .align 2, 0\n"
+ "._687:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gMain\n"
+ " .word debug_sub_8010CAC+1\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_Debug_2023B02\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_821F564\n"
+ "._689:\n"
+ " add r0, r6, #6\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " ldrh r1, [r4]\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ "._686:\n"
+ " mov r0, sl\n"
+ " ldrb r5, [r0]\n"
+ " lsl r4, r5, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r8\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r2, r0, #0x1\n"
+ " add r0, r6, #0\n"
+ " add r0, r0, #0x8\n"
+ " add r0, r2, r0\n"
+ " ldrh r0, [r0]\n"
+ " cmp r1, r0\n"
+ " blt ._689 @cond_branch\n"
+ " bl debug_sub_8012294\n"
+ "._685:\n"
+ " ldr r0, ._692 @ gMain\n"
+ " ldrh r1, [r0, #0x30]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._690 @cond_branch\n"
+ " ldr r6, ._692 + 4 @ gUnknown_Debug_2023B02\n"
+ " ldr r5, ._692 + 8 @ gUnknown_Debug_030043A8\n"
+ " ldrb r4, [r5]\n"
+ " lsl r4, r4, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._692 + 12 @ gUnknown_Debug_03004360\n"
+ " ldrb r1, [r2]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r6\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0xa\n"
+ " strh r0, [r4]\n"
+ " mov sl, r5\n"
+ " mov r8, r6\n"
+ " add r7, r2, #0\n"
+ " ldr r6, ._692 + 16 @ gUnknown_Debug_821F564\n"
+ " b ._691\n"
+ "._693:\n"
+ " .align 2, 0\n"
+ "._692:\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_2023B02\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_821F564\n"
+ "._694:\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, r1\n"
+ " strh r0, [r4]\n"
+ "._691:\n"
+ " mov r1, sl\n"
+ " ldrb r5, [r1]\n"
+ " lsl r4, r5, #0x1\n"
+ " mov r0, r9\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x15\n"
+ " add r4, r4, r0\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, r8\n"
+ " mov r0, #0x0\n"
+ " ldsh r2, [r4, r0]\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r6, #6\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r0]\n"
+ " cmp r2, r1\n"
+ " bgt ._694 @cond_branch\n"
+ " bl debug_sub_8012294\n"
+ "._690:\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_801174C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xffffffe8\n"
+ " mov r0, #0x0\n"
+ " mov r9, r0\n"
+ " ldr r1, ._704 @ gUnknown_020297ED\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl Random\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " mov r0, #0x3\n"
+ " and r4, r4, r0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r6, r4, #0x18\n"
+ " ldr r5, ._704 + 4 @ gSaveBlock2\n"
+ " lsl r1, r6, #0x1\n"
+ " add r1, r1, r6\n"
+ " lsl r1, r1, #0x1\n"
+ " ldr r0, ._704 + 8 @ str_821F631\n"
+ " add r1, r1, r0\n"
+ " add r0, r5, #0\n"
+ " bl StringCopy\n"
+ " lsr r4, r4, #0x19\n"
+ " strb r4, [r5, #0x8]\n"
+ " bl ZeroPlayerPartyMons\n"
+ " bl ZeroEnemyPartyMons\n"
+ " ldr r0, ._704 + 12 @ gUnknown_Debug_2023A76\n"
+ " mov r1, #0x3c\n"
+ " ldsh r7, [r0, r1]\n"
+ " mov r2, r9\n"
+ " str r2, [sp, #0xc]\n"
+ " cmp r7, #0x9\n"
+ " ble ._695 @cond_branch\n"
+ " mov r0, #0x0\n"
+ "._696:\n"
+ " sub r7, r7, #0xa\n"
+ " add r0, r0, #0x1\n"
+ " cmp r7, #0x9\n"
+ " bgt ._696 @cond_branch\n"
+ " str r0, [sp, #0xc]\n"
+ "._695:\n"
+ " ldr r2, ._704 + 16 @ gBattleTypeFlags\n"
+ " ldr r1, ._704 + 20 @ gUnknown_Debug_821F598\n"
+ " sub r0, r7, #1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrh r3, [r0]\n"
+ " strh r3, [r2]\n"
+ " ldr r1, ._704 + 24 @ gUnknown_02023A14_50\n"
+ " mov r0, #0x8\n"
+ " strb r0, [r1]\n"
+ " ldr r1, ._704 + 28 @ gBattleTerrain\n"
+ " add r0, sp, #0xc\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._697 @cond_branch\n"
+ " bl EnterSafariMode\n"
+ "._697:\n"
+ " ldr r5, ._704 + 12 @ gUnknown_Debug_2023A76\n"
+ " ldrh r0, [r5, #0x3c]\n"
+ " sub r0, r0, #0x2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0x2\n"
+ " bhi ._698 @cond_branch\n"
+ " ldr r4, ._704 + 32 @ gTrainerBattleOpponent\n"
+ " bl Random\n"
+ " mov r1, #0x7\n"
+ " and r1, r1, r0\n"
+ " add r1, r1, #0x1\n"
+ " strh r1, [r4]\n"
+ "._698:\n"
+ " ldr r1, ._704 + 36 @ gPlayerPartyCount\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " mov r7, #0x0\n"
+ "._745:\n"
+ " lsl r0, r7, #0x1\n"
+ " ldr r3, ._704 + 12 @ gUnknown_Debug_2023A76\n"
+ " add r1, r0, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r1, r2]\n"
+ " add r2, r3, #0\n"
+ " mov r8, r0\n"
+ " add r3, r7, #5\n"
+ " mov sl, r3\n"
+ " cmp r1, #0\n"
+ " beq ._699 @cond_branch\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r2, #0\n"
+ " add r0, r0, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " cmp r0, #0x1\n"
+ " beq ._707 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._701 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._706 @cond_branch\n"
+ " b ._708\n"
+ "._705:\n"
+ " .align 2, 0\n"
+ "._704:\n"
+ " .word gUnknown_020297ED\n"
+ " .word gSaveBlock2\n"
+ " .word str_821F631\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gBattleTypeFlags\n"
+ " .word gUnknown_Debug_821F598\n"
+ " .word gUnknown_02023A14_50\n"
+ " .word gBattleTerrain\n"
+ " .word gTrainerBattleOpponent\n"
+ " .word gPlayerPartyCount\n"
+ "._701:\n"
+ " cmp r0, #0x2\n"
+ " beq ._706 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._707 @cond_branch\n"
+ " b ._708\n"
+ "._706:\n"
+ " mov r6, #0x0\n"
+ " b ._710\n"
+ "._707:\n"
+ " mov r6, #0xfe\n"
+ " b ._710\n"
+ "._708:\n"
+ " mov r6, #0xff\n"
+ "._710:\n"
+ " mov r1, r8\n"
+ " add r0, r1, r2\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " add r1, r7, #5\n"
+ " mov sl, r1\n"
+ " cmp r0, #0xc9\n"
+ " bne ._712 @cond_branch\n"
+ " cmp r1, #0x1d\n"
+ " bgt ._712 @cond_branch\n"
+ " add r0, r7, #7\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r2\n"
+ " ldrb r0, [r0]\n"
+ " mov r9, r0\n"
+ " b ._713\n"
+ "._712:\n"
+ " mov r2, #0x0\n"
+ " mov r9, r2\n"
+ "._713:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r3, #0x64\n"
+ " mul r0, r0, r3\n"
+ " ldr r1, ._719 @ gEnemyParty\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._719 + 4 @ gUnknown_Debug_2023A76\n"
+ " add r1, r1, r8\n"
+ " ldrh r1, [r1]\n"
+ " add r2, r7, #1\n"
+ " lsl r2, r2, #0x1\n"
+ " ldr r3, ._719 + 4 @ gUnknown_Debug_2023A76\n"
+ " add r2, r2, r3\n"
+ " ldrb r2, [r2]\n"
+ " str r6, [sp]\n"
+ " mov r3, #0x0\n"
+ " str r3, [sp, #0x4]\n"
+ " mov r3, r9\n"
+ " str r3, [sp, #0x8]\n"
+ " mov r3, #0x0\n"
+ " bl CreateMonWithGenderNatureLetter\n"
+ "._699:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r2, #0x64\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._719 @ gEnemyParty\n"
+ " add r5, r1, r0\n"
+ " ldr r4, ._719 + 8 @ gUnknown_Debug_2023A7A\n"
+ " mov r3, r8\n"
+ " add r6, r3, r4\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xc\n"
+ " add r2, r6, #0\n"
+ " bl SetMonData\n"
+ " sub r4, r4, #0x4\n"
+ " add r1, r7, #2\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r4\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " str r1, [sp, #0x10]\n"
+ " cmp r0, #0xb\n"
+ " bhi ._714 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x26\n"
+ " add r2, r6, #0\n"
+ " bl SetMonData\n"
+ "._714:\n"
+ " add r1, r7, #3\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r4\n"
+ " mov r3, #0x0\n"
+ " ldsh r2, [r0, r3]\n"
+ " str r1, [sp, #0x14]\n"
+ " cmp r2, #0\n"
+ " beq ._716 @cond_branch\n"
+ " cmp r2, #0x3\n"
+ " beq ._716 @cond_branch\n"
+ " cmp r2, #0x2\n"
+ " bgt ._717 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " sub r0, r0, #0x1\n"
+ " b ._718\n"
+ "._720:\n"
+ " .align 2, 0\n"
+ "._719:\n"
+ " .word gEnemyParty\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gUnknown_Debug_2023A7A\n"
+ "._717:\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r0, r2]\n"
+ " sub r0, r0, #0x4\n"
+ "._718:\n"
+ " str r0, [sp, #0xc]\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r3, #0x64\n"
+ " mul r0, r0, r3\n"
+ " ldr r1, ._726 @ gEnemyParty\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2e\n"
+ " add r2, sp, #0xc\n"
+ " bl SetMonData\n"
+ "._716:\n"
+ " ldr r1, ._726 + 4 @ gUnknown_Debug_2023A76\n"
+ " add r1, r1, #0x46\n"
+ " mov r2, r8\n"
+ " add r0, r2, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " ldr r2, ._726 + 4 @ gUnknown_Debug_2023A76\n"
+ " cmp r0, #0\n"
+ " beq ._721 @cond_branch\n"
+ " add r0, r7, #4\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._729 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._723 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._728 @cond_branch\n"
+ " b ._730\n"
+ "._727:\n"
+ " .align 2, 0\n"
+ "._726:\n"
+ " .word gEnemyParty\n"
+ " .word gUnknown_Debug_2023A76\n"
+ "._723:\n"
+ " cmp r0, #0x2\n"
+ " beq ._728 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._729 @cond_branch\n"
+ " b ._730\n"
+ "._728:\n"
+ " mov r6, #0x0\n"
+ " b ._732\n"
+ "._729:\n"
+ " mov r6, #0xfe\n"
+ " b ._732\n"
+ "._730:\n"
+ " mov r6, #0xff\n"
+ "._732:\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0x46\n"
+ " mov r2, r8\n"
+ " add r0, r2, r1\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r0, r3]\n"
+ " cmp r0, #0xc9\n"
+ " bne ._734 @cond_branch\n"
+ " mov r0, sl\n"
+ " cmp r0, #0x1d\n"
+ " bgt ._734 @cond_branch\n"
+ " add r0, r7, #7\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " mov r9, r0\n"
+ " b ._735\n"
+ "._734:\n"
+ " mov r1, #0x0\n"
+ " mov r9, r1\n"
+ "._735:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r2, #0x64\n"
+ " mul r0, r0, r2\n"
+ " ldr r1, ._741 @ gPlayerParty\n"
+ " add r0, r0, r1\n"
+ " ldr r1, ._741 + 4 @ gUnknown_Debug_2023ABC\n"
+ " add r1, r1, r8\n"
+ " ldrh r1, [r1]\n"
+ " add r2, r7, #1\n"
+ " lsl r2, r2, #0x1\n"
+ " ldr r3, ._741 + 4 @ gUnknown_Debug_2023ABC\n"
+ " add r2, r2, r3\n"
+ " ldrb r2, [r2]\n"
+ " str r6, [sp]\n"
+ " mov r3, #0x0\n"
+ " str r3, [sp, #0x4]\n"
+ " mov r3, r9\n"
+ " str r3, [sp, #0x8]\n"
+ " mov r3, #0x0\n"
+ " bl CreateMonWithGenderNatureLetter\n"
+ " ldr r1, ._741 + 8 @ gPlayerPartyCount\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._721:\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r2, #0x64\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._741 @ gPlayerParty\n"
+ " add r4, r1, r0\n"
+ " ldr r0, ._741 + 12 @ gUnknown_Debug_2023AC0\n"
+ " mov r3, r8\n"
+ " add r5, r3, r0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xc\n"
+ " add r2, r5, #0\n"
+ " bl SetMonData\n"
+ " ldr r1, [sp, #0x10]\n"
+ " lsl r0, r1, #0x1\n"
+ " ldr r2, ._741 + 16 @ gUnknown_Debug_2023A76\n"
+ " add r0, r0, r2\n"
+ " ldrh r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi ._736 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x26\n"
+ " add r2, r5, #0\n"
+ " bl SetMonData\n"
+ "._736:\n"
+ " ldr r3, [sp, #0x14]\n"
+ " lsl r0, r3, #0x1\n"
+ " ldr r1, ._741 + 4 @ gUnknown_Debug_2023ABC\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " cmp r1, #0\n"
+ " beq ._738 @cond_branch\n"
+ " cmp r1, #0x3\n"
+ " beq ._738 @cond_branch\n"
+ " cmp r1, #0x2\n"
+ " bgt ._739 @cond_branch\n"
+ " add r0, r1, #0\n"
+ " sub r0, r0, #0x1\n"
+ " b ._740\n"
+ "._742:\n"
+ " .align 2, 0\n"
+ "._741:\n"
+ " .word gPlayerParty\n"
+ " .word gUnknown_Debug_2023ABC\n"
+ " .word gPlayerPartyCount\n"
+ " .word gUnknown_Debug_2023AC0\n"
+ " .word gUnknown_Debug_2023A76\n"
+ "._739:\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " sub r0, r0, #0x4\n"
+ "._740:\n"
+ " str r0, [sp, #0xc]\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r2, #0x64\n"
+ " mul r0, r0, r2\n"
+ " ldr r1, ._750 @ gPlayerParty\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2e\n"
+ " add r2, sp, #0xc\n"
+ " bl SetMonData\n"
+ "._738:\n"
+ " ldr r3, [sp, #0x14]\n"
+ " lsl r0, r3, #0x1\n"
+ " ldr r1, ._750 + 4 @ gUnknown_Debug_2023ABC\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r0, r2]\n"
+ " cmp r0, #0x2\n"
+ " ble ._743 @cond_branch\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x5\n"
+ " bl __divsi3\n"
+ " mov r3, #0x64\n"
+ " mul r0, r0, r3\n"
+ " ldr r1, ._750 @ gPlayerParty\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x7\n"
+ " ldr r2, ._750 + 8 @ Str_821F649\n"
+ " bl SetMonData\n"
+ " ldr r2, ._750 + 12 @ gUnknown_02023A14_50\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x40\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ "._743:\n"
+ " mov r7, sl\n"
+ " cmp r7, #0x1d\n"
+ " bgt ._744 @cond_branch\n"
+ " b ._745\n"
+ "._744:\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp, #0xc]\n"
+ " mov r0, #0x64\n"
+ " mov r8, r0\n"
+ " ldr r1, ._750 + 16 @ gUnknown_Debug_2023B02\n"
+ " mov r9, r1\n"
+ " ldr r2, ._750 @ gPlayerParty\n"
+ " mov sl, r2\n"
+ "._747:\n"
+ " mov r7, #0x0\n"
+ "._746:\n"
+ " ldr r2, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r2\n"
+ " ldr r3, ._750 + 20 @ gEnemyParty\n"
+ " add r0, r0, r3\n"
+ " add r5, r7, #0\n"
+ " add r5, r5, #0xd\n"
+ " lsl r2, r2, #0x3\n"
+ " lsl r4, r7, #0x1\n"
+ " mov r3, r9\n"
+ " add r1, r4, r3\n"
+ " add r2, r2, r1\n"
+ " add r1, r5, #0\n"
+ " bl SetMonData\n"
+ " ldr r1, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r1\n"
+ " ldr r2, ._750 + 20 @ gEnemyParty\n"
+ " add r0, r0, r2\n"
+ " add r6, r7, #0\n"
+ " add r6, r6, #0x11\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r4, r1\n"
+ " add r1, r1, r9\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r1, r3]\n"
+ " lsl r2, r1, #0x1\n"
+ " add r2, r2, r1\n"
+ " lsl r2, r2, #0x2\n"
+ " ldr r1, ._750 + 24 @ gBattleMoves\n"
+ " add r2, r2, r1\n"
+ " add r1, r6, #0\n"
+ " bl SetMonData\n"
+ " ldr r2, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r2\n"
+ " add r0, r0, sl\n"
+ " lsl r2, r2, #0x3\n"
+ " ldr r3, ._750 + 28 @ gUnknown_Debug_2023B32\n"
+ " add r1, r4, r3\n"
+ " add r2, r2, r1\n"
+ " add r1, r5, #0\n"
+ " bl SetMonData\n"
+ " ldr r1, [sp, #0xc]\n"
+ " mov r0, r8\n"
+ " mul r0, r0, r1\n"
+ " add r0, r0, sl\n"
+ " lsl r1, r1, #0x3\n"
+ " add r4, r4, r1\n"
+ " ldr r1, ._750 + 28 @ gUnknown_Debug_2023B32\n"
+ " add r4, r4, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r4, r2]\n"
+ " lsl r2, r1, #0x1\n"
+ " add r2, r2, r1\n"
+ " lsl r2, r2, #0x2\n"
+ " ldr r3, ._750 + 24 @ gBattleMoves\n"
+ " add r2, r2, r3\n"
+ " add r1, r6, #0\n"
+ " bl SetMonData\n"
+ " add r7, r7, #0x1\n"
+ " cmp r7, #0x3\n"
+ " ble ._746 @cond_branch\n"
+ " ldr r0, [sp, #0xc]\n"
+ " add r0, r0, #0x1\n"
+ " str r0, [sp, #0xc]\n"
+ " cmp r0, #0x5\n"
+ " ble ._747 @cond_branch\n"
+ " ldr r3, ._750 + 32 @ gUnknown_Debug_2023A76\n"
+ " add r4, r3, #0\n"
+ " add r4, r4, #0x44\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " cmp r0, #0x8\n"
+ " bne ._748 @cond_branch\n"
+ " ldr r0, ._750 + 12 @ gUnknown_02023A14_50\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x80\n"
+ " b ._753\n"
+ "._751:\n"
+ " .align 2, 0\n"
+ "._750:\n"
+ " .word gPlayerParty\n"
+ " .word gUnknown_Debug_2023ABC\n"
+ " .word Str_821F649\n"
+ " .word gUnknown_02023A14_50\n"
+ " .word gUnknown_Debug_2023B02\n"
+ " .word gEnemyParty\n"
+ " .word gBattleMoves+0x4\n"
+ " .word gUnknown_Debug_2023B32\n"
+ " .word gUnknown_Debug_2023A76\n"
+ "._748:\n"
+ " cmp r0, #0x7\n"
+ " bne ._752 @cond_branch\n"
+ " ldr r0, ._754 @ gUnknown_02023A14_50\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x20\n"
+ " b ._753\n"
+ "._755:\n"
+ " .align 2, 0\n"
+ "._754:\n"
+ " .word gUnknown_02023A14_50\n"
+ "._752:\n"
+ " cmp r0, #0x6\n"
+ " bne ._756 @cond_branch\n"
+ " ldr r2, ._759 @ gUnknown_02023A14_50\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x10\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " ldrh r1, [r3, #0x4]\n"
+ " mov r2, #0x4\n"
+ " ldsh r0, [r3, r2]\n"
+ " cmp r0, #0x5\n"
+ " ble ._757 @cond_branch\n"
+ " ldr r0, ._759 + 4 @ gSharedMem\n"
+ " sub r1, r1, #0x2\n"
+ " ldr r3, ._759 + 8 @ 0x160a3\n"
+ " add r0, r0, r3\n"
+ " b ._761\n"
+ "._760:\n"
+ " .align 2, 0\n"
+ "._759:\n"
+ " .word gUnknown_02023A14_50\n"
+ " .word gSharedMem\n"
+ " .word 0x160a3\n"
+ "._757:\n"
+ " ldr r0, ._762 @ gSharedMem\n"
+ " ldr r2, ._762 + 4 @ 0x160a3\n"
+ " add r0, r0, r2\n"
+ " b ._761\n"
+ "._763:\n"
+ " .align 2, 0\n"
+ "._762:\n"
+ " .word gSharedMem\n"
+ " .word 0x160a3\n"
+ "._756:\n"
+ " cmp r0, #0x5\n"
+ " bne ._764 @cond_branch\n"
+ " ldr r0, ._766 @ gUnknown_02023A14_50\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x21\n"
+ "._753:\n"
+ " orr r1, r1, r2\n"
+ "._761:\n"
+ " strb r1, [r0]\n"
+ " bl sub_80408BC\n"
+ " b ._770\n"
+ "._767:\n"
+ " .align 2, 0\n"
+ "._766:\n"
+ " .word gUnknown_02023A14_50\n"
+ "._764:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._768 @cond_branch\n"
+ " bl sub_80408BC\n"
+ "._768:\n"
+ " ldrh r3, [r4]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._769 @cond_branch\n"
+ " ldr r0, ._772 @ gUnknown_02023A14_50\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x4\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ "._769:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._770 @cond_branch\n"
+ " ldr r0, ._772 @ gUnknown_02023A14_50\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x6\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ "._770:\n"
+ " ldr r0, ._772 + 4 @ gMain\n"
+ " ldr r1, ._772 + 8 @ debug_sub_80108B8\n"
+ " str r1, [r0, #0x8]\n"
+ " ldr r0, ._772 + 12 @ unref_sub_800D684\n"
+ " bl SetMainCallback2\n"
+ " bl ClearBag\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x3\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x5\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x6\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x7\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x8\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x9\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0xa\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0xb\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0xc\n"
+ " mov r1, #0xa\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x13\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x14\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x19\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x22\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x23\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x25\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x49\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4a\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4b\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4c\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4d\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x4e\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " mov r0, #0x50\n"
+ " mov r1, #0x63\n"
+ " bl AddBagItem\n"
+ " ldr r4, ._772 + 16 @ gUnknown_Debug_821F5AC\n"
+ " mov r7, #0xe\n"
+ "._771:\n"
+ " add r0, r4, #0\n"
+ " bl sub_810CA34\n"
+ " add r4, r4, #0x8\n"
+ " sub r7, r7, #0x1\n"
+ " cmp r7, #0\n"
+ " bge ._771 @cond_branch\n"
+ " add sp, sp, #0x18\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._773:\n"
+ " .align 2, 0\n"
+ "._772:\n"
+ " .word gUnknown_02023A14_50\n"
+ " .word gMain\n"
+ " .word debug_sub_80108B8+1\n"
+ " .word unref_sub_800D684+1\n"
+ " .word gUnknown_Debug_821F5AC\n"
+ "\n"
+ );
+}
+
+void debug_sub_8011D40(void)
+{
+ DmaCopy16(3, gSharedMem, (void *)(VRAM + 0x4000), 0x1000);
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
+ REG_BG1HOFS = gBattle_BG1_X;
+ REG_BG1VOFS = gBattle_BG1_Y;
+ REG_BG2HOFS = gBattle_BG2_X;
+ REG_BG2VOFS = gBattle_BG2_Y;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+}
+
+void debug_nullsub_45()
+{
+}
+
+void debug_sub_8011DD4(void)
+{
+ REG_BG0CNT = 0x9803;
+
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
+
+ REG_BG1HOFS = gBattle_BG1_X;
+ REG_BG1VOFS = gBattle_BG1_Y;
+
+ REG_BG2HOFS = gBattle_BG2_X;
+ REG_BG2VOFS = gBattle_BG2_Y;
+
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
+
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+void debug_sub_8011E5C(void)
+{
+ s32 i;
+
+ for (i = 0; i < 31; i++)
+ debug_sub_8011EA0(i);
+}
+
+extern u8 gUnknown_Debug_030043A8;
+
+void debug_sub_8011E74(void)
+{
+ u8 r5 = gUnknown_Debug_030043A8;
+
+ for (gUnknown_Debug_030043A8 = 0; gUnknown_Debug_030043A8 < 4; gUnknown_Debug_030043A8++)
+ debug_sub_8012294();
+
+ gUnknown_Debug_030043A8 = r5;
+}
+
+__attribute__((naked))
+void debug_sub_8011EA0(u8 a)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffff4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x22\n"
+ " bls ._782 @cond_branch\n"
+ " b ._815\n"
+ "._782:\n"
+ " lsl r0, r7, #0x2\n"
+ " ldr r1, ._785 @ \n"
+ " add r1, r0, r1\n"
+ " ldr r1, [r1]\n"
+ " str r0, [sp, #0x8]\n"
+ " mov pc, r1\n"
+ "._786:\n"
+ " .align 2, 0\n"
+ "._785:\n"
+ " .word ._784\n"
+ "._784:\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._812\n"
+ " .word ._817\n"
+ " .word ._814\n"
+ " .word ._815\n"
+ " .word ._816\n"
+ " .word ._817\n"
+ " .word ._848\n"
+ " .word ._848\n"
+ " .word ._848\n"
+ " .word ._848\n"
+ "._812:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x14\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r6, ._823 @ gBattleTextBuff1\n"
+ " ldr r2, ._823 + 4 @ gUnknown_Debug_821F424\n"
+ " ldr r0, [sp, #0x8]\n"
+ " add r1, r0, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r2\n"
+ " ldrh r0, [r0]\n"
+ " str r0, [sp, #0x4]\n"
+ " add r0, r2, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r0, [r0]\n"
+ " mov r8, r0\n"
+ " add r2, r2, #0x4\n"
+ " add r1, r1, r2\n"
+ " ldrb r1, [r1]\n"
+ " mov r9, r1\n"
+ " str r1, [sp]\n"
+ " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
+ " add r1, r6, #0\n"
+ " ldr r2, [sp, #0x4]\n"
+ " mov r3, r8\n"
+ " bl Text_InitWindow\n"
+ " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
+ " bl Text_PrintWindow8002F44\n"
+ " ldr r1, ._823 + 12 @ gUnknown_Debug_2023A76\n"
+ " mov sl, r1\n"
+ " lsl r4, r7, #0x1\n"
+ " ldr r5, ._823 + 16 @ gUnknown_Debug_03004360\n"
+ " ldrb r0, [r5]\n"
+ " mov r7, #0x46\n"
+ " mul r0, r0, r7\n"
+ " add r0, r4, r0\n"
+ " add r0, r0, sl\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r2, #0xd3\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r3, [r5]\n"
+ " lsl r3, r3, #0x5\n"
+ " add r3, r3, #0x19\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
+ " add r1, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
+ " bl Text_PrintWindow8002F44\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r6]\n"
+ " ldrb r0, [r5]\n"
+ " mul r0, r0, r7\n"
+ " add r4, r4, r0\n"
+ " add r4, r4, sl\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " mov r0, #0xb\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._823 + 20 @ gSpeciesNames\n"
+ " add r1, r1, r0\n"
+ " add r0, r6, #0\n"
+ " bl StringAppend\n"
+ " mov r1, r9\n"
+ " str r1, [sp]\n"
+ " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
+ " add r1, r6, #0\n"
+ " ldr r2, [sp, #0x4]\n"
+ " mov r3, r8\n"
+ " bl Text_InitWindow\n"
+ " ldr r0, ._823 + 8 @ gUnknown_Debug_03004370\n"
+ " bl Text_PrintWindow8002F44\n"
+ " b ._848\n"
+ "._824:\n"
+ " .align 2, 0\n"
+ "._823:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_821F424\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gSpeciesNames\n"
+ "._817:\n"
+ " ldr r6, ._826 @ gBattleTextBuff1\n"
+ " ldr r3, ._826 + 4 @ gUnknown_Debug_2023A76\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r0, ._826 + 8 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r0]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r1, r2]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " b ._825\n"
+ "._827:\n"
+ " .align 2, 0\n"
+ "._826:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gUnknown_Debug_03004360\n"
+ "._814:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x18\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r6, ._830 @ gUnknown_Debug_03004370\n"
+ " ldr r1, ._830 + 4 @ gBattleTextBuff1\n"
+ " mov sl, r1\n"
+ " ldr r4, ._830 + 8 @ gUnknown_Debug_821F424\n"
+ " ldr r2, [sp, #0x8]\n"
+ " add r1, r2, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " mov r1, sl\n"
+ " bl Text_InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " lsl r4, r7, #0x1\n"
+ " ldr r5, ._830 + 12 @ gUnknown_Debug_03004360\n"
+ " ldrb r0, [r5]\n"
+ " mov r1, #0x46\n"
+ " mul r0, r0, r1\n"
+ " add r0, r4, r0\n"
+ " ldr r2, ._830 + 16 @ gUnknown_Debug_2023A76\n"
+ " add r0, r0, r2\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " mov r0, sl\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r2, #0xd3\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r3, [r5]\n"
+ " lsl r3, r3, #0x5\n"
+ " add r3, r3, #0x19\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " mov r1, sl\n"
+ " bl Text_InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " mov r0, #0xff\n"
+ " mov r1, sl\n"
+ " strb r0, [r1]\n"
+ " ldrb r0, [r5]\n"
+ " mov r2, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r4, r4, r0\n"
+ " ldr r0, ._830 + 16 @ gUnknown_Debug_2023A76\n"
+ " add r4, r4, r0\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._828 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " bl ItemId_GetItem\n"
+ " add r1, r0, #0\n"
+ " mov r0, sl\n"
+ " bl StringAppend\n"
+ " b ._829\n"
+ "._831:\n"
+ " .align 2, 0\n"
+ "._830:\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_821F424\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_2023A76\n"
+ "._828:\n"
+ " ldr r1, ._833 @ Str_821F624\n"
+ " mov r0, sl\n"
+ " bl StringAppend\n"
+ "._829:\n"
+ " ldr r6, ._833 + 4 @ gUnknown_Debug_03004370\n"
+ " ldr r1, ._833 + 8 @ gBattleTextBuff1\n"
+ " ldr r5, ._833 + 12 @ gUnknown_Debug_821F424\n"
+ " ldr r2, [sp, #0x8]\n"
+ " add r4, r2, r7\n"
+ " lsl r4, r4, #0x1\n"
+ " add r0, r4, r5\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r5, #2\n"
+ " add r0, r4, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r5, r5, #0x4\n"
+ " add r4, r4, r5\n"
+ " ldrb r0, [r4]\n"
+ " str r0, [sp]\n"
+ " add r0, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r6, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " b ._848\n"
+ "._834:\n"
+ " .align 2, 0\n"
+ "._833:\n"
+ " .word Str_821F624\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_821F424\n"
+ "._816:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x4\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r5, ._839 @ gUnknown_Debug_03004370\n"
+ " ldr r6, ._839 + 4 @ gBattleTextBuff1\n"
+ " ldr r4, ._839 + 8 @ gUnknown_Debug_821F424\n"
+ " ldr r0, [sp, #0x8]\n"
+ " add r1, r0, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " mov r4, #0x0\n"
+ " ldr r3, ._839 + 12 @ gUnknown_Debug_2023A76\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r0, ._839 + 16 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r0]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r1, r2]\n"
+ " cmp r0, #0x1\n"
+ " beq ._835 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._836 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._837 @cond_branch\n"
+ " b ._843\n"
+ "._840:\n"
+ " .align 2, 0\n"
+ "._839:\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_821F424\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gUnknown_Debug_03004360\n"
+ "._836:\n"
+ " cmp r0, #0x2\n"
+ " beq ._841 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._842 @cond_branch\n"
+ " b ._843\n"
+ "._837:\n"
+ " mov r0, #0xb5\n"
+ " b ._844\n"
+ "._835:\n"
+ " mov r0, #0xb6\n"
+ "._844:\n"
+ " strb r0, [r6]\n"
+ " mov r4, #0x1\n"
+ " b ._847\n"
+ "._841:\n"
+ " mov r0, #0xb5\n"
+ " b ._846\n"
+ "._842:\n"
+ " mov r0, #0xb6\n"
+ "._846:\n"
+ " strb r0, [r6]\n"
+ " strb r0, [r6, #0x1]\n"
+ " mov r4, #0x2\n"
+ " b ._847\n"
+ "._843:\n"
+ " ldr r2, ._849 @ gBattleTextBuff1\n"
+ " add r1, r4, r2\n"
+ " mov r0, #0xac\n"
+ " strb r0, [r1]\n"
+ " add r4, r4, #0x1\n"
+ " add r6, r2, #0\n"
+ "._847:\n"
+ " add r1, r4, r6\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r1]\n"
+ "._825:\n"
+ " ldr r5, ._849 + 4 @ gUnknown_Debug_03004370\n"
+ " ldr r4, ._849 + 8 @ gUnknown_Debug_821F424\n"
+ " ldr r0, [sp, #0x8]\n"
+ " add r1, r0, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " b ._848\n"
+ "._850:\n"
+ " .align 2, 0\n"
+ "._849:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_Debug_821F424\n"
+ "._815:\n"
+ " ldr r6, ._851 @ gBattleTextBuff1\n"
+ " ldr r3, ._851 + 4 @ gUnknown_Debug_2023A76\n"
+ " lsl r1, r7, #0x1\n"
+ " ldr r0, ._851 + 8 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r0]\n"
+ " mov r0, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r1, r1, r0\n"
+ " add r1, r1, r3\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r1, r2]\n"
+ " add r0, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r5, ._851 + 12 @ gUnknown_Debug_03004370\n"
+ " ldr r4, ._851 + 16 @ gUnknown_Debug_821F424\n"
+ " lsl r1, r7, #0x2\n"
+ " add r1, r1, r7\n"
+ " lsl r1, r1, #0x1\n"
+ " add r0, r1, r4\n"
+ " ldrh r2, [r0]\n"
+ " add r0, r4, #2\n"
+ " add r0, r1, r0\n"
+ " ldrb r3, [r0]\n"
+ " add r4, r4, #0x4\n"
+ " add r1, r1, r4\n"
+ " ldrb r0, [r1]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ "._848:\n"
+ " add sp, sp, #0xc\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._852:\n"
+ " .align 2, 0\n"
+ "._851:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_Debug_821F424\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012294()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r2, ._854 @ gUnknown_Debug_030043A0\n"
+ " ldr r0, ._854 + 4 @ gUnknown_Debug_030043A4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x1d\n"
+ " bhi ._853 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x18\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r0, ._854 + 8 @ gUnknown_Debug_03004370\n"
+ " mov sl, r0\n"
+ " ldr r1, ._854 + 12 @ gBattleTextBuff1\n"
+ " mov r9, r1\n"
+ " ldr r2, ._854 + 16 @ gUnknown_Debug_821F564\n"
+ " mov r8, r2\n"
+ " ldr r7, ._854 + 20 @ gUnknown_Debug_030043A8\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r1, r0, r2\n"
+ " ldrh r2, [r1]\n"
+ " ldr r3, ._854 + 24 @ gUnknown_Debug_821F566\n"
+ " add r1, r0, r3\n"
+ " ldrb r3, [r1]\n"
+ " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r9\n"
+ " bl Text_InitWindow\n"
+ " mov r0, sl\n"
+ " bl Text_PrintWindow8002F44\n"
+ " ldrb r4, [r7]\n"
+ " lsl r4, r4, #0x1\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x5\n"
+ " bl __udivsi3\n"
+ " add r5, r0, #0\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x15\n"
+ " add r4, r4, r5\n"
+ " ldr r6, ._854 + 32 @ gUnknown_Debug_03004360\n"
+ " ldrb r1, [r6]\n"
+ " lsl r0, r1, #0x1\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x4\n"
+ " add r4, r4, r0\n"
+ " ldr r2, ._854 + 36 @ gUnknown_Debug_2023B02\n"
+ " add r4, r4, r2\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r4, r3]\n"
+ " mov r0, r9\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r2, #0xd3\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrb r3, [r6]\n"
+ " lsl r3, r3, #0x5\n"
+ " add r3, r3, #0x19\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r9\n"
+ " bl Text_InitWindow\n"
+ " mov r0, sl\n"
+ " bl Text_PrintWindow8002F44\n"
+ " mov r0, #0xff\n"
+ " mov r1, r9\n"
+ " strb r0, [r1]\n"
+ " ldrb r1, [r7]\n"
+ " lsl r1, r1, #0x1\n"
+ " add r1, r1, r5\n"
+ " ldrb r2, [r6]\n"
+ " lsl r0, r2, #0x1\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r2, ._854 + 36 @ gUnknown_Debug_2023B02\n"
+ " add r1, r1, r2\n"
+ " mov r3, #0x0\n"
+ " ldsh r1, [r1, r3]\n"
+ " mov r0, #0xd\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._854 + 40 @ gMoveNames\n"
+ " add r1, r1, r0\n"
+ " mov r0, r9\n"
+ " bl StringAppend\n"
+ " ldrb r1, [r7]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x1\n"
+ " add r8, r8, r0\n"
+ " mov r1, r8\n"
+ " ldrh r2, [r1]\n"
+ " ldr r3, ._854 + 24 @ gUnknown_Debug_821F566\n"
+ " add r1, r0, r3\n"
+ " ldrb r3, [r1]\n"
+ " ldr r1, ._854 + 28 @ gUnknown_Debug_821F568\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp]\n"
+ " mov r0, sl\n"
+ " mov r1, r9\n"
+ " bl Text_InitWindow\n"
+ " mov r0, sl\n"
+ " bl Text_PrintWindow8002F44\n"
+ "._853:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._855:\n"
+ " .align 2, 0\n"
+ "._854:\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_821F564\n"
+ " .word gUnknown_Debug_030043A8\n"
+ " .word gUnknown_Debug_821F566\n"
+ " .word gUnknown_Debug_821F568\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_2023B02\n"
+ " .word gMoveNames\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80123D8(u8 a)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x1d\n"
+ " bhi ._856 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x12\n"
+ " bl debug_sub_8010A7C\n"
+ " ldr r4, ._858 @ gUnknown_Debug_03004370\n"
+ " ldr r0, ._858 + 4 @ gBattleTextBuff1\n"
+ " mov r8, r0\n"
+ " ldr r6, ._858 + 8 @ gUnknown_Debug_821F58C\n"
+ " ldrh r1, [r6]\n"
+ " mov sl, r1\n"
+ " ldrb r7, [r6, #0x2]\n"
+ " ldrb r2, [r6, #0x4]\n"
+ " mov r9, r2\n"
+ " str r2, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r2, sl\n"
+ " add r3, r7, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " lsl r5, r5, #0x1\n"
+ " ldr r1, ._858 + 12 @ gUnknown_Debug_03004360\n"
+ " ldrb r0, [r1]\n"
+ " mov r2, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r0, r5, r0\n"
+ " ldr r1, ._858 + 16 @ gUnknown_Debug_2023A76\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " lsl r0, r1, #0x3\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._858 + 20 @ gBaseStats\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0, #0x16]\n"
+ " mov r2, #0xd\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._858 + 24 @ gAbilityNames\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " bl StringCopy\n"
+ " mov r1, r9\n"
+ " str r1, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r2, sl\n"
+ " add r3, r7, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x12\n"
+ " bl debug_sub_8010A7C\n"
+ " ldrh r2, [r6, #0x6]\n"
+ " mov r9, r2\n"
+ " ldrb r0, [r6, #0x8]\n"
+ " mov sl, r0\n"
+ " ldrb r6, [r6, #0xa]\n"
+ " str r6, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r3, sl\n"
+ " bl Text_InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " ldr r1, ._858 + 12 @ gUnknown_Debug_03004360\n"
+ " ldrb r0, [r1]\n"
+ " mov r2, #0x46\n"
+ " mul r0, r0, r2\n"
+ " add r5, r5, r0\n"
+ " ldr r0, ._858 + 16 @ gUnknown_Debug_2023A76\n"
+ " add r5, r5, r0\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r5, r2]\n"
+ " lsl r0, r1, #0x3\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._858 + 20 @ gBaseStats\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0, #0x17]\n"
+ " mov r2, #0xd\n"
+ " add r1, r0, #0\n"
+ " mul r1, r1, r2\n"
+ " ldr r0, ._858 + 24 @ gAbilityNames\n"
+ " add r1, r1, r0\n"
+ " mov r0, r8\n"
+ " bl StringCopy\n"
+ " str r6, [sp]\n"
+ " add r0, r4, #0\n"
+ " mov r1, r8\n"
+ " mov r2, r9\n"
+ " mov r3, sl\n"
+ " bl Text_InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " b ._857\n"
+ "._859:\n"
+ " .align 2, 0\n"
+ "._858:\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_821F58C\n"
+ " .word gUnknown_Debug_03004360\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gBaseStats\n"
+ " .word gAbilityNames\n"
+ "._856:\n"
+ " ldr r6, ._860 @ gBattleTextBuff1\n"
+ " ldr r1, ._860 + 4 @ gAbilityNames\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " ldr r5, ._860 + 8 @ gUnknown_Debug_03004370\n"
+ " ldr r4, ._860 + 12 @ gUnknown_Debug_821F58C\n"
+ " ldrh r2, [r4]\n"
+ " ldrb r3, [r4, #0x2]\n"
+ " ldrb r0, [r4, #0x4]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " ldrh r2, [r4, #0x6]\n"
+ " ldrb r3, [r4, #0x8]\n"
+ " ldrb r0, [r4, #0xa]\n"
+ " str r0, [sp]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r5, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ "._857:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._861:\n"
+ " .align 2, 0\n"
+ "._860:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gAbilityNames\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_Debug_821F58C\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8012540()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r5, ._862 @ gBattleTextBuff1\n"
+ " ldr r0, ._862 + 4 @ gUnknown_Debug_2023A76\n"
+ " add r0, r0, #0x44\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r0, r2]\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r4, ._862 + 8 @ gUnknown_Debug_03004370\n"
+ " ldr r1, ._862 + 12 @ gUnknown_Debug_821F424\n"
+ " mov r3, #0x9b\n"
+ " lsl r3, r3, #0x1\n"
+ " add r0, r1, r3\n"
+ " ldrh r2, [r0]\n"
+ " mov r6, #0x9c\n"
+ " lsl r6, r6, #0x1\n"
+ " add r0, r1, r6\n"
+ " ldrb r3, [r0]\n"
+ " add r6, r6, #0x2\n"
+ " add r0, r1, r6\n"
+ " ldrb r0, [r0]\n"
+ " str r0, [sp]\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " bl Text_InitWindow\n"
+ " add r0, r4, #0\n"
+ " bl Text_PrintWindow8002F44\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._863:\n"
+ " .align 2, 0\n"
+ "._862:\n"
+ " .word gBattleTextBuff1\n"
+ " .word gUnknown_Debug_2023A76\n"
+ " .word gUnknown_Debug_03004370\n"
+ " .word gUnknown_Debug_821F424\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_nullsub_3()
+{
+ asm(
+ " bx lr\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80125A0()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._864 @ gSharedMem\n"
+ " ldr r3, ._864 + 4 @ gUnknown_Debug_821F680\n"
+ " ldr r2, ._864 + 8 @ gUnknown_Debug_030043A0\n"
+ " ldr r0, ._864 + 12 @ gUnknown_Debug_030043A4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._864 + 16 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r1]\n"
+ " mov r1, #0x8c\n"
+ " mul r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r3\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x6d\n"
+ " strb r1, [r0]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._865:\n"
+ " .align 2, 0\n"
+ "._864:\n"
+ " .word gSharedMem\n"
+ " .word gUnknown_Debug_821F680\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80125E4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._866 @ gSharedMem\n"
+ " ldr r3, ._866 + 4 @ gUnknown_Debug_821F680\n"
+ " ldr r2, ._866 + 8 @ gUnknown_Debug_030043A0\n"
+ " ldr r0, ._866 + 12 @ gUnknown_Debug_030043A4\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x2\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._866 + 16 @ gUnknown_Debug_03004360\n"
+ " ldrb r2, [r1]\n"
+ " mov r1, #0x8c\n"
+ " mul r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, r3\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r4\n"
+ " mov r1, #0x81\n"
+ " strb r1, [r0]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._867:\n"
+ " .align 2, 0\n"
+ "._866:\n"
+ " .word gSharedMem\n"
+ " .word gUnknown_Debug_821F680\n"
+ " .word gUnknown_Debug_030043A0\n"
+ " .word gUnknown_Debug_030043A4\n"
+ " .word gUnknown_Debug_03004360\n"
+ "\n"
+ );
+}
+
+void debug_sub_8012628(void)
+{
+ gSharedMem[gUnknown_Debug_821F798[gUnknown_Debug_03004360][gUnknown_Debug_030043A8]] = 0x6D;
+}
+
+void debug_sub_8012658(void)
+{
+ gSharedMem[gUnknown_Debug_821F798[gUnknown_Debug_03004360][gUnknown_Debug_030043A8]] = 0x81;
+}
+
+void debug_sub_8012688(void)
+{
+ s32 i;
+ u8 spriteId;
+ u8 taskId;
+
+ for (i = 0; i < 411; i++)
+ gUnknown_Debug_2023B62[i] = 0;
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ DmaFill32(3, 0, (void *)VRAM, VRAM_SIZE);
+ REG_MOSAIC = 0;
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
+ ResetPaletteFade();
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = DISPLAY_HEIGHT;
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
+ gBattleTerrain = 9;
+ sub_800D6D4();
+ sub_800DAB8();
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 4;
+ gCurrentMove = 1;
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
+ DecompressPicFromTable_2(
+ &gMonFrontPicTable[gCurrentMove],
+ gMonFrontPicCoords[gCurrentMove].coords,
+ gMonFrontPicCoords[gCurrentMove].y_offset,
+ (void *)0x02000000,
+ gUnknown_081FAF4C[1],
+ gCurrentMove);
+ LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32);
+ GetMonSpriteTemplate_803C56C(gCurrentMove, 1);
+ spriteId = CreateSprite(&gUnknown_02024E8C, 176, 40 + gMonFrontPicCoords[gCurrentMove].y_offset, 40);
+ gSprites[spriteId].callback = nullsub_37;
+ gSprites[spriteId].oam.paletteNum = 1;
+ REG_DISPCNT = 0x1F40;
+ SetHBlankCallback(debug_nullsub_45);
+ SetVBlankCallback(debug_sub_8011DD4);
+ m4aMPlayAllStop();
+ taskId = CreateTask(debug_sub_8012D10, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = spriteId;
+ SetMainCallback2(debug_sub_8012878);
+}
+
+void debug_sub_8012878(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ Text_UpdateWindowInBattle(&gUnknown_03004210);
+ UpdatePaletteFade();
+ RunTasks();
+ if (gMain.heldKeys == (SELECT_BUTTON | R_BUTTON))
+ SetMainCallback2(debug_sub_80108B8);
+}
+
+void debug_sub_80128B4(void)
+{
+ debug_sub_8010A7C(0, 9);
+ Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ ConvertIntToDecimalStringN(gBattleTextBuff1, gCurrentMove, 2, 3);
+ gBattleTextBuff1[3] = CHAR_SPACE;
+ gBattleTextBuff1[4] = EOS;
+ StringAppend(gBattleTextBuff1, gSpeciesNames[gCurrentMove]);
+ Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+}
+
+void debug_sub_8012938(u8 taskId)
+{
+ debug_sub_8010A7C(0, 7);
+ Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ StringCopy(gBattleTextBuff1, Str_821F7B8);
+ ConvertIntToDecimalStringN(gBattleTextBuff1 + 4, gUnknown_Debug_2023B62[gCurrentMove - 1], 2, 3);
+ Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ gSprites[gTasks[taskId].data[1]].pos2.y = -gUnknown_Debug_2023B62[gCurrentMove - 1];
+}
+
+void debug_sub_80129F8(u8 taskId)
+{
+ DecompressPicFromTable_2(
+ &gMonFrontPicTable[gCurrentMove],
+ gMonFrontPicCoords[gCurrentMove].coords,
+ gMonFrontPicCoords[gCurrentMove].y_offset,
+ (void *)0x02000000,
+ gUnknown_081FAF4C[1],
+ gCurrentMove);
+ LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32);
+ gSprites[gTasks[taskId].data[1]].pos1.y = gMonFrontPicCoords[gCurrentMove].y_offset + 40;
+ gSprites[gTasks[taskId].data[1]].pos2.y = -gUnknown_Debug_2023B62[gCurrentMove - 1];
+ StartSpriteAnim(&gSprites[gTasks[taskId].data[1]], 0);
+}
+
+void debug_sub_8012AC0(s8 a, u8 taskId)
+{
+ do
+ {
+ gCurrentMove += a;
+ if (gCurrentMove == 0)
+ gCurrentMove = 411;
+ if (gCurrentMove == 411)
+ gCurrentMove = 1;
+ } while (gBaseStats[gCurrentMove].type1 != 2 && gBaseStats[gCurrentMove].type2 != 2);
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ debug_sub_80129F8(taskId);
+}
+
+void debug_sub_8012B2C(u8 a)
+{
+ *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 0) * 0x20) = 1;
+ *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 2) * 0x20) = 2;
+}
+
+void debug_sub_8012B4C(u8 a)
+{
+ *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 0) * 0x20) = 0x1016;
+ *(u16 *)(VRAM + 0xC000 + 0x772 + (a * 4 + 2) * 0x20) = 0x1016;
+}
+
+void debug_sub_8012B70(u8 taskId, u8 b)
+{
+ if (b != 0)
+ {
+ sub_802BBD4(24, 28, 29, 33, 1);
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ debug_sub_80129F8(taskId);
+ gTasks[taskId].data[0] = 1;
+ }
+ else
+ {
+ sub_802BBD4(24, 28, 29, 33, 0);
+ gTasks[taskId].data[0] = 2;
+ Text_InitWindow(&gUnknown_03004210, Str_821F7DA, 656, 26, 29);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ gTasks[taskId].data[3] = 0;
+ debug_sub_8012B2C(0);
+ }
+}
+
+void debug_sub_8012C08(u8 taskId, u8 b)
+{
+ debug_sub_8010A7C(0, 9);
+ Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ debug_sub_8010A7C(0, 7);
+ Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ sub_802BBD4(24, 28, 29, 33, 0);
+ if (b != 0)
+ {
+ gTasks[taskId].data[0] = 4;
+ Text_InitWindow(&gUnknown_03004210, gUnknown_Debug_821F7F3, 144, 2, 35);
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 3;
+ Text_InitWindow(&gUnknown_03004210, Str_821F7EA, 144, 2, 35);
+ }
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ Text_InitWindow(&gUnknown_03004210, BattleText_YesNo, 656, 26, 29);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ gTasks[taskId].data[3] = 1;
+ debug_sub_8012B2C(1);
+}
+
+void debug_sub_8012D10(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ Text_InitWindow(&gUnknown_03004210, Str_821F7BD, 400, 19, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ gTasks[taskId].data[0]++;
+ sub_802E3E4(gTasks[taskId].data[2], 0);
+ break;
+ case 1:
+ if (gMain.newKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ nullsub_8(gTasks[taskId].data[2]);
+ gTasks[taskId].data[2] &= ~2;
+ sub_802E3E4(gTasks[taskId].data[2], 0);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ nullsub_8(gTasks[taskId].data[2]);
+ gTasks[taskId].data[2] |= 2;
+ sub_802E3E4(gTasks[taskId].data[2], 0);
+ }
+ else if (gMain.newKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ nullsub_8(gTasks[taskId].data[2]);
+ gTasks[taskId].data[2] &= ~1;
+ sub_802E3E4(gTasks[taskId].data[2], 0);
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ nullsub_8(gTasks[taskId].data[2]);
+ gTasks[taskId].data[2] |= 1;
+ sub_802E3E4(gTasks[taskId].data[2], 0);
+ }
+ else if (gMain.newAndRepeatedKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (gUnknown_Debug_2023B62[gCurrentMove - 1] < 64)
+ {
+ gUnknown_Debug_2023B62[gCurrentMove - 1] += 1;
+ debug_sub_8012938(taskId);
+ }
+ break;
+ case 1:
+ debug_sub_8012AC0(1, taskId);
+ break;
+ case 2:
+ if (gCurrentMove < 411)
+ gCurrentMove++;
+ else
+ gCurrentMove = 1;
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ debug_sub_80129F8(taskId);
+ break;
+ case 3:
+ debug_sub_8012B70(taskId, 0);
+ break;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 0)
+ {
+ gUnknown_Debug_2023B62[gCurrentMove - 1] -= 1;
+ debug_sub_8012938(taskId);
+ }
+ break;
+ case 1:
+ debug_sub_8012AC0(-1, taskId);
+ break;
+ case 2:
+ if (gCurrentMove > 1)
+ gCurrentMove--;
+ else
+ gCurrentMove = 411;
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ debug_sub_80129F8(taskId);
+ break;
+ case 3:
+ debug_sub_8012B70(taskId, 0);
+ break;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & R_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (gUnknown_Debug_2023B62[gCurrentMove - 1] < 64)
+ {
+ gUnknown_Debug_2023B62[gCurrentMove - 1] += 8;
+ if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 64)
+ gUnknown_Debug_2023B62[gCurrentMove - 1] = 64;
+ debug_sub_8012938(taskId);
+ }
+ break;
+ case 1:
+ debug_sub_8012AC0(1, taskId);
+ break;
+ case 2:
+ if (gCurrentMove + 10 < 412)
+ gCurrentMove += 10;
+ else
+ gCurrentMove -= 400;
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ debug_sub_80129F8(taskId);
+ break;
+ case 3:
+ debug_sub_8012B70(taskId, 0);
+ break;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & L_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 0)
+ {
+ if (gUnknown_Debug_2023B62[gCurrentMove - 1] > 8)
+ gUnknown_Debug_2023B62[gCurrentMove - 1] -= 8;
+ else
+ gUnknown_Debug_2023B62[gCurrentMove - 1] = 0;
+ debug_sub_8012938(taskId);
+ }
+ break;
+ case 1:
+ debug_sub_8012AC0(-1, taskId);
+ break;
+ case 2:
+ if (gCurrentMove - 10 > 1)
+ gCurrentMove -= 10;
+ else
+ gCurrentMove += 400;
+ debug_sub_80128B4();
+ debug_sub_8012938(taskId);
+ debug_sub_80129F8(taskId);
+ break;
+ case 3:
+ debug_sub_8012B70(taskId, 0);
+ break;
+ }
+ }
+ break;
+ case 2:
+ if (gMain.newKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B4C(gTasks[taskId].data[3]);
+ gTasks[taskId].data[3] = 0;
+ debug_sub_8012B2C(0);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B4C(gTasks[taskId].data[3]);
+ gTasks[taskId].data[3] = 1;
+ debug_sub_8012B2C(1);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012C08(taskId, gTasks[taskId].data[3]);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ asm("");
+ debug_sub_8012B70(taskId, 1);
+ }
+ return;
+ case 3:
+ if (gMain.newKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B4C(gTasks[taskId].data[3]);
+ gTasks[taskId].data[3] = 0;
+ debug_sub_8012B2C(0);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B4C(gTasks[taskId].data[3]);
+ gTasks[taskId].data[3] = 1;
+ debug_sub_8012B2C(1);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (gTasks[taskId].data[3] == 0)
+ debug_sub_80132C8(31, gUnknown_Debug_2023B62, 411);
+ debug_sub_8012B70(taskId, 1);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B70(taskId, 1);
+ }
+ break;
+ case 4:
+ if (gMain.newKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B4C(gTasks[taskId].data[3]);
+ gTasks[taskId].data[3] = 0;
+ debug_sub_8012B2C(0);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B4C(gTasks[taskId].data[3]);
+ gTasks[taskId].data[3] = 1;
+ debug_sub_8012B2C(1);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (gTasks[taskId].data[3] == 0)
+ debug_sub_8013294(31, gUnknown_Debug_2023B62, 411);
+ debug_sub_8012B70(taskId, 1);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ debug_sub_8012B70(taskId, 1);
+ }
+ break;
+ }
+}
+
+u8 debug_sub_8013240(void)
+{
+ if (IdentifyFlash() == 0)
+ return 0;
+ else
+ return 1;
+}
+
+u32 debug_sub_8013258(u16 sectorNum, u8 *data, u32 size)
+{
+ while (1)
+ {
+ if (ProgramFlashSectorAndVerify(sectorNum, data) != 0)
+ return 0;
+ if (size <= 0x1000)
+ break;
+ size -= 0x1000;
+ data += 0x1000;
+ sectorNum++;
+ }
+ return 1;
+}
+
+u32 debug_sub_8013294(u8 sectorNum, void *data, u32 size)
+{
+ u32 result;
+
+ if (debug_sub_8013240() != 0)
+ return 0;
+ m4aSoundVSyncOff();
+ result = debug_sub_8013258(sectorNum, data, size);
+ m4aSoundVSyncOn();
+ return result;
+}
+
+void debug_sub_80132C8(u8 a, void *b, u32 c)
+{
+ if (debug_sub_8013240() == 0)
+ ReadFlash(a, 0, b, c);
+}
+#endif
+
void oac_poke_opponent(struct Sprite *sprite)
{
sprite->callback = sub_8010278;
@@ -1497,12 +4733,68 @@ void sub_8010800(void)
gBattleMainFunc = bc_8012FAC;
}
-void sub_8010824(void)
+#if DEBUG
+void debug_sub_80138CC(void)
{
- gBattleMainFunc();
+ if (GetBankSide(gActiveBank) == 0)
+ {
+ switch (gSharedMem[0x160FD])
+ {
+ case 0:
+ if (gBattleBankFunc[gActiveBank] == sub_802C098)
+ gSharedMem[0x160FD]++;
+ break;
+ case 1:
+ gMain.heldKeys = A_BUTTON;
+ gMain.newKeys = A_BUTTON;
+ gSharedMem[0x160FD]++;
+ gSharedMem[0x160FE] = 0x80;
+ break;
+ case 2:
+ gSharedMem[0x160FE]--;
+ if (gSharedMem[0x160FE] == 0)
+ {
+ gMain.heldKeys = A_BUTTON;
+ gMain.newKeys = A_BUTTON;
+ gSharedMem[0x160FD]++;
+ gSharedMem[0x160FE] = 0x80;
+ }
+ break;
+ case 3:
+ gSharedMem[0x160FE]--;
+ if (gSharedMem[0x160FE] == 0)
+ {
+ gMain.heldKeys = A_BUTTON;
+ gMain.newKeys = A_BUTTON;
+ gSharedMem[0x160FD]++;
+ }
+ break;
+ case 4:
+ gSharedMem[0x160FD] = 0;
+ break;
+ }
+ }
+}
+#endif
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
- gBattleBankFunc[gActiveBank]();
+void sub_8010824(void)
+{
+#if DEBUG
+ if (gUnknown_02023A14_50 & 0x80)
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ debug_sub_80138CC();
+ gBattleMainFunc();
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ gBattleBankFunc[gActiveBank]();
+ }
+ else
+#endif
+ {
+ gBattleMainFunc();
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ gBattleBankFunc[gActiveBank]();
+ }
}
void sub_8010874(void)
@@ -1522,11 +4814,11 @@ void sub_8010874(void)
gDisableStructs[i].isFirstTurn= 2;
gUnknown_02024C70[i] = 0;
gLastUsedMove[i] = 0;
- gMoveHitWith[i] = 0;
- gUnknown_02024C44[i] = 0;
+ gLastLandedMoves[i] = 0;
+ gLastHitByType[i] = 0;
gUnknown_02024C4C[i] = 0;
gUnknown_02024C5C[i] = 0xFF;
- gLockedMove[i] = 0;
+ gLockedMoves[i] = 0;
gUnknown_02024C2C[i] = 0;
eFlashFireArr.arr[i] = 0;
}
@@ -1534,7 +4826,7 @@ void sub_8010874(void)
for (i = 0; i < 2; i++)
{
gSideAffecting[i] = 0;
- MEMSET_ALT(&gSideTimer[i], 0, 12, j, r4);
+ MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4);
}
gBankAttacker = 0;
@@ -1605,9 +4897,13 @@ void sub_8010874(void)
gBattleResults.pokeString2[i] = 0;
gBattleResults.caughtNick[i] = 0;
}
+#if DEBUG
+ gSharedMem[0x1609E] = 0;
+ gSharedMem[0x1609F] = 0;
+#endif
}
-void SwitchInClearStructs(void)
+void SwitchInClearSetData(void)
{
struct DisableStruct sp0 = gDisableStructs[gActiveBank];
s32 i;
@@ -1675,8 +4971,8 @@ void SwitchInClearStructs(void)
gDisableStructs[gActiveBank].isFirstTurn= 2;
gLastUsedMove[gActiveBank] = 0;
- gMoveHitWith[gActiveBank] = 0;
- gUnknown_02024C44[gActiveBank] = 0;
+ gLastLandedMoves[gActiveBank] = 0;
+ gLastHitByType[gActiveBank] = 0;
gUnknown_02024C4C[gActiveBank] = 0;
gUnknown_02024C2C[gActiveBank] = 0;
gUnknown_02024C5C[gActiveBank] = 0xFF;
@@ -1739,8 +5035,8 @@ void UndoEffectsAfterFainting(void)
gDisableStructs[gActiveBank].isFirstTurn= 2;
gLastUsedMove[gActiveBank] = 0;
- gMoveHitWith[gActiveBank] = 0;
- gUnknown_02024C44[gActiveBank] = 0;
+ gLastLandedMoves[gActiveBank] = 0;
+ gLastHitByType[gActiveBank] = 0;
gUnknown_02024C4C[gActiveBank] = 0;
gUnknown_02024C2C[gActiveBank] = 0;
gUnknown_02024C5C[gActiveBank] = 0xFF;
@@ -1787,7 +5083,7 @@ static void BattlePrepIntroSlide(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
EmitIntroSlide(0, gBattleTerrain);
MarkBufferBankForExecution(gActiveBank);
gBattleMainFunc = sub_8011384;
@@ -1891,7 +5187,7 @@ void bc_801333C(void)
hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
}
}
- gActiveBank = GetBankByPlayerAI(1);
+ gActiveBank = GetBankByIdentity(1);
EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
@@ -1909,7 +5205,7 @@ void bc_801333C(void)
hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
@@ -1944,7 +5240,7 @@ void bc_battle_begin_message(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBankByPlayerAI(1);
+ gActiveBank = GetBankByIdentity(1);
PrepareStringBattle(0, gActiveBank);
gBattleMainFunc = sub_8011800;
}
@@ -1963,7 +5259,7 @@ void sub_8011800(void)
{
if (gBattleExecBuffer == 0)
{
- PrepareStringBattle(1, GetBankByPlayerAI(1));
+ PrepareStringBattle(1, GetBankByIdentity(1));
gBattleMainFunc = sub_8011834;
}
}
@@ -2015,7 +5311,7 @@ void sub_8011970(void)
if (gBattleExecBuffer == 0)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
- PrepareStringBattle(1, GetBankByPlayerAI(0));
+ PrepareStringBattle(1, GetBankByIdentity(0));
gBattleMainFunc = sub_80119B4;
}
}
@@ -2075,13 +5371,13 @@ void BattleBeginFirstTurn(void)
if (ewram16058 == 0)
{
for (i = 0; i < gNoOfAllBanks; i++)
- gTurnOrder[i] = i;
+ gBanksByTurnOrder[i] = i;
for (i = 0; i < gNoOfAllBanks - 1; i++)
{
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 1) != 0)
- sub_8012FBC(i, j);
+ if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 1) != 0)
+ SwapTurnOrder(i, j);
}
}
}
@@ -2092,7 +5388,7 @@ void BattleBeginFirstTurn(void)
}
while (ewram16058 < gNoOfAllBanks)
{
- if (AbilityBattleEffects(0, gTurnOrder[ewram16058], 0, 0, 0) != 0)
+ if (AbilityBattleEffects(0, gBanksByTurnOrder[ewram16058], 0, 0, 0) != 0)
r9++;
ewram16058++;
if (r9 != 0)
@@ -2104,7 +5400,7 @@ void BattleBeginFirstTurn(void)
return;
while (ewram160F9 < gNoOfAllBanks)
{
- if (ItemBattleEffects(0, gTurnOrder[ewram160F9], 0) != 0)
+ if (ItemBattleEffects(0, gBanksByTurnOrder[ewram160F9], 0) != 0)
r9++;
ewram160F9++;
if (r9 != 0)
@@ -2123,7 +5419,7 @@ void BattleBeginFirstTurn(void)
SpecialStatusesClear();
ewram160A6 = gAbsentBankFlags;
gBattleMainFunc = sub_8012324;
- sub_80156DC();
+ ResetSentPokesToOpponentValue();
for (i = 0; i < 8; i++)
gBattleCommunication[i] = 0;
for (i = 0; i < gNoOfAllBanks; i++)
@@ -2176,10 +5472,10 @@ void BattleTurnPassed(void)
if (TurnBasedEffects() != 0)
return;
}
- if (sub_80173A4() != 0)
+ if (HandleFaintedMonActions() != 0)
return;
ewram16059 = 0;
- if (sub_80170DC() != 0)
+ if (HandleWishPerishSongOnTurnEnd() != 0)
return;
TurnValuesCleanUp(0);
gHitMarker &= ~HITMARKER_NO_ATTACKSTRING;
@@ -2195,8 +5491,8 @@ void BattleTurnPassed(void)
gBattleCommunication[i] = 0;
if (gBattleOutcome != 0)
{
- gFightStateTracker = 12;
- gBattleMainFunc = sub_80138F0;
+ gCurrentActionFuncId = 12;
+ gBattleMainFunc = RunTurnActionsFunctions;
return;
}
if (gBattleResults.battleTurnCounter < 0xFF)
@@ -2319,8 +5615,8 @@ void sub_8012324(void)
ewram16068arr(gActiveBank) = 6;
if (!(gBattleTypeFlags & 0x40)
&& (r5 & 2)
- && !(ewram160A6 & gBitTable[GetBankByPlayerAI(r5 ^ 2)])
- && gBattleCommunication[GetBankByPlayerAI(r5)] != 4)
+ && !(ewram160A6 & gBitTable[GetBankByIdentity(r5 ^ 2)])
+ && gBattleCommunication[GetBankByIdentity(r5)] != 4)
break;
//_080123F8
if (ewram160A6 & gBitTable[gActiveBank])
@@ -2352,3 +5648,3329 @@ void sub_8012324(void)
}
}
*/
+__attribute__((naked))
+void sub_8012324(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x1C\n\
+ ldr r0, _08012340 @ =gBattleCommunication\n\
+ movs r1, 0\n\
+ strb r1, [r0, 0x4]\n\
+ ldr r0, _08012344 @ =gActiveBank\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012348 @ =gNoOfAllBanks\n\
+ bl _08012F74\n\
+ .align 2, 0\n\
+_08012340: .4byte gBattleCommunication\n\
+_08012344: .4byte gActiveBank\n\
+_08012348: .4byte gNoOfAllBanks\n\
+_0801234C:\n\
+ ldr r4, _08012374 @ =gActiveBank\n\
+ ldrb r0, [r4]\n\
+ bl GetBankIdentity\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ ldr r1, _08012378 @ =gBattleCommunication\n\
+ ldrb r0, [r4]\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x6\n\
+ bls _08012368\n\
+ bl _08012F66\n\
+_08012368:\n\
+ lsls r0, 2\n\
+ ldr r1, _0801237C @ =_08012380\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08012374: .4byte gActiveBank\n\
+_08012378: .4byte gBattleCommunication\n\
+_0801237C: .4byte _08012380\n\
+ .align 2, 0\n\
+_08012380:\n\
+ .4byte _0801239C\n\
+ .4byte _080124C8\n\
+ .4byte _08012A28\n\
+ .4byte _08012DA8\n\
+ .4byte _08012E50\n\
+ .4byte _08012E94\n\
+ .4byte _08012F38\n\
+_0801239C:\n\
+ ldr r4, _08012434 @ =gSharedMem\n\
+ ldr r0, _08012438 @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ ldr r1, _0801243C @ =0x00016068\n\
+ adds r0, r1\n\
+ adds r0, r4\n\
+ movs r1, 0x6\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012440 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080123F8\n\
+ movs r1, 0x2\n\
+ movs r0, 0x2\n\
+ ands r0, r5\n\
+ cmp r0, 0\n\
+ beq _080123F8\n\
+ eors r5, r1\n\
+ adds r0, r5, 0\n\
+ bl GetBankByIdentity\n\
+ ldr r2, _08012444 @ =0x000160a6\n\
+ adds r1, r4, r2\n\
+ ldrb r1, [r1]\n\
+ ldr r2, _08012448 @ =gBitTable\n\
+ lsls r0, 24\n\
+ lsrs r0, 22\n\
+ adds r0, r2\n\
+ ldr r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ bne _080123F8\n\
+ ldr r4, _0801244C @ =gBattleCommunication\n\
+ adds r0, r5, 0\n\
+ bl GetBankByIdentity\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r0, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x4\n\
+ beq _080123F8\n\
+ bl _08012F66\n\
+_080123F8:\n\
+ ldr r0, _08012434 @ =gSharedMem\n\
+ ldr r3, _08012444 @ =0x000160a6\n\
+ adds r0, r3\n\
+ ldrb r3, [r0]\n\
+ ldr r1, _08012448 @ =gBitTable\n\
+ ldr r4, _08012438 @ =gActiveBank\n\
+ ldrb r2, [r4]\n\
+ lsls r0, r2, 2\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ ands r3, r0\n\
+ cmp r3, 0\n\
+ beq _08012468\n\
+ ldr r0, _08012450 @ =gActionForBanks\n\
+ adds r0, r2, r0\n\
+ movs r1, 0xD\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012440 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012454\n\
+ ldr r0, _0801244C @ =gBattleCommunication\n\
+ ldrb r1, [r4]\n\
+ adds r1, r0\n\
+ movs r0, 0x4\n\
+ strb r0, [r1]\n\
+ bl _08012F66\n\
+ .align 2, 0\n\
+_08012434: .4byte gSharedMem\n\
+_08012438: .4byte gActiveBank\n\
+_0801243C: .4byte 0x00016068\n\
+_08012440: .4byte gBattleTypeFlags\n\
+_08012444: .4byte 0x000160a6\n\
+_08012448: .4byte gBitTable\n\
+_0801244C: .4byte gBattleCommunication\n\
+_08012450: .4byte gActionForBanks\n\
+_08012454:\n\
+ ldr r0, _08012464 @ =gBattleCommunication\n\
+ ldrb r1, [r4]\n\
+ adds r1, r0\n\
+ movs r0, 0x3\n\
+ strb r0, [r1]\n\
+ bl _08012F66\n\
+ .align 2, 0\n\
+_08012464: .4byte gBattleCommunication\n\
+_08012468:\n\
+ ldr r1, _0801249C @ =gBattleMons\n\
+ movs r0, 0x58\n\
+ muls r0, r2\n\
+ adds r1, 0x50\n\
+ adds r0, r1\n\
+ ldr r1, [r0]\n\
+ movs r0, 0x80\n\
+ lsls r0, 5\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012488\n\
+ movs r0, 0x80\n\
+ lsls r0, 15\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _080124A8\n\
+_08012488:\n\
+ ldr r0, _080124A0 @ =gActionForBanks\n\
+ adds r0, r2, r0\n\
+ strb r3, [r0]\n\
+ ldr r1, _080124A4 @ =gBattleCommunication\n\
+ ldrb r0, [r4]\n\
+ adds r0, r1\n\
+ movs r1, 0x3\n\
+ strb r1, [r0]\n\
+ bl _08012F66\n\
+ .align 2, 0\n\
+_0801249C: .4byte gBattleMons\n\
+_080124A0: .4byte gActionForBanks\n\
+_080124A4: .4byte gBattleCommunication\n\
+_080124A8:\n\
+ ldr r0, _080124C0 @ =gActionForBanks\n\
+ ldrb r1, [r0]\n\
+ ldr r0, _080124C4 @ =gBattleBufferB\n\
+ ldrb r2, [r0, 0x1]\n\
+ ldrb r0, [r0, 0x2]\n\
+ lsls r0, 8\n\
+ orrs r2, r0\n\
+ movs r0, 0\n\
+ bl Emitcmd18\n\
+ bl _08012E32\n\
+ .align 2, 0\n\
+_080124C0: .4byte gActionForBanks\n\
+_080124C4: .4byte gBattleBufferB\n\
+_080124C8:\n\
+ ldr r4, _08012520 @ =gBattleExecBuffer\n\
+ ldr r1, _08012524 @ =gBitTable\n\
+ ldr r3, _08012528 @ =gActiveBank\n\
+ ldrb r5, [r3]\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r0, r2, 4\n\
+ movs r1, 0xF0\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ orrs r0, r2\n\
+ lsls r1, r2, 8\n\
+ orrs r0, r1\n\
+ lsls r2, 12\n\
+ orrs r0, r2\n\
+ ldr r1, [r4]\n\
+ ands r1, r0\n\
+ mov r8, r3\n\
+ cmp r1, 0\n\
+ beq _080124F6\n\
+ bl _08012F66\n\
+_080124F6:\n\
+ ldr r2, _0801252C @ =gActionForBanks\n\
+ adds r2, r5, r2\n\
+ ldr r1, _08012530 @ =gBattleBufferB\n\
+ lsls r0, r5, 9\n\
+ adds r1, 0x1\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2]\n\
+ ldrb r0, [r3]\n\
+ lsls r0, 9\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0xC\n\
+ bls _08012514\n\
+ b _08012968\n\
+_08012514:\n\
+ lsls r0, 2\n\
+ ldr r1, _08012534 @ =_08012538\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08012520: .4byte gBattleExecBuffer\n\
+_08012524: .4byte gBitTable\n\
+_08012528: .4byte gActiveBank\n\
+_0801252C: .4byte gActionForBanks\n\
+_08012530: .4byte gBattleBufferB\n\
+_08012534: .4byte _08012538\n\
+ .align 2, 0\n\
+_08012538:\n\
+ .4byte _0801256C\n\
+ .4byte _080126B4\n\
+ .4byte _080126E0\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _080128B0\n\
+ .4byte _08012908\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _08012968\n\
+ .4byte _0801292C\n\
+_0801256C:\n\
+ bl AreAllMovesUnusable\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080125D0\n\
+ ldr r0, _080125B4 @ =gBattleCommunication\n\
+ ldr r2, _080125B8 @ =gActiveBank\n\
+ ldrb r1, [r2]\n\
+ adds r1, r0\n\
+ movs r4, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r3, _080125BC @ =gSharedMem\n\
+ ldrb r0, [r2]\n\
+ ldr r1, _080125C0 @ =0x00016060\n\
+ adds r0, r1\n\
+ adds r0, r3\n\
+ strb r4, [r0]\n\
+ ldrb r0, [r2]\n\
+ ldr r4, _080125C4 @ =0x00016094\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ movs r1, 0x3\n\
+ strb r1, [r0]\n\
+ ldrb r1, [r2]\n\
+ ldr r0, _080125C8 @ =0x00016010\n\
+ adds r2, r1, r0\n\
+ adds r2, r3\n\
+ ldr r0, _080125CC @ =gBattleBufferB\n\
+ lsls r1, 9\n\
+ adds r0, 0x3\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ strb r0, [r2]\n\
+ bl _08012F90\n\
+ .align 2, 0\n\
+_080125B4: .4byte gBattleCommunication\n\
+_080125B8: .4byte gActiveBank\n\
+_080125BC: .4byte gSharedMem\n\
+_080125C0: .4byte 0x00016060\n\
+_080125C4: .4byte 0x00016094\n\
+_080125C8: .4byte 0x00016010\n\
+_080125CC: .4byte gBattleBufferB\n\
+_080125D0:\n\
+ ldr r1, _080125FC @ =gDisableStructs\n\
+ ldr r5, _08012600 @ =gActiveBank\n\
+ ldrb r4, [r5]\n\
+ lsls r0, r4, 3\n\
+ subs r0, r4\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrh r2, [r0, 0x6]\n\
+ cmp r2, 0\n\
+ beq _0801260C\n\
+ ldr r1, _08012604 @ =gChosenMovesByBanks\n\
+ lsls r0, r4, 1\n\
+ adds r0, r1\n\
+ strh r2, [r0]\n\
+ ldr r1, _08012608 @ =gBattleCommunication\n\
+ ldrb r0, [r5]\n\
+ adds r0, r1\n\
+ movs r1, 0x3\n\
+ strb r1, [r0]\n\
+ bl _08012F90\n\
+ .align 2, 0\n\
+_080125FC: .4byte gDisableStructs\n\
+_08012600: .4byte gActiveBank\n\
+_08012604: .4byte gChosenMovesByBanks\n\
+_08012608: .4byte gBattleCommunication\n\
+_0801260C:\n\
+ add r2, sp, 0x4\n\
+ ldr r3, _080126AC @ =gBattleMons\n\
+ movs r1, 0x58\n\
+ adds r0, r4, 0\n\
+ muls r0, r1\n\
+ adds r0, r3\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r2, 0x10]\n\
+ ldrb r0, [r5]\n\
+ muls r0, r1\n\
+ adds r0, r3\n\
+ adds r0, 0x21\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2, 0x12]\n\
+ ldrb r0, [r5]\n\
+ muls r0, r1\n\
+ adds r0, r3\n\
+ adds r0, 0x22\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2, 0x13]\n\
+ movs r4, 0\n\
+ mov r1, sp\n\
+ adds r1, 0xC\n\
+ str r1, [sp, 0x18]\n\
+ add r2, sp, 0x10\n\
+ mov r10, r2\n\
+ mov r8, r3\n\
+ adds r7, r5, 0\n\
+ movs r6, 0x58\n\
+ movs r3, 0xC\n\
+ add r3, r8\n\
+ mov r9, r3\n\
+ add r5, sp, 0x4\n\
+_0801264E:\n\
+ lsls r2, r4, 1\n\
+ ldrb r0, [r7]\n\
+ muls r0, r6\n\
+ adds r0, r2, r0\n\
+ add r0, r9\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r5]\n\
+ ldr r0, [sp, 0x18]\n\
+ adds r3, r0, r4\n\
+ ldrb r0, [r7]\n\
+ muls r0, r6\n\
+ adds r0, r4, r0\n\
+ mov r1, r8\n\
+ adds r1, 0x24\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r3]\n\
+ ldrb r0, [r7]\n\
+ adds r1, r0, 0\n\
+ muls r1, r6\n\
+ adds r2, r1\n\
+ add r2, r9\n\
+ ldrh r0, [r2]\n\
+ add r1, r8\n\
+ adds r1, 0x3B\n\
+ ldrb r1, [r1]\n\
+ lsls r2, r4, 24\n\
+ lsrs r2, 24\n\
+ bl CalculatePPWithBonus\n\
+ mov r2, r10\n\
+ adds r1, r2, r4\n\
+ strb r0, [r1]\n\
+ adds r5, 0x2\n\
+ adds r4, 0x1\n\
+ cmp r4, 0x3\n\
+ ble _0801264E\n\
+ ldr r0, _080126B0 @ =gBattleTypeFlags\n\
+ ldrb r0, [r0]\n\
+ movs r1, 0x1\n\
+ ands r1, r0\n\
+ movs r0, 0\n\
+ movs r2, 0\n\
+ add r3, sp, 0x4\n\
+ bl Emitcmd20\n\
+ b _0801289E\n\
+ .align 2, 0\n\
+_080126AC: .4byte gBattleMons\n\
+_080126B0: .4byte gBattleTypeFlags\n\
+_080126B4:\n\
+ ldr r0, _080126D0 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ ldr r0, _080126D4 @ =0x00000902\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080126C2\n\
+ b _08012908\n\
+_080126C2:\n\
+ ldr r1, _080126D8 @ =gUnknown_02024C1C\n\
+ mov r3, r8\n\
+ ldrb r0, [r3]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed\n\
+ b _080129CC\n\
+ .align 2, 0\n\
+_080126D0: .4byte gBattleTypeFlags\n\
+_080126D4: .4byte 0x00000902\n\
+_080126D8: .4byte gUnknown_02024C1C\n\
+_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed\n\
+_080126E0:\n\
+ ldr r3, _08012738 @ =gSharedMem\n\
+ ldr r5, _0801273C @ =gActiveBank\n\
+ ldrb r0, [r5]\n\
+ ldr r4, _08012740 @ =0x00016064\n\
+ adds r1, r0, r4\n\
+ adds r1, r3\n\
+ ldr r2, _08012744 @ =gBattlePartyID\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ ldrh r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r7, _08012748 @ =gBattleMons\n\
+ ldrb r2, [r5]\n\
+ movs r6, 0x58\n\
+ adds r0, r2, 0\n\
+ muls r0, r6\n\
+ adds r1, r7, 0\n\
+ adds r1, 0x50\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ ldr r1, _0801274C @ =0x0400e000\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012722\n\
+ ldr r0, _08012750 @ =gStatuses3\n\
+ lsls r1, r2, 2\n\
+ adds r1, r0\n\
+ ldr r1, [r1]\n\
+ movs r0, 0x80\n\
+ lsls r0, 3\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08012758\n\
+_08012722:\n\
+ lsls r0, r2, 1\n\
+ adds r0, r2\n\
+ ldr r2, _08012754 @ =0x0001606c\n\
+ adds r1, r3, r2\n\
+ adds r0, r1\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0x2\n\
+ movs r2, 0x6\n\
+ b _0801286C\n\
+ .align 2, 0\n\
+_08012738: .4byte gSharedMem\n\
+_0801273C: .4byte gActiveBank\n\
+_08012740: .4byte 0x00016064\n\
+_08012744: .4byte gBattlePartyID\n\
+_08012748: .4byte gBattleMons\n\
+_0801274C: .4byte 0x0400e000\n\
+_08012750: .4byte gStatuses3\n\
+_08012754: .4byte 0x0001606c\n\
+_08012758:\n\
+ str r1, [sp]\n\
+ movs r0, 0xC\n\
+ adds r1, r2, 0\n\
+ movs r2, 0x17\n\
+ movs r3, 0\n\
+ bl AbilityBattleEffects\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ bne _080127E0\n\
+ ldrb r1, [r5]\n\
+ str r4, [sp]\n\
+ movs r0, 0xC\n\
+ movs r2, 0x47\n\
+ movs r3, 0\n\
+ bl AbilityBattleEffects\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ beq _080127A8\n\
+ ldrb r0, [r5]\n\
+ muls r0, r6\n\
+ adds r1, r0, r7\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x21\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ beq _080127A8\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x22\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ beq _080127A8\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x20\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1A\n\
+ bne _080127E0\n\
+_080127A8:\n\
+ ldr r5, _08012808 @ =gActiveBank\n\
+ ldrb r1, [r5]\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0xF\n\
+ movs r2, 0x2A\n\
+ movs r3, 0\n\
+ bl AbilityBattleEffects\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ beq _08012818\n\
+ ldr r2, _0801280C @ =gBattleMons\n\
+ ldrb r1, [r5]\n\
+ movs r0, 0x58\n\
+ muls r0, r1\n\
+ adds r1, r0, r2\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x21\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x8\n\
+ beq _080127E0\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x22\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x8\n\
+ bne _08012818\n\
+_080127E0:\n\
+ subs r1, r4, 0x1\n\
+ lsls r1, 4\n\
+ movs r0, 0x4\n\
+ orrs r1, r0\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ ldr r0, _08012810 @ =gLastUsedAbility\n\
+ ldrb r3, [r0]\n\
+ ldr r0, _08012808 @ =gActiveBank\n\
+ ldrb r2, [r0]\n\
+ lsls r0, r2, 1\n\
+ adds r0, r2\n\
+ ldr r2, _08012814 @ =gSharedMem + 0x1606C\n\
+ adds r0, r2\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r2, 0x6\n\
+ bl EmitChoosePokemon\n\
+ b _0801289E\n\
+ .align 2, 0\n\
+_08012808: .4byte gActiveBank\n\
+_0801280C: .4byte gBattleMons\n\
+_08012810: .4byte gLastUsedAbility\n\
+_08012814: .4byte gSharedMem + 0x1606C\n\
+_08012818:\n\
+ ldr r0, _08012830 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ mov r8, r0\n\
+ cmp r1, 0x2\n\
+ bne _08012840\n\
+ ldr r0, _08012834 @ =gActionForBanks\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x2\n\
+ bne _08012840\n\
+ ldr r3, _08012838 @ =gSharedMem\n\
+ ldr r4, _0801283C @ =0x00016068\n\
+ b _08012854\n\
+ .align 2, 0\n\
+_08012830: .4byte gActiveBank\n\
+_08012834: .4byte gActionForBanks\n\
+_08012838: .4byte gSharedMem\n\
+_0801283C: .4byte 0x00016068\n\
+_08012840:\n\
+ mov r2, r8\n\
+ ldrb r0, [r2]\n\
+ cmp r0, 0x3\n\
+ bne _08012884\n\
+ ldr r0, _08012874 @ =gActionForBanks\n\
+ ldrb r0, [r0, 0x1]\n\
+ cmp r0, 0x2\n\
+ bne _08012884\n\
+ ldr r3, _08012878 @ =gSharedMem\n\
+ ldr r4, _0801287C @ =0x00016069\n\
+_08012854:\n\
+ adds r0, r3, r4\n\
+ ldrb r2, [r0]\n\
+ mov r0, r8\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ ldr r1, _08012880 @ =0x0001606c\n\
+ adds r3, r1\n\
+ adds r0, r3\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+_0801286C:\n\
+ movs r3, 0\n\
+ bl EmitChoosePokemon\n\
+ b _0801289E\n\
+ .align 2, 0\n\
+_08012874: .4byte gActionForBanks\n\
+_08012878: .4byte gSharedMem\n\
+_0801287C: .4byte 0x00016069\n\
+_08012880: .4byte 0x0001606c\n\
+_08012884:\n\
+ ldr r0, _080128A8 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ ldr r1, _080128AC @ =gSharedMem + 0x1606C\n\
+ adds r0, r1\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+ movs r2, 0x6\n\
+ movs r3, 0\n\
+ bl EmitChoosePokemon\n\
+_0801289E:\n\
+ ldr r0, _080128A8 @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ bl MarkBufferBankForExecution\n\
+ b _08012968\n\
+ .align 2, 0\n\
+_080128A8: .4byte gActiveBank\n\
+_080128AC: .4byte gSharedMem + 0x1606C\n\
+_080128B0:\n\
+ bl PlayerPartyAndPokemonStorageFull\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08012968\n\
+ ldr r1, _080128EC @ =gUnknown_02024C1C\n\
+ ldr r2, _080128F0 @ =gActiveBank\n\
+ ldrb r0, [r2]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r1, _080128F4 @ =BattleScript_PrintFullBox\n\
+ str r1, [r0]\n\
+ ldr r0, _080128F8 @ =gBattleCommunication\n\
+ ldrb r1, [r2]\n\
+ adds r1, r0\n\
+ movs r3, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r1, _080128FC @ =gSharedMem\n\
+ ldrb r0, [r2]\n\
+ ldr r4, _08012900 @ =0x00016060\n\
+ adds r0, r4\n\
+ adds r0, r1\n\
+ strb r3, [r0]\n\
+ ldrb r0, [r2]\n\
+ ldr r2, _08012904 @ =0x00016094\n\
+ adds r0, r2\n\
+ adds r0, r1\n\
+ strb r3, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_080128EC: .4byte gUnknown_02024C1C\n\
+_080128F0: .4byte gActiveBank\n\
+_080128F4: .4byte BattleScript_PrintFullBox\n\
+_080128F8: .4byte gBattleCommunication\n\
+_080128FC: .4byte gSharedMem\n\
+_08012900: .4byte 0x00016060\n\
+_08012904: .4byte 0x00016094\n\
+_08012908:\n\
+ ldr r4, _08012924 @ =gActiveBank\n\
+ ldrb r0, [r4]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ ldr r0, _08012928 @ =gSharedMem + 0x1606C\n\
+ adds r1, r0\n\
+ movs r0, 0\n\
+ bl EmitOpenBag\n\
+ ldrb r0, [r4]\n\
+ bl MarkBufferBankForExecution\n\
+ b _08012968\n\
+ .align 2, 0\n\
+_08012924: .4byte gActiveBank\n\
+_08012928: .4byte gSharedMem + 0x1606C\n\
+_0801292C:\n\
+ ldr r4, _08012964 @ =gBattleCommunication\n\
+ mov r3, r8\n\
+ ldrb r1, [r3]\n\
+ adds r1, r4\n\
+ movs r5, 0\n\
+ movs r0, 0x6\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r3]\n\
+ bl GetBankIdentity\n\
+ movs r1, 0x2\n\
+ eors r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl GetBankByIdentity\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r0, r4\n\
+ strb r5, [r0]\n\
+ movs r0, 0\n\
+ bl Emitcmd50\n\
+ mov r4, r8\n\
+ ldrb r0, [r4]\n\
+ bl MarkBufferBankForExecution\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_08012964: .4byte gBattleCommunication\n\
+_08012968:\n\
+ ldr r0, _08012994 @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0xA\n\
+ ands r0, r1\n\
+ cmp r0, 0x8\n\
+ bne _080129A8\n\
+ ldr r0, _08012998 @ =gBattleBufferB\n\
+ ldr r4, _0801299C @ =gActiveBank\n\
+ ldrb r1, [r4]\n\
+ lsls r1, 9\n\
+ adds r0, 0x1\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x3\n\
+ bne _080129A8\n\
+ ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer\n\
+ bl BattleScriptExecute\n\
+ ldr r1, _080129A4 @ =gBattleCommunication\n\
+ ldrb r0, [r4]\n\
+ adds r0, r1\n\
+ b _08012BFE\n\
+ .align 2, 0\n\
+_08012994: .4byte gBattleTypeFlags\n\
+_08012998: .4byte gBattleBufferB\n\
+_0801299C: .4byte gActiveBank\n\
+_080129A0: .4byte BattleScript_PrintCantRunFromTrainer\n\
+_080129A4: .4byte gBattleCommunication\n\
+_080129A8:\n\
+ bl CanRunFromBattle\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08012A14\n\
+ ldr r0, _080129F4 @ =gBattleBufferB\n\
+ ldr r3, _080129F8 @ =gActiveBank\n\
+ ldrb r2, [r3]\n\
+ lsls r1, r2, 9\n\
+ adds r0, 0x1\n\
+ adds r1, r0\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x3\n\
+ bne _08012A14\n\
+ ldr r1, _080129FC @ =gUnknown_02024C1C\n\
+ lsls r0, r2, 2\n\
+ adds r0, r1\n\
+ ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle\n\
+_080129CC:\n\
+ str r1, [r0]\n\
+ ldr r0, _08012A04 @ =gBattleCommunication\n\
+ ldrb r1, [r3]\n\
+ adds r1, r0\n\
+ movs r2, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r1, _08012A08 @ =gSharedMem\n\
+ ldrb r0, [r3]\n\
+ ldr r4, _08012A0C @ =0x00016060\n\
+ adds r0, r4\n\
+ adds r0, r1\n\
+ strb r2, [r0]\n\
+ ldrb r0, [r3]\n\
+ ldr r3, _08012A10 @ =0x00016094\n\
+ adds r0, r3\n\
+ adds r0, r1\n\
+ strb r2, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_080129F4: .4byte gBattleBufferB\n\
+_080129F8: .4byte gActiveBank\n\
+_080129FC: .4byte gUnknown_02024C1C\n\
+_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle\n\
+_08012A04: .4byte gBattleCommunication\n\
+_08012A08: .4byte gSharedMem\n\
+_08012A0C: .4byte 0x00016060\n\
+_08012A10: .4byte 0x00016094\n\
+_08012A14:\n\
+ ldr r2, _08012A20 @ =gBattleCommunication\n\
+ ldr r0, _08012A24 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012A20: .4byte gBattleCommunication\n\
+_08012A24: .4byte gActiveBank\n\
+_08012A28:\n\
+ ldr r4, _08012A6C @ =gBattleExecBuffer\n\
+ ldr r1, _08012A70 @ =gBitTable\n\
+ ldr r3, _08012A74 @ =gActiveBank\n\
+ ldrb r5, [r3]\n\
+ lsls r0, r5, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r0, r2, 4\n\
+ movs r1, 0xF0\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ orrs r0, r2\n\
+ lsls r1, r2, 8\n\
+ orrs r0, r1\n\
+ lsls r2, 12\n\
+ orrs r0, r2\n\
+ ldr r1, [r4]\n\
+ ands r1, r0\n\
+ mov r8, r3\n\
+ cmp r1, 0\n\
+ beq _08012A54\n\
+ b _08012F66\n\
+_08012A54:\n\
+ ldr r1, _08012A78 @ =gActionForBanks\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0x9\n\
+ bls _08012A62\n\
+ b _08012F66\n\
+_08012A62:\n\
+ lsls r0, 2\n\
+ ldr r1, _08012A7C @ =_08012A80\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_08012A6C: .4byte gBattleExecBuffer\n\
+_08012A70: .4byte gBitTable\n\
+_08012A74: .4byte gActiveBank\n\
+_08012A78: .4byte gActionForBanks\n\
+_08012A7C: .4byte _08012A80\n\
+ .align 2, 0\n\
+_08012A80:\n\
+ .4byte _08012AA8\n\
+ .4byte _08012BB0\n\
+ .4byte _08012BE8\n\
+ .4byte _08012CE0\n\
+ .4byte _08012D04\n\
+ .4byte _08012D18\n\
+ .4byte _08012D2C\n\
+ .4byte _08012D5C\n\
+ .4byte _08012D70\n\
+ .4byte _08012D94\n\
+_08012AA8:\n\
+ ldr r0, _08012AC8 @ =gBattleBufferB\n\
+ mov r1, r8\n\
+ ldrb r4, [r1]\n\
+ lsls r1, r4, 9\n\
+ adds r2, r0, 0x1\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ adds r6, r0, 0\n\
+ cmp r1, 0x9\n\
+ bgt _08012ACC\n\
+ cmp r1, 0x3\n\
+ blt _08012ACC\n\
+ adds r0, r4, r3\n\
+ strb r1, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_08012AC8: .4byte gBattleBufferB\n\
+_08012ACC:\n\
+ adds r3, r6, 0\n\
+ mov r5, r8\n\
+ ldrb r4, [r5]\n\
+ lsls r1, r4, 9\n\
+ adds r7, r3, 0x2\n\
+ adds r0, r1, r7\n\
+ ldrb r2, [r0]\n\
+ adds r3, 0x3\n\
+ mov r9, r3\n\
+ add r1, r9\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r2, r0\n\
+ ldr r0, _08012AF4 @ =0x0000ffff\n\
+ cmp r2, r0\n\
+ bne _08012AFC\n\
+ ldr r0, _08012AF8 @ =gBattleCommunication\n\
+ adds r0, r4, r0\n\
+ b _08012BFE\n\
+ .align 2, 0\n\
+_08012AF4: .4byte 0x0000ffff\n\
+_08012AF8: .4byte gBattleCommunication\n\
+_08012AFC:\n\
+ bl TrySetCantSelectMoveBattleScript\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _08012B48\n\
+ ldr r0, _08012B38 @ =gBattleCommunication\n\
+ ldrb r1, [r5]\n\
+ adds r1, r0\n\
+ movs r2, 0\n\
+ movs r0, 0x5\n\
+ strb r0, [r1]\n\
+ ldr r3, _08012B3C @ =gSharedMem\n\
+ ldrb r0, [r5]\n\
+ ldr r4, _08012B40 @ =0x00016060\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ strb r2, [r0]\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 9\n\
+ adds r1, r6, 0x1\n\
+ adds r0, r1\n\
+ strb r2, [r0]\n\
+ ldrb r0, [r5]\n\
+ ldr r1, _08012B44 @ =0x00016094\n\
+ adds r0, r1\n\
+ adds r0, r3\n\
+ movs r1, 0x1\n\
+ strb r1, [r0]\n\
+ b _08012F90\n\
+ .align 2, 0\n\
+_08012B38: .4byte gBattleCommunication\n\
+_08012B3C: .4byte gSharedMem\n\
+_08012B40: .4byte 0x00016060\n\
+_08012B44: .4byte 0x00016094\n\
+_08012B48:\n\
+ ldr r6, _08012B98 @ =gSharedMem\n\
+ mov r2, r8\n\
+ ldrb r0, [r2]\n\
+ ldr r2, _08012B9C @ =0x0001608c\n\
+ adds r1, r0, r2\n\
+ adds r1, r6\n\
+ lsls r0, 9\n\
+ adds r0, r7\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r0, _08012BA0 @ =gChosenMovesByBanks\n\
+ mov r4, r8\n\
+ ldrb r3, [r4]\n\
+ lsls r5, r3, 1\n\
+ adds r5, r0\n\
+ ldr r4, _08012BA4 @ =gBattleMons\n\
+ adds r2, r3, r2\n\
+ adds r2, r6\n\
+ ldrb r0, [r2]\n\
+ lsls r0, 1\n\
+ movs r1, 0x58\n\
+ muls r1, r3\n\
+ adds r0, r1\n\
+ adds r4, 0xC\n\
+ adds r0, r4\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r5]\n\
+ mov r1, r8\n\
+ ldrb r0, [r1]\n\
+ ldr r2, _08012BA8 @ =0x00016010\n\
+ adds r1, r0, r2\n\
+ adds r1, r6\n\
+ lsls r0, 9\n\
+ add r0, r9\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r0, _08012BAC @ =gBattleCommunication\n\
+ mov r3, r8\n\
+ ldrb r1, [r3]\n\
+ b _08012E3C\n\
+ .align 2, 0\n\
+_08012B98: .4byte gSharedMem\n\
+_08012B9C: .4byte 0x0001608c\n\
+_08012BA0: .4byte gChosenMovesByBanks\n\
+_08012BA4: .4byte gBattleMons\n\
+_08012BA8: .4byte 0x00016010\n\
+_08012BAC: .4byte gBattleCommunication\n\
+_08012BB0:\n\
+ ldr r2, _08012BD8 @ =gBattleBufferB\n\
+ ldr r5, _08012BDC @ =gActiveBank\n\
+ ldrb r4, [r5]\n\
+ lsls r1, r4, 9\n\
+ adds r0, r2, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r3, [r0]\n\
+ adds r2, 0x2\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r3, r0\n\
+ cmp r3, 0\n\
+ bne _08012BCE\n\
+ b _08012F60\n\
+_08012BCE:\n\
+ ldr r0, _08012BE0 @ =gLastUsedItem\n\
+ strh r3, [r0]\n\
+ ldr r0, _08012BE4 @ =gBattleCommunication\n\
+ ldrb r1, [r5]\n\
+ b _08012E3C\n\
+ .align 2, 0\n\
+_08012BD8: .4byte gBattleBufferB\n\
+_08012BDC: .4byte gActiveBank\n\
+_08012BE0: .4byte gLastUsedItem\n\
+_08012BE4: .4byte gBattleCommunication\n\
+_08012BE8:\n\
+ ldr r4, _08012C04 @ =gBattleBufferB\n\
+ ldr r7, _08012C08 @ =gActiveBank\n\
+ ldrb r2, [r7]\n\
+ lsls r0, r2, 9\n\
+ adds r1, r4, 0x1\n\
+ adds r0, r1\n\
+ ldrb r1, [r0]\n\
+ cmp r1, 0x6\n\
+ bne _08012C10\n\
+ ldr r0, _08012C0C @ =gBattleCommunication\n\
+ adds r0, r2, r0\n\
+_08012BFE:\n\
+ movs r1, 0\n\
+ strb r1, [r0]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012C04: .4byte gBattleBufferB\n\
+_08012C08: .4byte gActiveBank\n\
+_08012C0C: .4byte gBattleCommunication\n\
+_08012C10:\n\
+ ldr r0, _08012CC4 @ =gSharedMem\n\
+ mov r12, r0\n\
+ ldr r3, _08012CC8 @ =0x00016068\n\
+ adds r0, r2, r3\n\
+ add r0, r12\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012CCC @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08012CBE\n\
+ ldrb r0, [r7]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ ldr r5, _08012CD0 @ =0x0001606c\n\
+ adds r1, r5\n\
+ add r1, r12\n\
+ ldrb r2, [r1]\n\
+ movs r0, 0xF\n\
+ ands r0, r2\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ lsls r2, r0, 1\n\
+ adds r2, r0\n\
+ adds r2, r5\n\
+ add r2, r12\n\
+ lsls r0, 9\n\
+ adds r6, r4, 0x2\n\
+ adds r0, r6\n\
+ ldrb r1, [r0]\n\
+ movs r3, 0xF0\n\
+ adds r0, r3, 0\n\
+ ands r0, r1\n\
+ ldrb r1, [r2]\n\
+ orrs r0, r1\n\
+ strb r0, [r2]\n\
+ ldrb r0, [r7]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ ldr r2, _08012CD4 @ =0x0001606d\n\
+ adds r1, r2\n\
+ add r1, r12\n\
+ lsls r0, 9\n\
+ adds r4, 0x3\n\
+ mov r8, r4\n\
+ add r0, r8\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ movs r4, 0x2\n\
+ eors r0, r4\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ adds r1, r5\n\
+ add r1, r12\n\
+ ldrb r2, [r1]\n\
+ adds r0, r3, 0\n\
+ ands r0, r2\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r7]\n\
+ eors r0, r4\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ adds r1, r5\n\
+ add r1, r12\n\
+ ldrb r0, [r7]\n\
+ lsls r0, 9\n\
+ adds r0, r6\n\
+ ldrb r0, [r0]\n\
+ ands r3, r0\n\
+ lsrs r3, 4\n\
+ ldrb r0, [r1]\n\
+ orrs r3, r0\n\
+ strb r3, [r1]\n\
+ ldrb r0, [r7]\n\
+ eors r4, r0\n\
+ lsls r1, r4, 1\n\
+ adds r1, r4\n\
+ ldr r3, _08012CD8 @ =0x0001606e\n\
+ adds r1, r3\n\
+ add r1, r12\n\
+ ldrb r0, [r7]\n\
+ lsls r0, 9\n\
+ add r0, r8\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+_08012CBE:\n\
+ ldr r0, _08012CDC @ =gBattleCommunication\n\
+ ldrb r1, [r7]\n\
+ b _08012E3C\n\
+ .align 2, 0\n\
+_08012CC4: .4byte gSharedMem\n\
+_08012CC8: .4byte 0x00016068\n\
+_08012CCC: .4byte gBattleTypeFlags\n\
+_08012CD0: .4byte 0x0001606c\n\
+_08012CD4: .4byte 0x0001606d\n\
+_08012CD8: .4byte 0x0001606e\n\
+_08012CDC: .4byte gBattleCommunication\n\
+_08012CE0:\n\
+ ldr r2, _08012CF8 @ =gHitMarker\n\
+ ldr r0, [r2]\n\
+ movs r1, 0x80\n\
+ lsls r1, 8\n\
+ orrs r0, r1\n\
+ str r0, [r2]\n\
+ ldr r2, _08012CFC @ =gBattleCommunication\n\
+ ldr r0, _08012D00 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012CF8: .4byte gHitMarker\n\
+_08012CFC: .4byte gBattleCommunication\n\
+_08012D00: .4byte gActiveBank\n\
+_08012D04:\n\
+ ldr r2, _08012D10 @ =gBattleCommunication\n\
+ ldr r0, _08012D14 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D10: .4byte gBattleCommunication\n\
+_08012D14: .4byte gActiveBank\n\
+_08012D18:\n\
+ ldr r2, _08012D24 @ =gBattleCommunication\n\
+ ldr r0, _08012D28 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D24: .4byte gBattleCommunication\n\
+_08012D28: .4byte gActiveBank\n\
+_08012D2C:\n\
+ ldr r2, _08012D50 @ =gBattleBufferB\n\
+ ldr r0, _08012D54 @ =gActiveBank\n\
+ ldrb r4, [r0]\n\
+ lsls r1, r4, 9\n\
+ adds r0, r2, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r3, [r0]\n\
+ adds r2, 0x2\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r3, r0\n\
+ cmp r3, 0\n\
+ bne _08012D4A\n\
+ b _08012F60\n\
+_08012D4A:\n\
+ ldr r1, _08012D58 @ =gBattleCommunication\n\
+ adds r1, r4, r1\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D50: .4byte gBattleBufferB\n\
+_08012D54: .4byte gActiveBank\n\
+_08012D58: .4byte gBattleCommunication\n\
+_08012D5C:\n\
+ ldr r2, _08012D68 @ =gBattleCommunication\n\
+ ldr r0, _08012D6C @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D68: .4byte gBattleCommunication\n\
+_08012D6C: .4byte gActiveBank\n\
+_08012D70:\n\
+ ldr r2, _08012D88 @ =gHitMarker\n\
+ ldr r0, [r2]\n\
+ movs r1, 0x80\n\
+ lsls r1, 8\n\
+ orrs r0, r1\n\
+ str r0, [r2]\n\
+ ldr r2, _08012D8C @ =gBattleCommunication\n\
+ ldr r0, _08012D90 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012D88: .4byte gHitMarker\n\
+_08012D8C: .4byte gBattleCommunication\n\
+_08012D90: .4byte gActiveBank\n\
+_08012D94:\n\
+ ldr r2, _08012DA0 @ =gBattleCommunication\n\
+ ldr r0, _08012DA4 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, r2\n\
+ b _08012E3E\n\
+ .align 2, 0\n\
+_08012DA0: .4byte gBattleCommunication\n\
+_08012DA4: .4byte gActiveBank\n\
+_08012DA8:\n\
+ ldr r3, _08012E10 @ =gBattleExecBuffer\n\
+ ldr r4, _08012E14 @ =gBitTable\n\
+ ldr r0, _08012E18 @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ adds r0, r4\n\
+ ldr r2, [r0]\n\
+ lsls r1, r2, 4\n\
+ movs r0, 0xF0\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ orrs r1, r2\n\
+ lsls r0, r2, 8\n\
+ orrs r1, r0\n\
+ lsls r2, 12\n\
+ orrs r1, r2\n\
+ ldr r0, [r3]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08012DD2\n\
+ b _08012F66\n\
+_08012DD2:\n\
+ ldr r0, _08012E1C @ =gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x41\n\
+ ands r0, r1\n\
+ cmp r0, 0x1\n\
+ bne _08012E06\n\
+ movs r1, 0x2\n\
+ movs r0, 0x2\n\
+ ands r0, r5\n\
+ cmp r0, 0\n\
+ bne _08012E06\n\
+ adds r0, r5, 0\n\
+ eors r0, r1\n\
+ bl GetBankByIdentity\n\
+ ldr r1, _08012E20 @ =gSharedMem\n\
+ ldr r2, _08012E24 @ =0x000160a6\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ lsls r0, 24\n\
+ lsrs r0, 22\n\
+ adds r0, r4\n\
+ ldr r0, [r0]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08012E28\n\
+_08012E06:\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+ bl EmitLinkStandbyMsg\n\
+ b _08012E30\n\
+ .align 2, 0\n\
+_08012E10: .4byte gBattleExecBuffer\n\
+_08012E14: .4byte gBitTable\n\
+_08012E18: .4byte gActiveBank\n\
+_08012E1C: .4byte gBattleTypeFlags\n\
+_08012E20: .4byte gSharedMem\n\
+_08012E24: .4byte 0x000160a6\n\
+_08012E28:\n\
+ movs r0, 0\n\
+ movs r1, 0x1\n\
+ bl EmitLinkStandbyMsg\n\
+_08012E30:\n\
+ ldr r4, _08012E48 @ =gActiveBank\n\
+_08012E32:\n\
+ ldrb r0, [r4]\n\
+ bl MarkBufferBankForExecution\n\
+ ldr r0, _08012E4C @ =gBattleCommunication\n\
+ ldrb r1, [r4]\n\
+_08012E3C:\n\
+ adds r1, r0\n\
+_08012E3E:\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012E48: .4byte gActiveBank\n\
+_08012E4C: .4byte gBattleCommunication\n\
+_08012E50:\n\
+ ldr r3, _08012E84 @ =gBattleExecBuffer\n\
+ ldr r1, _08012E88 @ =gBitTable\n\
+ ldr r0, _08012E8C @ =gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r1, r2, 4\n\
+ movs r0, 0xF0\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ orrs r1, r2\n\
+ lsls r0, r2, 8\n\
+ orrs r1, r0\n\
+ lsls r2, 12\n\
+ orrs r1, r2\n\
+ ldr r0, [r3]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012F66\n\
+ ldr r1, _08012E90 @ =gBattleCommunication\n\
+ ldrb r0, [r1, 0x4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1, 0x4]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012E84: .4byte gBattleExecBuffer\n\
+_08012E88: .4byte gBitTable\n\
+_08012E8C: .4byte gActiveBank\n\
+_08012E90: .4byte gBattleCommunication\n\
+_08012E94:\n\
+ ldr r2, _08012EB8 @ =gSharedMem\n\
+ ldr r5, _08012EBC @ =gActiveBank\n\
+ ldrb r1, [r5]\n\
+ ldr r3, _08012EC0 @ =0x00016060\n\
+ adds r0, r1, r3\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _08012ECC\n\
+ ldr r0, _08012EC4 @ =gBattleCommunication\n\
+ adds r0, r1, r0\n\
+ ldr r4, _08012EC8 @ =0x00016094\n\
+ adds r1, r4\n\
+ adds r1, r2\n\
+ ldrb r1, [r1]\n\
+ strb r1, [r0]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012EB8: .4byte gSharedMem\n\
+_08012EBC: .4byte gActiveBank\n\
+_08012EC0: .4byte 0x00016060\n\
+_08012EC4: .4byte gBattleCommunication\n\
+_08012EC8: .4byte 0x00016094\n\
+_08012ECC:\n\
+ ldr r0, _08012F20 @ =gBankAttacker\n\
+ strb r1, [r0]\n\
+ ldr r7, _08012F24 @ =gBattlescriptCurrInstr\n\
+ ldr r6, _08012F28 @ =gUnknown_02024C1C\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldr r4, [r0]\n\
+ str r4, [r7]\n\
+ ldr r3, _08012F2C @ =gBattleExecBuffer\n\
+ ldr r1, _08012F30 @ =gBitTable\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r1, r2, 4\n\
+ movs r0, 0xF0\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ orrs r1, r2\n\
+ lsls r0, r2, 8\n\
+ orrs r1, r0\n\
+ lsls r2, 12\n\
+ orrs r1, r2\n\
+ ldr r0, [r3]\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _08012F12\n\
+ ldr r0, _08012F34 @ =gBattleScriptingCommandsTable\n\
+ ldrb r1, [r4]\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldr r0, [r1]\n\
+ bl _call_via_r0\n\
+_08012F12:\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldr r1, [r7]\n\
+ str r1, [r0]\n\
+ b _08012F66\n\
+ .align 2, 0\n\
+_08012F20: .4byte gBankAttacker\n\
+_08012F24: .4byte gBattlescriptCurrInstr\n\
+_08012F28: .4byte gUnknown_02024C1C\n\
+_08012F2C: .4byte gBattleExecBuffer\n\
+_08012F30: .4byte gBitTable\n\
+_08012F34: .4byte gBattleScriptingCommandsTable\n\
+_08012F38:\n\
+ ldr r3, _08012FA0 @ =gBattleExecBuffer\n\
+ ldr r1, _08012FA4 @ =gBitTable\n\
+ ldr r0, _08012FA8 @ =gActiveBank\n\
+ ldrb r4, [r0]\n\
+ lsls r0, r4, 2\n\
+ adds r0, r1\n\
+ ldr r2, [r0]\n\
+ lsls r0, r2, 4\n\
+ movs r1, 0xF0\n\
+ lsls r1, 24\n\
+ orrs r0, r1\n\
+ orrs r0, r2\n\
+ lsls r1, r2, 8\n\
+ orrs r0, r1\n\
+ lsls r2, 12\n\
+ orrs r0, r2\n\
+ ldr r3, [r3]\n\
+ ands r3, r0\n\
+ cmp r3, 0\n\
+ bne _08012F66\n\
+_08012F60:\n\
+ ldr r0, _08012FAC @ =gBattleCommunication\n\
+ adds r0, r4, r0\n\
+ strb r3, [r0]\n\
+_08012F66:\n\
+ ldr r0, _08012FA8 @ =gActiveBank\n\
+ ldrb r1, [r0]\n\
+ adds r1, 0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, _08012FB0 @ =gNoOfAllBanks\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+_08012F74:\n\
+ adds r2, r0, 0\n\
+ ldrb r0, [r2]\n\
+ cmp r1, r0\n\
+ bcs _08012F80\n\
+ bl _0801234C\n\
+_08012F80:\n\
+ ldr r0, _08012FAC @ =gBattleCommunication\n\
+ ldrb r0, [r0, 0x4]\n\
+ ldrb r2, [r2]\n\
+ cmp r0, r2\n\
+ bne _08012F90\n\
+ ldr r1, _08012FB4 @ =gBattleMainFunc\n\
+ ldr r0, _08012FB8 @ =SetActionsAndBanksTurnOrder\n\
+ str r0, [r1]\n\
+_08012F90:\n\
+ add sp, 0x1C\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\
+ .align 2, 0\n\
+_08012FA0: .4byte gBattleExecBuffer\n\
+_08012FA4: .4byte gBitTable\n\
+_08012FA8: .4byte gActiveBank\n\
+_08012FAC: .4byte gBattleCommunication\n\
+_08012FB0: .4byte gNoOfAllBanks\n\
+_08012FB4: .4byte gBattleMainFunc\n\
+_08012FB8: .4byte SetActionsAndBanksTurnOrder\n\
+ .syntax divided\n");
+}
+
+void SwapTurnOrder(u8 a, u8 b)
+{
+ int temp;
+
+ temp = gActionsByTurnOrder[a];
+ gActionsByTurnOrder[a] = gActionsByTurnOrder[b];
+ gActionsByTurnOrder[b] = temp;
+
+ temp = gBanksByTurnOrder[a];
+ gBanksByTurnOrder[a] = gBanksByTurnOrder[b];
+ gBanksByTurnOrder[b] = temp;
+}
+
+// Determines which of the two given mons will strike first in a battle.
+// Returns:
+// 0 = first mon moves first
+// 1 = second mon moves first
+// 2 = second mon moves first because it won a 50/50 roll
+u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities)
+{
+ int bank1SpeedMultiplier, bank2SpeedMultiplier;
+ u32 bank1AdjustedSpeed, bank2AdjustedSpeed;
+ u8 heldItemEffect;
+ u8 heldItemEffectParam;
+ u16 bank1Move;
+ u16 bank2Move;
+ u8 strikesFirst = 0;
+
+ // Check for abilities that boost speed in weather.
+ if (WEATHER_HAS_EFFECT)
+ {
+ if ((gBattleMons[bank1].ability == ABILITY_SWIFT_SWIM && (gBattleWeather & WEATHER_RAIN_ANY))
+ || (gBattleMons[bank1].ability == ABILITY_CHLOROPHYLL && (gBattleWeather & WEATHER_SUN_ANY)))
+ bank1SpeedMultiplier = 2;
+ else
+ bank1SpeedMultiplier = 1;
+
+ if ((gBattleMons[bank2].ability == ABILITY_SWIFT_SWIM && (gBattleWeather & WEATHER_RAIN_ANY))
+ || (gBattleMons[bank2].ability == ABILITY_CHLOROPHYLL && (gBattleWeather & WEATHER_SUN_ANY)))
+ bank2SpeedMultiplier = 2;
+ else
+ bank2SpeedMultiplier = 1;
+ }
+ else
+ {
+ bank1SpeedMultiplier = 1;
+ bank2SpeedMultiplier = 1;
+ }
+
+ // Calculate adjusted speed for first mon.
+ bank1AdjustedSpeed = (gBattleMons[bank1].speed * bank1SpeedMultiplier)
+ * gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][0] / gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][1];
+
+ if (gBattleMons[bank1].item == ITEM_ENIGMA_BERRY)
+ {
+ heldItemEffect = gEnigmaBerries[bank1].holdEffect;
+ heldItemEffectParam = gEnigmaBerries[bank1].holdEffectParam;
+ }
+ else
+ {
+ heldItemEffect = ItemId_GetHoldEffect(gBattleMons[bank1].item);
+ heldItemEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank1].item);
+ }
+
+ // Only give badge speed boost to the player's mon.
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank1) == 0)
+ bank1AdjustedSpeed = (bank1AdjustedSpeed * 110) / 100;
+
+ if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE)
+ bank1AdjustedSpeed /= 2;
+
+ if (gBattleMons[bank1].status1 & STATUS_PARALYSIS)
+ bank1AdjustedSpeed /= 4;
+
+ if (heldItemEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (heldItemEffectParam * 0xFFFF) / 100)
+ bank1AdjustedSpeed = UINT_MAX;
+
+ // Calculate adjusted speed for second mon.
+ bank2AdjustedSpeed = gBattleMons[bank2].speed * bank2SpeedMultiplier
+ * gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][0] / gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][1];
+
+ if (gBattleMons[bank2].item == ITEM_ENIGMA_BERRY)
+ {
+ heldItemEffect = gEnigmaBerries[bank2].holdEffect;
+ heldItemEffectParam = gEnigmaBerries[bank2].holdEffectParam;
+ }
+ else
+ {
+ heldItemEffect = ItemId_GetHoldEffect(gBattleMons[bank2].item);
+ heldItemEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank2].item);
+ }
+
+ // Only give badge speed boost to the player's mon.
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank2) == 0)
+ {
+ bank2AdjustedSpeed = (bank2AdjustedSpeed * 110) / 100;
+ }
+
+ if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE)
+ bank2AdjustedSpeed /= 2;
+
+ if (gBattleMons[bank2].status1 & STATUS_PARALYSIS)
+ bank2AdjustedSpeed /= 4;
+
+ if (heldItemEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (heldItemEffectParam * 0xFFFF) / 100)
+ bank2AdjustedSpeed = UINT_MAX;
+
+ if (ignoreMovePriorities)
+ {
+ bank1Move = MOVE_NONE;
+ bank2Move = MOVE_NONE;
+ }
+ else
+ {
+ if (gActionForBanks[bank1] == 0)
+ {
+ if (gProtectStructs[bank1].onlyStruggle)
+ bank1Move = MOVE_STRUGGLE;
+ else
+ bank1Move = gBattleMons[bank1].moves[ewram1608Carr(bank1)];
+ }
+ else
+ bank1Move = MOVE_NONE;
+
+ if (gActionForBanks[bank2] == 0)
+ {
+ if (gProtectStructs[bank2].onlyStruggle)
+ bank2Move = MOVE_STRUGGLE;
+ else
+ bank2Move = gBattleMons[bank2].moves[ewram1608Carr(bank2)];
+ }
+ else
+ bank2Move = MOVE_NONE;
+ }
+
+ if (gBattleMoves[bank1Move].priority != 0 || gBattleMoves[bank2Move].priority != 0)
+ {
+ if (gBattleMoves[bank1Move].priority == gBattleMoves[bank2Move].priority)
+ {
+ if (bank1AdjustedSpeed == bank2AdjustedSpeed && (Random() & 1))
+ strikesFirst = 2;
+ else if (bank1AdjustedSpeed < bank2AdjustedSpeed)
+ strikesFirst = 1;
+ }
+ else if (gBattleMoves[bank1Move].priority < gBattleMoves[bank2Move].priority)
+ strikesFirst = 1;
+ }
+ else
+ {
+ if (bank1AdjustedSpeed == bank2AdjustedSpeed && (Random() & 1))
+ strikesFirst = 2;
+ else if (bank1AdjustedSpeed < bank2AdjustedSpeed)
+ strikesFirst = 1;
+ }
+
+ return strikesFirst;
+}
+
+// The debug version should be identical, but has a strange register swap, and
+// seems to be affected by other functions, which is bizarre.
+#if DEBUG
+__attribute__((naked))
+void SetActionsAndBanksTurnOrder(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ mov r3, #0x0\n\
+ ldr r0, ._L1550\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._L1499 @cond_branch\n\
+ ldr r0, ._L1550+0x4\n\
+ strb r3, [r0]\n\
+ ldr r4, ._L1550+0x8\n\
+ mov r8, r0\n\
+ ldrb r0, [r4]\n\
+ cmp r3, r0\n\
+ bcc ._LCB12758\n\
+ b ._L1505 @long jump\n\
+._LCB12758:\n\
+ ldr r7, ._L1550+0xc\n\
+ ldr r6, ._L1550+0x10\n\
+ mov r2, r8\n\
+ ldr r5, ._L1550+0x14\n\
+._L1503:\n\
+ add r1, r3, r7\n\
+ ldrb r0, [r2]\n\
+ add r0, r0, r6\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ add r1, r3, r5\n\
+ ldrb r0, [r2]\n\
+ strb r0, [r1]\n\
+ add r3, r3, #0x1\n\
+ ldrb r0, [r2]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r2]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldrb r1, [r4]\n\
+ cmp r0, r1\n\
+ bcc ._L1503 @cond_branch\n\
+ b ._L1505\n\
+._L1551:\n\
+ .align 2, 0\n\
+._L1550:\n\
+ .word gBattleTypeFlags\n\
+ .word gActiveBank\n\
+ .word gNoOfAllBanks\n\
+ .word gActionsByTurnOrder\n\
+ .word gActionForBanks\n\
+ .word gBanksByTurnOrder\n\
+._L1499:\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._L1506 @cond_branch\n\
+ ldr r0, ._L1552\n\
+ strb r3, [r0]\n\
+ ldr r1, ._L1552+0x4\n\
+ mov r8, r0\n\
+ add r2, r1, #0\n\
+ ldrb r2, [r2]\n\
+ cmp r3, r2\n\
+ bcs ._L1513 @cond_branch\n\
+ ldr r0, ._L1552+0x8\n\
+ ldrb r1, [r0]\n\
+ add r4, r0, #0\n\
+ cmp r1, #0x3\n\
+ beq ._L1548 @cond_branch\n\
+._L1509:\n\
+ mov r7, r8\n\
+ ldrb r0, [r7]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r7]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r1, ._L1552+0x4\n\
+ ldrb r1, [r1]\n\
+ cmp r0, r1\n\
+ bcs ._L1513 @cond_branch\n\
+ ldrb r0, [r7]\n\
+ add r0, r0, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x3\n\
+ bne ._L1509 @cond_branch\n\
+ b ._L1548\n\
+._L1553:\n\
+ .align 2, 0\n\
+._L1552:\n\
+ .word gActiveBank\n\
+ .word gNoOfAllBanks\n\
+ .word gActionForBanks\n\
+._L1506:\n\
+ ldr r0, ._L1554\n\
+ ldrb r0, [r0]\n\
+ ldr r2, ._L1554+0x4\n\
+ mov r8, r2\n\
+ cmp r0, #0x3\n\
+ bne ._L1513 @cond_branch\n\
+ strb r3, [r2]\n\
+._L1548:\n\
+ mov r3, #0x5\n\
+._L1513:\n\
+ cmp r3, #0x5\n\
+ bne ._L1515 @cond_branch\n\
+ ldr r6, ._L1554+0x8\n\
+ ldr r1, ._L1554\n\
+ mov r3, r8\n\
+ ldrb r0, [r3]\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r6]\n\
+ ldr r2, ._L1554+0xc\n\
+ ldrb r0, [r3]\n\
+ strb r0, [r2]\n\
+ mov r3, #0x1\n\
+ mov r5, #0x0\n\
+ add r4, r1, #0\n\
+ ldr r7, ._L1554+0x10\n\
+ mov r9, r7\n\
+ ldr r0, ._L1554+0x14\n\
+ mov ip, r0\n\
+ ldr r1, ._L1554+0x18\n\
+ mov sl, r1\n\
+ ldr r7, ._L1554+0x1c\n\
+ ldrb r7, [r7]\n\
+ cmp r5, r7\n\
+ bge ._L1517 @cond_branch\n\
+ add r7, r6, #0\n\
+ add r6, r4, #0\n\
+ add r4, r2, #0\n\
+ ldr r2, ._L1554+0x1c\n\
+._L1519:\n\
+ mov r0, r8\n\
+ ldrb r0, [r0]\n\
+ cmp r5, r0\n\
+ beq ._L1518 @cond_branch\n\
+ add r1, r3, r7\n\
+ add r0, r5, r6\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r1]\n\
+ add r0, r3, r4\n\
+ strb r5, [r0]\n\
+ add r3, r3, #0x1\n\
+._L1518:\n\
+ add r5, r5, #0x1\n\
+ ldrb r1, [r2]\n\
+ cmp r5, r1\n\
+ blt ._L1519 @cond_branch\n\
+._L1517:\n\
+ mov r2, ip\n\
+ mov r3, r9\n\
+ str r2, [r3]\n\
+ ldr r1, ._L1554+0x20\n\
+ add r1, r1, sl\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ b ._L1498\n\
+._L1555:\n\
+ .align 2, 0\n\
+._L1554:\n\
+ .word gActionForBanks\n\
+ .word gActiveBank\n\
+ .word gActionsByTurnOrder\n\
+ .word gBanksByTurnOrder\n\
+ .word gBattleMainFunc\n\
+ .word CheckFocusPunch_ClearVarsBeforeTurnStarts\n\
+ .word gSharedMem\n\
+ .word gNoOfAllBanks\n\
+ .word 0x1601d\n\
+._L1515:\n\
+ mov r0, #0x0\n\
+ mov r7, r8\n\
+ strb r0, [r7]\n\
+ ldr r1, ._L1556\n\
+ ldrb r0, [r1]\n\
+ cmp r0, #0\n\
+ beq ._L1524 @cond_branch\n\
+ ldr r6, ._L1556+0x4\n\
+ mov r2, r8\n\
+ ldr r5, ._L1556+0x8\n\
+ ldr r4, ._L1556+0xc\n\
+._L1526:\n\
+ ldrb r0, [r2]\n\
+ add r0, r0, r6\n\
+ ldrb r1, [r0]\n\
+ sub r0, r1, #0x1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bhi ._L1525 @cond_branch\n\
+ add r0, r3, r5\n\
+ strb r1, [r0]\n\
+ add r1, r3, r4\n\
+ mov r7, r8\n\
+ ldrb r0, [r7]\n\
+ strb r0, [r1]\n\
+ add r3, r3, #0x1\n\
+._L1525:\n\
+ ldrb r0, [r2]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r2]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r1, ._L1556\n\
+ ldrb r1, [r1]\n\
+ cmp r0, r1\n\
+ bcc ._L1526 @cond_branch\n\
+._L1524:\n\
+ mov r0, #0x0\n\
+ mov r2, r8\n\
+ strb r0, [r2]\n\
+ ldr r7, ._L1556\n\
+ ldrb r0, [r7]\n\
+ cmp r0, #0\n\
+ beq ._L1530 @cond_branch\n\
+ ldr r6, ._L1556+0x4\n\
+ ldr r5, ._L1556+0x8\n\
+ ldr r4, ._L1556+0xc\n\
+._L1532:\n\
+ ldrb r0, [r2]\n\
+ add r0, r0, r6\n\
+ ldrb r1, [r0]\n\
+ sub r0, r1, #0x1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bls ._L1531 @cond_branch\n\
+ add r0, r3, r5\n\
+ strb r1, [r0]\n\
+ add r1, r3, r4\n\
+ mov r7, r8\n\
+ ldrb r0, [r7]\n\
+ strb r0, [r1]\n\
+ add r3, r3, #0x1\n\
+._L1531:\n\
+ ldrb r0, [r2]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r2]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r1, ._L1556\n\
+ ldrb r1, [r1]\n\
+ cmp r0, r1\n\
+ bcc ._L1532 @cond_branch\n\
+._L1530:\n\
+ mov r5, #0x0\n\
+ b ._L1549\n\
+._L1557:\n\
+ .align 2, 0\n\
+._L1556:\n\
+ .word gNoOfAllBanks\n\
+ .word gActionForBanks\n\
+ .word gActionsByTurnOrder\n\
+ .word gBanksByTurnOrder\n\
+._L1538:\n\
+ add r4, r5, #0x1\n\
+ add r7, r4, #0\n\
+ ldrb r1, [r1]\n\
+ cmp r7, r1\n\
+ bge ._L1537 @cond_branch\n\
+ ldr r6, ._L1558\n\
+ lsl r2, r5, #0x18\n\
+ mov r8, r2\n\
+._L1542:\n\
+ ldr r0, ._L1558+0x4\n\
+ add r1, r5, r0\n\
+ ldrb r3, [r1]\n\
+ add r0, r4, r0\n\
+ ldrb r1, [r0]\n\
+ add r0, r5, r6\n\
+ ldrb r2, [r0]\n\
+ cmp r2, #0x1\n\
+ beq ._L1541 @cond_branch\n\
+ add r0, r4, r6\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ beq ._L1541 @cond_branch\n\
+ cmp r2, #0x2\n\
+ beq ._L1541 @cond_branch\n\
+ cmp r0, #0x2\n\
+ beq ._L1541 @cond_branch\n\
+ add r0, r3, #0\n\
+ mov r2, #0x0\n\
+ bl GetWhoStrikesFirst\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._L1541 @cond_branch\n\
+ lsl r1, r4, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ mov r3, r8\n\
+ lsr r0, r3, #0x18\n\
+ bl SwapTurnOrder\n\
+._L1541:\n\
+ add r4, r4, #0x1\n\
+ ldr r0, ._L1558+0x8\n\
+ ldrb r0, [r0]\n\
+ cmp r4, r0\n\
+ blt ._L1542 @cond_branch\n\
+._L1537:\n\
+ add r5, r7, #0\n\
+._L1549:\n\
+ ldr r1, ._L1558+0x8\n\
+ ldrb r0, [r1]\n\
+ sub r0, r0, #0x1\n\
+ cmp r5, r0\n\
+ blt ._L1538 @cond_branch\n\
+._L1505:\n\
+ ldr r1, ._L1558+0xc\n\
+ ldr r0, ._L1558+0x10\n\
+ str r0, [r1]\n\
+ ldr r0, ._L1558+0x14\n\
+ ldr r7, ._L1558+0x18\n\
+ add r0, r0, r7\n\
+ mov r1, #0x0\n\
+ strb r1, [r0]\n\
+._L1498:\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._L1559:\n\
+ .align 2, 0\n\
+._L1558:\n\
+ .word gActionsByTurnOrder\n\
+ .word gBanksByTurnOrder\n\
+ .word gNoOfAllBanks\n\
+ .word gBattleMainFunc\n\
+ .word CheckFocusPunch_ClearVarsBeforeTurnStarts\n\
+ .word gSharedMem\n\
+ .word 0x1601d");
+}
+#else
+void SetActionsAndBanksTurnOrder(void)
+{
+ s32 var = 0;
+ s32 i, j;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[var] = gActiveBank;
+ var++;
+ }
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ {
+ var = 5;
+ break;
+ }
+ }
+ }
+ else
+ {
+ if (gActionForBanks[0] == ACTION_RUN)
+ {
+ gActiveBank = 0;
+ var = 5;
+ }
+ }
+
+ if (var == 5)
+ {
+ gActionsByTurnOrder[0] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[0] = gActiveBank;
+ var = 1;
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (i != gActiveBank)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[i];
+ gBanksByTurnOrder[var] = i;
+ var++;
+ }
+ }
+ gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
+ eFocusPunchBank = 0;
+ return;
+ }
+ else
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[var] = gActiveBank;
+ var++;
+ }
+ }
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
+ gBanksByTurnOrder[var] = gActiveBank;
+ var++;
+ }
+ }
+ for (i = 0; i < gNoOfAllBanks - 1; i++)
+ {
+ for (j = i + 1; j < gNoOfAllBanks; j++)
+ {
+ u8 bank1 = gBanksByTurnOrder[i];
+ u8 bank2 = gBanksByTurnOrder[j];
+ if (gActionsByTurnOrder[i] != ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != ACTION_SWITCH
+ && gActionsByTurnOrder[j] != ACTION_SWITCH)
+ {
+ if (GetWhoStrikesFirst(bank1, bank2, FALSE))
+ SwapTurnOrder(i, j);
+ }
+ }
+ }
+ }
+ }
+
+ gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts;
+ eFocusPunchBank = 0;
+}
+#endif
+
+static void TurnValuesCleanUp(bool8 var0)
+{
+ s32 i;
+ u8 *dataPtr;
+
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (var0)
+ {
+ gProtectStructs[gActiveBank].protected = 0;
+ gProtectStructs[gActiveBank].endured = 0;
+ }
+ else
+ {
+ dataPtr = (u8*)(&gProtectStructs[gActiveBank]);
+ for (i = 0; i < sizeof(struct ProtectStruct); i++)
+ dataPtr[i] = 0;
+
+ if (gDisableStructs[gActiveBank].isFirstTurn)
+ gDisableStructs[gActiveBank].isFirstTurn--;
+
+ if (gDisableStructs[gActiveBank].rechargeCounter)
+ {
+ gDisableStructs[gActiveBank].rechargeCounter--;
+ if (gDisableStructs[gActiveBank].rechargeCounter == 0)
+ gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE);
+ }
+ }
+
+ if (gDisableStructs[gActiveBank].substituteHP == 0)
+ gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE);
+ }
+
+ gSideTimers[0].followmeTimer = 0;
+ gSideTimers[1].followmeTimer = 0;
+}
+
+void SpecialStatusesClear(void)
+{
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ s32 i;
+ u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]);
+
+ for (i = 0; i < sizeof(struct SpecialStatus); i++)
+ dataPtr[i] = 0;
+ }
+}
+
+void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
+{
+ if (!(gHitMarker & HITMARKER_RUN))
+ {
+ while (eFocusPunchBank < gNoOfAllBanks)
+ {
+ gActiveBank = gBankAttacker = eFocusPunchBank;
+ eFocusPunchBank++;
+ if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH
+ && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)
+ && !(gDisableStructs[gBankAttacker].truantCounter)
+ && !(gProtectStructs[gActiveBank].onlyStruggle))
+ {
+ BattleScriptExecute(BattleScript_FocusPunchSetUp);
+ return;
+ }
+ }
+ }
+
+ TryClearRageStatuses();
+ gCurrentTurnActionNumber = 0;
+ {
+ // something stupid needed to match
+ u8 zero;
+ gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)];
+ }
+
+ gDynamicBasePower = 0;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleMainFunc = RunTurnActionsFunctions;
+ gBattleCommunication[3] = 0;
+ gBattleCommunication[4] = 0;
+ eMultihitMoveEffect = 0;
+ ewram17130 = 0;
+}
+
+static void RunTurnActionsFunctions(void)
+{
+ if (gBattleOutcome != 0)
+ gCurrentActionFuncId = 12;
+
+ gBattleStruct->unk16057 = gCurrentTurnActionNumber;
+ gUnknown_081FA640[gCurrentActionFuncId]();
+
+ if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished
+ {
+ gHitMarker &= ~(HITMARKER_x100000);
+ gBattleMainFunc = gUnknown_081FA678[gBattleOutcome & 0x7F];
+ }
+ else
+ {
+ if (gBattleStruct->unk16057 != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank
+ {
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
+ }
+ }
+}
+
+void HandleEndTurn_BattleWon(void)
+{
+ gCurrentActionFuncId = 0;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTextBuff1[0] = gBattleOutcome;
+ gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
+ gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ }
+ else if (gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER))
+ {
+ gBattlescriptCurrInstr = gUnknown_081D8E0D;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ BattleStopLowHpSound();
+ gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon;
+
+ switch (gTrainers[gTrainerBattleOpponent].trainerClass)
+ {
+ case TRAINER_CLASS_ELITE_FOUR:
+ case TRAINER_CLASS_CHAMPION:
+ PlayBGM(BGM_KACHI5);
+ break;
+ case TRAINER_CLASS_TEAM_AQUA:
+ case TRAINER_CLASS_TEAM_MAGMA:
+ case TRAINER_CLASS_AQUA_ADMIN:
+ case TRAINER_CLASS_AQUA_LEADER:
+ case TRAINER_CLASS_MAGMA_ADMIN:
+ case TRAINER_CLASS_MAGMA_LEADER:
+ PlayBGM(BGM_KACHI4);
+ break;
+ case TRAINER_CLASS_LEADER:
+ PlayBGM(BGM_KACHI3);
+ break;
+ default:
+ PlayBGM(BGM_KACHI1);
+ break;
+ }
+ }
+ else
+ {
+ gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems;
+ }
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_BattleLost(void)
+{
+ gCurrentActionFuncId = 0;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleTextBuff1[0] = gBattleOutcome;
+ gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
+ gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ }
+ else
+ {
+ gBattlescriptCurrInstr = BattleScript_LocalBattleLost;
+ }
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_RanFromBattle(void)
+{
+ gCurrentActionFuncId = 0;
+
+ switch (gProtectStructs[gBankAttacker].fleeFlag)
+ {
+ default:
+ gBattlescriptCurrInstr = BattleScript_GotAwaySafely;
+ break;
+ case 1:
+ gBattlescriptCurrInstr = BattleScript_SmokeBallEscape;
+ break;
+ case 2:
+ gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility;
+ break;
+ }
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_MonFled(void)
+{
+ gCurrentActionFuncId = 0;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]);
+ gBattlescriptCurrInstr = BattleScript_WildMonFled;
+
+ gBattleMainFunc = HandleEndTurn_FinishBattle;
+}
+
+void HandleEndTurn_FinishBattle(void)
+{
+ if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC)
+ {
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
+ | BATTLE_TYPE_FIRST_BATTLE
+ | BATTLE_TYPE_SAFARI
+ | BATTLE_TYPE_EREADER_TRAINER
+ | BATTLE_TYPE_WALLY_TUTORIAL
+ | BATTLE_TYPE_BATTLE_TOWER)))
+ {
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ {
+ if (gBattleResults.poke1Species == SPECIES_NONE)
+ {
+ gBattleResults.poke1Species = gBattleMons[gActiveBank].species;
+ StringCopy(gBattleResults.pokeString1, gBattleMons[gActiveBank].nickname);
+ }
+ else
+ {
+ gBattleResults.opponentSpecies = gBattleMons[gActiveBank].species;
+ StringCopy(gBattleResults.pokeString2, gBattleMons[gActiveBank].nickname);
+ }
+ }
+ }
+ PutPokemonTodayCaughtOnAir();
+ }
+
+ BeginFastPaletteFade(3);
+ FadeOutMapMusic(5);
+ gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions;
+ gCB2_AfterEvolution = BattleMainCB2;
+ }
+ else
+ {
+ if (gBattleExecBuffer == 0)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ }
+}
+
+static void FreeResetData_ReturnToOvOrDoEvolutions(void)
+{
+ if (!gPaletteFade.active)
+ {
+ ResetSpriteData();
+ if (gLeveledUpInBattle == 0 || gBattleOutcome != BATTLE_WON)
+ {
+ gBattleMainFunc = ReturnFromBattleToOverworld;
+ return;
+ }
+ else
+ {
+ gBattleMainFunc = TryEvolvePokemon;
+ }
+ }
+}
+
+void TryEvolvePokemon(void)
+{
+ s32 i;
+
+ while (gLeveledUpInBattle != 0)
+ {
+ for (i = 0; i < 6; i++)
+ {
+ if (gLeveledUpInBattle & gBitTable[i])
+ {
+ u16 species;
+ u8 levelUpBits = gLeveledUpInBattle;
+
+ levelUpBits &= ~(gBitTable[i]);
+ gLeveledUpInBattle = levelUpBits;
+
+ species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits);
+ if (species != SPECIES_NONE)
+ {
+ gBattleMainFunc = WaitForEvoSceneToFinish;
+ EvolutionScene(&gPlayerParty[i], species, 0x81, i);
+ return;
+ }
+ }
+ }
+ }
+
+ gBattleMainFunc = ReturnFromBattleToOverworld;
+}
+
+static void WaitForEvoSceneToFinish(void)
+{
+ if (gMain.callback2 == BattleMainCB2)
+ gBattleMainFunc = TryEvolvePokemon;
+}
+
+static void ReturnFromBattleToOverworld(void)
+{
+ if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
+ {
+ RandomlyGivePartyPokerus(gPlayerParty);
+ PartySpreadPokerus(gPlayerParty);
+ }
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0)
+ return;
+
+ gSpecialVar_Result = gBattleOutcome;
+ gMain.inBattle = 0;
+ gMain.callback1 = gPreBattleCallback1;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
+ {
+ UpdateRoamerHPStatus(&gEnemyParty[0]);
+ if (gBattleOutcome == BATTLE_WON || gBattleOutcome == BATTLE_CAUGHT)
+ SetRoamerInactive();
+ }
+
+ m4aSongNumStop(0x5A);
+ SetMainCallback2(gMain.savedCallback);
+}
+
+void RunBattleScriptCommands_PopCallbacksStack(void)
+{
+ if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC)
+ {
+ if (B_FUNCTION_STACK->size != 0)
+ B_FUNCTION_STACK->size--;
+ gBattleMainFunc = B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size];
+ }
+ else
+ {
+ if (gBattleExecBuffer == 0)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+ }
+}
+
+void RunBattleScriptCommands(void)
+{
+ if (gBattleExecBuffer == 0)
+ gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
+}
+
+void HandleAction_UseMove(void)
+{
+ u8 side;
+ u8 var = 4;
+
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+
+ if (ewram160A6 & gBitTable[gBankAttacker])
+ {
+ gCurrentActionFuncId = ACTION_FINISHED;
+ return;
+ }
+
+ gCritMultiplier = 1;
+ eDmgMultiplier = 1;
+ ewram160E7 = 0;
+ gBattleMoveFlags = 0;
+ gMultiHitCounter = 0;
+ gBattleCommunication[6] = 0;
+ gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBankAttacker);
+
+ // choose move
+ if (gProtectStructs[gBankAttacker].onlyStruggle)
+ {
+ gProtectStructs[gBankAttacker].onlyStruggle = 0;
+ gCurrentMove = gChosenMove = MOVE_STRUGGLE;
+ gHitMarker |= HITMARKER_NO_PPDEDUCT;
+ ewram16010arr(gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0);
+ }
+ else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE)
+ {
+ gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker];
+ }
+ // encore forces you to use the same move
+ else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
+ {
+ gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove;
+ gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos;
+ ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ // check if the encored move wasn't overwritten
+ else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
+ {
+ gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos;
+ gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE;
+ gDisableStructs[gBankAttacker].encoredMovePos = 0;
+ gDisableStructs[gBankAttacker].encoreTimer1 = 0;
+ ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker])
+ {
+ gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ }
+ else
+ {
+ gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ }
+
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ gBattleResults.lastUsedMove = gCurrentMove;
+ else
+ gBattleResults.opponentMove = gCurrentMove;
+
+ // choose target
+ side = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ if (gSideTimers[side].followmeTimer != 0
+ && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
+ && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget)
+ && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
+ {
+ gBankTarget = gSideTimers[side].followmeTarget;
+ }
+ else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ && gSideTimers[side].followmeTimer == 0
+ && (gBattleMoves[gCurrentMove].power != 0
+ || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10)
+ && gBattleMons[ewram16010arr(gBankAttacker)].ability != ABILITY_LIGHTNING_ROD
+ && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ {
+ side = GetBankSide(gBankAttacker);
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (side != GetBankSide(gActiveBank)
+ && ewram16010arr(gBankAttacker) != gActiveBank
+ && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD
+ && BankGetTurnOrder(gActiveBank) < var)
+ {
+ var = BankGetTurnOrder(gActiveBank);
+ }
+ }
+ if (var == 4)
+ {
+ if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
+ {
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ }
+ else
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ }
+ }
+ else
+ {
+ gBankTarget = ewram16010arr(gBankAttacker);
+ }
+
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ {
+ if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ else
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE);
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ }
+ }
+ else
+ {
+ gActiveBank = gBanksByTurnOrder[var];
+ RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability);
+ gSpecialStatuses[gActiveBank].lightningRodRedirected = 1;
+ gBankTarget = gActiveBank;
+ }
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
+ && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
+ {
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ }
+ else
+ {
+ if (Random() & 1)
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ else
+ gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ }
+
+ if (gAbsentBankFlags & gBitTable[gBankTarget]
+ && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ }
+ else
+ {
+ gBankTarget = ewram16010arr(gBankAttacker);
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ {
+ if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ else
+ {
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE);
+ if (gAbsentBankFlags & gBitTable[gBankTarget])
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ }
+ }
+ }
+
+ gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_Switch(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gActionSelectionCursor[gBankAttacker] = 0;
+ gMoveSelectionCursor[gBankAttacker] = 0;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, ewram16064arr(gBankAttacker))
+
+ ewram16003 = gBankAttacker;
+ gBattlescriptCurrInstr = BattleScript_ActionSwitch;
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+
+ if (gBattleResults.unk2 < 255)
+ gBattleResults.unk2++;
+}
+
+#ifdef NONMATCHING
+void HandleAction_UseItem(void)
+{
+ gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gDisableStructs[gBankAttacker].furyCutterCounter = 0;
+ gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8);
+
+ if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem];
+ }
+ else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0];
+ }
+ else if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0];
+ }
+ else
+ {
+ ewram16003 = gBankAttacker;
+
+ switch (ewram160D8(gBankAttacker))
+ {
+ case AI_ITEM_FULL_RESTORE:
+ case AI_ITEM_HEAL_HP:
+ break;
+ case AI_ITEM_CURE_CONDITION:
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ if (ewram160DA(gBankAttacker) & 1)
+ {
+ if (ewram160DA(gBankAttacker) & 0x3E)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 5;
+ }
+ else
+ {
+ while (!(ewram160DA(gBankAttacker) & 1))
+ {
+ ewram160DA(gBankAttacker) /= 2;
+ gBattleCommunication[MULTISTRING_CHOOSER]++;
+ }
+ }
+ break;
+ case AI_ITEM_X_STAT:
+ gBattleCommunication[MULTISTRING_CHOOSER] = 4;
+ if (ewram160DA(gBankAttacker) & 0x80)
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 5;
+ }
+ else
+ {
+ PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK)
+ PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2)
+
+ while (!(ewram160DA(gBankAttacker) & 1))
+ {
+ ewram160DA(gBankAttacker) /= 2;
+ gBattleTextBuff1[2]++;
+ }
+
+ ewram160A4 = gBattleTextBuff1[2] + 14;
+ ewram160A5 = 0;
+ }
+ break;
+ case AI_ITEM_GUARD_SPECS:
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
+ else
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ break;
+ }
+
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[ewram160D8(gBankAttacker)];
+ }
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+#else
+__attribute__((naked))
+void HandleAction_UseItem(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ ldr r4, _08014804 @ =gBankAttacker\n\
+ ldr r2, _08014808 @ =gBankTarget\n\
+ ldr r1, _0801480C @ =gBanksByTurnOrder\n\
+ ldr r0, _08014810 @ =gCurrentTurnActionNumber\n\
+ ldrb r0, [r0]\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r2]\n\
+ strb r0, [r4]\n\
+ ldr r0, _08014814 @ =gBattle_BG0_X\n\
+ movs r2, 0\n\
+ strh r2, [r0]\n\
+ ldr r0, _08014818 @ =gBattle_BG0_Y\n\
+ strh r2, [r0]\n\
+ ldr r3, _0801481C @ =gDisableStructs\n\
+ ldrb r1, [r4]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r3\n\
+ strb r2, [r0, 0x10]\n\
+ ldr r5, _08014820 @ =gLastUsedItem\n\
+ ldr r2, _08014824 @ =gBattleBufferB\n\
+ ldrb r1, [r4]\n\
+ lsls r1, 9\n\
+ adds r0, r2, 0x1\n\
+ adds r0, r1, r0\n\
+ ldrb r3, [r0]\n\
+ adds r2, 0x2\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ lsls r0, 8\n\
+ orrs r3, r0\n\
+ strh r3, [r5]\n\
+ cmp r3, 0xC\n\
+ bhi _08014830\n\
+ ldr r2, _08014828 @ =gBattlescriptCurrInstr\n\
+ ldr r1, _0801482C @ =gBattlescriptsForBallThrow\n\
+ ldrh r0, [r5]\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ str r0, [r2]\n\
+ b _08014A8C\n\
+ .align 2, 0\n\
+_08014804: .4byte gBankAttacker\n\
+_08014808: .4byte gBankTarget\n\
+_0801480C: .4byte gBanksByTurnOrder\n\
+_08014810: .4byte gCurrentTurnActionNumber\n\
+_08014814: .4byte gBattle_BG0_X\n\
+_08014818: .4byte gBattle_BG0_Y\n\
+_0801481C: .4byte gDisableStructs\n\
+_08014820: .4byte gLastUsedItem\n\
+_08014824: .4byte gBattleBufferB\n\
+_08014828: .4byte gBattlescriptCurrInstr\n\
+_0801482C: .4byte gBattlescriptsForBallThrow\n\
+_08014830:\n\
+ adds r0, r3, 0\n\
+ subs r0, 0x50\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ cmp r0, 0x1\n\
+ bhi _0801484C\n\
+ ldr r0, _08014844 @ =gBattlescriptCurrInstr\n\
+ ldr r1, _08014848 @ =gBattlescriptsForRunningByItem\n\
+ b _0801485C\n\
+ .align 2, 0\n\
+_08014844: .4byte gBattlescriptCurrInstr\n\
+_08014848: .4byte gBattlescriptsForRunningByItem\n\
+_0801484C:\n\
+ ldrb r0, [r4]\n\
+ bl GetBankSide\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _0801486C\n\
+ ldr r0, _08014864 @ =gBattlescriptCurrInstr\n\
+ ldr r1, _08014868 @ =gBattlescriptsForUsingItem\n\
+_0801485C:\n\
+ ldr r1, [r1]\n\
+ str r1, [r0]\n\
+ b _08014A8C\n\
+ .align 2, 0\n\
+_08014864: .4byte gBattlescriptCurrInstr\n\
+_08014868: .4byte gBattlescriptsForUsingItem\n\
+_0801486C:\n\
+ ldr r2, _080148A0 @ =gSharedMem\n\
+ ldrb r0, [r4]\n\
+ ldr r3, _080148A4 @ =0x00016003\n\
+ adds r1, r2, r3\n\
+ strb r0, [r1]\n\
+ lsls r0, 24\n\
+ lsrs r0, 25\n\
+ ldr r1, _080148A8 @ =0x000160d8\n\
+ adds r0, r1\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ subs r0, 0x1\n\
+ mov r8, r4\n\
+ ldr r3, _080148AC @ =gBattlescriptCurrInstr\n\
+ mov r9, r3\n\
+ ldr r1, _080148B0 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+ adds r7, r2, 0\n\
+ cmp r0, 0x4\n\
+ bls _08014896\n\
+ b _08014A74\n\
+_08014896:\n\
+ lsls r0, 2\n\
+ ldr r1, _080148B4 @ =_080148B8\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
+_080148A0: .4byte gSharedMem\n\
+_080148A4: .4byte 0x00016003\n\
+_080148A8: .4byte 0x000160d8\n\
+_080148AC: .4byte gBattlescriptCurrInstr\n\
+_080148B0: .4byte gBattlescriptsForUsingItem\n\
+_080148B4: .4byte _080148B8\n\
+ .align 2, 0\n\
+_080148B8:\n\
+ .4byte _08014A74\n\
+ .4byte _08014A74\n\
+ .4byte _080148CC\n\
+ .4byte _08014958\n\
+ .4byte _08014A30\n\
+_080148CC:\n\
+ ldr r2, _08014904 @ =gBattleCommunication\n\
+ movs r0, 0\n\
+ strb r0, [r2, 0x5]\n\
+ ldr r1, _08014908 @ =gBankAttacker\n\
+ ldrb r0, [r1]\n\
+ lsrs r0, 1\n\
+ ldr r6, _0801490C @ =0x000160da\n\
+ adds r0, r6\n\
+ adds r0, r7\n\
+ ldrb r3, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r3\n\
+ mov r8, r1\n\
+ cmp r0, 0\n\
+ beq _08014918\n\
+ movs r0, 0x3E\n\
+ ands r0, r3\n\
+ ldr r3, _08014910 @ =gBattlescriptCurrInstr\n\
+ mov r9, r3\n\
+ ldr r1, _08014914 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+ cmp r0, 0\n\
+ bne _080148FC\n\
+ b _08014A74\n\
+_080148FC:\n\
+ movs r0, 0x5\n\
+ strb r0, [r2, 0x5]\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014904: .4byte gBattleCommunication\n\
+_08014908: .4byte gBankAttacker\n\
+_0801490C: .4byte 0x000160da\n\
+_08014910: .4byte gBattlescriptCurrInstr\n\
+_08014914: .4byte gBattlescriptsForUsingItem\n\
+_08014918:\n\
+ ldr r3, _08014950 @ =gBattlescriptCurrInstr\n\
+ mov r9, r3\n\
+ ldr r0, _08014954 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r0\n\
+ adds r5, r7, 0\n\
+ mov r4, r8\n\
+ adds r3, r6, 0\n\
+_08014926:\n\
+ ldrb r0, [r4]\n\
+ lsrs r0, 1\n\
+ adds r0, r3\n\
+ adds r0, r5\n\
+ ldrb r1, [r0]\n\
+ lsrs r1, 1\n\
+ strb r1, [r0]\n\
+ ldrb r0, [r2, 0x5]\n\
+ adds r0, 0x1\n\
+ strb r0, [r2, 0x5]\n\
+ ldrb r0, [r4]\n\
+ lsrs r0, 1\n\
+ adds r0, r3\n\
+ adds r0, r5\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08014926\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014950: .4byte gBattlescriptCurrInstr\n\
+_08014954: .4byte gBattlescriptsForUsingItem\n\
+_08014958:\n\
+ ldr r3, _0801498C @ =gBattleCommunication\n\
+ movs r0, 0x4\n\
+ strb r0, [r3, 0x5]\n\
+ ldr r2, _08014990 @ =gBankAttacker\n\
+ ldrb r0, [r2]\n\
+ lsrs r0, 1\n\
+ ldr r1, _08014994 @ =0x000160da\n\
+ mov r12, r1\n\
+ add r0, r12\n\
+ adds r6, r0, r7\n\
+ ldrb r1, [r6]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ mov r8, r2\n\
+ cmp r5, 0\n\
+ beq _080149A0\n\
+ movs r0, 0x5\n\
+ strb r0, [r3, 0x5]\n\
+ ldr r2, _08014998 @ =gBattlescriptCurrInstr\n\
+ mov r9, r2\n\
+ ldr r3, _0801499C @ =gBattlescriptsForUsingItem\n\
+ mov r10, r3\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_0801498C: .4byte gBattleCommunication\n\
+_08014990: .4byte gBankAttacker\n\
+_08014994: .4byte 0x000160da\n\
+_08014998: .4byte gBattlescriptCurrInstr\n\
+_0801499C: .4byte gBattlescriptsForUsingItem\n\
+_080149A0:\n\
+ ldr r3, _08014A18 @ =gBattleTextBuff1\n\
+ movs r4, 0xFD\n\
+ strb r4, [r3]\n\
+ movs r0, 0x5\n\
+ strb r0, [r3, 0x1]\n\
+ movs r2, 0x1\n\
+ strb r2, [r3, 0x2]\n\
+ movs r0, 0xFF\n\
+ strb r0, [r3, 0x3]\n\
+ ldr r1, _08014A1C @ =gBattleTextBuff2\n\
+ strb r4, [r1]\n\
+ strb r5, [r1, 0x1]\n\
+ movs r0, 0xD2\n\
+ strb r0, [r1, 0x2]\n\
+ strb r5, [r1, 0x3]\n\
+ subs r0, 0xD3\n\
+ strb r0, [r1, 0x4]\n\
+ ldrb r0, [r6]\n\
+ ands r2, r0\n\
+ ldr r0, _08014A20 @ =gBattlescriptCurrInstr\n\
+ mov r9, r0\n\
+ ldr r1, _08014A24 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+ adds r6, r3, 0\n\
+ cmp r2, 0\n\
+ bne _08014A02\n\
+ adds r3, r7, 0\n\
+ mov r5, r8\n\
+ mov r4, r12\n\
+ adds r2, r6, 0\n\
+_080149DC:\n\
+ ldrb r0, [r5]\n\
+ lsrs r0, 1\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ ldrb r1, [r0]\n\
+ lsrs r1, 1\n\
+ strb r1, [r0]\n\
+ ldrb r0, [r2, 0x2]\n\
+ adds r0, 0x1\n\
+ strb r0, [r2, 0x2]\n\
+ ldrb r0, [r5]\n\
+ lsrs r0, 1\n\
+ adds r0, r4\n\
+ adds r0, r3\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080149DC\n\
+_08014A02:\n\
+ ldrb r0, [r6, 0x2]\n\
+ adds r0, 0xE\n\
+ ldr r2, _08014A28 @ =0x000160a4\n\
+ adds r1, r7, r2\n\
+ movs r2, 0\n\
+ strb r0, [r1]\n\
+ ldr r3, _08014A2C @ =0x000160a5\n\
+ adds r0, r7, r3\n\
+ strb r2, [r0]\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014A18: .4byte gBattleTextBuff1\n\
+_08014A1C: .4byte gBattleTextBuff2\n\
+_08014A20: .4byte gBattlescriptCurrInstr\n\
+_08014A24: .4byte gBattlescriptsForUsingItem\n\
+_08014A28: .4byte 0x000160a4\n\
+_08014A2C: .4byte 0x000160a5\n\
+_08014A30:\n\
+ ldr r0, _08014A50 @ =gBattleTypeFlags\n\
+ ldrh r0, [r0]\n\
+ movs r1, 0x1\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08014A64\n\
+ ldr r1, _08014A54 @ =gBattleCommunication\n\
+ movs r0, 0x2\n\
+ strb r0, [r1, 0x5]\n\
+ ldr r0, _08014A58 @ =gBankAttacker\n\
+ mov r8, r0\n\
+ ldr r1, _08014A5C @ =gBattlescriptCurrInstr\n\
+ mov r9, r1\n\
+ ldr r2, _08014A60 @ =gBattlescriptsForUsingItem\n\
+ mov r10, r2\n\
+ b _08014A74\n\
+ .align 2, 0\n\
+_08014A50: .4byte gBattleTypeFlags\n\
+_08014A54: .4byte gBattleCommunication\n\
+_08014A58: .4byte gBankAttacker\n\
+_08014A5C: .4byte gBattlescriptCurrInstr\n\
+_08014A60: .4byte gBattlescriptsForUsingItem\n\
+_08014A64:\n\
+ ldr r0, _08014AA0 @ =gBattleCommunication\n\
+ strb r1, [r0, 0x5]\n\
+ ldr r3, _08014AA4 @ =gBankAttacker\n\
+ mov r8, r3\n\
+ ldr r0, _08014AA8 @ =gBattlescriptCurrInstr\n\
+ mov r9, r0\n\
+ ldr r1, _08014AAC @ =gBattlescriptsForUsingItem\n\
+ mov r10, r1\n\
+_08014A74:\n\
+ mov r2, r8\n\
+ ldrb r0, [r2]\n\
+ lsrs r0, 1\n\
+ ldr r3, _08014AB0 @ =0x000160d8\n\
+ adds r0, r3\n\
+ adds r0, r7\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 2\n\
+ add r0, r10\n\
+ ldr r0, [r0]\n\
+ mov r1, r9\n\
+ str r0, [r1]\n\
+_08014A8C:\n\
+ movs r0, 0xA\n\
+ ldr r2, _08014AB4 @ =gCurrentActionFuncId\n\
+ strb r0, [r2]\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\
+ .align 2, 0\n\
+_08014AA0: .4byte gBattleCommunication\n\
+_08014AA4: .4byte gBankAttacker\n\
+_08014AA8: .4byte gBattlescriptCurrInstr\n\
+_08014AAC: .4byte gBattlescriptsForUsingItem\n\
+_08014AB0: .4byte 0x000160d8\n\
+_08014AB4: .4byte gCurrentActionFuncId\n\
+ .syntax divided\n");
+}
+#endif // NONMATCHING
+
+bool8 TryRunFromBattle(u8 bank)
+{
+ bool8 effect = FALSE;
+ u8 holdEffect;
+ u8 speedVar;
+
+ if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[bank].holdEffect;
+ else
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item);
+
+ gStringBank = bank;
+
+ if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
+ {
+ gLastUsedItem = gBattleMons[bank].item ;
+ gProtectStructs[bank].fleeFlag = 1;
+ effect++;
+ }
+ else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY)
+ {
+ gLastUsedAbility = ABILITY_RUN_AWAY;
+ gProtectStructs[bank].fleeFlag = 2;
+ effect++;
+ }
+ else
+ {
+ if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed)
+ {
+ speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (ewram16078 * 30);
+ if (speedVar > (Random() & 0xFF))
+ effect++;
+ }
+ else // same speed or faster
+ {
+ effect++;
+ }
+ }
+
+ ewram16078++;
+ }
+
+ if (effect)
+ {
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+ gBattleOutcome = BATTLE_RAN;
+ }
+
+ return effect;
+}
+
+void HandleAction_Run(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+
+ for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ {
+ if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ gBattleOutcome |= BATTLE_LOST;
+ }
+ else
+ {
+ if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ gBattleOutcome |= BATTLE_WON;
+ }
+ }
+
+ gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN;
+ }
+ else
+ {
+ if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ {
+ if (!TryRunFromBattle(gBankAttacker)) // failed to run away
+ {
+ gBattleMons[gBankAttacker].status2 &= ~STATUS2_DESTINY_BOND;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 3;
+ gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ }
+ }
+ else
+ {
+ if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 4;
+ gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ }
+ else
+ {
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+ gBattleOutcome = BATTLE_POKE_FLED;
+ }
+ }
+ }
+}
+
+void HandleAction_WatchesCarefully(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_SafariZoneBallThrow(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gNumSafariBalls--;
+ gLastUsedItem = ITEM_SAFARI_BALL;
+ gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_ThrowPokeblock(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1;
+ gLastUsedItem = gBattleBufferB[gBankAttacker][2];
+
+ if (ewram16087 < 3)
+ ewram16087++;
+ if (ewram16088 > 1)
+ {
+ if (ewram16088 < gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]])
+ ewram16088 = 1;
+ else
+ ewram16088 -= gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]];
+ }
+
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_GoNear(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+
+ ewram16089 += gUnknown_081FA71B[ewram16086];
+ if (ewram16089 > 20)
+ ewram16089 = 20;
+
+ ewram16088 += gUnknown_081FA71F[ewram16086];
+ if (ewram16088 > 20)
+ ewram16088 = 20;
+
+ if (ewram16086 < 3)
+ {
+ ewram16086++;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ }
+ else
+ {
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
+ }
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+}
+
+void HandleAction_SafriZoneRun(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ PlaySE(SE_NIGERU);
+ gCurrentTurnActionNumber = gNoOfAllBanks;
+ gBattleOutcome = BATTLE_RAN;
+}
+
+void HandleAction_Action9(void)
+{
+ gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker])
+
+ gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3];
+ gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gActionsByTurnOrder[1] = ACTION_FINISHED;
+}
+
+void HandleAction_Action11(void)
+{
+ if (!HandleFaintedMonActions())
+ {
+ ewram16059 = 0;
+ gCurrentActionFuncId = ACTION_FINISHED;
+ }
+}
+
+void HandleAction_NothingIsFainted(void)
+{
+ gCurrentTurnActionNumber++;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
+ gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
+ | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
+ | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000
+ | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT
+ | HITMARKER_x8000000 | HITMARKER_x4000000);
+}
+
+void HandleAction_ActionFinished(void)
+{
+ gCurrentTurnActionNumber++;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
+ SpecialStatusesClear();
+ gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED
+ | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR
+ | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000
+ | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT
+ | HITMARKER_x8000000 | HITMARKER_x4000000);
+
+ gBattleMoveDamage = 0;
+ ewram16002 = 0;
+ ewram160A1 = 0;
+ gLastLandedMoves[gBankAttacker] = 0;
+ gLastHitByType[gBankAttacker] = 0;
+ eDynamicMoveType = 0;
+ gDynamicBasePower = 0;
+ ewram1600C = 0;
+ gBattleCommunication[3] = 0;
+ gBattleCommunication[4] = 0;
+ eMultihitMoveEffect = 0;
+ ewram17130 = 0;
+}
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index 0c147e471..8b81139fb 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -1,5 +1,9 @@
#include "global.h"
#include "battle.h"
+#include "battle_message.h"
+#include "battle_string_ids.h"
+#include "battle_script_commands.h"
+#include "battle_util.h"
#include "constants/battle_move_effects.h"
#include "constants/moves.h"
#include "constants/abilities.h"
@@ -21,22 +25,89 @@
#include "pokemon_summary_screen.h"
#include "naming_screen.h"
#include "ewram.h"
+#include "util.h"
+
+// TODO: put this into battle_controllers.h
+
+#define RET_VALUE_LEVELLED_UP 11
+
+enum
+{
+ CONTROLLER_GETMONDATA,
+ CONTROLLER_GETRAWMONDATA,
+ CONTROLLER_SETMONDATA,
+ CONTROLLER_SETRAWMONDATA,
+ CONTROLLER_LOADMONSPRITE,
+ CONTROLLER_SWITCHINANIM,
+ CONTROLLER_RETURNMONTOBALL,
+ CONTROLLER_DRAWTRAINERPIC,
+ CONTROLLER_TRAINERSLIDE,
+ CONTROLLER_TRAINERSLIDEBACK,
+ CONTROLLER_FAINTANIMATION,
+ CONTROLLER_PALETTEFADE,
+ CONTROLLER_SUCCESSBALLTHROWANIM,
+ CONTROLLER_BALLTHROWANIM,
+ CONTROLLER_PAUSE,
+ CONTROLLER_MOVEANIMATION,
+ CONTROLLER_PRINTSTRING,
+ CONTROLLER_PRINTSTRINGPLAYERONLY,
+ CONTROLLER_CHOOSEACTION,
+ CONTROLLER_UNKNOWNYESNOBOX,
+ CONTROLLER_CHOOSEMOVE,
+ CONTROLLER_OPENBAG,
+ CONTROLLER_CHOOSEPOKEMON,
+ CONTROLLER_23,
+ CONTROLLER_HEALTHBARUPDATE,
+ CONTROLLER_EXPUPDATE,
+ CONTROLLER_STATUSICONUPDATE,
+ CONTROLLER_STATUSANIMATION,
+ CONTROLLER_STATUSXOR,
+ CONTROLLER_DATATRANSFER,
+ CONTROLLER_DMA3TRANSFER,
+ CONTROLLER_31,
+ CONTROLLER_32,
+ CONTROLLER_TWORETURNVALUES,
+ CONTROLLER_CHOSENMONRETURNVALUE,
+ CONTROLLER_ONERETURNVALUE,
+ CONTROLLER_ONERETURNVALUE_DUPLICATE,
+ CONTROLLER_37,
+ CONTROLLER_38,
+ CONTROLLER_39,
+ CONTROLLER_40,
+ CONTROLLER_HITANIMATION,
+ CONTROLLER_42,
+ CONTROLLER_EFFECTIVENESSSOUND,
+ CONTROLLER_PLAYFANFAREORBGM,
+ CONTROLLER_FAINTINGCRY,
+ CONTROLLER_INTROSLIDE,
+ CONTROLLER_INTROTRAINERBALLTHROW,
+ CONTROLLER_DRAWPARTYSTATUSSUMMARY,
+ CONTROLLER_49,
+ CONTROLLER_50,
+ CONTROLLER_SPRITEINVISIBILITY,
+ CONTROLLER_BATTLEANIMATION,
+ CONTROLLER_LINKSTANDBYMSG,
+ CONTROLLER_RESETACTIONMOVESELECTION,
+ CONTROLLER_55,
+ /*new controllers should go here*/
+ CONTROLLER_TERMINATOR_NOP,
+ CONTROLLER_CMDS_COUNT
+};
//extern needed variables
extern u8 gCritMultiplier;
extern s32 gBattleMoveDamage;
-extern u32 gStatuses3[4];
+extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern u16 gBattleTypeFlags;
-extern const u32 gBitTable[];
extern const struct BaseStats gBaseStats[];
-extern struct BattleEnigmaBerry gEnigmaBerries[4];
-extern struct BattlePokemon gBattleMons[4];
+extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
+extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u8 gActiveBank;
extern u32 gBattleExecBuffer;
extern u8 gNoOfAllBanks;
-extern u16 gBattlePartyID[4];
-extern u8 gTurnOrder[4];
-extern u8 gUnknown_02024A76[4];
+extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT];
+extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT];
extern u16 gCurrentMove;
extern u8 gLastUsedAbility;
extern u16 gBattleWeather;
@@ -45,7 +116,7 @@ extern u8 gEffectBank;
extern u8 gAbsentBankFlags;
extern u8 gMultiHitCounter;
extern u16 gLastUsedMove[4];
-extern u16 gLockedMove[4];
+extern u16 gLockedMoves[4];
extern u16 gChosenMovesByBanks[4];
extern u16 gSideAffecting[2];
extern u16 gPauseCounterBattle;
@@ -56,23 +127,23 @@ extern u8 gBattleTerrain;
extern u16 gTrainerBattleOpponent;
extern u8 gBankAttacker;
extern u8 gBankTarget;
-extern u8* gBattlescriptCurrInstr;
+extern const u8* gBattlescriptCurrInstr;
extern u8 gCurrMovePos;
-extern u8 gFightStateTracker;
+extern u8 gCurrentActionFuncId;
extern u32 gHitMarker;
extern u8 gBattleMoveFlags;
extern u8 gBattleCommunication[];
-extern u16 gMoveHitWith[4];
-extern u16 gUnknown_02024C44[4];
+extern u16 gLastLandedMoves[4];
+extern u16 gLastHitByType[4];
extern u8 gStringBank;
extern u16 gDynamicBasePower;
extern const u8 gTypeEffectiveness[];
extern u16 gLastUsedItem;
extern u16 gBattleMovePower;
-extern s32 gHP_dealt;
-extern s32 gTakenDmg[4];
-extern u8 gTakenDmgBanks[4];
-extern const u16 gMissStrings[];
+extern s32 gHpDealt;
+extern s32 gTakenDmg[BATTLE_BANKS_COUNT];
+extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT];
+extern const u16 gMissStringIds[];
extern u8 gSentPokesToOpponent[2];
extern u8 gBank1;
extern u16 gExpShareExp;
@@ -92,52 +163,62 @@ extern u16 gChosenMove; //last used move in battle
extern u8 gBankInMenu;
extern u8 gActionForBanks[4];
extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one
-extern u8 gCurrentMoveTurn;
+extern u8 gCurrentTurnActionNumber;
extern u16 gTrappingMoves[];
+extern u8 BattleScript_MoveEffectSleep[];
+extern u8 BattleScript_MoveEffectPoison[];
+extern u8 BattleScript_MoveEffectBurn[];
+extern u8 BattleScript_MoveEffectFreeze[];
+extern u8 BattleScript_MoveEffectParalysis[];
+extern u8 BattleScript_MoveEffectToxic[];
+extern u8 BattleScript_MoveEffectConfusion[];
+extern u8 BattleScript_MoveEffectUproar[];
+extern u8 BattleScript_MoveEffectWrap[];
+extern u8 BattleScript_MoveEffectPayDay[];
+extern u8 BattleScript_MoveEffectRecoil33[];
+
//extern functions
u8 AtkCanceller_UnableToUseMove(void);
void PressurePPLose(u8 bank_atk, u8 bank_def, u16 move);
void CancelMultiTurnMoves(u8 bank);
-void b_movescr_stack_push(u8* BS_ptr);
-void b_movescr_stack_push_cursor(void);
+void BattleScriptPush(const u8* BS_ptr);
+void BattleScriptPushCursor(void);
void RecordAbilityBattle(u8 bank, u8 ability);
void RecordItemBattle(u8 bank, u8 holdEffect);
-int IsPokeDisobedient(void);
static bool8 IsTwoTurnsMove(u16 move);
-static void DestinyBondFlagUpdate(void);
-static void b_wonderguard_and_levitate(void);
+static void TrySetDestinyBondToHappen(void);
+static void CheckWonderGuardAndLevitate(void);
u8 GetBankIdentity(u8 bank);
u8 GetBankSide(u8 bank);
u8 GetBattleBank(u8 bankValue);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def);
static u8 AttacksThisTurn(u8 bank, u16 move); //Note: returns 1 if it's a charging turn, otherwise 2
void UndoEffectsAfterFainting(void);
-void BattleMusicStop(void);
+void BattleStopLowHpSound(void);
void PlayBGM(u16 songID);
void MonGainEVs(struct Pokemon*, u16 defeatedSpecies);
extern u8 gBattleBufferB[4][0x200];
-void sub_80324F8(struct Pokemon*, u8 bank);
+void HandleLowHpMusicChange(struct Pokemon*, u8 bank);
void AdjustFriendship(struct Pokemon*, u8 value);
bool8 IsTradedMon(struct Pokemon*);
-void b_movescr_stack_pop_cursor(void);
-void SwitchInClearStructs(void);
+void BattleScriptPop(void);
+void SwitchInClearSetData(void);
u8* ConvertIntToDecimalStringN(u8*, s32, u8, u8);
u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u16 SpeciesToNationalPokedexNum(u16 species);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
-u8 GetBankByPlayerAI(u8 ID);
+u8 GetBankByIdentity(u8 ID);
void sub_8012258(u8);
-void sub_80157C4(u8 bank); //update sent pokes in battle
//MonTryLearningNewMove teach poke a move
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
void IncrementGameStat(u8 index);
u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
u16 GetPokedexHeightWeight(u16 national_num, u8 heightweight);
-u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+u8 MenuCursor_Create814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
void DestroyMenuCursor(void);
void sub_802BC6C(void);
u8 sub_809FA30(void);
@@ -145,24 +226,19 @@ bool32 IsHMMove2(u16 move);
void sub_802BBD4(u8 r0, u8 r1, u8 r2, u8 r3, u8 sp0);
void nullsub_6(void);
void ReshowBattleScreenAfterMenu(void);
-void sub_800F808(void);
+void BattleMainCB2(void);
void AddMoney(u32* moneySaveblock, u32 to_give);
-void sub_80156DC(void); //set sentpokes value
-bool8 sub_8014AB8(u8 bank); //can run from battle
u8 CountAliveMons(u8 caseID);
-void sub_803E1B0(struct Pokemon*, u16 item, u8 partyID, u8 r3, u8 sp);
+void PokemonUseItemEffects(struct Pokemon*, u16 item, u8 partyID, u8 r3, u8 sp);
u8 CanRunFromBattle(void);
u8 GetMoveTarget(u16 move, u8 targetbyte); //get target of move
-void sub_80153D0(u8 atk); //pressure perish song pp decrement
u8 CastformDataTypeChange(u8 bank);
-void b_push_move_exec(u8* bs_ptr);
u8 Overworld_GetMapTypeOfSaveblockLocation(void);
u8 CalculatePlayerPartyCount(void);
u16 Sqrt(u32 num);
u8 sub_809070C(u16 nationalNum, u32 TiD, u32 PiD); //task prepare poke dex display
-void sub_814A880(u8 a1, u8 a2);
+void MenuCursor_SetPos814A880(u8 a1, u8 a2);
u8 CheckMoveLimitations(u8 bank, u8 unusable_moves, u8 flags);
-void sub_801529C(u8 bank);
bool8 IsLinkDoubleBattle(void);
void sub_8094B6C(u8 bank, u8 partyID, u8 r2);
@@ -231,7 +307,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
-#define TargetProtectAffected ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
+#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
//array entries for battle communication
#define MOVE_EFFECT_BYTE 0x3
@@ -273,7 +349,7 @@ extern u8 BattleScript_SelectingImprisionedMoveInPalace[];
#define RecordAbilitySetField6(ability, fieldValue) \
(gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBankTarget, ability))
-#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_physical.moveturnLostHP_special)))
+#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)))
#define HP_ON_SWITCHOUT (((u16*)(ewram_addr + 0x160BC)))
@@ -350,7 +426,7 @@ static void atk45_playanimation(void);
static void atk46_playanimation2(void);
static void atk47_setgraphicalstatchangevalues(void);
static void atk48_playstatchangeanimation(void);
-static void atk49_moveend(void);
+void atk49_moveend(void);
static void atk4A_typecalc2(void);
static void atk4B_returnatktoball(void);
static void atk4C_getswitchedmondata(void);
@@ -414,7 +490,7 @@ static void atk85_stockpile(void);
static void atk86_stockpiletobasedamage(void);
static void atk87_stockpiletohpheal(void);
static void atk88_negativedamage(void);
-static u8 ChangeStatBuffs(s8, u8, u8, u8*);
+static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr);
static void atk89_statbuffchange(void);
static void atk8A_normalisebuffs(void);
static void atk8B_setbide(void);
@@ -527,7 +603,7 @@ static void atkF5_removeattackerstatus1(void);
static void atkF6_finishaction(void);
static void atkF7_finishturn(void);
-const BattleCmdFunc gBattleScriptingCommandsTable[] =
+void (* const gBattleScriptingCommandsTable[])(void) =
{
atk00_attackcanceler,
atk01_accuracycheck,
@@ -779,13 +855,13 @@ const BattleCmdFunc gBattleScriptingCommandsTable[] =
atkF7_finishturn,
};
-struct statFractions
+struct StatFractions
{
u8 dividend;
u8 divisor;
};
-static const struct statFractions gAccuracyStageRatios[] =
+static const struct StatFractions gAccuracyStageRatios[] =
{
{ 33, 100}, // -6
{ 36, 100}, // -5
@@ -802,25 +878,25 @@ static const struct statFractions gAccuracyStageRatios[] =
{ 3, 1}, // +6
};
-//The chance is 1/N for each stage.
-static const u16 gCriticalHitChance[] = {16, 8, 4, 3, 2};
+// The chance is 1/N for each stage.
+static const u16 sCriticalHitChance[] = {16, 8, 4, 3, 2};
-static const u32 gStatusFlagsForMoveEffects[] =
+static const u32 sStatusFlagsForMoveEffects[] =
{
0x00000000,
- 0x00000007,
- 0x00000008,
- 0x00000010,
- 0x00000020,
- 0x00000040,
- 0x00000080,
- 0x00000007,
- 0x00000008,
+ STATUS_SLEEP,
+ STATUS_POISON,
+ STATUS_BURN,
+ STATUS_FREEZE,
+ STATUS_PARALYSIS,
+ STATUS_TOXIC_POISON,
+ STATUS2_CONFUSION,
+ STATUS2_FLINCHED,
0x00000000,
- 0x00000070,
+ STATUS2_UPROAR,
0x00000000,
- 0x00001000,
- 0x0000E000,
+ STATUS2_MULTIPLETURNS,
+ STATUS2_WRAPPED,
0x00000000,
0x00000000,
0x00000000,
@@ -836,11 +912,11 @@ static const u32 gStatusFlagsForMoveEffects[] =
0x00000000,
0x00000000,
0x00000000,
- 0x00400000,
+ STATUS2_RECHARGE,
0x00000000,
0x00000000,
- 0x04000000,
- 0x08000000,
+ STATUS2_ESCAPE_PREVENTION,
+ STATUS2_NIGHTMARE,
0x00000000,
0x00000000,
0x00000000,
@@ -860,7 +936,7 @@ static const u32 gStatusFlagsForMoveEffects[] =
0x00000000,
0x00000000,
0x00000000,
- 0x00000C00,
+ STATUS2_LOCK_CONFUSE,
0x00000000,
0x00000000,
0x00000000,
@@ -869,18 +945,6 @@ static const u32 gStatusFlagsForMoveEffects[] =
0x00000000
};
-extern u8 BattleScript_MoveEffectSleep[];
-extern u8 BattleScript_MoveEffectPoison[];
-extern u8 BattleScript_MoveEffectBurn[];
-extern u8 BattleScript_MoveEffectFreeze[];
-extern u8 BattleScript_MoveEffectParalysis[];
-extern u8 BattleScript_MoveEffectToxic[];
-extern u8 BattleScript_MoveEffectConfusion[];
-extern u8 BattleScript_MoveEffectUproar[];
-extern u8 BattleScript_MoveEffectWrap[];
-extern u8 BattleScript_MoveEffectPayDay[];
-extern u8 BattleScript_MoveEffectRecoil33[];
-
u8* const gMoveEffectBS_Ptrs[] =
{
BattleScript_MoveEffectSleep,
@@ -926,17 +990,25 @@ u8* const gMoveEffectBS_Ptrs[] =
const u8 sUnreferencedBitMask1[] = {0, 1, 3, 7, 0xF, 0x1F, 0x3F};
-const u8 gLevelUpStatBoxStats[] = {MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK, MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPEED};
+const u8 gLevelUpStatBoxStats[] =
+{
+ MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK,
+ MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPEED
+};
static const u16 sProtectSuccessRates[] = {0xFFFF, 0x7FFF, 0x3FFF, 0x1FFF};
-static const u16 sUnknown_081FACFE[] = //banned moves to copy
+#define MIMIC_FORBIDDEN_END 0xFFFE
+#define METRONOME_FORBIDDEN_END 0xFFFF
+#define ASSIST_FORBIDDEN_END 0xFFFF
+
+static const u16 sMovesForbiddenToCopy[] =
{
MOVE_METRONOME,
MOVE_STRUGGLE,
MOVE_SKETCH,
MOVE_MIMIC,
- 0xFFFE,
+ MIMIC_FORBIDDEN_END,
MOVE_COUNTER,
MOVE_MIRROR_COAT,
MOVE_PROTECT,
@@ -951,10 +1023,10 @@ static const u16 sUnknown_081FACFE[] = //banned moves to copy
MOVE_COVET,
MOVE_TRICK,
MOVE_FOCUS_PUNCH,
- 0xFFFF
+ METRONOME_FORBIDDEN_END
};
-static const u8 sUnknown_081FAD26[] = //reversal+flail HP thresholds to power
+static const u8 sFlailHpScaleToPowerTable[] = //reversal+flail HP thresholds to power
{
1, 200,
4, 150,
@@ -978,16 +1050,16 @@ static const u16 sNaturePowerMoves[] =
MOVE_SWIFT
};
-//weight-based damage table for Low Kick
-//format: min. weight (hectograms), base power
-static const u16 sWeightDamage[] =
+// weight-based damage table for Low Kick
+// format: min. weight (hectograms), base power
+static const u16 sWeightToDamageTable[] =
{
100, 20,
250, 40,
500, 60,
1000, 80,
2000, 100,
- -1, -1
+ 0xFFFF, 0xFFFF
};
static const u16 sPickupItems[] =
@@ -1012,23 +1084,24 @@ static const u8 sTerrainToType[] =
TYPE_WATER, // underwater
TYPE_WATER, // water
TYPE_WATER, // pond water
- TYPE_ROCK , // rock
- TYPE_ROCK , // cave
+ TYPE_ROCK, // rock
+ TYPE_ROCK, // cave
TYPE_NORMAL, // building
TYPE_NORMAL, // plain
};
static const u8 sBallCatchBonuses[] =
{
- 20, 15, 10, 15 //Ultra, Great, Poke, Safari
+ 20, 15, 10, 15 // Ultra, Great, Poke, Safari
};
static void atk00_attackcanceler(void)
{
- int i;
- if (gBattleOutcome)
+ s32 i;
+
+ if (gBattleOutcome != 0)
{
- gFightStateTracker = 0xC;
+ gCurrentActionFuncId = ACTION_FINISHED;
return;
}
if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
@@ -1039,7 +1112,7 @@ static void atk00_attackcanceler(void)
}
if (AtkCanceller_UnableToUseMove())
return;
- if (AbilityBattleEffects(2, gBankTarget, 0, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankTarget, 0, 0, 0))
return;
if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200)
&& !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))
@@ -1048,58 +1121,65 @@ static void atk00_attackcanceler(void)
gBattleMoveFlags |= MOVESTATUS_MISSED;
return;
}
+
gHitMarker &= ~(HITMARKER_x800000);
+
if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))
{
- u8 disobedient = IsPokeDisobedient();
- asm("":::"r0"); //It's impossible to match
- asm("":::"r1");
- if ((disobedient))
+ i = IsMonDisobedient(); // why use the 'i' variable...?
+ switch (i)
{
- if (disobedient == 2)
- gHitMarker |= HITMARKER_OBEYS;
- else
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ case 0:
+ break;
+ case 2:
+ gHitMarker |= HITMARKER_OBEYS;
+ return;
+ default:
+ gBattleMoveFlags |= MOVESTATUS_MISSED;
return;
}
}
+
gHitMarker |= HITMARKER_OBEYS;
+
if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED)
{
PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT);
gProtectStructs[gBankTarget].bounceMove = 0;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MagicCoatBounce;
return;
}
+
for (i = 0; i < gNoOfAllBanks; i++)
{
- if ((gProtectStructs[gTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED)
+ if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED)
{
- PressurePPLose(gBankAttacker, gTurnOrder[i], MOVE_SNATCH);
- gProtectStructs[gTurnOrder[i]].stealMove = 0;
- BATTLE_STRUCT->scriptingActive = gTurnOrder[i];
- b_movescr_stack_push_cursor();
+ PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH);
+ gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0;
+ gBattleStruct->scriptingActive = gBanksByTurnOrder[i];
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SnatchedMove;
return;
}
}
+
if (gSpecialStatuses[gBankTarget].lightningRodRedirected)
{
gSpecialStatuses[gBankTarget].lightningRodRedirected = 0;
gLastUsedAbility = ABILITY_LIGHTNING_ROD;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_TookAttack;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
}
- else if (TargetProtectAffected
+ else if (TARGET_PROTECT_AFFECTED
&& (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST))
&& ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))))
{
CancelMultiTurnMoves(gBankAttacker);
gBattleMoveFlags |= MOVESTATUS_MISSED;
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
+ gLastLandedMoves[gBankTarget] = 0;
+ gLastHitByType[gBankTarget] = 0;
gBattleCommunication[6] = 1;
gBattlescriptCurrInstr++;
}
@@ -1111,25 +1191,25 @@ static void atk00_attackcanceler(void)
static void JumpIfMoveFailed(u8 adder, u16 move)
{
- void* to_store = gBattlescriptCurrInstr + adder;
+ const u8 *BS_ptr = gBattlescriptCurrInstr + adder;
if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
{
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
- to_store = T1_READ_PTR(gBattlescriptCurrInstr + 1);
+ gLastLandedMoves[gBankTarget] = 0;
+ gLastHitByType[gBankTarget] = 0;
+ BS_ptr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
- DestinyBondFlagUpdate();
- if (AbilityBattleEffects(3, gBankTarget, 0, 0, move))
+ TrySetDestinyBondToHappen();
+ if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move))
return;
}
- gBattlescriptCurrInstr = to_store;
+ gBattlescriptCurrInstr = BS_ptr;
}
static void atk40_jumpifaffectedbyprotect(void)
{
- if (TargetProtectAffected)
+ if (TARGET_PROTECT_AFFECTED)
{
gBattleMoveFlags |= MOVESTATUS_MISSED;
JumpIfMoveFailed(5, 0);
@@ -1143,13 +1223,13 @@ static void atk40_jumpifaffectedbyprotect(void)
static bool8 JumpIfMoveAffectedByProtect(u16 move)
{
- bool8 affected = 0;
- if (TargetProtectAffected)
+ bool8 affected = FALSE;
+ if (TARGET_PROTECT_AFFECTED)
{
gBattleMoveFlags |= MOVESTATUS_MISSED;
JumpIfMoveFailed(7, move);
gBattleCommunication[6] = 1;
- affected = 1;
+ affected = TRUE;
}
return affected;
}
@@ -1168,6 +1248,7 @@ static bool8 AccuracyCalcHelper(u16 move)
JumpIfMoveFailed(7, move);
return TRUE;
}
+
gHitMarker &= ~HITMARKER_IGNORE_ON_AIR;
if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND)
@@ -1176,6 +1257,7 @@ static bool8 AccuracyCalcHelper(u16 move)
JumpIfMoveFailed(7, move);
return TRUE;
}
+
gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND;
if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER)
@@ -1184,6 +1266,7 @@ static bool8 AccuracyCalcHelper(u16 move)
JumpIfMoveFailed(7, move);
return TRUE;
}
+
gHitMarker &= ~HITMARKER_IGNORE_UNDERWATER;
if ((WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) && gBattleMoves[move].effect == EFFECT_THUNDER)
@@ -1192,12 +1275,14 @@ static bool8 AccuracyCalcHelper(u16 move)
JumpIfMoveFailed(7, move);
return TRUE;
}
+
return FALSE;
}
static void atk01_accuracycheck(void)
{
u16 move = T2_READ_16(gBattlescriptCurrInstr + 5);
+
if (move == 0xFFFE || move == 0xFFFF)
{
if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker)
@@ -1209,13 +1294,14 @@ static void atk01_accuracycheck(void)
}
else
{
- u8 type; s8 buff; u8 MoveAcc; u16 calc; u8 hold_effect; u8 quality;
- if (move == 0) {move = gCurrentMove;}
+ u8 type, moveAcc, holdEffect, quality;
+ s8 buff;
+ u16 calc;
- if (BATTLE_STRUCT->dynamicMoveType)
- type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
- else
- type = gBattleMoves[move].type;
+ if (move == 0)
+ move = gCurrentMove;
+
+ GET_MOVE_TYPE(move, type);
if (JumpIfMoveAffectedByProtect(move))
return;
@@ -1233,47 +1319,52 @@ static void atk01_accuracycheck(void)
buff = acc + 6 - gBattleMons[gBankTarget].statStages[STAT_STAGE_EVASION];
}
- if (buff < 0) {buff = 0;}
- if (buff > 0xC) {buff = 0xC;}
+ if (buff < 0)
+ buff = 0;
+ if (buff > 0xC)
+ buff = 0xC;
- MoveAcc = gBattleMoves[move].accuracy;
- //check Thunder on sunny weather
+ moveAcc = gBattleMoves[move].accuracy;
+ // check Thunder on sunny weather
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY && gBattleMoves[move].effect == EFFECT_THUNDER)
- MoveAcc = 50;
+ moveAcc = 50;
- calc = gAccuracyStageRatios[buff].dividend * MoveAcc;
+ calc = gAccuracyStageRatios[buff].dividend * moveAcc;
calc /= gAccuracyStageRatios[buff].divisor;
if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES)
- calc = (calc * 130) / 100; //1.3 compound eyes boost
+ calc = (calc * 130) / 100; // 1.3 compound eyes boost
if (WEATHER_HAS_EFFECT && gBattleMons[gBankTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY)
- calc = (calc * 80) / 100; //1.2 sand veil loss;
+ calc = (calc * 80) / 100; // 1.2 sand veil loss;
if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9)
- calc = (calc * 80) / 100; //1.2 hustle loss;
+ calc = (calc * 80) / 100; // 1.2 hustle loss;
if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
- hold_effect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ {
+ holdEffect = gEnigmaBerries[gBankTarget].holdEffect;
+ quality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ }
else
{
- hold_effect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item);
}
gStringBank = gBankTarget;
- if (hold_effect == HOLD_EFFECT_EVASION_UP)
+ if (holdEffect == HOLD_EFFECT_EVASION_UP)
calc = (calc * (100 - quality)) / 100;
- //final calculation
+ // final calculation
if ((Random() % 100 + 1) > calc)
{
gBattleMoveFlags |= MOVESTATUS_MISSED;
- if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && (gBattleMoves[move].target == 0x8 || gBattleMoves[move].target == 0x20))
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE &&
+ (gBattleMoves[move].target == 0x8 || gBattleMoves[move].target == 0x20))
gBattleCommunication[6] = 2;
else
gBattleCommunication[6] = 0;
- b_wonderguard_and_levitate();
-
+ CheckWonderGuardAndLevitate();
}
JumpIfMoveFailed(7, move);
}
@@ -1294,31 +1385,35 @@ static void atk02_attackstring(void)
static void atk03_ppreduce(void)
{
- int to_deduct = 1;
+ s32 ppToDeduct = 1;
+
if (gBattleExecBuffer)
return;
+
if (!gSpecialStatuses[gBankAttacker].flag20)
{
switch (gBattleMoves[gCurrentMove].target)
{
case TARGET_FOES_AND_ALLY:
- to_deduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0);
+ ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0);
break;
case TARGET_BOTH:
case TARGET_OPPONENTS_FIELD:
- to_deduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_PRESSURE, 0, 0);
+ ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_PRESSURE, 0, 0);
break;
default:
if (gBankAttacker != gBankTarget && gBattleMons[gBankTarget].ability == ABILITY_PRESSURE)
- to_deduct++;
+ ppToDeduct++;
break;
}
}
+
if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBankAttacker].pp[gCurrMovePos])
{
gProtectStructs[gBankAttacker].notFirstStrike = 1;
- if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > to_deduct)
- gBattleMons[gBankAttacker].pp[gCurrMovePos] -= to_deduct;
+
+ if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > ppToDeduct)
+ gBattleMons[gBankAttacker].pp[gCurrMovePos] -= ppToDeduct;
else
gBattleMons[gBankAttacker].pp[gCurrMovePos] = 0;
@@ -1326,60 +1421,49 @@ static void atk03_ppreduce(void)
&& !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos]))
{
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]);
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]);
MarkBufferBankForExecution(gBankAttacker);
}
}
+
gHitMarker &= ~(HITMARKER_NO_PPDEDUCT);
gBattlescriptCurrInstr++;
}
static void atk04_critcalc(void)
{
- u8 hold_effect; u16 item; u16 crit_chance; int adderv3, adderv5, adderv6, adderv7, adderv8, adderv9, adderv10, adderv11; u16 adderv12;
+ u8 holdEffect;
+ u16 item, critChance;
+
item = gBattleMons[gBankAttacker].item;
+
if (item == ITEM_ENIGMA_BERRY)
- hold_effect = gEnigmaBerries[gBankAttacker].holdEffect;
+ holdEffect = gEnigmaBerries[gBankAttacker].holdEffect;
else
- hold_effect = ItemId_GetHoldEffect(item);
+ holdEffect = ItemId_GetHoldEffect(item);
gStringBank = gBankAttacker;
- if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY)
- adderv3 = 2;
- else
- adderv3 = 0;
-
- if (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL) {adderv3++;}
- adderv5 = adderv3;
- if (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK) {adderv5 = adderv3 + 1;}
-
- if (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK) {adderv5++;}
- adderv6 = adderv5;
- if (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL) {adderv6 = adderv5 + 1;}
-
- adderv7 = 0;
- if (hold_effect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY) {adderv7 = 1;}
- adderv8 = 2 * adderv7;
- adderv9 = 0;
- if (hold_effect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD) {adderv9 = 1;}
- adderv11 = 2 * adderv9;
- if (hold_effect == HOLD_EFFECT_SCOPE_LENS)
- {adderv10 = 1 + adderv6 + adderv8; adderv12 = adderv10 + adderv11;}
- else
- {adderv10 = adderv6 + adderv8; adderv12 = adderv10 + adderv11;}
+ critChance = 2 * ((gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0)
+ + (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL)
+ + (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK)
+ + (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK)
+ + (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL)
+ + (holdEffect == HOLD_EFFECT_SCOPE_LENS)
+ + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY)
+ + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD);
- crit_chance = adderv12;
-
- if (crit_chance > 4) {crit_chance = 4;}
+ if (critChance > 4)
+ critChance = 4;
if ((gBattleMons[gBankTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankTarget].ability != ABILITY_SHELL_ARMOR)
&& !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT)
&& !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE))
- && !(Random() % gCriticalHitChance[crit_chance]))
+ && !(Random() % sCriticalHitChance[critChance]))
gCritMultiplier = 2;
else
gCritMultiplier = 1;
+
gBattlescriptCurrInstr++;
}
@@ -1388,8 +1472,8 @@ static void atk05_damagecalc(void)
u16 side_hword = gSideAffecting[GetBankIdentity(gBankTarget) & 1];
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove,
side_hword, gDynamicBasePower,
- BATTLE_STRUCT->dynamicMoveType, gBankAttacker, gBankTarget);
- gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * BATTLE_STRUCT->dmgMultiplier;
+ gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget);
+ gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier;
if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
gBattleMoveDamage *= 2;
@@ -1404,9 +1488,9 @@ void AI_CalcDmg(u8 BankAtk, u8 BankDef)
u16 side_hword = gSideAffecting[GetBankIdentity(BankDef) & 1];
gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[BankAtk], &gBattleMons[BankDef], gCurrentMove,
side_hword, gDynamicBasePower,
- BATTLE_STRUCT->dynamicMoveType, BankAtk, BankDef);
+ gBattleStruct->dynamicMoveType, BankAtk, BankDef);
gDynamicBasePower = 0;
- gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * BATTLE_STRUCT->dmgMultiplier;
+ gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleStruct->dmgMultiplier;
if (gStatuses3[BankAtk] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
gBattleMoveDamage *= 2;
@@ -1454,8 +1538,8 @@ static void atk06_typecalc(void)
u8 move_type;
if (gCurrentMove != MOVE_STRUGGLE)
{
- if (BATTLE_STRUCT->dynamicMoveType)
- move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
+ if (gBattleStruct->dynamicMoveType)
+ move_type = gBattleStruct->dynamicMoveType & 0x3F;
else
move_type = gBattleMoves[gCurrentMove].type;
@@ -1470,8 +1554,8 @@ static void atk06_typecalc(void)
{
gLastUsedAbility = gBattleMons[gBankTarget].ability;
gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
+ gLastLandedMoves[gBankTarget] = 0;
+ gLastHitByType[gBankTarget] = 0;
gBattleCommunication[6] = move_type;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
}
@@ -1507,8 +1591,8 @@ static void atk06_typecalc(void)
{
gLastUsedAbility = ABILITY_WONDER_GUARD;
gBattleMoveFlags |= MOVESTATUS_MISSED;
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
+ gLastLandedMoves[gBankTarget] = 0;
+ gLastHitByType[gBankTarget] = 0;
gBattleCommunication[6] = 3;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
}
@@ -1517,7 +1601,7 @@ static void atk06_typecalc(void)
}
gBattlescriptCurrInstr++;
}
-static void b_wonderguard_and_levitate(void)
+static void CheckWonderGuardAndLevitate(void)
{
u8 flags = 0;
int i = 0;
@@ -1526,8 +1610,8 @@ static void b_wonderguard_and_levitate(void)
if (gCurrentMove == MOVE_STRUGGLE || !gBattleMoves[gCurrentMove].power)
return;
- if (BATTLE_STRUCT->dynamicMoveType)
- move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
+ if (gBattleStruct->dynamicMoveType)
+ move_type = gBattleStruct->dynamicMoveType & 0x3F;
else
move_type = gBattleMoves[gCurrentMove].type;
@@ -1845,14 +1929,14 @@ static void atk09_attackanimation(void)
if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_Pausex20;
- BATTLE_STRUCT->animTurn += 1;
- BATTLE_STRUCT->animTargetsHit += 1;
+ gBattleStruct->animTurn += 1;
+ gBattleStruct->animTargetsHit += 1;
}
else
{
- if ((gBattleMoves[gCurrentMove].target & TARGET_BOTH || gBattleMoves[gCurrentMove].target & TARGET_FOES_AND_ALLY || gBattleMoves[gCurrentMove].target & TARGET_DEPENDS) && BATTLE_STRUCT->animTargetsHit)
+ if ((gBattleMoves[gCurrentMove].target & TARGET_BOTH || gBattleMoves[gCurrentMove].target & TARGET_FOES_AND_ALLY || gBattleMoves[gCurrentMove].target & TARGET_DEPENDS) && gBattleStruct->animTargetsHit)
{
gBattlescriptCurrInstr++;
return;
@@ -1861,15 +1945,15 @@ static void atk09_attackanimation(void)
{
gActiveBank = gBankAttacker;
- EmitMoveAnimation(0, gCurrentMove, BATTLE_STRUCT->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker]);
- BATTLE_STRUCT->animTurn += 1;
- BATTLE_STRUCT->animTargetsHit += 1;
+ EmitMoveAnimation(0, gCurrentMove, gBattleStruct->animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker]);
+ gBattleStruct->animTurn += 1;
+ gBattleStruct->animTargetsHit += 1;
MarkBufferBankForExecution(gBankAttacker);
gBattlescriptCurrInstr++;
}
else
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_Pausex20;
}
}
@@ -1885,49 +1969,60 @@ static void atk0B_healthbarupdate(void)
{
if (gBattleExecBuffer)
return;
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- goto END;
- gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
-
- if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{
- PrepareStringBattle(0x80, gActiveBank);
- goto END;
- }
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitHealthBarUpdate(0, gBattleMoveDamage);
- MarkBufferBankForExecution(gActiveBank);
+ if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
+ {
+ PrepareStringBattle(0x80, gActiveBank);
+ }
+ else
+ {
+ // Emerald
+ /*
+ s16 healthValue;
- if (!GetBankSide(gActiveBank) && gBattleMoveDamage > 0)
- gBattleResults.unk5_0 = 1;
+ s32 currDmg = gBattleMoveDamage;
+ s32 maxPossibleDmgValue = 10000; // not present in R/S, ensures that huge damage values don't change sign
- END:
- gBattlescriptCurrInstr += 2;
+ if (currDmg <= maxPossibleDmgValue)
+ healthValue = currDmg;
+ else
+ healthValue = maxPossibleDmgValue;
+
+ EmitHealthBarUpdate(0, healthValue);
+ */
+
+ EmitHealthBarUpdate(0, gBattleMoveDamage);
+ MarkBufferBankForExecution(gActiveBank);
+
+ if (GetBankSide(gActiveBank) == SIDE_PLAYER && gBattleMoveDamage > 0)
+ gBattleResults.unk5_0 = 1;
+ }
+ }
+
+ gBattlescriptCurrInstr += 2;
}
static void atk0C_datahpupdate(void)
{
- register u32 move_type asm("r6"); //no idea how to match it otherwise
- u8 dynamic_move_type;
+ u32 moveType;
if (gBattleExecBuffer)
return;
- dynamic_move_type = BATTLE_STRUCT->dynamicMoveType;
- if (dynamic_move_type && !(dynamic_move_type & 0x40))
- {
- move_type = 0x3F;
- move_type &= dynamic_move_type;
- }
+ if (gBattleStruct->dynamicMoveType == 0)
+ moveType = gBattleMoves[gCurrentMove].type;
+ else if (!(gBattleStruct->dynamicMoveType & 0x40))
+ moveType = gBattleStruct->dynamicMoveType & 0x3F;
else
- {
- move_type = gBattleMoves[gCurrentMove].type;
- }
+ moveType = gBattleMoves[gCurrentMove].type;
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{
- gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage)
@@ -1935,20 +2030,20 @@ static void atk0C_datahpupdate(void)
if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
gSpecialStatuses[gActiveBank].moveturnLostHP = gBattleMoveDamage;
gDisableStructs[gActiveBank].substituteHP -= gBattleMoveDamage;
- gHP_dealt = gBattleMoveDamage;
+ gHpDealt = gBattleMoveDamage;
}
else
{
if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
gSpecialStatuses[gActiveBank].moveturnLostHP = gDisableStructs[gActiveBank].substituteHP;
- gHP_dealt = gDisableStructs[gActiveBank].substituteHP;
+ gHpDealt = gDisableStructs[gActiveBank].substituteHP;
gDisableStructs[gActiveBank].substituteHP = 0;
}
- //check substitute fading
+ // check substitute fading
if (gDisableStructs[gActiveBank].substituteHP == 0)
{
gBattlescriptCurrInstr += 2;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SubstituteFade;
return;
}
@@ -1956,14 +2051,14 @@ static void atk0C_datahpupdate(void)
else
{
gHitMarker &= ~(HITMARKER_IGNORE_SUBSTITUTE);
- if (gBattleMoveDamage < 0) //hp goes up
+ if (gBattleMoveDamage < 0) // hp goes up
{
gBattleMons[gActiveBank].hp -= gBattleMoveDamage;
if (gBattleMons[gActiveBank].hp > gBattleMons[gActiveBank].maxHP)
gBattleMons[gActiveBank].hp = gBattleMons[gActiveBank].maxHP;
}
- else //hp goes down
+ else // hp goes down
{
if (gHitMarker & HITMARKER_x20)
{
@@ -1972,7 +2067,7 @@ static void atk0C_datahpupdate(void)
else
{
gTakenDmg[gActiveBank] += gBattleMoveDamage;
- if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
+ if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
gTakenDmgBanks[gActiveBank] = gBankAttacker;
else
gTakenDmgBanks[gActiveBank] = gBankTarget;
@@ -1981,22 +2076,22 @@ static void atk0C_datahpupdate(void)
if (gBattleMons[gActiveBank].hp > gBattleMoveDamage)
{
gBattleMons[gActiveBank].hp -= gBattleMoveDamage;
- gHP_dealt = gBattleMoveDamage;
+ gHpDealt = gBattleMoveDamage;
}
else
{
- gHP_dealt = gBattleMons[gActiveBank].hp;
+ gHpDealt = gBattleMons[gActiveBank].hp;
gBattleMons[gActiveBank].hp = 0;
}
if (!gSpecialStatuses[gActiveBank].moveturnLostHP && !(gHitMarker & HITMARKER_x100000))
- gSpecialStatuses[gActiveBank].moveturnLostHP = gHP_dealt;
+ gSpecialStatuses[gActiveBank].moveturnLostHP = gHpDealt;
- if (move_type <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
+ if (moveType <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
{
- gProtectStructs[gActiveBank].physicalDmg = gHP_dealt;
- gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHP_dealt;
- if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
+ gProtectStructs[gActiveBank].physicalDmg = gHpDealt;
+ gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHpDealt;
+ if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
{
gProtectStructs[gActiveBank].physicalBank = gBankAttacker;
gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker;
@@ -2007,11 +2102,11 @@ static void atk0C_datahpupdate(void)
gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankTarget;
}
}
- else if (move_type > 8 && !(gHitMarker & HITMARKER_x100000))
+ else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000))
{
- gProtectStructs[gActiveBank].specialDmg = gHP_dealt;
- gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHP_dealt;
- if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
+ gProtectStructs[gActiveBank].specialDmg = gHpDealt;
+ gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHpDealt;
+ if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
{
gProtectStructs[gActiveBank].specialBank = gBankAttacker;
gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker;
@@ -2024,13 +2119,13 @@ static void atk0C_datahpupdate(void)
}
}
gHitMarker &= ~(HITMARKER_x100000);
- EmitSetAttributes(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
+ EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
MarkBufferBankForExecution(gActiveBank);
}
}
else
{
- gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF;
}
@@ -2054,6 +2149,7 @@ static void atk0E_effectivenesssound(void)
{
if (gBattleExecBuffer)
return;
+
gActiveBank = gBankTarget;
if (!(gBattleMoveFlags & MOVESTATUS_MISSED))
{
@@ -2098,61 +2194,64 @@ static void atk0E_effectivenesssound(void)
static void atk0F_resultmessage(void)
{
- u16 stringID = 0;
+ u32 stringId = 0;
if (gBattleExecBuffer)
return;
if (gBattleMoveFlags & MOVESTATUS_MISSED && (!(gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) || gBattleCommunication[6] > 2))
{
- stringID = gMissStrings[gBattleCommunication[6]];
+ stringId = gMissStringIds[gBattleCommunication[6]];
gBattleCommunication[MSG_DISPLAY] = 1;
}
else
{
gBattleCommunication[MSG_DISPLAY] = 1;
- switch (gBattleMoveFlags & 0xFE)
+ switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED)))
{
case MOVESTATUS_SUPEREFFECTIVE:
- stringID = 0xDE;
+ stringId = STRINGID_SUPEREFFECTIVE;
break;
case MOVESTATUS_NOTVERYEFFECTIVE:
- stringID = 0xDD;
+ stringId = STRINGID_NOTVERYEFFECTIVE;
break;
case MOVESTATUS_ONEHITKO:
- stringID = 0xDA;
+ stringId = STRINGID_ONEHITKO;
break;
case MOVESTATUS_ENDURED:
- stringID = 0x99;
+ stringId = STRINGID_PKMNENDUREDHIT;
break;
case MOVESTATUS_FAILED:
- goto FAILED;
+ stringId = STRINGID_BUTITFAILED;
+ break;
case MOVESTATUS_NOTAFFECTED:
- goto NOTAFFECTED;
+ stringId = STRINGID_ITDOESNTAFFECT;
+ break;
case MOVESTATUS_HUNGON:
gLastUsedItem = gBattleMons[gBankTarget].item;
gStringBank = gBankTarget;
gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
return;
default:
if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
- NOTAFFECTED:
- stringID = 0x1B;
+ {
+ stringId = STRINGID_ITDOESNTAFFECT;
+ }
else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO)
{
gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO);
gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE);
gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_OneHitKOMsg;
return;
}
else if (gBattleMoveFlags & MOVESTATUS_ENDURED)
{
gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_EnduredMsg;
return;
}
@@ -2161,23 +2260,24 @@ static void atk0F_resultmessage(void)
gLastUsedItem = gBattleMons[gBankTarget].item;
gStringBank = gBankTarget;
gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
return;
}
else if (gBattleMoveFlags & MOVESTATUS_FAILED)
- FAILED:
- stringID = 0xE5;
+ {
+ stringId = STRINGID_BUTITFAILED;
+ }
else
+ {
gBattleCommunication[MSG_DISPLAY] = 0;
+ }
}
}
- if (stringID)
- {
- register u16 dummy asm("r0") = stringID; //Can't match it otherwise
- PrepareStringBattle(dummy, gBankAttacker);
- }
+ if (stringId)
+ PrepareStringBattle(stringId, gBankAttacker);
+
gBattlescriptCurrInstr++;
}
@@ -2253,7 +2353,7 @@ u8 BankGetTurnOrder(u8 bank)
int i;
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (gTurnOrder[i] == bank)
+ if (gBanksByTurnOrder[i] == bank)
break;
}
return i;
@@ -2274,12 +2374,12 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gEffectBank = gBankAttacker; //bank that effects get applied on
gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(EffectAffectsUser);
AffectsUser = EffectAffectsUser;
- BATTLE_STRUCT->scriptingActive = gBankTarget; //theoretically the attacker
+ gBattleStruct->scriptingActive = gBankTarget; //theoretically the attacker
}
else
{
gEffectBank = gBankTarget;
- BATTLE_STRUCT->scriptingActive = gBankAttacker;
+ gBattleStruct->scriptingActive = gBankAttacker;
}
if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
@@ -2299,7 +2399,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6) //status change
{
- switch (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
+ switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
case STATUS_SLEEP:
//check active uproar
@@ -2322,7 +2422,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_IMMUNITY;
RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2337,7 +2437,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
@@ -2348,7 +2448,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBank].type2 == TYPE_STEEL) {break;}
if (gBattleMons[gEffectBank].status1) {break;}
if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;}
-
+
StatusChanged = 1;
break;
case STATUS_BURN:
@@ -2356,7 +2456,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_WATER_VEIL;
RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_BRNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2371,7 +2471,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_BRNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
@@ -2400,7 +2500,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_LIMBER;
RecordAbilityBattle(gEffectBank, ABILITY_LIMBER);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_PRLZPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2422,7 +2522,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gLastUsedAbility = ABILITY_IMMUNITY;
RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
//_0801E664:
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
@@ -2437,7 +2537,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PSNPrevention;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
@@ -2459,14 +2559,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
if (StatusChanged == 1)
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- if (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP)
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
+ if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP)
gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2);
else
- gBattleMons[gEffectBank].status1 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
gActiveBank = gEffectBank;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
MarkBufferBankForExecution(gActiveBank);
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
@@ -2477,7 +2577,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (gBattleCommunication[MOVE_EFFECT_BYTE] == 2 || gBattleCommunication[MOVE_EFFECT_BYTE] == 6 || gBattleCommunication[MOVE_EFFECT_BYTE] == 5 || gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
{
- BATTLE_STRUCT->synchroniseEffect = gBattleCommunication[MOVE_EFFECT_BYTE];
+ gBattleStruct->synchroniseEffect = gBattleCommunication[MOVE_EFFECT_BYTE];
gHitMarker |= HITMARKER_SYNCHRONISE_EFFECT;
}
return;
@@ -2487,12 +2587,12 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
else
{
- if (gBattleMons[gEffectBank].status2 & gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
+ if (gBattleMons[gEffectBank].status2 & sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
gBattlescriptCurrInstr++;
return;
}
- switch (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
+ switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
case 7: //confusion
if (gBattleMons[gEffectBank].ability == ABILITY_OWN_TEMPO)
@@ -2500,7 +2600,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 8: //flinch
@@ -2518,8 +2618,8 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
}
else
{
- if (BankGetTurnOrder(gEffectBank) > gCurrentMoveTurn)
- gBattleMons[gEffectBank].status2 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber)
+ gBattleMons[gEffectBank].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr++; return;
}
break;
@@ -2527,9 +2627,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBank].status2 & STATUS2_UPROAR)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 11: //pay day
@@ -2540,7 +2640,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (PayDay > gPaydayMoney)
gPaydayMoney = 0xFFFF;
}
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 9: //tri attack
@@ -2551,7 +2651,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
break;
case 12: //charging move
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gProtectStructs[gEffectBank].chargingTurn = 1;
gBattlescriptCurrInstr++;
break;
@@ -2559,10 +2659,10 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (gBattleMons[gEffectBank].status2 & STATUS2_WRAPPED)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 0xD;
- BATTLE_STRUCT->wrappedMove[gEffectBank*2] = (u8)gCurrentMove;
- (1 + BATTLE_STRUCT->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask.
- BATTLE_STRUCT->wrappedBy[gEffectBank] = gBankAttacker;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ gBattleStruct->wrappedMove[gEffectBank*2] = (u8)gCurrentMove;
+ (1 + gBattleStruct->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask.
+ gBattleStruct->wrappedBy[gEffectBank] = gBankAttacker;
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
while (gBattleCommunication[MULTISTRING_CHOOSER] <= 4
@@ -2570,19 +2670,19 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleCommunication[MULTISTRING_CHOOSER]++;
break;
case 14: //25% recoil
- gBattleMoveDamage = (gHP_dealt) / 4;
+ gBattleMoveDamage = (gHpDealt) / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 15 ... 21: //stat + 1
if (ChangeStatBuffs(0x10, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xF2, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
- BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; //TODO: the arg ptr is wrong by one
- BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ gBattleStruct->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; //TODO: the arg ptr is wrong by one
+ gBattleStruct->animArg2 = 0;
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
@@ -2590,9 +2690,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (ChangeStatBuffs(~(0x6f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xEB, certain, 0)) {gBattlescriptCurrInstr++;} //TODO: negation doesnt work correctly
else
{
- BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
- BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ gBattleStruct->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
@@ -2600,9 +2700,9 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (ChangeStatBuffs(0x20, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xDA, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
- BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
- BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ gBattleStruct->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
@@ -2610,16 +2710,16 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (ChangeStatBuffs(~(0x5f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xD3, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
- BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
- BATTLE_STRUCT->animArg2 = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ gBattleStruct->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
case 29: //recharge
gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE;
gDisableStructs[gEffectBank].rechargeCounter = 2;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gBattlescriptCurrInstr++;
break;
case 30: //rage
@@ -2635,7 +2735,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{gBattlescriptCurrInstr++; return;}
if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD)
{
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_NoItemSteal;
gLastUsedAbility = gBattleMons[gBankTarget].ability;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
@@ -2653,14 +2753,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleMons[gBankTarget].item = 0;
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
MarkBufferBankForExecution(gBankAttacker);
gActiveBank = gBankTarget;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
MarkBufferBankForExecution(gBankTarget);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_ItemSteal;
CHOICED_MOVE(gBankTarget) = 0;
@@ -2676,11 +2776,11 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattlescriptCurrInstr++;
break;
case 34: //ancientpower
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_AllStatsUp;
return;
case 35: //break free rapidspin
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
return;
case 36: //paralysis removal
@@ -2688,30 +2788,30 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS);
gActiveBank = gBankTarget;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
MarkBufferBankForExecution(gActiveBank);
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal;
}
else
{gBattlescriptCurrInstr++; return;}
break;
case 37: //superpower
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_AtkDefDown;
return;
case 38: //33% recoil
- gBattleMoveDamage = gHP_dealt / 3;
+ gBattleMoveDamage = gHpDealt / 3;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 53: //thrash
if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE))
{
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gEffectBank] = gCurrentMove;
+ gLockedMoves[gEffectBank] = gCurrentMove;
gBattleMons[gEffectBank].status2 |= (((Random() & 1) + 2) << 0xA);
}
else
@@ -2735,14 +2835,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gLastUsedItem = gBattleMons[gEffectBank].item;
gBattleMons[gEffectBank].item = 0;
gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]];
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_KnockedOff;
CHOICED_MOVE(gEffectBank) = 0;
}
break;
case 59: //overheat
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_SAtkDown2;
return;
}
@@ -2900,7 +3000,7 @@ _0801E50C:\n\
bls _0801E518\n\
b _0801EB4A\n\
_0801E518:\n\
- ldr r1, _0801E55C @ =gStatusFlagsForMoveEffects\n\
+ ldr r1, _0801E55C @ =sStatusFlagsForMoveEffects\n\
ldrb r0, [r7, 0x3]\n\
lsls r0, 2\n\
adds r0, r1\n\
@@ -2928,7 +3028,7 @@ _0801E54C: .4byte gBattleMons\n\
_0801E550: .4byte gHitMarker\n\
_0801E554: .4byte gSideAffecting\n\
_0801E558: .4byte gBattleCommunication\n\
-_0801E55C: .4byte gStatusFlagsForMoveEffects\n\
+_0801E55C: .4byte sStatusFlagsForMoveEffects\n\
_0801E560:\n\
cmp r0, 0x40\n\
bne _0801E566\n\
@@ -3066,7 +3166,7 @@ _0801E64A:\n\
ldr r4, _0801E67C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E680 @ =BattleScript_PSNPrevention\n\
_0801E664:\n\
str r0, [r4]\n\
@@ -3189,7 +3289,7 @@ _0801E72E:\n\
ldr r4, _0801E750 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E754 @ =BattleScript_BRNPrevention\n\
b _0801E664\n\
.align 2, 0\n\
@@ -3229,7 +3329,7 @@ _0801E78E:\n\
ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention\n\
b _0801E998\n\
.align 2, 0\n\
@@ -3380,7 +3480,7 @@ _0801E8A6:\n\
ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention\n\
b _0801E664\n\
.align 2, 0\n\
@@ -3423,7 +3523,7 @@ _0801E8FE:\n\
ldr r4, _0801E93C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E940 @ =BattleScript_PSNPrevention\n\
str r0, [r4]\n\
ldr r2, _0801E944 @ =gHitMarker\n\
@@ -3484,7 +3584,7 @@ _0801E98C:\n\
ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801E9AC @ =BattleScript_PSNPrevention\n\
_0801E998:\n\
str r0, [r4]\n\
@@ -3557,8 +3657,8 @@ _0801EA1C:\n\
ldr r0, _0801EA5C @ =gBattlescriptCurrInstr\n\
ldr r0, [r0]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
- ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects\n\
+ bl BattleScriptPush\n\
+ ldr r1, _0801EA60 @ =sStatusFlagsForMoveEffects\n\
ldr r0, _0801EA64 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
lsls r0, 2\n\
@@ -3584,7 +3684,7 @@ _0801EA1C:\n\
.align 2, 0\n\
_0801EA58: .4byte gBattleMoveFlags\n\
_0801EA5C: .4byte gBattlescriptCurrInstr\n\
-_0801EA60: .4byte gStatusFlagsForMoveEffects\n\
+_0801EA60: .4byte sStatusFlagsForMoveEffects\n\
_0801EA64: .4byte gBattleCommunication\n\
_0801EA68: .4byte gBattleMons\n\
_0801EA6C: .4byte gEffectBank\n\
@@ -3622,7 +3722,7 @@ _0801EA84:\n\
movs r1, 0x28\n\
movs r2, 0\n\
movs r3, 0x4\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
ldr r2, _0801EAF0 @ =gHitMarker\n\
@@ -3694,7 +3794,7 @@ _0801EB4A:\n\
mov r0, r9\n\
adds r0, 0x50\n\
adds r1, r0\n\
- ldr r2, _0801EB84 @ =gStatusFlagsForMoveEffects\n\
+ ldr r2, _0801EB84 @ =sStatusFlagsForMoveEffects\n\
ldrb r3, [r7, 0x3]\n\
lsls r0, r3, 2\n\
adds r0, r2\n\
@@ -3716,7 +3816,7 @@ _0801EB78:\n\
ldr r0, [r0]\n\
mov pc, r0\n\
.align 2, 0\n\
-_0801EB84: .4byte gStatusFlagsForMoveEffects\n\
+_0801EB84: .4byte sStatusFlagsForMoveEffects\n\
_0801EB88: .4byte _0801EB8C\n\
.align 2, 0\n\
_0801EB8C:\n\
@@ -3815,7 +3915,7 @@ _0801EC8E:\n\
ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801ECD0 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -3861,7 +3961,7 @@ _0801ED14: .4byte BattleScript_FlinchPrevention\n\
_0801ED18:\n\
adds r0, r2, 0\n\
bl BankGetTurnOrder\n\
- ldr r1, _0801ED54 @ =gCurrentMoveTurn\n\
+ ldr r1, _0801ED54 @ =gCurrentTurnActionNumber\n\
lsls r0, 24\n\
lsrs r0, 24\n\
ldrb r1, [r1]\n\
@@ -3876,7 +3976,7 @@ _0801ED2E:\n\
mov r0, r9\n\
adds r0, 0x50\n\
adds r2, r0\n\
- ldr r1, _0801ED58 @ =gStatusFlagsForMoveEffects\n\
+ ldr r1, _0801ED58 @ =sStatusFlagsForMoveEffects\n\
ldr r0, _0801ED5C @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
lsls r0, 2\n\
@@ -3887,8 +3987,8 @@ _0801ED2E:\n\
str r1, [r2]\n\
bl _0801F5DC\n\
.align 2, 0\n\
-_0801ED54: .4byte gCurrentMoveTurn\n\
-_0801ED58: .4byte gStatusFlagsForMoveEffects\n\
+_0801ED54: .4byte gCurrentTurnActionNumber\n\
+_0801ED58: .4byte sStatusFlagsForMoveEffects\n\
_0801ED5C: .4byte gBattleCommunication\n\
_0801ED60:\n\
mov r3, r8\n\
@@ -3909,7 +4009,7 @@ _0801ED7C:\n\
lsls r0, 5\n\
orrs r1, r0\n\
str r1, [r2]\n\
- ldr r1, _0801EDC8 @ =gLockedMove\n\
+ ldr r1, _0801EDC8 @ =gLockedMoves\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
adds r0, r1\n\
@@ -3932,7 +4032,7 @@ _0801ED7C:\n\
ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801EDD8 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -3941,7 +4041,7 @@ _0801ED7C:\n\
ldr r0, [r0]\n\
bl _0801F5F8\n\
.align 2, 0\n\
-_0801EDC8: .4byte gLockedMove\n\
+_0801EDC8: .4byte gLockedMoves\n\
_0801EDCC: .4byte gCurrentMove\n\
_0801EDD0: .4byte gBattlescriptCurrInstr\n\
_0801EDD4: .4byte gMoveEffectBS_Ptrs\n\
@@ -3978,7 +4078,7 @@ _0801EE14:\n\
ldr r4, _0801EE40 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801EE48 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -4035,7 +4135,7 @@ _0801EE84:\n\
lsls r1, 5\n\
orrs r0, r1\n\
str r0, [r2]\n\
- ldr r1, _0801EEC0 @ =gLockedMove\n\
+ ldr r1, _0801EEC0 @ =gLockedMoves\n\
mov r2, r8\n\
ldrb r0, [r2]\n\
lsls r0, 1\n\
@@ -4053,7 +4153,7 @@ _0801EE84:\n\
strb r0, [r1, 0x1]\n\
b _0801F5DC\n\
.align 2, 0\n\
-_0801EEC0: .4byte gLockedMove\n\
+_0801EEC0: .4byte gLockedMoves\n\
_0801EEC4: .4byte gCurrentMove\n\
_0801EEC8: .4byte gProtectStructs\n\
_0801EECC:\n\
@@ -4113,7 +4213,7 @@ _0801EEE8:\n\
ldr r4, _0801EF98 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs\n\
ldr r2, _0801EFA0 @ =gBattleCommunication\n\
ldrb r0, [r2, 0x3]\n\
@@ -4162,7 +4262,7 @@ _0801EFA0: .4byte gBattleCommunication\n\
_0801EFA4: .4byte gTrappingMoves\n\
_0801EFA8:\n\
ldr r1, _0801EFD8 @ =gBattleMoveDamage\n\
- ldr r0, _0801EFDC @ =gHP_dealt\n\
+ ldr r0, _0801EFDC @ =gHpDealt\n\
ldr r0, [r0]\n\
cmp r0, 0\n\
bge _0801EFB4\n\
@@ -4178,7 +4278,7 @@ _0801EFC0:\n\
ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801EFE8 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -4188,7 +4288,7 @@ _0801EFC0:\n\
b _0801F5F8\n\
.align 2, 0\n\
_0801EFD8: .4byte gBattleMoveDamage\n\
-_0801EFDC: .4byte gHP_dealt\n\
+_0801EFDC: .4byte gHpDealt\n\
_0801EFE0: .4byte gBattlescriptCurrInstr\n\
_0801EFE4: .4byte gMoveEffectBS_Ptrs\n\
_0801EFE8: .4byte gBattleCommunication\n\
@@ -4220,7 +4320,7 @@ _0801F008:\n\
ldr r4, _0801F038 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F03C @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4258,7 +4358,7 @@ _0801F05E:\n\
ldr r4, _0801F08C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F090 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4295,7 +4395,7 @@ _0801F0B0:\n\
ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F0E4 @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4333,7 +4433,7 @@ _0801F106:\n\
ldr r4, _0801F134 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F138 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4365,7 +4465,7 @@ _0801F13C:\n\
adds r0, r2\n\
movs r1, 0x2\n\
strb r1, [r0, 0x19]\n\
- ldr r1, _0801F17C @ =gLockedMove\n\
+ ldr r1, _0801F17C @ =gLockedMoves\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
adds r0, r1\n\
@@ -4375,7 +4475,7 @@ _0801F13C:\n\
b _0801F5DC\n\
.align 2, 0\n\
_0801F178: .4byte gDisableStructs\n\
-_0801F17C: .4byte gLockedMove\n\
+_0801F17C: .4byte gLockedMoves\n\
_0801F180: .4byte gCurrentMove\n\
_0801F184:\n\
ldr r0, _0801F1A0 @ =gBankAttacker\n\
@@ -4546,7 +4646,7 @@ _0801F2B6:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
mov r3, r10\n\
ldrb r0, [r3]\n\
bl MarkBufferBankForExecution\n\
@@ -4564,13 +4664,13 @@ _0801F2B6:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r7]\n\
bl MarkBufferBankForExecution\n\
ldr r4, _0801F350 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F354 @ =BattleScript_ItemSteal\n\
str r0, [r4]\n\
ldr r0, _0801F358 @ =0xfffe9f10\n\
@@ -4645,7 +4745,7 @@ _0801F3BC:\n\
ldr r4, _0801F3CC @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F3D0 @ =BattleScript_AllStatsUp\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4655,7 +4755,7 @@ _0801F3D4:\n\
ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4691,13 +4791,13 @@ _0801F406:\n\
movs r1, 0x28\n\
movs r2, 0\n\
movs r3, 0x4\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
ldr r4, _0801F444 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4709,7 +4809,7 @@ _0801F44C:\n\
ldr r4, _0801F45C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F460 @ =BattleScript_AtkDefDown\n\
b _0801F5F8\n\
.align 2, 0\n\
@@ -4717,7 +4817,7 @@ _0801F45C: .4byte gBattlescriptCurrInstr\n\
_0801F460: .4byte BattleScript_AtkDefDown\n\
_0801F464:\n\
ldr r4, _0801F494 @ =gBattleMoveDamage\n\
- ldr r0, _0801F498 @ =gHP_dealt\n\
+ ldr r0, _0801F498 @ =gHpDealt\n\
ldr r0, [r0]\n\
movs r1, 0x3\n\
bl __divsi3\n\
@@ -4730,7 +4830,7 @@ _0801F47A:\n\
ldr r4, _0801F49C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs\n\
ldr r0, _0801F4A4 @ =gBattleCommunication\n\
ldrb r0, [r0, 0x3]\n\
@@ -4740,7 +4840,7 @@ _0801F47A:\n\
b _0801F5F8\n\
.align 2, 0\n\
_0801F494: .4byte gBattleMoveDamage\n\
-_0801F498: .4byte gHP_dealt\n\
+_0801F498: .4byte gHpDealt\n\
_0801F49C: .4byte gBattlescriptCurrInstr\n\
_0801F4A0: .4byte gMoveEffectBS_Ptrs\n\
_0801F4A4: .4byte gBattleCommunication\n\
@@ -4764,7 +4864,7 @@ _0801F4C4:\n\
lsls r0, 5\n\
orrs r1, r0\n\
str r1, [r2]\n\
- ldr r1, _0801F4F8 @ =gLockedMove\n\
+ ldr r1, _0801F4F8 @ =gLockedMoves\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
adds r0, r1\n\
@@ -4787,7 +4887,7 @@ _0801F4F2:\n\
str r0, [r2]\n\
b _0801F5FA\n\
.align 2, 0\n\
-_0801F4F8: .4byte gLockedMove\n\
+_0801F4F8: .4byte gLockedMoves\n\
_0801F4FC: .4byte gCurrentMove\n\
_0801F500:\n\
mov r5, r8\n\
@@ -4858,7 +4958,7 @@ _0801F540:\n\
ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F5CC @ =BattleScript_KnockedOff\n\
str r0, [r4]\n\
ldr r1, _0801F5D0 @ =gSharedMem\n\
@@ -4898,7 +4998,7 @@ _0801F5EC:\n\
ldr r4, _0801F60C @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r0, _0801F610 @ =BattleScript_SAtkDown2\n\
_0801F5F8:\n\
str r0, [r4]\n\
@@ -4918,7 +5018,156 @@ _0801F610: .4byte BattleScript_SAtkDown2\n\
}
#endif // NONMATCHING
-
+#if DEBUG
+__attribute__((naked))
+static void atk15_seteffectwithchance(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r2, ._1037 @ gBattleMons\n\
+ ldr r0, ._1037 + 4 @ gBankAttacker\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x58\n\
+ mul r0, r0, r1\n\
+ add r0, r0, r2\n\
+ add r0, r0, #0x20\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x20\n\
+ bne ._1035 @cond_branch\n\
+ ldr r2, ._1037 + 8 @ gBattleMoves\n\
+ ldr r0, ._1037 + 12 @ gCurrentMove\n\
+ ldrh r1, [r0]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r2\n\
+ ldrb r0, [r0, #0x5]\n\
+ lsl r4, r0, #0x1\n\
+ b ._1036\n\
+._1038:\n\
+ .align 2, 0\n\
+._1037:\n\
+ .word gBattleMons\n\
+ .word gBankAttacker\n\
+ .word gBattleMoves\n\
+ .word gCurrentMove\n\
+._1035:\n\
+ ldr r2, ._1045 @ gBattleMoves\n\
+ ldr r0, ._1045 + 4 @ gCurrentMove\n\
+ ldrh r1, [r0]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r2\n\
+ ldrb r4, [r0, #0x5]\n\
+._1036:\n\
+ ldr r0, ._1045 + 8 @ gUnknown_02023A14_50\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ ldr r2, ._1045 + 12 @ gBattleCommunication\n\
+ cmp r0, #0\n\
+ beq ._1039 @cond_branch\n\
+ ldrb r1, [r2, #0x3]\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._1040 @cond_branch\n\
+ ldr r0, ._1045 + 16 @ gBattleMoveFlags\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x29\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._1050 @cond_branch\n\
+._1039:\n\
+ ldrb r1, [r2, #0x3]\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._1043 @cond_branch\n\
+._1040:\n\
+ ldr r0, ._1045 + 16 @ gBattleMoveFlags\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x29\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._1043 @cond_branch\n\
+ ldr r2, ._1045 + 12 @ gBattleCommunication\n\
+ ldrb r1, [r2, #0x3]\n\
+ mov r0, #0x7f\n\
+ and r0, r0, r1\n\
+ strb r0, [r2, #0x3]\n\
+ b ._1044\n\
+._1046:\n\
+ .align 2, 0\n\
+._1045:\n\
+ .word gBattleMoves\n\
+ .word gCurrentMove\n\
+ .word gUnknown_02023A14_50\n\
+ .word gBattleCommunication\n\
+ .word gBattleMoveFlags\n\
+._1043:\n\
+ bl Random\n\
+ lsl r0, r0, #0x10\n\
+ lsr r0, r0, #0x10\n\
+ mov r1, #0x64\n\
+ bl __umodsi3\n\
+ lsl r0, r0, #0x10\n\
+ lsr r0, r0, #0x10\n\
+ cmp r0, r4\n\
+ bhi ._1049 @cond_branch\n\
+ ldr r0, ._1052 @ gBattleCommunication\n\
+ ldrb r0, [r0, #0x3]\n\
+ cmp r0, #0\n\
+ beq ._1049 @cond_branch\n\
+ ldr r0, ._1052 + 4 @ gBattleMoveFlags\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x29\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._1049 @cond_branch\n\
+ cmp r4, #0x63\n\
+ bls ._1050 @cond_branch\n\
+._1044:\n\
+ mov r0, #0x0\n\
+ mov r1, #0x80\n\
+ bl SetMoveEffect\n\
+ b ._1054\n\
+._1053:\n\
+ .align 2, 0\n\
+._1052:\n\
+ .word gBattleCommunication\n\
+ .word gBattleMoveFlags\n\
+._1050:\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl SetMoveEffect\n\
+ b ._1054\n\
+._1049:\n\
+ ldr r1, ._1055 @ gBattlescriptCurrInstr\n\
+ ldr r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ str r0, [r1]\n\
+._1054:\n\
+ ldr r0, ._1055 + 4 @ gBattleCommunication\n\
+ mov r1, #0x0\n\
+ strb r1, [r0, #0x3]\n\
+ ldr r0, ._1055 + 8 @ \n\
+ ldr r2, ._1055 + 12 @ \n\
+ add r0, r0, r2\n\
+ strb r1, [r0]\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._1056:\n\
+ .align 2, 0\n\
+._1055:\n\
+ .word gBattlescriptCurrInstr\n\
+ .word gBattleCommunication\n\
+ .word +0x2000000\n\
+ .word 0x16112");
+}
+#else
static void atk15_seteffectwithchance(void)
{
u32 PercentChance;
@@ -4941,8 +5190,9 @@ static void atk15_seteffectwithchance(void)
else
gBattlescriptCurrInstr++;
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
- BATTLE_STRUCT->unk16112 = 0;
+ gBattleStruct->unk16112 = 0;
}
+#endif
static void atk16_seteffectprimary(void)
{
@@ -4958,13 +5208,13 @@ static void atk18_clearstatusfromeffect(void)
{
gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6)
- gBattleMons[gActiveBank].status1 &= (~gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
+ gBattleMons[gActiveBank].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
else
- gBattleMons[gActiveBank].status2 &= (~gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
+ gBattleMons[gActiveBank].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattlescriptCurrInstr += 2;
- BATTLE_STRUCT->unk16112 = 0;
+ gBattleStruct->unk16112 = 0;
}
static void atk19_tryfaintmon(void)
@@ -4978,7 +5228,7 @@ static void atk19_tryfaintmon(void)
{
r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3);
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
gBattlescriptCurrInstr = r4;
gSideAffecting[GetBankSide(gActiveBank)] &= ~SIDE_STATUS_SPIKES_DAMAGED;
}
@@ -5014,7 +5264,7 @@ static void atk19_tryfaintmon(void)
ewram16100arr2(3, bank) = 0;
gHitMarker |= HITMARKER_FAINTED(gActiveBank);
- b_movescr_stack_push(gBattlescriptCurrInstr + 7);
+ BattleScriptPush(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = r4;
if (GetBankSide(gActiveBank) == 0)
{
@@ -5037,7 +5287,7 @@ static void atk19_tryfaintmon(void)
}
if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0)
{
- b_movescr_stack_push(gBattlescriptCurrInstr);
+ BattleScriptPush(gBattlescriptCurrInstr);
gBattleMoveDamage = gBattleMons[bank].hp;
gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife;
}
@@ -5050,10 +5300,10 @@ static void atk19_tryfaintmon(void)
u8 moveIndex = ewram1608Carr(gBankAttacker);
gBattleMons[gBankAttacker].pp[moveIndex] = 0;
- b_movescr_stack_push(gBattlescriptCurrInstr);
+ BattleScriptPush(gBattlescriptCurrInstr);
gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace;
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
+ EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
MarkBufferBankForExecution(gActiveBank);
gBattleTextBuff1[0] = 0xFD;
@@ -5088,7 +5338,7 @@ static void atk1B_cleareffectsonfaint(void)
{
gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattleMons[gActiveBank].status1 = 0;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
UndoEffectsAfterFainting();
gBattlescriptCurrInstr += 2;
@@ -5256,282 +5506,262 @@ static void atk22_jumpiftype(void) //u8 bank, u8 type, *ptr
gBattlescriptCurrInstr += 7;
}
-//here we go again...
-#ifdef NONMATCHING
static void atk23_getexp(void)
{
- u8 hold_effect;
- int via_expshare = 0, sent_in;
- u16* exp = &BATTLE_STRUCT->exp;
- gBank1 = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- sent_in = gSentPokesToOpponent[(gBank1 & 2) >> 1];
- switch (BATTLE_STRUCT->getexpStateTracker)
+ u16 item;
+ s32 i; // also used as stringId
+ u8 holdEffect;
+ s32 sentIn;
+
+ s32 viaExpShare = 0;
+ u16* exp = &gBattleStruct->exp;
+
+ gBank1 = GetBattleBank(gBattlescriptCurrInstr[1]);
+ sentIn = gSentPokesToOpponent[(gBank1 & 2) >> 1];
+
+ switch (gBattleStruct->getexpStateTracker)
{
- case 0: //check if should receive exp at all
- if (GetBankSide(gBank1) != 1 || (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)))
- BATTLE_STRUCT->getexpStateTracker = 6; //goto last case
+ case 0: // check if should receive exp at all
+ if (GetBankSide(gBank1) != SIDE_OPPONENT || (gBattleTypeFlags &
+ (BATTLE_TYPE_LINK
+ | BATTLE_TYPE_SAFARI
+ | BATTLE_TYPE_BATTLE_TOWER
+ | BATTLE_TYPE_EREADER_TRAINER)))
+ {
+ gBattleStruct->getexpStateTracker = 6; // goto last case
+ }
else
{
- BATTLE_STRUCT->getexpStateTracker++;
- ((u8*)ewram)[0x16113] |= gBitTable[gBattlePartyID[gBank1]];
+ gBattleStruct->getexpStateTracker++;
+ gBattleStruct->unk16113 |= gBitTable[gBattlePartyID[gBank1]];
}
break;
- case 1: //calculate experience points to redistribute
+ case 1: // calculate experience points to redistribute
{
- int via_sent_in = 0;
u16 calculatedExp;
- int i;
- for (i = 0; i < 6; i++)
+ s32 viaSentIn;
+
+ for (viaSentIn = 0, i = 0; i < 6; i++)
{
- u16 item;
- if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == 0 || GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0)
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == SPECIES_NONE || GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0)
continue;
- if (gBitTable[i] & sent_in)
- via_sent_in++;
+ if (gBitTable[i] & sentIn)
+ viaSentIn++;
item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
+
if (item == ITEM_ENIGMA_BERRY)
- hold_effect = gSaveBlock1.enigmaBerry.holdEffect;
+ holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
else
- hold_effect = ItemId_GetHoldEffect(item);
+ holdEffect = ItemId_GetHoldEffect(item);
- if (hold_effect == HOLD_EFFECT_EXP_SHARE)
- via_expshare++;
+ if (holdEffect == HOLD_EFFECT_EXP_SHARE)
+ viaExpShare++;
}
+
calculatedExp = gBaseStats[gBattleMons[gBank1].species].expYield * gBattleMons[gBank1].level / 7;
- if (via_expshare) //at least one poke is getting exp via exp share
+
+ if (viaExpShare) // at least one mon is getting exp via exp share
{
- calculatedExp /= 2;
- *exp = calculatedExp / via_sent_in;
+ *exp = calculatedExp / 2 / viaSentIn;
if (*exp == 0)
*exp = 1;
- gExpShareExp = calculatedExp / via_expshare;
+ gExpShareExp = calculatedExp / 2 / viaExpShare;
if (gExpShareExp == 0)
gExpShareExp = 1;
}
else
{
- *exp = calculatedExp / via_sent_in;
+ *exp = calculatedExp / viaSentIn;
if (*exp == 0)
*exp = 1;
gExpShareExp = 0;
}
- BATTLE_STRUCT->getexpStateTracker++;
- BATTLE_STRUCT->expGetterID = 0;
- BATTLE_STRUCT->sentInPokes = sent_in;
- } //no break statement
- case 2: //loop; set exp value to the poke in expgetter_id and print message
+
+ gBattleStruct->getexpStateTracker++;
+ gBattleStruct->expGetterID = 0;
+ gBattleStruct->sentInPokes = sentIn;
+ }
+ // fall through
+ case 2: // set exp value to the poke in expgetter_id and print message
if (gBattleExecBuffer == 0)
{
- u16 item = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HELD_ITEM);
- u8* tracker; u32 zero;
+ item = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HELD_ITEM);
+
if (item == ITEM_ENIGMA_BERRY)
- hold_effect = gSaveBlock1.enigmaBerry.holdEffect;
+ holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
else
- hold_effect = ItemId_GetHoldEffect(item);
+ holdEffect = ItemId_GetHoldEffect(item);
- if ((hold_effect != HOLD_EFFECT_EXP_SHARE && !(BATTLE_STRUCT->sentInPokes & 1)))
+ if (holdEffect != HOLD_EFFECT_EXP_SHARE && !(gBattleStruct->sentInPokes & 1))
{
- BATTLE_STRUCT->sentInPokes >>= 1;
- tracker = &BATTLE_STRUCT->getexpStateTracker;
- zero = 0;
- *tracker = 5; //increment looper
- gBattleMoveDamage = zero; //used for exp
+ gBattleStruct->sentInPokes >>= 1;
+ gBattleStruct->getexpStateTracker = 5;
+ gBattleMoveDamage = 0; // used for exp
}
- else if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL) == 100)
+ else if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) == 100)
{
- BATTLE_STRUCT->sentInPokes >>= 1;
- tracker = &BATTLE_STRUCT->getexpStateTracker;
- zero = 0;
- *tracker = 5; //increment looper
- gBattleMoveDamage = zero; //used for exp
+ gBattleStruct->sentInPokes >>= 1;
+ gBattleStruct->getexpStateTracker = 5;
+ gBattleMoveDamage = 0; // used for exp
}
else
{
- //music change in wild battle after fainting a poke
- if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !BATTLE_STRUCT->wildVictorySong)
+ // music change in wild battle after fainting a poke
+ if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER) && gBattleMons[0].hp && !gBattleStruct->wildVictorySong)
{
- BattleMusicStop();
+ BattleStopLowHpSound();
PlayBGM(0x161);
- BATTLE_STRUCT->wildVictorySong++;
+ gBattleStruct->wildVictorySong++;
}
- if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HP))
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP))
{
- s16 stringID;
- if (BATTLE_STRUCT->sentInPokes & 1)
+ if (gBattleStruct->sentInPokes & 1)
gBattleMoveDamage = *exp;
else
gBattleMoveDamage = 0;
- if (hold_effect == HOLD_EFFECT_EXP_SHARE)
+ if (holdEffect == HOLD_EFFECT_EXP_SHARE)
gBattleMoveDamage += gExpShareExp;
- if (hold_effect == HOLD_EFFECT_LUCKY_EGG)
+ if (holdEffect == HOLD_EFFECT_LUCKY_EGG)
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
- if (IsTradedMon(&gPlayerParty[BATTLE_STRUCT->expGetterID]))
+ if (IsTradedMon(&gPlayerParty[gBattleStruct->expGetterID]))
{
gBattleMoveDamage = (gBattleMoveDamage * 150) / 100;
- stringID = 0x14A;
+ i = 0x14A;
}
else
{
- stringID = 0x149;
- }
+ i = 0x149;
+ }
- //get exp getter bank
+ // get exp getter bank
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- if (!(gBattlePartyID[2] != BATTLE_STRUCT->expGetterID) && !(gAbsentBankFlags & gBitTable[2]))
- BATTLE_STRUCT->expGetterBank = 2;
+ if (!(gBattlePartyID[2] != gBattleStruct->expGetterID) && !(gAbsentBankFlags & gBitTable[2]))
+ gBattleStruct->expGetterBank = 2;
else
{
if (!(gAbsentBankFlags & gBitTable[0]))
- BATTLE_STRUCT->expGetterBank = 0;
+ gBattleStruct->expGetterBank = 0;
else
- BATTLE_STRUCT->expGetterBank = 2;
+ gBattleStruct->expGetterBank = 2;
}
}
else
- BATTLE_STRUCT->expGetterBank = 0;
+ gBattleStruct->expGetterBank = 0;
- //buffer poke name
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 4;
- gBattleTextBuff1[2] = BATTLE_STRUCT->expGetterBank;
- gBattleTextBuff1[3] = BATTLE_STRUCT->expGetterID;
- gBattleTextBuff1[4] = 0xFF;
-
- //buffer 'gained' or 'gained a boosted'
- gBattleTextBuff2[0] = 0xFD;
- gBattleTextBuff2[1] = 0;
- gBattleTextBuff2[2] = stringID;
- stringID = (stringID >> 8) & (0xFF); //this does not want to cooperate
- gBattleTextBuff2[3] = stringID;
- gBattleTextBuff2[4] = 0xFF;
-
- //buffer exp number
- gBattleTextBuff3[0] = 0xFD;
- gBattleTextBuff3[1] = 1;
- gBattleTextBuff3[2] = 4; //word
- gBattleTextBuff3[3] = 5; //max digits
- gBattleTextBuff3[4] = gBattleMoveDamage;
- gBattleTextBuff3[5] = sBYTE1_32(gBattleMoveDamage);
- gBattleTextBuff3[6] = sBYTE2_32(gBattleMoveDamage);
- gBattleTextBuff3[7] = sBYTE3_32(gBattleMoveDamage);
- gBattleTextBuff3[8] = 0xFF;
-
- PrepareStringBattle(0xD, BATTLE_STRUCT->expGetterBank);
- MonGainEVs(&gPlayerParty[BATTLE_STRUCT->expGetterID], gBattleMons[gBank1].species);
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBank, gBattleStruct->expGetterID)
+
+ // buffer 'gained' or 'gained a boosted'
+ PREPARE_STRING_BUFFER(gBattleTextBuff2, i)
+
+ PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage)
+
+ PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBank);
+ MonGainEVs(&gPlayerParty[gBattleStruct->expGetterID], gBattleMons[gBank1].species);
}
- BATTLE_STRUCT->sentInPokes >>= 1;
- BATTLE_STRUCT->getexpStateTracker++;
+ gBattleStruct->sentInPokes >>= 1;
+ gBattleStruct->getexpStateTracker++;
}
}
break;
- case 3: //Set Stats and give exp
+ case 3: // Set stats and give exp
if (gBattleExecBuffer == 0)
{
- gBattleBufferB[BATTLE_STRUCT->expGetterBank][0] = 0;
- if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL) != 100)
+ gBattleBufferB[gBattleStruct->expGetterBank][0] = 0;
+ if (GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL) != 100)
{
- // Doesn't match.
- BATTLE_STRUCT->beforeLvlUp[0] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP);
- BATTLE_STRUCT->beforeLvlUp[1] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_ATK);
- BATTLE_STRUCT->beforeLvlUp[2] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_DEF);
- BATTLE_STRUCT->beforeLvlUp[3] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPEED);
- BATTLE_STRUCT->beforeLvlUp[4] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPATK);
- BATTLE_STRUCT->beforeLvlUp[5] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPDEF);
-
- gActiveBank = BATTLE_STRUCT->expGetterBank;
- EmitExpBarUpdate(0, BATTLE_STRUCT->expGetterID, gBattleMoveDamage);
+ gBattleResources_statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
+ gBattleResources_statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
+ gBattleResources_statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ gBattleResources_statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
+ gBattleResources_statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
+ gBattleResources_statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF);
+
+ gActiveBank = gBattleStruct->expGetterBank;
+ EmitExpBarUpdate(0, gBattleStruct->expGetterID, gBattleMoveDamage);
MarkBufferBankForExecution(gActiveBank);
}
- BATTLE_STRUCT->getexpStateTracker++;
+ gBattleStruct->getexpStateTracker++;
}
break;
- case 4: //lvl up if necessary
+ case 4: // lvl up if necessary
if (gBattleExecBuffer == 0)
{
- gActiveBank = BATTLE_STRUCT->expGetterBank;
- if (gBattleBufferB[gActiveBank][0] == 0x21 && gBattleBufferB[gActiveBank][1] == 0xB)
+ gActiveBank = gBattleStruct->expGetterBank;
+ if (gBattleBufferB[gActiveBank][0] == CONTROLLER_TWORETURNVALUES
+ && gBattleBufferB[gActiveBank][1] == RET_VALUE_LEVELLED_UP)
{
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID)
- sub_80324F8(&gPlayerParty[gActiveBank], gActiveBank);
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == gBattleStruct->expGetterID)
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- //buff poke name
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 4;
- gBattleTextBuff1[2] = gActiveBank;
- gBattleTextBuff1[3] = BATTLE_STRUCT->expGetterID;
- gBattleTextBuff1[4] = 0xFF;
-
- //buff level
- gBattleTextBuff2[0] = 0xFD;
- gBattleTextBuff2[1] = 1;
- gBattleTextBuff2[2] = 1;
- gBattleTextBuff2[3] = 3;
- gBattleTextBuff2[4] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL);
- gBattleTextBuff2[5] = 0xFF;
-
- b_movescr_stack_push_cursor();
- gLeveledUpInBattle |= gBitTable[BATTLE_STRUCT->expGetterID];
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattleStruct->expGetterID)
+
+ PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL))
+
+ BattleScriptPushCursor();
+ gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterID];
gBattlescriptCurrInstr = BattleScript_LevelUp;
gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8));
- AdjustFriendship(&gPlayerParty[BATTLE_STRUCT->expGetterID], 0);
+ AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterID], 0);
- //update battle mon structure after level up
- if (gBattlePartyID[0] == BATTLE_STRUCT->expGetterID && gBattleMons[0].hp)
+ // update battle mon structure after level up
+ if (gBattlePartyID[0] == gBattleStruct->expGetterID && gBattleMons[0].hp)
{
- gBattleMons[0].level = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL);
- gBattleMons[0].hp = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HP);
- gBattleMons[0].maxHP = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP);
- gBattleMons[0].attack = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_ATK);
- gBattleMons[0].defense = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_DEF);
- gBattleMons[0].speed = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPEED);
- gBattleMons[0].spAttack = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPATK);
- gBattleMons[0].spDefense = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPDEF);
+ gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL);
+ gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP);
+ gBattleMons[0].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
+ gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
+ gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ // Why is this duplicated?
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
+ gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
+ gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPDEF);
}
- //What is else if? Guess it's too advanced for GameFreak
- if (gBattlePartyID[2] == BATTLE_STRUCT->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ // What is else if?
+ if (gBattlePartyID[2] == gBattleStruct->expGetterID && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gBattleMons[2].level = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL);
- gBattleMons[2].hp = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HP);
- gBattleMons[2].maxHP = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP);
- gBattleMons[2].attack = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_ATK);
- gBattleMons[2].defense = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_DEF);
- //There are no words...GF can't even copy&paste code properly
- gBattleMons[2].speed = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPEED);
- gBattleMons[2].spAttack = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPEED /*RIP*/);
- gBattleMons[2].spDefense = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPATK);
+ gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_LEVEL);
+ gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_HP);
+ gBattleMons[2].maxHP = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MAX_HP);
+ gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_ATK);
+ gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_DEF);
+ // Duplicated again, but this time there's no Sp Defense
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPEED);
+ gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_SPATK);
}
- BATTLE_STRUCT->getexpStateTracker = 5;
}
else
{
gBattleMoveDamage = 0;
- BATTLE_STRUCT->getexpStateTracker = 5;
}
+ gBattleStruct->getexpStateTracker = 5;
}
break;
- case 5: //looper increment
- if (gBattleMoveDamage) //there is exp to give, goto case 3 that gives exp
- BATTLE_STRUCT->getexpStateTracker = 3;
+ case 5: // looper increment
+ if (gBattleMoveDamage) // there is exp to give, goto case 3 that gives exp
+ gBattleStruct->getexpStateTracker = 3;
else
{
- if (++BATTLE_STRUCT->expGetterID <= 5)
- BATTLE_STRUCT->getexpStateTracker = 2; //loop again
+ gBattleStruct->expGetterID++;
+ if (gBattleStruct->expGetterID <= 5)
+ gBattleStruct->getexpStateTracker = 2; // loop again
else
- BATTLE_STRUCT->getexpStateTracker = 6; //we're done
+ gBattleStruct->getexpStateTracker = 6; // we're done
}
break;
- case 6: //increment instruction
+ case 6: // increment instruction
if (gBattleExecBuffer == 0)
{
- //not even sure why gamefreak clears that data in this place
+ // not sure why gf clears the item and ability here
gBattleMons[gBank1].item = 0;
gBattleMons[gBank1].ability = 0;
gBattlescriptCurrInstr += 2;
@@ -5539,1138 +5769,6 @@ static void atk23_getexp(void)
break;
}
}
-#else
-__attribute__((naked))
-static void atk23_getexp(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- movs r6, 0\n\
- ldr r0, _0802004C @ =gSharedMem + 0x1605C\n\
- mov r10, r0\n\
- ldr r0, _08020050 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r0]\n\
- ldrb r0, [r0, 0x1]\n\
- bl GetBattleBank\n\
- ldr r1, _08020054 @ =gBank1\n\
- strb r0, [r1]\n\
- ldr r2, _08020058 @ =gSentPokesToOpponent\n\
- movs r1, 0x2\n\
- ands r1, r0\n\
- lsls r1, 24\n\
- lsrs r1, 25\n\
- adds r1, r2\n\
- ldrb r1, [r1]\n\
- mov r8, r1\n\
- mov r0, r10\n\
- subs r0, 0x4D\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x6\n\
- bls _08020040\n\
- bl _08020996\n\
-_08020040:\n\
- lsls r0, 2\n\
- ldr r1, _0802005C @ =_08020060\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
-_0802004C: .4byte gSharedMem + 0x1605C\n\
-_08020050: .4byte gBattlescriptCurrInstr\n\
-_08020054: .4byte gBank1\n\
-_08020058: .4byte gSentPokesToOpponent\n\
-_0802005C: .4byte _08020060\n\
- .align 2, 0\n\
-_08020060:\n\
- .4byte _0802007C\n\
- .4byte _080200FC\n\
- .4byte _08020216\n\
- .4byte _0802055C\n\
- .4byte _08020648\n\
- .4byte _08020910\n\
- .4byte _0802096C\n\
-_0802007C:\n\
- ldr r4, _080200A8 @ =gBank1\n\
- ldrb r0, [r4]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x1\n\
- bne _08020098\n\
- ldr r0, _080200AC @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- ldr r0, _080200B0 @ =0x00000982\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080200BC\n\
-_08020098:\n\
- ldr r0, _080200B4 @ =gSharedMem\n\
- ldr r1, _080200B8 @ =0x0001600f\n\
- adds r0, r1\n\
- movs r1, 0x6\n\
- strb r1, [r0]\n\
- bl _08020996\n\
- .align 2, 0\n\
-_080200A8: .4byte gBank1\n\
-_080200AC: .4byte gBattleTypeFlags\n\
-_080200B0: .4byte 0x00000982\n\
-_080200B4: .4byte gSharedMem\n\
-_080200B8: .4byte 0x0001600f\n\
-_080200BC:\n\
- ldr r2, _080200E8 @ =gSharedMem\n\
- ldr r3, _080200EC @ =0x0001600f\n\
- adds r1, r2, r3\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- ldr r0, _080200F0 @ =0x00016113\n\
- adds r2, r0\n\
- ldr r3, _080200F4 @ =gBitTable\n\
- ldr r1, _080200F8 @ =gBattlePartyID\n\
- ldrb r0, [r4]\n\
- lsls r0, 1\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- lsls r0, 2\n\
- adds r0, r3\n\
- ldr r0, [r0]\n\
- ldrb r1, [r2]\n\
- orrs r0, r1\n\
- strb r0, [r2]\n\
- bl _08020996\n\
- .align 2, 0\n\
-_080200E8: .4byte gSharedMem\n\
-_080200EC: .4byte 0x0001600f\n\
-_080200F0: .4byte 0x00016113\n\
-_080200F4: .4byte gBitTable\n\
-_080200F8: .4byte gBattlePartyID\n\
-_080200FC:\n\
- movs r5, 0\n\
- movs r7, 0\n\
- ldr r1, _08020150 @ =gSaveBlock1 + 0x3688\n\
- mov r9, r1\n\
-_08020104:\n\
- movs r0, 0x64\n\
- adds r1, r7, 0\n\
- muls r1, r0\n\
- ldr r0, _08020154 @ =gPlayerParty\n\
- adds r4, r1, r0\n\
- adds r0, r4, 0\n\
- movs r1, 0xB\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _0802016A\n\
- adds r0, r4, 0\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _0802016A\n\
- ldr r0, _08020158 @ =gBitTable\n\
- lsls r1, r7, 2\n\
- adds r1, r0\n\
- ldr r0, [r1]\n\
- mov r2, r8\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _08020138\n\
- adds r5, 0x1\n\
-_08020138:\n\
- adds r0, r4, 0\n\
- movs r1, 0xC\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0xAF\n\
- bne _0802015C\n\
- mov r3, r9\n\
- ldrb r4, [r3]\n\
- b _08020164\n\
- .align 2, 0\n\
-_08020150: .4byte gSaveBlock1 + 0x3688\n\
-_08020154: .4byte gPlayerParty\n\
-_08020158: .4byte gBitTable\n\
-_0802015C:\n\
- bl ItemId_GetHoldEffect\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
-_08020164:\n\
- cmp r4, 0x19\n\
- bne _0802016A\n\
- adds r6, 0x1\n\
-_0802016A:\n\
- adds r7, 0x1\n\
- cmp r7, 0x5\n\
- ble _08020104\n\
- ldr r3, _080201D0 @ =gBaseStats\n\
- ldr r2, _080201D4 @ =gBattleMons\n\
- ldr r0, _080201D8 @ =gBank1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x58\n\
- muls r1, r0\n\
- adds r1, r2\n\
- ldrh r2, [r1]\n\
- lsls r0, r2, 3\n\
- subs r0, r2\n\
- lsls r0, 2\n\
- adds r0, r3\n\
- ldrb r2, [r0, 0x9]\n\
- adds r1, 0x2A\n\
- ldrb r0, [r1]\n\
- muls r0, r2\n\
- movs r1, 0x7\n\
- bl __divsi3\n\
- lsls r0, 16\n\
- lsrs r1, r0, 16\n\
- cmp r6, 0\n\
- beq _080201E0\n\
- lsrs r4, r0, 17\n\
- adds r0, r4, 0\n\
- adds r1, r5, 0\n\
- bl __divsi3\n\
- mov r1, r10\n\
- strh r0, [r1]\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- bne _080201B6\n\
- movs r0, 0x1\n\
- strh r0, [r1]\n\
-_080201B6:\n\
- ldr r5, _080201DC @ =gExpShareExp\n\
- adds r0, r4, 0\n\
- adds r1, r6, 0\n\
- bl __divsi3\n\
- strh r0, [r5]\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- bne _080201FA\n\
- movs r0, 0x1\n\
- strh r0, [r5]\n\
- b _080201FA\n\
- .align 2, 0\n\
-_080201D0: .4byte gBaseStats\n\
-_080201D4: .4byte gBattleMons\n\
-_080201D8: .4byte gBank1\n\
-_080201DC: .4byte gExpShareExp\n\
-_080201E0:\n\
- adds r0, r1, 0\n\
- adds r1, r5, 0\n\
- bl __divsi3\n\
- mov r2, r10\n\
- strh r0, [r2]\n\
- lsls r0, 16\n\
- cmp r0, 0\n\
- bne _080201F6\n\
- movs r0, 0x1\n\
- strh r0, [r2]\n\
-_080201F6:\n\
- ldr r0, _08020248 @ =gExpShareExp\n\
- strh r6, [r0]\n\
-_080201FA:\n\
- ldr r1, _0802024C @ =gSharedMem\n\
- ldr r3, _08020250 @ =0x0001600f\n\
- adds r2, r1, r3\n\
- ldrb r0, [r2]\n\
- adds r0, 0x1\n\
- movs r3, 0\n\
- strb r0, [r2]\n\
- ldr r2, _08020254 @ =0x00016018\n\
- adds r0, r1, r2\n\
- strb r3, [r0]\n\
- ldr r3, _08020258 @ =0x0001605f\n\
- adds r1, r3\n\
- mov r0, r8\n\
- strb r0, [r1]\n\
-_08020216:\n\
- ldr r0, _0802025C @ =gBattleExecBuffer\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- beq _08020220\n\
- b _08020996\n\
-_08020220:\n\
- ldr r0, _0802024C @ =gSharedMem\n\
- ldr r1, _08020254 @ =0x00016018\n\
- adds r0, r1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _08020260 @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0xC\n\
- bl GetMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- cmp r0, 0xAF\n\
- bne _0802026C\n\
- ldr r0, _08020264 @ =gSaveBlock1\n\
- ldr r2, _08020268 @ =0x00003688\n\
- adds r0, r2\n\
- ldrb r4, [r0]\n\
- b _08020274\n\
- .align 2, 0\n\
-_08020248: .4byte gExpShareExp\n\
-_0802024C: .4byte gSharedMem\n\
-_08020250: .4byte 0x0001600f\n\
-_08020254: .4byte 0x00016018\n\
-_08020258: .4byte 0x0001605f\n\
-_0802025C: .4byte gBattleExecBuffer\n\
-_08020260: .4byte gPlayerParty\n\
-_08020264: .4byte gSaveBlock1\n\
-_08020268: .4byte 0x00003688\n\
-_0802026C:\n\
- bl ItemId_GetHoldEffect\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
-_08020274:\n\
- ldr r5, _08020294 @ =gSharedMem\n\
- cmp r4, 0x19\n\
- beq _080202A0\n\
- ldr r3, _08020298 @ =0x0001605f\n\
- adds r1, r5, r3\n\
- ldrb r0, [r1]\n\
- movs r2, 0x1\n\
- ands r2, r0\n\
- cmp r2, 0\n\
- bne _080202A0\n\
- lsrs r0, 1\n\
- strb r0, [r1]\n\
- ldr r0, _0802029C @ =0x0001600f\n\
- adds r1, r5, r0\n\
- b _080202C8\n\
- .align 2, 0\n\
-_08020294: .4byte gSharedMem\n\
-_08020298: .4byte 0x0001605f\n\
-_0802029C: .4byte 0x0001600f\n\
-_080202A0:\n\
- ldr r1, _080202D4 @ =0x00016018\n\
- adds r0, r5, r1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _080202D8 @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- cmp r0, 0x64\n\
- bne _080202E8\n\
- ldr r2, _080202DC @ =0x0001605f\n\
- adds r1, r5, r2\n\
- ldrb r0, [r1]\n\
- lsrs r0, 1\n\
- movs r2, 0\n\
- strb r0, [r1]\n\
- ldr r3, _080202E0 @ =0x0001600f\n\
- adds r1, r5, r3\n\
-_080202C8:\n\
- movs r0, 0x5\n\
- strb r0, [r1]\n\
- ldr r0, _080202E4 @ =gBattleMoveDamage\n\
- str r2, [r0]\n\
- b _08020996\n\
- .align 2, 0\n\
-_080202D4: .4byte 0x00016018\n\
-_080202D8: .4byte gPlayerParty\n\
-_080202DC: .4byte 0x0001605f\n\
-_080202E0: .4byte 0x0001600f\n\
-_080202E4: .4byte gBattleMoveDamage\n\
-_080202E8:\n\
- ldr r0, _0802034C @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r0, 0x8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _08020316\n\
- ldr r0, _08020350 @ =gBattleMons\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _08020316\n\
- ldr r0, _08020354 @ =0x0001601b\n\
- adds r5, r0\n\
- ldrb r0, [r5]\n\
- cmp r0, 0\n\
- bne _08020316\n\
- bl BattleMusicStop\n\
- ldr r0, _08020358 @ =0x00000161\n\
- bl PlayBGM\n\
- ldrb r0, [r5]\n\
- adds r0, 0x1\n\
- strb r0, [r5]\n\
-_08020316:\n\
- ldr r5, _0802035C @ =gSharedMem\n\
- ldr r1, _08020360 @ =0x00016018\n\
- adds r0, r5, r1\n\
- ldrb r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _08020364 @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- bne _08020332\n\
- b _0802051E\n\
-_08020332:\n\
- ldr r2, _08020368 @ =0x0001605f\n\
- adds r0, r5, r2\n\
- ldrb r0, [r0]\n\
- movs r3, 0x1\n\
- ands r3, r0\n\
- cmp r3, 0\n\
- beq _08020370\n\
- ldr r1, _0802036C @ =gBattleMoveDamage\n\
- mov r3, r10\n\
- ldrh r0, [r3]\n\
- str r0, [r1]\n\
- mov r8, r1\n\
- b _08020376\n\
- .align 2, 0\n\
-_0802034C: .4byte gBattleTypeFlags\n\
-_08020350: .4byte gBattleMons\n\
-_08020354: .4byte 0x0001601b\n\
-_08020358: .4byte 0x00000161\n\
-_0802035C: .4byte gSharedMem\n\
-_08020360: .4byte 0x00016018\n\
-_08020364: .4byte gPlayerParty\n\
-_08020368: .4byte 0x0001605f\n\
-_0802036C: .4byte gBattleMoveDamage\n\
-_08020370:\n\
- ldr r0, _080203EC @ =gBattleMoveDamage\n\
- str r3, [r0]\n\
- mov r8, r0\n\
-_08020376:\n\
- cmp r4, 0x19\n\
- bne _08020386\n\
- ldr r0, _080203F0 @ =gExpShareExp\n\
- ldrh r1, [r0]\n\
- mov r2, r8\n\
- ldr r0, [r2]\n\
- adds r0, r1\n\
- str r0, [r2]\n\
-_08020386:\n\
- cmp r4, 0x28\n\
- bne _0802039C\n\
- mov r3, r8\n\
- ldr r1, [r3]\n\
- movs r0, 0x96\n\
- muls r0, r1\n\
- movs r1, 0x64\n\
- bl __divsi3\n\
- mov r1, r8\n\
- str r0, [r1]\n\
-_0802039C:\n\
- ldr r0, _080203F4 @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r0, 0x8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080203B8\n\
- ldr r4, _080203EC @ =gBattleMoveDamage\n\
- ldr r1, [r4]\n\
- movs r0, 0x96\n\
- muls r0, r1\n\
- movs r1, 0x64\n\
- bl __divsi3\n\
- str r0, [r4]\n\
-_080203B8:\n\
- ldr r0, _080203F8 @ =gSharedMem\n\
- ldr r2, _080203FC @ =0x00016018\n\
- adds r0, r2\n\
- ldrb r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _08020400 @ =gPlayerParty\n\
- adds r0, r1\n\
- bl IsTradedMon\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _08020404\n\
- ldr r4, _080203EC @ =gBattleMoveDamage\n\
- ldr r1, [r4]\n\
- movs r0, 0x96\n\
- muls r0, r1\n\
- movs r1, 0x64\n\
- bl __divsi3\n\
- str r0, [r4]\n\
- movs r7, 0xA5\n\
- lsls r7, 1\n\
- mov r8, r4\n\
- b _0802040A\n\
- .align 2, 0\n\
-_080203EC: .4byte gBattleMoveDamage\n\
-_080203F0: .4byte gExpShareExp\n\
-_080203F4: .4byte gBattleTypeFlags\n\
-_080203F8: .4byte gSharedMem\n\
-_080203FC: .4byte 0x00016018\n\
-_08020400: .4byte gPlayerParty\n\
-_08020404:\n\
- ldr r7, _0802043C @ =0x00000149\n\
- ldr r3, _08020440 @ =gBattleMoveDamage\n\
- mov r8, r3\n\
-_0802040A:\n\
- ldr r0, _08020444 @ =gBattleTypeFlags\n\
- ldrh r0, [r0]\n\
- movs r1, 0x1\n\
- ands r1, r0\n\
- cmp r1, 0\n\
- beq _08020488\n\
- ldr r1, _08020448 @ =gBattlePartyID\n\
- ldr r0, _0802044C @ =gSharedMem\n\
- ldr r3, _08020450 @ =0x00016018\n\
- adds r2, r0, r3\n\
- ldrh r1, [r1, 0x4]\n\
- adds r5, r0, 0\n\
- ldr r4, _08020454 @ =gBitTable\n\
- ldr r3, _08020458 @ =gAbsentBankFlags\n\
- ldrb r2, [r2]\n\
- cmp r1, r2\n\
- bne _08020460\n\
- ldrb r1, [r3]\n\
- ldr r0, [r4, 0x8]\n\
- ands r1, r0\n\
- cmp r1, 0\n\
- bne _08020460\n\
- ldr r0, _0802045C @ =0x000160a2\n\
- adds r1, r5, r0\n\
- b _0802047C\n\
- .align 2, 0\n\
-_0802043C: .4byte 0x00000149\n\
-_08020440: .4byte gBattleMoveDamage\n\
-_08020444: .4byte gBattleTypeFlags\n\
-_08020448: .4byte gBattlePartyID\n\
-_0802044C: .4byte gSharedMem\n\
-_08020450: .4byte 0x00016018\n\
-_08020454: .4byte gBitTable\n\
-_08020458: .4byte gAbsentBankFlags\n\
-_0802045C: .4byte 0x000160a2\n\
-_08020460:\n\
- ldrb r2, [r3]\n\
- ldr r0, [r4]\n\
- ands r2, r0\n\
- cmp r2, 0\n\
- bne _08020478\n\
- ldr r1, _08020474 @ =0x000160a2\n\
- adds r0, r5, r1\n\
- strb r2, [r0]\n\
- b _08020490\n\
- .align 2, 0\n\
-_08020474: .4byte 0x000160a2\n\
-_08020478:\n\
- ldr r2, _08020484 @ =0x000160a2\n\
- adds r1, r5, r2\n\
-_0802047C:\n\
- movs r0, 0x2\n\
- strb r0, [r1]\n\
- b _08020490\n\
- .align 2, 0\n\
-_08020484: .4byte 0x000160a2\n\
-_08020488:\n\
- ldr r0, _08020530 @ =gSharedMem\n\
- ldr r3, _08020534 @ =0x000160a2\n\
- adds r0, r3\n\
- strb r1, [r0]\n\
-_08020490:\n\
- ldr r1, _08020538 @ =gBattleTextBuff1\n\
- movs r3, 0\n\
- movs r2, 0xFD\n\
- strb r2, [r1]\n\
- movs r5, 0x4\n\
- strb r5, [r1, 0x1]\n\
- ldr r4, _08020530 @ =gSharedMem\n\
- ldr r0, _08020534 @ =0x000160a2\n\
- adds r6, r4, r0\n\
- ldrb r0, [r6]\n\
- strb r0, [r1, 0x2]\n\
- ldr r0, _0802053C @ =0x00016018\n\
- adds r4, r0\n\
- ldrb r0, [r4]\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x4]\n\
- ldr r1, _08020540 @ =gBattleTextBuff2\n\
- strb r2, [r1]\n\
- strb r3, [r1, 0x1]\n\
- strb r7, [r1, 0x2]\n\
- movs r3, 0xFF\n\
- lsls r3, 8\n\
- ands r7, r3\n\
- asrs r0, r7, 8\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- strb r0, [r1, 0x4]\n\
- ldr r1, _08020544 @ =gBattleTextBuff3\n\
- strb r2, [r1]\n\
- movs r0, 0x1\n\
- strb r0, [r1, 0x1]\n\
- strb r5, [r1, 0x2]\n\
- movs r0, 0x5\n\
- strb r0, [r1, 0x3]\n\
- mov r0, r8\n\
- ldr r2, [r0]\n\
- strb r2, [r1, 0x4]\n\
- adds r0, r2, 0\n\
- ands r0, r3\n\
- asrs r0, 8\n\
- strb r0, [r1, 0x5]\n\
- movs r0, 0xFF\n\
- lsls r0, 16\n\
- ands r0, r2\n\
- asrs r0, 16\n\
- strb r0, [r1, 0x6]\n\
- lsrs r2, 24\n\
- strb r2, [r1, 0x7]\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- strb r0, [r1, 0x8]\n\
- ldrb r1, [r6]\n\
- movs r0, 0xD\n\
- bl PrepareStringBattle\n\
- ldrb r1, [r4]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _08020548 @ =gPlayerParty\n\
- adds r0, r1\n\
- ldr r3, _0802054C @ =gBattleMons\n\
- ldr r1, _08020550 @ =gBank1\n\
- ldrb r2, [r1]\n\
- movs r1, 0x58\n\
- muls r1, r2\n\
- adds r1, r3\n\
- ldrh r1, [r1]\n\
- bl MonGainEVs\n\
-_0802051E:\n\
- ldr r1, _08020530 @ =gSharedMem\n\
- ldr r3, _08020554 @ =0x0001605f\n\
- adds r2, r1, r3\n\
- ldrb r0, [r2]\n\
- lsrs r0, 1\n\
- strb r0, [r2]\n\
- ldr r0, _08020558 @ =0x0001600f\n\
- adds r1, r0\n\
- b _08020618\n\
- .align 2, 0\n\
-_08020530: .4byte gSharedMem\n\
-_08020534: .4byte 0x000160a2\n\
-_08020538: .4byte gBattleTextBuff1\n\
-_0802053C: .4byte 0x00016018\n\
-_08020540: .4byte gBattleTextBuff2\n\
-_08020544: .4byte gBattleTextBuff3\n\
-_08020548: .4byte gPlayerParty\n\
-_0802054C: .4byte gBattleMons\n\
-_08020550: .4byte gBank1\n\
-_08020554: .4byte 0x0001605f\n\
-_08020558: .4byte 0x0001600f\n\
-_0802055C:\n\
- ldr r0, _08020620 @ =gBattleExecBuffer\n\
- ldr r2, [r0]\n\
- cmp r2, 0\n\
- beq _08020566\n\
- b _08020996\n\
-_08020566:\n\
- ldr r1, _08020624 @ =gBattleBufferB\n\
- ldr r4, _08020628 @ =gSharedMem\n\
- ldr r3, _0802062C @ =0x000160a2\n\
- adds r3, r4\n\
- mov r8, r3\n\
- ldrb r0, [r3]\n\
- lsls r0, 9\n\
- adds r0, r1\n\
- strb r2, [r0]\n\
- ldr r0, _08020630 @ =0x00016018\n\
- adds r7, r4, r0\n\
- ldrb r0, [r7]\n\
- movs r6, 0x64\n\
- muls r0, r6\n\
- ldr r5, _08020634 @ =gPlayerParty\n\
- adds r0, r5\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- cmp r0, 0\n\
- beq _08020612\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- cmp r0, 0x64\n\
- beq _08020612\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x3A\n\
- bl GetMonData\n\
- ldr r1, _08020638 @ =0x00017180\n\
- adds r4, r1\n\
- strh r0, [r4]\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x3B\n\
- bl GetMonData\n\
- strh r0, [r4, 0x2]\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x3C\n\
- bl GetMonData\n\
- strh r0, [r4, 0x4]\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x3D\n\
- bl GetMonData\n\
- strh r0, [r4, 0x6]\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x3E\n\
- bl GetMonData\n\
- strh r0, [r4, 0x8]\n\
- ldrb r0, [r7]\n\
- muls r0, r6\n\
- adds r0, r5\n\
- movs r1, 0x3F\n\
- bl GetMonData\n\
- strh r0, [r4, 0xA]\n\
- ldr r4, _0802063C @ =gActiveBank\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- strb r0, [r4]\n\
- ldrb r1, [r7]\n\
- ldr r0, _08020640 @ =gBattleMoveDamage\n\
- ldrh r2, [r0]\n\
- movs r0, 0\n\
- bl EmitExpBarUpdate\n\
- ldrb r0, [r4]\n\
- bl MarkBufferBankForExecution\n\
-_08020612:\n\
- ldr r1, _08020628 @ =gSharedMem\n\
- ldr r3, _08020644 @ =0x0001600f\n\
- adds r1, r3\n\
-_08020618:\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- b _08020996\n\
- .align 2, 0\n\
-_08020620: .4byte gBattleExecBuffer\n\
-_08020624: .4byte gBattleBufferB\n\
-_08020628: .4byte gSharedMem\n\
-_0802062C: .4byte 0x000160a2\n\
-_08020630: .4byte 0x00016018\n\
-_08020634: .4byte gPlayerParty\n\
-_08020638: .4byte 0x00017180\n\
-_0802063C: .4byte gActiveBank\n\
-_08020640: .4byte gBattleMoveDamage\n\
-_08020644: .4byte 0x0001600f\n\
-_08020648:\n\
- ldr r0, _080208AC @ =gBattleExecBuffer\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- beq _08020652\n\
- b _08020996\n\
-_08020652:\n\
- ldr r1, _080208B0 @ =gActiveBank\n\
- ldr r4, _080208B4 @ =gSharedMem\n\
- ldr r2, _080208B8 @ =0x000160a2\n\
- adds r0, r4, r2\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldr r2, _080208BC @ =gBattleBufferB\n\
- ldrb r3, [r1]\n\
- lsls r1, r3, 9\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x21\n\
- beq _0802066E\n\
- b _080208F0\n\
-_0802066E:\n\
- adds r0, r2, 0x1\n\
- adds r0, r1, r0\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xB\n\
- beq _0802067A\n\
- b _080208F0\n\
-_0802067A:\n\
- ldr r0, _080208C0 @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r0, 0x8\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080206A8\n\
- ldr r1, _080208C4 @ =gBattlePartyID\n\
- lsls r0, r3, 1\n\
- adds r2, r0, r1\n\
- ldr r0, _080208C8 @ =0x00016018\n\
- adds r1, r4, r0\n\
- ldrh r0, [r2]\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- bne _080206A8\n\
- adds r1, r0, 0\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _080208CC @ =gPlayerParty\n\
- adds r0, r1\n\
- adds r1, r3, 0\n\
- bl sub_80324F8\n\
-_080206A8:\n\
- ldr r1, _080208D0 @ =gBattleTextBuff1\n\
- movs r2, 0xFD\n\
- strb r2, [r1]\n\
- movs r0, 0x4\n\
- strb r0, [r1, 0x1]\n\
- ldr r5, _080208B0 @ =gActiveBank\n\
- ldrb r0, [r5]\n\
- strb r0, [r1, 0x2]\n\
- ldr r0, _080208B4 @ =gSharedMem\n\
- ldr r3, _080208C8 @ =0x00016018\n\
- adds r6, r0, r3\n\
- ldrb r0, [r6]\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x4]\n\
- ldr r4, _080208D4 @ =gBattleTextBuff2\n\
- strb r2, [r4]\n\
- movs r0, 0x1\n\
- strb r0, [r4, 0x1]\n\
- strb r0, [r4, 0x2]\n\
- movs r0, 0x3\n\
- strb r0, [r4, 0x3]\n\
- ldrb r0, [r6]\n\
- movs r1, 0x64\n\
- mov r8, r1\n\
- mov r2, r8\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- ldr r7, _080208CC @ =gPlayerParty\n\
- adds r0, r7\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- strb r0, [r4, 0x4]\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- strb r0, [r4, 0x5]\n\
- bl b_movescr_stack_push_cursor\n\
- ldr r2, _080208D8 @ =gLeveledUpInBattle\n\
- ldr r1, _080208DC @ =gBitTable\n\
- ldrb r0, [r6]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldrb r1, [r2]\n\
- orrs r0, r1\n\
- strb r0, [r2]\n\
- ldr r1, _080208E0 @ =gBattlescriptCurrInstr\n\
- ldr r0, _080208E4 @ =BattleScript_LevelUp\n\
- str r0, [r1]\n\
- ldr r4, _080208E8 @ =gBattleMoveDamage\n\
- ldr r2, _080208BC @ =gBattleBufferB\n\
- ldrb r1, [r5]\n\
- lsls r1, 9\n\
- adds r0, r2, 0x2\n\
- adds r0, r1, r0\n\
- ldrb r3, [r0]\n\
- adds r2, 0x3\n\
- adds r1, r2\n\
- ldrb r0, [r1]\n\
- lsls r0, 8\n\
- orrs r3, r0\n\
- str r3, [r4]\n\
- ldrb r0, [r6]\n\
- mov r3, r8\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r0, r7\n\
- movs r1, 0\n\
- bl AdjustFriendship\n\
- ldr r0, _080208C4 @ =gBattlePartyID\n\
- ldrb r1, [r6]\n\
- ldrh r0, [r0]\n\
- cmp r0, r1\n\
- bne _080207EC\n\
- ldr r4, _080208EC @ =gBattleMons\n\
- ldrh r0, [r4, 0x28]\n\
- cmp r0, 0\n\
- beq _080207EC\n\
- mov r0, r8\n\
- muls r0, r1\n\
- adds r0, r7\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- adds r1, r4, 0\n\
- adds r1, 0x2A\n\
- strb r0, [r1]\n\
- ldrb r0, [r6]\n\
- mov r1, r8\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r0, r7\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- strh r0, [r4, 0x28]\n\
- ldrb r0, [r6]\n\
- mov r2, r8\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r7\n\
- movs r1, 0x3A\n\
- bl GetMonData\n\
- strh r0, [r4, 0x2C]\n\
- ldrb r0, [r6]\n\
- mov r3, r8\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r0, r7\n\
- movs r1, 0x3B\n\
- bl GetMonData\n\
- strh r0, [r4, 0x2]\n\
- ldrb r0, [r6]\n\
- mov r1, r8\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r0, r7\n\
- movs r1, 0x3C\n\
- bl GetMonData\n\
- strh r0, [r4, 0x4]\n\
- ldrb r0, [r6]\n\
- mov r2, r8\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r7\n\
- movs r1, 0x3D\n\
- bl GetMonData\n\
- strh r0, [r4, 0x6]\n\
- ldrb r0, [r6]\n\
- mov r3, r8\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- adds r0, r7\n\
- movs r1, 0x3D\n\
- bl GetMonData\n\
- strh r0, [r4, 0x6]\n\
- ldrb r0, [r6]\n\
- mov r1, r8\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r0, r7\n\
- movs r1, 0x3E\n\
- bl GetMonData\n\
- strh r0, [r4, 0x8]\n\
- ldrb r0, [r6]\n\
- mov r2, r8\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r7\n\
- movs r1, 0x3F\n\
- bl GetMonData\n\
- strh r0, [r4, 0xA]\n\
-_080207EC:\n\
- ldr r0, _080208C4 @ =gBattlePartyID\n\
- ldr r1, _080208B4 @ =gSharedMem\n\
- ldr r3, _080208C8 @ =0x00016018\n\
- adds r7, r1, r3\n\
- ldrb r2, [r7]\n\
- ldrh r0, [r0, 0x4]\n\
- cmp r0, r2\n\
- bne _080208F6\n\
- ldr r6, _080208EC @ =gBattleMons\n\
- movs r0, 0xD8\n\
- adds r0, r6\n\
- mov r8, r0\n\
- ldrh r0, [r0]\n\
- cmp r0, 0\n\
- beq _080208F6\n\
- ldr r0, _080208C0 @ =gBattleTypeFlags\n\
- ldrh r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080208F6\n\
- movs r5, 0x64\n\
- adds r0, r2, 0\n\
- muls r0, r5\n\
- ldr r4, _080208CC @ =gPlayerParty\n\
- adds r0, r4\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- adds r1, r6, 0\n\
- adds r1, 0xDA\n\
- strb r0, [r1]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x39\n\
- bl GetMonData\n\
- mov r1, r8\n\
- strh r0, [r1]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x3A\n\
- bl GetMonData\n\
- adds r1, r6, 0\n\
- adds r1, 0xDC\n\
- strh r0, [r1]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x3B\n\
- bl GetMonData\n\
- adds r1, r6, 0\n\
- adds r1, 0xB2\n\
- strh r0, [r1]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x3C\n\
- bl GetMonData\n\
- adds r1, r6, 0\n\
- adds r1, 0xB4\n\
- strh r0, [r1]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x3D\n\
- bl GetMonData\n\
- movs r2, 0xB6\n\
- adds r2, r6\n\
- mov r8, r2\n\
- strh r0, [r2]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x3D\n\
- bl GetMonData\n\
- mov r3, r8\n\
- strh r0, [r3]\n\
- ldrb r0, [r7]\n\
- muls r0, r5\n\
- adds r0, r4\n\
- movs r1, 0x3E\n\
- bl GetMonData\n\
- adds r1, r6, 0\n\
- adds r1, 0xB8\n\
- strh r0, [r1]\n\
- b _080208F6\n\
- .align 2, 0\n\
-_080208AC: .4byte gBattleExecBuffer\n\
-_080208B0: .4byte gActiveBank\n\
-_080208B4: .4byte gSharedMem\n\
-_080208B8: .4byte 0x000160a2\n\
-_080208BC: .4byte gBattleBufferB\n\
-_080208C0: .4byte gBattleTypeFlags\n\
-_080208C4: .4byte gBattlePartyID\n\
-_080208C8: .4byte 0x00016018\n\
-_080208CC: .4byte gPlayerParty\n\
-_080208D0: .4byte gBattleTextBuff1\n\
-_080208D4: .4byte gBattleTextBuff2\n\
-_080208D8: .4byte gLeveledUpInBattle\n\
-_080208DC: .4byte gBitTable\n\
-_080208E0: .4byte gBattlescriptCurrInstr\n\
-_080208E4: .4byte BattleScript_LevelUp\n\
-_080208E8: .4byte gBattleMoveDamage\n\
-_080208EC: .4byte gBattleMons\n\
-_080208F0:\n\
- ldr r1, _08020904 @ =gBattleMoveDamage\n\
- movs r0, 0\n\
- str r0, [r1]\n\
-_080208F6:\n\
- ldr r0, _08020908 @ =gSharedMem\n\
- ldr r1, _0802090C @ =0x0001600f\n\
- adds r0, r1\n\
- movs r1, 0x5\n\
- strb r1, [r0]\n\
- b _08020996\n\
- .align 2, 0\n\
-_08020904: .4byte gBattleMoveDamage\n\
-_08020908: .4byte gSharedMem\n\
-_0802090C: .4byte 0x0001600f\n\
-_08020910:\n\
- ldr r0, _08020924 @ =gBattleMoveDamage\n\
- ldr r0, [r0]\n\
- cmp r0, 0\n\
- beq _08020930\n\
- ldr r0, _08020928 @ =gSharedMem\n\
- ldr r2, _0802092C @ =0x0001600f\n\
- adds r0, r2\n\
- movs r1, 0x3\n\
- strb r1, [r0]\n\
- b _08020996\n\
- .align 2, 0\n\
-_08020924: .4byte gBattleMoveDamage\n\
-_08020928: .4byte gSharedMem\n\
-_0802092C: .4byte 0x0001600f\n\
-_08020930:\n\
- ldr r2, _08020950 @ =gSharedMem\n\
- ldr r3, _08020954 @ =0x00016018\n\
- adds r1, r2, r3\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x5\n\
- bhi _0802095C\n\
- ldr r0, _08020958 @ =0x0001600f\n\
- adds r1, r2, r0\n\
- movs r0, 0x2\n\
- strb r0, [r1]\n\
- b _08020996\n\
- .align 2, 0\n\
-_08020950: .4byte gSharedMem\n\
-_08020954: .4byte 0x00016018\n\
-_08020958: .4byte 0x0001600f\n\
-_0802095C:\n\
- ldr r3, _08020968 @ =0x0001600f\n\
- adds r1, r2, r3\n\
- movs r0, 0x6\n\
- strb r0, [r1]\n\
- b _08020996\n\
- .align 2, 0\n\
-_08020968: .4byte 0x0001600f\n\
-_0802096C:\n\
- ldr r0, _080209A4 @ =gBattleExecBuffer\n\
- ldr r5, [r0]\n\
- cmp r5, 0\n\
- bne _08020996\n\
- ldr r4, _080209A8 @ =gBattleMons\n\
- ldr r2, _080209AC @ =gBank1\n\
- ldrb r0, [r2]\n\
- movs r1, 0x58\n\
- muls r0, r1\n\
- adds r0, r4\n\
- movs r3, 0\n\
- strh r5, [r0, 0x2E]\n\
- ldrb r0, [r2]\n\
- muls r0, r1\n\
- adds r0, r4\n\
- adds r0, 0x20\n\
- strb r3, [r0]\n\
- ldr r1, _080209B0 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r1]\n\
- adds r0, 0x2\n\
- str r0, [r1]\n\
-_08020996:\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\
- .align 2, 0\n\
-_080209A4: .4byte gBattleExecBuffer\n\
-_080209A8: .4byte gBattleMons\n\
-_080209AC: .4byte gBank1\n\
-_080209B0: .4byte gBattlescriptCurrInstr\n\
- .syntax divided\n");
-}
-
-#endif // NONMATCHING
#ifdef NONMATCHING
static void atk24(void)
@@ -6958,7 +6056,7 @@ _08020B50: .4byte gBattlescriptCurrInstr\n\
static void MoveValuesCleanUp(void)
{
gBattleMoveFlags = 0;
- BATTLE_STRUCT->dmgMultiplier = 1;
+ gBattleStruct->dmgMultiplier = 1;
gCritMultiplier = 1;
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattleCommunication[6] = 0;
@@ -7283,26 +6381,26 @@ static void atk3B_healthbar_update(void)
static void atk3C_return(void)
{
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
}
static void atk3D_end(void)
{
gBattleMoveFlags = 0;
gActiveBank = 0;
- gFightStateTracker = 0xB;
+ gCurrentActionFuncId = 0xB;
}
static void atk3E_end2(void)
{
//not much difference between this and 3D. It's more apparent in Emerald
gActiveBank = 0;
- gFightStateTracker = 0xB;
+ gCurrentActionFuncId = 0xB;
}
static void atk3F_end3(void) //pops the main function stack
{
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
if (B_FUNCTION_STACK->size)
B_FUNCTION_STACK->size--;
gBattleMainFunc = B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size];
@@ -7310,7 +6408,7 @@ static void atk3F_end3(void) //pops the main function stack
static void atk41_call(void)
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 5);
+ BattleScriptPush(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
@@ -7354,7 +6452,7 @@ static void atk45_playanimation(void)
}
else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
{
- b_movescr_stack_push(gBattlescriptCurrInstr + 7);
+ BattleScriptPush(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = BattleScript_Pausex20;
}
else if (gBattlescriptCurrInstr[2] == B_ANIM_RAIN_CONTINUES
@@ -7423,7 +6521,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
static void atk47_setgraphicalstatchangevalues(void)
{
u8 to_add = 0;
- switch (BATTLE_STRUCT->statChanger & 0xF0)
+ switch (gBattleStruct->statChanger & 0xF0)
{
case 0x10: //+1
to_add = 0xF;
@@ -7438,8 +6536,8 @@ static void atk47_setgraphicalstatchangevalues(void)
to_add = 0x2E;
break;
}
- BATTLE_STRUCT->animArg1 = (BATTLE_STRUCT->statChanger & 0xF) + to_add - 1;
- BATTLE_STRUCT->animArg2 = 0;
+ gBattleStruct->animArg1 = (gBattleStruct->statChanger & 0xF) + to_add - 1;
+ gBattleStruct->animArg2 = 0;
gBattlescriptCurrInstr++;
}
@@ -7467,7 +6565,7 @@ static void atk48_playstatchangeanimation(void)
if (!(T2_READ_8(gBattlescriptCurrInstr + 3)))
{
u8 ability;
- if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer)
+ if (gSideTimers[GetBankIdentity(gActiveBank) & 1].mistTimer)
continue;
ability = gBattleMons[gActiveBank].ability;
if (ability == ABILITY_CLEAR_BODY || ability == ABILITY_WHITE_SMOKE || (ability == ABILITY_KEEN_EYE && curr_stat == 6) || (ability == ABILITY_HYPER_CUTTER && curr_stat == 1))
@@ -7513,14 +6611,14 @@ static void atk48_playstatchangeanimation(void)
stat_animID = 0x38;
}
if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 2 && changeable_stats <= 1)
- || changeable_stats == 0 || BATTLE_STRUCT->filler2[0] != 0)
+ || changeable_stats == 0 || gBattleStruct->filler2[0] != 0)
gBattlescriptCurrInstr += 4;
else
{
EmitBattleAnimation(0, 1, stat_animID);
MarkBufferBankForExecution(gActiveBank);
if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1)
- BATTLE_STRUCT->filler2[0] = 1;
+ gBattleStruct->filler2[0] = 1;
gBattlescriptCurrInstr += 4;
}
}
@@ -7602,7 +6700,7 @@ _0802167C:\n\
lsls r0, r1, 1\n\
adds r0, r1\n\
lsls r0, 2\n\
- ldr r1, _08021704 @ =gSideTimer\n\
+ ldr r1, _08021704 @ =gSideTimers\n\
adds r0, r1\n\
ldrb r0, [r0, 0x2]\n\
ldr r3, [sp]\n\
@@ -7665,7 +6763,7 @@ _080216E4:\n\
b _08021770\n\
.align 2, 0\n\
_08021700: .4byte gActiveBank\n\
-_08021704: .4byte gSideTimer\n\
+_08021704: .4byte gSideTimers\n\
_08021708: .4byte gBattleMons\n\
_0802170C: .4byte gBattlescriptCurrInstr\n\
_08021710:\n\
@@ -7813,14 +6911,14 @@ static void atk49_moveend(void)
hold_effect_atk = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
choiced_move_atk = (u16*)(gBankAttacker * (ewram_addr + 0x160E8));
- if (BATTLE_STRUCT->dynamicMoveType)
- move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
+ if (gBattleStruct->dynamicMoveType)
+ move_type = gBattleStruct->dynamicMoveType & 0x3F;
else
move_type = gBattleMoves[gCurrentMove].type;
do
{
- switch (BATTLE_STRUCT->cmd49StateTracker)
+ switch (gBattleStruct->cmd49StateTracker)
{
case 0: //rage check
if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE
@@ -7830,11 +6928,11 @@ static void atk49_moveend(void)
&& gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB)
{
gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_RageIsBuilding;
effect = 1;
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 1: //defrosting check
if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE
@@ -7844,34 +6942,34 @@ static void atk49_moveend(void)
{
gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE);
gActiveBank = gBankTarget;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
MarkBufferBankForExecution(gActiveBank);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove;
effect = 1;
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 2: //target synchronize
if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankTarget, 0, 0, 0))
effect = 1;
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 3: //contact abilities
if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankTarget, 0, 0, 0))
effect = 1;
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 4: //status immunities
if (AbilityBattleEffects(ABILITYEFFECT_IMMUNITY, 0, 0, 0, 0))
effect = 1; //it loops through 4 banks, so we increment after its done with all banks
else
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 5: //attacker synchronize
if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBankAttacker, 0, 0, 0))
effect = 1;
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 6: //update choice band move
if (gHitMarker & HITMARKER_OBEYS && hold_effect_atk == HOLD_EFFECT_CHOICE_BAND
@@ -7883,7 +6981,7 @@ static void atk49_moveend(void)
if (i == 4)
*choiced_move_atk = 0;
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 7: //changed held items
for (i = 0; i < gNoOfAllBanks; i++)
@@ -7892,7 +6990,7 @@ static void atk49_moveend(void)
if (CHANGED_ITEM(i))
gBattleMons[i].item = CHANGED_ITEM(i);
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 8: //make sprite invisible
if (gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)
@@ -7902,12 +7000,11 @@ static void atk49_moveend(void)
EmitSpriteInvisibility(0, 1);
MarkBufferBankForExecution(gActiveBank);
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
- //sub_8015660 CheckIfMoveFailed
case 9: //semi-invlurneable attacker make visible
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
- || sub_8015660(gBankAttacker))
+ || WasUnableToUseMove(gBankAttacker))
{
gActiveBank = gBankAttacker;
EmitSpriteInvisibility(0, 0);
@@ -7915,11 +7012,11 @@ static void atk49_moveend(void)
gStatuses3 &= ~(STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER);
gSpecialStatuses[gBankAttacker].restored_bank_sprite = 1;
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 10: //semi-invlurneable target make visible
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
- || sub_8015660(gBankTarget))
+ || WasUnableToUseMove(gBankTarget))
{
gActiveBank = gBankTarget;
EmitSpriteInvisibility(0, 0);
@@ -7927,7 +7024,7 @@ static void atk49_moveend(void)
gStatuses3 &= ~(STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER);
gSpecialStatuses[gBankTarget].restored_bank_sprite = 1;
}
- BATTLE_STRUCT->cmd49StateTracker++;
+ gBattleStruct->cmd49StateTracker++;
break;
case 11: //
}
@@ -7936,7 +7033,7 @@ static void atk49_moveend(void)
}
#else
__attribute__((naked))
-static void atk49_moveend(void)
+void atk49_moveend(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -8019,7 +7116,7 @@ _08021874:\n\
lsls r0, 2\n\
adds r0, r2\n\
ldr r0, [r0]\n\
- bl b_movescr_stack_push\n\
+ bl BattleScriptPush\n\
ldr r1, _080218B8 @ =gBattlescriptCurrInstr\n\
ldr r0, _080218BC @ =gUnknown_081D9B2D\n\
bl _0802229C\n\
@@ -8164,7 +7261,7 @@ _080219C8:\n\
bgt _080219FE\n\
adds r0, r2, 0x1\n\
strb r0, [r1, 0x19]\n\
- bl b_movescr_stack_push_cursor\n\
+ bl BattleScriptPushCursor\n\
ldr r1, _08021A24 @ =gBattlescriptCurrInstr\n\
ldr r0, _08021A28 @ =BattleScript_RageIsBuilding\n\
str r0, [r1]\n\
@@ -8259,10 +7356,10 @@ _08021A92:\n\
movs r1, 0x28\n\
movs r2, 0\n\
movs r3, 0x4\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
- bl b_movescr_stack_push_cursor\n\
+ bl BattleScriptPushCursor\n\
ldr r1, _08021AE8 @ =gBattlescriptCurrInstr\n\
ldr r0, _08021AEC @ =BattleScript_DefrostedViaFireMove\n\
str r0, [r1]\n\
@@ -8572,7 +7669,7 @@ _08021D18:\n\
cmp r0, 0\n\
beq _08021D44\n\
adds r0, r2, 0\n\
- bl sub_8015660\n\
+ bl WasUnableToUseMove\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08021D7E\n\
@@ -8872,7 +7969,7 @@ _08021FA0:\n\
ldr r0, _08021FD4 @ =0x0000ffff\n\
cmp r2, r0\n\
bne _08021FEC\n\
- ldr r1, _08021FE8 @ =gMoveHitWith\n\
+ ldr r1, _08021FE8 @ =gLastLandedMoves\n\
ldr r4, _08021FDC @ =gBankTarget\n\
ldrb r0, [r4]\n\
lsls r0, 1\n\
@@ -8886,9 +7983,9 @@ _08021FD8: .4byte gUnknown_02024C4C\n\
_08021FDC: .4byte gBankTarget\n\
_08021FE0: .4byte gUnknown_02024C5C\n\
_08021FE4: .4byte gBattleMoveFlags\n\
-_08021FE8: .4byte gMoveHitWith\n\
+_08021FE8: .4byte gLastLandedMoves\n\
_08021FEC:\n\
- ldr r0, _08022014 @ =gMoveHitWith\n\
+ ldr r0, _08022014 @ =gLastLandedMoves\n\
ldr r5, _08022018 @ =gBankTarget\n\
ldrb r1, [r5]\n\
lsls r1, 1\n\
@@ -8901,7 +7998,7 @@ _08021FEC:\n\
ldrb r3, [r0]\n\
cmp r3, 0\n\
beq _08022028\n\
- ldr r0, _08022024 @ =gUnknown_02024C44\n\
+ ldr r0, _08022024 @ =gLastHitByType\n\
ldrb r1, [r5]\n\
lsls r1, 1\n\
adds r1, r0\n\
@@ -8909,13 +8006,13 @@ _08021FEC:\n\
ands r0, r3\n\
b _08021C22\n\
.align 2, 0\n\
-_08022014: .4byte gMoveHitWith\n\
+_08022014: .4byte gLastLandedMoves\n\
_08022018: .4byte gBankTarget\n\
_0802201C: .4byte gCurrentMove\n\
_08022020: .4byte 0x0001601c\n\
-_08022024: .4byte gUnknown_02024C44\n\
+_08022024: .4byte gLastHitByType\n\
_08022028:\n\
- ldr r0, _08022044 @ =gUnknown_02024C44\n\
+ ldr r0, _08022044 @ =gLastHitByType\n\
ldr r1, _08022048 @ =gBankTarget\n\
ldrb r2, [r1]\n\
lsls r2, 1\n\
@@ -8929,10 +8026,10 @@ _08022028:\n\
strh r0, [r2]\n\
b _08022244\n\
.align 2, 0\n\
-_08022044: .4byte gUnknown_02024C44\n\
+_08022044: .4byte gLastHitByType\n\
_08022048: .4byte gBankTarget\n\
_0802204C:\n\
- ldr r0, _0802205C @ =gMoveHitWith\n\
+ ldr r0, _0802205C @ =gLastLandedMoves\n\
ldr r2, _08022060 @ =gBankTarget\n\
ldrb r1, [r2]\n\
lsls r1, 1\n\
@@ -8940,7 +8037,7 @@ _0802204C:\n\
ldr r0, _08022064 @ =0x0000ffff\n\
b _08021C22\n\
.align 2, 0\n\
-_0802205C: .4byte gMoveHitWith\n\
+_0802205C: .4byte gLastLandedMoves\n\
_08022060: .4byte gBankTarget\n\
_08022064: .4byte 0x0000ffff\n\
_08022068:\n\
@@ -9154,7 +8251,7 @@ _080221C0:\n\
eors r0, r1\n\
lsls r0, 24\n\
lsrs r0, 24\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
lsls r0, 24\n\
lsrs r2, r0, 24\n\
ldr r1, _080222CC @ =gBattleMons\n\
@@ -9257,7 +8354,7 @@ static void atk4A_typecalc2(void)
{
gLastUsedAbility = gBattleMons[gBankTarget].ability;
gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
- gMoveHitWith[gBankTarget] = 0;
+ gLastLandedMoves[gBankTarget] = 0;
gBattleCommunication[6] = move_type;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
}
@@ -9312,7 +8409,7 @@ static void atk4A_typecalc2(void)
{
gLastUsedAbility = ABILITY_WONDER_GUARD;
gBattleMoveFlags |= MOVESTATUS_MISSED;
- gMoveHitWith[gBankTarget] = 0;
+ gLastLandedMoves[gBankTarget] = 0;
gBattleCommunication[6] = 3;
RecordAbilityBattle(gBankTarget, gLastUsedAbility);
}
@@ -9347,27 +8444,19 @@ static void atk4C_getswitchedmondata(void)
gBattlescriptCurrInstr += 2;
}
-static inline u8 get_knocked_off_byte(u8 bank)
-{
- register u32 side asm("r2") = GetBankSide(bank);
- register struct WishFutureKnock* dummy = &gWishFutureKnock;
- register u8* aa = ((u8*)((u8*)(dummy)));
- register u8* bb = aa + 0x29;
- register u8* cc asm("r0") = side + bb;
- return *cc;
-}
-
static void atk4D_switchindataupdate(void)
{
- struct BattlePokemon OldData;
- int i;
+ struct BattlePokemon oldData;
+ s32 i;
u8 *monData;
+
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- OldData = gBattleMons[gActiveBank];
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ oldData = gBattleMons[gActiveBank];
monData = (u8*)(&gBattleMons[gActiveBank]);
+
for (i = 0; i < sizeof(struct BattlePokemon); i++)
{
monData[i] = gBattleBufferB[gActiveBank][4 + i];
@@ -9376,8 +8465,10 @@ static void atk4D_switchindataupdate(void)
gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility);
- //check knocked off item
- if (get_knocked_off_byte(gActiveBank) & gBitTable[gBattlePartyID[gActiveBank]])
+
+ // check knocked off item
+ i = GetBankSide(gActiveBank);
+ if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBank]])
{
gBattleMons[gActiveBank].item = 0;
}
@@ -9386,17 +8477,16 @@ static void atk4D_switchindataupdate(void)
{
for (i = 0; i < 8; i++)
{
- gBattleMons[gActiveBank].statStages[i] = OldData.statStages[i];
+ gBattleMons[gActiveBank].statStages[i] = oldData.statStages[i];
}
- gBattleMons[gActiveBank].status2 = OldData.status2;
+ gBattleMons[gActiveBank].status2 = oldData.status2;
}
- SwitchInClearStructs();
- BATTLE_STRUCT->scriptingActive = gActiveBank;
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 7;
- gBattleTextBuff1[2] = gActiveBank;
- gBattleTextBuff1[3] = gBattlePartyID[gActiveBank];
- gBattleTextBuff1[4] = EOS;
+
+ SwitchInClearSetData();
+
+ gBattleStruct->scriptingActive = gActiveBank;
+
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank]);
gBattlescriptCurrInstr += 2;
}
@@ -9457,18 +8547,18 @@ static void atk4F_jumpifcantswitch(void)
{
if (GetBankSide(gActiveBank) == 1)
{
- r7 = GetBankByPlayerAI(1);
+ r7 = GetBankByIdentity(1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- to_cmp = GetBankByPlayerAI(3);
+ to_cmp = GetBankByIdentity(3);
else
to_cmp = r7;
party = gEnemyParty;
}
else
{
- r7 = GetBankByPlayerAI(0);
+ r7 = GetBankByIdentity(0);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- to_cmp = GetBankByPlayerAI(2);
+ to_cmp = GetBankByIdentity(2);
else
to_cmp = r7;
party = gPlayerParty;
@@ -9491,7 +8581,7 @@ static void atk4F_jumpifcantswitch(void)
void sub_8022A3C(u8 unkown)
{
BATTLE_PARTY_ID(gActiveBank) = gBattlePartyID[gActiveBank];
- EmitChoosePokemon(0, 1, unkown, 0, BATTLE_STRUCT->unk1606C[gActiveBank]);
+ EmitChoosePokemon(0, 1, unkown, 0, gBattleStruct->unk1606C[gActiveBank]);
MarkBufferBankForExecution(gActiveBank);
}
@@ -10528,7 +9618,7 @@ _080232C4:\n\
eors r0, r1\n\
lsls r0, 24\n\
lsrs r0, 24\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
ldr r4, _08023310 @ =gActiveBank\n\
strb r0, [r4]\n\
ldr r0, _08023314 @ =gAbsentBankFlags\n\
@@ -10632,13 +9722,13 @@ static void atk52_switchineffects(void)
gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED;
- spikesDmg = (5 - gSideTimer[GetBankSide(gActiveBank)].spikesAmount) * 2;
+ spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2;
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg);
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- BATTLE_STRUCT->scriptingActive = gActiveBank;
- b_movescr_stack_push_cursor();
+ gBattleStruct->scriptingActive = gActiveBank;
+ BattleScriptPushCursor();
if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
gBattlescriptCurrInstr = BattleScript_SpikesOnTarget;
@@ -10660,8 +9750,8 @@ static void atk52_switchineffects(void)
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (gTurnOrder[i] == gActiveBank)
- gUnknown_02024A76[i] = 0xC;
+ if (gBanksByTurnOrder[i] == gActiveBank)
+ gActionsByTurnOrder[i] = 0xC;
}
for (i = 0; i < gNoOfAllBanks; i++)
@@ -10690,9 +9780,9 @@ static void atk52_switchineffects(void)
static void atk53_trainerslidein(void)
{
if (!T2_READ_8(gBattlescriptCurrInstr + 1))
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
else
- gActiveBank = GetBankByPlayerAI(1);
+ gActiveBank = GetBankByIdentity(1);
EmitTrainerSlide(0);
MarkBufferBankForExecution(gActiveBank);
@@ -10725,7 +9815,7 @@ static void atk56_playfaintcry(void)
static void atk57(void)
{
- gActiveBank = GetBankByPlayerAI(0);
+ gActiveBank = GetBankByIdentity(0);
Emitcmd55(0, gBattleOutcome);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 1;
@@ -10744,9 +9834,9 @@ void atk59_handlelearnnewmove(void)
u8* loc1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
u8* loc2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
- u16 ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], T2_READ_8(gBattlescriptCurrInstr + 9));
+ u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterID], T2_READ_8(gBattlescriptCurrInstr + 9));
while (ret == 0xFFFE)
- ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], 0);
+ ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterID], 0);
if (ret == 0)
{
@@ -10758,13 +9848,13 @@ void atk59_handlelearnnewmove(void)
}
else
{
- gActiveBank = GetBankByPlayerAI(0);
- if (gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
+ gActiveBank = GetBankByIdentity(0);
+ if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if
{
- gActiveBank = GetBankByPlayerAI(2);
- if (gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
+ gActiveBank = GetBankByIdentity(2);
+ if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret);
}
gBattlescriptCurrInstr = loc1;
@@ -10774,9 +9864,9 @@ void atk59_handlelearnnewmove(void)
void sub_8023A80(void)
{
sub_802BBD4(0x18, 8, 0x1D, 0xD, 0);
- InitWindow(&gUnknown_03004210, BattleText_YesNo, 0x100, 0x19, 0x9);
- sub_8002F44(&gUnknown_03004210);
- sub_814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20);
+ Text_InitWindow(&gUnknown_03004210, BattleText_YesNo, 0x100, 0x19, 0x9);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20);
}
void sub_8023AD8(void)
@@ -10788,11 +9878,11 @@ void sub_8023AD8(void)
static void atk5A_yesnoboxlearnmove(void)
{
gActiveBank = 0;
- switch (BATTLE_STRUCT->atk5A_StateTracker)
+ switch (gBattleStruct->atk5A_StateTracker)
{
case 0:
sub_8023A80();
- BATTLE_STRUCT->atk5A_StateTracker++;
+ gBattleStruct->atk5A_StateTracker++;
gBattleCommunication[1] = 0;
sub_802BC6C();
break;
@@ -10818,7 +9908,7 @@ static void atk5A_yesnoboxlearnmove(void)
{
sub_8023AD8();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- BATTLE_STRUCT->atk5A_StateTracker++;
+ gBattleStruct->atk5A_StateTracker++;
return;
}
goto state_tracker_4;
@@ -10827,31 +9917,31 @@ static void atk5A_yesnoboxlearnmove(void)
{
PlaySE(SE_SELECT);
state_tracker_4:
- BATTLE_STRUCT->atk5A_StateTracker = 4;
+ gBattleStruct->atk5A_StateTracker = 4;
}
break;
case 2:
if (!gPaletteFade.active)
{
- ShowSelectMovePokemonSummaryScreen(gPlayerParty, BATTLE_STRUCT->expGetterID, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
- BATTLE_STRUCT->atk5A_StateTracker++;
+ ShowSelectMovePokemonSummaryScreen(gPlayerParty, gBattleStruct->expGetterID, gPlayerPartyCount - 1, ReshowBattleScreenAfterMenu, gMoveToLearn);
+ gBattleStruct->atk5A_StateTracker++;
}
break;
case 3:
- if (!gPaletteFade.active && gMain.callback2 == sub_800F808)
+ if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2)
{
u8 move_pos = sub_809FA30();
if (move_pos == 4)
{
- BATTLE_STRUCT->atk5A_StateTracker = 4;
+ gBattleStruct->atk5A_StateTracker = 4;
}
else
{
- u16 move = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MOVE1 + move_pos);
+ u16 move = GetMonData(&gPlayerParty[gBattleStruct->expGetterID], MON_DATA_MOVE1 + move_pos);
if (IsHMMove2(move))
{
PrepareStringBattle(0x13F, gActiveBank);
- BATTLE_STRUCT->atk5A_StateTracker = 5;
+ gBattleStruct->atk5A_StateTracker = 5;
}
else
{
@@ -10867,15 +9957,15 @@ static void atk5A_yesnoboxlearnmove(void)
ptr += 4;
}
ptr[0] = 0xFF;
- RemoveMonPPBonus(&gPlayerParty[BATTLE_STRUCT->expGetterID], move_pos);
- SetMonMoveSlot(&gPlayerParty[BATTLE_STRUCT->expGetterID], gMoveToLearn, move_pos);
- if (gBattlePartyID[0] == BATTLE_STRUCT->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
+ RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterID], move_pos);
+ SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterID], gMoveToLearn, move_pos);
+ if (gBattlePartyID[0] == gBattleStruct->expGetterID && !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
&& !(gDisableStructs[0].unk18_b & gBitTable[move_pos]))
{
RemoveBattleMonPPBonus(&gBattleMons[0], move_pos);
SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, move_pos);
}
- if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == BATTLE_STRUCT->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == gBattleStruct->expGetterID && !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
&& !(gDisableStructs[2].unk18_b & gBitTable[move_pos]))
{
RemoveBattleMonPPBonus(&gBattleMons[2], move_pos);
@@ -10892,7 +9982,7 @@ static void atk5A_yesnoboxlearnmove(void)
case 5:
if (gBattleExecBuffer == 0)
{
- BATTLE_STRUCT->atk5A_StateTracker = 2;
+ gBattleStruct->atk5A_StateTracker = 2;
}
break;
}
@@ -10900,11 +9990,11 @@ static void atk5A_yesnoboxlearnmove(void)
static void atk5B_yesnoboxstoplearningmove(void)
{
- switch (BATTLE_STRUCT->atk5A_StateTracker)
+ switch (gBattleStruct->atk5A_StateTracker)
{
case 0:
sub_8023A80();
- BATTLE_STRUCT->atk5A_StateTracker++;
+ gBattleStruct->atk5A_StateTracker++;
gBattleCommunication[1] = 0;
sub_802BC6C();
break;
@@ -10966,7 +10056,7 @@ static void atk5D_getmoneyreward(void)
u32 money_to_give;
if (gTrainerBattleOpponent == 0x400)
{
- money_to_give = 2 * BATTLE_STRUCT->moneyMultiplier * MONEY_UNKNOWN;
+ money_to_give = 2 * gBattleStruct->moneyMultiplier * MONEY_UNKNOWN;
}
else
{
@@ -10994,7 +10084,7 @@ static void atk5D_getmoneyreward(void)
}
for (; gTrainerMoney[i * 4] != 0xFF && gTrainerMoney[i * 4 + 1] != gTrainers[gTrainerBattleOpponent].trainerClass ; i++) {}
- money_to_give = (r5 << 2) * BATTLE_STRUCT->moneyMultiplier;
+ money_to_give = (r5 << 2) * gBattleStruct->moneyMultiplier;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
money_to_give = 2 * gTrainerMoney[i * 4 + 1] * money_to_give;
else
@@ -11214,6 +10304,76 @@ _08024190: .4byte gBattlescriptCurrInstr\n\
}
#endif //NONMATCHING
+/*
+static u32 GetTrainerMoneyToGive(u16 trainerId)
+{
+ u32 i = 0;
+ u32 lastMonLevel = 0;
+ u32 moneyReward = 0;
+
+ if (trainerId == SECRET_BASE_OPPONENT)
+ {
+ moneyReward = 20 * eSecretBaseRecord->partyLevels[0] * gBattleStruct->moneyMultiplier;
+ }
+ else
+ {
+ switch (gTrainers[trainerId].partyFlags)
+ {
+ case 0:
+ {
+ const struct TrainerMonNoItemDefaultMoves *party = gTrainers[trainerId].party.NoItemDefaultMoves;
+ lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
+ }
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET:
+ {
+ const struct TrainerMonNoItemCustomMoves *party = gTrainers[trainerId].party.NoItemCustomMoves;
+ lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
+ }
+ break;
+ case F_TRAINER_PARTY_HELD_ITEM:
+ {
+ const struct TrainerMonItemDefaultMoves *party = gTrainers[trainerId].party.ItemDefaultMoves;
+ lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
+ }
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM:
+ {
+ const struct TrainerMonItemCustomMoves *party = gTrainers[trainerId].party.ItemCustomMoves;
+ lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl;
+ }
+ break;
+ }
+
+ for (; gTrainerMoneyTable[i].classId != 0xFF; i++)
+ {
+ if (gTrainerMoneyTable[i].classId == gTrainers[trainerId].trainerClass)
+ break;
+ }
+
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * 2 * gTrainerMoneyTable[i].value;
+ else
+ moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * gTrainerMoneyTable[i].value;
+ }
+
+ return moneyReward;
+}
+
+static void atk5D_getmoneyreward(void)
+{
+ u32 moneyReward = GetTrainerMoneyToGive(gTrainerBattleOpponent_A);
+ if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
+ moneyReward += GetTrainerMoneyToGive(gTrainerBattleOpponent_B);
+
+ AddMoney(&gSaveBlock1Ptr->money, moneyReward);
+
+ PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 5, moneyReward)
+
+ gBattlescriptCurrInstr++;
+}
+*/
+
static void atk5E_8025A70(void)
{
gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
@@ -11404,7 +10564,7 @@ static void atk68_cancelallactions(void)
int i;
for (i = 0; i < gNoOfAllBanks; i++)
{
- gUnknown_02024A76[i] = 0xC;
+ gActionsByTurnOrder[i] = 0xC;
}
gBattlescriptCurrInstr++;
}
@@ -11458,7 +10618,7 @@ void atk6A_removeitem(void)
USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item;
gBattleMons[gActiveBank].item = 0;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
}
@@ -11478,7 +10638,7 @@ static void atk6C_drawlvlupbox(void)
{
u8 r1 = 0;
u8 r7 = 0;
- switch (BATTLE_STRUCT->atk6C_statetracker)
+ switch (gBattleStruct->atk6C_statetracker)
{
case 0:
sub_802BBD4(0xB, 0, 0x1D, 0x7, r1);
@@ -11721,9 +10881,9 @@ _08024AC4:\n\
str r0, [sp]\n\
adds r0, r4, 0\n\
movs r3, 0xC\n\
- bl InitWindow\n\
+ bl Text_InitWindow\n\
adds r0, r4, 0\n\
- bl sub_8002F44\n\
+ bl Text_PrintWindow8002F44\n\
ldr r1, _08024AEC @ =gSharedMem\n\
ldr r2, _08024AF0 @ =0x0001609c\n\
adds r1, r2\n\
@@ -11842,9 +11002,9 @@ _08024BC0:\n\
str r0, [sp]\n\
adds r0, r4, 0\n\
movs r3, 0xC\n\
- bl InitWindow\n\
+ bl Text_InitWindow\n\
adds r0, r4, 0\n\
- bl sub_8002F44\n\
+ bl Text_PrintWindow8002F44\n\
ldr r1, _08024BFC @ =gSharedMem\n\
ldr r0, _08024C00 @ =0x0001609c\n\
adds r1, r0\n\
@@ -11901,13 +11061,13 @@ _08024C48: .4byte gBattlescriptCurrInstr\n\
static void atk6D_resetsentmonsvalue(void)
{
- sub_80156DC();
+ ResetSentPokesToOpponentValue();
gBattlescriptCurrInstr++;
}
static void atk6E_setatktoplayer0(void)
{
- gBankAttacker = GetBankByPlayerAI(0);
+ gBankAttacker = GetBankByIdentity(0);
gBattlescriptCurrInstr++;
}
@@ -11943,7 +11103,7 @@ static void atk71_buffermovetolearn(void)
static void atk72_jumpifplayerran(void)
{
- if (sub_8014AB8(gBank1))
+ if (TryRunFromBattle(gBank1))
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
@@ -11963,13 +11123,13 @@ static void atk73_hpthresholds(void)
result = 1;
if (result > 69 || !gBattleMons[opposing_bank].hp)
- BATTLE_STRUCT->hpScale = 0;
+ gBattleStruct->hpScale = 0;
else if (result > 39)
- BATTLE_STRUCT->hpScale = 1;
+ gBattleStruct->hpScale = 1;
else if (result > 9)
- BATTLE_STRUCT->hpScale = 2;
+ gBattleStruct->hpScale = 2;
else
- BATTLE_STRUCT->hpScale = 3;
+ gBattleStruct->hpScale = 3;
}
gBattlescriptCurrInstr += 2;
@@ -11984,17 +11144,17 @@ static void atk74_hpthresholds2(void)
{
gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBank ^ 1;
- hp_switchout = ewram160BCarr(GetBankSide(opposing_bank)); //BATTLE_STRUCT->HP_OnSwitchout[GetBankSide(opposing_bank)];
+ hp_switchout = ewram160BCarr(GetBankSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBankSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
if (gBattleMons[opposing_bank].hp >= hp_switchout)
- BATTLE_STRUCT->hpScale = 0;
+ gBattleStruct->hpScale = 0;
else if (result <= 29)
- BATTLE_STRUCT->hpScale = 1;
+ gBattleStruct->hpScale = 1;
else if (result <= 69)
- BATTLE_STRUCT->hpScale = 2;
+ gBattleStruct->hpScale = 2;
else
- BATTLE_STRUCT->hpScale = 3;
+ gBattleStruct->hpScale = 3;
}
gBattlescriptCurrInstr += 2;
@@ -12003,7 +11163,7 @@ static void atk74_hpthresholds2(void)
static void atk75_useitemonopponent(void)
{
gBankInMenu = gBankAttacker;
- sub_803E1B0(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1);
+ PokemonUseItemEffects(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1);
gBattlescriptCurrInstr += 1;
}
@@ -12020,8 +11180,8 @@ static void atk76_various(void)
u8 side;
gBankAttacker = gBankTarget;
side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp)
- gBankTarget = gSideTimer[side].followmeTarget;
+ if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
+ gBankTarget = gSideTimers[side].followmeTarget;
else
gBankTarget = gActiveBank;
}
@@ -12046,9 +11206,9 @@ static void atk76_various(void)
{
int i;
u16* choiced_move;
- if (gBattlePartyID[0] == BATTLE_STRUCT->expGetterID)
+ if (gBattlePartyID[0] == gBattleStruct->expGetterID)
goto ACTIVE_0;
- if (gBattlePartyID[2] != BATTLE_STRUCT->expGetterID)
+ if (gBattlePartyID[2] != gBattleStruct->expGetterID)
break;
if (gBattlePartyID[0] == gBattlePartyID[2])
{
@@ -12080,7 +11240,7 @@ static void atk77_setprotectlike(void) //protect and endure
if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE)
gDisableStructs[gBankAttacker].protectUses = 0;
- if (gCurrentMoveTurn == (gNoOfAllBanks - 1))
+ if (gCurrentTurnActionNumber == (gNoOfAllBanks - 1))
not_last_turn = 0;
if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] > Random() && not_last_turn)
@@ -12149,7 +11309,7 @@ static void atk79_setatkhptozero(void)
gActiveBank = gBankAttacker;
gBattleMons[gActiveBank].hp = 0;
- EmitSetAttributes(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
+ EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
@@ -12266,7 +11426,7 @@ static void atk7E_setreflect(void)
else
{
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT;
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
else
@@ -12334,7 +11494,7 @@ static void atk81_trysetrest(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattleMons[gBankTarget].status1 = 3;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 5;
}
@@ -12362,7 +11522,7 @@ bool8 UproarWakeUpCheck(u8 bank)
{
if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF) //wtf gamefreak, you should check this only once, not every time in a loop...
continue;
- BATTLE_STRUCT->scriptingActive = i;
+ gBattleStruct->scriptingActive = i;
if (gBankTarget == 0xFF)
gBankTarget = i;
else if (gBankTarget == i)
@@ -12431,7 +11591,7 @@ static void atk86_stockpiletobasedamage(void)
gSideAffecting[GetBankIdentity(gBankTarget) & 1], 0,
0, gBankAttacker, gBankTarget)
* gDisableStructs[gBankAttacker].stockpileCounter;
- BATTLE_STRUCT->animTurn = gDisableStructs[gBankAttacker].stockpileCounter;
+ gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter;
if (gProtectStructs[gBankAttacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
@@ -12462,7 +11622,7 @@ static void atk87_stockpiletohpheal(void)
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
- BATTLE_STRUCT->animTurn = gDisableStructs[gBankAttacker].stockpileCounter;
+ gBattleStruct->animTurn = gDisableStructs[gBankAttacker].stockpileCounter;
gDisableStructs[gBankAttacker].stockpileCounter = 0;
gBattlescriptCurrInstr += 5;
gBankTarget = gBankAttacker;
@@ -12471,767 +11631,186 @@ static void atk87_stockpiletohpheal(void)
static void atk88_negativedamage(void)
{
- gBattleMoveDamage = -(gHP_dealt / 2);
+ gBattleMoveDamage = -(gHpDealt / 2);
if (gBattleMoveDamage == 0)
gBattleMoveDamage = -1;
gBattlescriptCurrInstr++;
}
-#ifdef NONMATCHING
-u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
+static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
{
- u8 r9 = 0;
- u8 r10 = 0;
- u8 index;
- if (flags & 0x40)
+ bool8 certain = FALSE;
+ bool8 notProtectAffected = FALSE;
+ u32 index;
+
+ if (flags & MOVE_EFFECT_AFFECTS_USER)
gActiveBank = gBankAttacker;
else
gActiveBank = gBankTarget;
- flags &= ~(0x40);
- if (flags & 0x80)
- r9++;
- flags &= ~(0x80);
- if (flags & 0x20)
- r10++;
- flags &= ~(0x20);
- gBattleTextBuff1[0] = 0xFD;
- gBattleTextBuff1[1] = 5;
- gBattleTextBuff1[2] = stat;
- gBattleTextBuff1[3] = 0xFF;
+ flags &= ~(MOVE_EFFECT_AFFECTS_USER);
+
+ if (flags & MOVE_EFFECT_CERTAIN)
+ certain++;
+ flags &= ~(MOVE_EFFECT_CERTAIN);
+
+ if (flags & STAT_CHANGE_NOT_PROTECT_AFFECTED)
+ notProtectAffected++;
+ flags &= ~(STAT_CHANGE_NOT_PROTECT_AFFECTED);
+
+ PREPARE_STAT_BUFFER(gBattleTextBuff1, statId)
- if ((statchanger << 0x18) < 0) //stat decrease
+ if ((statValue << 0x18) < 0) // stat decrease
{
- if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer && !r9 && gCurrentMove != MOVE_CURSE)
+ if (gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer
+ && !certain && gCurrentMove != MOVE_CURSE)
{
- if (flags == 1)
+ if (flags == STAT_CHANGE_BS_PTR)
{
- if (gSpecialStatuses[gActiveBank].statloweringflag)
- gBattlescriptCurrInstr = bs_ptr;
+ if (gSpecialStatuses[gActiveBank].statLowered)
+ {
+ gBattlescriptCurrInstr = BS_ptr;
+ }
else
{
- b_movescr_stack_push(bs_ptr);
- BATTLE_STRUCT->scriptingActive = gActiveBank;
+ BattleScriptPush(BS_ptr);
+ gBattleStruct->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_MistProtected;
- gSpecialStatuses[gActiveBank].statloweringflag = 1;
+ gSpecialStatuses[gActiveBank].statLowered = 1;
}
}
- return 1;
+ return STAT_CHANGE_DIDNT_WORK;
}
- else if (gCurrentMove != MOVE_CURSE && r10 != 1 && JumpIfMoveAffectedByProtect(0))
+ else if (gCurrentMove != MOVE_CURSE
+ && notProtectAffected != TRUE && JumpIfMoveAffectedByProtect(0))
{
gBattlescriptCurrInstr = BattleScript_ButItFailed;
- return 1;
+ return STAT_CHANGE_DIDNT_WORK;
}
- else if ((gBattleMons[gActiveBank].ability == ABILITY_CLEAR_BODY || gBattleMons[gActiveBank].ability == ABILITY_WHITE_SMOKE) && !r9 && gCurrentMove != MOVE_CURSE)
+ else if ((gBattleMons[gActiveBank].ability == ABILITY_CLEAR_BODY
+ || gBattleMons[gActiveBank].ability == ABILITY_WHITE_SMOKE)
+ && !certain && gCurrentMove != MOVE_CURSE)
{
- if (flags == 1)
+ if (flags == STAT_CHANGE_BS_PTR)
{
- if (gSpecialStatuses[gActiveBank].statloweringflag)
- gBattlescriptCurrInstr = bs_ptr;
+ if (gSpecialStatuses[gActiveBank].statLowered)
+ {
+ gBattlescriptCurrInstr = BS_ptr;
+ }
else
{
- b_movescr_stack_push(bs_ptr);
- BATTLE_STRUCT->scriptingActive = gActiveBank;
+ BattleScriptPush(BS_ptr);
+ gBattleStruct->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
RecordAbilityBattle(gActiveBank, gLastUsedAbility);
- gSpecialStatuses[gActiveBank].statloweringflag = 1;
+ gSpecialStatuses[gActiveBank].statLowered = 1;
}
}
- return 1;
+ return STAT_CHANGE_DIDNT_WORK;
}
- else if (gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE && !r9 && stat == STAT_STAGE_ACC)
+ else if (gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE
+ && !certain && statId == STAT_STAGE_ACC)
{
- if (flags == 1)
+ if (flags == STAT_CHANGE_BS_PTR)
{
- b_movescr_stack_push(bs_ptr);
- BATTLE_STRUCT->scriptingActive = gActiveBank;
+ BattleScriptPush(BS_ptr);
+ gBattleStruct->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
RecordAbilityBattle(gActiveBank, gLastUsedAbility);
}
- return 1;
+ return STAT_CHANGE_DIDNT_WORK;
}
- else if (gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER && !r9 && stat == STAT_STAGE_ATK)
+ else if (gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER
+ && !certain && statId == STAT_STAGE_ATK)
{
- if (flags == 1)
+ if (flags == STAT_CHANGE_BS_PTR)
{
- b_movescr_stack_push(bs_ptr);
- BATTLE_STRUCT->scriptingActive = gActiveBank;
+ BattleScriptPush(BS_ptr);
+ gBattleStruct->scriptingActive = gActiveBank;
gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
RecordAbilityBattle(gActiveBank, gLastUsedAbility);
}
- return 1;
+ return STAT_CHANGE_DIDNT_WORK;
}
else if (gBattleMons[gActiveBank].ability == ABILITY_SHIELD_DUST && flags == 0)
- return 1;
- else //decrease
{
- statchanger = -((statchanger >> 4) & (7));
- gBattleTextBuff2[0] = 0xFD;
+ return STAT_CHANGE_DIDNT_WORK;
+ }
+ else // try to decrease
+ {
+ statValue = -GET_STAT_BUFF_VALUE(statValue);
+ gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN;
index = 1;
- if (statchanger == -2)
+ if (statValue == -2)
{
- gBattleTextBuff2[1] = 0;
- gBattleTextBuff2[2] = 0xD3; //harshly
- gBattleTextBuff2[3] = 0x0;
+ gBattleTextBuff2[1] = B_BUFF_STRING;
+ gBattleTextBuff2[2] = STRINGID_STATHARSHLY;
+ gBattleTextBuff2[3] = STRINGID_STATHARSHLY >> 8;
index = 4;
}
- gBattleTextBuff2[index] = 0;
+ gBattleTextBuff2[index] = B_BUFF_STRING;
index++;
- gBattleTextBuff2[index] = 0xD4; //fell
+ gBattleTextBuff2[index] = STRINGID_STATFELL;
index++;
- gBattleTextBuff2[index] = 0;
+ gBattleTextBuff2[index] = STRINGID_STATFELL >> 8;
index++;
- gBattleTextBuff2[index] = 0xFF;
+ gBattleTextBuff2[index] = B_BUFF_EOS;
- if (gBattleMons[gActiveBank].statStages[stat] == 0)
- {
+ if (gBattleMons[gActiveBank].statStages[statId] == 0)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
- }
else
- {
- u8 stringID = 0;
- if (gBankTarget == gActiveBank)
- stringID = 1;
- gBattleCommunication[MULTISTRING_CHOOSER] = stringID;
- }
+ gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank);
+
}
}
- else //stat increase
+ else // stat increase
{
- statchanger = (statchanger >> 4) & (7);
- gBattleTextBuff2[0] = 0xFD;
+ statValue = GET_STAT_BUFF_VALUE(statValue);
+ gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN;
index = 1;
- if (statchanger == 2)
+ if (statValue == 2)
{
- gBattleTextBuff2[1] = 0;
- gBattleTextBuff2[2] = 0xD1; //sharply
- gBattleTextBuff2[3] = 0x0;
+ gBattleTextBuff2[1] = B_BUFF_STRING;
+ gBattleTextBuff2[2] = STRINGID_STATSHARPLY;
+ gBattleTextBuff2[3] = STRINGID_STATSHARPLY >> 8;
index = 4;
}
- gBattleTextBuff2[index] = 0;
+ gBattleTextBuff2[index] = B_BUFF_STRING;
index++;
- gBattleTextBuff2[index] = 0xD2; //rose
+ gBattleTextBuff2[index] = STRINGID_STATROSE;
index++;
- gBattleTextBuff2[index] = 0;
+ gBattleTextBuff2[index] = STRINGID_STATROSE >> 8;
index++;
- gBattleTextBuff2[index] = 0xFF;
+ gBattleTextBuff2[index] = B_BUFF_EOS;
- if (gBattleMons[gActiveBank].statStages[stat] == 0xC)
- {
+ if (gBattleMons[gActiveBank].statStages[statId] == 0xC)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
- }
else
- {
- u8 stringID = 0;
- if (gBankTarget == gActiveBank)
- stringID = 1;
- gBattleCommunication[MULTISTRING_CHOOSER] = stringID;
- }
+ gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank);
}
- gBattleMons[gActiveBank].statStages[stat] += statchanger;
- if (gBattleMons[gActiveBank].statStages[stat] < 0)
- gBattleMons[gActiveBank].statStages[stat] = 0;
- if (gBattleMons[gActiveBank].statStages[stat] > 0xC)
- gBattleMons[gActiveBank].statStages[stat] = 0xC;
+ gBattleMons[gActiveBank].statStages[statId] += statValue;
+ if (gBattleMons[gActiveBank].statStages[statId] < 0)
+ gBattleMons[gActiveBank].statStages[statId] = 0;
+ if (gBattleMons[gActiveBank].statStages[statId] > 0xC)
+ gBattleMons[gActiveBank].statStages[statId] = 0xC;
- if (gBattleCommunication[MULTISTRING_CHOOSER] == 2)
- {
- if (flags & 1)
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & 1)) //what the actual fuck gamefreak...
- return 1;
- }
- return 0;
-}
+ if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR)
+ gBattleMoveFlags |= MOVESTATUS_MISSED;
-#else
-__attribute__((naked))
-u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- mov r8, r3\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- lsls r1, 24\n\
- lsrs r7, r1, 24\n\
- lsls r2, 24\n\
- lsrs r5, r2, 24\n\
- movs r0, 0\n\
- mov r9, r0\n\
- mov r10, r0\n\
- movs r0, 0x40\n\
- ands r0, r5\n\
- cmp r0, 0\n\
- beq _08025E54\n\
- ldr r0, _08025E4C @ =gActiveBank\n\
- ldr r1, _08025E50 @ =gBankAttacker\n\
- b _08025E58\n\
- .align 2, 0\n\
-_08025E4C: .4byte gActiveBank\n\
-_08025E50: .4byte gBankAttacker\n\
-_08025E54:\n\
- ldr r0, _08025EF8 @ =gActiveBank\n\
- ldr r1, _08025EFC @ =gBankTarget\n\
-_08025E58:\n\
- ldrb r1, [r1]\n\
- strb r1, [r0]\n\
- movs r0, 0xBF\n\
- ands r5, r0\n\
- movs r0, 0x80\n\
- ands r0, r5\n\
- cmp r0, 0\n\
- beq _08025E72\n\
- mov r0, r9\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r9, r0\n\
-_08025E72:\n\
- movs r0, 0x7F\n\
- ands r5, r0\n\
- movs r0, 0x20\n\
- ands r0, r5\n\
- cmp r0, 0\n\
- beq _08025E88\n\
- mov r0, r10\n\
- adds r0, 0x1\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- mov r10, r0\n\
-_08025E88:\n\
- movs r0, 0xDF\n\
- ands r5, r0\n\
- ldr r1, _08025F00 @ =gBattleTextBuff1\n\
- movs r4, 0\n\
- movs r2, 0xFD\n\
- strb r2, [r1]\n\
- movs r0, 0x5\n\
- strb r0, [r1, 0x1]\n\
- strb r7, [r1, 0x2]\n\
- movs r3, 0x1\n\
- negs r3, r3\n\
- mov r12, r3\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x3]\n\
- lsls r0, r6, 24\n\
- cmp r0, 0\n\
- blt _08025EAC\n\
- b _080261B0\n\
-_08025EAC:\n\
- ldr r4, _08025F04 @ =gSideTimer\n\
- ldr r1, _08025EF8 @ =gActiveBank\n\
- ldrb r0, [r1]\n\
- bl GetBankIdentity\n\
- movs r1, 0x1\n\
- ands r1, r0\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r4\n\
- ldrb r0, [r0, 0x2]\n\
- cmp r0, 0\n\
- beq _08025F54\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- bne _08025F54\n\
- ldr r0, _08025F08 @ =gCurrentMove\n\
- ldrh r0, [r0]\n\
- cmp r0, 0xAE\n\
- beq _08025F84\n\
- cmp r5, 0x1\n\
- bne _08025F74\n\
- ldr r4, _08025F0C @ =gSpecialStatuses\n\
- ldr r3, _08025EF8 @ =gActiveBank\n\
- ldrb r0, [r3]\n\
- lsls r1, r0, 2\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r4\n\
- ldrb r0, [r1]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08025F14\n\
- ldr r0, _08025F10 @ =gBattlescriptCurrInstr\n\
- mov r4, r8\n\
- str r4, [r0]\n\
- b _08025F74\n\
- .align 2, 0\n\
-_08025EF8: .4byte gActiveBank\n\
-_08025EFC: .4byte gBankTarget\n\
-_08025F00: .4byte gBattleTextBuff1\n\
-_08025F04: .4byte gSideTimer\n\
-_08025F08: .4byte gCurrentMove\n\
-_08025F0C: .4byte gSpecialStatuses\n\
-_08025F10: .4byte gBattlescriptCurrInstr\n\
-_08025F14:\n\
- mov r0, r8\n\
- bl b_movescr_stack_push\n\
- ldr r0, _08025F40 @ =gSharedMem\n\
- ldr r6, _08025F44 @ =gActiveBank\n\
- ldrb r1, [r6]\n\
- ldr r2, _08025F48 @ =0x00016003\n\
- adds r0, r2\n\
- strb r1, [r0]\n\
- ldr r1, _08025F4C @ =gBattlescriptCurrInstr\n\
- ldr r0, _08025F50 @ =BattleScript_MistProtected\n\
- str r0, [r1]\n\
- ldrb r1, [r6]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r4\n\
- ldrb r1, [r0]\n\
- movs r2, 0x1\n\
- orrs r1, r2\n\
- strb r1, [r0]\n\
- b _08025F74\n\
- .align 2, 0\n\
-_08025F40: .4byte gSharedMem\n\
-_08025F44: .4byte gActiveBank\n\
-_08025F48: .4byte 0x00016003\n\
-_08025F4C: .4byte gBattlescriptCurrInstr\n\
-_08025F50: .4byte BattleScript_MistProtected\n\
-_08025F54:\n\
- ldr r0, _08025F78 @ =gCurrentMove\n\
- ldrh r0, [r0]\n\
- cmp r0, 0xAE\n\
- beq _08025F84\n\
- mov r3, r10\n\
- cmp r3, 0x1\n\
- beq _08025F84\n\
- movs r0, 0\n\
- bl JumpIfMoveAffectedByProtect\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _08025F84\n\
- ldr r1, _08025F7C @ =gBattlescriptCurrInstr\n\
- ldr r0, _08025F80 @ =BattleScript_ButItFailed\n\
- str r0, [r1]\n\
-_08025F74:\n\
- movs r0, 0x1\n\
- b _080262A4\n\
- .align 2, 0\n\
-_08025F78: .4byte gCurrentMove\n\
-_08025F7C: .4byte gBattlescriptCurrInstr\n\
-_08025F80: .4byte BattleScript_ButItFailed\n\
-_08025F84:\n\
- ldr r2, _08025FCC @ =gBattleMons\n\
- ldr r1, _08025FD0 @ =gActiveBank\n\
- ldrb r3, [r1]\n\
- movs r4, 0x58\n\
- adds r0, r3, 0\n\
- muls r0, r4\n\
- adds r0, r2\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- mov r10, r2\n\
- cmp r0, 0x1D\n\
- beq _08025FA0\n\
- cmp r0, 0x49\n\
- bne _08026040\n\
-_08025FA0:\n\
- mov r0, r9\n\
- cmp r0, 0\n\
- bne _08026040\n\
- ldr r0, _08025FD4 @ =gCurrentMove\n\
- ldrh r0, [r0]\n\
- cmp r0, 0xAE\n\
- beq _08026040\n\
- cmp r5, 0x1\n\
- bne _08025F74\n\
- ldr r4, _08025FD8 @ =gSpecialStatuses\n\
- lsls r0, r3, 2\n\
- adds r0, r3\n\
- lsls r0, 2\n\
- adds r0, r4\n\
- ldrb r0, [r0]\n\
- lsls r0, 31\n\
- cmp r0, 0\n\
- beq _08025FE0\n\
- ldr r0, _08025FDC @ =gBattlescriptCurrInstr\n\
- mov r1, r8\n\
- str r1, [r0]\n\
- b _08025F74\n\
- .align 2, 0\n\
-_08025FCC: .4byte gBattleMons\n\
-_08025FD0: .4byte gActiveBank\n\
-_08025FD4: .4byte gCurrentMove\n\
-_08025FD8: .4byte gSpecialStatuses\n\
-_08025FDC: .4byte gBattlescriptCurrInstr\n\
-_08025FE0:\n\
- mov r0, r8\n\
- bl b_movescr_stack_push\n\
- ldr r0, _08026028 @ =gSharedMem\n\
- ldr r2, _0802602C @ =gActiveBank\n\
- ldrb r1, [r2]\n\
- ldr r3, _08026030 @ =0x00016003\n\
- adds r0, r3\n\
- strb r1, [r0]\n\
- ldr r1, _08026034 @ =gBattlescriptCurrInstr\n\
- ldr r0, _08026038 @ =BattleScript_AbilityNoStatLoss\n\
- str r0, [r1]\n\
- ldr r1, _0802603C @ =gLastUsedAbility\n\
- ldrb r0, [r2]\n\
- movs r6, 0x58\n\
- muls r0, r6\n\
- add r0, r10\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldrb r0, [r2]\n\
- ldrb r1, [r1]\n\
- bl RecordAbilityBattle\n\
- ldr r0, _0802602C @ =gActiveBank\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 2\n\
- adds r0, r1\n\
- lsls r0, 2\n\
- adds r0, r4\n\
- ldrb r1, [r0]\n\
- movs r2, 0x1\n\
- orrs r1, r2\n\
- strb r1, [r0]\n\
- b _08025F74\n\
- .align 2, 0\n\
-_08026028: .4byte gSharedMem\n\
-_0802602C: .4byte gActiveBank\n\
-_08026030: .4byte 0x00016003\n\
-_08026034: .4byte gBattlescriptCurrInstr\n\
-_08026038: .4byte BattleScript_AbilityNoStatLoss\n\
-_0802603C: .4byte gLastUsedAbility\n\
-_08026040:\n\
- ldr r1, _08026090 @ =gActiveBank\n\
- ldrb r0, [r1]\n\
- movs r4, 0x58\n\
- muls r0, r4\n\
- add r0, r10\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x33\n\
- bne _080260A8\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- bne _080260A8\n\
- cmp r7, 0x6\n\
- bne _080260A8\n\
- cmp r5, 0x1\n\
- bne _08025F74\n\
- mov r0, r8\n\
- bl b_movescr_stack_push\n\
- ldr r0, _08026094 @ =gSharedMem\n\
- ldr r3, _08026090 @ =gActiveBank\n\
- ldrb r1, [r3]\n\
- ldr r6, _08026098 @ =0x00016003\n\
- adds r0, r6\n\
- strb r1, [r0]\n\
- ldr r1, _0802609C @ =gBattlescriptCurrInstr\n\
- ldr r0, _080260A0 @ =BattleScript_AbilityNoSpecificStatLoss\n\
- str r0, [r1]\n\
- ldr r1, _080260A4 @ =gLastUsedAbility\n\
- ldrb r0, [r3]\n\
- muls r0, r4\n\
- add r0, r10\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldrb r0, [r3]\n\
- ldrb r1, [r1]\n\
- bl RecordAbilityBattle\n\
- b _08025F74\n\
- .align 2, 0\n\
-_08026090: .4byte gActiveBank\n\
-_08026094: .4byte gSharedMem\n\
-_08026098: .4byte 0x00016003\n\
-_0802609C: .4byte gBattlescriptCurrInstr\n\
-_080260A0: .4byte BattleScript_AbilityNoSpecificStatLoss\n\
-_080260A4: .4byte gLastUsedAbility\n\
-_080260A8:\n\
- ldr r1, _080260FC @ =gActiveBank\n\
- ldrb r0, [r1]\n\
- movs r4, 0x58\n\
- muls r0, r4\n\
- add r0, r10\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x34\n\
- bne _08026114\n\
- mov r2, r9\n\
- cmp r2, 0\n\
- bne _08026114\n\
- cmp r7, 0x1\n\
- bne _08026114\n\
- cmp r5, 0x1\n\
- beq _080260CA\n\
- b _08025F74\n\
-_080260CA:\n\
- mov r0, r8\n\
- bl b_movescr_stack_push\n\
- ldr r0, _08026100 @ =gSharedMem\n\
- ldr r3, _080260FC @ =gActiveBank\n\
- ldrb r1, [r3]\n\
- ldr r6, _08026104 @ =0x00016003\n\
- adds r0, r6\n\
- strb r1, [r0]\n\
- ldr r1, _08026108 @ =gBattlescriptCurrInstr\n\
- ldr r0, _0802610C @ =BattleScript_AbilityNoSpecificStatLoss\n\
- str r0, [r1]\n\
- ldr r1, _08026110 @ =gLastUsedAbility\n\
- ldrb r0, [r3]\n\
- muls r0, r4\n\
- add r0, r10\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldrb r0, [r3]\n\
- ldrb r1, [r1]\n\
- bl RecordAbilityBattle\n\
- b _08025F74\n\
- .align 2, 0\n\
-_080260FC: .4byte gActiveBank\n\
-_08026100: .4byte gSharedMem\n\
-_08026104: .4byte 0x00016003\n\
-_08026108: .4byte gBattlescriptCurrInstr\n\
-_0802610C: .4byte BattleScript_AbilityNoSpecificStatLoss\n\
-_08026110: .4byte gLastUsedAbility\n\
-_08026114:\n\
- ldr r0, _080261A0 @ =gActiveBank\n\
- ldrb r1, [r0]\n\
- movs r0, 0x58\n\
- muls r0, r1\n\
- add r0, r10\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x13\n\
- bne _0802612C\n\
- cmp r5, 0\n\
- bne _0802612C\n\
- b _08025F74\n\
-_0802612C:\n\
- lsls r0, r6, 24\n\
- asrs r0, 28\n\
- movs r1, 0x7\n\
- ands r0, r1\n\
- negs r0, r0\n\
- lsls r0, 24\n\
- ldr r3, _080261A4 @ =gBattleTextBuff2\n\
- movs r4, 0\n\
- movs r1, 0xFD\n\
- strb r1, [r3]\n\
- movs r2, 0x1\n\
- lsrs r6, r0, 24\n\
- asrs r0, 24\n\
- subs r1, 0xFF\n\
- cmp r0, r1\n\
- bne _08026156\n\
- strb r4, [r3, 0x1]\n\
- movs r0, 0xD3\n\
- strb r0, [r3, 0x2]\n\
- strb r4, [r3, 0x3]\n\
- movs r2, 0x4\n\
-_08026156:\n\
- adds r0, r2, r3\n\
- strb r4, [r0]\n\
- adds r2, 0x1\n\
- adds r1, r2, r3\n\
- movs r0, 0xD4\n\
- strb r0, [r1]\n\
- adds r2, 0x1\n\
- adds r0, r2, r3\n\
- strb r4, [r0]\n\
- adds r2, 0x1\n\
- adds r1, r2, r3\n\
- movs r0, 0xFF\n\
- strb r0, [r1]\n\
- ldr r1, _080261A0 @ =gActiveBank\n\
- ldrb r2, [r1]\n\
- movs r0, 0x58\n\
- muls r0, r2\n\
- adds r0, r7, r0\n\
- mov r1, r10\n\
- adds r1, 0x18\n\
- adds r0, r1\n\
- ldrb r0, [r0]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- cmp r0, 0\n\
- beq _08026206\n\
- movs r1, 0\n\
- ldr r0, _080261A8 @ =gBankTarget\n\
- ldrb r0, [r0]\n\
- ldr r3, _080261AC @ =gBattleCommunication\n\
- mov r8, r3\n\
- cmp r0, r2\n\
- bne _0802619A\n\
- movs r1, 0x1\n\
-_0802619A:\n\
- mov r4, r8\n\
- strb r1, [r4, 0x5]\n\
- b _08026234\n\
- .align 2, 0\n\
-_080261A0: .4byte gActiveBank\n\
-_080261A4: .4byte gBattleTextBuff2\n\
-_080261A8: .4byte gBankTarget\n\
-_080261AC: .4byte gBattleCommunication\n\
-_080261B0:\n\
- asrs r6, r0, 28\n\
- movs r0, 0x7\n\
- ands r6, r0\n\
- ldr r3, _08026210 @ =gBattleTextBuff2\n\
- strb r2, [r3]\n\
- movs r2, 0x1\n\
- cmp r6, 0x2\n\
- bne _080261CA\n\
- strb r4, [r3, 0x1]\n\
- movs r0, 0xD1\n\
- strb r0, [r3, 0x2]\n\
- strb r4, [r3, 0x3]\n\
- movs r2, 0x4\n\
-_080261CA:\n\
- adds r0, r2, r3\n\
- strb r4, [r0]\n\
- adds r2, 0x1\n\
- adds r1, r2, r3\n\
- movs r0, 0xD2\n\
- strb r0, [r1]\n\
- adds r2, 0x1\n\
- adds r0, r2, r3\n\
- strb r4, [r0]\n\
- adds r2, 0x1\n\
- adds r1, r2, r3\n\
- ldrb r0, [r1]\n\
- mov r2, r12\n\
- orrs r0, r2\n\
- strb r0, [r1]\n\
- ldr r2, _08026214 @ =gBattleMons\n\
- ldr r4, _08026218 @ =gActiveBank\n\
- ldrb r3, [r4]\n\
- movs r0, 0x58\n\
- muls r0, r3\n\
- adds r0, r7, r0\n\
- adds r1, r2, 0\n\
- adds r1, 0x18\n\
- adds r0, r1\n\
- ldrb r0, [r0]\n\
- lsls r0, 24\n\
- asrs r0, 24\n\
- mov r10, r2\n\
- cmp r0, 0xC\n\
- bne _08026220\n\
-_08026206:\n\
- ldr r1, _0802621C @ =gBattleCommunication\n\
- movs r0, 0x2\n\
- strb r0, [r1, 0x5]\n\
- mov r8, r1\n\
- b _08026234\n\
- .align 2, 0\n\
-_08026210: .4byte gBattleTextBuff2\n\
-_08026214: .4byte gBattleMons\n\
-_08026218: .4byte gActiveBank\n\
-_0802621C: .4byte gBattleCommunication\n\
-_08026220:\n\
- movs r1, 0\n\
- ldr r0, _080262B4 @ =gBankTarget\n\
- ldrb r0, [r0]\n\
- ldr r2, _080262B8 @ =gBattleCommunication\n\
- mov r8, r2\n\
- cmp r0, r3\n\
- bne _08026230\n\
- movs r1, 0x1\n\
-_08026230:\n\
- mov r3, r8\n\
- strb r1, [r3, 0x5]\n\
-_08026234:\n\
- ldr r2, _080262BC @ =gActiveBank\n\
- ldrb r0, [r2]\n\
- movs r4, 0x58\n\
- adds r1, r0, 0\n\
- muls r1, r4\n\
- adds r1, r7, r1\n\
- mov r3, r10\n\
- adds r3, 0x18\n\
- adds r1, r3\n\
- lsls r0, r6, 24\n\
- asrs r0, 24\n\
- ldrb r6, [r1]\n\
- adds r0, r6\n\
- strb r0, [r1]\n\
- ldrb r0, [r2]\n\
- muls r0, r4\n\
- adds r0, r7, r0\n\
- adds r1, r0, r3\n\
- movs r0, 0\n\
- ldrsb r0, [r1, r0]\n\
- cmp r0, 0\n\
- bge _08026264\n\
- movs r0, 0\n\
- strb r0, [r1]\n\
-_08026264:\n\
- ldr r1, _080262BC @ =gActiveBank\n\
- ldrb r0, [r1]\n\
- muls r0, r4\n\
- adds r0, r7, r0\n\
- adds r1, r0, r3\n\
- movs r0, 0\n\
- ldrsb r0, [r1, r0]\n\
- cmp r0, 0xC\n\
- ble _0802627A\n\
- movs r0, 0xC\n\
- strb r0, [r1]\n\
-_0802627A:\n\
- mov r2, r8\n\
- ldrb r0, [r2, 0x5]\n\
- cmp r0, 0x2\n\
- bne _080262A2\n\
- movs r3, 0x1\n\
- ands r3, r5\n\
- cmp r3, 0\n\
- beq _08026294\n\
- ldr r0, _080262C0 @ =gBattleMoveFlags\n\
- ldrb r1, [r0]\n\
- movs r2, 0x1\n\
- orrs r1, r2\n\
- strb r1, [r0]\n\
-_08026294:\n\
- mov r4, r8\n\
- ldrb r0, [r4, 0x5]\n\
- cmp r0, 0x2\n\
- bne _080262A2\n\
- cmp r3, 0\n\
- bne _080262A2\n\
- b _08025F74\n\
-_080262A2:\n\
- movs r0, 0\n\
-_080262A4:\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_080262B4: .4byte gBankTarget\n\
-_080262B8: .4byte gBattleCommunication\n\
-_080262BC: .4byte gActiveBank\n\
-_080262C0: .4byte gBattleMoveFlags\n\
- .syntax divided");
+ if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_CHANGE_BS_PTR))
+ return STAT_CHANGE_DIDNT_WORK;
+
+ return STAT_CHANGE_WORKED;
}
-#endif // NONMATCHING
static void atk89_statbuffchange(void)
{
u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 2);
- if (ChangeStatBuffs(BATTLE_STRUCT->statChanger & 0xF0, BATTLE_STRUCT->statChanger & 0xF, T2_READ_8(gBattlescriptCurrInstr + 1), jump_loc) == 0)
+ if (ChangeStatBuffs(gBattleStruct->statChanger & 0xF0, gBattleStruct->statChanger & 0xF, T2_READ_8(gBattlescriptCurrInstr + 1), jump_loc) == 0)
gBattlescriptCurrInstr += 6;
}
@@ -13251,7 +11830,7 @@ static void atk8A_normalisebuffs(void) //haze
static void atk8B_setbide(void)
{
gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gBankAttacker] = gCurrentMove;
+ gLockedMoves[gBankAttacker] = gCurrentMove;
gTakenDmg[gBankAttacker] = 0;
gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns
gBattlescriptCurrInstr++;
@@ -13463,7 +12042,7 @@ static void atk91_givepaydaymoney(void)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && gPaydayMoney)
{
- AddMoney(&gSaveBlock1.money, gPaydayMoney * BATTLE_STRUCT->moneyMultiplier);
+ AddMoney(&gSaveBlock1.money, gPaydayMoney * gBattleStruct->moneyMultiplier);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 1;
gBattleTextBuff1[2] = 2;
@@ -13471,7 +12050,7 @@ static void atk91_givepaydaymoney(void)
gBattleTextBuff1[4] = gPaydayMoney;
gBattleTextBuff1[5] = uBYTE1_16(gPaydayMoney);
gBattleTextBuff1[6] = 0xFF;
- b_movescr_stack_push(gBattlescriptCurrInstr + 1);
+ BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_PrintPayDayMoneyString;
}
else
@@ -13488,7 +12067,7 @@ static void atk92_setlightscreen(void)
else
{
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN;
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
else
@@ -14034,7 +12613,7 @@ static void atk98_updatestatusicon(void)
}
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (!(gAbsentBankFlags & gBitTable[gActiveBank]))
{
EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
@@ -14047,14 +12626,14 @@ static void atk98_updatestatusicon(void)
static void atk99_setmist(void)
{
- if (gSideTimer[GetBankIdentity(gBankAttacker) & 1].mistTimer)
+ if (gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer)
{
gBattleMoveFlags |= MOVESTATUS_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5;
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_MIST;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
@@ -14149,8 +12728,8 @@ static void atk9C_setsubstitute(void)
static bool8 IsMoveUncopyable(u16 move)
{
int i;
- for (i = 0; sUnknown_081FACFE[i] != 0xFFFE && sUnknown_081FACFE[i] != move; i++) {}
- return (sUnknown_081FACFE[i] != 0xFFFE);
+ for (i = 0; sMovesForbiddenToCopy[i] != 0xFFFE && sMovesForbiddenToCopy[i] != move; i++) {}
+ return (sMovesForbiddenToCopy[i] != 0xFFFE);
}
static void atk9D_mimicattackcopy(void)
@@ -14191,16 +12770,203 @@ static void atk9D_mimicattackcopy(void)
}
}
+#if DEBUG
+__attribute__((naked))
+static void atk9E_metronome(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ ldr r6, ._3076 @ gBankAttacker\n\
+ ldrb r2, [r6]\n\
+ lsl r1, r2, #0x1\n\
+ ldr r0, ._3076 + 4 @ \n\
+ add r3, r1, r0\n\
+ ldr r5, ._3076 + 8 @ \n\
+ mov r4, #0x58\n\
+ add r0, r2, #0\n\
+ mul r0, r0, r4\n\
+ add r1, r0, r5\n\
+ ldrh r0, [r1, #0xe]\n\
+ cmp r0, #0\n\
+ bne ._3071 @cond_branch\n\
+ ldrh r2, [r1, #0x10]\n\
+ cmp r2, #0\n\
+ beq ._3071 @cond_branch\n\
+ ldrh r0, [r1, #0x12]\n\
+ cmp r0, #0\n\
+ beq ._3071 @cond_branch\n\
+ ldrh r0, [r3]\n\
+ cmp r0, #0\n\
+ bne ._3072 @cond_branch\n\
+ strh r2, [r3]\n\
+._3072:\n\
+ ldr r1, ._3076 + 12 @ \n\
+ ldrh r0, [r3]\n\
+ strh r0, [r1]\n\
+ ldrb r0, [r6]\n\
+ mul r0, r0, r4\n\
+ add r0, r0, r5\n\
+ ldrh r5, [r0, #0x10]\n\
+ ldrh r2, [r0, #0x12]\n\
+ add r7, r1, #0\n\
+ cmp r5, r2\n\
+ bcs ._3073 @cond_branch\n\
+ ldrh r0, [r3]\n\
+ cmp r0, r2\n\
+ beq ._3074 @cond_branch\n\
+ add r0, r0, #0x1\n\
+ b ._3079\n\
+._3077:\n\
+ .align 2, 0\n\
+._3076:\n\
+ .word gBankAttacker\n\
+ .word +0x20160b4\n\
+ .word gBattleMons\n\
+ .word gCurrentMove\n\
+._3073:\n\
+ ldrh r4, [r3]\n\
+ add r1, r4, #0\n\
+ mov r0, #0xb1\n\
+ lsl r0, r0, #0x1\n\
+ cmp r1, r0\n\
+ bne ._3078 @cond_branch\n\
+ mov r0, #0x1\n\
+ b ._3079\n\
+._3078:\n\
+ cmp r1, r2\n\
+ bne ._3080 @cond_branch\n\
+._3074:\n\
+ strh r5, [r3]\n\
+ b ._3081\n\
+._3080:\n\
+ add r0, r4, #1\n\
+._3079:\n\
+ strh r0, [r3]\n\
+._3081:\n\
+ ldr r4, ._3083 @ gHitMarker\n\
+ ldr r2, [r4]\n\
+ ldr r0, ._3083 + 4 @ 0xfffffbff\n\
+ and r2, r2, r0\n\
+ str r2, [r4]\n\
+ ldr r6, ._3083 + 8 @ gBattlescriptCurrInstr\n\
+ ldr r5, ._3083 + 12 @ gBattleScriptsForMoveEffects\n\
+ ldr r3, ._3083 + 16 @ gBattleMoves\n\
+ ldrh r1, [r7]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r3\n\
+ ldrb r0, [r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r5\n\
+ ldr r0, [r0]\n\
+ str r0, [r6]\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x4\n\
+ orr r2, r2, r0\n\
+ str r2, [r4]\n\
+ ldrh r0, [r7]\n\
+ b ._3082\n\
+._3084:\n\
+ .align 2, 0\n\
+._3083:\n\
+ .word gHitMarker\n\
+ .word 0xfffffbff\n\
+ .word gBattlescriptCurrInstr\n\
+ .word gBattleScriptsForMoveEffects\n\
+ .word gBattleMoves\n\
+._3071:\n\
+ ldr r7, ._3090 @ gCurrentMove\n\
+ mov r6, #0xb1\n\
+ lsl r6, r6, #0x1\n\
+ ldr r5, ._3090 + 4 @ sMovesForbiddenToCopy\n\
+ ldr r0, ._3090 + 8 @ gBattlescriptCurrInstr\n\
+ mov r8, r0\n\
+._3089:\n\
+ bl Random\n\
+ ldr r2, ._3090 + 12 @ 0x1ff\n\
+ add r1, r2, #0\n\
+ and r0, r0, r1\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r7]\n\
+ cmp r0, r6\n\
+ bhi ._3089 @cond_branch\n\
+ mov r0, #0x3\n\
+._3086:\n\
+ sub r0, r0, #0x1\n\
+ cmp r0, #0\n\
+ bge ._3086 @cond_branch\n\
+ ldr r4, ._3090 @ gCurrentMove\n\
+ ldrh r2, [r4]\n\
+ ldr r3, ._3090 + 16 @ 0xffff\n\
+ sub r0, r5, #2\n\
+._3088:\n\
+ add r0, r0, #0x2\n\
+ ldrh r1, [r0]\n\
+ cmp r1, r2\n\
+ beq ._3087 @cond_branch\n\
+ cmp r1, r3\n\
+ bne ._3088 @cond_branch\n\
+._3087:\n\
+ ldr r0, ._3090 + 16 @ 0xffff\n\
+ cmp r1, r0\n\
+ bne ._3089 @cond_branch\n\
+ ldr r2, ._3090 + 20 @ gHitMarker\n\
+ ldr r0, [r2]\n\
+ ldr r1, ._3090 + 24 @ 0xfffffbff\n\
+ and r0, r0, r1\n\
+ str r0, [r2]\n\
+ ldr r3, ._3090 + 28 @ gBattleScriptsForMoveEffects\n\
+ ldr r2, ._3090 + 32 @ gBattleMoves\n\
+ ldrh r1, [r4]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r2\n\
+ ldrb r0, [r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r3\n\
+ ldr r0, [r0]\n\
+ mov r1, r8\n\
+ str r0, [r1]\n\
+ ldrh r0, [r4]\n\
+._3082:\n\
+ mov r1, #0x0\n\
+ bl GetMoveTarget\n\
+ ldr r1, ._3090 + 36 @ gBankTarget\n\
+ strb r0, [r1]\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._3091:\n\
+ .align 2, 0\n\
+._3090:\n\
+ .word gCurrentMove\n\
+ .word sMovesForbiddenToCopy\n\
+ .word gBattlescriptCurrInstr\n\
+ .word 0x1ff\n\
+ .word 0xffff\n\
+ .word gHitMarker\n\
+ .word 0xfffffbff\n\
+ .word gBattleScriptsForMoveEffects\n\
+ .word gBattleMoves\n\
+ .word gBankTarget");
+}
+#else
#ifdef NONMATCHING
static void atk9E_metronome(void)
{
- // sUnknown_081FACFE
+ // sMovesForbiddenToCopy
int i;
do
{
while ((gCurrentMove = (Random() & 0x1FF) + 1) > 0x162);
- for (i = 0; sUnknown_081FACFE[i] != gCurrentMove && sUnknown_081FACFE[i] != 0xFFFF; i++);
- } while (sUnknown_081FACFE[i] != 0xFFFF);
+ for (i = 0; sMovesForbiddenToCopy[i] != gCurrentMove && sMovesForbiddenToCopy[i] != 0xFFFF; i++);
+ } while (sMovesForbiddenToCopy[i] != 0xFFFF);
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
@@ -14218,7 +12984,7 @@ static void atk9E_metronome(void)
ldr r7, _08027938 @ =gCurrentMove\n\
movs r6, 0xB1\n\
lsls r6, 1\n\
- ldr r5, _0802793C @ =sUnknown_081FACFE\n\
+ ldr r5, _0802793C @ =sMovesForbiddenToCopy\n\
ldr r0, _08027940 @ =gBattlescriptCurrInstr\n\
mov r8, r0\n\
_080278CA:\n\
@@ -14280,7 +13046,7 @@ _080278F8:\n\
bx r0\n\
.align 2, 0\n\
_08027938: .4byte gCurrentMove\n\
-_0802793C: .4byte sUnknown_081FACFE\n\
+_0802793C: .4byte sMovesForbiddenToCopy\n\
_08027940: .4byte gBattlescriptCurrInstr\n\
_08027944: .4byte 0x000001ff\n\
_08027948: .4byte 0x0000ffff\n\
@@ -14292,6 +13058,7 @@ _0802795C: .4byte gBankTarget\n\
.syntax divided");
}
#endif // NONMATCHING
+#endif
static void atk9F_dmgtolevel(void)
{
@@ -14315,8 +13082,8 @@ static void atkA1_counterdamagecalculator(void)
if (gProtectStructs[gBankAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp)
{
gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2;
- if (gSideTimer[def_side].followmeTimer && gBattleMons[gSideTimer[def_side].followmeTarget].hp)
- gBankTarget = gSideTimer[def_side].followmeTarget;
+ if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp)
+ gBankTarget = gSideTimers[def_side].followmeTarget;
else
gBankTarget = gProtectStructs[gBankAttacker].physicalBank;
gBattlescriptCurrInstr += 5;
@@ -14335,8 +13102,8 @@ static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the ph
if (gProtectStructs[gBankAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp)
{
gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2;
- if (gSideTimer[def_side].followmeTimer && gBattleMons[gSideTimer[def_side].followmeTarget].hp)
- gBankTarget = gSideTimer[def_side].followmeTarget;
+ if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp)
+ gBankTarget = gSideTimers[def_side].followmeTarget;
else
gBankTarget = gProtectStructs[gBankAttacker].specialBank;
gBattlescriptCurrInstr += 5;
@@ -14405,10 +13172,10 @@ static void atkA5_painsplitdmgcalc(void)
{
s32 hp_diff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankTarget].hp) / 2;
s32 to_store = gBattleMoveDamage = gBattleMons[gBankTarget].hp - hp_diff;
- BATTLE_STRUCT->unk16014 = sBYTE0_32(to_store);
- BATTLE_STRUCT->unk16015 = sBYTE1_32(to_store);
- BATTLE_STRUCT->unk16016 = sBYTE2_32(to_store);
- BATTLE_STRUCT->unk16017 = sBYTE3_32(to_store);
+ gBattleStruct->unk16014 = sBYTE0_32(to_store);
+ gBattleStruct->unk16015 = sBYTE1_32(to_store);
+ gBattleStruct->unk16016 = sBYTE2_32(to_store);
+ gBattleStruct->unk16017 = sBYTE3_32(to_store);
gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hp_diff;
gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF;
@@ -14422,7 +13189,7 @@ static void atkA5_painsplitdmgcalc(void)
#ifdef NONMATCHING
static void atkA6_settypetorandomresistance(void)
{
- if (gMoveHitWith[gBankAttacker] == 0 || gMoveHitWith[gBankAttacker] == 0xFFFF || (IsTwoTurnsMove(gMoveHitWith[gBankAttacker]) && !gProtectStructs[gBankAttacker].physicalDmg && !gProtectStructs[gBankAttacker].specialDmg))
+ if (gLastLandedMoves[gBankAttacker] == 0 || gLastLandedMoves[gBankAttacker] == 0xFFFF || (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker]) && !gProtectStructs[gBankAttacker].physicalDmg && !gProtectStructs[gBankAttacker].specialDmg))
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
@@ -14431,7 +13198,7 @@ static void atkA6_settypetorandomresistance(void)
{
while (((type = (Random() & 0x7F)) > 0x70));
type *= 3;
- if (gTypeEffectiveness[type] == gUnknown_02024C44[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1])
+ if (gTypeEffectiveness[type] == gLastHitByType[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1])
{
gBattleMons[gBankAttacker].type1 = type;
gBattleMons[gBankAttacker].type2 = type;
@@ -14450,7 +13217,7 @@ static void atkA6_settypetorandomresistance(void)
{
if (gTypeEffectiveness[type] == 0xFE || gTypeEffectiveness[type] != 0xFF)
{
- if (gTypeEffectiveness[type] == gUnknown_02024C44[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1])
+ if (gTypeEffectiveness[type] == gLastHitByType[gBankAttacker] && gTypeEffectiveness[type + 2] <= 5 && gBattleMons[gBankAttacker].type1 != gTypeEffectiveness[type + 1] && gBattleMons[gBankAttacker].type2 != gTypeEffectiveness[type + 1])
{
gBattleMons[gBankAttacker].type1 = gTypeEffectiveness[rands + 1];
gBattleMons[gBankAttacker].type2 = gTypeEffectiveness[rands + 1];
@@ -14479,7 +13246,7 @@ static void atkA6_settypetorandomresistance(void)
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
- ldr r1, _08027FA8 @ =gMoveHitWith\n\
+ ldr r1, _08027FA8 @ =gLastLandedMoves\n\
ldr r4, _08027FAC @ =gBankAttacker\n\
ldrb r0, [r4]\n\
lsls r0, 1\n\
@@ -14525,7 +13292,7 @@ _08027F8C:\n\
str r1, [r3]\n\
b _08028110\n\
.align 2, 0\n\
-_08027FA8: .4byte gMoveHitWith\n\
+_08027FA8: .4byte gLastLandedMoves\n\
_08027FAC: .4byte gBankAttacker\n\
_08027FB0: .4byte 0x0000ffff\n\
_08027FB4: .4byte gProtectStructs\n\
@@ -14597,7 +13364,7 @@ _0802802C:\n\
adds r4, r0, r4\n\
ldr r6, _08028120 @ =gTypeEffectiveness\n\
adds r3, r4, r6\n\
- ldr r1, _08028124 @ =gUnknown_02024C44\n\
+ ldr r1, _08028124 @ =gLastHitByType\n\
ldr r2, _08028128 @ =gBankAttacker\n\
ldrb r5, [r2]\n\
lsls r0, r5, 1\n\
@@ -14658,7 +13425,7 @@ _080280AE:\n\
mov r4, r10\n\
ldrb r2, [r4]\n\
lsls r0, r2, 1\n\
- ldr r7, _08028124 @ =gUnknown_02024C44\n\
+ ldr r7, _08028124 @ =gLastHitByType\n\
adds r0, r7\n\
ldrh r0, [r0]\n\
cmp r1, r0\n\
@@ -14715,7 +13482,7 @@ _08028110:\n\
bx r0\n\
.align 2, 0\n\
_08028120: .4byte gTypeEffectiveness\n\
-_08028124: .4byte gUnknown_02024C44\n\
+_08028124: .4byte gLastHitByType\n\
_08028128: .4byte gBankAttacker\n\
_0802812C: .4byte gBattleMons\n\
_08028130: .4byte 0x000003e7\n\
@@ -14767,7 +13534,7 @@ static void atkA8_copymovepermanently(void)
moves_data.pp[i] = gBattleMons[gBankAttacker].pp[i];
}
moves_data.ppBonuses = gBattleMons[gBankAttacker].ppBonuses;
- EmitSetAttributes(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data);
+ EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data);
MarkBufferBankForExecution(gActiveBank);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -14849,7 +13616,7 @@ static void atkAA_setdestinybond(void)
gBattlescriptCurrInstr++;
}
-static void DestinyBondFlagUpdate(void)
+static void TrySetDestinyBondToHappen(void)
{
u8 atk_side = GetBankSide(gBankAttacker);
u8 def_side = GetBankSide(gBankTarget);
@@ -14859,7 +13626,7 @@ static void DestinyBondFlagUpdate(void)
static void atkAB_trysetdestinybondtohappen(void)
{
- DestinyBondFlagUpdate();
+ TrySetDestinyBondToHappen();
gBattlescriptCurrInstr++;
}
@@ -14869,10 +13636,10 @@ static void atkAC_remaininghptopower(void)
int i;
for (i = 0; i < 12; i += 2)
{
- if (hp_fraction <= sUnknown_081FAD26[i])
+ if (hp_fraction <= sFlailHpScaleToPowerTable[i])
break;
}
- gDynamicBasePower = sUnknown_081FAD26[i + 1];
+ gDynamicBasePower = sFlailHpScaleToPowerTable[i + 1];
gBattlescriptCurrInstr++;
}
@@ -14910,7 +13677,7 @@ static void atkAD_tryspiteppreduce(void)
if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i])
&& !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
{
- EmitSetAttributes(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
MarkBufferBankForExecution(gActiveBank);
}
gBattlescriptCurrInstr += 5;
@@ -14948,7 +13715,7 @@ static void atkAE_healpartystatus(void)
gBattleCommunication[MULTISTRING_CHOOSER] |= 1;
}
- gActiveBank = BATTLE_STRUCT->scriptingActive = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = gBattleStruct->scriptingActive = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]))
{
if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF)
@@ -14986,14 +13753,14 @@ static void atkAE_healpartystatus(void)
to_heal = 0x3F;
gBattleMons[gBankAttacker].status1 = zero2;
- gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]))
gBattleMons[gActiveBank].status1 = 0;
}
//missing check?
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
@@ -15018,7 +13785,7 @@ static void atkAF_cursetarget(void)
static void atkB0_trysetspikes(void)
{
u8 side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].spikesAmount == 3)
+ if (gSideTimers[side].spikesAmount == 3)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
@@ -15026,7 +13793,7 @@ static void atkB0_trysetspikes(void)
else
{
gSideAffecting[side] |= SIDE_STATUS_SPIKES;
- gSideTimer[side].spikesAmount++;
+ gSideTimers[side].spikesAmount++;
gBattlescriptCurrInstr += 5;
}
}
@@ -15053,7 +13820,7 @@ static void atkB2_trysetperishsong(void)
}
}
- sub_80153D0(gBankAttacker);
+ PressurePPLoseOnUsingPerishSong(gBankAttacker);
if (not_affected_pokes == gNoOfAllBanks)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
@@ -15075,7 +13842,7 @@ static void atkB3_rolloutdamagecalculation(void)
gDisableStructs[gBankAttacker].rolloutTimer1 = 5;
gDisableStructs[gBankAttacker].rolloutTimer2 = 5;
gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMove[gBankAttacker] = gCurrentMove;
+ gLockedMoves[gBankAttacker] = gCurrentMove;
}
if (--gDisableStructs[gBankAttacker].rolloutTimer1 == 0)
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
@@ -15167,7 +13934,7 @@ static void atkB8_setsafeguard(void)
else
{
gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD;
- gSideTimer[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5;
+ gSideTimers[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5;
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
gBattlescriptCurrInstr++;
@@ -15234,16 +14001,16 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
if (gMultiHitCounter == 1)
{
if (GetBankSide(gBankAttacker) == 0)
- gBankTarget = GetBankByPlayerAI(1);
+ gBankTarget = GetBankByIdentity(1);
else
- gBankTarget = GetBankByPlayerAI(0);
+ gBankTarget = GetBankByIdentity(0);
}
else
{
if (GetBankSide(gBankAttacker) == 0)
- gBankTarget = GetBankByPlayerAI(3);
+ gBankTarget = GetBankByIdentity(3);
else
- gBankTarget = GetBankByPlayerAI(2);
+ gBankTarget = GetBankByIdentity(2);
}
if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
@@ -15252,12 +14019,12 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
int i;
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (gTurnOrder[i] == gBankTarget)
- gUnknown_02024A76[i] = 11;
+ if (gBanksByTurnOrder[i] == gBankTarget)
+ gActionsByTurnOrder[i] = 11;
}
gCurrentMove = MOVE_PURSUIT;
gBattlescriptCurrInstr += 5;
- BATTLE_STRUCT->animTurn = 1;
+ gBattleStruct->animTurn = 1;
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
}
else
@@ -15321,21 +14088,21 @@ static void atkBE_rapidspinfree(void) //rapid spin
gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker);
gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker);
gBattleTextBuff1[4] = 0xFF;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_WrapFree;
}
else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED)
{
gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED);
gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
}
else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES)
{
gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES);
- gSideTimer[GetBankSide(gBankAttacker)].spikesAmount = 0;
- b_movescr_stack_push_cursor();
+ gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0;
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SpikesFree;
}
else
@@ -15935,8 +14702,8 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento
static void atkCA_setforcedtarget(void) //follow me
{
- gSideTimer[GetBankSide(gBankAttacker)].followmeTimer = 1;
- gSideTimer[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker;
+ gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1;
+ gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker;
gBattlescriptCurrInstr++;
}
@@ -15953,7 +14720,7 @@ static void atkCC_callterrainattack(void) //nature power
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gCurrentMove = sNaturePowerMoves[gBattleTerrain];
gBankTarget = GetMoveTarget(gCurrentMove, 0);
- b_movescr_stack_push(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]);
+ BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]);
gBattlescriptCurrInstr++;
}
@@ -15964,7 +14731,7 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh
gBattleMons[gBankAttacker].status1 = 0;
gBattlescriptCurrInstr += 5;
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
}
else
@@ -16004,7 +14771,7 @@ static void atkD0_settaunt(void)
static void atkD1_trysethelpinghand(void)
{
- gBankTarget = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gBankTarget])
&& !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand)
{
@@ -16223,7 +14990,7 @@ _0802A36C:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldr r2, _0802A45C @ =gBankAttacker\n\
ldrb r0, [r2]\n\
bl MarkBufferBankForExecution\n\
@@ -16241,7 +15008,7 @@ _0802A36C:\n\
movs r1, 0x2\n\
movs r2, 0\n\
movs r3, 0x2\n\
- bl EmitSetAttributes\n\
+ bl EmitSetMonData\n\
ldrb r0, [r7]\n\
bl MarkBufferBankForExecution\n\
ldr r0, _0802A464 @ =0xfffe9f10\n\
@@ -16407,7 +15174,7 @@ static void atkD6_doubledamagedealtifdamaged(void)
{
if ((gProtectStructs[gBankAttacker].physicalDmg && gProtectStructs[gBankAttacker].physicalBank == gBankTarget)
|| (gProtectStructs[gBankAttacker].specialDmg && gProtectStructs[gBankAttacker].specialBank == gBankTarget))
- BATTLE_STRUCT->dmgMultiplier = 2;
+ gBattleStruct->dmgMultiplier = 2;
gBattlescriptCurrInstr++;
}
@@ -16472,7 +15239,7 @@ static void atkDB_tryimprision(void)
else
{
u8 bank;
- sub_801529C(gBankAttacker);
+ PressurePPLoseOnUsingImprision(gBankAttacker);
for (bank = 0; bank < gNoOfAllBanks; bank++)
{
if (r8 != GetBankSide(bank))
@@ -16516,13 +15283,13 @@ static void atkDC_trysetgrudge(void)
static void atkDD_weightdamagecalculation(void)
{
int i;
- for (i = 0; sWeightDamage[i] != 0xFFFF; i += 2)
+ for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2)
{
- if (sWeightDamage[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
+ if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
break;
}
- if (sWeightDamage[i] != 0xFFFF)
- gDynamicBasePower = sWeightDamage[i + 1];
+ if (sWeightToDamageTable[i] != 0xFFFF)
+ gDynamicBasePower = sWeightToDamageTable[i + 1];
else
gDynamicBasePower = 120;
gBattlescriptCurrInstr++;
@@ -16546,17 +15313,17 @@ static void atkDE_asistattackselect(void)
break;
if (!GetMonData(&party[i], MON_DATA_SPECIES2) || GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
break;
- chooseable_moves = &BATTLE_STRUCT->assistMove[chooseable_moves_no];
+ chooseable_moves = &gBattleStruct->assistMove[chooseable_moves_no];
for (j = 0; j < 4; j++)
{
int k;
u16 move = GetMonData(&party[i], MON_DATA_MOVE1 + i);
if (IsMoveUnchoosable(move))
break;
- //sUnknown_081FACFE[k]
+ //sMovesForbiddenToCopy[k]
for (k = 0; ;k++)
{
- if (sUnknown_081FACFE[k] == 0xFFFF)
+ if (sMovesForbiddenToCopy[k] == 0xFFFF)
{
if (move)
{
@@ -16566,7 +15333,7 @@ static void atkDE_asistattackselect(void)
}
break;
}
- if (sUnknown_081FACFE[k] == move)
+ if (sMovesForbiddenToCopy[k] == move)
break;
}
}
@@ -16574,7 +15341,7 @@ static void atkDE_asistattackselect(void)
if (chooseable_moves_no)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
- gRandomMove = BATTLE_STRUCT->assistMove[Random() % chooseable_moves_no];
+ gRandomMove = gBattleStruct->assistMove[Random() % chooseable_moves_no];
gBankTarget = GetMoveTarget(gRandomMove, 0);
gBattlescriptCurrInstr += 5;
}
@@ -16659,7 +15426,7 @@ _0802AAF8:\n\
adds r1, r5, 0x1\n\
cmp r0, 0\n\
bne _0802AB4E\n\
- ldr r0, _0802ABB4 @ =sUnknown_081FACFE\n\
+ ldr r0, _0802ABB4 @ =sMovesForbiddenToCopy\n\
ldrh r2, [r0]\n\
adds r3, r0, 0\n\
cmp r2, r8\n\
@@ -16734,7 +15501,7 @@ _0802ABA4: .4byte gEnemyParty\n\
_0802ABA8: .4byte gBattlePartyID\n\
_0802ABAC: .4byte 0x0000ffff\n\
_0802ABB0: .4byte gSharedMem + 0x16024\n\
-_0802ABB4: .4byte sUnknown_081FACFE\n\
+_0802ABB4: .4byte sMovesForbiddenToCopy\n\
_0802ABB8: .4byte gHitMarker\n\
_0802ABBC: .4byte 0xfffffbff\n\
_0802ABC0: .4byte gRandomMove\n\
@@ -16774,7 +15541,7 @@ static void atkDF_trysetmagiccoat(void)
{
gBankTarget = gBankAttacker;
gSpecialStatuses[gBankAttacker].flag20 = 1;
- if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
+ if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
@@ -16786,7 +15553,7 @@ static void atkDF_trysetmagiccoat(void)
static void atkE0_trysetsnatch(void)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
+ if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
@@ -16799,11 +15566,11 @@ static void atkE1_trygetintimidatetarget(void)
{
u8 side;
- BATTLE_STRUCT->scriptingActive = ewram160DD;
- side = GetBankSide(BATTLE_STRUCT->scriptingActive);
+ gBattleStruct->scriptingActive = ewram160DD;
+ side = GetBankSide(gBattleStruct->scriptingActive);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 9;
- gBattleTextBuff1[2] = gBattleMons[BATTLE_STRUCT->scriptingActive].ability;
+ gBattleTextBuff1[2] = gBattleMons[gBattleStruct->scriptingActive].ability;
gBattleTextBuff1[3] = 0xFF;
for (;gBankTarget < gNoOfAllBanks; gBankTarget++)
@@ -16827,7 +15594,7 @@ static void atkE2_switchoutabilities(void)
{
case ABILITY_NATURAL_CURE:
gBattleMons[gActiveBank].status1 = 0;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -16908,10 +15675,10 @@ static void atkE5_pickup(void)
static void atkE6_docastformchangeanimation(void)
{
- gActiveBank = BATTLE_STRUCT->scriptingActive;
+ gActiveBank = gBattleStruct->scriptingActive;
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE)
- BATTLE_STRUCT->castformToChangeInto |= 0x80;
- EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, BATTLE_STRUCT->castformToChangeInto);
+ gBattleStruct->castformToChangeInto |= 0x80;
+ EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->castformToChangeInto);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
}
@@ -16920,11 +15687,11 @@ static void atkE7_trycastformdatachange(void)
{
u8 form;
gBattlescriptCurrInstr++;
- form = CastformDataTypeChange(BATTLE_STRUCT->scriptingActive);
+ form = CastformDataTypeChange(gBattleStruct->scriptingActive);
if (form)
{
- b_push_move_exec(BattleScript_CastformChange);
- BATTLE_STRUCT->castformToChangeInto = form - 1;
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
+ gBattleStruct->castformToChangeInto = form - 1;
}
}
@@ -16960,17 +15727,17 @@ static void atkE9_setweatherballtype(void)
if (WEATHER_HAS_EFFECT)
{
if ((u8)(gBattleWeather))
- BATTLE_STRUCT->dmgMultiplier = 2;
+ gBattleStruct->dmgMultiplier = 2;
if (gBattleWeather & WEATHER_RAIN_ANY)
- BATTLE_STRUCT->dynamicMoveType = TYPE_WATER | 0x80;
+ gBattleStruct->dynamicMoveType = TYPE_WATER | 0x80;
else if (gBattleWeather & WEATHER_SANDSTORM_ANY)
- BATTLE_STRUCT->dynamicMoveType = TYPE_ROCK | 0x80;
+ gBattleStruct->dynamicMoveType = TYPE_ROCK | 0x80;
else if (gBattleWeather & WEATHER_SUN_ANY)
- BATTLE_STRUCT->dynamicMoveType = TYPE_FIRE | 0x80;
+ gBattleStruct->dynamicMoveType = TYPE_FIRE | 0x80;
else if (gBattleWeather & WEATHER_HAIL)
- BATTLE_STRUCT->dynamicMoveType = TYPE_ICE | 0x80;
+ gBattleStruct->dynamicMoveType = TYPE_ICE | 0x80;
else
- BATTLE_STRUCT->dynamicMoveType = TYPE_NORMAL | 0x80;
+ gBattleStruct->dynamicMoveType = TYPE_NORMAL | 0x80;
}
gBattlescriptCurrInstr++;
}
@@ -16985,7 +15752,7 @@ static void atkEA_tryrecycleitem(void)
gLastUsedItem = *used_item;
*used_item = 0;
gBattleMons[gActiveBank].item = gLastUsedItem;
- EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
+ EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 5;
}
@@ -17011,14 +15778,14 @@ static void atkEB_settypetoterrain(void)
static void atkEC_pursuitrelated(void)
{
- gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2);
+ gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) && gActionForBanks[gActiveBank] == 0 && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT)
{
- gUnknown_02024A76[gActiveBank] = 11;
+ gActionsByTurnOrder[gActiveBank] = 11;
gCurrentMove = MOVE_PURSUIT;
gBattlescriptCurrInstr += 5;
- BATTLE_STRUCT->animTurn = 1;
- BATTLE_STRUCT->unk160A7 = gBankAttacker;
+ gBattleStruct->animTurn = 1;
+ gBattleStruct->unk160A7 = gBankAttacker;
gBankAttacker = gActiveBank;
}
else
@@ -17029,29 +15796,29 @@ static void atkED_snatchsetbanks(void)
{
gEffectBank = gBankAttacker;
if (gBankAttacker == gBankTarget)
- gBankAttacker = gBankTarget = BATTLE_STRUCT->scriptingActive;
+ gBankAttacker = gBankTarget = gBattleStruct->scriptingActive;
else
- gBankTarget = BATTLE_STRUCT->scriptingActive;
- BATTLE_STRUCT->scriptingActive = gEffectBank;
+ gBankTarget = gBattleStruct->scriptingActive;
+ gBattleStruct->scriptingActive = gEffectBank;
gBattlescriptCurrInstr++;
}
static void atkEE_removelightscreenreflect(void) //brick break
{
u8 side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].reflectTimer || gSideTimer[side].lightscreenTimer)
+ if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer)
{
gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT);
gSideAffecting[side] &= ~(SIDE_STATUS_LIGHTSCREEN);
- gSideTimer[side].reflectTimer = 0;
- gSideTimer[side].lightscreenTimer = 0;
- BATTLE_STRUCT->animTurn = 1;
- BATTLE_STRUCT->animTargetsHit = 1;
+ gSideTimers[side].reflectTimer = 0;
+ gSideTimers[side].lightscreenTimer = 0;
+ gBattleStruct->animTurn = 1;
+ gBattleStruct->animTargetsHit = 1;
}
else
{
- BATTLE_STRUCT->animTurn = 0;
- BATTLE_STRUCT->animTargetsHit = 0;
+ gBattleStruct->animTurn = 0;
+ gBattleStruct->animTargetsHit = 0;
}
gBattlescriptCurrInstr++;
}
@@ -17081,7 +15848,7 @@ void atkEF_handleballthrow(void)
u32 odds;
u8 catch_rate;
if (gLastUsedItem == ITEM_SAFARI_BALL)
- catch_rate = BATTLE_STRUCT->unk16089 * 1275 / 100; //correct the name to safariFleeRate
+ catch_rate = gBattleStruct->unk16089 * 1275 / 100; //correct the name to safariFleeRate
else
catch_rate = gBaseStats[gBattleMons[gBankTarget].species].catchRate;
if (gLastUsedItem > 5)
@@ -17230,13 +15997,13 @@ static void atkF2_displaydexinfo(void)
}
break;
case 2:
- if (!gPaletteFade.active && gMain.callback2 == sub_800F808 && !gTasks[gBattleCommunication[1]].isActive)
+ if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2 && !gTasks[gBattleCommunication[1]].isActive)
{
LZDecompressVram(gBattleTerrainTiles_Building, (void*)(0x06008000));
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(0x0600d000));
LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
REG_BG3CNT = 0x5a0b;
- gUnknown_030041B0 = 0x100;
+ gBattle_BG3_X = 0x100;
BeginNormalPaletteFade(0xfffc, 0, 0x10, 0, 0);
gBattleCommunication[0]++;
}
@@ -17340,7 +16107,7 @@ _0802BC68: .4byte 0x00001025\n\
void sub_802BC6C(void)
{
- sub_814A880(0xC8, ((gBattleCommunication[1] << 28) + 1207959552) >> 24); //what could that be?
+ MenuCursor_SetPos814A880(0xC8, ((gBattleCommunication[1] << 28) + 1207959552) >> 24); //what could that be?
}
void nullsub_6(void)
@@ -17393,15 +16160,15 @@ static void atkF3_trygivecaughtmonnick(void)
case 2:
if (!gPaletteFade.active)
{
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick);
- DoNamingScreen(2, BATTLE_STRUCT->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), sub_800F808);
+ GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick);
+ DoNamingScreen(2, gBattleStruct->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2);
gBattleCommunication[0]++;
}
break;
case 3:
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active )
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active )
{
- SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick);
+ SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, gBattleStruct->caughtNick);
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
break;
@@ -17428,11 +16195,11 @@ static void atkF5_removeattackerstatus1(void)
static void atkF6_finishaction(void)
{
- gFightStateTracker = 0xC;
+ gCurrentActionFuncId = 0xC;
}
static void atkF7_finishturn(void)
{
- gFightStateTracker = 0xC;
- gCurrentMoveTurn = gNoOfAllBanks;
+ gCurrentActionFuncId = 0xC;
+ gCurrentTurnActionNumber = gNoOfAllBanks;
}
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index 7ca9ac3c4..b4c71b9c2 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -3,6 +3,7 @@
#include "battle_anim.h"
#include "battle_interface.h"
#include "blend_palette.h"
+#include "contest.h"
#include "data2.h"
#include "decompress.h"
#include "main.h"
@@ -623,15 +624,12 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
}
else
{
- const void *src;
- void *dst;
-
if (IsContest())
{
r10 = 0;
- species = ewram19348.unk2;
- personalityValue = ewram19348.unk8;
- otId = ewram19348.unkC;
+ species = shared19348.unk2;
+ personalityValue = shared19348.unk8;
+ otId = shared19348.unkC;
HandleLoadSpecialPokePic(
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
@@ -639,7 +637,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
eVoidSharedArr2,
gUnknown_081FAF4C[0],
species,
- ewram19348.unk10);
+ shared19348.unk10);
}
else
{
@@ -675,9 +673,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
gTransformedPersonalities[a]);
}
}
- src = gUnknown_081FAF4C[r10];
- dst = (void *)(VRAM + 0x10000 + gSprites[gObjectBankIDs[a]].oam.tileNum * 32);
- DmaCopy32(3, src, dst, 0x800);
+ DmaCopy32Defvars(3, gUnknown_081FAF4C[r10], (void *)(VRAM + 0x10000 + gSprites[gObjectBankIDs[a]].oam.tileNum * 32), 0x800);
paletteOffset = 0x100 + a * 16;
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
LZDecompressWram(lzPaletteData, gSharedMem);
@@ -762,7 +758,7 @@ void sub_80324E0(u8 a)
ewram17800[a].substituteSprite = 0;
}
-void sub_80324F8(struct Pokemon *pkmn, u8 b)
+void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b)
{
u16 hp = GetMonData(pkmn, MON_DATA_HP);
u16 maxHP = GetMonData(pkmn, MON_DATA_MAX_HP);
@@ -792,9 +788,9 @@ void sub_80324F8(struct Pokemon *pkmn, u8 b)
}
}
-void BattleMusicStop(void)
+void BattleStopLowHpSound(void)
{
- u8 r4 = GetBankByPlayerAI(0);
+ u8 r4 = GetBankByIdentity(0);
ewram17800[r4].unk0_1 = 0;
if (IsDoubleBattle())
@@ -814,17 +810,17 @@ void sub_8032638(void)
{
if (gMain.inBattle)
{
- u8 r8 = GetBankByPlayerAI(0);
- u8 r9 = GetBankByPlayerAI(2);
+ u8 r8 = GetBankByIdentity(0);
+ u8 r9 = GetBankByIdentity(2);
u8 r4 = pokemon_order_func(gBattlePartyID[r8]);
u8 r5 = pokemon_order_func(gBattlePartyID[r9]);
if (GetMonData(&gPlayerParty[r4], MON_DATA_HP) != 0)
- sub_80324F8(&gPlayerParty[r4], r8);
+ HandleLowHpMusicChange(&gPlayerParty[r4], r8);
if (IsDoubleBattle())
{
if (GetMonData(&gPlayerParty[r5], MON_DATA_HP) != 0)
- sub_80324F8(&gPlayerParty[r5], r9);
+ HandleLowHpMusicChange(&gPlayerParty[r5], r9);
}
}
}
@@ -856,12 +852,12 @@ void sub_80327CC(void)
u8 r5;
LoadCompressedObjectPic(&gUnknown_081FAF24);
- r5 = GetBankByPlayerAI(1);
+ r5 = GetBankByIdentity(1);
ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8);
gSprites[ewram17810[r5].unk7].data[0] = r5;
if (IsDoubleBattle())
{
- r5 = GetBankByPlayerAI(3);
+ r5 = GetBankByIdentity(3);
ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8);
gSprites[ewram17810[r5].unk7].data[0] = r5;
}
diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c
index 1fa7a2ed2..629a57d25 100644
--- a/src/battle/battle_ai.c
+++ b/src/battle/battle_ai.c
@@ -13,6 +13,8 @@
#include "util.h"
#include "ewram.h"
+extern u8 gUnknown_02023A14_50;
+extern u32 gUnknown_02023A14_4C;
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
extern u8 gActiveBank;
@@ -336,11 +338,15 @@ void BattleAI_SetupAIData(void)
else if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
AI_THINKING_STRUCT->aiFlags = 0x80000000;
#ifdef GERMAN
- else if (gBattleTypeFlags & 0x900 || gTrainerBattleOpponent == 0x400)
+ else if (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER) || gTrainerBattleOpponent == 0x400)
AI_THINKING_STRUCT->aiFlags = 7;
#endif
else // otherwise, just set aiFlags to whatever flags the trainer has set in their data.
AI_THINKING_STRUCT->aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags;
+#if DEBUG
+ if (gUnknown_02023A14_50 & 1)
+ AI_THINKING_STRUCT->aiFlags = gUnknown_02023A14_4C;
+#endif
}
u8 BattleAI_GetAIActionToUse(void)
@@ -355,7 +361,7 @@ u8 BattleAI_GetAIActionToUse(void)
{
if (AI_THINKING_STRUCT->aiFlags & 1)
{
- AI_THINKING_STRUCT->aiState = AIState_SettingUp;
+ AI_THINKING_STRUCT->aiState = BATTLEAI_SETTING_UP;
BattleAI_DoAIProcessing();
}
AI_THINKING_STRUCT->aiFlags >>= 1;
@@ -393,13 +399,13 @@ u8 BattleAI_GetAIActionToUse(void)
void BattleAI_DoAIProcessing(void)
{
- while (AI_THINKING_STRUCT->aiState != AIState_FinishedProcessing)
+ while (AI_THINKING_STRUCT->aiState != BATTLEAI_FINISHED)
{
switch (AI_THINKING_STRUCT->aiState)
{
- case AIState_DoNotProcess: //Needed to match.
+ case BATTLEAI_DO_NOT_PROCESS: //Needed to match.
break;
- case AIState_SettingUp:
+ case BATTLEAI_SETTING_UP:
gAIScriptPtr = BattleAIs[AI_THINKING_STRUCT->aiLogicId]; // set the AI ptr.
if (gBattleMons[gBankAttacker].pp[AI_THINKING_STRUCT->movesetIndex] == 0)
{
@@ -411,7 +417,7 @@ void BattleAI_DoAIProcessing(void)
}
AI_THINKING_STRUCT->aiState++;
break;
- case AIState_Processing:
+ case BATTLEAI_PROCESSING:
if (AI_THINKING_STRUCT->moveConsidered != MOVE_NONE)
sBattleAICmdTable[*gAIScriptPtr](); // run AI command.
else
@@ -423,7 +429,7 @@ void BattleAI_DoAIProcessing(void)
{
AI_THINKING_STRUCT->movesetIndex++;
if (AI_THINKING_STRUCT->movesetIndex < MAX_MON_MOVES && (AI_THINKING_STRUCT->aiAction & AI_ACTION_DO_NOT_ATTACK) == 0)
- AI_THINKING_STRUCT->aiState = AIState_SettingUp; // as long as their are more moves to process, keep setting this to setup state.
+ AI_THINKING_STRUCT->aiState = BATTLEAI_SETTING_UP; // as long as their are more moves to process, keep setting this to setup state.
else
AI_THINKING_STRUCT->aiState++; // done processing.
AI_THINKING_STRUCT->aiAction &= (AI_ACTION_FLEE | AI_ACTION_WATCH | AI_ACTION_DO_NOT_ATTACK |
@@ -1275,7 +1281,7 @@ static void BattleAICmd_if_arg_not_equal(void)
static void BattleAICmd_if_would_go_first(void)
{
- if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) == gAIScriptPtr[1])
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1283,7 +1289,7 @@ static void BattleAICmd_if_would_go_first(void)
static void BattleAICmd_if_would_not_go_first(void)
{
- if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) != gAIScriptPtr[1])
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1321,7 +1327,7 @@ static void BattleAICmd_count_alive_pokemon(void)
u32 status;
var = gBattlePartyID[index];
status = GetBankIdentity(index) ^ 2;
- var2 = gBattlePartyID[GetBankByPlayerAI(status)];
+ var2 = gBattlePartyID[GetBankByIdentity(status)];
}
else
{
@@ -1422,8 +1428,8 @@ static void BattleAICmd_get_highest_possible_damage(void)
s32 i;
gDynamicBasePower = 0;
- BATTLE_STRUCT->dynamicMoveType = 0;
- BATTLE_STRUCT->dmgMultiplier = 1;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleStruct->dmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
AI_THINKING_STRUCT->funcResult = 0;
@@ -1462,8 +1468,8 @@ static void BattleAICmd_if_damage_bonus(void)
u8 damageVar;
gDynamicBasePower = 0;
- BATTLE_STRUCT->dynamicMoveType = 0;
- BATTLE_STRUCT->dmgMultiplier = 1;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleStruct->dmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
@@ -1669,8 +1675,8 @@ static void BattleAICmd_if_can_faint(void)
}
gDynamicBasePower = 0;
- BATTLE_STRUCT->dynamicMoveType = 0;
- BATTLE_STRUCT->dmgMultiplier = 1;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleStruct->dmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
@@ -1698,8 +1704,8 @@ static void BattleAICmd_if_cant_faint(void)
}
gDynamicBasePower = 0;
- BATTLE_STRUCT->dynamicMoveType = 0;
- BATTLE_STRUCT->dmgMultiplier = 1;
+ gBattleStruct->dynamicMoveType = 0;
+ gBattleStruct->dmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
@@ -1907,7 +1913,7 @@ static void BattleAICmd_flee(void)
static void BattleAICmd_if_random_100(void)
{
- u8 safariFleeRate = BATTLE_STRUCT->safariFleeRate * 5; // safari flee rate, from 0-20
+ u8 safariFleeRate = gBattleStruct->safariFleeRate * 5; // safari flee rate, from 0-20
if ((u8)(Random() % 100) < safariFleeRate)
gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c
index 8242a1ddd..c71c12ce7 100644
--- a/src/battle/battle_anim.c
+++ b/src/battle/battle_anim.c
@@ -13,6 +13,7 @@
#include "sprite.h"
#include "task.h"
#include "ewram.h"
+#include "graphics.h"
// sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
#define GET_TRUE_SPRITE_INDEX(i) (i - 10000)
@@ -20,6 +21,1271 @@
#define ANIM_SPRITE_INDEX_COUNT 8
#define ANIM_ARGS_COUNT 8
+const struct OamData gOamData_837DF24 =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 0,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF2C =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 0,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF34 =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 0,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF3C =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 0,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF44 =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 1,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF4C =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 1,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF54 =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 1,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF5C =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 1,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF64 =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 2,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF6C =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 2,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF74 =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 2,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF7C =
+{
+ .affineMode = 0,
+ .objMode = 0,
+ .shape = 2,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF84 =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 0,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF8C =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 0,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF94 =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 0,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DF9C =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 0,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFA4 =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 1,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFAC =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 1,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFB4 =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 1,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFBC =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 1,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFC4 =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 2,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFCC =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 2,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFD4 =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 2,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFDC =
+{
+ .affineMode = 1,
+ .objMode = 0,
+ .shape = 2,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFE4 =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 0,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFEC =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 0,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFF4 =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 0,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837DFFC =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 0,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837D004 =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 1,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837D00C =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 1,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E014 =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 1,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E01C =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 1,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E024 =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 2,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E02C =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 2,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E034 =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 2,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E03C =
+{
+ .affineMode = 3,
+ .objMode = 0,
+ .shape = 2,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E044 =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 0,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E04C =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 0,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E054 =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 0,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E05C =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 0,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E064 =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 1,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E06C =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 1,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E074 =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 1,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E07C =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 1,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E084 =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 2,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E08C =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 2,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E094 =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 2,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E09C =
+{
+ .affineMode = 0,
+ .objMode = 1,
+ .shape = 2,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0A4 =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 0,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0AC =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 0,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0B4 =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 0,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0BC =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 0,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0C4 =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 1,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0CC =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 1,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0D4 =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 1,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0DC =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 1,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0E4 =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 2,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0EC =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 2,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0F4 =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 2,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E0FC =
+{
+ .affineMode = 1,
+ .objMode = 1,
+ .shape = 2,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E104 =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 0,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E10C =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 0,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E114 =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 0,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E11C =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 0,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E124 =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 1,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E12C =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 1,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E134 =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 1,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E13C =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 1,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E144 =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 2,
+ .size = 0,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E14C =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 2,
+ .size = 1,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E154 =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 2,
+ .size = 2,
+ .priority = 2,
+};
+
+const struct OamData gOamData_837E15C =
+{
+ .affineMode = 3,
+ .objMode = 1,
+ .shape = 2,
+ .size = 3,
+ .priority = 2,
+};
+
+const struct CompressedSpriteSheet gBattleAnimPicTable[] =
+{
+ { (u8 *) &gBattleAnimSpriteSheet_000, 0x200, 10000 },
+ { (u8 *) &gBattleAnimSpriteSheet_001, 0x300, 10001 },
+ { (u8 *) &gBattleAnimSpriteSheet_002, 0x200, 10002 },
+ { (u8 *) &gBattleAnimSpriteSheet_003, 0x100, 10003 },
+ { (u8 *) &gBattleAnimSpriteSheet_004, 0x200, 10004 },
+ { (u8 *) &gBattleAnimSpriteSheet_005, 0x400, 10005 },
+ { (u8 *) &gBattleAnimSpriteSheet_006, 0x180, 10006 },
+ { (u8 *) &gBattleAnimSpriteSheet_007, 0x800, 10007 },
+ { (u8 *) &gBattleAnimSpriteSheet_008, 0x20, 10008 },
+ { (u8 *) &gBattleAnimSpriteSheet_009, 0x400, 10009 },
+ { (u8 *) &gBattleAnimSpriteSheet_010, 0x1200, 10010 },
+ { (u8 *) &gBattleAnimSpriteSheet_011, 0x180, 10011 },
+ { (u8 *) &gBattleAnimSpriteSheet_012, 0x80, 10012 },
+ { (u8 *) &gBattleAnimSpriteSheet_013, 0x80, 10013 },
+ { (u8 *) &gBattleAnimSpriteSheet_014, 0x280, 10014 },
+ { (u8 *) &gBattleAnimSpriteSheet_015, 0x80, 10015 },
+ { (u8 *) &gBattleAnimSpriteSheet_016, 0x100, 10016 },
+ { (u8 *) &gBattleAnimSpriteSheet_017, 0x20, 10017 },
+ { (u8 *) &gBattleAnimSpriteSheet_018, 0x80, 10018 },
+ { (u8 *) &gBattleAnimSpriteSheet_019, 0x400, 10019 },
+ { (u8 *) &gBattleAnimSpriteSheet_020, 0x200, 10020 },
+ { (u8 *) &gBattleAnimSpriteSheet_021, 0xA00, 10021 },
+ { (u8 *) &gBattleAnimSpriteSheet_021, 0xA00, 10022 },
+ { (u8 *) &gBattleAnimSpriteSheet_023, 0x380, 10023 },
+ { (u8 *) &gBattleAnimSpriteSheet_024, 0x300, 10024 },
+ { (u8 *) &gBattleAnimSpriteSheet_025, 0xA00, 10025 },
+ { (u8 *) &gBattleAnimSpriteSheet_026, 0xA00, 10026 },
+ { (u8 *) &gBattleAnimSpriteSheet_027, 0xA00, 10027 },
+ { (u8 *) &gBattleAnimSpriteSheet_028, 0xA00, 10028 },
+ { (u8 *) &gBattleAnimSpriteSheet_029, 0xA00, 10029 },
+ { (u8 *) &gBattleAnimSpriteSheet_030, 0xA00, 10030 },
+ { (u8 *) &gBattleAnimSpriteSheet_031, 0xE00, 10031 },
+ { (u8 *) &gBattleAnimSpriteSheet_032, 0x380, 10032 },
+ { (u8 *) &gBattleAnimSpriteSheet_033, 0x1000, 10033 },
+ { (u8 *) &gBattleAnimSpriteSheet_034, 0x800, 10034 },
+ { (u8 *) &gBattleAnimSpriteSheet_035, 0xA00, 10035 },
+ { (u8 *) &gBattleAnimSpriteSheet_036, 0x800, 10036 },
+ { (u8 *) &gBattleAnimSpriteSheet_037, 0xA00, 10037 },
+ { (u8 *) &gBattleAnimSpriteSheet_038, 0xA00, 10038 },
+ { (u8 *) &gBattleAnimSpriteSheet_039, 0xA00, 10039 },
+ { (u8 *) &gBattleAnimSpriteSheet_040, 0xA00, 10040 },
+ { (u8 *) &gBattleAnimSpriteSheet_041, 0xA00, 10041 },
+ { (u8 *) &gBattleAnimSpriteSheet_042, 0xA00, 10042 },
+ { (u8 *) &gBattleAnimSpriteSheet_043, 0xA00, 10043 },
+ { (u8 *) &gBattleAnimSpriteSheet_044, 0xA00, 10044 },
+ { (u8 *) &gBattleAnimSpriteSheet_045, 0xA00, 10045 },
+ { (u8 *) &gBattleAnimSpriteSheet_046, 0x1000, 10046 },
+ { (u8 *) &gBattleAnimSpriteSheet_046, 0x1000, 10047 },
+ { (u8 *) &gBattleAnimSpriteSheet_048, 0x1000, 10048 },
+ { (u8 *) &gBattleAnimSpriteSheet_048, 0x1000, 10049 },
+ { (u8 *) &gBattleAnimSpriteSheet_050, 0x200, 10050 },
+ { (u8 *) &gBattleAnimSpriteSheet_051, 0x200, 10051 },
+ { (u8 *) &gBattleAnimSpriteSheet_052, 0x200, 10052 },
+ { (u8 *) &gBattleAnimSpriteSheet_053, 0x800, 10053 },
+ { (u8 *) &gBattleAnimSpriteSheet_054, 0x80, 10054 },
+ { (u8 *) &gBattleAnimSpriteSheet_055, 0x200, 10055 },
+ { (u8 *) &gBattleAnimSpriteSheet_056, 0x1000, 10056 },
+ { (u8 *) &gBattleAnimSpriteSheet_057, 0x180, 10057 },
+ { (u8 *) &gBattleAnimSpriteSheet_058, 0xC00, 10058 },
+ { (u8 *) &gBattleAnimSpriteSheet_059, 0x100, 10059 },
+ { (u8 *) &gBattleAnimSpriteSheet_060, 0x40, 10060 },
+ { (u8 *) &gBattleAnimSpriteSheet_061, 0x180, 10061 },
+ { (u8 *) &gBattleAnimSpriteSheet_062, 0x800, 10062 },
+ { (u8 *) &gBattleAnimSpriteSheet_063, 0x480, 10063 },
+ { (u8 *) &gBattleAnimSpriteSheet_064, 0x200, 10064 },
+ { (u8 *) &gBattleAnimSpriteSheet_065, 0x200, 10065 },
+ { (u8 *) &gBattleAnimSpriteSheet_066, 0x100, 10066 },
+ { (u8 *) &gBattleAnimSpriteSheet_065, 0x200, 10067 },
+ { (u8 *) &gBattleAnimSpriteSheet_065, 0x200, 10068 },
+ { (u8 *) &gBattleAnimSpriteSheet_065, 0x200, 10069 },
+ { (u8 *) &gBattleAnimSpriteSheet_070, 0x200, 10070 },
+ { (u8 *) &gBattleAnimSpriteSheet_071, 0xA00, 10071 },
+ { (u8 *) &gBattleAnimSpriteSheet_072, 0x300, 10072 },
+ { (u8 *) &gBattleAnimSpriteSheet_073, 0x180, 10073 },
+ { (u8 *) &gBattleAnimSpriteSheet_074, 0xA0, 10074 },
+ { (u8 *) &gBattleAnimSpriteSheet_075, 0x700, 10075 },
+ { (u8 *) &gBattleAnimSpriteSheet_076, 0x400, 10076 },
+ { (u8 *) &gBattleAnimSpriteSheet_077, 0x200, 10077 },
+ { (u8 *) &gBattleAnimSpriteSheet_078, 0x300, 10078 },
+ { (u8 *) &gBattleAnimSpriteSheet_079, 0xC00, 10079 },
+ { (u8 *) &gBattleAnimSpriteSheet_080, 0xA00, 10080 },
+ { (u8 *) &gBattleAnimSpriteSheet_081, 0x80, 10081 },
+ { (u8 *) &gBattleAnimSpriteSheet_082, 0x40, 10082 },
+ { (u8 *) &gBattleAnimSpriteSheet_083, 0xE00, 10083 },
+ { (u8 *) &gBattleAnimSpriteSheet_084, 0xE00, 10084 },
+ { (u8 *) &gBattleAnimSpriteSheet_085, 0x280, 10085 },
+ { (u8 *) &gBattleAnimSpriteSheet_086, 0x200, 10086 },
+ { (u8 *) &gBattleAnimSpriteSheet_087, 0x80, 10087 },
+ { (u8 *) &gBattleAnimSpriteSheet_088, 0xC0, 10088 },
+ { (u8 *) &gBattleAnimSpriteSheet_089, 0xA00, 10089 },
+ { (u8 *) &gBattleAnimSpriteSheet_090, 0x200, 10090 },
+ { (u8 *) &gBattleAnimSpriteSheet_091, 0x180, 10091 },
+ { (u8 *) &gBattleAnimSpriteSheet_092, 0x80, 10092 },
+ { (u8 *) &gBattleAnimSpriteSheet_093, 0x1000, 10093 },
+ { (u8 *) &gBattleAnimSpriteSheet_094, 0xA00, 10094 },
+ { (u8 *) &gBattleAnimSpriteSheet_095, 0x180, 10095 },
+ { (u8 *) &gBattleAnimSpriteSheet_096, 0x380, 10096 },
+ { (u8 *) &gBattleAnimSpriteSheet_097, 0xC00, 10097 },
+ { (u8 *) &gBattleAnimSpriteSheet_098, 0x200, 10098 },
+ { (u8 *) &gBattleAnimSpriteSheet_099, 0x200, 10099 },
+ { (u8 *) &gBattleAnimSpriteSheet_100, 0x200, 10100 },
+ { (u8 *) &gBattleAnimSpriteSheet_101, 0x200, 10101 },
+ { (u8 *) &gBattleAnimSpriteSheet_102, 0x400, 10102 },
+ { (u8 *) &gBattleAnimSpriteSheet_103, 0x80, 10103 },
+ { (u8 *) &gBattleAnimSpriteSheet_104, 0x400, 10104 },
+ { (u8 *) &gBattleAnimSpriteSheet_105, 0xC00, 10105 },
+ { (u8 *) &gBattleAnimSpriteSheet_106, 0x200, 10106 },
+ { (u8 *) &gBattleAnimSpriteSheet_107, 0x1000, 10107 },
+ { (u8 *) &gBattleAnimSpriteSheet_108, 0xA00, 10108 },
+ { (u8 *) &gBattleAnimSpriteSheet_109, 0x20, 10109 },
+ { (u8 *) &gBattleAnimSpriteSheet_110, 0xE00, 10110 },
+ { (u8 *) &gBattleAnimSpriteSheet_111, 0x80, 10111 },
+ { (u8 *) &gBattleAnimSpriteSheet_112, 0xA00, 10112 },
+ { (u8 *) &gBattleAnimSpriteSheet_113, 0x400, 10113 },
+ { (u8 *) &gBattleAnimSpriteSheet_114, 0x200, 10114 },
+ { (u8 *) &gBattleAnimSpriteSheet_115, 0x700, 10115 },
+ { (u8 *) &gBattleAnimSpriteSheet_116, 0x800, 10116 },
+ { (u8 *) &gBattleAnimSpriteSheet_117, 0xA00, 10117 },
+ { (u8 *) &gBattleAnimSpriteSheet_118, 0x600, 10118 },
+ { (u8 *) &gBattleAnimSpriteSheet_119, 0x800, 10119 },
+ { (u8 *) &gBattleAnimSpriteSheet_120, 0x200, 10120 },
+ { (u8 *) &gBattleAnimSpriteSheet_121, 0x40, 10121 },
+ { (u8 *) &gBattleAnimSpriteSheet_122, 0x180, 10122 },
+ { (u8 *) &gBattleAnimSpriteSheet_123, 0x600, 10123 },
+ { (u8 *) &gBattleAnimSpriteSheet_124, 0x600, 10124 },
+ { (u8 *) &gBattleAnimSpriteSheet_125, 0x200, 10125 },
+ { (u8 *) &gBattleAnimSpriteSheet_126, 0x80, 10126 },
+ { (u8 *) &gBattleAnimSpriteSheet_127, 0x200, 10127 },
+ { (u8 *) &gBattleAnimSpriteSheet_128, 0x800, 10128 },
+ { (u8 *) &gBattleAnimSpriteSheet_129, 0x80, 10129 },
+ { (u8 *) &gBattleAnimSpriteSheet_130, 0xA00, 10130 },
+ { (u8 *) &gBattleAnimSpriteSheet_131, 0x280, 10131 },
+ { (u8 *) &gBattleAnimSpriteSheet_132, 0x280, 10132 },
+ { (u8 *) &gBattleAnimSpriteSheet_133, 0x100, 10133 },
+ { (u8 *) &gBattleAnimSpriteSheet_134, 0x200, 10134 },
+ { (u8 *) &gBattleAnimSpriteSheet_135, 0x200, 10135 },
+ { (u8 *) &gBattleAnimSpriteSheet_136, 0x20, 10136 },
+ { (u8 *) &gBattleAnimSpriteSheet_137, 0xA00, 10137 },
+ { (u8 *) &gBattleAnimSpriteSheet_138, 0x800, 10138 },
+ { (u8 *) &gBattleAnimSpriteSheet_139, 0x800, 10139 },
+ { (u8 *) &gBattleAnimSpriteSheet_140, 0xC0, 10140 },
+ { (u8 *) &gBattleAnimSpriteSheet_141, 0x1C0, 10141 },
+ { (u8 *) &gBattleAnimSpriteSheet_142, 0x100, 10142 },
+ { (u8 *) &gBattleAnimSpriteSheet_143, 0x800, 10143 },
+ { (u8 *) &gBattleAnimSpriteSheet_144, 0x200, 10144 },
+ { (u8 *) &gBattleAnimSpriteSheet_145, 0x800, 10145 },
+ { (u8 *) &gBattleAnimSpriteSheet_146, 0x180, 10146 },
+ { (u8 *) &gBattleAnimSpriteSheet_147, 0x180, 10147 },
+ { (u8 *) &gBattleAnimSpriteSheet_148, 0x200, 10148 },
+ { (u8 *) &gBattleAnimSpriteSheet_149, 0x200, 10149 },
+ { (u8 *) &gBattleAnimSpriteSheet_150, 0x180, 10150 },
+ { (u8 *) &gBattleAnimSpriteSheet_151, 0x400, 10151 },
+ { (u8 *) &gBattleAnimSpriteSheet_152, 0x80, 10152 },
+ { (u8 *) &gBattleAnimSpriteSheet_153, 0x100, 10153 },
+ { (u8 *) &gBattleAnimSpriteSheet_154, 0x100, 10154 },
+ { (u8 *) &gBattleAnimSpriteSheet_155, 0x140, 10155 },
+ { (u8 *) &gBattleAnimSpriteSheet_156, 0x800, 10156 },
+ { (u8 *) &gBattleAnimSpriteSheet_157, 0x200, 10157 },
+ { (u8 *) &gBattleAnimSpriteSheet_158, 0x100, 10158 },
+ { (u8 *) &gBattleAnimSpriteSheet_159, 0xA0, 10159 },
+ { (u8 *) &gBattleAnimSpriteSheet_160, 0x100, 10160 },
+ { (u8 *) &gBattleAnimSpriteSheet_161, 0x80, 10161 },
+ { (u8 *) &gBattleAnimSpriteSheet_162, 0x300, 10162 },
+ { (u8 *) &gBattleAnimSpriteSheet_163, 0x100, 10163 },
+ { (u8 *) &gBattleAnimSpriteSheet_163, 0x100, 10164 },
+ { (u8 *) &gBattleAnimSpriteSheet_163, 0x100, 10165 },
+ { (u8 *) &gBattleAnimSpriteSheet_166, 0x800, 10166 },
+ { (u8 *) &gBattleAnimSpriteSheet_166, 0x800, 10167 },
+ { (u8 *) &gBattleAnimSpriteSheet_166, 0x800, 10168 },
+ { (u8 *) &gBattleAnimSpriteSheet_166, 0x800, 10169 },
+ { (u8 *) &gBattleAnimSpriteSheet_166, 0x800, 10170 },
+ { (u8 *) &gBattleAnimSpriteSheet_171, 0x80, 10171 },
+ { (u8 *) &gBattleAnimSpriteSheet_144, 0x200, 10172 },
+ { (u8 *) &gBattleAnimSpriteSheet_173, 0x200, 10173 },
+ { (u8 *) &gBattleAnimSpriteSheet_174, 0x200, 10174 },
+ { (u8 *) &gBattleAnimSpriteSheet_175, 0x80, 10175 },
+ { (u8 *) &gBattleAnimSpriteSheet_176, 0x200, 10176 },
+ { (u8 *) &gBattleAnimSpriteSheet_177, 0x500, 10177 },
+ { (u8 *) &gBattleAnimSpriteSheet_178, 0x800, 10178 },
+ { (u8 *) &gBattleAnimSpriteSheet_179, 0x400, 10179 },
+ { (u8 *) &gBattleAnimSpriteSheet_180, 0x20, 10180 },
+ { (u8 *) &gBattleAnimSpriteSheet_181, 0x800, 10181 },
+ { (u8 *) &gBattleAnimSpriteSheet_182, 0x100, 10182 },
+ { (u8 *) &gBattleAnimSpriteSheet_183, 0x800, 10183 },
+ { (u8 *) &gBattleAnimSpriteSheet_184, 0x400, 10184 },
+ { (u8 *) &gBattleAnimSpriteSheet_185, 0xA00, 10185 },
+ { (u8 *) &gBattleAnimSpriteSheet_186, 0x1000, 10186 },
+ { (u8 *) &gBattleAnimSpriteSheet_187, 0x800, 10187 },
+ { (u8 *) &gBattleAnimSpriteSheet_188, 0x400, 10188 },
+ { (u8 *) &gBattleAnimSpriteSheet_189, 0x200, 10189 },
+ { (u8 *) &gBattleAnimSpriteSheet_190, 0x800, 10190 },
+ { (u8 *) &gBattleAnimSpriteSheet_191, 0x800, 10191 },
+ { (u8 *) &gBattleAnimSpriteSheet_192, 0x800, 10192 },
+ { (u8 *) &gBattleAnimSpriteSheet_193, 0x200, 10193 },
+ { (u8 *) &gBattleAnimSpriteSheet_194, 0x800, 10194 },
+ { (u8 *) &gBattleAnimSpriteSheet_195, 0x200, 10195 },
+ { (u8 *) &gBattleAnimSpriteSheet_196, 0x800, 10196 },
+ { (u8 *) &gBattleAnimSpriteSheet_197, 0x200, 10197 },
+ { (u8 *) &gBattleAnimSpriteSheet_198, 0x800, 10198 },
+ { (u8 *) &gBattleAnimSpriteSheet_199, 0x400, 10199 },
+ { (u8 *) &gBattleAnimSpriteSheet_200, 0x200, 10200 },
+ { (u8 *) &gBattleAnimSpriteSheet_201, 0xA80, 10201 },
+ { (u8 *) &gBattleAnimSpriteSheet_202, 0x600, 10202 },
+ { (u8 *) &gBattleAnimSpriteSheet_203, 0x800, 10203 },
+ { (u8 *) &gBattleAnimSpriteSheet_204, 0x200, 10204 },
+ { (u8 *) &gBattleAnimSpriteSheet_205, 0x600, 10205 },
+ { (u8 *) &gBattleAnimSpriteSheet_206, 0x800, 10206 },
+ { (u8 *) &gBattleAnimSpriteSheet_207, 0x180, 10207 },
+ { (u8 *) &gBattleAnimSpriteSheet_208, 0x800, 10208 },
+ { (u8 *) &gBattleAnimSpriteSheet_209, 0x800, 10209 },
+ { (u8 *) &gBattleAnimSpriteSheet_210, 0x80, 10210 },
+ { (u8 *) &gBattleAnimSpriteSheet_211, 0x80, 10211 },
+ { (u8 *) &gBattleAnimSpriteSheet_212, 0x800, 10212 },
+ { (u8 *) &gBattleAnimSpriteSheet_213, 0x800, 10213 },
+ { (u8 *) &gBattleAnimSpriteSheet_214, 0x600, 10214 },
+ { (u8 *) &gBattleAnimSpriteSheet_215, 0x600, 10215 },
+ { (u8 *) &gBattleAnimSpriteSheet_210, 0x80, 10216 },
+ { (u8 *) &gBattleAnimSpriteSheet_217, 0x80, 10217 },
+ { (u8 *) &gBattleAnimSpriteSheet_218, 0x180, 10218 },
+ { (u8 *) &gBattleAnimSpriteSheet_210, 0x80, 10219 },
+ { (u8 *) &gBattleAnimSpriteSheet_220, 0x200, 10220 },
+ { (u8 *) &gBattleAnimSpriteSheet_221, 0x400, 10221 },
+ { (u8 *) &gBattleAnimSpriteSheet_222, 0xA00, 10222 },
+ { (u8 *) &gBattleAnimSpriteSheet_223, 0x800, 10223 },
+ { (u8 *) &gBattleAnimSpriteSheet_224, 0x200, 10224 },
+ { (u8 *) &gBattleAnimSpriteSheet_225, 0x400, 10225 },
+ { (u8 *) &gBattleAnimSpriteSheet_226, 0x80, 10226 },
+ { (u8 *) &gBattleAnimSpriteSheet_227, 0x800, 10227 },
+ { (u8 *) &gBattleAnimSpriteSheet_228, 0x200, 10228 },
+ { (u8 *) &gBattleAnimSpriteSheet_229, 0x300, 10229 },
+ { (u8 *) &gBattleAnimSpriteSheet_230, 0x800, 10230 },
+ { (u8 *) &gBattleAnimSpriteSheet_231, 0x380, 10231 },
+ { (u8 *) &gBattleAnimSpriteSheet_232, 0x800, 10232 },
+ { (u8 *) &gBattleAnimSpriteSheet_233, 0xC0, 10233 },
+ { (u8 *) &gBattleAnimSpriteSheet_234, 0x800, 10234 },
+ { (u8 *) &gBattleAnimSpriteSheet_235, 0x60, 10235 },
+ { (u8 *) &gBattleAnimSpriteSheet_235, 0x60, 10236 },
+ { (u8 *) &gBattleAnimSpriteSheet_235, 0x60, 10237 },
+ { (u8 *) &gBattleAnimSpriteSheet_238, 0x80, 10238 },
+ { (u8 *) &gBattleAnimSpriteSheet_239, 0x180, 10239 },
+ { (u8 *) &gBattleAnimSpriteSheet_240, 0x180, 10240 },
+ { (u8 *) &gBattleAnimSpriteSheet_241, 0x200, 10241 },
+ { (u8 *) &gBattleAnimSpriteSheet_242, 0x200, 10242 },
+ { (u8 *) &gBattleAnimSpriteSheet_243, 0x20, 10243 },
+ { (u8 *) &gBattleAnimSpriteSheet_244, 0x400, 10244 },
+ { (u8 *) &gBattleAnimSpriteSheet_245, 0x600, 10245 },
+ { (u8 *) &gBattleAnimSpriteSheet_246, 0x1000, 10246 },
+ { (u8 *) &gBattleAnimSpriteSheet_247, 0x400, 10247 },
+ { (u8 *) &gBattleAnimSpriteSheet_248, 0x20, 10248 },
+ { (u8 *) &gBattleAnimSpriteSheet_249, 0x80, 10249 },
+ { (u8 *) &gBattleAnimSpriteSheet_250, 0x800, 10250 },
+ { (u8 *) &gBattleAnimSpriteSheet_251, 0x80, 10251 },
+ { (u8 *) &gBattleAnimSpriteSheet_252, 0x200, 10252 },
+ { (u8 *) &gBattleAnimSpriteSheet_253, 0x400, 10253 },
+ { (u8 *) &gBattleAnimSpriteSheet_254, 0x200, 10254 },
+ { (u8 *) &gBattleAnimSpriteSheet_255, 0x200, 10255 },
+ { (u8 *) &gBattleAnimSpriteSheet_256, 0x800, 10256 },
+ { (u8 *) &gBattleAnimSpriteSheet_257, 0x280, 10257 },
+ { (u8 *) &gBattleAnimSpriteSheet_258, 0x200, 10258 },
+ { (u8 *) &gBattleAnimSpriteSheet_149, 0x200, 10259 },
+ { (u8 *) &gBattleAnimSpriteSheet_260, 0x400, 10260 },
+ { (u8 *) &gBattleAnimSpriteSheet_261, 0x200, 10261 },
+ { (u8 *) &gBattleAnimSpriteSheet_262, 0x200, 10262 },
+ { (u8 *) &gBattleAnimSpriteSheet_263, 0x80, 10263 },
+ { (u8 *) &gBattleAnimSpriteSheet_264, 0x20, 10264 },
+ { (u8 *) &gBattleAnimSpriteSheet_264, 0x20, 10265 },
+ { (u8 *) &gBattleAnimSpriteSheet_266, 0x80, 10266 },
+ { (u8 *) &gBattleAnimSpriteSheet_212, 0x800, 10267 },
+ { (u8 *) &gBattleAnimSpriteSheet_264, 0x20, 10268 },
+ { (u8 *) &gBattleAnimSpriteSheet_269, 0x80, 10269 },
+ { (u8 *) &gBattleAnimSpriteSheet_270, 0x400, 10270 },
+ { (u8 *) &gBattleAnimSpriteSheet_271, 0x80, 10271 },
+ { (u8 *) &gBattleAnimSpriteSheet_272, 0x800, 10272 },
+ { (u8 *) &gBattleAnimSpriteSheet_273, 0x20, 10273 },
+ { (u8 *) &gBattleAnimSpriteSheet_274, 0x800, 10274 },
+ { (u8 *) &gBattleAnimSpriteSheet_275, 0x800, 10275 },
+ { (u8 *) &gBattleAnimSpriteSheet_276, 0x800, 10276 },
+ { (u8 *) &gBattleAnimSpriteSheet_277, 0x1000, 10277 },
+ { (u8 *) &gBattleAnimSpriteSheet_278, 0x800, 10278 },
+ { (u8 *) &gBattleAnimSpriteSheet_279, 0xA0, 10279 },
+ { (u8 *) &gBattleAnimSpriteSheet_280, 0x800, 10280 },
+ { (u8 *) &gBattleAnimSpriteSheet_281, 0x200, 10281 },
+ { (u8 *) &gBattleAnimSpriteSheet_282, 0x600, 10282 },
+ { (u8 *) &gBattleAnimSpriteSheet_283, 0x200, 10283 },
+ { (u8 *) &gBattleAnimSpriteSheet_284, 0x800, 10284 },
+ { (u8 *) &gBattleAnimSpriteSheet_285, 0x200, 10285 },
+ { (u8 *) &gBattleAnimSpriteSheet_183, 0x800, 10286 },
+ { (u8 *) &gBattleAnimSpriteSheet_056, 0x1000, 10287 },
+ { (u8 *) &gBattleAnimSpriteSheet_163, 0x100, 10288 },
+};
+
+const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
+{
+ { (u8 *) &gBattleAnimSpritePalette_000, 10000 },
+ { (u8 *) &gBattleAnimSpritePalette_001, 10001 },
+ { (u8 *) &gBattleAnimSpritePalette_002, 10002 },
+ { (u8 *) &gBattleAnimSpritePalette_003, 10003 },
+ { (u8 *) &gBattleAnimSpritePalette_004, 10004 },
+ { (u8 *) &gBattleAnimSpritePalette_005, 10005 },
+ { (u8 *) &gBattleAnimSpritePalette_006, 10006 },
+ { (u8 *) &gBattleAnimSpritePalette_007, 10007 },
+ { (u8 *) &gBattleAnimSpritePalette_008, 10008 },
+ { (u8 *) &gBattleAnimSpritePalette_009, 10009 },
+ { (u8 *) &gBattleAnimSpritePalette_010, 10010 },
+ { (u8 *) &gBattleAnimSpritePalette_011, 10011 },
+ { (u8 *) &gBattleAnimSpritePalette_012, 10012 },
+ { (u8 *) &gBattleAnimSpritePalette_013, 10013 },
+ { (u8 *) &gBattleAnimSpritePalette_014, 10014 },
+ { (u8 *) &gBattleAnimSpritePalette_015, 10015 },
+ { (u8 *) &gBattleAnimSpritePalette_016, 10016 },
+ { (u8 *) &gBattleAnimSpritePalette_016, 10017 },
+ { (u8 *) &gBattleAnimSpritePalette_018, 10018 },
+ { (u8 *) &gBattleAnimSpritePalette_019, 10019 },
+ { (u8 *) &gBattleAnimSpritePalette_020, 10020 },
+ { (u8 *) &gBattleAnimSpritePalette_021, 10021 },
+ { (u8 *) &gBattleAnimSpritePalette_022, 10022 },
+ { (u8 *) &gBattleAnimSpritePalette_023, 10023 },
+ { (u8 *) &gBattleAnimSpritePalette_024, 10024 },
+ { (u8 *) &gBattleAnimSpritePalette_025, 10025 },
+ { (u8 *) &gBattleAnimSpritePalette_026, 10026 },
+ { (u8 *) &gBattleAnimSpritePalette_027, 10027 },
+ { (u8 *) &gBattleAnimSpritePalette_028, 10028 },
+ { (u8 *) &gBattleAnimSpritePalette_029, 10029 },
+ { (u8 *) &gBattleAnimSpritePalette_030, 10030 },
+ { (u8 *) &gBattleAnimSpritePalette_031, 10031 },
+ { (u8 *) &gBattleAnimSpritePalette_032, 10032 },
+ { (u8 *) &gBattleAnimSpritePalette_033, 10033 },
+ { (u8 *) &gBattleAnimSpritePalette_033, 10034 },
+ { (u8 *) &gBattleAnimSpritePalette_033, 10035 },
+ { (u8 *) &gBattleAnimSpritePalette_036, 10036 },
+ { (u8 *) &gBattleAnimSpritePalette_036, 10037 },
+ { (u8 *) &gBattleAnimSpritePalette_038, 10038 },
+ { (u8 *) &gBattleAnimSpritePalette_039, 10039 },
+ { (u8 *) &gBattleAnimSpritePalette_038, 10040 },
+ { (u8 *) &gBattleAnimSpritePalette_038, 10041 },
+ { (u8 *) &gBattleAnimSpritePalette_042, 10042 },
+ { (u8 *) &gBattleAnimSpritePalette_043, 10043 },
+ { (u8 *) &gBattleAnimSpritePalette_044, 10044 },
+ { (u8 *) &gBattleAnimSpritePalette_045, 10045 },
+ { (u8 *) &gBattleAnimSpritePalette_046, 10046 },
+ { (u8 *) &gBattleAnimSpritePalette_047, 10046 },
+ { (u8 *) &gBattleAnimSpritePalette_048, 10048 },
+ { (u8 *) &gBattleAnimSpritePalette_049, 10049 },
+ { (u8 *) &gBattleAnimSpritePalette_050, 10050 },
+ { (u8 *) &gBattleAnimSpritePalette_050, 10051 },
+ { (u8 *) &gBattleAnimSpritePalette_050, 10052 },
+ { (u8 *) &gBattleAnimSpritePalette_026, 10053 },
+ { (u8 *) &gBattleAnimSpritePalette_054, 10054 },
+ { (u8 *) &gBattleAnimSpritePalette_050, 10055 },
+ { (u8 *) &gBattleAnimSpritePalette_056, 10056 },
+ { (u8 *) &gBattleAnimSpritePalette_057, 10057 },
+ { (u8 *) &gBattleAnimSpritePalette_058, 10058 },
+ { (u8 *) &gBattleAnimSpritePalette_059, 10059 },
+ { (u8 *) &gBattleAnimSpritePalette_060, 10060 },
+ { (u8 *) &gBattleAnimSpritePalette_061, 10061 },
+ { (u8 *) &gBattleAnimSpritePalette_062, 10062 },
+ { (u8 *) &gBattleAnimSpritePalette_063, 10063 },
+ { (u8 *) &gBattleAnimSpritePalette_064, 10064 },
+ { (u8 *) &gBattleAnimSpritePalette_065, 10065 },
+ { (u8 *) &gBattleAnimSpritePalette_066, 10066 },
+ { (u8 *) &gBattleAnimSpritePalette_067, 10067 },
+ { (u8 *) &gBattleAnimSpritePalette_068, 10068 },
+ { (u8 *) &gBattleAnimSpritePalette_065, 10069 },
+ { (u8 *) &gBattleAnimSpritePalette_070, 10070 },
+ { (u8 *) &gBattleAnimSpritePalette_070, 10071 },
+ { (u8 *) &gBattleAnimSpritePalette_072, 10072 },
+ { (u8 *) &gBattleAnimSpritePalette_073, 10073 },
+ { (u8 *) &gBattleAnimSpritePalette_074, 10074 },
+ { (u8 *) &gBattleAnimSpritePalette_075, 10075 },
+ { (u8 *) &gBattleAnimSpritePalette_076, 10076 },
+ { (u8 *) &gBattleAnimSpritePalette_076, 10077 },
+ { (u8 *) &gBattleAnimSpritePalette_078, 10078 },
+ { (u8 *) &gBattleAnimSpritePalette_078, 10079 },
+ { (u8 *) &gBattleAnimSpritePalette_080, 10080 },
+ { (u8 *) &gBattleAnimSpritePalette_081, 10081 },
+ { (u8 *) &gBattleAnimSpritePalette_082, 10082 },
+ { (u8 *) &gBattleAnimSpritePalette_083, 10083 },
+ { (u8 *) &gBattleAnimSpritePalette_084, 10084 },
+ { (u8 *) &gBattleAnimSpritePalette_085, 10085 },
+ { (u8 *) &gBattleAnimSpritePalette_086, 10086 },
+ { (u8 *) &gBattleAnimSpritePalette_087, 10087 },
+ { (u8 *) &gBattleAnimSpritePalette_088, 10088 },
+ { (u8 *) &gBattleAnimSpritePalette_089, 10089 },
+ { (u8 *) &gBattleAnimSpritePalette_090, 10090 },
+ { (u8 *) &gBattleAnimSpritePalette_091, 10091 },
+ { (u8 *) &gBattleAnimSpritePalette_092, 10092 },
+ { (u8 *) &gBattleAnimSpritePalette_093, 10093 },
+ { (u8 *) &gBattleAnimSpritePalette_094, 10094 },
+ { (u8 *) &gBattleAnimSpritePalette_095, 10095 },
+ { (u8 *) &gBattleAnimSpritePalette_096, 10096 },
+ { (u8 *) &gBattleAnimSpritePalette_097, 10097 },
+ { (u8 *) &gBattleAnimSpritePalette_094, 10098 },
+ { (u8 *) &gBattleAnimSpritePalette_099, 10099 },
+ { (u8 *) &gBattleAnimSpritePalette_100, 10100 },
+ { (u8 *) &gBattleAnimSpritePalette_101, 10101 },
+ { (u8 *) &gBattleAnimSpritePalette_101, 10102 },
+ { (u8 *) &gBattleAnimSpritePalette_103, 10103 },
+ { (u8 *) &gBattleAnimSpritePalette_104, 10104 },
+ { (u8 *) &gBattleAnimSpritePalette_105, 10105 },
+ { (u8 *) &gBattleAnimSpritePalette_105, 10106 },
+ { (u8 *) &gBattleAnimSpritePalette_107, 10107 },
+ { (u8 *) &gBattleAnimSpritePalette_107, 10108 },
+ { (u8 *) &gBattleAnimSpritePalette_109, 10109 },
+ { (u8 *) &gBattleAnimSpritePalette_109, 10110 },
+ { (u8 *) &gBattleAnimSpritePalette_111, 10111 },
+ { (u8 *) &gBattleAnimSpritePalette_112, 10112 },
+ { (u8 *) &gBattleAnimSpritePalette_113, 10113 },
+ { (u8 *) &gBattleAnimSpritePalette_114, 10114 },
+ { (u8 *) &gBattleAnimSpritePalette_115, 10115 },
+ { (u8 *) &gBattleAnimSpritePalette_116, 10116 },
+ { (u8 *) &gBattleAnimSpritePalette_117, 10117 },
+ { (u8 *) &gBattleAnimSpritePalette_118, 10118 },
+ { (u8 *) &gBattleAnimSpritePalette_119, 10119 },
+ { (u8 *) &gBattleAnimSpritePalette_120, 10120 },
+ { (u8 *) &gBattleAnimSpritePalette_121, 10121 },
+ { (u8 *) &gBattleAnimSpritePalette_122, 10122 },
+ { (u8 *) &gBattleAnimSpritePalette_122, 10123 },
+ { (u8 *) &gBattleAnimSpritePalette_124, 10124 },
+ { (u8 *) &gBattleAnimSpritePalette_125, 10125 },
+ { (u8 *) &gBattleAnimSpritePalette_126, 10126 },
+ { (u8 *) &gBattleAnimSpritePalette_127, 10127 },
+ { (u8 *) &gBattleAnimSpritePalette_128, 10128 },
+ { (u8 *) &gBattleAnimSpritePalette_128, 10129 },
+ { (u8 *) &gBattleAnimSpritePalette_130, 10130 },
+ { (u8 *) &gBattleAnimSpritePalette_130, 10131 },
+ { (u8 *) &gBattleAnimSpritePalette_132, 10132 },
+ { (u8 *) &gBattleAnimSpritePalette_133, 10133 },
+ { (u8 *) &gBattleAnimSpritePalette_133, 10134 },
+ { (u8 *) &gBattleAnimSpritePalette_135, 10135 },
+ { (u8 *) &gBattleAnimSpritePalette_136, 10136 },
+ { (u8 *) &gBattleAnimSpritePalette_135, 10137 },
+ { (u8 *) &gBattleAnimSpritePalette_135, 10138 },
+ { (u8 *) &gBattleAnimSpritePalette_139, 10139 },
+ { (u8 *) &gBattleAnimSpritePalette_140, 10140 },
+ { (u8 *) &gBattleAnimSpritePalette_141, 10141 },
+ { (u8 *) &gBattleAnimSpritePalette_141, 10142 },
+ { (u8 *) &gBattleAnimSpritePalette_143, 10143 },
+ { (u8 *) &gBattleAnimSpritePalette_144, 10144 },
+ { (u8 *) &gBattleAnimSpritePalette_139, 10145 },
+ { (u8 *) &gBattleAnimSpritePalette_115, 10146 },
+ { (u8 *) &gBattleAnimSpritePalette_147, 10147 },
+ { (u8 *) &gBattleAnimSpritePalette_148, 10148 },
+ { (u8 *) &gBattleAnimSpritePalette_148, 10149 },
+ { (u8 *) &gBattleAnimSpritePalette_150, 10150 },
+ { (u8 *) &gBattleAnimSpritePalette_150, 10151 },
+ { (u8 *) &gBattleAnimSpritePalette_152, 10152 },
+ { (u8 *) &gBattleAnimSpritePalette_153, 10153 },
+ { (u8 *) &gBattleAnimSpritePalette_154, 10154 },
+ { (u8 *) &gBattleAnimSpritePalette_155, 10155 },
+ { (u8 *) &gBattleAnimSpritePalette_156, 10156 },
+ { (u8 *) &gBattleAnimSpritePalette_157, 10157 },
+ { (u8 *) &gBattleAnimSpritePalette_158, 10158 },
+ { (u8 *) &gBattleAnimSpritePalette_159, 10159 },
+ { (u8 *) &gBattleAnimSpritePalette_160, 10160 },
+ { (u8 *) &gBattleAnimSpritePalette_161, 10161 },
+ { (u8 *) &gBattleAnimSpritePalette_162, 10162 },
+ { (u8 *) &gBattleAnimSpritePalette_163, 10163 },
+ { (u8 *) &gBattleAnimSpritePalette_164, 10164 },
+ { (u8 *) &gBattleAnimSpritePalette_165, 10165 },
+ { (u8 *) &gBattleAnimSpritePalette_166, 10166 },
+ { (u8 *) &gBattleAnimSpritePalette_167, 10167 },
+ { (u8 *) &gBattleAnimSpritePalette_168, 10168 },
+ { (u8 *) &gBattleAnimSpritePalette_169, 10169 },
+ { (u8 *) &gBattleAnimSpritePalette_170, 10170 },
+ { (u8 *) &gBattleAnimSpritePalette_171, 10171 },
+ { (u8 *) &gBattleAnimSpritePalette_172, 10172 },
+ { (u8 *) &gBattleAnimSpritePalette_001, 10173 },
+ { (u8 *) &gBattleAnimSpritePalette_174, 10174 },
+ { (u8 *) &gBattleAnimSpritePalette_175, 10175 },
+ { (u8 *) &gBattleAnimSpritePalette_176, 10176 },
+ { (u8 *) &gBattleAnimSpritePalette_177, 10177 },
+ { (u8 *) &gBattleAnimSpritePalette_178, 10178 },
+ { (u8 *) &gBattleAnimSpritePalette_179, 10179 },
+ { (u8 *) &gBattleAnimSpritePalette_179, 10180 },
+ { (u8 *) &gBattleAnimSpritePalette_179, 10181 },
+ { (u8 *) &gBattleAnimSpritePalette_182, 10182 },
+ { (u8 *) &gBattleAnimSpritePalette_183, 10183 },
+ { (u8 *) &gBattleAnimSpritePalette_184, 10184 },
+ { (u8 *) &gBattleAnimSpritePalette_185, 10185 },
+ { (u8 *) &gBattleAnimSpritePalette_186, 10186 },
+ { (u8 *) &gBattleAnimSpritePalette_187, 10187 },
+ { (u8 *) &gBattleAnimSpritePalette_188, 10188 },
+ { (u8 *) &gBattleAnimSpritePalette_189, 10189 },
+ { (u8 *) &gBattleAnimSpritePalette_190, 10190 },
+ { (u8 *) &gBattleAnimSpritePalette_191, 10191 },
+ { (u8 *) &gBattleAnimSpritePalette_192, 10192 },
+ { (u8 *) &gBattleAnimSpritePalette_193, 10193 },
+ { (u8 *) &gBattleAnimSpritePalette_194, 10194 },
+ { (u8 *) &gBattleAnimSpritePalette_195, 10195 },
+ { (u8 *) &gBattleAnimSpritePalette_196, 10196 },
+ { (u8 *) &gBattleAnimSpritePalette_197, 10197 },
+ { (u8 *) &gBattleAnimSpritePalette_198, 10198 },
+ { (u8 *) &gBattleAnimSpritePalette_199, 10199 },
+ { (u8 *) &gBattleAnimSpritePalette_200, 10200 },
+ { (u8 *) &gBattleAnimSpritePalette_201, 10201 },
+ { (u8 *) &gBattleAnimSpritePalette_202, 10202 },
+ { (u8 *) &gBattleAnimSpritePalette_203, 10203 },
+ { (u8 *) &gBattleAnimSpritePalette_204, 10204 },
+ { (u8 *) &gBattleAnimSpritePalette_205, 10205 },
+ { (u8 *) &gBattleAnimSpritePalette_206, 10206 },
+ { (u8 *) &gBattleAnimSpritePalette_207, 10207 },
+ { (u8 *) &gBattleAnimSpritePalette_167, 10208 },
+ { (u8 *) &gBattleAnimSpritePalette_209, 10209 },
+ { (u8 *) &gBattleAnimSpritePalette_210, 10210 },
+ { (u8 *) &gBattleAnimSpritePalette_211, 10211 },
+ { (u8 *) &gBattleAnimSpritePalette_211, 10212 },
+ { (u8 *) &gBattleAnimSpritePalette_211, 10213 },
+ { (u8 *) &gBattleAnimSpritePalette_064, 10214 },
+ { (u8 *) &gBattleAnimSpritePalette_215, 10215 },
+ { (u8 *) &gBattleAnimSpritePalette_216, 10216 },
+ { (u8 *) &gBattleAnimSpritePalette_217, 10217 },
+ { (u8 *) &gBattleAnimSpritePalette_218, 10218 },
+ { (u8 *) &gBattleAnimSpritePalette_219, 10219 },
+ { (u8 *) &gBattleAnimSpritePalette_220, 10220 },
+ { (u8 *) &gBattleAnimSpritePalette_221, 10221 },
+ { (u8 *) &gBattleAnimSpritePalette_222, 10222 },
+ { (u8 *) &gBattleAnimSpritePalette_223, 10223 },
+ { (u8 *) &gBattleAnimSpritePalette_224, 10224 },
+ { (u8 *) &gBattleAnimSpritePalette_225, 10225 },
+ { (u8 *) &gBattleAnimSpritePalette_226, 10226 },
+ { (u8 *) &gBattleAnimSpritePalette_226, 10227 },
+ { (u8 *) &gBattleAnimSpritePalette_228, 10228 },
+ { (u8 *) &gBattleAnimSpritePalette_229, 10229 },
+ { (u8 *) &gBattleAnimSpritePalette_230, 10230 },
+ { (u8 *) &gBattleAnimSpritePalette_231, 10231 },
+ { (u8 *) &gBattleAnimSpritePalette_231, 10232 },
+ { (u8 *) &gBattleAnimSpritePalette_233, 10233 },
+ { (u8 *) &gBattleAnimSpritePalette_234, 10234 },
+ { (u8 *) &gBattleAnimSpritePalette_235, 10235 },
+ { (u8 *) &gBattleAnimSpritePalette_236, 10236 },
+ { (u8 *) &gBattleAnimSpritePalette_237, 10237 },
+ { (u8 *) &gBattleAnimSpritePalette_238, 10238 },
+ { (u8 *) &gBattleAnimSpritePalette_239, 10239 },
+ { (u8 *) &gBattleAnimSpritePalette_240, 10240 },
+ { (u8 *) &gBattleAnimSpritePalette_241, 10241 },
+ { (u8 *) &gBattleAnimSpritePalette_242, 10242 },
+ { (u8 *) &gBattleAnimSpritePalette_243, 10243 },
+ { (u8 *) &gBattleAnimSpritePalette_244, 10244 },
+ { (u8 *) &gBattleAnimSpritePalette_245, 10245 },
+ { (u8 *) &gBattleAnimSpritePalette_245, 10246 },
+ { (u8 *) &gBattleAnimSpritePalette_064, 10247 },
+ { (u8 *) &gBattleAnimSpritePalette_248, 10248 },
+ { (u8 *) &gBattleAnimSpritePalette_249, 10249 },
+ { (u8 *) &gBattleAnimSpritePalette_249, 10250 },
+ { (u8 *) &gBattleAnimSpritePalette_251, 10251 },
+ { (u8 *) &gBattleAnimSpritePalette_252, 10252 },
+ { (u8 *) &gBattleAnimSpritePalette_253, 10253 },
+ { (u8 *) &gBattleAnimSpritePalette_254, 10254 },
+ { (u8 *) &gBattleAnimSpritePalette_255, 10255 },
+ { (u8 *) &gBattleAnimSpritePalette_256, 10256 },
+ { (u8 *) &gBattleAnimSpritePalette_257, 10257 },
+ { (u8 *) &gBattleAnimSpritePalette_258, 10258 },
+ { (u8 *) &gBattleAnimSpritePalette_259, 10259 },
+ { (u8 *) &gBattleAnimSpritePalette_260, 10260 },
+ { (u8 *) &gBattleAnimSpritePalette_261, 10261 },
+ { (u8 *) &gBattleAnimSpritePalette_262, 10262 },
+ { (u8 *) &gBattleAnimSpritePalette_263, 10263 },
+ { (u8 *) &gBattleAnimSpritePalette_264, 10264 },
+ { (u8 *) &gBattleAnimSpritePalette_265, 10265 },
+ { (u8 *) &gBattleAnimSpritePalette_266, 10266 },
+ { (u8 *) &gBattleAnimSpritePalette_267, 10267 },
+ { (u8 *) &gBattleAnimSpritePalette_268, 10268 },
+ { (u8 *) &gBattleAnimSpritePalette_269, 10269 },
+ { (u8 *) &gBattleAnimSpritePalette_270, 10270 },
+ { (u8 *) &gBattleAnimSpritePalette_271, 10271 },
+ { (u8 *) &gBattleAnimSpritePalette_272, 10272 },
+ { (u8 *) &gBattleAnimSpritePalette_272, 10273 },
+ { (u8 *) &gBattleAnimSpritePalette_274, 10274 },
+ { (u8 *) &gBattleAnimSpritePalette_274, 10275 },
+ { (u8 *) &gBattleAnimSpritePalette_274, 10276 },
+ { (u8 *) &gBattleAnimSpritePalette_277, 10277 },
+ { (u8 *) &gBattleAnimSpritePalette_278, 10278 },
+ { (u8 *) &gBattleAnimSpritePalette_279, 10279 },
+ { (u8 *) &gBattleAnimSpritePalette_280, 10280 },
+ { (u8 *) &gBattleAnimSpritePalette_281, 10281 },
+ { (u8 *) &gBattleAnimSpritePalette_282, 10282 },
+ { (u8 *) &gBattleAnimSpritePalette_283, 10283 },
+ { (u8 *) &gBattleAnimSpritePalette_284, 10284 },
+ { (u8 *) &gBattleAnimSpritePalette_285, 10285 },
+ { (u8 *) &gBattleAnimSpritePalette_286, 10286 },
+ { (u8 *) &gBattleAnimSpritePalette_287, 10287 },
+ { (u8 *) &gBattleAnimSpritePalette_288, 10288 },
+};
+
+const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
+{
+ &gBattleAnimBackgroundImage_00, &gBattleAnimBackgroundPalette_00, &gBattleAnimBackgroundTilemap_00,
+ &gBattleAnimBackgroundImage_00, &gBattleAnimBackgroundPalette_00, &gBattleAnimBackgroundTilemap_00,
+ &gBattleAnimBackgroundImage_02, &gBattleAnimBackgroundPalette_02, &gBattleAnimBackgroundTilemap_02,
+ &gBattleAnimBackgroundImage_03, &gBattleAnimBackgroundPalette_03, &gBattleAnimBackgroundTilemap_03,
+ &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_04, &gBattleAnimBackgroundTilemap_04,
+ &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_04, &gBattleAnimBackgroundTilemap_05,
+ &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_04, &gBattleAnimBackgroundTilemap_06,
+ &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_07, &gBattleAnimBackgroundTilemap_07,
+ &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_07, &gBattleAnimBackgroundTilemap_08,
+ &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_09, &gBattleAnimBackgroundTilemap_09,
+ &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_09, &gBattleAnimBackgroundTilemap_10,
+ &gBattleAnimBackgroundImage_11, &gBattleAnimBackgroundPalette_11, &gBattleAnimBackgroundTilemap_11,
+ &gBattleAnimBackgroundImage_12, &gBattleAnimBackgroundPalette_12, &gBattleAnimBackgroundTilemap_12,
+ &gBattleAnimBackgroundImage_12, &gBattleAnimBackgroundPalette_12, &gBattleAnimBackgroundTilemap_13,
+ &gBattleAnimBackgroundImage_12, &gBattleAnimBackgroundPalette_12, &gBattleAnimBackgroundTilemap_14,
+ &gBattleAnimBackgroundImage_15, &gBattleAnimBackgroundPalette_15, &gBattleAnimBackgroundTilemap_15,
+ &gBattleAnimBackgroundImage_16, &gBattleAnimBackgroundPalette_16, &gBattleAnimBackgroundTilemap_16,
+ &gBattleAnimBackgroundImage_17, &gBattleAnimBackgroundPalette_17, &gBattleAnimBackgroundTilemap_17,
+ &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_18, &gBattleAnimBackgroundTilemap_07,
+ &gBattleAnimBackgroundImage_07, &gBattleAnimBackgroundPalette_18, &gBattleAnimBackgroundTilemap_08,
+ &gBattleAnimBackgroundImage_20, &gBattleAnimBackgroundPalette_20, &gBattleAnimBackgroundTilemap_20,
+ &gBattleAnimBackgroundImage_21, &gBattleAnimBackgroundPalette_21, &gBattleAnimBackgroundTilemap_21,
+ &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_22, &gBattleAnimBackgroundTilemap_09,
+ &gBattleAnimBackgroundImage_09, &gBattleAnimBackgroundPalette_22, &gBattleAnimBackgroundTilemap_10,
+ &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_04,
+ &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_05,
+ &gBattleAnimBackgroundImage_04, &gBattleAnimBackgroundPalette_24, &gBattleAnimBackgroundTilemap_06,
+};
+
extern u16 gBattlePartyID[4];
extern u8 gObjectBankIDs[];
extern u8 gBankAttacker;
@@ -43,7 +1309,7 @@ EWRAM_DATA u16 sAnimMoveIndex = 0; // set but unused.
EWRAM_DATA u8 gAnimBankAttacker = 0;
EWRAM_DATA u8 gAnimBankTarget = 0;
EWRAM_DATA u16 gAnimSpeciesByBanks[4] = {0};
-EWRAM_DATA u8 gUnknown_0202F7D2 = 0;
+EWRAM_DATA u8 gUnknown_0202F7D2 = 0; // some global pan variable
extern u16 gBattle_BG1_Y;
extern u16 gBattle_WIN1H;
extern u16 gBattle_WIN0V;
@@ -63,9 +1329,6 @@ extern struct MusicPlayerInfo gMPlay_SE2;
extern const u16 gUnknown_081C7160[];
extern const u8 *const gBattleAnims_Moves[];
-extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
-extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
-extern const struct BattleAnimBackground gBattleAnimBackgroundTable[];
static void RunAnimScriptCommand(void);
static void ScriptCmd_loadspritegfx(void);
@@ -647,36 +1910,19 @@ bool8 IsAnimBankSpriteVisible(u8 bank)
void sub_8076034(u8 a, u8 b)
{
- volatile u8 pointlessZero;
- u16 *addr2;
u8 spriteId;
if (b == 0)
{
+ volatile u8 pointlessZero;
struct UnknownStruct2 s;
- u8 *addr;
- u32 size;
u8 r2;
- u16 *addr3;
sub_8078914(&s);
- addr = s.unk0;
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = (void *)s.unk4;
- DmaFill16(3, 0xFF, addr2, 0x1000);
+ DmaFill32Large(3, 0, s.unk0, 0x2000, 0x1000);
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ DmaFill16Defvars(3, 0xFF, (void *)s.unk4, 0x1000);
REG_BG1CNT_BITFIELD.priority = 2;
REG_BG1CNT_BITFIELD.screenSize = 1;
@@ -693,8 +1939,7 @@ void sub_8076034(u8 a, u8 b)
REG_BG1VOFS = gBattle_BG1_Y;
LoadPalette(gPlttBufferUnfaded + 0x100 + a * 16, s.unk8 * 16, 32);
- addr3 = (u16 *)PLTT + s.unk8 * 16;
- DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
+ DmaCopy32Defvars(3, gPlttBufferUnfaded + 0x100 + a * 16, (u16 *)PLTT + s.unk8 * 16, 32);
if (IsContest() != 0)
r2 = 0;
@@ -706,27 +1951,12 @@ void sub_8076034(u8 a, u8 b)
}
else
{
- u8 *addr;
- u32 size;
- u16 *addr3;
+ volatile u8 pointlessZero;
- addr = (void *)(VRAM + 0x6000);
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = (void *)(VRAM + 0xF000);
- DmaFill32(3, 0, addr2, 0x800);
+ DmaFill32Large(3, 0, (void *)(VRAM + 0x6000), 0x2000, 0x1000);
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ DmaFill32Defvars(3, 0, (void *)(VRAM + 0xF000), 0x800);
REG_BG2CNT_BITFIELD.priority = 2;
REG_BG2CNT_BITFIELD.screenSize = 1;
@@ -741,8 +1971,7 @@ void sub_8076034(u8 a, u8 b)
REG_BG2VOFS = gBattle_BG2_Y;
LoadPalette(gPlttBufferUnfaded + 0x100 + a * 16, 0x90, 32);
- addr3 = (void *)(PLTT + 0x120);
- DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
+ DmaCopy32Defvars(3, gPlttBufferUnfaded + 0x100 + a * 16, (void *)(PLTT + 0x120), 32);
sub_80E4EF8(0, 0, GetBankIdentity(a), 9, 0x6000, 0x1E, REG_BG2CNT_BITFIELD.charBaseBlock);
}
@@ -797,57 +2026,25 @@ void sub_80763FC(u16 a, u16 *b, u32 c, u8 d)
void sub_8076464(u8 a)
{
- u8 *addr;
- u32 size;
volatile u8 pointlessZero;
struct UnknownStruct2 s;
sub_8078914(&s);
if (a == 0 || IsContest() != 0)
{
- u16 *addr2;
-
- addr = s.unk0;
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = s.unk4;
- DmaFill32(3, 0, addr2, 0x800);
+ DmaFill32Large(3, 0, s.unk0, 0x2000, 0x1000);
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ DmaFill32Defvars(3, 0, s.unk4, 0x800);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
}
else
{
- u16 *addr2;
-
- addr = (void *)(VRAM + 0x6000);
- size = 0x2000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- pointlessZero = 0;
- pointlessZero = 0;
- addr2 = (void *)(VRAM + 0xF000);
- DmaFill32(3, 0, addr2, 0x800);
+ DmaFill32Large(3, 0, (void *)(VRAM + 0x6000), 0x2000, 0x1000);
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ pointlessZero = 0; // is there a stubbed out Dma macro here that left the 0 load in?
+ DmaFill32Defvars(3, 0, (void *)(VRAM + 0xF000), 0x800);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
}
@@ -867,25 +2064,15 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
if (gTasks[taskId].data[5] == 0)
{
- u16 *src;
- u16 *dst;
-
gBattle_BG1_X = x + gTasks[taskId].data[3];
gBattle_BG1_Y = y + gTasks[taskId].data[4];
- src = gPlttBufferFaded + 0x100 + palIndex * 16;
- dst = gPlttBufferFaded + 0x100 + s.unk8 * 16 - 256;
- DmaCopy32(3, src, dst, 32);
+ DmaCopy32Defvars(3, gPlttBufferFaded + 0x100 + palIndex * 16, gPlttBufferFaded + 0x100 + s.unk8 * 16 - 256, 32);
}
else
{
- u16 *src;
- u16 *dst;
-
gBattle_BG2_X = x + gTasks[taskId].data[3];
gBattle_BG2_Y = y + gTasks[taskId].data[4];
- src = gPlttBufferFaded + 0x100 + palIndex * 16;
- dst = gPlttBufferFaded + 0x100 - 112;
- DmaCopy32(3, src, dst, 32);
+ DmaCopy32Defvars(3, gPlttBufferFaded + 0x100 + palIndex * 16, gPlttBufferFaded + 0x100 - 112, 32);
}
}
@@ -1229,14 +2416,10 @@ static void LoadMoveBg(u16 bgId)
if (IsContest())
{
void *tilemap = gBattleAnimBackgroundTable[bgId].tilemap;
- void *dmaSrc;
- void *dmaDest;
LZDecompressWram(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
- dmaSrc = IsContest() ? EWRAM_14800 : EWRAM_18000;
- dmaDest = (void *)(VRAM + 0xD000);
- DmaCopy32(3, dmaSrc, dmaDest, 0x800);
+ DmaCopy32Defvars(3, IsContest() ? EWRAM_14800 : EWRAM_18000, (void *)(VRAM + 0xD000), 0x800);
LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x2000));
LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80789BC() * 16, 32);
}
@@ -1489,9 +2672,9 @@ s8 BattleAnimAdjustPanning2(s8 pan)
return pan;
}
-s16 sub_8077104(s16 a)
+s16 sub_8077104(s16 newPan, int oldPan)
{
- s16 var = a;
+ s16 var = newPan;
if (var > 63)
var = 63;
diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index 3097f1a0e..f109333e3 100644
--- a/src/battle/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -20,17 +20,77 @@ static void sub_80A808C(u8 taskId);
static void sub_80A81D8(u8 taskId);
static void sub_80A8374(u8 taskId);
static void sub_80A8488(u8 taskId);
+static void sub_80A8530(struct Sprite *sprite);
static void sub_80A85A4(struct Sprite *sprite);
-void sub_80A8614(struct Sprite* sprite);
+static void sub_80A85C8(struct Sprite *sprite);
+static void sub_80A8614(struct Sprite* sprite);
+static void sub_80A8638(struct Sprite *sprite);
static void sub_80A86F4(struct Sprite *sprite);
+static void sub_80A8764(struct Sprite *sprite);
+static void sub_80A8818(struct Sprite *sprite);
static void sub_80A88F0(struct Sprite *sprite);
static void sub_80A89B4(u8 taskId);
static void sub_80A8A18(u8 taskId);
static void sub_80A8C0C(u8 taskId);
static void sub_80A8D8C(u8 taskId);
-void sub_80A8FD8(u8 taskId);
+static void sub_80A8FD8(u8 taskId);
static void sub_80A913C(u8 taskId);
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FB0 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A8530,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FC8 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A85C8,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FE0 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A8638,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83C1FF8 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A8764,
+};
+
+const struct SpriteTemplate gBattleAnimSpriteTemplate_83C2010 =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80A8818,
+};
+
void sub_80A7E7C(u8 taskId)
{
u8 sprite;
@@ -108,17 +168,17 @@ void sub_80A7FA0(u8 taskId)
switch (gBattleAnimArgs[0])
{
case 4:
- side = GetBankByPlayerAI(0);
+ side = GetBankByIdentity(0);
break;
case 5:
- side = GetBankByPlayerAI(2);
+ side = GetBankByIdentity(2);
break;
case 6:
- side = GetBankByPlayerAI(1);
+ side = GetBankByIdentity(1);
break;
case 7:
default:
- side = GetBankByPlayerAI(3);
+ side = GetBankByIdentity(3);
break;
}
if (IsAnimBankSpriteVisible(side) == FALSE)
@@ -335,7 +395,7 @@ void sub_80A8500(u8 taskId)
sub_80A8408(taskId);
}
-void sub_80A8530(struct Sprite *sprite)
+static void sub_80A8530(struct Sprite *sprite)
{
sprite->invisible = TRUE;
if (GetBankSide(gAnimBankAttacker))
@@ -362,7 +422,7 @@ static void sub_80A85A4(struct Sprite *sprite)
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-void sub_80A85C8(struct Sprite *sprite)
+static void sub_80A85C8(struct Sprite *sprite)
{
u8 spriteId;
sprite->invisible = TRUE;
@@ -376,7 +436,7 @@ void sub_80A85C8(struct Sprite *sprite)
sprite->callback = sub_8078458;
}
-void sub_80A8614(struct Sprite *sprite)
+static void sub_80A8614(struct Sprite *sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[2] = -sprite->data[2];
@@ -384,7 +444,7 @@ void sub_80A8614(struct Sprite *sprite)
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-void sub_80A8638(struct Sprite *sprite)
+static void sub_80A8638(struct Sprite *sprite)
{
int something;
int spriteId;
@@ -451,7 +511,7 @@ static void sub_80A86F4(struct Sprite *sprite)
}
}
-void sub_80A8764(struct Sprite *sprite)
+static void sub_80A8764(struct Sprite *sprite)
{
u8 v1;
u8 spriteId;
@@ -486,7 +546,7 @@ void sub_80A8764(struct Sprite *sprite)
sprite->callback = sub_80784A8;
}
-void sub_80A8818(struct Sprite *sprite)
+static void sub_80A8818(struct Sprite *sprite)
{
u8 spriteId;
u8 v1;
@@ -833,7 +893,7 @@ void sub_80A8EFC(u8 taskId)
TASK.func = sub_80A8FD8;
}
-void sub_80A8FD8(u8 taskId)
+static void sub_80A8FD8(u8 taskId)
{
TASK.data[3] += TASK.data[4];
obj_id_set_rotscale(TASK.data[5], 0x100, 0x100, TASK.data[3]);
diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 35d8f33c8..40f50d7ff 100644
--- a/src/battle/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -48,8 +48,8 @@ extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gUnknown_0300434C[];
extern u32 gBattleExecBuffer;
extern MainCallback gPreBattleCallback1;
@@ -93,7 +93,7 @@ extern void move_anim_start_t2_for_situation();
extern void dp01t_0F_4_move_anim(void);
extern void sub_8047858();
extern u8 GetBankSide(u8);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_803A3A8(struct Sprite *);
extern void sub_8044CA0(u8);
extern void nullsub_47(void);
@@ -1410,10 +1410,10 @@ void sub_8039B64(void)
void LinkOpponentHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_8037C2C;
}
@@ -1620,7 +1620,7 @@ void LinkOpponentHandleFaintingCry(void)
void LinkOpponentHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
LinkOpponentBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index adc3c1c85..3a16e12e6 100644
--- a/src/battle/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -48,8 +48,8 @@ extern u8 gAnimFriendship;
extern u16 gWeatherMoveAnim;
extern u8 gAnimMoveTurn;
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern MainCallback gPreBattleCallback1;
extern void (*gBattleBankFunc[])(void);
extern u8 gHealthboxIDs[];
@@ -62,7 +62,7 @@ extern u8 move_anim_start_t3();
extern u8 IsBankSpritePresent();
extern void sub_8044CA0(u8);
extern void sub_8030E38(struct Sprite *);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_8047858();
extern void move_anim_start_t2_for_situation();
extern void load_gfxc_health_bar();
@@ -94,7 +94,7 @@ extern void sub_804777C();
extern void sub_8043DFC();
//extern s16 sub_8045C78();
extern void sub_80440EC();
-extern void sub_80324F8();
+extern void HandleLowHpMusicChange();
extern void nullsub_9(u16);
extern void sub_8043DB0();
extern void move_anim_start_t4();
@@ -355,7 +355,7 @@ void bx_t3_healthbar_update(void)
}
else
{
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
LinkPartnerBufferExecCompleted();
}
}
@@ -434,7 +434,7 @@ void sub_811E0CC(void)
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 0);
sub_8045A5C(gHealthboxIDs[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], 0);
sub_804777C(gActiveBank);
@@ -1084,7 +1084,7 @@ void sub_811EC68(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
break;
}
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
}
void LinkPartnerHandlecmd3(void)
@@ -1243,7 +1243,7 @@ void LinkPartnerHandlecmd10(void)
else if (!ewram17810[gActiveBank].unk0_6)
{
ewram17810[gActiveBank].unk4 = 0;
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
PlaySE12WithPanning(SE_POKE_DEAD, -64);
gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
gSprites[gObjectBankIDs[gActiveBank]].data[2] = 5;
@@ -1355,10 +1355,10 @@ void sub_811FF30(void)
void LinkPartnerHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_811DFA0;
}
@@ -1565,7 +1565,7 @@ void LinkPartnerHandleFaintingCry(void)
void LinkPartnerHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
LinkPartnerBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 54bb9d7f9..338f8d418 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -30,6 +30,7 @@ struct MovePpInfo
u8 ppBonuses;
};
+extern u8 gUnknown_02023A14_50;
extern u8 gActiveBank;
extern u8 gBattleBufferA[][0x200];
extern u16 gBattlePartyID[];
@@ -50,8 +51,8 @@ extern u8 gAnimMoveTurn;
extern u8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gDisplayedStringBattle[];
extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
@@ -98,7 +99,7 @@ extern void sub_80324BC();
extern void BufferStringBattle();
extern void sub_80331D0(void);
extern void sub_8036B0C(void);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern u8 sub_8036CD4(void);
extern void sub_80330C8(void);
extern void sub_8043D84();
@@ -108,7 +109,7 @@ extern void move_anim_start_t2_for_situation();
extern void bx_blink_t7(void);
extern void sub_8047858();
extern u8 GetBankSide(u8);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_8044CA0(u8);
extern void nullsub_45(void);
extern void sub_8031B74();
@@ -1213,14 +1214,23 @@ void OpponentHandleTrainerThrow(void)
{
u32 trainerPicIndex;
- if (gTrainerBattleOpponent == 0x400)
- trainerPicIndex = GetSecretBaseTrainerPicIndex();
- else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
- trainerPicIndex = get_trainer_class_pic_index();
- else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
- trainerPicIndex = GetEReaderTrainerPicIndex();
+#if DEBUG
+ if (gUnknown_02023A14_50 & 0x10)
+ {
+ trainerPicIndex = gSharedMem[0x160A3];
+ }
else
- trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic;
+#endif
+ {
+ if (gTrainerBattleOpponent == 0x400)
+ trainerPicIndex = GetSecretBaseTrainerPicIndex();
+ else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
+ trainerPicIndex = get_trainer_class_pic_index();
+ else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER)
+ trainerPicIndex = GetEReaderTrainerPicIndex();
+ else
+ trainerPicIndex = gTrainers[gTrainerBattleOpponent].trainerPic;
+ }
sub_8031A6C(trainerPicIndex, gActiveBank);
GetMonSpriteTemplate_803C5A0(trainerPicIndex, GetBankIdentity(gActiveBank));
@@ -1404,10 +1414,10 @@ void sub_8035238(void)
void OpponentHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_80331D0;
}
@@ -1427,6 +1437,315 @@ void OpponentHandlecmd19(void)
OpponentBufferExecCompleted();
}
+#if DEBUG
+__attribute__((naked))
+void OpponentHandlecmd20(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ ldr r6, ._549 @ gActiveBank\n\
+ ldrb r0, [r6]\n\
+ lsl r0, r0, #0x9\n\
+ ldr r1, ._549 + 4 @ gBattleBufferA\n\
+ add r5, r0, r1\n\
+ ldr r2, ._549 + 8 @ gUnknown_02023A14_50\n\
+ ldrb r1, [r2]\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ mov sl, r6\n\
+ cmp r0, #0\n\
+ beq ._546 @cond_branch\n\
+ ldr r0, ._549 + 12 @ gBattleMoves\n\
+ mov r9, r0\n\
+ ldr r1, ._549 + 16 @ \n\
+ mov ip, r1\n\
+ add r7, r6, #0\n\
+ mov r0, #0x2\n\
+ mov r8, r0\n\
+ ldr r6, ._549 + 20 @ \n\
+._552:\n\
+ ldrb r1, [r7]\n\
+ mov r0, r8\n\
+ and r0, r0, r1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x19\n\
+ add r0, r0, r6\n\
+ mov r1, ip\n\
+ add r3, r0, r1\n\
+ ldrb r1, [r3]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r5, r0\n\
+ ldrh r2, [r0]\n\
+ add r4, r1, #0\n\
+ cmp r2, #0\n\
+ beq ._547 @cond_branch\n\
+ add r0, r4, #1\n\
+ strb r0, [r3]\n\
+ b ._548\n\
+._550:\n\
+ .align 2, 0\n\
+._549:\n\
+ .word gActiveBank\n\
+ .word gBattleBufferA+4\n\
+ .word gUnknown_02023A14_50\n\
+ .word gBattleMoves\n\
+ .word +0x2000000\n\
+ .word 0x1609e\n\
+._547:\n\
+ strb r2, [r3]\n\
+._548:\n\
+ ldrb r0, [r7]\n\
+ mov r1, r8\n\
+ and r1, r1, r0\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x19\n\
+ add r1, r1, r6\n\
+ add r1, r1, ip\n\
+ ldrb r0, [r1]\n\
+ cmp r0, #0x3\n\
+ bls ._551 @cond_branch\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+._551:\n\
+ cmp r2, #0\n\
+ beq ._552 @cond_branch\n\
+ lsl r0, r2, #0x1\n\
+ add r0, r0, r2\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r9\n\
+ ldrb r3, [r0, #0x6]\n\
+ mov r0, #0x12\n\
+ and r0, r0, r3\n\
+ cmp r0, #0\n\
+ beq ._553 @cond_branch\n\
+ mov r1, sl\n\
+ ldrb r0, [r1]\n\
+ b ._561\n\
+._553:\n\
+ ldr r0, ._559 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._557 @cond_branch\n\
+ ldr r0, ._559 + 4 @ gUnknown_02023A14_50\n\
+ ldrb r1, [r0]\n\
+ mov r5, #0x2\n\
+ add r0, r5, #0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._556 @cond_branch\n\
+ cmp r3, #0\n\
+ bne ._557 @cond_branch\n\
+ mov r1, sl\n\
+ ldrb r0, [r1]\n\
+ bl GetBankIdentity\n\
+ mov r1, #0x2\n\
+ eor r0, r0, r1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ b ._558\n\
+._560:\n\
+ .align 2, 0\n\
+._559:\n\
+ .word gBattleTypeFlags\n\
+ .word gUnknown_02023A14_50\n\
+._556:\n\
+ bl Random\n\
+ add r1, r5, #0\n\
+ and r1, r1, r0\n\
+ lsl r1, r1, #0x10\n\
+ lsr r0, r1, #0x10\n\
+ b ._561\n\
+._557:\n\
+ mov r0, #0x0\n\
+._558:\n\
+ bl GetBankByIdentity\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+._561:\n\
+ lsl r2, r0, #0x8\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+._569:\n\
+ bl Emitcmd33\n\
+._573:\n\
+ bl OpponentBufferExecCompleted\n\
+ b ._562\n\
+._546:\n\
+ ldr r0, ._567 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x93\n\
+ lsl r0, r0, #0x3\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._563 @cond_branch\n\
+ bl BattleAI_SetupAIData\n\
+ bl BattleAI_GetAIActionToUse\n\
+ lsl r0, r0, #0x18\n\
+ lsr r4, r0, #0x18\n\
+ cmp r4, #0x4\n\
+ beq ._564 @cond_branch\n\
+ cmp r4, #0x5\n\
+ bne ._565 @cond_branch\n\
+ mov r0, #0x1\n\
+ mov r1, #0x4\n\
+ b ._566\n\
+._568:\n\
+ .align 2, 0\n\
+._567:\n\
+ .word gBattleTypeFlags\n\
+._564:\n\
+ mov r0, #0x1\n\
+ mov r1, #0x3\n\
+._566:\n\
+ mov r2, #0x0\n\
+ b ._569\n\
+._565:\n\
+ ldr r3, ._574 @ gBattleMoves\n\
+ lsl r0, r4, #0x1\n\
+ add r2, r5, r0\n\
+ ldrh r1, [r2]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r3\n\
+ ldrb r1, [r0, #0x6]\n\
+ mov r0, #0x12\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._570 @cond_branch\n\
+ ldr r1, ._574 + 4 @ gBankTarget\n\
+ ldrb r0, [r6]\n\
+ strb r0, [r1]\n\
+._570:\n\
+ ldrh r1, [r2]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r3\n\
+ ldrb r1, [r0, #0x6]\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._572 @cond_branch\n\
+ mov r0, #0x0\n\
+ bl GetBankByIdentity\n\
+ ldr r5, ._574 + 4 @ gBankTarget\n\
+ strb r0, [r5]\n\
+ ldr r0, ._574 + 8 @ gAbsentBankFlags\n\
+ ldrb r1, [r0]\n\
+ ldr r2, ._574 + 12 @ gBitTable\n\
+ ldrb r0, [r5]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r2\n\
+ ldr r0, [r0]\n\
+ and r1, r1, r0\n\
+ cmp r1, #0\n\
+ beq ._572 @cond_branch\n\
+ mov r0, #0x2\n\
+ bl GetBankByIdentity\n\
+ strb r0, [r5]\n\
+._572:\n\
+ ldr r0, ._574 + 4 @ gBankTarget\n\
+ ldrb r2, [r0]\n\
+ lsl r2, r2, #0x8\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+ bl Emitcmd33\n\
+ b ._573\n\
+._575:\n\
+ .align 2, 0\n\
+._574:\n\
+ .word gBattleMoves\n\
+ .word gBankTarget\n\
+ .word gAbsentBankFlags\n\
+ .word gBitTable\n\
+._563:\n\
+ mov r6, #0x3\n\
+._576:\n\
+ bl Random\n\
+ add r4, r0, #0\n\
+ and r4, r4, r6\n\
+ lsl r0, r4, #0x1\n\
+ add r0, r5, r0\n\
+ ldrh r2, [r0]\n\
+ cmp r2, #0\n\
+ beq ._576 @cond_branch\n\
+ ldr r1, ._579 @ gBattleMoves\n\
+ lsl r0, r2, #0x1\n\
+ add r0, r0, r2\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0, #0x6]\n\
+ mov r0, #0x12\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._577 @cond_branch\n\
+ ldr r0, ._579 + 4 @ gActiveBank\n\
+ ldrb r2, [r0]\n\
+ lsl r2, r2, #0x8\n\
+ b ._578\n\
+._580:\n\
+ .align 2, 0\n\
+._579:\n\
+ .word gBattleMoves\n\
+ .word gActiveBank\n\
+._577:\n\
+ ldr r0, ._583 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._581 @cond_branch\n\
+ bl Random\n\
+ mov r1, #0x2\n\
+ and r1, r1, r0\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ add r0, r1, #0\n\
+ bl GetBankByIdentity\n\
+ add r2, r0, #0\n\
+ lsl r2, r2, #0x18\n\
+ lsr r2, r2, #0x10\n\
+._578:\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+ bl Emitcmd33\n\
+ b ._582\n\
+._584:\n\
+ .align 2, 0\n\
+._583:\n\
+ .word gBattleTypeFlags\n\
+._581:\n\
+ mov r0, #0x0\n\
+ bl GetBankByIdentity\n\
+ add r2, r0, #0\n\
+ lsl r2, r2, #0x18\n\
+ lsr r2, r2, #0x10\n\
+ orr r2, r2, r4\n\
+ mov r0, #0x1\n\
+ mov r1, #0xa\n\
+ bl Emitcmd33\n\
+._582:\n\
+ bl OpponentBufferExecCompleted\n\
+._562:\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0");
+}
+#else
#ifdef NONMATCHING
void OpponentHandlecmd20(void)
{
@@ -1451,9 +1770,9 @@ void OpponentHandlecmd20(void)
gBankTarget = gActiveBank;
if (gBattleMoves[r5->moves[r4]].target & 8)
{
- gBankTarget = GetBankByPlayerAI(0);
+ gBankTarget = GetBankByIdentity(0);
if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetBankByPlayerAI(2);
+ gBankTarget = GetBankByIdentity(2);
}
r4 |= gBankTarget << 8;
Emitcmd33(1, 10, r4);
@@ -1479,13 +1798,13 @@ void OpponentHandlecmd20(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- u16 r2 = GetBankByPlayerAI(Random() & 2) << 8;
+ u16 r2 = GetBankByIdentity(Random() & 2) << 8;
Emitcmd33(1, 10, r4 | r2);
}
else
{
- u16 r2 = GetBankByPlayerAI(0) << 8;
+ u16 r2 = GetBankByIdentity(0) << 8;
Emitcmd33(1, 10, r4 | r2);
}
@@ -1501,7 +1820,7 @@ void OpponentHandlecmd20(void)
ldr r6, _0803545C @ =gActiveBank\n\
ldrb r0, [r6]\n\
lsls r0, 9\n\
- ldr r1, _08035460 @ =gUnknown_02023A64\n\
+ ldr r1, _08035460 @ =gBattleBufferA+4\n\
adds r5, r0, r1\n\
ldr r0, _08035464 @ =gBattleTypeFlags\n\
ldrh r1, [r0]\n\
@@ -1523,7 +1842,7 @@ void OpponentHandlecmd20(void)
b _0803546C\n\
.align 2, 0\n\
_0803545C: .4byte gActiveBank\n\
-_08035460: .4byte gUnknown_02023A64\n\
+_08035460: .4byte gBattleBufferA+4\n\
_08035464: .4byte gBattleTypeFlags\n\
_08035468:\n\
movs r0, 0x1\n\
@@ -1561,7 +1880,7 @@ _08035494:\n\
cmp r0, 0\n\
beq _080354CE\n\
movs r0, 0\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
ldr r5, _080354EC @ =gBankTarget\n\
strb r0, [r5]\n\
ldr r0, _080354F0 @ =gAbsentBankFlags\n\
@@ -1575,7 +1894,7 @@ _08035494:\n\
cmp r1, 0\n\
beq _080354CE\n\
movs r0, 0x2\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
strb r0, [r5]\n\
_080354CE:\n\
ldr r0, _080354EC @ =gBankTarget\n\
@@ -1640,7 +1959,7 @@ _0803553C:\n\
lsls r1, 24\n\
lsrs r1, 24\n\
adds r0, r1, 0\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
adds r2, r0, 0\n\
lsls r2, 24\n\
lsrs r2, 16\n\
@@ -1653,7 +1972,7 @@ _0803553C:\n\
_0803556C: .4byte gBattleTypeFlags\n\
_08035570:\n\
movs r0, 0\n\
- bl GetBankByPlayerAI\n\
+ bl GetBankByIdentity\n\
adds r2, r0, 0\n\
lsls r2, 24\n\
lsrs r2, 16\n\
@@ -1670,6 +1989,7 @@ _0803558A:\n\
.syntax divided\n");
}
#endif
+#endif
void OpponentHandleOpenBag(void)
{
@@ -1692,13 +2012,13 @@ void OpponentHandlecmd22(void)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- r5 = GetBankByPlayerAI(1);
+ r5 = GetBankByIdentity(1);
r6 = r5;
}
else
{
- r6 = GetBankByPlayerAI(1);
- r5 = GetBankByPlayerAI(3);
+ r6 = GetBankByIdentity(1);
+ r5 = GetBankByIdentity(3);
}
for (r4 = 0; r4 < 6; r4++)
{
@@ -1892,7 +2212,7 @@ void OpponentHandleFaintingCry(void)
void OpponentHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
OpponentBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 70773473d..e03e21849 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -35,13 +35,15 @@ struct MovePpInfo
#define SUB_803037C_TILE_DATA_OFFSET 444
#endif
-extern u16 gUnknown_030042A4;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
extern struct Window gUnknown_03004210;
extern void (*gBattleBankFunc[])(void);
+extern u32 gOamMatrixAllocBitmap;
+extern u8 gUnknown_020297ED;
extern u8 gActiveBank;
extern u8 gActionSelectionCursor[];
extern u8 gDisplayedStringBattle[];
@@ -67,12 +69,12 @@ extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
extern u8 gUnknown_02038470[];
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u8 gUnknown_03004344;
extern u8 gUnknown_0300434C[];
@@ -87,7 +89,7 @@ extern void sub_802E220();
extern void sub_802E2D4();
extern void sub_802E004(void);
extern void sub_802DF30(void);
-extern void BattleMusicStop(void);
+extern void BattleStopLowHpSound(void);
extern void PlayerBufferExecCompleted(void);
extern void bx_t1_healthbar_update(void);
extern void nullsub_91(void);
@@ -98,7 +100,7 @@ extern void move_anim_start_t2_for_situation();
extern void bx_blink_t1(void);
extern void sub_8047858();
extern u8 GetBankSide(u8);
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void StoreSpriteCallbackInData();
@@ -118,7 +120,7 @@ extern void sub_8031F24(void);
extern void sub_80324BC();
extern u8 sub_8031720();
extern void bx_wait_t1(void);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern void sub_802DE10(void);
extern void sub_80105EC(struct Sprite *);
extern void sub_802D274(void);
@@ -148,8 +150,8 @@ extern u8 gAbsentBankFlags;
extern u8 gUnknown_03004344;
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern struct Window gUnknown_03004210;
extern const u8 BattleText_SwitchWhich[];
extern u8 gUnknown_03004348;
@@ -167,7 +169,7 @@ extern const u8 BattleText_LinkStandby[];
extern void dp11b_obj_instanciate(u8, u8, s8, s8);
extern u8 GetBankIdentity(u8);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern void dp11b_obj_free(u8, u8);
extern void sub_8010520(struct Sprite *);
extern void sub_8010574(struct Sprite *);
@@ -445,7 +447,7 @@ void sub_802C098(void)
{
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& GetBankIdentity(gActiveBank) == 2
- && !(gAbsentBankFlags & gBitTable[GetBankByPlayerAI(0)])
+ && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(0)])
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
if (gBattleBufferA[gActiveBank][1] == 1)
@@ -529,7 +531,7 @@ void sub_802C2EC(void)
i--;
if (i < 0)
i = 3;
- gUnknown_03004344 = GetBankByPlayerAI(arr[i]);
+ gUnknown_03004344 = GetBankByIdentity(arr[i]);
} while(gUnknown_03004344 == gNoOfAllBanks);
i = 0;
switch (GetBankIdentity(gUnknown_03004344))
@@ -576,7 +578,7 @@ void sub_802C2EC(void)
i++;
if (i > 3)
i = 0;
- gUnknown_03004344 = GetBankByPlayerAI(arr[i]);
+ gUnknown_03004344 = GetBankByIdentity(arr[i]);
} while (gUnknown_03004344 == gNoOfAllBanks);
i = 0;
switch (GetBankIdentity(gUnknown_03004344))
@@ -617,9 +619,14 @@ struct ChooseMoveStruct
const u8 gUnknown_081FAE80[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW WHITE LIGHT_BLUE WHITE2}");
+void debug_sub_8030C24(void);
+
void sub_802C68C(void)
{
u32 r8 = 0;
+#if DEBUG
+ u8 count = 0;
+#endif
struct ChooseMoveStruct *r6 = (struct ChooseMoveStruct *)(gBattleBufferA[gActiveBank] + 4);
if (gMain.newKeys & A_BUTTON)
@@ -636,7 +643,7 @@ void sub_802C68C(void)
if (r4 & 0x10)
gUnknown_03004344 = gActiveBank;
else
- gUnknown_03004344 = GetBankByPlayerAI((GetBankIdentity(gActiveBank) & 1) ^ 1);
+ gUnknown_03004344 = GetBankByIdentity((GetBankIdentity(gActiveBank) & 1) ^ 1);
if (gBattleBufferA[gActiveBank][1] == 0)
{
@@ -668,10 +675,10 @@ void sub_802C68C(void)
gBattleBankFunc[gActiveBank] = sub_802C2EC;
if (r4 & 0x12)
gUnknown_03004344 = gActiveBank;
- else if (gAbsentBankFlags & gBitTable[GetBankByPlayerAI(1)])
- gUnknown_03004344 = GetBankByPlayerAI(3);
+ else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(1)])
+ gUnknown_03004344 = GetBankByIdentity(3);
else
- gUnknown_03004344 = GetBankByPlayerAI(1);
+ gUnknown_03004344 = GetBankByIdentity(1);
gSprites[gObjectBankIDs[gUnknown_03004344]].callback = sub_8010520;
}
}
@@ -679,8 +686,8 @@ void sub_802C68C(void)
{
DestroyMenuCursor();
PlaySE(SE_SELECT);
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 320;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 320;
Emitcmd33(1, 10, 0xFFFF);
PlayerBufferExecCompleted();
}
@@ -744,12 +751,49 @@ void sub_802C68C(void)
else
gUnknown_03004344 = gMoveSelectionCursor[gActiveBank] + 1;
sub_802E3B4(gUnknown_03004344, 27);
- FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37);
- sub_8002F44(&gUnknown_03004210);
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
+ Text_InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
gBattleBankFunc[gActiveBank] = sub_802CA60;
}
}
+#if DEBUG
+ else if (gUnknown_020297ED == 1 && (gMain.newKeys & START_BUTTON))
+ {
+ const u8 *moveName;
+ s32 i;
+
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 16, 0x3A);
+ moveName = gMoveNames[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1)];
+ Text_InitWindowAndPrintText(&gUnknown_03004210, moveName, 0x100, 2, 0x37);
+ ConvertIntToDecimalStringN(
+ gDisplayedStringBattle,
+ GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1),
+ 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x110, 10, 0x37);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gString_TurnJP, 0x116, 1, 0x39);
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, gAnimMoveTurn, 2, 3);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x11C, 4, 0x39);
+ for (i = 0; i < 64; i++)
+ {
+ if (gSprites[i].inUse)
+ count++;
+ }
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x122, 8, 0x39);
+ count = GetTaskCount();
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x126, 11, 0x39);
+ for (i = 0, count = 0; i < 32; i++)
+ {
+ if (gOamMatrixAllocBitmap & (1 << i))
+ count++;
+ }
+ ConvertIntToDecimalStringN(gDisplayedStringBattle, count, 2, 2);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gDisplayedStringBattle, 0x12A, 14, 0x39);
+ gBattleBankFunc[gActiveBank] = debug_sub_8030C24;
+ }
+#endif
}
extern const u8 BattleText_Format[];
@@ -853,9 +897,9 @@ void sub_802CA60(void)
gBattleBankFunc[gActiveBank] = sub_802C68C;
gMoveSelectionCursor[gActiveBank] = gUnknown_03004344;
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
- FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
- sub_8002F44(&gUnknown_03004210);
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
+ Text_InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
sub_802E220();
sub_802E2D4();
}
@@ -866,9 +910,9 @@ void sub_802CA60(void)
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
sub_802E12C(gMoveSelectionCursor[gActiveBank], BattleText_Format);
gBattleBankFunc[gActiveBank] = sub_802C68C;
- FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
- sub_8002F44(&gUnknown_03004210);
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
+ Text_InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
sub_802E220();
sub_802E2D4();
}
@@ -956,6 +1000,688 @@ void sub_802D18C(void)
}
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_8030C24(void)
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ add sp, sp, #0xfffffff4\n\
+ ldr r1, ._293 @ gBattlePartyID\n\
+ ldr r4, ._293 + 4 @ gActiveBank\n\
+ ldrb r0, [r4]\n\
+ lsl r0, r0, #0x1\n\
+ add r0, r0, r1\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x64\n\
+ mul r0, r0, r1\n\
+ ldr r1, ._293 + 8 @ gPlayerParty\n\
+ add r0, r0, r1\n\
+ mov r1, #0xd\n\
+ bl GetMonData\n\
+ add r1, sp, #0x8\n\
+ strh r0, [r1]\n\
+ ldr r5, ._293 + 12 @ gMain\n\
+ ldrh r1, [r5, #0x30]\n\
+ cmp r1, #0x20\n\
+ bne ._286 @cond_branch\n\
+ b ._287\n\
+._286:\n\
+ cmp r1, #0x20\n\
+ bgt ._288 @cond_branch\n\
+ cmp r1, #0x8\n\
+ beq ._289 @cond_branch\n\
+ cmp r1, #0x8\n\
+ bgt ._290 @cond_branch\n\
+ cmp r1, #0x4\n\
+ beq ._291 @cond_branch\n\
+ b ._348\n\
+._294:\n\
+ .align 2, 0\n\
+._293:\n\
+ .word gBattlePartyID\n\
+ .word gActiveBank\n\
+ .word gPlayerParty\n\
+ .word gMain\n\
+._290:\n\
+ cmp r1, #0x10\n\
+ bne ._295 @cond_branch\n\
+ b ._296\n\
+._295:\n\
+ b ._348\n\
+._288:\n\
+ cmp r1, #0x80\n\
+ bne ._298 @cond_branch\n\
+ b ._302\n\
+._298:\n\
+ cmp r1, #0x80\n\
+ bgt ._300 @cond_branch\n\
+ cmp r1, #0x40\n\
+ bne ._301 @cond_branch\n\
+ b ._302\n\
+._301:\n\
+ b ._348\n\
+._300:\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x1\n\
+ cmp r1, r0\n\
+ bne ._304 @cond_branch\n\
+ b ._305\n\
+._304:\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x2\n\
+ cmp r1, r0\n\
+ bne ._306 @cond_branch\n\
+ b ._307\n\
+._306:\n\
+ b ._348\n\
+._289:\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x1\n\
+ bl dp11b_obj_free\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x0\n\
+ bl dp11b_obj_free\n\
+ ldr r0, ._312 @ gBankAttacker\n\
+ ldrb r2, [r4]\n\
+ strb r2, [r0]\n\
+ ldrh r1, [r5, #0x28]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._310 @cond_branch\n\
+ ldr r0, ._312 + 4 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._310 @cond_branch\n\
+ ldr r0, ._312 + 8 @ gBankTarget\n\
+ mov r1, #0x2\n\
+ eor r1, r1, r2\n\
+ strb r1, [r0]\n\
+ b ._311\n\
+._313:\n\
+ .align 2, 0\n\
+._312:\n\
+ .word gBankAttacker\n\
+ .word gBattleTypeFlags\n\
+ .word gBankTarget\n\
+._310:\n\
+ ldr r0, ._317 @ gMain\n\
+ ldrh r1, [r0, #0x28]\n\
+ mov r2, #0x1\n\
+ add r0, r2, #0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._315 @cond_branch\n\
+ ldr r0, ._317 + 4 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ add r0, r2, #0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._315 @cond_branch\n\
+ mov r0, #0x3\n\
+ b ._316\n\
+._318:\n\
+ .align 2, 0\n\
+._317:\n\
+ .word gMain\n\
+ .word gBattleTypeFlags\n\
+._315:\n\
+ mov r0, #0x1\n\
+._316:\n\
+ bl GetBankByIdentity\n\
+ ldr r1, ._320 @ gBankTarget\n\
+ strb r0, [r1]\n\
+._311:\n\
+ mov r0, #0x0\n\
+ bl sub_80326EC\n\
+ add r0, sp, #0x8\n\
+ ldrh r0, [r0]\n\
+ bl DoMoveAnim\n\
+ ldr r1, ._320 + 4 @ gBattleBankFunc\n\
+ ldr r0, ._320 + 8 @ gActiveBank\n\
+ ldrb r0, [r0]\n\
+ b ._332\n\
+._321:\n\
+ .align 2, 0\n\
+._320:\n\
+ .word gBankTarget\n\
+ .word gBattleBankFunc\n\
+ .word gActiveBank\n\
+._291:\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x1\n\
+ bl dp11b_obj_free\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x0\n\
+ bl dp11b_obj_free\n\
+ ldr r0, ._325 @ gBankTarget\n\
+ ldrb r2, [r4]\n\
+ strb r2, [r0]\n\
+ ldrh r1, [r5, #0x28]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._323 @cond_branch\n\
+ ldr r0, ._325 + 4 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._323 @cond_branch\n\
+ ldr r0, ._325 + 8 @ gBankAttacker\n\
+ mov r1, #0x2\n\
+ eor r1, r1, r2\n\
+ strb r1, [r0]\n\
+ b ._324\n\
+._326:\n\
+ .align 2, 0\n\
+._325:\n\
+ .word gBankTarget\n\
+ .word gBattleTypeFlags\n\
+ .word gBankAttacker\n\
+._323:\n\
+ ldr r0, ._330 @ gMain\n\
+ ldrh r1, [r0, #0x28]\n\
+ mov r2, #0x1\n\
+ add r0, r2, #0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._328 @cond_branch\n\
+ ldr r0, ._330 + 4 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ add r0, r2, #0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._328 @cond_branch\n\
+ mov r0, #0x3\n\
+ b ._329\n\
+._331:\n\
+ .align 2, 0\n\
+._330:\n\
+ .word gMain\n\
+ .word gBattleTypeFlags\n\
+._328:\n\
+ mov r0, #0x1\n\
+._329:\n\
+ bl GetBankByIdentity\n\
+ ldr r1, ._333 @ gBankAttacker\n\
+ strb r0, [r1]\n\
+._324:\n\
+ mov r0, #0x0\n\
+ bl sub_80326EC\n\
+ add r0, sp, #0x8\n\
+ ldrh r0, [r0]\n\
+ bl DoMoveAnim\n\
+ ldr r1, ._333 + 4 @ gBattleBankFunc\n\
+ ldr r0, ._333 + 8 @ gActiveBank\n\
+ ldrb r0, [r0]\n\
+ b ._332\n\
+._334:\n\
+ .align 2, 0\n\
+._333:\n\
+ .word gBankAttacker\n\
+ .word gBattleBankFunc\n\
+ .word gActiveBank\n\
+._305:\n\
+ ldrh r1, [r5, #0x28]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._336 @cond_branch\n\
+ ldr r0, ._338 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._336 @cond_branch\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x1\n\
+ bl dp11b_obj_free\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x0\n\
+ bl dp11b_obj_free\n\
+ mov r0, #0x3\n\
+ bl GetBankByIdentity\n\
+ ldr r1, ._338 + 4 @ gBankAttacker\n\
+ strb r0, [r1]\n\
+ mov r0, #0x1\n\
+ b ._337\n\
+._339:\n\
+ .align 2, 0\n\
+._338:\n\
+ .word gBattleTypeFlags\n\
+ .word gBankAttacker\n\
+._336:\n\
+ add r0, sp, #0x8\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r0, r1]\n\
+ add r0, r0, #0x9\n\
+ add r1, sp, #0x8\n\
+ strh r0, [r1]\n\
+._296:\n\
+ add r0, sp, #0x8\n\
+ mov r2, #0x0\n\
+ ldsh r0, [r0, r2]\n\
+ add r0, r0, #0x1\n\
+ lsl r2, r0, #0x10\n\
+ add r1, sp, #0x8\n\
+ strh r0, [r1]\n\
+ mov r0, #0xb1\n\
+ lsl r0, r0, #0x11\n\
+ cmp r2, r0\n\
+ ble ._347 @cond_branch\n\
+ mov r1, #0x1\n\
+ add r0, sp, #0x8\n\
+ strh r1, [r0]\n\
+ b ._347\n\
+._307:\n\
+ ldrh r1, [r5, #0x28]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._343 @cond_branch\n\
+ ldr r0, ._345 @ gBattleTypeFlags\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._343 @cond_branch\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x1\n\
+ bl dp11b_obj_free\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x0\n\
+ bl dp11b_obj_free\n\
+ mov r0, #0x1\n\
+ bl GetBankByIdentity\n\
+ ldr r1, ._345 + 4 @ gBankAttacker\n\
+ strb r0, [r1]\n\
+ mov r0, #0x3\n\
+._337:\n\
+ bl GetBankByIdentity\n\
+ ldr r1, ._345 + 8 @ gBankTarget\n\
+ strb r0, [r1]\n\
+ mov r0, #0x0\n\
+ bl sub_80326EC\n\
+ add r0, sp, #0x8\n\
+ ldrh r0, [r0]\n\
+ bl DoMoveAnim\n\
+ ldr r1, ._345 + 12 @ gBattleBankFunc\n\
+ ldrb r0, [r4]\n\
+._332:\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r1, ._345 + 16 @ debug_sub_803107C\n\
+ str r1, [r0]\n\
+ b ._348\n\
+._346:\n\
+ .align 2, 0\n\
+._345:\n\
+ .word gBattleTypeFlags\n\
+ .word gBankAttacker\n\
+ .word gBankTarget\n\
+ .word gBattleBankFunc\n\
+ .word debug_sub_803107C+1\n\
+._343:\n\
+ add r1, sp, #0x8\n\
+ add r0, r1, #0\n\
+ ldrh r0, [r0]\n\
+ sub r0, r0, #0x9\n\
+ strh r0, [r1]\n\
+._287:\n\
+ add r1, sp, #0x8\n\
+ add r0, r1, #0\n\
+ ldrh r0, [r0]\n\
+ sub r0, r0, #0x1\n\
+ strh r0, [r1]\n\
+ lsl r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bgt ._347 @cond_branch\n\
+ mov r2, #0xb1\n\
+ lsl r2, r2, #0x1\n\
+ add r0, r2, #0\n\
+ strh r0, [r1]\n\
+._347:\n\
+ ldr r1, ._349 @ gBattlePartyID\n\
+ ldr r4, ._349 + 4 @ gActiveBank\n\
+ ldrb r0, [r4]\n\
+ lsl r0, r0, #0x1\n\
+ add r0, r0, r1\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x64\n\
+ mul r0, r0, r1\n\
+ ldr r1, ._349 + 8 @ gPlayerParty\n\
+ add r0, r0, r1\n\
+ mov r1, #0xd\n\
+ add r2, sp, #0x8\n\
+ bl SetMonData\n\
+ ldr r2, ._349 + 12 @ gBattleMons\n\
+ ldrb r1, [r4]\n\
+ mov r0, #0x58\n\
+ mul r0, r0, r1\n\
+ add r0, r0, r2\n\
+ add r1, sp, #0x8\n\
+ ldrh r1, [r1]\n\
+ strh r1, [r0, #0xc]\n\
+ ldr r5, ._349 + 16 @ gUnknown_03004210\n\
+ ldr r1, ._349 + 20 @ 0x1016\n\
+ mov r0, #0x10\n\
+ str r0, [sp]\n\
+ mov r0, #0x38\n\
+ str r0, [sp, #0x4]\n\
+ add r0, r5, #0\n\
+ mov r2, #0x1\n\
+ mov r3, #0x37\n\
+ bl Text_FillWindowRect\n\
+ add r0, sp, #0x8\n\
+ mov r2, #0x0\n\
+ ldsh r1, [r0, r2]\n\
+ mov r0, #0xd\n\
+ mul r1, r1, r0\n\
+ ldr r0, ._349 + 24 @ gMoveNames\n\
+ add r1, r1, r0\n\
+ mov r2, #0x80\n\
+ lsl r2, r2, #0x1\n\
+ mov r6, #0x37\n\
+ str r6, [sp]\n\
+ add r0, r5, #0\n\
+ mov r3, #0x2\n\
+ bl Text_InitWindowAndPrintText\n\
+ ldr r4, ._349 + 28 @ gDisplayedStringBattle\n\
+ add r0, sp, #0x8\n\
+ mov r2, #0x0\n\
+ ldsh r1, [r0, r2]\n\
+ add r0, r4, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x3\n\
+ bl ConvertIntToDecimalStringN\n\
+ mov r2, #0x88\n\
+ lsl r2, r2, #0x1\n\
+ str r6, [sp]\n\
+ add r0, r5, #0\n\
+ add r1, r4, #0\n\
+ mov r3, #0xa\n\
+ bl Text_InitWindowAndPrintText\n\
+ b ._348\n\
+._350:\n\
+ .align 2, 0\n\
+._349:\n\
+ .word gBattlePartyID\n\
+ .word gActiveBank\n\
+ .word gPlayerParty\n\
+ .word gBattleMons\n\
+ .word gUnknown_03004210\n\
+ .word 0x1016\n\
+ .word gMoveNames\n\
+ .word gDisplayedStringBattle\n\
+._302:\n\
+ ldr r0, ._353 @ gMain\n\
+ ldrh r0, [r0, #0x30]\n\
+ cmp r0, #0x40\n\
+ bne ._351 @cond_branch\n\
+ ldr r1, ._353 + 4 @ gAnimMoveTurn\n\
+ ldrb r0, [r1]\n\
+ sub r0, r0, #0x1\n\
+ b ._352\n\
+._354:\n\
+ .align 2, 0\n\
+._353:\n\
+ .word gMain\n\
+ .word gAnimMoveTurn\n\
+._351:\n\
+ ldr r1, ._359 @ gAnimMoveTurn\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+._352:\n\
+ strb r0, [r1]\n\
+ ldr r4, ._359 + 4 @ gDisplayedStringBattle\n\
+ ldrb r1, [r1]\n\
+ add r0, r4, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x3\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r0, ._359 + 8 @ gUnknown_03004210\n\
+ mov r2, #0x8e\n\
+ lsl r2, r2, #0x1\n\
+ mov r1, #0x39\n\
+ str r1, [sp]\n\
+ add r1, r4, #0\n\
+ mov r3, #0x4\n\
+ bl Text_InitWindowAndPrintText\n\
+._348:\n\
+ ldr r0, ._359 + 12 @ gMain\n\
+ ldrh r2, [r0, #0x28]\n\
+ mov r1, #0xc0\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r1, #0\n\
+ and r0, r0, r2\n\
+ cmp r0, r1\n\
+ bne ._355 @cond_branch\n\
+ mov r4, #0x0\n\
+ ldr r5, ._359 + 4 @ gDisplayedStringBattle\n\
+ ldr r6, ._359 + 8 @ gUnknown_03004210\n\
+._361:\n\
+ add r0, r5, #0\n\
+ ldr r1, ._359 + 16 @ BattleText_Format\n\
+ bl StringCopy\n\
+ ldr r1, ._359 + 20 @ gBattlePartyID\n\
+ ldr r0, ._359 + 24 @ gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsl r0, r0, #0x1\n\
+ add r0, r0, r1\n\
+ ldrh r1, [r0]\n\
+ mov r0, #0x64\n\
+ mul r0, r0, r1\n\
+ ldr r1, ._359 + 28 @ gPlayerParty\n\
+ add r0, r0, r1\n\
+ add r1, r4, #0\n\
+ add r1, r1, #0xd\n\
+ bl GetMonData\n\
+ mov r1, #0xd\n\
+ mul r1, r1, r0\n\
+ ldr r0, ._359 + 32 @ gMoveNames\n\
+ add r1, r1, r0\n\
+ add r0, r5, #0\n\
+ bl StringAppend\n\
+ lsl r0, r4, #0x14\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x11\n\
+ add r0, r0, r1\n\
+ lsr r2, r0, #0x10\n\
+ mov r0, #0x1\n\
+ and r0, r0, r4\n\
+ mov r3, #0x2\n\
+ cmp r0, #0\n\
+ beq ._356 @cond_branch\n\
+ mov r3, #0xa\n\
+._356:\n\
+ cmp r4, #0x1\n\
+ bhi ._357 @cond_branch\n\
+ mov r0, #0x37\n\
+ b ._358\n\
+._360:\n\
+ .align 2, 0\n\
+._359:\n\
+ .word gAnimMoveTurn\n\
+ .word gDisplayedStringBattle\n\
+ .word gUnknown_03004210\n\
+ .word gMain\n\
+ .word BattleText_Format\n\
+ .word gBattlePartyID\n\
+ .word gActiveBank\n\
+ .word gPlayerParty\n\
+ .word gMoveNames\n\
+._357:\n\
+ mov r0, #0x39\n\
+._358:\n\
+ str r0, [sp]\n\
+ add r0, r6, #0\n\
+ add r1, r5, #0\n\
+ bl Text_InitWindow\n\
+ ldr r0, ._362 @ gUnknown_03004210\n\
+ bl Text_PrintWindow8002F44\n\
+ add r0, r4, #1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r4, r0, #0x18\n\
+ cmp r4, #0x3\n\
+ bls ._361 @cond_branch\n\
+ ldr r1, ._362 + 4 @ gBattleBankFunc\n\
+ ldr r0, ._362 + 8 @ gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r1, ._362 + 12 @ sub_802C68C\n\
+ str r1, [r0]\n\
+._355:\n\
+ add sp, sp, #0xc\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._363:\n\
+ .align 2, 0\n\
+._362:\n\
+ .word gUnknown_03004210\n\
+ .word gBattleBankFunc\n\
+ .word gActiveBank\n\
+ .word sub_802C68C+1");
+}
+
+__attribute__((naked))
+void debug_sub_803107C(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ mov r7, #0x0\n\
+ ldr r0, ._369 @ gAnimScriptCallback\n\
+ ldr r0, [r0]\n\
+ bl _call_via_r0\n\
+ ldr r0, ._369 + 4 @ gAnimScriptActive\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._364 @cond_branch\n\
+ mov r0, #0x1\n\
+ bl sub_80326EC\n\
+ ldr r4, ._369 + 8 @ gActiveBank\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x1\n\
+ mov r2, #0x7\n\
+ mov r3, #0x1\n\
+ bl dp11b_obj_instanciate\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x0\n\
+ mov r2, #0x7\n\
+ mov r3, #0x1\n\
+ bl dp11b_obj_instanciate\n\
+ ldr r0, ._369 + 12 @ gSprites\n\
+ add r2, r0, #0\n\
+ add r2, r2, #0x3e\n\
+ mov r1, #0x3f\n\
+._366:\n\
+ ldrb r0, [r2]\n\
+ lsl r0, r0, #0x1f\n\
+ cmp r0, #0\n\
+ beq ._365 @cond_branch\n\
+ add r0, r7, #1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+._365:\n\
+ add r2, r2, #0x44\n\
+ sub r1, r1, #0x1\n\
+ cmp r1, #0\n\
+ bge ._366 @cond_branch\n\
+ ldr r4, ._369 + 16 @ gDisplayedStringBattle\n\
+ add r0, r4, #0\n\
+ add r1, r7, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x2\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r6, ._369 + 20 @ gUnknown_03004210\n\
+ mov r2, #0x91\n\
+ lsl r2, r2, #0x1\n\
+ mov r5, #0x39\n\
+ str r5, [sp]\n\
+ add r0, r6, #0\n\
+ add r1, r4, #0\n\
+ mov r3, #0x8\n\
+ bl Text_InitWindowAndPrintText\n\
+ bl GetTaskCount\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ add r0, r4, #0\n\
+ add r1, r7, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x2\n\
+ bl ConvertIntToDecimalStringN\n\
+ mov r2, #0x93\n\
+ lsl r2, r2, #0x1\n\
+ str r5, [sp]\n\
+ add r0, r6, #0\n\
+ add r1, r4, #0\n\
+ mov r3, #0xb\n\
+ bl Text_InitWindowAndPrintText\n\
+ mov r1, #0x0\n\
+ mov r7, #0x0\n\
+ ldr r0, ._369 + 24 @ gOamMatrixAllocBitmap\n\
+ mov r3, #0x1\n\
+ ldr r2, [r0]\n\
+._368:\n\
+ add r0, r3, #0\n\
+ LSL r0, r1\n\
+ and r0, r0, r2\n\
+ cmp r0, #0\n\
+ beq ._367 @cond_branch\n\
+ add r0, r7, #1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+._367:\n\
+ add r1, r1, #0x1\n\
+ cmp r1, #0x1f\n\
+ ble ._368 @cond_branch\n\
+ ldr r4, ._369 + 16 @ gDisplayedStringBattle\n\
+ add r0, r4, #0\n\
+ add r1, r7, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x2\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r0, ._369 + 20 @ gUnknown_03004210\n\
+ mov r2, #0x95\n\
+ lsl r2, r2, #0x1\n\
+ mov r1, #0x39\n\
+ str r1, [sp]\n\
+ add r1, r4, #0\n\
+ mov r3, #0xe\n\
+ bl Text_InitWindowAndPrintText\n\
+ ldr r1, ._369 + 28 @ gBattleBankFunc\n\
+ ldr r0, ._369 + 8 @ gActiveBank\n\
+ ldrb r0, [r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r1, ._369 + 32 @ debug_sub_8030C24\n\
+ str r1, [r0]\n\
+._364:\n\
+ add sp, sp, #0x4\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._370:\n\
+ .align 2, 0\n\
+._369:\n\
+ .word gAnimScriptCallback\n\
+ .word gAnimScriptActive\n\
+ .word gActiveBank\n\
+ .word gSprites\n\
+ .word gDisplayedStringBattle\n\
+ .word gUnknown_03004210\n\
+ .word gOamMatrixAllocBitmap\n\
+ .word gBattleBankFunc\n\
+ .word debug_sub_8030C24+1");
+}
+#endif
+
void sub_802D204(void)
{
if (gSprites[gObjectBankIDs[gActiveBank]].callback == SpriteCallbackDummy)
@@ -1019,9 +1745,9 @@ void sub_802D31C(void)
m4aMPlayContinue(&gMPlay_BGM);
else
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
if (IsDoubleBattle())
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], gActiveBank ^ 2);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ 2]], gActiveBank ^ 2);
ewram17810[gActiveBank].unk9 = 3;
gBattleBankFunc[gActiveBank] = sub_802D2E0;
}
@@ -1077,7 +1803,7 @@ void sub_802D730(void)
if (!ewram17810[gActiveBank].unk0_6 && !IsCryPlayingOrClearCrySongs())
{
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100);
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
PlayerBufferExecCompleted();
}
}
@@ -1118,7 +1844,7 @@ void bx_t1_healthbar_update(void)
}
else
{
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
PlayerBufferExecCompleted();
}
}
@@ -1495,7 +2221,7 @@ void sub_802DF30(void)
void sub_802DF88(void)
{
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
if (gUnknown_0202E8F4 == 1)
Emitcmd34(1, gUnknown_0202E8F5, gUnknown_02038470);
@@ -1519,7 +2245,7 @@ void sub_802E004(void)
void sub_802E03C(void)
{
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
Emitcmd35(1, gSpecialVar_ItemId);
PlayerBufferExecCompleted();
@@ -1557,13 +2283,13 @@ void sub_802E12C(s32 a, const u8 *b)
StringCopy(gDisplayedStringBattle, b);
StringAppend(gDisplayedStringBattle, gMoveNames[r4->moves[a]]);
- InitWindow(
+ Text_InitWindow(
&gUnknown_03004210,
gDisplayedStringBattle,
0x300 + a * 20,
(a & 1) ? 11 : 1,
(a < 2) ? 0x37 : 0x39);
- sub_8002F44(&gUnknown_03004210);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
void sub_802E1B0(void)
@@ -1572,7 +2298,7 @@ void sub_802E1B0(void)
s32 i;
gUnknown_03004348 = 0;
- FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 0x14, 0x3A);
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 1, 0x37, 0x14, 0x3A);
for (i = 0; i < 4; i++)
{
nullsub_7(i);
@@ -1601,8 +2327,8 @@ void sub_802E220(void)
str = ConvertIntToDecimalStringN(str, r4->pp[gMoveSelectionCursor[gActiveBank]], 1, 2);
*str++ = CHAR_SLASH;
ConvertIntToDecimalStringN(str, r4->unkC[gMoveSelectionCursor[gActiveBank]], 1, 2);
- InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2A2, 0x19, 0x37);
- sub_8002F44(&gUnknown_03004210);
+ Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2A2, 0x19, 0x37);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
}
@@ -1613,8 +2339,8 @@ void sub_802E2D4(void)
{
if (gBattleBufferA[gActiveBank][2] == 1)
{
- FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, BattleText_ForgetMove, 0x290, 0x13, 0x37);
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A);
+ Text_InitWindow(&gUnknown_03004210, BattleText_ForgetMove, 0x290, 0x13, 0x37);
}
else
{
@@ -1623,10 +2349,10 @@ void sub_802E2D4(void)
str = StringCopy(str, BattleText_Format);
StringCopy(str, gTypeNames[gBattleMoves[r4->moves[gMoveSelectionCursor[gActiveBank]]].type]);
- FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x39, 0x1C, 0x3A);
- InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2C0, 0x17, 0x39);
+ Text_FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x39, 0x1C, 0x3A);
+ Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2C0, 0x17, 0x39);
}
- sub_8002F44(&gUnknown_03004210);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
const u8 gUnknown_081FAE89[][2] =
@@ -1652,7 +2378,7 @@ const u8 gUnknown_081FAE91[][2] =
void sub_802E3B4(u8 a, int unused)
{
sub_814A958(0x48);
- sub_814A880(gUnknown_081FAE89[a][0], gUnknown_081FAE89[a][1]);
+ MenuCursor_SetPos814A880(gUnknown_081FAE89[a][0], gUnknown_081FAE89[a][1]);
}
void nullsub_7(u8 a)
@@ -1662,7 +2388,7 @@ void nullsub_7(u8 a)
void sub_802E3E4(u8 a, int unused)
{
sub_814A958(0x2A);
- sub_814A880(gUnknown_081FAE91[a][0], gUnknown_081FAE91[a][1]);
+ MenuCursor_SetPos814A880(gUnknown_081FAE91[a][0], gUnknown_081FAE91[a][1]);
}
void nullsub_8(u8 a)
@@ -1695,9 +2421,9 @@ void b_link_standby_message(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
- sub_8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15);
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
+ Text_InitWindow8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15);
}
}
@@ -2278,7 +3004,7 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
break;
}
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
}
void PlayerHandlecmd3(void)
@@ -2438,7 +3164,7 @@ void PlayerHandlecmd10(void)
if (ewram17810[gActiveBank].unk0_6 == 0)
{
ewram17810[gActiveBank].unk4 = 0;
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
PlaySE12WithPanning(SE_POKE_DEAD, -64);
gSprites[gObjectBankIDs[gActiveBank]].data[1] = 0;
gSprites[gObjectBankIDs[gActiveBank]].data[2] = 5;
@@ -2458,7 +3184,7 @@ void PlayerHandlecmd12(void)
{
ewram17840.unk8 = 4;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 3);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3);
gBattleBankFunc[gActiveBank] = bx_wait_t1;
}
@@ -2468,7 +3194,7 @@ void PlayerHandleBallThrow(void)
ewram17840.unk8 = var;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 3);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3);
gBattleBankFunc[gActiveBank] = bx_wait_t1;
}
@@ -2559,10 +3285,10 @@ void sub_8030190(void)
void PlayerHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15);
gBattleBankFunc[gActiveBank] = sub_802DF18;
}
@@ -2578,16 +3304,16 @@ void PlayerHandlecmd18(void)
{
int r4;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 160;
- FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18);
- FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38);
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
+ Text_FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18);
+ Text_FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38);
gBattleBankFunc[gActiveBank] = sub_802C098;
- InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
- sub_8002F44(&gUnknown_03004210);
- sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
+ Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 12, 11679, 0);
for (r4 = 0; r4 < 4; r4++)
nullsub_8(r4);
@@ -2595,8 +3321,8 @@ void PlayerHandlecmd18(void)
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
StrCpyDecodeToDisplayedStringBattle(BattleText_OtherMenu);
- InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35);
- sub_8002F44(&gUnknown_03004210);
+ Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
void PlayerHandlecmd19()
@@ -2605,22 +3331,22 @@ void PlayerHandlecmd19()
void PlayerHandlecmd20(void)
{
- sub_814A5C0(0, 0xFFFF, 12, 0x2D9F, 0);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0);
sub_80304A8();
gBattleBankFunc[gActiveBank] = sub_802C68C;
}
void sub_80304A8(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 320;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 320;
sub_802E1B0();
gUnknown_03004344 = 0xFF;
sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0);
if (gBattleBufferA[gActiveBank][2] != 1)
{
- InitWindow(&gUnknown_03004210, BattleText_PP, 656, 23, 55);
- sub_8002F44(&gUnknown_03004210);
+ Text_InitWindow(&gUnknown_03004210, BattleText_PP, 656, 23, 55);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
sub_802E220();
sub_802E2D4();
@@ -2655,7 +3381,7 @@ void PlayerHandlecmd22(void)
void PlayerHandlecmd23(void)
{
- BattleMusicStop();
+ BattleStopLowHpSound();
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0);
PlayerBufferExecCompleted();
}
@@ -2749,22 +3475,7 @@ void PlayerHandleDMATransfer(void)
| (gBattleBufferA[gActiveBank][4] << 24);
u16 val2 = gBattleBufferA[gActiveBank][5] | (gBattleBufferA[gActiveBank][6] << 8);
- const u8 *src = &gBattleBufferA[gActiveBank][7];
- u8 *dst = (u8 *)val1;
- u32 size = val2;
-
- while (1)
- {
- if (size <= 0x1000)
- {
- DmaCopy16(3, src, dst, size);
- break;
- }
- DmaCopy16(3, src, dst, 0x1000);
- src += 0x1000;
- dst += 0x1000;
- size -= 0x1000;
- }
+ Dma3CopyLarge16_(&gBattleBufferA[gActiveBank][7], (u8 *)val1, val2);
PlayerBufferExecCompleted();
}
@@ -2875,7 +3586,7 @@ void PlayerHandleFaintingCry(void)
void PlayerHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
PlayerBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index 6f6286945..5896e5e18 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "battle_anim_81258BC.h"
#include "battle.h"
+#include "battle_interface.h"
#include "battle_message.h"
#include "data2.h"
#include "link.h"
@@ -23,8 +24,8 @@ extern u8 gActiveBank;
extern const u8 BattleText_MenuOptionsSafari[];
extern void *gBattleBankFunc[];
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gBattleBufferA[][0x200];
extern bool8 gDoingBattleAnim;
extern u8 gObjectBankIDs[];
@@ -40,14 +41,14 @@ extern u16 gUnknown_02024DE8;
extern u8 gBattleOutcome;
extern u8 GetBankSide(u8);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern u8 GetBankIdentity(u8);
extern void LoadPlayerTrainerBankSprite();
extern u8 sub_8079E90();
extern void sub_80313A0(struct Sprite *);
extern void sub_810BADC(void);
extern void sub_8045A5C();
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void sub_804777C();
extern void sub_8043DFC();
extern bool8 move_anim_start_t3();
@@ -272,6 +273,17 @@ void bx_battle_menu_t6_2(void)
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
}
}
+#if DEBUG
+ else if (gMain.newKeys & R_BUTTON)
+ {
+ if (!ewram17810[gActiveBank].unk0_5)
+ move_anim_start_t3(gActiveBank, gActiveBank, gActiveBank, 4, 0);
+ }
+ else if (gMain.newKeys & START_BUTTON)
+ {
+ sub_804454C();
+ }
+#endif
}
void sub_812B65C(void)
@@ -313,7 +325,7 @@ void sub_812B724(void)
void sub_812B758(void)
{
- if (gMain.callback2 == sub_800F808 && !gPaletteFade.active)
+ if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
Emitcmd35(1, gSpecialVar_ItemId);
SafariBufferExecCompleted();
@@ -423,7 +435,7 @@ void SafariHandlecmd12(void)
{
ewram17840.unk8 = 4;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t6;
}
@@ -433,7 +445,7 @@ void SafariHandleBallThrow(void)
ewram17840.unk8 = var;
gDoingBattleAnim = 1;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t6;
}
@@ -450,10 +462,10 @@ void SafariHandleMoveAnimation(void)
void SafariHandlePrintString(void)
{
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gBattleBankFunc[gActiveBank] = sub_812B694;
}
@@ -469,16 +481,16 @@ void SafariHandlecmd18(void)
{
int i;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 160;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
gUnknown_03004210.paletteNum = 0;
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2;
- InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35);
- sub_8002F44(&gUnknown_03004210);
- sub_814A5C0(0, 0xFFFF, 12, 11679, 0);
+ Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 12, 11679, 0);
for (i = 0; i < 4; i++)
nullsub_8(i);
@@ -486,8 +498,8 @@ void SafariHandlecmd18(void)
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
StrCpyDecodeToDisplayedStringBattle(BattleText_PlayerMenu);
- InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
- sub_8002F44(&gUnknown_03004210);
+ Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
void SafariHandlecmd19(void)
@@ -641,7 +653,7 @@ void SafariHandleFaintingCry(void)
void SafariHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
SafariBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index 8ace11fc1..49f530129 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -53,8 +53,8 @@ extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u8 gUnknown_0300434C[];
extern const u8 BattleText_WallyMenu[];
extern const u8 BattleText_MenuOptions[];
@@ -75,7 +75,7 @@ extern void PlayerHandlecmd1(void);
extern void LoadPlayerTrainerBankSprite();
extern u8 GetBankIdentity(u8);
extern void sub_80313A0(struct Sprite *);
-extern u8 GetBankByPlayerAI(u8);
+extern u8 GetBankByIdentity(u8);
extern u8 sub_8031720();
extern void DoMoveAnim();
extern void sub_80326EC();
@@ -85,7 +85,7 @@ extern void BufferStringBattle();
extern u8 GetBankSide(u8);
extern void sub_80304A8(void);
extern void sub_8047858();
-extern void sub_80E43C0();
+extern void StartBattleIntroAnim();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void sub_8030E38(struct Sprite *);
@@ -363,7 +363,7 @@ void sub_81374C4(void)
void sub_81374FC(void)
{
- if (gMain.callback2 == sub_800F808
+ if (gMain.callback2 == BattleMainCB2
&& !gPaletteFade.active)
{
Emitcmd35(1, gSpecialVar_ItemId);
@@ -412,7 +412,7 @@ void sub_81376B8(void)
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
WallyBufferExecCompleted();
}
}
@@ -429,7 +429,7 @@ void sub_81377B0(void)
}
else
{
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
WallyBufferExecCompleted();
}
}
@@ -1066,7 +1066,7 @@ void sub_8138294(u8 a)
SetMonData(&gPlayerParty[a], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
break;
}
- sub_80324F8(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
}
void WallyHandlecmd3(void)
@@ -1149,7 +1149,7 @@ void WallyHandlecmd12(void)
{
ewram17840.unk8 = 4;
gDoingBattleAnim = TRUE;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t5;
}
@@ -1159,7 +1159,7 @@ void WallyHandleBallThrow(void)
ewram17840.unk8 = val;
gDoingBattleAnim = TRUE;
- move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4);
+ move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4);
gBattleBankFunc[gActiveBank] = bx_wait_t5;
}
@@ -1240,13 +1240,13 @@ void WallyHandlePrintString(void)
{
u16 *ptr;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
ptr = (u16 *)&gBattleBufferA[gActiveBank][2];
if (*ptr == 2)
DestroyMenuCursor();
BufferStringBattle(*ptr);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15);
gBattleBankFunc[gActiveBank] = sub_8137454;
}
@@ -1262,25 +1262,25 @@ void WallyHandlecmd18(void)
{
s32 i;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 160;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 160;
gUnknown_03004210.paletteNum = 0;
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 15, 27, 18);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 10, 2, 35, 16, 36);
gBattleBankFunc[gActiveBank] = sub_81372BC;
- InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
- sub_8002F44(&gUnknown_03004210);
- sub_814A5C0(0, 0xFFFF, 12, 0x2D9F, 0);
+ Text_InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0);
for (i = 0; i < 4; i++)
nullsub_8(i);
sub_802E3E4(0, 0);
StrCpyDecodeToDisplayedStringBattle(BattleText_WallyMenu);
#ifdef ENGLISH
- InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 440, 2, 35);
+ Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 440, 2, 35);
#else
- InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 444, 2, 35);
+ Text_InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 444, 2, 35);
#endif
- sub_8002F44(&gUnknown_03004210);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
void WallyHandlecmd19(void)
@@ -1470,7 +1470,7 @@ void WallyHandleFaintingCry(void)
void WallyHandleIntroSlide(void)
{
- sub_80E43C0(gBattleBufferA[gActiveBank][1]);
+ StartBattleIntroAnim(gBattleBufferA[gActiveBank][1]);
gUnknown_02024DE8 |= 1;
WallyBufferExecCompleted();
}
diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c
index 97568d254..9be026d53 100644
--- a/src/battle/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -79,8 +79,8 @@ extern const u16 gBattleInterfaceStatusIcons_DynPal[];
static void sub_8043D5C(struct Sprite *);
static const void *sub_8043CDC(u8);
-static void sub_8044210(u8, s16, u8);
-static void draw_status_ailment_maybe(u8);
+/*static*/ void sub_8044210(u8, s16, u8);
+/*static*/ void draw_status_ailment_maybe(u8);
extern void sub_8045180(struct Sprite *);
static void sub_8045110(struct Sprite *);
static void sub_8045048(struct Sprite *);
@@ -651,7 +651,7 @@ void sub_8043F44(u8 a)
#define CHAR_LV_SEPARATOR CHAR_PERIOD
#endif
-static void sub_8043FC0(u8 a, u8 b)
+/*static*/ void sub_8043FC0(u8 a, u8 b)
{
u8 str[30];
void *const *r7;
@@ -905,7 +905,7 @@ _0804420C: .4byte 0x04000008\n\
}
#endif
-static void sub_8044210(u8 a, s16 b, u8 c)
+/*static*/ void sub_8044210(u8 a, s16 b, u8 c)
{
u8 str[0x14];
u8 *ptr;
@@ -1277,6 +1277,8 @@ _08044548: .4byte 0x04000008\n\
}
#endif
+extern u8 gUnknown_020297ED;
+
void sub_804454C(void)
{
s32 i;
@@ -1285,7 +1287,11 @@ void sub_804454C(void)
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gSprites[gHealthboxIDs[i]].callback == SpriteCallbackDummy
+#if DEBUG
+ && (gUnknown_020297ED != 0 || GetBankSide(i) != 1)
+#else
&& GetBankSide(i) != 1
+#endif
&& (IsDoubleBattle() || GetBankSide(i) != 0))
{
u8 r6;
@@ -2359,7 +2365,7 @@ void sub_8045180(struct Sprite *sprite)
sprite->pos2.y = gSprites[spriteId].pos2.y;
}
-static void sub_80451A0(u8 a, struct Pokemon *pkmn)
+/*static*/ void sub_80451A0(u8 a, struct Pokemon *pkmn)
{
u8 nickname[POKEMON_NAME_LENGTH];
u8 gender;
@@ -2507,7 +2513,7 @@ static void sub_8045458(u8 a, u8 b)
}
}
-static void draw_status_ailment_maybe(u8 a)
+/*static*/ void draw_status_ailment_maybe(u8 a)
{
s32 r4;
s32 r4_2;
@@ -2649,7 +2655,7 @@ static u8 sub_80457E8(u8 a, u8 b)
return ret;
}
-static void sub_80458B0(u8 a)
+/*static*/ void sub_80458B0(u8 a)
{
u8 *r6;
u8 r8;
@@ -2675,7 +2681,7 @@ static void sub_80458B0(u8 a)
}
-static void sub_8045998(u8 a)
+/*static*/ void sub_8045998(u8 a)
{
u8 *r7;
u8 status;
@@ -2752,6 +2758,15 @@ void sub_8045A5C(u8 a, struct Pokemon *pkmn, u8 c)
{
if (c == 3 || c == 0)
sub_8043FC0(a, GetMonData(pkmn, MON_DATA_LEVEL));
+#if DEBUG
+ if (gUnknown_020297ED == 1)
+ {
+ if (c == 1 || c == 0)
+ sub_80440EC(a, GetMonData(pkmn, MON_DATA_HP), 0);
+ if (c == 2 || c == 0)
+ sub_80440EC(a, GetMonData(pkmn, MON_DATA_MAX_HP), 1);
+ }
+#endif
if (c == 5 || c == 0)
{
load_gfxc_health_bar(0);
diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c
index 4ac8c7a6f..ed7ab3a35 100644
--- a/src/battle/battle_message.c
+++ b/src/battle/battle_message.c
@@ -25,6 +25,8 @@
#include "../data/battle_strings_en.h"
#endif
+// This is four lists of moves which use a different attack string in Japanese
+// to the default. See the documentation for sub_8121D74 for more detail.
const u16 gUnknown_084016BC[] =
{
MOVE_SWORDS_DANCE,
@@ -69,7 +71,7 @@ const u16 gUnknown_084016BC[] =
MOVE_MUDDY_WATER,
MOVE_IRON_DEFENSE,
MOVE_BOUNCE,
- MOVE_NONE,
+ 0,
MOVE_TELEPORT,
MOVE_RECOVER,
MOVE_BIDE,
@@ -77,7 +79,7 @@ const u16 gUnknown_084016BC[] =
MOVE_FLAIL,
MOVE_TAUNT,
MOVE_BULK_UP,
- MOVE_NONE,
+ 0,
MOVE_MEDITATE,
MOVE_AGILITY,
MOVE_MIMIC,
@@ -96,7 +98,7 @@ const u16 gUnknown_084016BC[] =
MOVE_FAKE_TEARS,
MOVE_WATER_SPORT,
MOVE_CALM_MIND,
- MOVE_NONE,
+ 0,
MOVE_POUND,
MOVE_SCRATCH,
MOVE_VICE_GRIP,
@@ -144,7 +146,7 @@ const u16 gUnknown_084016BC[] =
MOVE_ENDEAVOR,
MOVE_TICKLE,
MOVE_COVET,
- MOVE_NONE,
+ 0,
};
const u8 gUnknown_084017A8[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // empty flags
@@ -158,7 +160,6 @@ extern u8 gBankAttacker;
extern u8 gBankTarget;
extern u8 gStringBank;
extern u8 gEffectBank;
-extern u8 gAbilitiesPerBank[4];
extern u8 gBattleTextBuff1[];
extern u8 gBattleTextBuff2[];
extern u8 gBattleTextBuff3[];
@@ -175,6 +176,8 @@ extern u16 gBattlePartyID[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gBattleBufferA[4][0x200];
+EWRAM_DATA u8 gAbilitiesPerBank[4] = {0};
+
extern const u8* const gUnknown_08401674[]; // table of pointers to 'a -TYPE' strings
extern const u8* const gUnknown_08400F58[]; // table of pointers to stat strings
extern const u8* const gUnknown_08400F78[]; // table of pointers to flavour strings
@@ -199,7 +202,7 @@ s32 sub_803FC34(u16);
void get_trainer_name(u8* dst);
u8 get_trainer_class_name_index(void);
u8 GetMultiplayerId(void);
-u8 GetBankByPlayerAI(u8 ID);
+u8 GetBankByIdentity(u8 ID);
u8 GetBankSide(u8 bank);
u8 GetBankIdentity(u8 bank);
#ifdef GERMAN
@@ -214,11 +217,11 @@ void BufferStringBattle(u16 stringID)
gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBank][4]);
gLastUsedItem = gStringInfo->lastItem;
gLastUsedAbility = gStringInfo->lastAbility;
- BATTLE_STRUCT->scriptingActive = gStringInfo->scrActive;
- BATTLE_STRUCT->unk1605E = gStringInfo->unk1605E;
- BATTLE_STRUCT->hpScale = gStringInfo->hpScale;
+ gBattleStruct->scriptingActive = gStringInfo->scrActive;
+ gBattleStruct->unk1605E = gStringInfo->unk1605E;
+ gBattleStruct->hpScale = gStringInfo->hpScale;
gStringBank = gStringInfo->StringBank;
- BATTLE_STRUCT->stringMoveType = gStringInfo->moveType;
+ gBattleStruct->stringMoveType = gStringInfo->moveType;
for (i = 0; i < 4; i++)
{
gAbilitiesPerBank[i] = gStringInfo->abilities[i];
@@ -304,11 +307,11 @@ void BufferStringBattle(u16 stringID)
case 2: // sending poke to ball msg
if (GetBankSide(gActiveBank) == 0)
{
- if (BATTLE_STRUCT->hpScale == 0)
+ if (gBattleStruct->hpScale == 0)
stringPtr = BattleText_ComeBackSingle1;
- else if (BATTLE_STRUCT->hpScale == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ else if (gBattleStruct->hpScale == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
stringPtr = BattleText_ComeBackSingle2;
- else if (BATTLE_STRUCT->hpScale == 2)
+ else if (gBattleStruct->hpScale == 2)
stringPtr = BattleText_ComeBackSingle3;
else
stringPtr = BattleText_ComeBackSingle4;
@@ -332,13 +335,13 @@ void BufferStringBattle(u16 stringID)
}
break;
case 3: // switch-in msg
- if (GetBankSide(BATTLE_STRUCT->scriptingActive) == 0)
+ if (GetBankSide(gBattleStruct->scriptingActive) == 0)
{
- if (BATTLE_STRUCT->hpScale == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ if (gBattleStruct->hpScale == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
stringPtr = BattleText_SentOutSingle7;
- else if (BATTLE_STRUCT->hpScale == 1)
+ else if (gBattleStruct->hpScale == 1)
stringPtr = BattleText_SentOutSingle8;
- else if (BATTLE_STRUCT->hpScale == 2)
+ else if (gBattleStruct->hpScale == 2)
stringPtr = BattleText_SentOutSingle9;
else
stringPtr = BattleText_SentOutSingle10;
@@ -364,7 +367,7 @@ void BufferStringBattle(u16 stringID)
case 4: // pokemon used a move msg
sub_8121D1C(gBattleTextBuff1);
if (gStringInfo->currentMove > 0x162)
- StringCopy(gBattleTextBuff2, gUnknown_08401674[BATTLE_STRUCT->stringMoveType]);
+ StringCopy(gBattleTextBuff2, gUnknown_08401674[gBattleStruct->stringMoveType]);
else
StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]);
sub_8121D74(gBattleTextBuff2);
@@ -572,22 +575,22 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = gBattleTextBuff3;
break;
case 2: // first player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(0)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(0)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case 3: // first enemy poke name
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(1)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(1)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case 4: // second player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(2)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(2)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case 5: // second enemy poke name
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(3)]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(3)]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
@@ -612,13 +615,13 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = text;
break;
case 10: // attacker name with prefix, only bank 0/1
- HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1)])
+ HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1)])
break;
case 11: // attacker partner name, only bank 0/1
if (GetBankSide(gBankAttacker) == 0)
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
+ GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
else
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
@@ -636,17 +639,17 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
HANDLE_NICKNAME_STRING_CASE(gActiveBank, gBattlePartyID[gActiveBank])
break;
case 16: // scripting active bank name with prefix
- HANDLE_NICKNAME_STRING_CASE(BATTLE_STRUCT->scriptingActive, gBattlePartyID[BATTLE_STRUCT->scriptingActive])
+ HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattlePartyID[gBattleStruct->scriptingActive])
break;
case 17: // current move name
if (gStringInfo->currentMove > 0x162)
- toCpy = (void*) &gUnknown_08401674[BATTLE_STRUCT->stringMoveType];
+ toCpy = (void*) &gUnknown_08401674[gBattleStruct->stringMoveType];
else
toCpy = gMoveNames[gStringInfo->currentMove];
break;
case 18: // last used move name
if (gStringInfo->lastMove > 0x162)
- toCpy = (void*) &gUnknown_08401674[BATTLE_STRUCT->stringMoveType];
+ toCpy = (void*) &gUnknown_08401674[gBattleStruct->stringMoveType];
else
toCpy = gMoveNames[gStringInfo->lastMove];
break;
@@ -655,7 +658,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
{
if (gLastUsedItem == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18 == gStringBank)
+ if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 == gStringBank)
{
StringCopy(text, gEnigmaBerries[gStringBank].name);
#ifdef ENGLISH
@@ -690,7 +693,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = gAbilityNames[gAbilitiesPerBank[gBankTarget]];
break;
case 23: // scripting active ability
- toCpy = gAbilityNames[gAbilitiesPerBank[BATTLE_STRUCT->scriptingActive]];
+ toCpy = gAbilityNames[gAbilitiesPerBank[gBattleStruct->scriptingActive]];
break;
case 24: // effect bank ability
toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBank]];
@@ -750,7 +753,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = gLinkPlayers[sub_803FC34(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
break;
case 31: // link scripting active name
- toCpy = gLinkPlayers[sub_803FC34(BATTLE_STRUCT->scriptingActive)].name;
+ toCpy = gLinkPlayers[sub_803FC34(gBattleStruct->scriptingActive)].name;
break;
case 32: // player name
toCpy = gSaveBlock2.playerName;
@@ -759,7 +762,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
toCpy = GetTrainerLoseText();
break;
case 34: // ?
- HANDLE_NICKNAME_STRING_CASE(BATTLE_STRUCT->scriptingActive, BATTLE_STRUCT->unk1605E)
+ HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattleStruct->unk1605E)
break;
case 35: // lanette pc
if (FlagGet(FLAG_SYS_PC_LANETTE))
@@ -946,7 +949,7 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
{
if (hword == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18 == gStringBank)
+ if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 == gStringBank)
{
StringCopy(dst, gEnigmaBerries[gStringBank].name);
#ifdef ENGLISH
@@ -970,6 +973,10 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst)
}
}
+// Loads one of two text strings into the provided buffer. This is functionally
+// unused, since the value loaded into the buffer is not read; it loaded one of
+// two particles (either "は" or "の") which works in tandem with sub_8121D74
+// below to effect changes in the meaning of the line.
void sub_8121D1C(u8* textBuff)
{
s32 counter = 0;
@@ -992,6 +999,24 @@ void sub_8121D1C(u8* textBuff)
}
}
+// Appends "!" to the text buffer `dst`. In the original Japanese this looked
+// into the table of moves at gUnknown_084016BC and varied the line accordingly.
+//
+// BattleText_Exclamation was a plain "!", used for any attack not on the list.
+// It resulted in the translation "<NAME>'s <ATTACK>!".
+//
+// BattleText_Exclamation2 was "を つかった!". This resulted in the translation
+// "<NAME> used <ATTACK>!", which was used for all attacks in English.
+//
+// BattleText_Exclamation3 was "した!". This was used for those moves whose
+// names were verbs, such as Recover, and resulted in translations like "<NAME>
+// recovered itself!".
+//
+// BattleText_Exclamation4 was "を した!" This resulted in a translation of
+// "<NAME> did an <ATTACK>!".
+//
+// BattleText_Exclamation5 was " こうげき!" This resulted in a translation of
+// "<NAME>'s <ATTACK> attack!".
void sub_8121D74(u8* dst)
{
s32 counter = 0;
diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c
index d4dcae0ca..ed8cf4583 100644
--- a/src/battle/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
@@ -40,7 +40,7 @@ extern u8 gUnknown_0202E8F6;
extern u8 gUnknown_02038470[3];
extern u8 gUnknown_02038473;
extern u8 gUnknown_020384F0;
-extern void (*gUnknown_03004AE4)(); //don't know types yet
+extern void (*gPokemonItemUseCallback)(); //don't know types yet
extern struct PokemonStorage gPokemonStorage;
extern void nullsub_14();
@@ -122,7 +122,7 @@ static void sub_8094998(u8 arg[3], u8 player_number)
if (!IsDoubleBattle())
{
pos = 1;
- *temp = gBattlePartyID[GetBankByPlayerAI(0)];
+ *temp = gBattlePartyID[GetBankByIdentity(0)];
for (i = 0; i <= 5; i++)
if (i != *temp)
temp[pos++] = i;
@@ -130,8 +130,8 @@ static void sub_8094998(u8 arg[3], u8 player_number)
else
{
pos = 2;
- *temp = gBattlePartyID[GetBankByPlayerAI(0)];
- temp[1] = gBattlePartyID[GetBankByPlayerAI(2)];
+ *temp = gBattlePartyID[GetBankByIdentity(0)];
+ temp[1] = gBattlePartyID[GetBankByIdentity(2)];
for (i = 0; i <= 5; i++)
if ((i != *temp) && (i != temp[1]))
temp[pos++] = i;
@@ -147,13 +147,13 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3)
u8 temp[6];
if (!GetBankSide(arg3))
{
- i = GetBankByPlayerAI(0);
- j = GetBankByPlayerAI(2);
+ i = GetBankByIdentity(0);
+ j = GetBankByIdentity(2);
}
else
{
- i = GetBankByPlayerAI(1);
- j = GetBankByPlayerAI(3);
+ i = GetBankByIdentity(1);
+ j = GetBankByIdentity(3);
}
if (IsLinkDoubleBattle() == TRUE)
{
@@ -466,7 +466,7 @@ void HandleBattlePartyMenu(u8 taskId)
{
if (gUnknown_02038473 == 3 && GetItemEffectType(gSpecialVar_ItemId) == 10)
{
- gUnknown_03004AE4(taskId, gSpecialVar_ItemId, Task_80952E4);
+ gPokemonItemUseCallback(taskId, gSpecialVar_ItemId, Task_80952E4);
return;
}
@@ -480,7 +480,7 @@ void HandleBattlePartyMenu(u8 taskId)
else
{
sub_806D5A4();
- gUnknown_03004AE4(taskId, gSpecialVar_ItemId, Task_80952E4);
+ gPokemonItemUseCallback(taskId, gSpecialVar_ItemId, Task_80952E4);
}
}
else
@@ -583,13 +583,13 @@ static void Task_HandlePopupMenuInput(u8 taskId)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
return;
}
if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
return;
}
if (gMain.newKeys & A_BUTTON)
@@ -598,7 +598,7 @@ static void Task_HandlePopupMenuInput(u8 taskId)
func = PartyMenuGetPopupMenuFunc(gTasks[taskId].data[4],
sBattlePartyPopupMenus,
sBattlePartyMenuActions,
- GetMenuCursorPos());
+ Menu_GetCursorPos());
func(taskId);
return;
}
@@ -723,7 +723,7 @@ static void Task_BattlePartyMenuShift(u8 taskId)
static void Task_BattlePartyMenuCancel(u8 taskId)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
ClosePartyPopupMenu(gTasks[taskId].data[4], sBattlePartyPopupMenus);
gTasks[taskId].data[4] = gTasks[taskId].data[5];
PrintPartyMenuPromptText(0, 0);
diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c
index 97740e3da..1532a0b2f 100644
--- a/src/battle/battle_records.c
+++ b/src/battle/battle_records.c
@@ -8,9 +8,35 @@
#include "strings2.h"
#include "trainer_card.h"
+struct DebugStruct1
+{
+ u16 var0;
+ u8 var1[10];
+};
+
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
extern u8 gBattleOutcome;
+#if DEBUG
+const struct DebugStruct1 gUnknown_Debug_4245CC[] =
+{
+ { 1, _("NUMBER1") },
+ { 2, _("ナンバー2") },
+ { 3, _("ナンバー3") },
+ { 4, _("ナンバー4") },
+ { 5, _("ナンバー5") },
+ { 6, _("ナンバー6") },
+ { 7, _("ナンバー7") },
+};
+
+const u8 gUnknown_Debug_8424620[][4] =
+{
+ { 1, 1, 0, 0 },
+ { 2, 1, 0, 0 },
+ { 3, 1, 0, 0 },
+};
+#endif
+
static void InitLinkBattleRecord(struct LinkBattleRecord *record)
{
CpuFill16(0, record, sizeof(struct LinkBattleRecord));
@@ -197,12 +223,72 @@ void UpdateLinkBattleRecords(int id)
gLinkPlayers[gLinkPlayerMapObjects[id].linkPlayerId].language);
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_81257E0(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ add sp, sp, #0xfffffffc\n\
+ bl InitLinkBattleRecords\n\
+ mov r5, #0x0\n\
+ ldr r6, ._62 @ gUnknown_Debug_4245CC\n\
+ sub r0, r6, #2\n\
+ mov r8, r0\n\
+ ldr r7, ._62 + 4 @ gLinkPlayers\n\
+._61:\n\
+ ldr r0, ._62 + 8 @ gUnknown_Debug_8424620\n\
+ lsl r3, r5, #0x2\n\
+ add r3, r3, r0\n\
+ ldrb r4, [r3]\n\
+ sub r4, r4, #0x1\n\
+ lsl r0, r4, #0x1\n\
+ add r0, r0, r4\n\
+ lsl r0, r0, #0x2\n\
+ add r1, r0, r6\n\
+ add r0, r0, r8\n\
+ ldrh r2, [r0]\n\
+ ldrb r3, [r3, #0x1]\n\
+ ldr r0, ._62 + 12 @ gLinkPlayerMapObjects\n\
+ lsl r4, r4, #0x2\n\
+ add r4, r4, r0\n\
+ ldrb r4, [r4, #0x1]\n\
+ lsl r0, r4, #0x3\n\
+ sub r0, r0, r4\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r7\n\
+ ldrb r0, [r0, #0x1a]\n\
+ str r0, [sp]\n\
+ ldr r0, ._62 + 16 @ gSaveBlock1\n\
+ bl UpdateLinkBattleRecords_\n\
+ add r5, r5, #0x1\n\
+ cmp r5, #0x2\n\
+ bls ._61 @cond_branch\n\
+ add sp, sp, #0x4\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._63:\n\
+ .align 2, 0\n\
+._62:\n\
+ .word gUnknown_Debug_4245CC+2\n\
+ .word gLinkPlayers\n\
+ .word gUnknown_Debug_8424620\n\
+ .word gLinkPlayerMapObjects\n\
+ .word gSaveBlock1+0x30b8");
+}
+#endif
+
static void PrintLinkBattleWinsLossesDraws(struct LinkBattleRecord *records)
{
ConvertIntToDecimalStringN_DigitWidth6(gStringVar1, GetGameStat(GAME_STAT_LINK_BATTLE_WINS), STR_CONV_MODE_RIGHT_ALIGN, 4);
ConvertIntToDecimalStringN_DigitWidth6(gStringVar2, GetGameStat(GAME_STAT_LINK_BATTLE_LOSSES), STR_CONV_MODE_RIGHT_ALIGN, 4);
ConvertIntToDecimalStringN_DigitWidth6(gStringVar3, GetGameStat(GAME_STAT_LINK_BATTLE_DRAWS), STR_CONV_MODE_RIGHT_ALIGN, 4);
- MenuPrint(gOtherText_WinRecord, 3, 3);
+ Menu_PrintText(gOtherText_WinRecord, 3, 3);
}
static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y)
@@ -217,39 +303,40 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y)
buffer[4] = 0x11;
buffer[5] = 1;
StringCopy(buffer + 6, gOtherText_SevenDashes);
- MenuPrint(buffer, 3, y);
+ Menu_PrintText(buffer, 3, y);
StringCopy(buffer + 6, gOtherText_FourDashes);
- MenuPrint(buffer, 11, y);
- MenuPrint(buffer, 17, y);
- MenuPrint(buffer, 23, y);
+ Menu_PrintText(buffer, 11, y);
+ Menu_PrintText(buffer, 17, y);
+ Menu_PrintText(buffer, 23, y);
}
else
{
StringFillWithTerminator(gStringVar1, 8);
StringCopyN(gStringVar1, record->name, 7);
- MenuPrint(gStringVar1, 3, y);
+ Menu_PrintText(gStringVar1, 3, y);
gStringVar1[0] = EXT_CTRL_CODE_BEGIN;
gStringVar1[1] = 0x14;
gStringVar1[2] = 6;
ConvertIntToDecimalStringN(gStringVar1 + 3, record->wins, STR_CONV_MODE_RIGHT_ALIGN, 4);
- MenuPrint(gStringVar1, 11, y);
+ Menu_PrintText(gStringVar1, 11, y);
ConvertIntToDecimalStringN(gStringVar1 + 3, record->losses, STR_CONV_MODE_RIGHT_ALIGN, 4);
- MenuPrint(gStringVar1, 17, y);
+ Menu_PrintText(gStringVar1, 17, y);
ConvertIntToDecimalStringN(gStringVar1 + 3, record->draws, STR_CONV_MODE_RIGHT_ALIGN, 4);
- MenuPrint(gStringVar1, 23, y);
+ Menu_PrintText(gStringVar1, 23, y);
}
}
-void ShowLinkBattleRecords(void) {
+void ShowLinkBattleRecords(void)
+{
s32 i;
- MenuDrawTextWindow(1, 0, 28, 18);
+ Menu_DrawStdWindowFrame(1, 0, 28, 18);
sub_8072BD8(gOtherText_BattleResults, 0, 1, 240);
PrintLinkBattleWinsLossesDraws(gSaveBlock1.linkBattleRecords);
#if ENGLISH
- MenuPrint(gOtherText_WinLoseDraw, 12, 6);
+ Menu_PrintText(gOtherText_WinLoseDraw, 12, 6);
#elif GERMAN
- MenuPrint_PixelCoords(gOtherText_WinLoseDraw, 88, 48, 1);
+ Menu_PrintTextPixelCoords(gOtherText_WinLoseDraw, 88, 48, 1);
#endif
for (i = 0; i < 5; i++)
@@ -285,11 +372,11 @@ static bool32 sub_8110494(u8 level)
static void PrintWinStreak(const u8 *str, u16 streak, u8 left, u8 top)
{
- MenuPrint(str, left, top);
+ Menu_PrintText(str, left, top);
if (streak > 9999)
streak = 9999;
sub_8072C14(gStringVar1, streak, 24, 1);
- MenuPrint(gOtherText_WinStreak, left + 7, top);
+ Menu_PrintText(gOtherText_WinStreak, left + 7, top);
}
static void PrintRecordWinStreak(u8 level, u8 left, u8 top)
@@ -320,10 +407,10 @@ static void PrintLastWinStreak(u8 level, u8 left, u8 top)
void ShowBattleTowerRecords(void)
{
u16 i;
- MenuDrawTextWindow(3, 1, 27, 17);
+ Menu_DrawStdWindowFrame(3, 1, 27, 17);
sub_8072BD8(gOtherText_BattleTowerResults, 3, 2, 0xC8);
- MenuPrint(gOtherText_Lv50, 5, 6);
- MenuPrint(gOtherText_Lv100, 5, 12);
+ Menu_PrintText(gOtherText_Lv50, 5, 6);
+ Menu_PrintText(gOtherText_Lv100, 5, 12);
for (i = 5; i < 26; i++)
{
sub_8071F60(CHAR_HYPHEN, i, 10);
diff --git a/src/battle/battle_setup.c b/src/battle/battle_setup.c
index b4ff407fc..15555f833 100644
--- a/src/battle/battle_setup.c
+++ b/src/battle/battle_setup.c
@@ -475,7 +475,7 @@ static void Task_BattleStart(u8 taskId)
switch (tState)
{
case 0:
- if (!FieldPoisonEffectIsRunning()) // is poison not active?
+ if (!FldeffPoison_IsActive()) // is poison not active?
{
BattleTransition_StartOnField(tTransition);
tState++; // go to case 1.
@@ -520,8 +520,8 @@ static void DoStandardWildBattle(void)
gMain.savedCallback = CB2_EndWildBattle;
gBattleTypeFlags = 0;
CreateBattleStartTask(GetWildBattleTransition(), 0);
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
void BattleSetup_StartRoamerBattle(void)
@@ -532,8 +532,8 @@ void BattleSetup_StartRoamerBattle(void)
gMain.savedCallback = CB2_EndWildBattle;
gBattleTypeFlags = BATTLE_TYPE_ROAMER;
CreateBattleStartTask(GetWildBattleTransition(), 0);
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
static void DoSafariBattle(void)
@@ -549,8 +549,8 @@ static void DoSafariBattle(void)
static void StartTheBattle(void)
{
CreateBattleStartTask(GetTrainerBattleTransition(), 0);
- IncrementGameStat(7);
- IncrementGameStat(9);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_TRAINER_BATTLES);
}
//Initiates battle where Wally catches Ralts
@@ -569,8 +569,8 @@ void BattleSetup_StartScriptedWildBattle(void)
gMain.savedCallback = CB2_EndScriptedWildBattle;
gBattleTypeFlags = 0;
CreateBattleStartTask(GetWildBattleTransition(), 0);
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
void ScrSpecial_StartSouthernIslandBattle(void)
@@ -579,8 +579,8 @@ void ScrSpecial_StartSouthernIslandBattle(void)
gMain.savedCallback = CB2_EndScriptedWildBattle;
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
CreateBattleStartTask(GetWildBattleTransition(), 0);
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
void ScrSpecial_StartRayquazaBattle(void)
@@ -589,8 +589,8 @@ void ScrSpecial_StartRayquazaBattle(void)
gMain.savedCallback = CB2_EndScriptedWildBattle;
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY;
CreateBattleStartTask(B_TRANSITION_BLUR, BGM_BATTLE34);
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
void ScrSpecial_StartGroudonKyogreBattle(void)
@@ -602,8 +602,8 @@ void ScrSpecial_StartGroudonKyogreBattle(void)
CreateBattleStartTask(B_TRANSITION_SHARDS, BGM_BATTLE34); // GROUDON
else
CreateBattleStartTask(B_TRANSITION_RIPPLE, BGM_BATTLE34); // KYOGRE
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
void ScrSpecial_StartRegiBattle(void)
@@ -612,8 +612,8 @@ void ScrSpecial_StartRegiBattle(void)
gMain.savedCallback = CB2_EndScriptedWildBattle;
gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI;
CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, BGM_BATTLE36);
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
static void CB2_EndWildBattle(void)
@@ -879,8 +879,8 @@ static void CB2_StartFirstBattle(void)
SetMainCallback2(sub_800E7C4);
prev_quest_postbuffer_cursor_backup_reset();
overworld_poison_timer_set();
- IncrementGameStat(7);
- IncrementGameStat(8);
+ IncrementGameStat(GAME_STAT_TOTAL_BATTLES);
+ IncrementGameStat(GAME_STAT_WILD_BATTLES);
}
}
diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c
index 985f43945..a94974b27 100644
--- a/src/battle/battle_transition.c
+++ b/src/battle/battle_transition.c
@@ -6,6 +6,7 @@
#include "palette.h"
#include "trig.h"
#include "field_effect.h"
+#include "field_weather.h"
#include "random.h"
#include "sprite.h"
#include "sound.h"
@@ -13,12 +14,9 @@
#include "trainer.h"
#include "field_camera.h"
#include "ewram.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
-void sub_807DE10(void);
-void dp12_8087EA4(void);
-
-extern u16 gUnknown_03005560[];
+void ScanlineEffect_Clear(void);
extern const struct OamData gFieldOamData_32x32;
@@ -569,7 +567,7 @@ static void Task_BattleTransitionMain(u8 taskID)
static bool8 Transition_Phase1(struct Task* task)
{
- sub_807DE10();
+ SetWeatherScreenFadeOut();
CpuCopy32(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
if (sPhase1_Tasks[task->tTransitionID] != NULL)
{
@@ -672,9 +670,9 @@ static bool8 Phase2_Transition_Swirl_Func1(struct Task* task)
u16 savedIME;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
- sub_811D6E8(gUnknown_03005560, TRANSITION_STRUCT.field_14, 0, 2, 0, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[1], TRANSITION_STRUCT.field_14, 0, 2, 0, 160);
SetVBlankCallback(VBlankCB_Phase2_Transition_Swirl);
SetHBlankCallback(HBlankCB_Phase2_Transition_Swirl);
@@ -695,7 +693,7 @@ static bool8 Phase2_Transition_Swirl_Func2(struct Task* task)
task->data[1] += 4;
task->data[2] += 8;
- sub_811D6E8(gUnknown_03004DE0[0], TRANSITION_STRUCT.field_14, task->data[1], 2, task->data[2], 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], TRANSITION_STRUCT.field_14, task->data[1], 2, task->data[2], 160);
if (!gPaletteFade.active)
{
@@ -711,12 +709,12 @@ static void VBlankCB_Phase2_Transition_Swirl(void)
{
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Transition_Swirl(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1HOFS = var;
REG_BG2HOFS = var;
REG_BG3HOFS = var;
@@ -732,10 +730,10 @@ static bool8 Phase2_Transition_Shuffle_Func1(struct Task* task)
u16 savedIME;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
- memset(gUnknown_03005560, TRANSITION_STRUCT.field_16, 0x140);
+ memset(gScanlineEffectRegBuffers[1], TRANSITION_STRUCT.field_16, 0x140);
SetVBlankCallback(VBlankCB_Phase2_Transition_Shuffle);
SetHBlankCallback(HBlankCB_Phase2_Transition_Shuffle);
@@ -764,7 +762,7 @@ static bool8 Phase2_Transition_Shuffle_Func2(struct Task* task)
for (i = 0; i < 160; i++, r4 += 4224)
{
u16 var = r4 / 256;
- gUnknown_03004DE0[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
}
if (!gPaletteFade.active)
@@ -778,12 +776,12 @@ static void VBlankCB_Phase2_Transition_Shuffle(void)
{
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Transition_Shuffle(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1VOFS = var;
REG_BG2VOFS = var;
REG_BG3VOFS = var;
@@ -800,7 +798,7 @@ static bool8 Phase2_Transition_BigPokeball_Func1(struct Task* task)
u16 *dst1, *dst2;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
task->data[1] = 16;
task->data[2] = 0;
@@ -815,7 +813,7 @@ static bool8 Phase2_Transition_BigPokeball_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03005560[i] = 240;
+ gScanlineEffectRegBuffers[1][i] = 240;
}
SetVBlankCallback(VBlankCB0_Phase2_Transition_BigPokeball);
@@ -844,7 +842,7 @@ static bool8 Phase2_Transition_BigPokeball_Func2(struct Task* task)
dst1[i * 32 + j] = *BigPokeballMap | 0xF000;
}
}
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5], 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5], 160);
task->tState++;
return TRUE;
@@ -864,7 +862,7 @@ static bool8 Phase2_Transition_BigPokeball_Func3(struct Task* task)
task->data[4] += 8;
task->data[5] -= 256;
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
TRANSITION_STRUCT.VBlank_DMA++;
return FALSE;
@@ -884,7 +882,7 @@ static bool8 Phase2_Transition_BigPokeball_Func4(struct Task* task)
task->data[4] += 8;
task->data[5] -= 256;
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
TRANSITION_STRUCT.VBlank_DMA++;
return FALSE;
@@ -896,7 +894,7 @@ static bool8 Phase2_Transition_BigPokeball_Func5(struct Task* task)
task->data[4] += 8;
task->data[5] -= 256;
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
if (task->data[5] <= 0)
{
@@ -921,7 +919,7 @@ static bool8 Phase2_Transition_BigPokeball_Func6(struct Task* task)
if (task->data[1] < 0)
task->data[1] = 0;
}
- sub_811D764(gUnknown_03004DE0[0], 120, 80, task->data[1]);
+ sub_811D764(gScanlineEffectRegBuffers[0], 120, 80, task->data[1]);
if (task->data[1] == 0)
{
DmaStop(0);
@@ -943,7 +941,7 @@ static void Transition_BigPokeball_Vblank(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
@@ -954,13 +952,13 @@ static void Transition_BigPokeball_Vblank(void)
static void VBlankCB0_Phase2_Transition_BigPokeball(void)
{
Transition_BigPokeball_Vblank();
- DmaSet(0, gUnknown_03005560, &REG_BG0HOFS, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_BG0HOFS, 0xA2400001);
}
static void VBlankCB1_Phase2_Transition_BigPokeball(void)
{
Transition_BigPokeball_Vblank();
- DmaSet(0, gUnknown_03005560, &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_Transition_PokeballsTrail(u8 taskID)
@@ -1078,7 +1076,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.WININ = 0;
TRANSITION_STRUCT.WINOUT = 63;
@@ -1087,7 +1085,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03005560[i] = 0xF3F4;
+ gScanlineEffectRegBuffers[1][i] = 0xF3F4;
}
SetVBlankCallback(VBlankCB_Phase2_Transition_Clockwise_BlackFade);
@@ -1104,7 +1102,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func2(struct Task* task)
sub_811D8FC(TRANSITION_STRUCT.data, 120, 80, TRANSITION_STRUCT.data[4], -1, 1, 1);
do
{
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] + 1) | 0x7800;
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] + 1) | 0x7800;
} while (!sub_811D978(TRANSITION_STRUCT.data, 1, 1));
TRANSITION_STRUCT.data[4] += 16;
@@ -1132,7 +1130,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func3(struct Task* task)
r1 = 120, r3 = TRANSITION_STRUCT.data[2] + 1;
if (TRANSITION_STRUCT.data[5] >= 80)
r1 = TRANSITION_STRUCT.data[2], r3 = 240;
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
if (var != 0)
break;
var = sub_811D978(TRANSITION_STRUCT.data, 1, 1);
@@ -1148,7 +1146,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func3(struct Task* task)
{
while (TRANSITION_STRUCT.data[3] < TRANSITION_STRUCT.data[5])
{
- gUnknown_03004DE0[0][++TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
+ gScanlineEffectRegBuffers[0][++TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
}
}
@@ -1163,7 +1161,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func4(struct Task* task)
sub_811D8FC(TRANSITION_STRUCT.data, 120, 80, TRANSITION_STRUCT.data[4], 160, 1, 1);
do
{
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] << 8) | 0xF0;
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] << 8) | 0xF0;
} while (!sub_811D978(TRANSITION_STRUCT.data, 1, 1));
TRANSITION_STRUCT.data[4] -= 16;
@@ -1188,10 +1186,10 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func5(struct Task* task)
while (1)
{
- r1 = gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] & 0xFF, r2 = TRANSITION_STRUCT.data[2];
+ r1 = gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] & 0xFF, r2 = TRANSITION_STRUCT.data[2];
if (TRANSITION_STRUCT.data[5] <= 80)
r2 = 120, r1 = TRANSITION_STRUCT.data[2];
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
r3 = 0;
if (var != 0)
break;
@@ -1208,7 +1206,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func5(struct Task* task)
{
while (TRANSITION_STRUCT.data[3] > TRANSITION_STRUCT.data[5])
{
- gUnknown_03004DE0[0][--TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][--TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
}
}
@@ -1228,7 +1226,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func6(struct Task* task)
r2 = 120, r3 = TRANSITION_STRUCT.data[2];
if (TRANSITION_STRUCT.data[2] >= 120)
r2 = 0, r3 = 240;
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r3) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r3) | (r2 << 8);
} while (!sub_811D978(TRANSITION_STRUCT.data, 1, 1));
@@ -1253,12 +1251,12 @@ static void VBlankCB_Phase2_Transition_Clockwise_BlackFade(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- REG_WIN0H = gUnknown_03004DE0[1][0];
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ REG_WIN0H = gScanlineEffectRegBuffers[1][0];
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_Transition_Ripple(u8 taskID)
@@ -1271,11 +1269,11 @@ static bool8 Phase2_Transition_Ripple_Func1(struct Task* task)
u8 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 160; i++)
{
- gUnknown_03005560[i] = TRANSITION_STRUCT.field_16;
+ gScanlineEffectRegBuffers[1][i] = TRANSITION_STRUCT.field_16;
}
SetVBlankCallback(VBlankCB_Phase2_Transition_Ripple);
@@ -1308,7 +1306,7 @@ static bool8 Phase2_Transition_Ripple_Func2(struct Task* task)
// todo: fix the asm
s16 var = r4 >> 8;
asm("");
- gUnknown_03004DE0[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
asm("");
}
@@ -1329,12 +1327,12 @@ static void VBlankCB_Phase2_Transition_Ripple(void)
{
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Transition_Ripple(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1VOFS = var;
REG_BG2VOFS = var;
REG_BG3VOFS = var;
@@ -1350,7 +1348,7 @@ static bool8 Phase2_Transition_Wave_Func1(struct Task* task)
u8 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.WININ = 63;
TRANSITION_STRUCT.WINOUT = 0;
@@ -1359,7 +1357,7 @@ static bool8 Phase2_Transition_Wave_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = 242;
+ gScanlineEffectRegBuffers[1][i] = 242;
}
SetVBlankCallback(VBlankCB_Phase2_Transition_Wave);
@@ -1375,7 +1373,7 @@ static bool8 Phase2_Transition_Wave_Func2(struct Task* task)
bool8 nextFunc;
TRANSITION_STRUCT.VBlank_DMA = 0;
- toStore = gUnknown_03004DE0[0];
+ toStore = gScanlineEffectRegBuffers[0];
r5 = task->data[2];
task->data[2] += 16;
task->data[1] += 8;
@@ -1411,11 +1409,11 @@ static void VBlankCB_Phase2_Transition_Wave(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
#define tMugshotOpponentID data[13]
@@ -1462,7 +1460,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task* task)
u8 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
Mugshots_CreateOpponentPlayerSprites(task);
task->data[1] = 0;
@@ -1474,7 +1472,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = 0xF0F1;
+ gScanlineEffectRegBuffers[1][i] = 0xF0F1;
}
SetVBlankCallback(VBlankCB0_Phase2_Mugshots);
@@ -1519,7 +1517,7 @@ static bool8 Phase2_Mugshot_Func3(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
- toStore = gUnknown_03004DE0[0];
+ toStore = gScanlineEffectRegBuffers[0];
r5 = task->data[1];
task->data[1] += 0x10;
@@ -1565,7 +1563,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
- for (i = 0, toStore = gUnknown_03004DE0[0]; i < 160; i++, toStore++)
+ for (i = 0, toStore = gScanlineEffectRegBuffers[0]; i < 160; i++, toStore++)
{
*toStore = 0xF0;
}
@@ -1608,8 +1606,8 @@ static bool8 Phase2_Mugshot_Func6(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
SetVBlankCallback(NULL);
DmaStop(0);
- memset(gUnknown_03004DE0[0], 0, 0x140);
- memset(gUnknown_03004DE0[1], 0, 0x140);
+ memset(gScanlineEffectRegBuffers[0], 0, 0x140);
+ memset(gScanlineEffectRegBuffers[1], 0, 0x140);
REG_WIN0H = 0xF0;
REG_BLDY = 0;
task->tState++;
@@ -1642,15 +1640,15 @@ static bool8 Phase2_Mugshot_Func7(struct Task* task)
{
s16 index1 = 0x50 - i;
s16 index2 = 0x50 + i;
- if (gUnknown_03004DE0[0][index1] <= 15)
+ if (gScanlineEffectRegBuffers[0][index1] <= 15)
{
r6 = TRUE;
- gUnknown_03004DE0[0][index1]++;
+ gScanlineEffectRegBuffers[0][index1]++;
}
- if (gUnknown_03004DE0[0][index2] <= 15)
+ if (gScanlineEffectRegBuffers[0][index2] <= 15)
{
r6 = TRUE;
- gUnknown_03004DE0[0][index2]++;
+ gScanlineEffectRegBuffers[0][index2]++;
}
}
}
@@ -1678,7 +1676,7 @@ static bool8 Phase2_Mugshot_Func9(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
task->data[3]++;
- memset(gUnknown_03004DE0[0], task->data[3], 0x140);
+ memset(gScanlineEffectRegBuffers[0], task->data[3], 0x140);
if (task->data[3] > 15)
task->tState++;
@@ -1699,12 +1697,12 @@ static void VBlankCB0_Phase2_Mugshots(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_BG0VOFS = TRANSITION_STRUCT.field_1C;
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void VBlankCB1_Phase2_Mugshots(void)
@@ -1712,9 +1710,9 @@ static void VBlankCB1_Phase2_Mugshots(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_BLDCNT = TRANSITION_STRUCT.BLDCNT;
- DmaSet(0, gUnknown_03004DE0[1], &REG_BLDY, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_BLDY, 0xA2400001);
}
static void HBlankCB_Phase2_Mugshots(void)
@@ -1846,7 +1844,7 @@ static bool8 Phase2_Transition_Slice_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
task->data[2] = 256;
task->data[3] = 1;
@@ -1856,8 +1854,8 @@ static bool8 Phase2_Transition_Slice_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = TRANSITION_STRUCT.field_14;
- gUnknown_03004DE0[1][160 + i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = TRANSITION_STRUCT.field_14;
+ gScanlineEffectRegBuffers[1][160 + i] = 0xF0;
}
REG_IE |= INTR_FLAG_HBLANK;
@@ -1886,8 +1884,8 @@ static bool8 Phase2_Transition_Slice_Func2(struct Task* task)
for (i = 0; i < 160; i++)
{
- u16* storeLoc1 = &gUnknown_03004DE0[0][i];
- u16* storeLoc2 = &gUnknown_03004DE0[0][i + 160];
+ u16* storeLoc1 = &gScanlineEffectRegBuffers[0][i];
+ u16* storeLoc2 = &gScanlineEffectRegBuffers[0][i + 160];
if (1 & i)
{
*storeLoc1 = TRANSITION_STRUCT.field_14 + task->data[1];
@@ -1923,13 +1921,13 @@ static void VBlankCB_Phase2_Transition_Slice(void)
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 640);
- DmaSet(0, &gUnknown_03004DE0[1][160], &REG_WIN0H, 0xA2400001);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640);
+ DmaSet(0, &gScanlineEffectRegBuffers[1][160], &REG_WIN0H, 0xA2400001);
}
static void HBlankCB_Phase2_Transition_Slice(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1HOFS = var;
REG_BG2HOFS = var;
REG_BG3HOFS = var;
@@ -1945,7 +1943,7 @@ static bool8 Phase2_Transition_WhiteFade_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.BLDCNT = 0xBF;
TRANSITION_STRUCT.BLDY = 0;
@@ -1955,8 +1953,8 @@ static bool8 Phase2_Transition_WhiteFade_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = 0;
- gUnknown_03004DE0[1][i + 160] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0;
+ gScanlineEffectRegBuffers[1][i + 160] = 0xF0;
}
REG_IE |= INTR_FLAG_HBLANK;
@@ -2038,8 +2036,8 @@ static void VBlankCB0_Phase2_Transition_WhiteFade(void)
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.field_6;
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 640);
- DmaSet(0, &gUnknown_03004DE0[1][160], &REG_WIN0H, 0xA2400001);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640);
+ DmaSet(0, &gScanlineEffectRegBuffers[1][160], &REG_WIN0H, 0xA2400001);
}
static void VBlankCB1_Phase2_Transition_WhiteFade(void)
@@ -2055,7 +2053,7 @@ static void VBlankCB1_Phase2_Transition_WhiteFade(void)
static void HBlankCB_Phase2_Transition_WhiteFade(void)
{
- REG_BLDY = gUnknown_03004DE0[1][REG_VCOUNT];
+ REG_BLDY = gScanlineEffectRegBuffers[1][REG_VCOUNT];
}
static void sub_811CFD0(struct Sprite* sprite)
@@ -2069,8 +2067,8 @@ static void sub_811CFD0(struct Sprite* sprite)
else
{
u16 i;
- u16* ptr1 = &gUnknown_03004DE0[0][sprite->pos1.y];
- u16* ptr2 = &gUnknown_03004DE0[0][sprite->pos1.y + 160];
+ u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->pos1.y];
+ u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->pos1.y + 160];
for (i = 0; i < 20; i++)
{
ptr1[i] = sprite->data[0] >> 8;
@@ -2160,7 +2158,7 @@ static bool8 Phase2_Transition_Shards_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.WININ = 0x3F;
TRANSITION_STRUCT.WINOUT = 0;
@@ -2168,10 +2166,10 @@ static bool8 Phase2_Transition_Shards_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
}
- CpuSet(gUnknown_03004DE0[0], gUnknown_03004DE0[1], 0xA0);
+ CpuSet(gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 0xA0);
SetVBlankCallback(VBlankCB_Phase2_Transition_Shards);
task->tState++;
@@ -2200,8 +2198,8 @@ static bool8 Phase2_Transition_Shards_Func3(struct Task* task)
for (i = 0, nextFunc = FALSE; i < 16; i++)
{
- s16 r3 = gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] >> 8;
- s16 r4 = gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] & 0xFF;
+ s16 r3 = gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] >> 8;
+ s16 r4 = gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] & 0xFF;
if (task->data[2] == 0)
{
if (r3 < TRANSITION_STRUCT.data[2])
@@ -2216,7 +2214,7 @@ static bool8 Phase2_Transition_Shards_Func3(struct Task* task)
if (r4 <= r3)
r4 = r3;
}
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r4) | (r3 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r4) | (r3 << 8);
if (nextFunc)
{
task->tState++;
@@ -2263,12 +2261,12 @@ static void VBlankCB_Phase2_Transition_Shards(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- REG_WIN0H = gUnknown_03004DE0[1][0];
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ REG_WIN0H = gScanlineEffectRegBuffers[1][0];
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void CreatePhase1Task(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4)
diff --git a/src/battle/battle_3.c b/src/battle/battle_util.c
index e5a730598..194a002d3 100644
--- a/src/battle/battle_3.c
+++ b/src/battle/battle_util.c
@@ -1,23 +1,30 @@
#include "global.h"
-#include "constants/abilities.h"
#include "battle.h"
-#include "constants/moves.h"
-#include "item.h"
-#include "constants/items.h"
+#include "battle_util.h"
+#include "data2.h"
#include "event_data.h"
-#include "constants/hold_effects.h"
-#include "constants/species.h"
-#include "constants/weather.h"
+#include "ewram.h"
+#include "field_weather.h"
+#include "item.h"
+#include "link.h"
#include "pokemon.h"
-#include "data2.h"
#include "random.h"
+#include "rom_8077ABC.h"
+#include "string_util.h"
#include "text.h"
+#include "util.h"
+#include "constants/abilities.h"
#include "constants/battle_move_effects.h"
-#include "string_util.h"
#include "constants/flags.h"
-#include "ewram.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
+#include "constants/weather.h"
+
+extern u8 gUnknown_02023A14_50;
-extern u8* gBattlescriptCurrInstr;
+extern const u8* gBattlescriptCurrInstr;
extern u8 gActiveBank;
extern u8 gBattleBufferB[4][0x200];
extern u8* gUnknown_02024C1C[4]; //battlescript location when you try to choose a move you're not allowed to
@@ -33,7 +40,7 @@ extern u8 gNoOfAllBanks;
extern u32 gStatuses3[4];
extern u8 gBankAttacker;
extern u8 gBankTarget;
-extern u8 gTurnOrder[4];
+extern u8 gBanksByTurnOrder[4];
extern u16 gSideAffecting[2];
extern u16 gBattleWeather;
extern void (*gBattleMainFunc)(void);
@@ -50,7 +57,7 @@ extern u8 gTakenDmgBanks[4];
extern u8 gBattleMoveFlags;
extern u8 gLastUsedAbility;
extern u8 gBattleTextBuff2[];
-extern u8 gFightStateTracker;
+extern u8 gCurrentActionFuncId;
extern struct BattleEnigmaBerry gEnigmaBerries[4];
extern u8 gUnknown_02024BE5;
extern u8 gCurrMovePos;
@@ -58,6 +65,7 @@ extern u16 gRandomMove;
extern s32 gBattleMoveDamage;
extern u16 gDynamicBasePower;
extern u32 gBattleExecBuffer;
+extern u8 gSentPokesToOpponent[2];
extern const u16 gSoundMovesTable[];
extern const u8 gStatusConditionString_PoisonJpn[];
extern const u8 gStatusConditionString_SleepJpn[];
@@ -69,26 +77,19 @@ extern const u8 gStatusConditionString_LoveJpn[];
extern const BattleCmdFunc gBattleScriptingCommandsTable[];
u8 IsImprisoned(u8 bank, u16 move);
-u8 GetBankByPlayerAI(u8 ID);
+u8 GetBankByIdentity(u8 ID);
u8 GetBankIdentity(u8 bank);
u8 GetBankSide(u8 bank);
-void b_call_bc_move_exec(u8* BS_ptr);
-bool8 sub_8015660(u8 bank); //check if a move failed
void SetMoveEffect(bool8 primary, u8 certainArg);
bool8 UproarWakeUpCheck(u8 bank);
bool8 sub_8018018(u8 bank, u8, u8);
-void sub_8015740(u8 bank);
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def);
u8 CountTrailingZeroBits(u32 a);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
-u8 weather_get_current(void);
-void b_push_move_exec(u8* BS_ptr);
void RecordAbilityBattle(u8 bank, u8 ability);
void RecordItemBattle(u8 bank, u8 holdEffect);
-void sub_8013F54(void);
-void sub_8013FBC(void);
s8 GetPokeFlavourRelation(u32 pid, u8 flavor);
extern u8 BattleScript_MoveSelectionDisabledMove[];
@@ -206,22 +207,271 @@ extern u8 gUnknown_081D99A0[]; //disobedient, hits itself
#define MULTISTRING_CHOOSER 0x5
#define MSG_DISPLAY 0x7
-void b_movescr_stack_push(u8* BS_ptr)
+u8 GetBattleBank(u8 caseId)
+{
+ u8 ret = 0;
+ switch (caseId)
+ {
+ case BS_GET_TARGET:
+ ret = gBankTarget;
+ break;
+ case BS_GET_ATTACKER:
+ ret = gBankAttacker;
+ break;
+ case BS_GET_EFFECT_BANK:
+ ret = gEffectBank;
+ break;
+ case BS_GET_BANK_0:
+ ret = 0;
+ break;
+ case BS_GET_SCRIPTING_BANK:
+ ret = ewram16003;
+ break;
+ case BS_GET_gBank1:
+ ret = gBank1;
+ break;
+ case 5:
+ ret = gBank1;
+ break;
+ }
+ return ret;
+}
+
+void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move)
+{
+ s32 i;
+
+ if (gBattleMons[bankDef].ability != ABILITY_PRESSURE)
+ return;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gBattleMons[bankAtk].moves[i] == move)
+ break;
+ }
+
+ if (i == 4) // mons don't share any moves
+ return;
+
+ if (gBattleMons[bankAtk].pp[i] != 0)
+ gBattleMons[bankAtk].pp[i]--;
+
+ if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i]))
+ {
+ gActiveBank = bankAtk;
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+}
+
+void PressurePPLoseOnUsingImprision(u8 bankAtk)
+{
+ s32 i, j;
+ s32 imprisionPos = 4;
+ u8 atkSide = GetBankSide(bankAtk);
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (gBattleMons[bankAtk].moves[j] == MOVE_IMPRISON)
+ break;
+ }
+ if (j != 4)
+ {
+ imprisionPos = j;
+ if (gBattleMons[bankAtk].pp[j] != 0)
+ gBattleMons[bankAtk].pp[j]--;
+ }
+ }
+ }
+
+ if (imprisionPos != 4
+ && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos]))
+ {
+ gActiveBank = bankAtk;
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBank].pp[imprisionPos]);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+}
+
+void PressurePPLoseOnUsingPerishSong(u8 bankAtk)
+{
+ s32 i, j;
+ s32 perishSongPos = 4;
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (gBattleMons[bankAtk].moves[j] == MOVE_PERISH_SONG)
+ break;
+ }
+ if (j != 4)
+ {
+ perishSongPos = j;
+ if (gBattleMons[bankAtk].pp[j] != 0)
+ gBattleMons[bankAtk].pp[j]--;
+ }
+ }
+ }
+
+ if (perishSongPos != 4
+ && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos]))
+ {
+ gActiveBank = bankAtk;
+ EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBank].pp[perishSongPos]);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+}
+
+
+void MarkAllBufferBanksForExecution(void) // unused
+{
+ s32 i;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ for (i = 0; i < gNoOfAllBanks; i++)
+ gBattleExecBuffer |= gBitTable[i] << 0x1C;
+ }
+ else
+ {
+ for (i = 0; i < gNoOfAllBanks; i++)
+ gBattleExecBuffer |= gBitTable[i];
+ }
+}
+
+void MarkBufferBankForExecution(u8 bank)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ gBattleExecBuffer |= gBitTable[bank] << 0x1C;
+ }
+ else
+ {
+ gBattleExecBuffer |= gBitTable[bank];
+ }
+}
+
+void sub_80155A4(u8 arg0)
+{
+ s32 i;
+
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ gBattleExecBuffer |= gBitTable[arg0] << (i << 2);
+
+ gBattleExecBuffer &= ~(0x10000000 << arg0);
+}
+
+void CancelMultiTurnMoves(u8 bank)
+{
+ gBattleMons[bank].status2 &= ~(STATUS2_MULTIPLETURNS);
+ gBattleMons[bank].status2 &= ~(STATUS2_LOCK_CONFUSE);
+ gBattleMons[bank].status2 &= ~(STATUS2_UPROAR);
+ gBattleMons[bank].status2 &= ~(STATUS2_BIDE);
+
+ gStatuses3[bank] &= ~(STATUS3_SEMI_INVULNERABLE);
+
+ gDisableStructs[bank].rolloutTimer1 = 0;
+ gDisableStructs[bank].furyCutterCounter = 0;
+}
+
+bool8 WasUnableToUseMove(u8 bank)
+{
+ if (gProtectStructs[bank].prlzImmobility
+ || gProtectStructs[bank].notEffective
+ || gProtectStructs[bank].usedImprisionedMove
+ || gProtectStructs[bank].loveImmobility
+ || gProtectStructs[bank].usedDisabledMove
+ || gProtectStructs[bank].usedTauntedMove
+ || gProtectStructs[bank].flag2Unknown
+ || gProtectStructs[bank].flinchImmobility
+ || gProtectStructs[bank].confusionSelfDmg)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void PrepareStringBattle(u16 stringId, u8 bank)
+{
+ gActiveBank = bank;
+ EmitPrintString(0, stringId);
+ MarkBufferBankForExecution(gActiveBank);
+}
+
+void ResetSentPokesToOpponentValue(void)
+{
+ s32 i;
+ u32 bits = 0;
+
+ gSentPokesToOpponent[0] = 0;
+ gSentPokesToOpponent[1] = 0;
+
+ for (i = 0; i < gNoOfAllBanks; i += 2)
+ bits |= gBitTable[gBattlePartyID[i]];
+
+ for (i = 1; i < gNoOfAllBanks; i += 2)
+ gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits;
+}
+
+void sub_8015740(u8 bank)
+{
+ s32 i = 0;
+ u32 bits = 0;
+
+ if (GetBankSide(bank) == SIDE_OPPONENT)
+ {
+ u8 id = ((bank & BIT_MON) >> 1);
+ gSentPokesToOpponent[id] = 0;
+
+ for (i = 0; i < gNoOfAllBanks; i += 2)
+ {
+ if (!(gAbsentBankFlags & gBitTable[i]))
+ bits |= gBitTable[gBattlePartyID[i]];
+ }
+
+ gSentPokesToOpponent[id] = bits;
+ }
+}
+
+void sub_80157C4(u8 bank)
+{
+ if (GetBankSide(bank) == SIDE_OPPONENT)
+ {
+ sub_8015740(bank);
+ }
+ else
+ {
+ s32 i;
+ for (i = 1; i < gNoOfAllBanks; i++)
+ gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]];
+ }
+}
+
+void BattleScriptPush(const u8* BS_ptr)
{
B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = BS_ptr;
}
-void b_movescr_stack_push_cursor(void)
+void BattleScriptPushCursor(void)
{
B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr;
}
-void b_movescr_stack_pop_cursor(void)
+void BattleScriptPop(void)
{
gBattlescriptCurrInstr = B_BATTLESCRIPTS_STACK->ptr[--B_BATTLESCRIPTS_STACK->size];
}
-u8 sub_8015894(void) //msg can't select a move
+u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move
{
u8 limitations = 0;
u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]];
@@ -229,7 +479,7 @@ u8 sub_8015894(void) //msg can't select a move
u16* choicedMove = CHOICED_MOVE(gActiveBank);
if (gDisableStructs[gActiveBank].disabledMove == move && move)
{
- BATTLE_STRUCT->scriptingActive = gActiveBank;
+ gBattleStruct->scriptingActive = gActiveBank;
gCurrentMove = move;
gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionDisabledMove;
limitations++;
@@ -320,9 +570,9 @@ bool8 AreAllMovesUnusable(void)
gProtectStructs[gActiveBank].onlyStruggle = 1;
gUnknown_02024C1C[gActiveBank] = BattleScript_NoMovesLeft;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- gBattleBufferB[gActiveBank][3] = GetBankByPlayerAI((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2));
+ gBattleBufferB[gActiveBank][3] = GetBankByIdentity((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2));
else
- gBattleBufferB[gActiveBank][3] = GetBankByPlayerAI(GetBankIdentity(gActiveBank) ^ 1);
+ gBattleBufferB[gActiveBank][3] = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ 1);
}
else
gProtectStructs[gActiveBank].onlyStruggle = 0;
@@ -367,36 +617,36 @@ u8 UpdateTurnCounters(void)
{
u8 sideBank;
- switch (BATTLE_STRUCT->turncountersTracker)
+ switch (gBattleStruct->turncountersTracker)
{
case 0:
for (i = 0; i < gNoOfAllBanks; i++)
{
- gTurnOrder[i] = i;
+ gBanksByTurnOrder[i] = i;
}
for (i = 0; i < gNoOfAllBanks - 1; i++)
{
s32 j;
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 0))
- sub_8012FBC(i, j);
+ if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0))
+ SwapTurnOrder(i, j);
}
}
- BATTLE_STRUCT->turncountersTracker++;
- BATTLE_STRUCT->turnSideTracker = 0;
+ gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnSideTracker = 0;
case 1:
- while (BATTLE_STRUCT->turnSideTracker < 2)
+ while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
+ gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker;
if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT)
{
- if (--gSideTimer[sideBank].reflectTimer == 0)
+ if (--gSideTimers[sideBank].reflectTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT;
- b_call_bc_move_exec(BattleScript_SideStatusWoreOff);
+ BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
gBattleTextBuff1[2] = MOVE_REFLECT;
@@ -405,26 +655,26 @@ u8 UpdateTurnCounters(void)
effect++;
}
}
- BATTLE_STRUCT->turnSideTracker++;
+ gBattleStruct->turnSideTracker++;
if (effect)
break;
}
if (!effect)
{
- BATTLE_STRUCT->turncountersTracker++;
- BATTLE_STRUCT->turnSideTracker = 0;
+ gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnSideTracker = 0;
}
break;
case 2:
- while (BATTLE_STRUCT->turnSideTracker < 2)
+ while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
+ gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker;
if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN)
{
- if (--gSideTimer[sideBank].lightscreenTimer == 0)
+ if (--gSideTimers[sideBank].lightscreenTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
- b_call_bc_move_exec(BattleScript_SideStatusWoreOff);
+ BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -434,24 +684,24 @@ u8 UpdateTurnCounters(void)
effect++;
}
}
- BATTLE_STRUCT->turnSideTracker++;
+ gBattleStruct->turnSideTracker++;
if (effect)
break;
}
if (!effect)
{
- BATTLE_STRUCT->turncountersTracker++;
- BATTLE_STRUCT->turnSideTracker = 0;
+ gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnSideTracker = 0;
}
break;
case 3:
- while (BATTLE_STRUCT->turnSideTracker < 2)
+ while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
- if (gSideTimer[sideBank].mistTimer && --gSideTimer[sideBank].mistTimer == 0)
+ gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker;
+ if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST;
- b_call_bc_move_exec(BattleScript_SideStatusWoreOff);
+ BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
@@ -460,56 +710,56 @@ u8 UpdateTurnCounters(void)
gBattleTextBuff1[4] = EOS;
effect++;
}
- BATTLE_STRUCT->turnSideTracker++;
+ gBattleStruct->turnSideTracker++;
if (effect)
break;
}
if (!effect)
{
- BATTLE_STRUCT->turncountersTracker++;
- BATTLE_STRUCT->turnSideTracker = 0;
+ gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnSideTracker = 0;
}
break;
case 4:
- while (BATTLE_STRUCT->turnSideTracker < 2)
+ while (gBattleStruct->turnSideTracker < 2)
{
- gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker;
+ gActiveBank = gBankAttacker = sideBank = gBattleStruct->turnSideTracker;
if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD)
{
- if (--gSideTimer[sideBank].safeguardTimer == 0)
+ if (--gSideTimers[sideBank].safeguardTimer == 0)
{
gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
- b_call_bc_move_exec(BattleScript_SafeguardEnds);
+ BattleScriptExecute(BattleScript_SafeguardEnds);
effect++;
}
}
- BATTLE_STRUCT->turnSideTracker++;
+ gBattleStruct->turnSideTracker++;
if (effect)
break;
}
if (!effect)
{
- BATTLE_STRUCT->turncountersTracker++;
- BATTLE_STRUCT->turnSideTracker = 0;
+ gBattleStruct->turncountersTracker++;
+ gBattleStruct->turnSideTracker = 0;
}
break;
case 5:
- while (BATTLE_STRUCT->turnSideTracker < gNoOfAllBanks)
+ while (gBattleStruct->turnSideTracker < gNoOfAllBanks)
{
- gActiveBank = gTurnOrder[BATTLE_STRUCT->turnSideTracker];
+ gActiveBank = gBanksByTurnOrder[gBattleStruct->turnSideTracker];
if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp)
{
gBankTarget = gActiveBank;
- b_call_bc_move_exec(BattleScript_WishComesTrue);
+ BattleScriptExecute(BattleScript_WishComesTrue);
effect++;
}
- BATTLE_STRUCT->turnSideTracker++;
+ gBattleStruct->turnSideTracker++;
if (effect)
break;
}
if (!effect)
{
- BATTLE_STRUCT->turncountersTracker++;
+ gBattleStruct->turncountersTracker++;
}
break;
case 6:
@@ -532,10 +782,10 @@ u8 UpdateTurnCounters(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- b_call_bc_move_exec(BattleScript_RainContinuesOrEnds);
+ BattleScriptExecute(BattleScript_RainContinuesOrEnds);
effect++;
}
- BATTLE_STRUCT->turncountersTracker++;
+ gBattleStruct->turncountersTracker++;
break;
case 7:
if (gBattleWeather & WEATHER_SANDSTORM_ANY)
@@ -548,12 +798,12 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
- BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
+ gBattleStruct->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- BATTLE_STRUCT->turncountersTracker++;
+ gBattleStruct->turncountersTracker++;
break;
case 8:
if (gBattleWeather & WEATHER_SUN_ANY)
@@ -566,10 +816,10 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = BattleScript_SunlightContinues;
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- BATTLE_STRUCT->turncountersTracker++;
+ gBattleStruct->turncountersTracker++;
break;
case 9:
if (gBattleWeather & WEATHER_HAIL)
@@ -582,12 +832,12 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues;
- BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES;
+ gBattleStruct->animArg1 = B_ANIM_HAIL_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- BATTLE_STRUCT->turncountersTracker++;
+ gBattleStruct->turncountersTracker++;
break;
case 10:
effect++;
@@ -604,16 +854,16 @@ u8 TurnBasedEffects(void)
u8 effect = 0;
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
- while (BATTLE_STRUCT->turnEffectsBank < gNoOfAllBanks && BATTLE_STRUCT->turnEffectsTracker <= TURNBASED_MAX_CASE)
+ while (gBattleStruct->turnEffectsBank < gNoOfAllBanks && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
{
- gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->turnEffectsBank];
+ gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank];
if (gAbsentBankFlags & gBitTable[gActiveBank])
{
- BATTLE_STRUCT->turnEffectsBank++;
+ gBattleStruct->turnEffectsBank++;
}
else
{
- switch (BATTLE_STRUCT->turnEffectsTracker)
+ switch (gBattleStruct->turnEffectsTracker)
{
case 0: // ingrain
if ((gStatuses3[gActiveBank] & STATUS3_ROOTED)
@@ -624,25 +874,25 @@ u8 TurnBasedEffects(void)
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
- b_call_bc_move_exec(BattleScript_IngrainTurnHeal);
+ BattleScriptExecute(BattleScript_IngrainTurnHeal);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 1: // end turn abilities
if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0))
effect++;
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 2: // item effects
if (ItemBattleEffects(1, gActiveBank, 0))
effect++;
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 18: // item effects again
if (ItemBattleEffects(1, gActiveBank, 1))
effect++;
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 3: // leech seed
if (gStatuses3[gActiveBank] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBank].hp != 0)
@@ -651,12 +901,12 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- BATTLE_STRUCT->animArg1 = gBankTarget;
- BATTLE_STRUCT->animArg2 = gBankAttacker;
- b_call_bc_move_exec(BattleScript_LeechSeedTurnDrain);
+ gBattleStruct->animArg1 = gBankTarget;
+ gBattleStruct->animArg2 = gBankAttacker;
+ BattleScriptExecute(BattleScript_LeechSeedTurnDrain);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 4: // poison
if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0)
@@ -664,10 +914,10 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_PoisonTurnDmg);
+ BattleScriptExecute(BattleScript_PoisonTurnDmg);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 5: // toxic poison
if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0)
@@ -678,10 +928,10 @@ u8 TurnBasedEffects(void)
if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns
gBattleMons[gActiveBank].status1 += 0x100;
gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8;
- b_call_bc_move_exec(BattleScript_PoisonTurnDmg);
+ BattleScriptExecute(BattleScript_PoisonTurnDmg);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 6: // burn
if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0)
@@ -689,10 +939,10 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_BurnTurnDmg);
+ BattleScriptExecute(BattleScript_BurnTurnDmg);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 7: // spooky nightmares
if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0)
@@ -701,10 +951,10 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_NightmareTurnDmg);
+ BattleScriptExecute(BattleScript_NightmareTurnDmg);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 8: // curse
if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0)
@@ -712,10 +962,10 @@ u8 TurnBasedEffects(void)
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_call_bc_move_exec(BattleScript_CurseTurnDmg);
+ BattleScriptExecute(BattleScript_CurseTurnDmg);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 9: // wrap
if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0)
@@ -723,8 +973,8 @@ u8 TurnBasedEffects(void)
gBattleMons[gActiveBank].status2 -= 0x2000;
if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap
{
- BATTLE_STRUCT->animArg1 = ewram16004arr(0, gActiveBank);
- BATTLE_STRUCT->animArg2 = ewram16004arr(1, gActiveBank);
+ gBattleStruct->animArg1 = ewram16004arr(0, gActiveBank);
+ gBattleStruct->animArg2 = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank);
@@ -744,10 +994,10 @@ u8 TurnBasedEffects(void)
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapEnds;
}
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
effect++;
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 10: // uproar
if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR)
@@ -760,9 +1010,9 @@ u8 TurnBasedEffects(void)
gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- b_call_bc_move_exec(BattleScript_MonWokeUpInUproar);
+ BattleScriptExecute(BattleScript_MonWokeUpInUproar);
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -776,7 +1026,7 @@ u8 TurnBasedEffects(void)
{
gBankAttacker = gActiveBank;
gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down
- if (sub_8015660(gActiveBank))
+ if (WasUnableToUseMove(gActiveBank))
{
CancelMultiTurnMoves(gActiveBank);
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -791,18 +1041,18 @@ u8 TurnBasedEffects(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
CancelMultiTurnMoves(gActiveBank);
}
- b_call_bc_move_exec(BattleScript_PrintUproarOverTurns);
+ BattleScriptExecute(BattleScript_PrintUproarOverTurns);
effect = 1;
}
}
if (effect != 2)
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 11: // thrash
if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE)
{
gBattleMons[gActiveBank].status2 -= 0x400;
- if (sub_8015660(gActiveBank))
+ if (WasUnableToUseMove(gActiveBank))
CancelMultiTurnMoves(gActiveBank);
else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE)
&& (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS))
@@ -813,12 +1063,12 @@ u8 TurnBasedEffects(void)
gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47;
SetMoveEffect(1, 0);
if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)
- b_call_bc_move_exec(BattleScript_ThrashConfuses);
+ BattleScriptExecute(BattleScript_ThrashConfuses);
effect++;
}
}
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 12: // disable
if (gDisableStructs[gActiveBank].disableTimer1 != 0)
@@ -837,11 +1087,11 @@ u8 TurnBasedEffects(void)
else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends
{
gDisableStructs[gActiveBank].disabledMove = 0;
- b_call_bc_move_exec(BattleScript_DisabledNoMore);
+ BattleScriptExecute(BattleScript_DisabledNoMore);
effect++;
}
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 13: // encore
if (gDisableStructs[gActiveBank].encoreTimer1 != 0)
@@ -856,26 +1106,26 @@ u8 TurnBasedEffects(void)
{
gDisableStructs[gActiveBank].encoredMove = 0;
gDisableStructs[gActiveBank].encoreTimer1 = 0;
- b_call_bc_move_exec(BattleScript_EncoredNoMore);
+ BattleScriptExecute(BattleScript_EncoredNoMore);
effect++;
}
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 14: // lock-on decrement
if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS)
gStatuses3[gActiveBank] -= 0x8;
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 15: // charge
if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0)
gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP;
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 16: // taunt
if (gDisableStructs[gActiveBank].tauntTimer1)
gDisableStructs[gActiveBank].tauntTimer1--;
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 17: // yawn
if (gStatuses3[gActiveBank] & STATUS3_YAWN)
@@ -887,18 +1137,18 @@ u8 TurnBasedEffects(void)
{
CancelMultiTurnMoves(gActiveBank);
gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
gEffectBank = gActiveBank;
- b_call_bc_move_exec(BattleScript_YawnMakesAsleep);
+ BattleScriptExecute(BattleScript_YawnMakesAsleep);
effect++;
}
}
- BATTLE_STRUCT->turnEffectsTracker++;
+ gBattleStruct->turnEffectsTracker++;
break;
case 19: // done
- BATTLE_STRUCT->turnEffectsTracker = 0;
- BATTLE_STRUCT->turnEffectsBank++;
+ gBattleStruct->turnEffectsTracker = 0;
+ gBattleStruct->turnEffectsBank++;
break;
}
if (effect != 0)
@@ -909,20 +1159,20 @@ u8 TurnBasedEffects(void)
return 0;
}
-bool8 sub_80170DC(void) // handle future sight and perish song
+bool8 HandleWishPerishSongOnTurnEnd(void)
{
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
- switch (BATTLE_STRUCT->sub80170DC_Tracker)
+ switch (gBattleStruct->sub80170DC_Tracker)
{
case 0: // future sight
- while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks)
+ while (gBattleStruct->sub80170DC_Bank < gNoOfAllBanks)
{
- gActiveBank = BATTLE_STRUCT->sub80170DC_Bank;
+ gActiveBank = gBattleStruct->sub80170DC_Bank;
if (gAbsentBankFlags & gBitTable[gActiveBank])
- BATTLE_STRUCT->sub80170DC_Bank++;
+ gBattleStruct->sub80170DC_Bank++;
else
{
- BATTLE_STRUCT->sub80170DC_Bank++;
+ gBattleStruct->sub80170DC_Bank++;
if (gWishFutureKnock.futureSightCounter[gActiveBank] && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp)
{
if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT)
@@ -938,22 +1188,22 @@ bool8 sub_80170DC(void) // handle future sight and perish song
gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank];
gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank];
gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF;
- b_call_bc_move_exec(BattleScript_MonTookFutureAttack);
+ BattleScriptExecute(BattleScript_MonTookFutureAttack);
return 1;
}
}
}
- BATTLE_STRUCT->sub80170DC_Tracker = 1;
- BATTLE_STRUCT->sub80170DC_Bank = 0;
+ gBattleStruct->sub80170DC_Tracker = 1;
+ gBattleStruct->sub80170DC_Bank = 0;
case 1: // perish song
- while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks)
+ while (gBattleStruct->sub80170DC_Bank < gNoOfAllBanks)
{
- gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->sub80170DC_Bank];
+ gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->sub80170DC_Bank];
if (gAbsentBankFlags & gBitTable[gActiveBank])
- BATTLE_STRUCT->sub80170DC_Bank++;
+ gBattleStruct->sub80170DC_Bank++;
else
{
- BATTLE_STRUCT->sub80170DC_Bank++;
+ gBattleStruct->sub80170DC_Bank++;
if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG)
{
gBattleTextBuff1[0] = 0xFD;
@@ -973,7 +1223,7 @@ bool8 sub_80170DC(void) // handle future sight and perish song
gDisableStructs[gActiveBank].perishSong1--;
gBattlescriptCurrInstr = BattleScript_PerishSongTimerGoesDown;
}
- b_call_bc_move_exec(gBattlescriptCurrInstr);
+ BattleScriptExecute(gBattlescriptCurrInstr);
return 1;
}
}
@@ -984,20 +1234,20 @@ bool8 sub_80170DC(void) // handle future sight and perish song
return 0;
}
-#define sub_80173A4_MAX_CASE 7
+#define HandleFaintedMonActions_MAX_CASE 7
-bool8 sub_80173A4(void)
+bool8 HandleFaintedMonActions(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
return 0;
do
{
int i;
- switch (BATTLE_STRUCT->sub80173A4_Tracker)
+ switch (gBattleStruct->sub80173A4_Tracker)
{
case 0:
- BATTLE_STRUCT->unk1605A = 0;
- BATTLE_STRUCT->sub80173A4_Tracker++;
+ gBattleStruct->unk1605A = 0;
+ gBattleStruct->sub80173A4_Tracker++;
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gAbsentBankFlags & gBitTable[i] && !sub_8018018(i, 6, 6))
@@ -1006,58 +1256,58 @@ bool8 sub_80173A4(void)
case 1:
do
{
- gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A;
- if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(BATTLE_STRUCT->unk16113 & gBitTable[gBattlePartyID[BATTLE_STRUCT->unk1605A]]) && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A]))
+ gBank1 = gBankTarget = gBattleStruct->unk1605A;
+ if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlePartyID[gBattleStruct->unk1605A]]) && !(gAbsentBankFlags & gBitTable[gBattleStruct->unk1605A]))
{
- b_call_bc_move_exec(BattleScript_GiveExp);
- BATTLE_STRUCT->sub80173A4_Tracker = 2;
+ BattleScriptExecute(BattleScript_GiveExp);
+ gBattleStruct->sub80173A4_Tracker = 2;
return 1;
}
- } while (++BATTLE_STRUCT->unk1605A != gNoOfAllBanks);
- BATTLE_STRUCT->sub80173A4_Tracker = 3;
+ } while (++gBattleStruct->unk1605A != gNoOfAllBanks);
+ gBattleStruct->sub80173A4_Tracker = 3;
break;
case 2:
sub_8015740(gBank1);
- if (++BATTLE_STRUCT->unk1605A == gNoOfAllBanks)
- BATTLE_STRUCT->sub80173A4_Tracker = 3;
+ if (++gBattleStruct->unk1605A == gNoOfAllBanks)
+ gBattleStruct->sub80173A4_Tracker = 3;
else
- BATTLE_STRUCT->sub80173A4_Tracker = 1;
+ gBattleStruct->sub80173A4_Tracker = 1;
break;
case 3:
- BATTLE_STRUCT->unk1605A = 0;
- BATTLE_STRUCT->sub80173A4_Tracker++;
+ gBattleStruct->unk1605A = 0;
+ gBattleStruct->sub80173A4_Tracker++;
case 4:
do
{
- gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; //or should banks be switched?
- if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A]))
+ gBank1 = gBankTarget = gBattleStruct->unk1605A; //or should banks be switched?
+ if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[gBattleStruct->unk1605A]))
{
- b_call_bc_move_exec(BattleScript_HandleFaintedMon);
- BATTLE_STRUCT->sub80173A4_Tracker = 5;
+ BattleScriptExecute(BattleScript_HandleFaintedMon);
+ gBattleStruct->sub80173A4_Tracker = 5;
return 1;
}
- } while (++BATTLE_STRUCT->unk1605A != gNoOfAllBanks);
- BATTLE_STRUCT->sub80173A4_Tracker = 6;
+ } while (++gBattleStruct->unk1605A != gNoOfAllBanks);
+ gBattleStruct->sub80173A4_Tracker = 6;
break;
case 5:
- if (++BATTLE_STRUCT->unk1605A == gNoOfAllBanks)
- BATTLE_STRUCT->sub80173A4_Tracker = 6;
+ if (++gBattleStruct->unk1605A == gNoOfAllBanks)
+ gBattleStruct->sub80173A4_Tracker = 6;
else
- BATTLE_STRUCT->sub80173A4_Tracker = 4;
+ gBattleStruct->sub80173A4_Tracker = 4;
break;
case 6:
if (AbilityBattleEffects(9, 0, 0, 0, 0) || AbilityBattleEffects(0xB, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(6, 0, 0, 0, 0))
return 1;
- BATTLE_STRUCT->sub80173A4_Tracker++;
+ gBattleStruct->sub80173A4_Tracker++;
break;
case 7:
break;
}
- } while (BATTLE_STRUCT->sub80173A4_Tracker != sub_80173A4_MAX_CASE);
+ } while (gBattleStruct->sub80173A4_Tracker != HandleFaintedMonActions_MAX_CASE);
return 0;
}
-void b_clear_atk_up_if_hit_flag_unless_enraged(void)
+void TryClearRageStatuses(void)
{
int i;
for (i = 0; i < gNoOfAllBanks; i++)
@@ -1072,15 +1322,15 @@ void b_clear_atk_up_if_hit_flag_unless_enraged(void)
u8 AtkCanceller_UnableToUseMove(void)
{
u8 effect = 0;
- s32* bideDmg = &BATTLE_STRUCT->bideDmg;
+ s32* bideDmg = &gBattleStruct->bideDmg;
do
{
- switch (BATTLE_STRUCT->atkCancellerTracker)
+ switch (gBattleStruct->atkCancellerTracker)
{
case 0: // flags clear
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND);
gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE);
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 1: // check being asleep
if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP)
@@ -1089,7 +1339,7 @@ u8 AtkCanceller_UnableToUseMove(void)
{
gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2;
@@ -1117,14 +1367,14 @@ u8 AtkCanceller_UnableToUseMove(void)
else
{
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
effect = 2;
}
}
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 2: // check being frozen
if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE)
@@ -1138,20 +1388,20 @@ u8 AtkCanceller_UnableToUseMove(void)
}
else
{
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
}
}
else // unfreeze
{
gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
effect = 2;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 3: // truant
if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter)
@@ -1163,7 +1413,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleMoveFlags |= MOVESTATUS_MISSED;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 4: // recharge
if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE)
@@ -1175,7 +1425,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 5: // flinch
if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED)
@@ -1187,19 +1437,19 @@ u8 AtkCanceller_UnableToUseMove(void)
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 6: // disabled move
if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0)
{
gProtectStructs[gBankAttacker].usedDisabledMove = 1;
- BATTLE_STRUCT->scriptingActive = gBankAttacker;
+ gBattleStruct->scriptingActive = gBankAttacker;
CancelMultiTurnMoves(gBankAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 7: // taunt
if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0)
@@ -1210,7 +1460,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 8: // imprisoned
if (IsImprisoned(gBankAttacker, gCurrentMove))
@@ -1221,7 +1471,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 9: // confusion
if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION)
@@ -1232,7 +1482,7 @@ u8 AtkCanceller_UnableToUseMove(void)
if (Random() & 1)
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
}
else // confusion dmg
{
@@ -1246,12 +1496,12 @@ u8 AtkCanceller_UnableToUseMove(void)
}
else // snapped out of confusion
{
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfusedNoMore;
}
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 10: // paralysis
if (gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS && (Random() % 4) == 0)
@@ -1262,17 +1512,17 @@ u8 AtkCanceller_UnableToUseMove(void)
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 11: // infatuation
if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
{
- BATTLE_STRUCT->scriptingActive = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
+ gBattleStruct->scriptingActive = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
if (Random() & 1)
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
else
{
- b_movescr_stack_push(BattleScript_MoveUsedIsParalyzedCantAttack);
+ BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack);
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
gProtectStructs[gBankAttacker].loveImmobility = 1;
CancelMultiTurnMoves(gBankAttacker);
@@ -1280,7 +1530,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove;
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 12: // bide
if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE)
@@ -1305,7 +1555,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
effect = 1;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 13: // move thawing
if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE)
@@ -1313,24 +1563,24 @@ u8 AtkCanceller_UnableToUseMove(void)
if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT)
{
gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
effect = 2;
}
- BATTLE_STRUCT->atkCancellerTracker++;
+ gBattleStruct->atkCancellerTracker++;
break;
case 14: // last case
break;
}
- } while (BATTLE_STRUCT->atkCancellerTracker != ATKCANCELLER_MAX_CASE && effect == 0);
+ } while (gBattleStruct->atkCancellerTracker != ATKCANCELLER_MAX_CASE && effect == 0);
if (effect == 2)
{
gActiveBank = gBankAttacker;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
}
return effect;
@@ -1363,14 +1613,14 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2)
{
if (GetBankSide(bank) == 1)
{
- r7 = GetBankByPlayerAI(1);
- r6 = GetBankByPlayerAI(3);
+ r7 = GetBankByIdentity(1);
+ r6 = GetBankByIdentity(3);
party = gEnemyParty;
}
else
{
- r7 = GetBankByPlayerAI(0);
- r6 = GetBankByPlayerAI(2);
+ r7 = GetBankByIdentity(0);
+ r6 = GetBankByIdentity(2);
party = gPlayerParty;
}
if (r1 == 6)
@@ -1483,23 +1733,20 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
else
move = gCurrentMove;
- if (BATTLE_STRUCT->dynamicMoveType)
- moveType = BATTLE_STRUCT->dynamicMoveType & 0x3F;
+ if (gBattleStruct->dynamicMoveType)
+ moveType = gBattleStruct->dynamicMoveType & 0x3F;
else
moveType = gBattleMoves[move].type;
- //_080184AC
switch (caseID)
{
case ABILITYEFFECT_ON_SWITCHIN: // 0
- //_08018518
if (gBankAttacker >= gNoOfAllBanks)
gBankAttacker = bank;
switch (gLastUsedAbility)
{
case 0xFF: //weather from overworld
- //_08018586
- switch (weather_get_current())
+ switch (GetCurrentWeather())
{
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
@@ -1507,8 +1754,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_RAIN_ANY))
{
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
- BATTLE_STRUCT->animArg1 = B_ANIM_RAIN_CONTINUES;
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->animArg1 = B_ANIM_RAIN_CONTINUES;
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
@@ -1516,8 +1763,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
- BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
@@ -1525,50 +1772,46 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_SUN_ANY))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
- BATTLE_STRUCT->animArg1 = B_ANIM_SUN_CONTINUES;
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->animArg1 = B_ANIM_SUN_CONTINUES;
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
}
if (effect)
{
- gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current();
- b_push_move_exec(BattleScript_OverworldWeatherStarts);
+ gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather();
+ BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts);
}
break;
case ABILITY_DRIZZLE:
- //_08018680
if (!(gBattleWeather & WEATHER_RAIN_PERMANENT))
{
gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY);
- b_push_move_exec(BattleScript_DrizzleActivates);
- BATTLE_STRUCT->scriptingActive = bank;
+ BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates);
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
case ABILITY_SAND_STREAM:
- //_080186B8
if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
- b_push_move_exec(BattleScript_SandstreamActivates);
- BATTLE_STRUCT->scriptingActive = bank;
+ BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates);
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
case ABILITY_DROUGHT:
- //_080186F0
if (!(gBattleWeather & WEATHER_SUN_PERMANENT))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
- b_push_move_exec(BattleScript_DroughtActivates);
- BATTLE_STRUCT->scriptingActive = bank;
+ BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates);
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
case ABILITY_INTIMIDATE:
- //_08018728
if (!(gSpecialStatuses[bank].intimidatedPoke))
{
gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES;
@@ -1576,17 +1819,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_FORECAST:
- //_0801875C
effect = CastformDataTypeChange(bank);
if (effect != 0)
{
- b_push_move_exec(BattleScript_CastformChange);
- BATTLE_STRUCT->scriptingActive = bank;
- BATTLE_STRUCT->castformToChangeInto = effect - 1;
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
+ gBattleStruct->scriptingActive = bank;
+ gBattleStruct->castformToChangeInto = effect - 1;
}
break;
case ABILITY_TRACE:
- //_080187A0
if (!(gSpecialStatuses[bank].traced))
{
gStatuses3[bank] |= STATUS3_TRACE;
@@ -1595,7 +1836,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
break;
case ABILITY_CLOUD_NINE:
case ABILITY_AIR_LOCK:
- //_080187DC
{
// that's a weird choice for a variable, why not use i or bank?
for (target1 = 0; target1 < gNoOfAllBanks; target1++)
@@ -1603,9 +1843,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
effect = CastformDataTypeChange(target1);
if (effect != 0)
{
- b_push_move_exec(BattleScript_CastformChange);
- BATTLE_STRUCT->scriptingActive = target1;
- BATTLE_STRUCT->castformToChangeInto = effect - 1;
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
+ gBattleStruct->scriptingActive = target1;
+ gBattleStruct->castformToChangeInto = effect - 1;
break;
}
}
@@ -1614,7 +1854,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_ENDTURN: // 1
- //_08018814
if (gBattleMons[bank].hp != 0)
{
gBankAttacker = bank;
@@ -1625,7 +1864,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
&& gBattleMons[bank].maxHP > gBattleMons[bank].hp)
{
gLastUsedAbility = ABILITY_RAIN_DISH; // why
- b_push_move_exec(BattleScript_RainDishActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates);
gBattleMoveDamage = gBattleMons[bank].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -1649,9 +1888,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleMons[bank].status1 = 0;
// BUG: The nightmare status does not get cleared here. This was fixed in Emerald.
//gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
- BATTLE_STRUCT->scriptingActive = gActiveBank = bank;
- b_push_move_exec(BattleScript_ShedSkinActivates);
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
+ gBattleStruct->scriptingActive = gActiveBank = bank;
+ BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
MarkBufferBankForExecution(gActiveBank);
effect++;
}
@@ -1660,10 +1899,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2)
{
gBattleMons[bank].statStages[STAT_STAGE_SPEED]++;
- BATTLE_STRUCT->animArg1 = 0x11;
- BATTLE_STRUCT->animArg2 = 0;
- b_push_move_exec(BattleScript_SpeedBoostActivates);
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->animArg1 = 0x11;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates);
+ gBattleStruct->scriptingActive = bank;
effect++;
}
break;
@@ -1674,7 +1913,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_MOVES_BLOCK: // 2
- //_08018A40
if (gLastUsedAbility == ABILITY_SOUNDPROOF)
{
for (i = 0; gSoundMovesTable[i] != 0xFFFF; i++)
@@ -1692,7 +1930,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_ABSORBING: // 3
- //_08018AD8
if (move)
{
switch (gLastUsedAbility)
@@ -1762,11 +1999,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CONTACT: // 4
- //_08018CF0
switch (gLastUsedAbility)
{
case ABILITY_COLOR_CHANGE:
- //_08018DCC
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
&& move != MOVE_STRUGGLE
&& gBattleMoves[move].power != 0
@@ -1781,13 +2016,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleTextBuff1[1] = 3;
gBattleTextBuff1[2] = moveType;
gBattleTextBuff1[3] = 0xFF;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ColorChangeActivates;
effect++;
}
break;
case ABILITY_ROUGH_SKIN:
- //_08018E94
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
&& gBattleMons[gBankAttacker].hp != 0
&& !gProtectStructs[gBankAttacker].confusionSelfDmg
@@ -1797,106 +2031,201 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_RoughSkinActivates;
effect++;
}
break;
case ABILITY_EFFECT_SPORE:
- //_08018F54
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (Random() % 10) == 0)
- {
- do
- {
- gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3;
- } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0);
- if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
- gBattleCommunication[MOVE_EFFECT_BYTE] += 2;
- gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40;
- b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
- gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
- effect++;
- }
+ if (DEBUG && (gUnknown_02023A14_50 & 4))
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT))
+ {
+ do
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3;
+ } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0);
+ if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
+ gBattleCommunication[MOVE_EFFECT_BYTE] += 2;
+ gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
+ else
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (Random() % 10) == 0)
+ {
+ do
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3;
+ } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0);
+ if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
+ gBattleCommunication[MOVE_EFFECT_BYTE] += 2;
+ gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
break;
case ABILITY_POISON_POINT:
- //_0801904C
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (Random() % 3) == 0)
- {
- gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42;
- b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
- gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
- effect++;
- }
+ if (DEBUG && (gUnknown_02023A14_50 & 4))
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT))
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
+ else
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (Random() % 3) == 0)
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
break;
case ABILITY_STATIC:
- //_08019128
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (Random() % 3) == 0)
- {
- gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45;
- b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
- gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
- effect++;
- }
+ if (DEBUG && (gUnknown_02023A14_50 & 4))
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT))
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
+ else
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (Random() % 3) == 0)
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
break;
case ABILITY_FLAME_BODY:
- //_08019204
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && (Random() % 3) == 0)
- {
- gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43;
- b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
- gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
- effect++;
- }
+ if (DEBUG && (gUnknown_02023A14_50 & 4))
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special))
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
+ else
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (Random() % 3) == 0)
+ {
+ gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43;
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect;
+ gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
+ effect++;
+ }
+ }
break;
case ABILITY_CUTE_CHARM:
- //_080192E0
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && gBattleMons[gBankTarget].hp != 0
- && (Random() % 3) == 0
- && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS
- && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef)
- && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
- && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF
- && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF)
- {
- gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10);
- b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BattleScript_CuteCharmActivates;
- effect++;
- }
+ if (DEBUG && (gUnknown_02023A14_50 & 4))
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && gBattleMons[gBankTarget].hp != 0
+ && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS
+ && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef)
+ && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
+ && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF
+ && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF)
+ {
+ gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10);
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_CuteCharmActivates;
+ effect++;
+ }
+ }
+ else
+ {
+ if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ && gBattleMons[gBankAttacker].hp != 0
+ && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
+ && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && gBattleMons[gBankTarget].hp != 0
+ && (Random() % 3) == 0
+ && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS
+ && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef)
+ && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
+ && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF
+ && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF)
+ {
+ gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10);
+ BattleScriptPushCursor();
+ gBattlescriptCurrInstr = BattleScript_CuteCharmActivates;
+ effect++;
+ }
+ }
break;
}
break;
case ABILITYEFFECT_IMMUNITY: // 5
- //_08019448
{
for (bank = 0; bank < gNoOfAllBanks; bank++)
{
@@ -1968,11 +2297,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
break;
}
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus;
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->scriptingActive = bank;
gActiveBank = bank;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
return effect;
}
@@ -1980,7 +2309,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_FORECAST: // 6
- //_080197B4
{
for (bank = 0; bank < gNoOfAllBanks; bank++)
{
@@ -1989,9 +2317,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
effect = CastformDataTypeChange(bank);
if (effect)
{
- b_push_move_exec(BattleScript_CastformChange);
- BATTLE_STRUCT->scriptingActive = bank;
- BATTLE_STRUCT->castformToChangeInto = effect - 1;
+ BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
+ gBattleStruct->scriptingActive = bank;
+ gBattleStruct->castformToChangeInto = effect - 1;
return effect;
}
}
@@ -1999,76 +2327,70 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_SYNCHRONIZE: // 7
- //_08019804
if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT))
{
gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT);
- BATTLE_STRUCT->synchroniseEffect &= 0x3F;
- if (BATTLE_STRUCT->synchroniseEffect == 6)
- BATTLE_STRUCT->synchroniseEffect = 2;
- gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect + 0x40;
- BATTLE_STRUCT->scriptingActive = gBankTarget;
- b_movescr_stack_push_cursor();
+ gBattleStruct->synchroniseEffect &= 0x3F;
+ if (gBattleStruct->synchroniseEffect == 6)
+ gBattleStruct->synchroniseEffect = 2;
+ gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchroniseEffect + 0x40;
+ gBattleStruct->scriptingActive = gBankTarget;
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
}
break;
case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8
- //_08019880
if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT))
{
gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT);
- BATTLE_STRUCT->synchroniseEffect &= 0x3F;
- if (BATTLE_STRUCT->synchroniseEffect == 6)
- BATTLE_STRUCT->synchroniseEffect = 2;
- gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect;
- BATTLE_STRUCT->scriptingActive = gBankAttacker;
- b_movescr_stack_push_cursor();
+ gBattleStruct->synchroniseEffect &= 0x3F;
+ if (gBattleStruct->synchroniseEffect == 6)
+ gBattleStruct->synchroniseEffect = 2;
+ gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchroniseEffect;
+ gBattleStruct->scriptingActive = gBankAttacker;
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
effect++;
}
break;
case ABILITYEFFECT_INTIMIDATE1: // 9
- //_080198FC
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES)
{
gLastUsedAbility = ABILITY_INTIMIDATE;
gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES);
- b_push_move_exec(gUnknown_081D978C);
- BATTLE_STRUCT->intimidateBank = i;
+ BattleScriptPushCursorAndCallback(gUnknown_081D978C);
+ gBattleStruct->intimidateBank = i;
effect++;
break;
}
}
break;
case ABILITYEFFECT_TRACE: // 11
- //_08019940
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
{
u8 target2;
side = (GetBankIdentity(i) ^ 1) & 1;
- target1 = GetBankByPlayerAI(side);
- target2 = GetBankByPlayerAI(side + 2);
+ target1 = GetBankByIdentity(side);
+ target2 = GetBankByIdentity(side + 2);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0
&& gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
{
- //_080199AE
- gActiveBank = GetBankByPlayerAI(((Random() & 1) * 2) | side);
+ gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side);
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
effect++;
}
else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0)
{
- //_08019A34
gActiveBank = target1;
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
@@ -2076,7 +2398,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
{
- //_08019A78
gActiveBank = target2;
gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
gLastUsedAbility = gBattleMons[gActiveBank].ability;
@@ -2084,7 +2405,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
}
else
- //_08019ABC
{
gActiveBank = target1;
if (gBattleMons[target1].ability && gBattleMons[target1].hp)
@@ -2096,9 +2416,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
if (effect)
{
- b_push_move_exec(BattleScript_TraceActivates);
+ BattleScriptPushCursorAndCallback(BattleScript_TraceActivates);
gStatuses3[i] &= ~(STATUS3_TRACE);
- BATTLE_STRUCT->scriptingActive = i;
+ gBattleStruct->scriptingActive = i;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 4;
@@ -2116,23 +2436,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_INTIMIDATE2: // 10
- //_08019B1C
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES))
{
gLastUsedAbility = ABILITY_INTIMIDATE;
gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = gUnknown_081D9795;
- BATTLE_STRUCT->intimidateBank = i;
+ gBattleStruct->intimidateBank = i;
effect++;
break;
}
}
break;
case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12
- //_08019B60
side = GetBankSide(bank);
for (i = 0; i < gNoOfAllBanks; i++)
{
@@ -2144,7 +2462,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_BANK_SIDE: // 13
- //_08019BBC
side = GetBankSide(bank);
for (i = 0; i < gNoOfAllBanks; i++)
{
@@ -2156,7 +2473,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_FIELD_SPORT: // 14
- //_08019C18
switch (gLastUsedAbility)
{
case 0xFD:
@@ -2186,7 +2502,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_ON_FIELD: // 19
- //_08019CD4
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0)
@@ -2197,7 +2512,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15
- //_08019D18
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleMons[i].ability == ability && i != bank)
@@ -2208,7 +2522,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_COUNT_OTHER_SIZE: // 16
- //_08019D5C
side = GetBankSide(bank);
for (i = 0; i < gNoOfAllBanks; i++)
{
@@ -2220,7 +2533,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_COUNT_BANK_SIDE: // 17
- //_08019DB8
side = GetBankSide(bank);
for (i = 0; i < gNoOfAllBanks; i++)
{
@@ -2232,7 +2544,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_COUNT_ON_FIELD: // 18
- //_08019F44
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleMons[i].ability == ability && i != bank)
@@ -2243,7 +2554,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
}
- //_08019F76
if (effect && caseID < 0xC && gLastUsedAbility != 0xFF)
RecordAbilityBattle(bank, gLastUsedAbility);
}
@@ -2251,20 +2561,20 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
return effect;
}
-void b_call_bc_move_exec(u8* BS_ptr)
+void BattleScriptExecute(const u8* BS_ptr)
{
gBattlescriptCurrInstr = BS_ptr;
B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc;
- gBattleMainFunc = sub_8013F54;
- gFightStateTracker = 0;
+ gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack;
+ gCurrentActionFuncId = 0;
}
-void b_push_move_exec(u8* BS_ptr)
+void BattleScriptPushCursorAndCallback(u8* BS_ptr)
{
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BS_ptr;
B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc;
- gBattleMainFunc = sub_8013FBC;
+ gBattleMainFunc = RunBattleScriptCommands;
}
enum
@@ -2338,7 +2648,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
switch (bankHoldEffect)
{
case HOLD_EFFECT_DOUBLE_PRIZE:
- BATTLE_STRUCT->moneyMultiplier = 2;
+ gBattleStruct->moneyMultiplier = 2;
break;
case HOLD_EFFECT_RESTORE_STATS:
for (i = 0; i < 8; i++)
@@ -2351,10 +2661,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->scriptingActive = bank;
gStringBank = bank;
gActiveBank = gBankAttacker = bank;
- b_call_bc_move_exec(BattleScript_WhiteHerbEnd2);
+ BattleScriptExecute(BattleScript_WhiteHerbEnd2);
}
break;
}
@@ -2371,7 +2681,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].hp + bankQuality > gBattleMons[bank].maxHP)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = 4;
}
break;
@@ -2406,8 +2716,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff1[2] = move;
gBattleTextBuff1[3] = move >> 8;
gBattleTextBuff1[4] = 0xFF;
- b_call_bc_move_exec(BattleScript_BerryPPHealEnd2);
- EmitSetAttributes(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
+ BattleScriptExecute(BattleScript_BerryPPHealEnd2);
+ EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
MarkBufferBankForExecution(gActiveBank);
effect = ITEM_PP_CHANGE;
}
@@ -2424,10 +2734,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->scriptingActive = bank;
gStringBank = bank;
gActiveBank = gBankAttacker = bank;
- b_call_bc_move_exec(BattleScript_WhiteHerbEnd2);
+ BattleScriptExecute(BattleScript_WhiteHerbEnd2);
}
break;
case HOLD_EFFECT_LEFTOVERS:
@@ -2439,7 +2749,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
- b_call_bc_move_exec(BattleScript_ItemHealHP_End2);
+ BattleScriptExecute(BattleScript_ItemHealHP_End2);
effect = ITEM_HP_CHANGE;
RecordItemBattle(bank, bankHoldEffect);
}
@@ -2459,9 +2769,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SPICY) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2479,9 +2789,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_DRY) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2499,9 +2809,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SWEET) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2519,9 +2829,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_BITTER) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2539,9 +2849,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp;
gBattleMoveDamage *= -1;
if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SOUR) < 0)
- b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2);
+ BattleScriptExecute(BattleScript_BerryConfuseHealEnd2);
else
- b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem);
+ BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem);
effect = ITEM_HP_CHANGE;
}
break;
@@ -2561,10 +2871,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff2[4] = EOS;
gEffectBank = bank;
- BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_ATK;
- BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_ATK;
- BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ gBattleStruct->statChanger = 0x10 + STAT_STAGE_ATK;
+ gBattleStruct->animArg1 = 0xE + STAT_STAGE_ATK;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2577,10 +2887,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff1[3] = EOS;
gEffectBank = bank;
- BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_DEF;
- BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_DEF;
- BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ gBattleStruct->statChanger = 0x10 + STAT_STAGE_DEF;
+ gBattleStruct->animArg1 = 0xE + STAT_STAGE_DEF;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2593,10 +2903,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff1[3] = EOS;
gEffectBank = bank;
- BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPEED;
- BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPEED;
- BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ gBattleStruct->statChanger = 0x10 + STAT_STAGE_SPEED;
+ gBattleStruct->animArg1 = 0xE + STAT_STAGE_SPEED;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2609,10 +2919,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff1[3] = EOS;
gEffectBank = bank;
- BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPATK;
- BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPATK;
- BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ gBattleStruct->statChanger = 0x10 + STAT_STAGE_SPATK;
+ gBattleStruct->animArg1 = 0xE + STAT_STAGE_SPATK;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2625,10 +2935,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff1[3] = EOS;
gEffectBank = bank;
- BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPDEF;
- BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPDEF;
- BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ gBattleStruct->statChanger = 0x10 + STAT_STAGE_SPDEF;
+ gBattleStruct->animArg1 = 0xE + STAT_STAGE_SPDEF;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
break;
@@ -2636,7 +2946,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && !(gBattleMons[bank].status2 & STATUS2_FOCUS_ENERGY))
{
gBattleMons[bank].status2 |= STATUS2_FOCUS_ENERGY;
- b_call_bc_move_exec(BattleScript_BerryFocusEnergyEnd2);
+ BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2);
effect = ITEM_EFFECT_OTHER;
}
break;
@@ -2670,10 +2980,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleTextBuff2[7] = EOS;
gEffectBank = bank;
- BATTLE_STRUCT->statChanger = 0x21 + i;
- BATTLE_STRUCT->animArg1 = 0x21 + i + 6;
- BATTLE_STRUCT->animArg2 = 0;
- b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2);
+ gBattleStruct->statChanger = 0x21 + i;
+ gBattleStruct->animArg1 = 0x21 + i + 6;
+ gBattleStruct->animArg2 = 0;
+ BattleScriptExecute(BattleScript_BerryStatRaiseEnd2);
effect = ITEM_STATS_CHANGE;
}
}
@@ -2682,7 +2992,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
{
gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS);
- b_call_bc_move_exec(BattleScript_BerryCurePrlzEnd2);
+ BattleScriptExecute(BattleScript_BerryCurePrlzEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2690,7 +3000,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
{
gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER);
- b_call_bc_move_exec(BattleScript_BerryCurePsnEnd2);
+ BattleScriptExecute(BattleScript_BerryCurePsnEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2698,7 +3008,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_BURN)
{
gBattleMons[bank].status1 &= ~(STATUS_BURN);
- b_call_bc_move_exec(BattleScript_BerryCureBrnEnd2);
+ BattleScriptExecute(BattleScript_BerryCureBrnEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2706,7 +3016,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_FREEZE)
{
gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
- b_call_bc_move_exec(BattleScript_BerryCureFrzEnd2);
+ BattleScriptExecute(BattleScript_BerryCureFrzEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2715,7 +3025,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
- b_call_bc_move_exec(BattleScript_BerryCureSlpEnd2);
+ BattleScriptExecute(BattleScript_BerryCureSlpEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2723,7 +3033,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_call_bc_move_exec(BattleScript_BerryCureConfusionEnd2);
+ BattleScriptExecute(BattleScript_BerryCureConfusionEnd2);
effect = ITEM_EFFECT_OTHER;
}
break;
@@ -2768,7 +3078,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gBattleMons[bank].status1 = 0;
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2);
+ BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
@@ -2777,7 +3087,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
- b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2);
+ BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2);
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
effect = ITEM_EFFECT_OTHER;
}
@@ -2785,13 +3095,13 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->scriptingActive = bank;
gStringBank = bank;
gActiveBank = gBankAttacker = bank;
switch (effect)
{
case ITEM_STATUS_CHANGE:
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
case ITEM_PP_CHANGE:
@@ -2824,7 +3134,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
{
gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureParRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2833,7 +3143,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
{
gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2842,7 +3152,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_BURN)
{
gBattleMons[bank].status1 &= ~(STATUS_BURN);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2851,7 +3161,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status1 & STATUS_FREEZE)
{
gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2861,7 +3171,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet;
effect = ITEM_STATUS_CHANGE;
}
@@ -2870,7 +3180,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureConfusionRet;
effect = ITEM_EFFECT_OTHER;
}
@@ -2880,7 +3190,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet;
effect = ITEM_EFFECT_OTHER;
@@ -2916,7 +3226,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
gBattleMons[bank].status1 = 0;
gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet;
effect = ITEM_STATUS_CHANGE;
@@ -2933,9 +3243,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->scriptingActive = bank;
gStringBank = bank;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_WhiteHerbRet;
return effect; // unnecessary return
}
@@ -2943,10 +3253,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- BATTLE_STRUCT->scriptingActive = bank;
+ gBattleStruct->scriptingActive = bank;
gStringBank = bank;
gActiveBank = bank;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
+ EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -2965,9 +3275,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
&& gBattleMons[gBankTarget].hp)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = 8;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
SetMoveEffect(0, 0);
- b_movescr_stack_pop_cursor();
+ BattleScriptPop();
}
break;
case HOLD_EFFECT_SHELL_BELL:
@@ -2980,12 +3290,12 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
{
gLastUsedItem = atkItem;
gStringBank = gBankAttacker;
- BATTLE_STRUCT->scriptingActive = gBankAttacker;
+ gBattleStruct->scriptingActive = gBankAttacker;
gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = -1;
gSpecialStatuses[gBankTarget].moveturnLostHP = 0;
- b_movescr_stack_push_cursor();
+ BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret;
effect++;
}
@@ -3028,14 +3338,14 @@ void unref_sub_801B40C(void)
{
if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2])
{
- gSideTimer[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4);
- gSideTimer[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
+ gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4);
+ gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4;
}
if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank])
{
- gSideTimer[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4);
- gSideTimer[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
+ gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4);
+ gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove;
gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4;
}
bank++;
@@ -3067,8 +3377,8 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
{
case 0:
side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp)
- targetBank = gSideTimer[side].followmeTarget;
+ if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
+ targetBank = gSideTimers[side].followmeTarget;
else
{
side = GetBankSide(gBankAttacker);
@@ -3090,35 +3400,35 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
case 8:
case 32:
case 64:
- targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1);
+ targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1);
if (gAbsentBankFlags & gBitTable[targetBank])
targetBank ^= 2;
break;
case 4:
side = GetBankSide(gBankAttacker) ^ 1;
- if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp)
- targetBank = gSideTimer[side].followmeTarget;
+ if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
+ targetBank = gSideTimers[side].followmeTarget;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4)
{
if (GetBankSide(gBankAttacker) == 0)
{
if (Random() & 1)
- targetBank = GetBankByPlayerAI(1);
+ targetBank = GetBankByIdentity(1);
else
- targetBank = GetBankByPlayerAI(3);
+ targetBank = GetBankByIdentity(3);
}
else
{
if (Random() & 1)
- targetBank = GetBankByPlayerAI(0);
+ targetBank = GetBankByIdentity(0);
else
- targetBank = GetBankByPlayerAI(2);
+ targetBank = GetBankByIdentity(2);
}
if (gAbsentBankFlags & gBitTable[targetBank])
targetBank ^= 2;
}
else
- targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1);
+ targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1);
break;
case 2:
case 16:
@@ -3129,7 +3439,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
return targetBank;
}
-u8 IsPokeDisobedient(void)
+u8 IsMonDisobedient(void)
{
u8 obedienceLevel;
s32 rnd;
@@ -3137,17 +3447,25 @@ u8 IsPokeDisobedient(void)
if (gBattleTypeFlags & BATTLE_TYPE_LINK
|| GetBankSide(gBankAttacker) == 1
- || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName)
- || FlagGet(FLAG_BADGE08_GET))
- return 0;
+ || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName))
+ return 0;
- obedienceLevel = 10;
- if (FlagGet(FLAG_BADGE02_GET))
- obedienceLevel = 30;
- if (FlagGet(FLAG_BADGE04_GET))
- obedienceLevel = 50;
- if (FlagGet(FLAG_BADGE06_GET))
- obedienceLevel = 70;
+ if (DEBUG && (gUnknown_02023A14_50 & 0x40))
+ {
+ obedienceLevel = 10;
+ }
+ else
+ {
+ if (FlagGet(FLAG_BADGE08_GET))
+ return 0;
+ obedienceLevel = 10;
+ if (FlagGet(FLAG_BADGE02_GET))
+ obedienceLevel = 30;
+ if (FlagGet(FLAG_BADGE04_GET))
+ obedienceLevel = 50;
+ if (FlagGet(FLAG_BADGE06_GET))
+ obedienceLevel = 70;
+ }
if (gBattleMons[gBankAttacker].level <= obedienceLevel)
return 0;
@@ -3185,7 +3503,7 @@ u8 IsPokeDisobedient(void)
gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
gBattleCommunication[3] = 0;
gDynamicBasePower = 0;
- BATTLE_STRUCT->dynamicMoveType = 0;
+ gBattleStruct->dynamicMoveType = 0;
gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove;
gBankTarget = GetMoveTarget(gRandomMove, 0);
gHitMarker |= HITMARKER_x200000;
diff --git a/src/battle/calculate_base_damage.c b/src/battle/calculate_base_damage.c
index 5c91b3657..217ab28a3 100644
--- a/src/battle/calculate_base_damage.c
+++ b/src/battle/calculate_base_damage.c
@@ -1,16 +1,16 @@
#include "global.h"
#include "constants/abilities.h"
+#include "constants/battle_move_effects.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
#include "battle.h"
#include "berry.h"
#include "data2.h"
#include "event_data.h"
-#include "constants/hold_effects.h"
#include "item.h"
-#include "constants/items.h"
#include "pokemon.h"
-#include "constants/species.h"
-#include "constants/moves.h"
-#include "constants/battle_move_effects.h"
#include "ewram.h"
extern u16 gBattleTypeFlags;
@@ -22,8 +22,54 @@ extern struct BattleEnigmaBerry gEnigmaBerries[];
extern u16 gBattleMovePower;
extern u16 gTrainerBattleOpponent;
-extern const u8 gHoldEffectToType[][2];
-extern const u8 gStatStageRatios[][2];
+// Masks for getting PP Up count, also PP Max values
+const u8 gUnknown_08208238[] = {0x03, 0x0c, 0x30, 0xc0};
+
+// Masks for setting PP Up count
+const u8 gUnknown_0820823C[] = {0xFC, 0xF3, 0xCF, 0x3F};
+
+// Values added to PP Up count
+const u8 gUnknown_08208240[] = {0x01, 0x04, 0x10, 0x40};
+
+const u8 gStatStageRatios[][2] =
+{
+ {10, 40}, // -6
+ {10, 35}, // -5
+ {10, 30}, // -4
+ {10, 25}, // -3
+ {10, 20}, // -2
+ {10, 15}, // -1
+ {10, 10}, // 0
+ {15, 10}, // 1
+ {20, 10}, // 2
+ {25, 10}, // 3
+ {30, 10}, // 4
+ {35, 10}, // 5
+ {40, 10} // 6
+};
+
+const u8 unknownGameFreakAbbrev_820825E[] = _("ゲーフリ");
+
+const u8 gHoldEffectToType[][2] =
+{
+ {HOLD_EFFECT_BUG_POWER, TYPE_BUG},
+ {HOLD_EFFECT_STEEL_POWER, TYPE_STEEL},
+ {HOLD_EFFECT_GROUND_POWER, TYPE_GROUND},
+ {HOLD_EFFECT_ROCK_POWER, TYPE_ROCK},
+ {HOLD_EFFECT_GRASS_POWER, TYPE_GRASS},
+ {HOLD_EFFECT_DARK_POWER, TYPE_DARK},
+ {HOLD_EFFECT_FIGHTING_POWER, TYPE_FIGHTING},
+ {HOLD_EFFECT_ELECTRIC_POWER, TYPE_ELECTRIC},
+ {HOLD_EFFECT_WATER_POWER, TYPE_WATER},
+ {HOLD_EFFECT_FLYING_POWER, TYPE_FLYING},
+ {HOLD_EFFECT_POISON_POWER, TYPE_POISON},
+ {HOLD_EFFECT_ICE_POWER, TYPE_ICE},
+ {HOLD_EFFECT_GHOST_POWER, TYPE_GHOST},
+ {HOLD_EFFECT_PSYCHIC_POWER, TYPE_PSYCHIC},
+ {HOLD_EFFECT_FIRE_POWER, TYPE_FIRE},
+ {HOLD_EFFECT_DRAGON_POWER, TYPE_DRAGON},
+ {HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL}
+};
u8 GetBankSide(u8 bank);
diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c
index 0ae98af09..4fb236294 100644
--- a/src/battle/contest_link_80C857C.c
+++ b/src/battle/contest_link_80C857C.c
@@ -1,54 +1,754 @@
#include "global.h"
+#include "ewram.h"
+#include "random.h"
+#include "task.h"
+#include "contest.h"
+#include "text.h"
+#include "string_util.h"
#include "link.h"
+static void sub_80C8644(u8 taskId);
+static void sub_80C8660(u8 taskId);
#if GERMAN
+static void de_sub_80C9274(bool32 arg0);
+static void de_sub_80C9294(bool32 arg0);
+#endif
+
+static void SendBlockToAllOpponents(const void *data, u16 size)
+{
+ memcpy(eContestLinkSendBuffer, data, size);
+ SendBlock(bitmask_all_link_players_but_self(), eContestLinkSendBuffer, size);
+}
+
+static bool8 HasPlayerReceivedBlock(u8 who)
+{
+ u8 flag = 1 << who;
+ if (!(GetBlockReceivedStatus() & flag))
+ return FALSE;
+ ResetBlockReceivedFlag(flag);
+ return TRUE;
+}
+
+static bool8 HaveAllPlayersReceivedBlock(void)
+{
+ int i;
+
+ for (i = 0; i < MAX_LINK_PLAYERS; i++)
+ {
+ if (!((GetBlockReceivedStatus() >> i) & 1))
+ return FALSE;
+ }
+ ResetBlockReceivedFlags();
+ return TRUE;
+}
+
+void sub_80C8604(u8 taskId)
+{
+#if ENGLISH
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ gBlockRecvBuffer[i][0] = 0xff;
+#endif
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_80C8644;
+}
+
+static void sub_80C8644(u8 taskId)
+{
+ gTasks[taskId].func = sub_80C8660;
+}
+
+static void sub_80C8660(u8 taskId)
+{
+ if (gReceivedRemoteLinkPlayers)
+ {
+ gContestPlayerMonIndex = GetMultiplayerId();
+ if (GetLinkPlayerCount() == MAX_LINK_PLAYERS)
+ {
+ gIsLinkContest = TRUE;
+ SwitchTaskToFollowupFunc(taskId);
+ }
+ }
+}
+
+#ifdef NONMATCHING
+u8 sub_80C86A0(const u8 *string)
+{
+ u8 language = GAME_LANGUAGE;
+ if (string[0] == EXT_CTRL_CODE_BEGIN && string[1] == 0x15)
+ return language;
+ if (StringLength(string) > 5)
+ return language;
+ for (; *string != EOS; string++)
+ {
+ if (!((*string >= CHAR_A && *string <= CHAR_z) ||
+ (*string >= CHAR_0 + 0 && *string <= CHAR_0 + 9) ||
+ *string == CHAR_SPACE ||
+ *string == CHAR_PERIOD ||
+ *string == CHAR_COMMA ||
+ *string == 0xAB ||
+ *string == CHAR_QUESTION_MARK ||
+ *string == CHAR_MALE ||
+ *string == CHAR_FEMALE ||
+ *string == CHAR_SLASH ||
+ *string == CHAR_HYPHEN ||
+ *string == CHAR_ELLIPSIS ||
+ *string == 0xB1 ||
+ *string == 0xB2 ||
+ *string == 0xB3 ||
+ *string == 0xB1
+ ))
+ {
+ language = LANGUAGE_JAPANESE;
+ break;
+ }
+ }
+ return language;
+}
+#else
+__attribute__((naked)) u8 sub_80C86A0(const u8 *string)
+{
+ asm_unified("\tpush {r4,r5,lr}\n"
+ "\tadds r4, r0, 0\n"
+ ".ifdef ENGLISH\n"
+ "\tmovs r5, 0x2\n"
+ ".else\n"
+ "\tmovs r5, 0x5\n"
+ ".endif\n"
+ "\tldrb r0, [r4]\n"
+ "\tcmp r0, 0xFC\n"
+ "\tbne _080C86B6\n"
+ "\tldrb r0, [r4, 0x1]\n"
+ "\tcmp r0, 0x15\n"
+ "\tbne _080C86B6\n"
+ ".ifdef ENGLISH\n"
+ "\tmovs r0, 0x2\n"
+ ".else\n"
+ "\tmovs r0, 0x5\n"
+ ".endif\n"
+ "\tb _080C872C\n"
+ "_080C86B6:\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl StringLength\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r0, 0x5\n"
+ "\tbhi _080C872A\n"
+ "\tldrb r0, [r4]\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbeq _080C872A\n"
+ "_080C86CA:\n"
+ "\tldrb r1, [r4]\n"
+ "\tadds r0, r1, 0\n"
+ "\tadds r0, 0x45\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x33\n"
+ "\tbls _080C871E\n"
+ "\tadds r0, r1, 0\n"
+ "\tadds r0, 0x5F\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x9\n"
+ "\tbls _080C871E\n"
+ "\tadds r0, r1, 0\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xAD\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB8\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xAB\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xAC\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB5\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB6\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xBA\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xAE\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB0\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB1\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB2\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB3\n"
+ "\tbeq _080C871E\n"
+ "\tcmp r0, 0xB1\n"
+ "\tbne _080C8728\n"
+ "_080C871E:\n"
+ "\tadds r4, 0x1\n"
+ "\tldrb r0, [r4]\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbne _080C86CA\n"
+ "\tb _080C872A\n"
+ "_080C8728:\n"
+ "\tmovs r5, 0x1\n"
+ "_080C872A:\n"
+ "\tadds r0, r5, 0\n"
+ "_080C872C:\n"
+ "\tpop {r4,r5}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+void sub_80C8734(u8 taskId)
+{
+ int i;
+ u8 *name;
+
+ switch (gTasks[taskId].data[0]) {
+#if ENGLISH
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+#elif GERMAN
+ case 8:
+#endif
+ case 0:
+ if (GetMultiplayerId() == 0) {
+ if (IsLinkTaskFinished()) {
+#if ENGLISH
+ memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon));
+ sub_8007E9C(2);
+ gTasks[taskId].data[0]++;
+#elif GERMAN
+ if (gTasks[taskId].data[0] == 0)
+ {
+ gTasks[taskId].data[0] = 3;
+ }
+ else
+ {
+ memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon));
+ de_sub_80C9274(FALSE);
+ sub_8007E9C(2);
+ gTasks[taskId].data[0] = 1;
+ }
+#endif
+ }
+ }
+ else
+ {
+ memcpy(gBlockSendBuffer, gContestMons + gContestPlayerMonIndex, sizeof(struct ContestPokemon));
+#if GERMAN
+ de_sub_80C9294(FALSE);
+#endif
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ for (i = 0; i < MAX_LINK_PLAYERS; i++)
+ {
+ memcpy(gContestMons + i, gBlockRecvBuffer[i], sizeof(struct ContestPokemon));
+ name = gContestMons[i].nickname;
+ if (gLinkPlayers[i].language == LANGUAGE_JAPANESE)
+ {
+ ConvertInternationalString(name, sub_80C86A0(name));
+ }
+ else if (name[10] == EXT_CTRL_CODE_BEGIN)
+ {
+ ConvertInternationalString(name, LANGUAGE_JAPANESE);
+ } else
+ {
+ name[5] = name[10];
+ name[10] = EOS;
+ }
+ name = gContestMons[i].trainerName;
+ if (gLinkPlayers[i].language == LANGUAGE_JAPANESE)
+ {
+ name[7] = EOS;
+ name[6] = name[4];
+ name[5] = name[3];
+ name[4] = name[2];
+ name[3] = name[1];
+ name[2] = name[0];
+ name[1] = 0x15;
+ name[0] = EXT_CTRL_CODE_BEGIN;
+ }
+ else
+ {
+ name[5] = name[7];
+ name[7] = EOS;
+ }
+ }
+ gTasks[taskId].data[0]++;
+ }
+ break;
+#if GERMAN
+ case 2:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ default:
+ gTasks[taskId].data[0]++;
+ break;
+#endif
+ }
+}
+
+void sub_80C88AC(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ case 0:
+ if (GetMultiplayerId() == 0)
+ {
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(&gRngValue, sizeof(u32));
+ gTasks[taskId].data[0]++;
+ }
+ }
+ else
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HasPlayerReceivedBlock(0))
+ {
+ memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(u32));
+ memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(u32));
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ }
+}
+
+void sub_80C8938(u8 taskId)
+{
+ int i;
+
+ switch (gTasks[taskId].data[0])
+ {
+#if ENGLISH
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+#elif GERMAN
+ case 8:
+#endif
+ case 0:
+ gBlockSendBuffer[0] = gTasks[taskId].data[9];
+ if (GetMultiplayerId() == 0)
+ {
+ if (IsLinkTaskFinished())
+ {
+#if ENGLISH
+ sub_8007E9C(2);
+ gTasks[taskId].data[0]++;
+#elif GERMAN
+ if (gTasks[taskId].data[0] == 0)
+ {
+ gTasks[taskId].data[0] = 3;
+ }
+ else
+ {
+ de_sub_80C9274(TRUE);
+ sub_8007E9C(2);
+ gTasks[taskId].data[0] = 1;
+ }
+#endif
+ }
+ }
+ else
+ {
+#if GERMAN
+ de_sub_80C9294(TRUE);
+#endif
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ for (i = 0; i < MAX_LINK_PLAYERS; i++)
+ {
+ gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0];
+ }
+ gTasks[taskId].data[0]++;
+ }
+ break;
+#if GERMAN
+ case 2:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ default:
+ gTasks[taskId].data[0]++;
+ break;
+#endif
+ }
+}
+
+void sub_80C89DC(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ case 0:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(&gContestPlayerMonIndex, sizeof(u8));
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ }
+}
+
+void sub_80C8A38(u8 taskId)
+{
+ int i;
+
+ switch (gTasks[taskId].data[0])
+ {
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ case 0:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(&sContestantStatus[gContestPlayerMonIndex].currMove, sizeof(u16));
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ for (i = 0; i < MAX_LINK_PLAYERS; i++)
+ {
+ *&sContestantStatus[i].currMove = gBlockRecvBuffer[i][0];
+ }
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ }
+}
+
+void sub_80C8AD0(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gUnknown_02038678, sizeof gUnknown_02038678);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gUnknown_02038678, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038678);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ case 5:
+ case 8:
+ case 11:
+ if (gTasks[taskId].data[1]++ > 10)
+ {
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gUnknown_02038680, sizeof gUnknown_02038680);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 4:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gUnknown_02038680, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038680);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 6:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gUnknown_02038688, sizeof gUnknown_02038688);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 7:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gUnknown_02038688, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038688);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 9:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gContestFinalStandings, sizeof gContestFinalStandings);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 10:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_0203869B], sizeof gContestFinalStandings);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ }
+}
-void de_sub_80C9274(bool32 arg0) {
- if (deUnkValue2 != 1)
+void sub_80C8C80(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
{
- return;
+ case 0:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(sContestantStatus, 4 * sizeof(struct ContestantStatus));
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(sContestantStatus, gBlockRecvBuffer[gUnknown_0203869B], 4 * sizeof(struct ContestantStatus));
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ case 5:
+ case 8:
+ case 11:
+ if (gTasks[taskId].data[1]++ > 10)
+ {
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 3:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(&shared192D0, sizeof shared192D0);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 4:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(&shared192D0, gBlockRecvBuffer[gUnknown_0203869B], sizeof shared192D0);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 6:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(&shared19328, sizeof shared19328);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 7:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(&shared19328, gBlockRecvBuffer[gUnknown_0203869B], sizeof shared19328);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 9:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gUnknown_02038696, sizeof gUnknown_02038696);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 10:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gUnknown_02038696, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038696);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ }
+}
+
+void sub_80C8E1C(u8 taskId)
+{
+ int i;
+
+ switch (gTasks[taskId].data[0])
+ {
+#if ENGLISH
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+#elif GERMAN
+ case 8:
+#endif
+ case 0:
+ gBlockSendBuffer[0] = 0x64;
+ if (GetMultiplayerId() == 0)
+ {
+ if (IsLinkTaskFinished())
+ {
+#if ENGLISH
+ sub_8007E9C(2);
+ gTasks[taskId].data[0]++;
+#elif GERMAN
+ if (gTasks[taskId].data[0] == 0)
+ {
+ gTasks[taskId].data[0] = 3;
+ }
+ else
+ {
+ de_sub_80C9274(FALSE);
+ sub_8007E9C(2);
+ gTasks[taskId].data[0] = 1;
+ }
+#endif
+ }
+ }
+ else
+ {
+#if GERMAN
+ de_sub_80C9294(FALSE);
+#endif
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ for (i = 0; i < MAX_LINK_PLAYERS; i++)
+ {
+ gTasks[taskId].data[5 + i] = gBlockRecvBuffer[i][0];
+ }
+ gTasks[taskId].data[0]++;
+ }
+ break;
+#if GERMAN
+ case 2:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ default:
+ gTasks[taskId].data[0]++;
+ break;
+#endif
}
+}
- if (arg0)
+void sub_80C8EBC(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
{
- deUnkValue2 = 3;
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ case 0:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gUnknown_02038670, sizeof gUnknown_02038670);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gUnknown_02038670, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038670);
+ gTasks[taskId].data[0]++;
+ }
+ break;
}
- else
+}
+
+void sub_80C8F34(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
{
- deUnkValue2 = 2;
+ default:
+ gTasks[taskId].data[0] = 0;
+ SwitchTaskToFollowupFunc(taskId);
+ break;
+ case 0:
+ if (IsLinkTaskFinished())
+ {
+ SendBlockToAllOpponents(gUnknown_02038696, sizeof gUnknown_02038696);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 1:
+ if (HaveAllPlayersReceivedBlock())
+ {
+ memcpy(gUnknown_02038696, gBlockRecvBuffer[gUnknown_0203869B], sizeof gUnknown_02038696);
+ gTasks[taskId].data[0]++;
+ }
+ break;
}
}
-void de_sub_80C9294(bool32 arg0) {
+#if GERMAN
+
+static void de_sub_80C9274(bool32 arg0)
+{
if (deUnkValue2 == 1)
{
if (arg0)
- {
deUnkValue2 = 3;
- }
else
- {
deUnkValue2 = 2;
- }
-
- return;
}
+}
-
- if (deUnkValue2 == 2)
+static void de_sub_80C9294(bool32 arg0)
+{
+ if (deUnkValue2 == 1)
+ {
+ if (arg0)
+ deUnkValue2 = 3;
+ else
+ deUnkValue2 = 2;
+ }
+ else if (deUnkValue2 == 2)
{
SendBlock(0, sBlockRequestLookupTable[deUnkValue1].address, sBlockRequestLookupTable[deUnkValue1].size);
-
if (arg0)
- {
deUnkValue2 = 0;
- }
else
- {
deUnkValue2 = 1;
- }
-
- return;
}
}
diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c
index bcaaebcda..6f27469ce 100644
--- a/src/battle/pokeball.c
+++ b/src/battle/pokeball.c
@@ -383,7 +383,7 @@ static void sub_8046464(u8 taskId)
gSprites[spriteId].callback = sub_8047254;
break;
default:
- gBankTarget = GetBankByPlayerAI(1);
+ gBankTarget = GetBankByIdentity(1);
sp0 = TRUE;
break;
}
@@ -722,7 +722,7 @@ static void sub_8046C78(struct Sprite *sprite)
r8 = -25;
}
species = GetMonData(pkmn, MON_DATA_SPECIES);
- if ((r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1))
+ if ((r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1))
&& IsDoubleBattle() && ewram17840.unk9_0)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
@@ -737,7 +737,7 @@ static void sub_8046C78(struct Sprite *sprite)
}
if (!IsDoubleBattle() || !ewram17840.unk9_0)
r4_2 = 0;
- else if (r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1))
+ else if (r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1))
r4_2 = 1;
else
r4_2 = 2;
@@ -885,7 +885,7 @@ static void sub_80470C4(struct Sprite *sprite)
sprite->data[6] = sprite->oam.affineParam & 0xFF;
sprite->data[0] = 0;
if (IsDoubleBattle() && ewram17840.unk9_0
- && sprite->data[6] == GetBankByPlayerAI(2))
+ && sprite->data[6] == GetBankByIdentity(2))
sprite->callback = sub_8047230;
else
sprite->callback = sub_8046C78;
@@ -910,7 +910,7 @@ static void sub_8047254(struct Sprite *sprite)
{
sprite->data[0] = 0;
if (IsDoubleBattle() && ewram17840.unk9_0
- && sprite->data[6] == GetBankByPlayerAI(3))
+ && sprite->data[6] == GetBankByIdentity(3))
sprite->callback = sub_8047230;
else
sprite->callback = sub_8046C78;
diff --git a/src/battle/post_battle_event_funcs.c b/src/battle/post_battle_event_funcs.c
index 0617763f6..a44cf028b 100644
--- a/src/battle/post_battle_event_funcs.c
+++ b/src/battle/post_battle_event_funcs.c
@@ -26,8 +26,8 @@ int GameClear(void)
FlagSet(FLAG_SYS_GAME_CLEAR);
}
- if (!GetGameStat(1))
- SetGameStat(1, (gSaveBlock2.playTimeHours << 16) | (gSaveBlock2.playTimeMinutes << 8) | gSaveBlock2.playTimeSeconds);
+ if (!GetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME))
+ SetGameStat(GAME_STAT_FIRST_HOF_PLAY_TIME, (gSaveBlock2.playTimeHours << 16) | (gSaveBlock2.playTimeMinutes << 8) | gSaveBlock2.playTimeSeconds);
SetSecretBase2Field_9();
@@ -54,7 +54,7 @@ int GameClear(void)
if (ribbonGet == TRUE)
{
- IncrementGameStat(42);
+ IncrementGameStat(GAME_STAT_RECEIVED_RIBBONS);
FlagSet(FLAG_SYS_RIBBON_GET);
}
diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 49b0854cc..a78cb20df 100644
--- a/src/battle/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
@@ -3,7 +3,7 @@
#include "battle_anim.h"
#include "palette.h"
#include "main.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "text.h"
#include "rom_8077ABC.h"
#include "data2.h"
@@ -13,12 +13,12 @@ extern struct SpriteTemplate gUnknown_02024E8C;
extern struct Window gUnknown_03004210;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG3_Y;
+extern u16 gBattle_BG0_Y;
extern u8 gReservedSpritePaletteCount;
extern u8 gActionSelectionCursor[4];
extern u8 gBankInMenu;
@@ -77,18 +77,18 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
switch (gReshowState)
{
case 0:
- dp12_8087EA4();
- SetUpWindowConfig(&gWindowConfig_81E6C58);
+ ScanlineEffect_Clear();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58);
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
break;
case 1:
{
@@ -171,13 +171,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
sub_80327CC();
- opponentBank = GetBankByPlayerAI(1);
+ opponentBank = GetBankByIdentity(1);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
sub_8032984(opponentBank, species);
if (IsDoubleBattle())
{
- opponentBank = GetBankByPlayerAI(3);
+ opponentBank = GetBankByIdentity(3);
species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
sub_8032984(opponentBank, species);
}
@@ -190,7 +190,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
sub_807B06C();
BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1);
gPaletteFade.bufferTransferDisabled = 0;
- SetMainCallback2(sub_800F808);
+ SetMainCallback2(BattleMainCB2);
break;
}
gReshowState++;
diff --git a/src/contest.c b/src/contest.c
index f5aab709d..e2695627e 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -29,184 +29,18 @@
#include "task.h"
#include "text.h"
#include "tv.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "util.h"
+#include "contest_ai.h"
+
+extern u8 gUnknown_020297ED;
extern u8 AreMovesContestCombo(u16, u16); // I don't think this is a bool
extern void sub_80C8A38(u8);
extern void sub_80C8AD0(u8);
extern void sub_80C8C80(u8);
-extern void sub_81288F4();
-extern u8 sub_8128944(void);
-
-struct Shared18000
-{
- /*0x18000*/ u8 unk18000;
- /*0x18001*/ u8 filler18001[3];
- /*0x18004*/ u16 unk18004[16][16];
- /*0x18204*/ u16 unk18204[0x200];
- /*0x18604*/ u16 unk18604[0x200];
- /*0x18A04*/ u8 unk18A04[0x800];
-};
-
-struct Contest
-{
- /*0x19204*/ u8 playerMoveChoice;
- /*0x19205*/ u8 turnNumber;
- /*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function
- /*0x1920A*/ u16 unk1920A_0:1; // Task active flags?
- u16 unk1920A_1:1;
- u16 unk1920A_2:1;
- u16 unk1920A_3:1;
- u16 unk1920A_4:1;
- u16 unk1920A_5:1;
- u16 unk1920A_6:1;
- u16 unk1920A_7:1;
- /*0x1920B*/ u16 unk1920B_0:1;
- u16 unk1920B_1:1;
- u16 unk1920B_2:1;
- /*0x1920C*/ u8 mainTaskId;
- /*0x1920D*/ u8 unk1920D[4];
- /*0x19211*/ u8 unk19211;
- /*0x19212*/ u8 unk19212;
- /*0x19213*/ u8 filler19213;
- /*0x19214*/ u8 unk19214;
- /*0x19215*/ u8 unk19215;
- /*0x19216*/ u8 unk19216; // sprite ID
- /*0x19217*/ s8 applauseLevel;
- /*0x19218*/ u8 unk19218[4];
- /*0x1921C*/ u32 unk1921C; // saved RNG value?
- u16 unk19220[5][4]; // move history?
- u8 unk19248[5][4]; // excitement history
- u8 applauseMeterSpriteId; // sprite ID
- /*0x1925D*/ u8 unk1925D;
- /*0x1925E*/ u8 unk1925E;
-};
-
-struct ContestantStatus
-{
- s16 appeal1; // move appeal?
- s16 appeal2; // final appeal after end of turn, maybe?
- s16 unk4;
- u16 currMove;
- u16 prevMove;
- u8 moveCategory;
- u8 unkB_0:2;
- u8 unkB_2:2;
- u8 moveRepeatCount:3;
- u8 unkB_7:1; // used a one-time move?
- u8 unkC_0:1;
- u8 unkC_1:2;
- s8 unkD;
- u8 unkE;
- u8 unkF;
- u8 unk10_0:1;
- u8 unk10_1:1;
- u8 unk10_2:1;
- u8 unk10_3:1;
- u8 unk10_4:2;
- u8 unk10_6:2;
- u8 unk11_0:2;
- u8 unk11_2:1;
- u8 unk11_3:1;
- u8 unk11_4:1;
- u8 unk11_5:1;
- u8 unk12;
- u8 unk13; // status action?
- u8 unk14;
- u8 disappointedRepeat:1;
- u8 unk15_1:1;
- u8 unk15_2:1;
- u8 unk15_3:1;
- u8 unk15_4:1;
- u8 unk15_5:1;
- u8 unk15_6:1;
- u8 unk16;
- u8 unk17;
- u8 unk18;
- u8 unk19; // turn position
- u8 attentionLevel; // How much the Pokemon "stood out"
- u8 unk1B;
-};
-
-struct UnknownContestStruct3
-{
- u8 unk0;
- u8 unk1;
- //u8 unk2_0:1;
- //u8 unk2_1:1;
- u8 unk2; // maybe a bitfield
- u8 filler3;
-};
-
-// possibly the same as UnknownContestStruct3?
-struct UnknownContestStruct4
-{
- u8 unk0; // sprite ID
- u8 unk1; // sprite ID
- u8 unk2_0:1;
- u8 unk2_1:1;
- u8 unk2_2:1;
- u8 filler3;
-};
-
-struct UnknownContestStruct5
-{
- s8 bits_0; // current move excitement?
- u8 bits_8:1;
- u8 bits_9:3;
- u8 bits_C:4;
- s8 unk2;
- u8 filler3;
-};
-
-struct UnknownContestStruct7
-{
- u8 unk0[4];
- u16 unk4;
- u16 unk6;
- u8 filler8[0xD-8];
- u8 unkD[4];
- u8 unk11;
- u8 filler12[2];
-};
-
-struct UnknownContestStruct8
-{
- u16 unk0;
- u16 unk2;
- u8 unk4_0:1;
- u8 unk5;
- u8 filler6[2];
- u32 unk8;
- u32 unkC;
- u32 unk10;
-};
-
-struct UnknownContestStruct6
-{
- s32 unk0;
- s32 unk4;
- s32 unk8;
- s32 unkC;
-};
-
-#define shared15800 (gSharedMem + 0x15800)
-#define shared15DE0 (*(struct ContestWinner *)(gSharedMem + 0x15DE0))
-#define shared16800 (gSharedMem + 0x16800)
-#define shared18000 (*(struct Shared18000 *)(gSharedMem + 0x18000))
-#define shared18004 ((u16 *)(gSharedMem + 0x18004))
-#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
-#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
-#define shared192D0_ (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
-#define shared192E4 (gSharedMem + 0x192E4)
-#define shared19328 (*(struct UnknownContestStruct5 *)(gSharedMem + 0x19328))
-#define shared19338 ((struct UnknownContestStruct4 *)(gSharedMem + 0x19338))
-#define shared19348_ (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348))
extern struct MusicPlayerInfo gMPlay_SE1;
-extern u16 gSpecialVar_ContestCategory;
-extern u16 gSpecialVar_ContestRank;
extern u8 gBattleMonForms[];
extern u8 gDisplayedStringBattle[];
extern u16 gBattleTypeFlags;
@@ -214,31 +48,21 @@ extern u8 gBankAttacker;
extern u8 gBankTarget;
extern u8 gBanksBySide[];
extern u8 gObjectBankIDs[];
-extern u8 gIsLinkContest;
-extern u8 gContestPlayerMonIndex;
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern s16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_WIN1H;
extern struct Window gUnknown_03004210;
extern u16 gBattle_WIN0V;
extern u16 gBattle_WIN1V;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
extern u16 gBattle_WIN0H;
-extern u32 gUnknown_03005D28; // saved RNG value
-
-extern s16 gUnknown_02038680[];
-extern u16 gUnknown_02038688[];
-extern u8 gUnknown_02038694;
-extern u8 gUnknown_02038696[];
-extern u8 gUnknown_0203869B;
-extern s16 gUnknown_02038670[];
-extern s16 gUnknown_02038678[];
-extern u8 gContestFinalStandings[]; // What "place" each participant came in.
+extern u32 gContestRngValue; // saved RNG value
+
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -416,6 +240,7 @@ void sub_80B0BC4(u8, bool8);
void sub_80B0C5C(struct Sprite *);
void sub_80B0CB0(struct Sprite *);
void sub_80B0CDC(u8, int);
+void unref_sub_80B0CF4(void);
void sub_80B0D7C(void);
void sub_80B1118(void);
void sub_80B114C(u8);
@@ -458,6 +283,20 @@ void sub_80B292C(void);
void sub_80B2968(void);
void SelectContestMoveBankTarget(u16);
+EWRAM_DATA u8 gUnknown_0203856C = 0;
+EWRAM_DATA struct ContestPokemon gContestMons[4] = {0};
+EWRAM_DATA s16 gUnknown_02038670[4] = {0};
+EWRAM_DATA s16 gUnknown_02038678[4] = {0};
+EWRAM_DATA s16 gUnknown_02038680[4] = {0};
+EWRAM_DATA u16 gUnknown_02038688[4] = {0};
+EWRAM_DATA u8 gContestFinalStandings[4] = {0}; // What "place" each participant came in.
+EWRAM_DATA u8 gUnknown_02038694 = 0;
+EWRAM_DATA u8 gContestPlayerMonIndex = 0;
+EWRAM_DATA u8 gUnknown_02038696[4] = {0};
+EWRAM_DATA u8 gIsLinkContest = 0;
+EWRAM_DATA u8 gUnknown_0203869B = 0;
+EWRAM_DATA u16 gSpecialVar_ContestCategory = 0;
+EWRAM_DATA u16 gSpecialVar_ContestRank = 0;
void nullsub_89(u8 taskId)
{
@@ -489,14 +328,14 @@ void ResetContestGpuRegs(void)
REG_WINOUT = 0x3F3F;
REG_DISPCNT |= 0x7F00;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
gBattle_WIN1H = 0;
@@ -522,16 +361,16 @@ void LoadContestBgAfterMoveAnim(void)
void SetUpContestWindow(void)
{
- SetUpWindowConfig(&gWindowConfig_81E6FD8);
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6FD8);
- InitWindowFromConfig(&gMenuWindow, &gWindowConfig_81E6FF4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6FD8);
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6FD8);
+ Text_InitWindowWithTemplate(&gMenuWindow, &gWindowTemplate_81E6FF4);
}
void sub_80AB350(void)
{
u8 i;
- LoadFontDefaultPalette(&gWindowConfig_81E6FD8);
+ LoadFontDefaultPalette(&gWindowTemplate_81E6FD8);
FillPalette(0, 0, 2);
for (i = 10; i < 14; i++)
LoadPalette(gPlttBufferUnfaded + 241, 240 + i, 2);
@@ -555,8 +394,8 @@ void ClearContestVars(void)
sContestantStatus[i].unk14 = 0xFF;
}
- memset(&shared192D0_, 0, sizeof(shared192D0_));
- memset(shared192E4, 0, 0x44 * sizeof(*shared192E4));
+ memset(&shared192D0, 0, sizeof(shared192D0));
+ memset(eContestAI, 0, sizeof(struct ContestAIInfo));
memset(&shared19328, 0, sizeof(shared19328));
memset(shared19338, 0, 4 * sizeof(*shared19338));
if (!(gIsLinkContest & 1))
@@ -577,7 +416,7 @@ void CB2_StartContest(void)
SetVBlankCallback(NULL);
SetUpContestWindow();
ResetContestGpuRegs();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetPaletteFade();
gPaletteFade.bufferTransferDisabled = TRUE;
DmaClearLarge32(3, (void *)VRAM, VRAM_SIZE, 0x1000);
@@ -659,7 +498,7 @@ void sub_80AB6B4(u8 taskId)
GetMultiplayerId(); // unused return value
DestroyTask(taskId);
gTasks[sContest.mainTaskId].func = sub_80AB960;
- gRngValue = gUnknown_03005D28;
+ gRngValue = gContestRngValue;
}
}
@@ -777,6 +616,10 @@ void sub_80AB9A0(u8 taskId)
void ContestMainCallback2(void)
{
+#if DEBUG
+ if (gUnknown_020297ED == 1 && gMain.newKeys == 4)
+ unref_sub_80B0CF4();
+#endif
AnimateSprites();
RunTasks();
BuildOamBuffer();
@@ -785,14 +628,14 @@ void ContestMainCallback2(void)
void ContestVBlankCallback(void)
{
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
REG_WIN0H = gBattle_WIN0H;
REG_WIN0V = gBattle_WIN0V;
REG_WIN1H = gBattle_WIN1H;
@@ -800,12 +643,12 @@ void ContestVBlankCallback(void)
TransferPlttBuffer();
LoadOam();
ProcessSpriteCopyRequests();
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void sub_80ABB70(u8 taskId)
{
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80B0D7C();
DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400);
@@ -816,13 +659,13 @@ void sub_80ABB70(u8 taskId)
InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1);
sub_80AF138();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].func = sub_80ABC3C;
}
void sub_80ABC3C(u8 taskId)
{
- if (sub_80037A0(&gMenuWindow) == 1)
+ if (Text_UpdateWindowInContest(&gMenuWindow) == 1)
gTasks[taskId].func = sub_80ABC70;
}
@@ -849,9 +692,9 @@ void sub_80ABCDC(u8 taskId)
u8 i;
u8 sp8[32];
- gUnknown_030042A0 = 0xA0;
+ gBattle_BG0_Y = 0xA0;
gBattle_BG2_Y = 0xA0;
- FillWindowRect_DefaultPalette(
+ Text_FillWindowRectDefPalette(
&gUnknown_03004210,
0,
gUnknown_083CA340[0][0],
@@ -880,22 +723,24 @@ void sub_80ABCDC(u8 taskId)
}
r5 = StringCopy(r5, gMoveNames[move]);
- sub_8002E4C(
+ Text_InitWindow8002E4C(
&gUnknown_03004210,
sp8,
776 + i * 20,
gUnknown_083CA340[i][0] * 8 + 4,
gUnknown_083CA340[i][1] * 8,
1);
- sub_8002F44(&gUnknown_03004210);
+ Text_PrintWindow8002F44(&gUnknown_03004210);
}
- sub_814A5C0(0, 0xFFFF, 12, 0x2D9F, 72);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 72);
sub_80AC0AC(sContest.playerMoveChoice);
sub_80AEBEC(gContestMons[gContestPlayerMonIndex].moves[sContest.playerMoveChoice]);
gTasks[taskId].func = sub_80ABEA0;
}
+void debug_sub_80B9EBC(u8);
+
// Handle move selection input
void sub_80ABEA0(u8 taskId)
{
@@ -922,7 +767,7 @@ void sub_80ABEA0(u8 taskId)
sub_814A904();
PlaySE(SE_SELECT);
sub_80AFFE0(FALSE);
- FillWindowRect_DefaultPalette(
+ Text_FillWindowRectDefPalette(
&gUnknown_03004210,
0,
gUnknown_083CA340[0][0],
@@ -936,8 +781,8 @@ void sub_80ABEA0(u8 taskId)
InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1);
sub_80AF138();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
- sub_8003460(&gMenuWindow, gStringVar4, 776, 1, 15);
- gUnknown_030042A0 = 0;
+ Text_InitWindowAndPrintText(&gMenuWindow, gStringVar4, 776, 1, 15);
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
gTasks[taskId].func = sub_80ABC70;
break;
@@ -968,13 +813,196 @@ void sub_80ABEA0(u8 taskId)
if (numMoves > 1)
PlaySE(SE_SELECT);
break;
+#if DEBUG
+ case START_BUTTON:
+ if (gUnknown_020297ED == 1 && !(gIsLinkContest & 1))
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gContestMons[gContestPlayerMonIndex].moves[0];
+ gTasks[taskId].func = debug_sub_80B9EBC;
+ }
+ break;
+#endif
}
}
}
+#if DEBUG
+
+void debug_sub_80BA054(u8);
+
+void debug_sub_80B9EBC(u8 taskId)
+{
+ u8 text[100];
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ Text_FillWindowRectDefPalette(
+ &gUnknown_03004210,
+ 0,
+ gUnknown_083CA340[0][0],
+ gUnknown_083CA340[0][1],
+ gUnknown_083CA340[0][2],
+ gUnknown_083CA340[0][3]);
+ Text_InitWindowAndPrintText(
+ &gUnknown_03004210,
+ gMoveNames[gTasks[taskId].data[1]],
+ 776,
+ gUnknown_083CA340[0][0],
+ gUnknown_083CA340[0][1]);
+ ConvertIntToDecimalStringN(text, gTasks[taskId].data[1], 2, 3);
+ Text_InitWindowAndPrintText(
+ &gUnknown_03004210,
+ text,
+ 796,
+ gUnknown_083CA340[1][0],
+ gUnknown_083CA340[1][1]);
+ sub_80AED58();
+ sub_80AEBEC(gTasks[taskId].data[1]);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ switch (gMain.newAndRepeatedKeys)
+ {
+ case 0x20:
+ gTasks[taskId].data[1] -= 1;
+ if (gTasks[taskId].data[1] < 1)
+ gTasks[taskId].data[1] = 354;
+ gTasks[taskId].data[0]--;
+ break;
+ case 0x200:
+ gTasks[taskId].data[1] -= 10;
+ if (gTasks[taskId].data[1] < 1)
+ gTasks[taskId].data[1] = 354;
+ gTasks[taskId].data[0]--;
+ break;
+ case 0x10:
+ gTasks[taskId].data[1] += 1;
+ if (gTasks[taskId].data[1] > 354)
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId].data[0]--;
+ break;
+ case 0x100:
+ gTasks[taskId].data[1] += 10;
+ if (gTasks[taskId].data[1] > 354)
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId].data[0]--;
+ break;
+ case 4:
+ case 8:
+ gBattle_BG0_Y = 0;
+ gBattle_BG2_Y = 0;
+ sub_80B1BDC();
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = debug_sub_80BA054;
+ break;
+ case 2:
+ gBattle_BG0_Y = DISPLAY_HEIGHT;
+ gBattle_BG2_Y = DISPLAY_HEIGHT;
+ gContestMons[gContestPlayerMonIndex].moves[0] = gTasks[taskId].data[1];
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].func = sub_80ABCDC;
+ break;
+ }
+ break;
+ }
+}
+
+void debug_sub_80BA054(u8 taskId)
+{
+ s32 i;
+ u8 r6;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ for (i = 0; i < 4; i++)
+ gBattleMonForms[i] = 0;
+ memset(&shared19348, 0, sizeof(shared19348));
+ sub_80B28F0(gContestPlayerMonIndex);
+ r6 = sub_80AE9FC(
+ gContestMons[gContestPlayerMonIndex].species,
+ gContestMons[gContestPlayerMonIndex].otId,
+ gContestMons[gContestPlayerMonIndex].personality);
+ gSprites[r6].pos2.x = 120;
+ gSprites[r6].callback = sub_80AD8FC;
+ gTasks[taskId].data[2] = r6;
+ gObjectBankIDs[gBankAttacker] = r6;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[0]++;
+ sContest.unk1925E = 0;
+ break;
+ case 1:
+ r6 = gTasks[taskId].data[2];
+ if (gSprites[r6].callback == SpriteCallbackDummy)
+ {
+ sContestantStatus[gContestPlayerMonIndex].currMove = gTasks[taskId].data[1];
+ sub_80B2790(gContestPlayerMonIndex);
+ sub_80B28F0(gContestPlayerMonIndex);
+ SelectContestMoveBankTarget(gTasks[taskId].data[1]);
+ DoMoveAnim(gTasks[taskId].data[1]);
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ gAnimScriptCallback();
+ if (!gAnimScriptActive)
+ {
+ sub_80B28CC(gContestPlayerMonIndex);
+ if (sContest.unk1925E != 0)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 20;
+ }
+ else
+ {
+ gTasks[taskId].data[0]++;
+ }
+ }
+ break;
+ case 3:
+ gTasks[taskId].data[3]++;
+ if (gTasks[taskId].data[3] == 21)
+ {
+ r6 = gTasks[taskId].data[2];
+ gSprites[r6].callback = sub_80AD92C;
+ sub_80B1B14();
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 4:
+ r6 = gTasks[taskId].data[2];
+ if (gSprites[r6].invisible)
+ {
+ FreeSpriteOamMatrix(&gSprites[r6]);
+ DestroySprite(&gSprites[r6]);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = debug_sub_80B9EBC;
+ gBattle_BG0_Y = DISPLAY_HEIGHT;
+ gBattle_BG2_Y = DISPLAY_HEIGHT;
+ }
+ break;
+ case 20:
+ if (gTasks[taskId].data[10]++ > 30)
+ {
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].data[0] = 1;
+ }
+ break;
+ }
+}
+
+#endif
+
void sub_80AC0AC(s8 a)
{
- sub_814A880(4, 88 + a * 16);
+ MenuCursor_SetPos814A880(4, 88 + a * 16);
}
void nullsub_17(s8 a)
@@ -1011,7 +1039,7 @@ void sub_80AC15C(u8 taskId)
void sub_80AC188(u8 taskId)
{
sub_80AF138();
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80AFFE0(FALSE);
DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400);
@@ -1063,7 +1091,7 @@ void sub_80AC2CC(u8 taskId)
{
case 0:
sub_80B0D7C();
- for (i = 0; sContest.unk19214 != shared192D0_.unk0[i]; i++)
+ for (i = 0; sContest.unk19214 != shared192D0.unk0[i]; i++)
;
sContest.unk19215 = i;
r7 = sContest.unk19215;
@@ -1106,7 +1134,7 @@ void sub_80AC2CC(u8 taskId)
case 3:
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
- memset(&shared19348_, 0, sizeof(shared19348_));
+ memset(&shared19348, 0, sizeof(shared19348));
sub_80B28F0(sContest.unk19215);
spriteId = sub_80AE9FC(
gContestMons[sContest.unk19215].species,
@@ -1141,12 +1169,12 @@ void sub_80AC2CC(u8 taskId)
else
StringCopy(gStringVar2, gUnknown_083CC330[sContestantStatus[r7].moveCategory]);
StringExpandPlaceholders(gStringVar4, gUnknown_083CAFD7);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 6;
}
return;
case 6:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
sContest.unk1925E = 0;
gTasks[taskId].data[0] = 7;
@@ -1224,7 +1252,7 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 24:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 23;
return;
case 48:
@@ -1336,7 +1364,7 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 27:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 28;
return;
case 28:
@@ -1399,13 +1427,13 @@ void sub_80AC2CC(u8 taskId)
sub_80AF138();
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringExpandPlaceholders(gStringVar4, ContestString_CantAppealNextTurn);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
}
gTasks[taskId].data[0] = 52;
}
return;
case 52:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
if (!sContestantStatus[r7].unk15_6)
gTasks[taskId].data[0] = 17;
@@ -1419,11 +1447,11 @@ void sub_80AC2CC(u8 taskId)
{
sub_80AF138();
if (r4 == 1)
- sub_8002EB0(&gMenuWindow, ContestString_WentOverWell, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, ContestString_WentOverWell, 776, 1, 15);
else if (r4 == 2)
- sub_8002EB0(&gMenuWindow, ContestString_WentOverVeryWell, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, ContestString_WentOverVeryWell, 776, 1, 15);
else
- sub_8002EB0(&gMenuWindow, ContestString_AppealComboExcellently, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, ContestString_AppealComboExcellently, 776, 1, 15);
sub_80B1710(3);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 45;
@@ -1433,7 +1461,7 @@ void sub_80AC2CC(u8 taskId)
sub_80AF138();
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringExpandPlaceholders(gStringVar4, ContestString_JudgeExpectantly2);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
sub_80B1710(2);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[0] = 45;
@@ -1447,7 +1475,7 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 15:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
if (++gTasks[taskId].data[10] > 50)
{
@@ -1476,7 +1504,7 @@ void sub_80AC2CC(u8 taskId)
sub_80AF138();
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringExpandPlaceholders(gStringVar4, ContestString_DissapointedRepeat);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[10] = 0;
sub_80B1710(0);
gTasks[taskId].data[0] = 46;
@@ -1491,7 +1519,7 @@ void sub_80AC2CC(u8 taskId)
gTasks[taskId].data[0] = 19;
return;
case 19:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
sub_80AFBA0(sContestantStatus[r7].appeal2, -sContestantStatus[r7].unk18, r7);
sContestantStatus[r7].appeal2 -= sContestantStatus[r7].unk18;
@@ -1546,7 +1574,7 @@ void sub_80AC2CC(u8 taskId)
StringExpandPlaceholders(gStringVar4, ContestString_WentOverGreat);
else
StringExpandPlaceholders(gStringVar4, ContestString_GotCrowdGoing);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[10] = 0;
gTasks[taskId].data[11] = 0;
if (r4 < 0)
@@ -1565,7 +1593,7 @@ void sub_80AC2CC(u8 taskId)
gTasks[taskId].data[10]++;
break;
case 1:
- if (!sContest.unk1920B_0 && sub_80037A0(&gMenuWindow) != 0)
+ if (!sContest.unk1920B_0 && Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
sub_80B1CBC(-1);
gTasks[taskId].data[10]++;
@@ -1596,7 +1624,7 @@ void sub_80AC2CC(u8 taskId)
switch (gTasks[taskId].data[10])
{
case 0:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
sub_80B1EA8(1, 1);
gTasks[taskId].data[10]++;
@@ -1656,20 +1684,20 @@ void sub_80AC2CC(u8 taskId)
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]);
StringExpandPlaceholders(gStringVar4, ContestString_CrowdWatches);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 58;
return;
case 58:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
sub_80AF138();
StringExpandPlaceholders(gStringVar4, ContestString_Ignored2);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 59;
}
return;
case 59:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
sub_80AF138();
gTasks[taskId].data[0] = 55;
@@ -1682,11 +1710,11 @@ void sub_80AC2CC(u8 taskId)
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringCopy(gStringVar2, gMoveNames[sContestantStatus[r7].currMove]);
StringExpandPlaceholders(gStringVar4, gUnknown_083CBF60);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 34;
return;
case 34:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 55;
return;
case 55:
@@ -1728,11 +1756,11 @@ void sub_80AC2CC(u8 taskId)
sub_80AF138();
StringCopy(gStringVar1, gContestMons[r7].nickname);
StringExpandPlaceholders(gStringVar4, gUnknown_083CB00D);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[0] = 32;
return;
case 32:
- if (sub_80037A0(&gMenuWindow) != 0)
+ if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
gTasks[taskId].data[0] = 21;
return;
case 21:
@@ -1899,13 +1927,13 @@ void sub_80ADB88(u8 taskId)
sub_80AF138();
StringCopy(gStringVar1, gContestMons[gContestPlayerMonIndex].nickname);
StringExpandPlaceholders(gStringVar4, gContestStandOutStrings[r4]);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].func = sub_80ADC10;
}
void sub_80ADC10(u8 taskId)
{
- if (sub_80037A0(&gMenuWindow) == 1)
+ if (Text_UpdateWindowInContest(&gMenuWindow) == 1)
{
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = sub_80ADC4C;
@@ -1969,23 +1997,23 @@ void sub_80ADDA4(u8 taskId)
{
s32 i;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
for (i = 0; i < 4; i++)
gUnknown_02038680[i] = sContestantStatus[i].unk4;
sub_80AF668();
sub_80AF138();
sub_80BE23C(sContestantStatus[gContestPlayerMonIndex].prevMove);
- gUnknown_03005D28 = gRngValue;
+ gContestRngValue = gRngValue;
StringExpandPlaceholders(gStringVar4, gUnknown_083CB02C);
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_80ADE54;
}
void sub_80ADE54(u8 taskId)
{
- if (sub_80037A0(&gMenuWindow) == 1)
+ if (Text_UpdateWindowInContest(&gMenuWindow) == 1)
{
sub_80B2184();
gBattle_BG1_X = 0;
@@ -2105,7 +2133,7 @@ void Contest_CreatePlayerMon(u8 partyIndex)
s16 tough;
StringCopy(name, gSaveBlock2.playerName);
- StripExtCtrlCodes(name);
+ Text_StripExtCtrlCodes(name);
if (gIsLinkContest & 1)
{
u8 temp = name[5];
@@ -2125,7 +2153,7 @@ void Contest_CreatePlayerMon(u8 partyIndex)
StringGetEnd10(name);
if (gIsLinkContest & 1)
{
- StripExtCtrlCodes(name);
+ Text_StripExtCtrlCodes(name);
if (GetMonData(&gPlayerParty[partyIndex], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE)
{
name[5] = EOS;
@@ -2286,7 +2314,7 @@ void sub_80AE514(void)
for (i = 0; i < 4; i++)
{
- FillWindowRect_DefaultPalette(
+ Text_FillWindowRectDefPalette(
&gUnknown_03004210,
0,
gUnknown_083CA308[gUnknown_02038696[i]][0],
@@ -2326,7 +2354,7 @@ void sub_80AE5D4(u8 p, u8 b)
if ((gIsLinkContest & 1) && gLinkPlayers[p].language == LANGUAGE_JAPANESE)
{
StringCopy(str, gLinkPlayers[p].name);
- sub_8004D04(
+ Text_InitWindow8004D04(
&gUnknown_03004210,
gDisplayedStringBattle,
592 + gUnknown_02038696[p] * 22,
@@ -2337,7 +2365,7 @@ void sub_80AE5D4(u8 p, u8 b)
else
{
StringCopy(str, gContestMons[p].trainerName);
- sub_8003460(
+ Text_InitWindowAndPrintText(
&gUnknown_03004210,
gDisplayedStringBattle,
592 + gUnknown_02038696[p] * 22,
@@ -2363,7 +2391,7 @@ void sub_80AE6E4(u8 a, u8 b)
str = sub_80AE598(str, gContestMons[a].nickname, b);
*str = EOS;
- sub_8004D04(
+ Text_InitWindow8004D04(
&gUnknown_03004210,
gDisplayedStringBattle,
512 + gUnknown_02038696[a] * 20,
@@ -2548,7 +2576,7 @@ void sub_80AEBEC(u16 a)
s32 i;
u8 numHearts;
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 0, 11, 31, 16, 34);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 11, 31, 16, 34);
category = gContestMoves[a].contestCategory;
if (category == CONTEST_CATEGORY_COOL)
@@ -2597,13 +2625,13 @@ void sub_80AEBEC(u16 a)
*(u16 *)(VRAM + 0xC82A + i * 2) = 0x5036;
}
- sub_8003460(&gUnknown_03004210, gContestEffectStrings[gContestMoves[a].effect], 868, 11, 35);
- sub_8003460(&gUnknown_03004210, gUnknown_083CC5A2, 866, 16, 31);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gContestEffectStrings[gContestMoves[a].effect], 868, 11, 35);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, gUnknown_083CC5A2, 866, 16, 31);
}
void sub_80AED58(void)
{
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 0, 11, 35, 28, 40);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 11, 35, 28, 40);
}
// unused
@@ -2779,7 +2807,7 @@ void sub_80AF120(void)
void sub_80AF138(void)
{
- FillWindowRect_DefaultPalette(&gUnknown_03004210, 0, 1, 15, 17, 18);
+ Text_FillWindowRectDefPalette(&gUnknown_03004210, 0, 1, 15, 17, 18);
}
u16 GetChosenMove(u8 a)
@@ -2794,8 +2822,8 @@ u16 GetChosenMove(u8 a)
{
u8 moveChoice;
- sub_81288F4(a);
- moveChoice = sub_8128944();
+ ContestAI_ResetAI(a);
+ moveChoice = ContestAI_GetActionToUse();
return gContestMons[a].moves[moveChoice];
}
}
@@ -2821,7 +2849,7 @@ void sub_80AF1E4(u8 a, u8 b)
else
sub_80AE598(gDisplayedStringBattle, gMoveNames[sContestantStatus[a].currMove], r3);
sub_80AF2A0(a);
- sub_8003460(
+ Text_InitWindowAndPrintText(
&gUnknown_03004210,
gDisplayedStringBattle,
696 + a * 20,
@@ -2839,7 +2867,7 @@ void unref_sub_80AF280(u8 a)
void sub_80AF2A0(u8 a)
{
- FillWindowRect_DefaultPalette(
+ Text_FillWindowRectDefPalette(
&gUnknown_03004210,
0,
gUnknown_083CA318[a][0],
@@ -3115,10 +3143,10 @@ bool8 sub_80AF828(s32 a, s32 b, struct UnknownContestStruct6 *c)
void sub_80AF860(void)
{
- gUnknown_030042A0 = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80AF138();
- sub_8003460(&gMenuWindow, gUnknownText_LinkStandbyAndWinner, 776, 1, 15);
+ Text_InitWindowAndPrintText(&gMenuWindow, gUnknownText_LinkStandbyAndWinner, 776, 1, 15);
}
u8 unref_sub_80AF89C(s16 a, s16 b, u8 c, u8 d)
@@ -3837,12 +3865,8 @@ void sub_80B0748(u8 taskId)
{
// What the hell? These aren't pointers.
// This code would crash if run.
- {
- void *src = (void *)(u32)gPlttBufferFaded[(r4 + 5) * 16 + 1];
- void *dest = (void *)(u32)gPlttBufferUnfaded[(r4 + 5) * 16 + 1];
- u32 size = 6;
- DmaCopy16(3, src, dest, size);
- }
+ DmaCopy16Defvars(3, (void *)(u32)gPlttBufferFaded[(r4 + 5) * 16 + 1],
+ (void *)(u32)gPlttBufferUnfaded[(r4 + 5) * 16 + 1], 6);
gTasks[taskId].data[r1 + 0] = 0;
}
}
@@ -4212,21 +4236,13 @@ u8 sub_80B09E4(u8 a)
CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gUnknown_02038696[a] * 5 * 64 + 0x26), (u8 *)(VRAM + 0x10000 + gSprites[r8].oam.tileNum * 32));
CopySpriteTiles(0, 3, (void *)VRAM, (u16 *)(VRAM + 0xE000 + gUnknown_02038696[a] * 5 * 64 + 0x36), (u8 *)(VRAM + 0x10000 + gSprites[r6].oam.tileNum * 32));
- {
- void *dest = (void *)(VRAM + 0x10000 + (0x28 + gSprites[r8].oam.tileNum) * 32);
- u32 size = 0x300;
- DmaFill32(3, 0, dest, size);
- }
+ DmaFill32Defvars(3, 0, (void *)(VRAM + 0x10000 + (0x28 + gSprites[r8].oam.tileNum) * 32), 0x300);
// What is this?
zero = 0;
zero = 0;
- {
- void *dest = (void *)(VRAM + 0x10000 + (0x28 + gSprites[r6].oam.tileNum) * 32);
- u32 size = 0x300;
- DmaFill32(3, 0, dest, size);
- }
+ DmaFill32Defvars(3, 0, (void *)(VRAM + 0x10000 + (0x28 + gSprites[r6].oam.tileNum) * 32), 0x300);
gSprites[r8].data[0] = r6;
gSprites[r6].data[0] = r8;
@@ -4311,7 +4327,7 @@ void unref_sub_80B0CF4(void)
for (i = 0; i < 4; i++)
{
- FillWindowRect_DefaultPalette(
+ Text_FillWindowRectDefPalette(
&gUnknown_03004210,
0,
gUnknown_083CA308[i][0],
@@ -4340,7 +4356,7 @@ void sub_80B0D7C(void)
for (i = 0; i < 4; i++)
{
- FillWindowRect_DefaultPalette(
+ Text_FillWindowRectDefPalette(
&gUnknown_03004210,
0,
gUnknown_083CA308[i][0],
@@ -4358,7 +4374,7 @@ void sub_80B0D7C(void)
r5++;
}
ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4);
- sub_8003460(
+ Text_InitWindowAndPrintText(
&gUnknown_03004210,
sp8,
592 + gUnknown_02038696[i] * 22,
@@ -4376,7 +4392,7 @@ void sub_80B0D7C(void)
r5++;
}
ConvertIntToDecimalStringN(sp8 + r5, r2, 0, 4);
- sub_8003460(
+ Text_InitWindowAndPrintText(
&gUnknown_03004210,
sp8,
512 + gUnknown_02038696[i] * 20,
@@ -4528,13 +4544,13 @@ void sub_80B114C(u8 contestant)
}
sContestantStatus[contestant].appeal1 = gContestEffects[effect].appeal;
sContestantStatus[contestant].appeal2 = gContestEffects[effect].appeal;
- shared192D0_.unk4 = gContestEffects[effect].jam;
- shared192D0_.unk6 = gContestEffects[effect].jam;
- shared192D0_.unk11 = contestant;
+ shared192D0.unk4 = gContestEffects[effect].jam;
+ shared192D0.unk6 = gContestEffects[effect].jam;
+ shared192D0.unk11 = contestant;
for (i = 0; i < 4; i++)
{
sContestantStatus[i].unkE = 0;
- shared192D0_.unkD[i] = 0;
+ shared192D0.unkD[i] = 0;
}
if (sContestantStatus[contestant].unk15_4 && AreMovesContestCombo(sContestantStatus[contestant].prevMove, sContestantStatus[contestant].currMove) == 0)
sContestantStatus[contestant].unk15_4 = 0;
@@ -4637,19 +4653,19 @@ void sub_80B146C(u8 a, u8 b)
{
StringCopy(gStringVar1, gContestMons[a].nickname);
StringCopy(gStringVar2, gMoveNames[sContestantStatus[a].currMove]);
- if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_COOL)
+ if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_COOL)
StringCopy(gStringVar3, gText_Contest_Shyness);
- else if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY)
+ else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_BEAUTY)
StringCopy(gStringVar3, gText_Contest_Anxiety);
- else if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_CUTE)
+ else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_CUTE)
StringCopy(gStringVar3, gText_Contest_Laziness);
- else if (gContestMoves[sContestantStatus[shared192D0_.unk11].currMove].contestCategory == CONTEST_CATEGORY_SMART)
+ else if (gContestMoves[sContestantStatus[shared192D0.unk11].currMove].contestCategory == CONTEST_CATEGORY_SMART)
StringCopy(gStringVar3, gText_Contest_Hesitancy);
else
StringCopy(gStringVar3, gText_Contest_Fear);
StringExpandPlaceholders(gStringVar4, gUnknown_083CC188[b]);
sub_80AF138();
- sub_8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
+ Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
}
void sub_80B157C(u8 p)
@@ -4708,7 +4724,7 @@ void sub_80B159C(void)
for (i = 0; i < 4; i++)
{
- shared192D0_.unk0[i] = sp0[i];
+ shared192D0.unk0[i] = sp0[i];
sContestantStatus[i].unk19 = 0xFF;
sContestantStatus[i].unk10_6 = 0;
gUnknown_02038696[i] = sp0[i];
@@ -4796,7 +4812,7 @@ void unref_sub_80B19D0(void)
{
u8 str[20];
StringCopy(str, gUnknown_083CC2EC);
- sub_8003460(&gUnknown_03004210, str, 680, 0, 0);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, str, 680, 0, 0);
}
s8 Contest_GetMoveExcitement(u16 move)
@@ -5083,7 +5099,7 @@ void sub_80B20C4(void)
for (i = 0; i < 4; i++)
{
- if (shared192D0_.unkD[i] != 0 && !Contest_IsMonsTurnDisabled(i))
+ if (shared192D0.unkD[i] != 0 && !Contest_IsMonsTurnDisabled(i))
{
u8 r4 = gUnknown_02038696[i] * 5 + 2;
u16 r0 = sub_80AEFE8(i, 3);
@@ -5339,7 +5355,7 @@ void sub_80B2790(u8 a)
u16 species = SanitizeSpecies(gContestMons[a].species);
u8 r5_2;
- memset(&shared19348_, 0, sizeof(shared19348_));
+ memset(&shared19348, 0, sizeof(shared19348));
ClearBattleAnimationVars();
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
@@ -5354,9 +5370,9 @@ void sub_80B2790(u8 a)
case MOVE_TRANSFORM:
case MOVE_ROLE_PLAY:
r5_2 = sContestantStatus[a].unk1B;
- shared19348_.unk2 = SanitizeSpecies(gContestMons[r5_2].species);
- shared19348_.unk10 = gContestMons[r5_2].personality;
- shared19348_.unk4_0 = 1;
+ shared19348.unk2 = SanitizeSpecies(gContestMons[r5_2].species);
+ shared19348.unk10 = gContestMons[r5_2].personality;
+ shared19348.unk4_0 = 1;
break;
case MOVE_RETURN:
gAnimFriendship = 0xFF;
@@ -5384,17 +5400,17 @@ void sub_80B2790(u8 a)
void sub_80B28CC(int unused)
{
- memset(&shared19348_, 0, sizeof(shared19348_));
+ memset(&shared19348, 0, sizeof(shared19348));
if (sContest.unk1925E != 0)
sContest.unk1925E--;
}
void sub_80B28F0(u8 a)
{
- shared19348_.unk5 = a;
- shared19348_.unk0 = SanitizeSpecies(gContestMons[a].species);
- shared19348_.unk8 = gContestMons[a].personality;
- shared19348_.unkC = gContestMons[a].otId;
+ shared19348.unk5 = a;
+ shared19348.unk0 = SanitizeSpecies(gContestMons[a].species);
+ shared19348.unk8 = gContestMons[a].personality;
+ shared19348.unkC = gContestMons[a].otId;
}
void sub_80B292C(void)
diff --git a/src/contest_ai.c b/src/contest_ai.c
new file mode 100644
index 000000000..1e249083b
--- /dev/null
+++ b/src/contest_ai.c
@@ -0,0 +1,1762 @@
+#include "global.h"
+#include "contest.h"
+#include "random.h"
+#include "contest_ai.h"
+#include "ewram.h"
+
+extern u8 AreMovesContestCombo(u16, u16);
+extern bool8 sub_80B214C(u8);
+extern bool8 Contest_IsMonsTurnDisabled(u8);
+
+extern u16 gSpecialVar_ContestCategory;
+
+extern u8 *gAIScriptPtr;
+extern u8 *gContestAIs[];
+
+static void ContestAICmd_unk_00(void);
+static void ContestAICmd_get_turn(void);
+static void ContestAICmd_unk_02(void);
+static void ContestAICmd_unk_03(void);
+static void ContestAICmd_unk_04(void);
+static void ContestAICmd_unk_05(void);
+static void ContestAICmd_get_excitement(void);
+static void ContestAICmd_unk_07(void);
+static void ContestAICmd_unk_08(void);
+static void ContestAICmd_unk_09(void);
+static void ContestAICmd_unk_0A(void);
+static void ContestAICmd_get_user_order(void);
+static void ContestAICmd_unk_0C(void);
+static void ContestAICmd_unk_0D(void);
+static void ContestAICmd_unk_0E(void);
+static void ContestAICmd_unk_0F(void);
+static void ContestAICmd_get_user_condition_maybe(void);
+static void ContestAICmd_unk_11(void);
+static void ContestAICmd_unk_12(void);
+static void ContestAICmd_unk_13(void);
+static void ContestAICmd_unk_14(void);
+static void ContestAICmd_unk_15(void);
+static void ContestAICmd_unk_16(void);
+static void ContestAICmd_unk_17(void);
+static void ContestAICmd_unk_18(void);
+static void ContestAICmd_unk_19(void);
+static void ContestAICmd_unk_1A(void);
+static void ContestAICmd_unk_1B(void);
+static void ContestAICmd_unk_1C(void);
+static void ContestAICmd_unk_1D(void);
+static void ContestAICmd_unk_1E(void);
+static void ContestAICmd_get_contest_type(void);
+static void ContestAICmd_unk_20(void);
+static void ContestAICmd_unk_21(void);
+static void ContestAICmd_get_move_excitement(void);
+static void ContestAICmd_unk_23(void);
+static void ContestAICmd_unk_24(void);
+static void ContestAICmd_unk_25(void);
+static void ContestAICmd_unk_26(void);
+static void ContestAICmd_get_move_effect(void);
+static void ContestAICmd_unk_28(void);
+static void ContestAICmd_unk_29(void);
+static void ContestAICmd_get_move_effect_type(void);
+static void ContestAICmd_unk_2B(void);
+static void ContestAICmd_unk_2C(void);
+static void ContestAICmd_check_move_has_highest_appeal(void);
+static void ContestAICmd_unk_2E(void);
+static void ContestAICmd_unk_2F(void);
+static void ContestAICmd_unk_30(void);
+static void ContestAICmd_unk_31(void);
+static void ContestAICmd_unk_32(void);
+static void ContestAICmd_unk_33(void);
+static void ContestAICmd_unk_34(void);
+static void ContestAICmd_unk_35(void);
+static void ContestAICmd_unk_36(void);
+static void ContestAICmd_unk_37(void);
+static void ContestAICmd_unk_38(void);
+static void ContestAICmd_unk_39(void);
+static void ContestAICmd_unk_3A(void);
+static void ContestAICmd_get_move_used_count(void);
+static void ContestAICmd_unk_3C(void);
+static void ContestAICmd_unk_3D(void);
+static void ContestAICmd_unk_3E(void);
+static void ContestAICmd_unk_3F(void);
+static void ContestAICmd_check_combo_starter(void);
+static void ContestAICmd_unk_41(void);
+static void ContestAICmd_unk_42(void);
+static void ContestAICmd_check_combo_finisher(void);
+static void ContestAICmd_unk_44(void);
+static void ContestAICmd_unk_45(void);
+static void ContestAICmd_check_would_finish_combo(void);
+static void ContestAICmd_unk_47(void);
+static void ContestAICmd_unk_48(void);
+static void ContestAICmd_get_condition(void);
+static void ContestAICmd_unk_4A(void);
+static void ContestAICmd_unk_4B(void);
+static void ContestAICmd_unk_4C(void);
+static void ContestAICmd_unk_4D(void);
+static void ContestAICmd_get_used_combo_starter(void);
+static void ContestAICmd_unk_4F(void);
+static void ContestAICmd_unk_50(void);
+static void ContestAICmd_unk_51(void);
+static void ContestAICmd_unk_52(void);
+static void ContestAICmd_check_can_participate(void);
+static void ContestAICmd_unk_54(void);
+static void ContestAICmd_unk_55(void);
+static void ContestAICmd_get_val_812A188(void);
+static void ContestAICmd_unk_57(void);
+static void ContestAICmd_unk_58(void);
+static void ContestAICmd_unk_59(void);
+static void ContestAICmd_unk_5A(void);
+static void ContestAICmd_unk_5B(void);
+static void ContestAICmd_unk_5C(void);
+static void ContestAICmd_unk_5D(void);
+static void ContestAICmd_unk_5E(void);
+static void ContestAICmd_unk_5F(void);
+static void ContestAICmd_unk_60(void);
+static void ContestAICmd_unk_61(void);
+static void ContestAICmd_unk_62(void);
+static void ContestAICmd_unk_63(void);
+static void ContestAICmd_unk_64(void);
+static void ContestAICmd_unk_65(void);
+static void ContestAICmd_unk_66(void);
+static void ContestAICmd_unk_67(void);
+static void ContestAICmd_unk_68(void);
+static void ContestAICmd_unk_69(void);
+static void ContestAICmd_unk_6A(void);
+static void ContestAICmd_unk_6B(void);
+static void ContestAICmd_unk_6C(void);
+static void ContestAICmd_unk_6D(void);
+static void ContestAICmd_unk_6E(void);
+static void ContestAICmd_unk_6F(void);
+static void ContestAICmd_unk_70(void);
+static void ContestAICmd_unk_71(void);
+static void ContestAICmd_unk_72(void);
+static void ContestAICmd_unk_73(void);
+static void ContestAICmd_unk_74(void);
+static void ContestAICmd_unk_75(void);
+static void ContestAICmd_unk_76(void);
+static void ContestAICmd_unk_77(void);
+static void ContestAICmd_unk_78(void);
+static void ContestAICmd_unk_79(void);
+static void ContestAICmd_unk_7A(void);
+static void ContestAICmd_unk_7B(void);
+static void ContestAICmd_unk_7C(void);
+static void ContestAICmd_unk_7D(void);
+static void ContestAICmd_unk_7E(void);
+static void ContestAICmd_unk_7F(void);
+static void ContestAICmd_unk_80(void);
+static void ContestAICmd_unk_81(void);
+static void ContestAICmd_check_for_exciting_move(void);
+static void ContestAICmd_unk_83(void);
+static void ContestAICmd_unk_84(void);
+static void ContestAICmd_unk_85(void);
+static void ContestAICmd_unk_86(void);
+static void ContestAICmd_unk_87(void);
+
+typedef void (* ContestAICmdFunc)(void);
+
+static const ContestAICmdFunc sContestAICmdTable[] =
+{
+ ContestAICmd_unk_00, // 0x00
+ ContestAICmd_get_turn, // 0x01
+ ContestAICmd_unk_02, // 0x02
+ ContestAICmd_unk_03, // 0x03
+ ContestAICmd_unk_04, // 0x04
+ ContestAICmd_unk_05, // 0x05
+ ContestAICmd_get_excitement, // 0x06
+ ContestAICmd_unk_07, // 0x07
+ ContestAICmd_unk_08, // 0x08
+ ContestAICmd_unk_09, // 0x09
+ ContestAICmd_unk_0A, // 0x0A
+ ContestAICmd_get_user_order, // 0x0B
+ ContestAICmd_unk_0C, // 0x0C
+ ContestAICmd_unk_0D, // 0x0D
+ ContestAICmd_unk_0E, // 0x0E
+ ContestAICmd_unk_0F, // 0x0F
+ ContestAICmd_get_user_condition_maybe, // 0x10
+ ContestAICmd_unk_11, // 0x11
+ ContestAICmd_unk_12, // 0x12
+ ContestAICmd_unk_13, // 0x13
+ ContestAICmd_unk_14, // 0x14
+ ContestAICmd_unk_15, // 0x15
+ ContestAICmd_unk_16, // 0x16
+ ContestAICmd_unk_17, // 0x17
+ ContestAICmd_unk_18, // 0x18
+ ContestAICmd_unk_19, // 0x19
+ ContestAICmd_unk_1A, // 0x1A
+ ContestAICmd_unk_1B, // 0x1B
+ ContestAICmd_unk_1C, // 0x1C
+ ContestAICmd_unk_1D, // 0x1D
+ ContestAICmd_unk_1E, // 0x1E
+ ContestAICmd_get_contest_type, // 0x1F
+ ContestAICmd_unk_20, // 0x20
+ ContestAICmd_unk_21, // 0x21
+ ContestAICmd_get_move_excitement, // 0x22
+ ContestAICmd_unk_23, // 0x23
+ ContestAICmd_unk_24, // 0x24
+ ContestAICmd_unk_25, // 0x25
+ ContestAICmd_unk_26, // 0x26
+ ContestAICmd_get_move_effect, // 0x27
+ ContestAICmd_unk_28, // 0x28
+ ContestAICmd_unk_29, // 0x29
+ ContestAICmd_get_move_effect_type, // 0x2A
+ ContestAICmd_unk_2B, // 0x2B
+ ContestAICmd_unk_2C, // 0x2C
+ ContestAICmd_check_move_has_highest_appeal, // 0x2D
+ ContestAICmd_unk_2E, // 0x2E
+ ContestAICmd_unk_2F, // 0x2F
+ ContestAICmd_unk_30, // 0x30
+ ContestAICmd_unk_31, // 0x31
+ ContestAICmd_unk_32, // 0x32
+ ContestAICmd_unk_33, // 0x33
+ ContestAICmd_unk_34, // 0x34
+ ContestAICmd_unk_35, // 0x35
+ ContestAICmd_unk_36, // 0x36
+ ContestAICmd_unk_37, // 0x37
+ ContestAICmd_unk_38, // 0x38
+ ContestAICmd_unk_39, // 0x39
+ ContestAICmd_unk_3A, // 0x3A
+ ContestAICmd_get_move_used_count, // 0x3B
+ ContestAICmd_unk_3C, // 0x3C
+ ContestAICmd_unk_3D, // 0x3D
+ ContestAICmd_unk_3E, // 0x3E
+ ContestAICmd_unk_3F, // 0x3F
+ ContestAICmd_check_combo_starter, // 0x40
+ ContestAICmd_unk_41, // 0x41
+ ContestAICmd_unk_42, // 0x42
+ ContestAICmd_check_combo_finisher, // 0x43
+ ContestAICmd_unk_44, // 0x44
+ ContestAICmd_unk_45, // 0x45
+ ContestAICmd_check_would_finish_combo, // 0x46
+ ContestAICmd_unk_47, // 0x47
+ ContestAICmd_unk_48, // 0x48
+ ContestAICmd_get_condition, // 0x49
+ ContestAICmd_unk_4A, // 0x4A
+ ContestAICmd_unk_4B, // 0x4B
+ ContestAICmd_unk_4C, // 0x4C
+ ContestAICmd_unk_4D, // 0x4D
+ ContestAICmd_get_used_combo_starter, // 0x4E
+ ContestAICmd_unk_4F, // 0x4F
+ ContestAICmd_unk_50, // 0x50
+ ContestAICmd_unk_51, // 0x51
+ ContestAICmd_unk_52, // 0x52
+ ContestAICmd_check_can_participate, // 0x53
+ ContestAICmd_unk_54, // 0x54
+ ContestAICmd_unk_55, // 0x55
+ ContestAICmd_get_val_812A188, // 0x56
+ ContestAICmd_unk_57, // 0x57
+ ContestAICmd_unk_58, // 0x58
+ ContestAICmd_unk_59, // 0x59
+ ContestAICmd_unk_5A, // 0x5A
+ ContestAICmd_unk_5B, // 0x5B
+ ContestAICmd_unk_5C, // 0x5C
+ ContestAICmd_unk_5D, // 0x5D
+ ContestAICmd_unk_5E, // 0x5E
+ ContestAICmd_unk_5F, // 0x5F
+ ContestAICmd_unk_60, // 0x60
+ ContestAICmd_unk_61, // 0x61
+ ContestAICmd_unk_62, // 0x62
+ ContestAICmd_unk_63, // 0x63
+ ContestAICmd_unk_64, // 0x64
+ ContestAICmd_unk_65, // 0x65
+ ContestAICmd_unk_66, // 0x66
+ ContestAICmd_unk_67, // 0x67
+ ContestAICmd_unk_68, // 0x68
+ ContestAICmd_unk_69, // 0x69
+ ContestAICmd_unk_6A, // 0x6A
+ ContestAICmd_unk_6B, // 0x6B
+ ContestAICmd_unk_6C, // 0x6C
+ ContestAICmd_unk_6D, // 0x6D
+ ContestAICmd_unk_6E, // 0x6E
+ ContestAICmd_unk_6F, // 0x6F
+ ContestAICmd_unk_70, // 0x70
+ ContestAICmd_unk_71, // 0x71
+ ContestAICmd_unk_72, // 0x72
+ ContestAICmd_unk_73, // 0x73
+ ContestAICmd_unk_74, // 0x74
+ ContestAICmd_unk_75, // 0x75
+ ContestAICmd_unk_76, // 0x76
+ ContestAICmd_unk_77, // 0x77
+ ContestAICmd_unk_78, // 0x78
+ ContestAICmd_unk_79, // 0x79
+ ContestAICmd_unk_7A, // 0x7A
+ ContestAICmd_unk_7B, // 0x7B
+ ContestAICmd_unk_7C, // 0x7C
+ ContestAICmd_unk_7D, // 0x7D
+ ContestAICmd_unk_7E, // 0x7E
+ ContestAICmd_unk_7F, // 0x7F
+ ContestAICmd_unk_80, // 0x80
+ ContestAICmd_unk_81, // 0x81
+ ContestAICmd_check_for_exciting_move, // 0x82
+ ContestAICmd_unk_83, // 0x83
+ ContestAICmd_unk_84, // 0x84
+ ContestAICmd_unk_85, // 0x85
+ ContestAICmd_unk_86, // 0x86
+ ContestAICmd_unk_87, // 0x87
+};
+
+static void ContestAI_DoAIProcessing(void);
+static bool8 sub_8128A7C(u8);
+static void sub_812ACA4(u8 *);
+static u8 sub_812ACC8(void);
+
+void ContestAI_ResetAI(u8 var)
+{
+ int i;
+ memset(eContestAI, 0, sizeof(struct ContestAIInfo));
+
+ for(i = 0; i < 4; i++)
+ eContestAI->unk5[i] = 100;
+
+ eContestAI->unk41 = var;
+ eContestAI->unk40 = 0;
+ eContestAI->flags = gContestMons[eContestAI->unk41].flags;
+}
+
+u8 ContestAI_GetActionToUse(void)
+{
+ while(eContestAI->flags != 0)
+ {
+ if(eContestAI->flags & 1)
+ {
+ eContestAI->aiState = 0;
+ ContestAI_DoAIProcessing();
+ }
+ eContestAI->flags >>= 1;
+ eContestAI->unk10++;
+ eContestAI->unk4 = 0;
+ }
+
+ while (1)
+ {
+ u8 rval = Random() & 3;
+ u8 r2 = eContestAI->unk5[rval];
+ int i;
+ for (i = 0; i < 4; i++)
+ {
+ if (r2 < eContestAI->unk5[i])
+ break;
+ }
+ if (i == 4)
+ return rval;
+ }
+}
+
+static void ContestAI_DoAIProcessing(void)
+{
+ while(eContestAI->aiState != CONTESTAI_FINISHED)
+ {
+ switch(eContestAI->aiState)
+ {
+ case CONTESTAI_DO_NOT_PROCESS:
+ break;
+ case CONTESTAI_SETTING_UP:
+ gAIScriptPtr = gContestAIs[eContestAI->unk10];
+
+ if(gContestMons[eContestAI->unk41].moves[eContestAI->unk4] == 0)
+ eContestAI->unk2 = 0; // don't process a move that doesn't exist.
+ else
+ eContestAI->unk2 = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+ eContestAI->aiState++;
+ break;
+ case CONTESTAI_PROCESSING:
+ if(eContestAI->unk2 != 0)
+ sContestAICmdTable[*gAIScriptPtr](); // run the command.
+ else
+ {
+ eContestAI->unk5[eContestAI->unk4] = 0; // don't consider a move that doesn't exist.
+ eContestAI->aiAction |= 1;
+ }
+ if(eContestAI->aiAction & 1)
+ {
+ eContestAI->unk4++;
+ if(eContestAI->unk4 < 4)
+ eContestAI->aiState = 0;
+ else
+ eContestAI->aiState++;
+ eContestAI->aiAction &= 0xFE; // TODO: Define action flags
+ }
+ break;
+ }
+ }
+}
+
+static u8 sub_8128A7C(u8 var)
+{
+ int i;
+
+ for(i = 0; i < 4; i++)
+ if(shared192D0.unk0[i] == var)
+ break;
+
+ return i;
+}
+
+static void ContestAICmd_unk_00(void)
+{
+ s16 score = eContestAI->unk5[eContestAI->unk4] + (s8)gAIScriptPtr[1];
+
+ if (score > 255)
+ score = 255;
+ else if (score < 0)
+ score = 0;
+
+ eContestAI->unk5[eContestAI->unk4] = score;
+
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_get_turn(void)
+{
+ eContestAI->scriptResult = sContest.turnNumber;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_02(void)
+{
+ ContestAICmd_get_turn();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_03(void)
+{
+ ContestAICmd_get_turn();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_04(void)
+{
+ ContestAICmd_get_turn();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_05(void)
+{
+ ContestAICmd_get_turn();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_excitement(void)
+{
+ eContestAI->scriptResult = sContest.applauseLevel;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_07(void)
+{
+ ContestAICmd_get_excitement();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_08(void)
+{
+ ContestAICmd_get_excitement();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_09(void)
+{
+ ContestAICmd_get_excitement();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_0A(void)
+{
+ ContestAICmd_get_excitement();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_user_order(void)
+{
+ eContestAI->scriptResult = shared192D0.unk0[eContestAI->unk41];
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_0C(void)
+{
+ ContestAICmd_get_user_order();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_0D(void)
+{
+ ContestAICmd_get_user_order();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_0E(void)
+{
+ ContestAICmd_get_user_order();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_0F(void)
+{
+ ContestAICmd_get_user_order();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_user_condition_maybe(void)
+{
+ eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unkD / 10;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_11(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_12(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_13(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_14(void)
+{
+ ContestAICmd_get_user_condition_maybe();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_15(void)
+{
+ eContestAI->scriptResult = sContestantStatus[eContestAI->unk41].unk4;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_16(void)
+{
+ ContestAICmd_unk_15();
+
+ if(eContestAI->scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_17(void)
+{
+ ContestAICmd_unk_15();
+
+ if(eContestAI->scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_18(void)
+{
+ ContestAICmd_unk_15();
+
+ if(eContestAI->scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_19(void)
+{
+ ContestAICmd_unk_15();
+
+ if(eContestAI->scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_1A(void)
+{
+ eContestAI->scriptResult = gUnknown_02038670[eContestAI->unk41];
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_1B(void)
+{
+ ContestAICmd_unk_1A();
+
+ if(eContestAI->scriptResult < (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_1C(void)
+{
+ ContestAICmd_unk_1A();
+
+ if(eContestAI->scriptResult > (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_1D(void)
+{
+ ContestAICmd_unk_1A();
+
+ if(eContestAI->scriptResult == (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_1E(void)
+{
+ ContestAICmd_unk_1A();
+
+ if(eContestAI->scriptResult != (s16)T1_READ_16(gAIScriptPtr + 0))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_get_contest_type(void)
+{
+ eContestAI->scriptResult = gSpecialVar_ContestCategory;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_20(void)
+{
+ ContestAICmd_get_contest_type();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_21(void)
+{
+ ContestAICmd_get_contest_type();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_move_excitement(void)
+{
+ eContestAI->scriptResult = Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[eContestAI->unk4]);
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_23(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if(eContestAI->scriptResult < (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_24(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if(eContestAI->scriptResult > (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_25(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if(eContestAI->scriptResult == (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_26(void)
+{
+ ContestAICmd_get_move_excitement();
+
+ if(eContestAI->scriptResult != (s8)gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_move_effect(void)
+{
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ eContestAI->scriptResult = gContestMoves[move].effect;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_28(void)
+{
+ ContestAICmd_get_move_effect();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_29(void)
+{
+ ContestAICmd_get_move_effect();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_move_effect_type(void)
+{
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_2B(void)
+{
+ ContestAICmd_get_move_effect_type();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_2C(void)
+{
+ ContestAICmd_get_move_effect_type();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_check_move_has_highest_appeal(void)
+{
+ int i;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+ u8 appeal = gContestEffects[gContestMoves[move].effect].appeal;
+
+ for(i = 0; i < 4; i++)
+ {
+ u16 newMove = gContestMons[eContestAI->unk41].moves[i];
+ if(newMove != 0 && appeal < gContestEffects[gContestMoves[newMove].effect].appeal)
+ break;
+ }
+
+ if(i == 4)
+ eContestAI->scriptResult = TRUE;
+ else
+ eContestAI->scriptResult = FALSE;
+
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_2E(void)
+{
+ ContestAICmd_check_move_has_highest_appeal();
+
+ if(eContestAI->scriptResult != FALSE)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_2F(void)
+{
+ int i;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+ u8 jam = gContestEffects[gContestMoves[move].effect].jam;
+
+ for(i = 0; i < 4; i++)
+ {
+ u16 newMove = gContestMons[eContestAI->unk41].moves[i];
+ if(newMove != 0 && jam < gContestEffects[gContestMoves[newMove].effect].jam)
+ break;
+ }
+
+ if(i == 4)
+ eContestAI->scriptResult = TRUE;
+ else
+ eContestAI->scriptResult = FALSE;
+
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_30(void)
+{
+ ContestAICmd_unk_2F();
+
+ if(eContestAI->scriptResult != FALSE)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_31(void)
+{
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].appeal / 10;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_32(void)
+{
+ ContestAICmd_unk_31();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_33(void)
+{
+ ContestAICmd_unk_31();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_34(void)
+{
+ ContestAICmd_unk_31();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_35(void)
+{
+ ContestAICmd_unk_31();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_36(void)
+{
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].jam / 10;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_37(void)
+{
+ ContestAICmd_unk_36();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_38(void)
+{
+ ContestAICmd_unk_36();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_39(void)
+{
+ ContestAICmd_unk_36();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_3A(void)
+{
+ ContestAICmd_unk_36();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_move_used_count(void)
+{
+ s16 result;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ if(move != sContestantStatus[eContestAI->unk41].prevMove)
+ result = 0; // move is unique and not reused.
+ else
+ result = sContestantStatus[eContestAI->unk41].moveRepeatCount + 1;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_3C(void)
+{
+ ContestAICmd_get_move_used_count();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_3D(void)
+{
+ ContestAICmd_get_move_used_count();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_3E(void)
+{
+ ContestAICmd_get_move_used_count();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_3F(void)
+{
+ ContestAICmd_get_move_used_count();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_check_combo_starter(void)
+{
+ u8 result = 0;
+ int i;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ for(i = 0; i < 4; i++)
+ {
+ if (gContestMons[eContestAI->unk41].moves[i])
+ {
+ result = AreMovesContestCombo(move, gContestMons[eContestAI->unk41].moves[i]);
+ if (result)
+ {
+ result = 1;
+ break;
+ }
+ }
+ }
+
+ if (result)
+ result = 1;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_41(void)
+{
+ ContestAICmd_check_combo_starter();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_42(void)
+{
+ ContestAICmd_check_combo_starter();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_check_combo_finisher(void)
+{
+ u8 result = 0;
+ int i;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ for(i = 0; i < 4; i++)
+ {
+ if (gContestMons[eContestAI->unk41].moves[i])
+ {
+ result = AreMovesContestCombo(gContestMons[eContestAI->unk41].moves[i], move);
+ if (result)
+ {
+ result = 1;
+ break;
+ }
+ }
+ }
+
+ if (result)
+ result = 1;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_44(void)
+{
+ ContestAICmd_check_combo_finisher();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_45(void)
+{
+ ContestAICmd_check_combo_finisher();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_check_would_finish_combo(void)
+{
+ u8 result = 0;
+ u16 move = gContestMons[eContestAI->unk41].moves[eContestAI->unk4];
+
+ if(sContestantStatus[eContestAI->unk41].prevMove)
+ result = AreMovesContestCombo(sContestantStatus[eContestAI->unk41].prevMove, move);
+
+ if(result)
+ result = 1;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_47(void)
+{
+ ContestAICmd_check_would_finish_combo();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_48(void)
+{
+ ContestAICmd_check_would_finish_combo();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_get_condition(void)
+{
+ int var = sub_8128A7C(gAIScriptPtr[1]);
+
+ eContestAI->scriptResult = sContestantStatus[var].unkD / 10;
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_4A(void)
+{
+ ContestAICmd_get_condition();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_4B(void)
+{
+ ContestAICmd_get_condition();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_4C(void)
+{
+ ContestAICmd_get_condition();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_4D(void)
+{
+ ContestAICmd_get_condition();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_get_used_combo_starter(void)
+{
+ u16 result = 0;
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+
+ if(sub_80B214C(var))
+ result = gContestMoves[sContestantStatus[var].prevMove].comboStarterId ? 1 : 0;
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_4F(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_50(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_51(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_52(void)
+{
+ ContestAICmd_get_used_combo_starter();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_check_can_participate(void)
+{
+ if(Contest_IsMonsTurnDisabled(sub_8128A7C(gAIScriptPtr[1])))
+ eContestAI->scriptResult = FALSE;
+ else
+ eContestAI->scriptResult = TRUE;
+
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_54(void)
+{
+ ContestAICmd_check_can_participate();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_55(void)
+{
+ ContestAICmd_check_can_participate();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_get_val_812A188(void)
+{
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+
+ eContestAI->scriptResult = sContestantStatus[var].unk15_3;
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_57(void)
+{
+ ContestAICmd_get_val_812A188();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_58(void)
+{
+ ContestAICmd_get_val_812A188();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_59(void)
+{
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+
+ eContestAI->scriptResult = sContestantStatus[var].unk4 - sContestantStatus[eContestAI->unk41].unk4;
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_5A(void)
+{
+ ContestAICmd_unk_59();
+
+ if(eContestAI->scriptResult < 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_5B(void)
+{
+ ContestAICmd_unk_59();
+
+ if(eContestAI->scriptResult > 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_5C(void)
+{
+ ContestAICmd_unk_59();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_5D(void)
+{
+ ContestAICmd_unk_59();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_5E(void)
+{
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+
+ eContestAI->scriptResult = gUnknown_02038670[var] - gUnknown_02038670[eContestAI->unk41];
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_5F(void)
+{
+ ContestAICmd_unk_5E();
+
+ if(eContestAI->scriptResult < 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_60(void)
+{
+ ContestAICmd_unk_5E();
+
+ if(eContestAI->scriptResult > 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_61(void)
+{
+ ContestAICmd_unk_5E();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_62(void)
+{
+ ContestAICmd_unk_5E();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_63(void)
+{
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+ u8 var2 = gAIScriptPtr[2];
+ u16 move = sContest.unk19220[var2][var];
+
+ eContestAI->scriptResult = gContestMoves[move].effect;
+ gAIScriptPtr += 3;
+}
+
+static void ContestAICmd_unk_64(void)
+{
+ ContestAICmd_unk_63();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_65(void)
+{
+ ContestAICmd_unk_63();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_66(void)
+{
+ ContestAICmd_unk_63();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_67(void)
+{
+ ContestAICmd_unk_63();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_68(void)
+{
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+ u8 var2 = gAIScriptPtr[2];
+ s8 result = sContest.unk19248[var2][var];
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 3;
+}
+
+static void ContestAICmd_unk_69(void)
+{
+ ContestAICmd_unk_68();
+
+ if(eContestAI->scriptResult < gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_6A(void)
+{
+ ContestAICmd_unk_68();
+
+ if(eContestAI->scriptResult > gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_6B(void)
+{
+ ContestAICmd_unk_68();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_6C(void)
+{
+ ContestAICmd_unk_68();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_6D(void)
+{
+ u8 var = sub_8128A7C(gAIScriptPtr[1]);
+ u8 var2 = gAIScriptPtr[2];
+ u16 move = sContest.unk19220[var2][var];
+
+ eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType;
+ gAIScriptPtr += 3;
+}
+
+static void ContestAICmd_unk_6E(void)
+{
+ ContestAICmd_unk_6D();
+
+ if(eContestAI->scriptResult == gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_6F(void)
+{
+ ContestAICmd_unk_6D();
+
+ if(eContestAI->scriptResult != gAIScriptPtr[0])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+ else
+ gAIScriptPtr += 5;
+}
+
+static void ContestAICmd_unk_70(void)
+{
+ eContestAI->scriptArr[gAIScriptPtr[1]] = eContestAI->scriptResult;
+ gAIScriptPtr += 2;
+}
+
+static void ContestAICmd_unk_71(void)
+{
+ eContestAI->scriptArr[gAIScriptPtr[1]] = T1_READ_16(gAIScriptPtr + 2);
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_72(void)
+{
+ // wtf? shouldn't T1_READ_16 work here? why the signed 8 load by gAIScriptPtr[2]?
+ eContestAI->scriptArr[gAIScriptPtr[1]] += ((s8)gAIScriptPtr[2] | gAIScriptPtr[3] << 8);
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_73(void)
+{
+ eContestAI->scriptArr[gAIScriptPtr[1]] += eContestAI->scriptArr[gAIScriptPtr[2]];
+ gAIScriptPtr += 3;
+}
+
+static void ContestAICmd_unk_74(void)
+{
+ eContestAI->scriptArr[gAIScriptPtr[1]] += eContestAI->scriptArr[gAIScriptPtr[2]];
+ gAIScriptPtr += 3;
+}
+
+static void ContestAICmd_unk_75(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] < T1_READ_16(gAIScriptPtr + 2))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
+ else
+ gAIScriptPtr += 8;
+}
+
+static void ContestAICmd_unk_76(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] > T1_READ_16(gAIScriptPtr + 2))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
+ else
+ gAIScriptPtr += 8;
+}
+
+static void ContestAICmd_unk_77(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] == T1_READ_16(gAIScriptPtr + 2))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
+ else
+ gAIScriptPtr += 8;
+}
+
+static void ContestAICmd_unk_78(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] != T1_READ_16(gAIScriptPtr + 2))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
+ else
+ gAIScriptPtr += 8;
+}
+
+static void ContestAICmd_unk_79(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] < (eContestAI->scriptArr[gAIScriptPtr[2]]))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+static void ContestAICmd_unk_7A(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] > (eContestAI->scriptArr[gAIScriptPtr[2]]))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+static void ContestAICmd_unk_7B(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] == (eContestAI->scriptArr[gAIScriptPtr[2]]))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+static void ContestAICmd_unk_7C(void)
+{
+ if(eContestAI->scriptArr[gAIScriptPtr[1]] != (eContestAI->scriptArr[gAIScriptPtr[2]]))
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+static void ContestAICmd_unk_7D(void)
+{
+ if((Random() & 0xFF) < eContestAI->scriptArr[gAIScriptPtr[1]])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+static void ContestAICmd_unk_7E(void)
+{
+ if((Random() & 0xFF) > eContestAI->scriptArr[gAIScriptPtr[1]])
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+// jump
+static void ContestAICmd_unk_7F(void)
+{
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+}
+
+static void ContestAICmd_unk_80(void)
+{
+ sub_812ACA4(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
+}
+
+static void ContestAICmd_unk_81(void)
+{
+ if(!sub_812ACC8())
+ eContestAI->aiAction |= 1;
+}
+
+// push stack?
+static void sub_812ACA4(u8 *ptr)
+{
+ u8 unk40 = eContestAI->unk40++;
+ eContestAI->stack[unk40] = (u32)ptr;
+}
+
+// pop stack?
+static bool8 sub_812ACC8(void)
+{
+ if(eContestAI->unk40 != 0)
+ {
+ --eContestAI->unk40;
+ gAIScriptPtr = (u8 *)eContestAI->stack[eContestAI->unk40];
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+static void ContestAICmd_check_for_exciting_move(void)
+{
+ int result = 0;
+ int i;
+
+ for(i = 0; i < 4; i++)
+ {
+ if(gContestMons[eContestAI->unk41].moves[i])
+ {
+ // why is it using gSharedMem + 0x19325? that does not exist...
+ if(Contest_GetMoveExcitement(gContestMons[eContestAI->unk41].moves[i]) == 1)
+ {
+ result = 1;
+ break;
+ }
+ }
+ }
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 1;
+}
+
+static void ContestAICmd_unk_83(void)
+{
+ ContestAICmd_check_for_exciting_move();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_84(void)
+{
+ ContestAICmd_check_for_exciting_move();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_85(void)
+{
+ int result = 0;
+ int i;
+ u16 arg = T1_READ_16(gAIScriptPtr + 1);
+
+ for(i = 0; i < 4; i++)
+ {
+ u16 move = gContestMons[eContestAI->unk41].moves[i];
+ if(move == arg)
+ {
+ result = 1;
+ break;
+ }
+ }
+
+ eContestAI->scriptResult = result;
+ gAIScriptPtr += 3;
+}
+
+static void ContestAICmd_unk_86(void)
+{
+ ContestAICmd_unk_85();
+
+ if(eContestAI->scriptResult != 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
+
+static void ContestAICmd_unk_87(void)
+{
+ ContestAICmd_unk_85();
+
+ if(eContestAI->scriptResult == 0)
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 0);
+ else
+ gAIScriptPtr += 4;
+}
diff --git a/asm/crt0.s b/src/crt0.s
index 049392be9..049392be9 100644
--- a/asm/crt0.s
+++ b/src/crt0.s
diff --git a/src/data/battle_strings_de.h b/src/data/battle_strings_de.h
index a3d51f2a5..a19c0fc6c 100755..100644
--- a/src/data/battle_strings_de.h
+++ b/src/data/battle_strings_de.h
@@ -1218,7 +1218,7 @@ const u8 *const gBattleStringsTable[] =
};
// below are lists of battle string enums and NOT pointers to the strings.
-const u16 gMissStrings[] =
+const u16 gMissStringIds[] =
{
BATTLE_TEXT_AttackMissed,
BATTLE_TEXT_ProtectedItself,
diff --git a/src/data/battle_strings_en.h b/src/data/battle_strings_en.h
index f29e48410..67eb70ee1 100755..100644
--- a/src/data/battle_strings_en.h
+++ b/src/data/battle_strings_en.h
@@ -1218,7 +1218,7 @@ const u8 *const gBattleStringsTable[] =
};
// below are lists of battle string enums and NOT pointers to the strings.
-const u16 gMissStrings[] =
+const u16 gMissStringIds[] =
{
BATTLE_TEXT_AttackMissed,
BATTLE_TEXT_ProtectedItself,
diff --git a/src/data/battle_tower/trainers.h b/src/data/battle_tower/trainers.h
index b5eb3da7a..ae204f8ea 100644
--- a/src/data/battle_tower/trainers.h
+++ b/src/data/battle_tower/trainers.h
@@ -1,7 +1,7 @@
const struct BattleTowerTrainer gBattleTowerTrainers[] =
{
{
- .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .trainerClass = FACILITY_CLASS_YOUNGSTER,
.name = _("ALVIN"),
.teamFlags = 0x01,
.greeting = {
@@ -16,7 +16,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("DIRK"),
.teamFlags = 0x01,
.greeting = {
@@ -31,7 +31,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("CYBIL"),
.teamFlags = 0x02,
.greeting = {
@@ -46,7 +46,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("CHEN"),
.teamFlags = 0x05,
.greeting = {
@@ -61,7 +61,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("YOSHI"),
.teamFlags = 0x05,
.greeting = {
@@ -76,7 +76,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("TINA"),
.teamFlags = 0x0A,
.greeting = {
@@ -91,7 +91,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("COREY"),
.teamFlags = 0x41,
.greeting = {
@@ -106,7 +106,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("GORDON"),
.teamFlags = 0x01,
.greeting = {
@@ -121,7 +121,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_F,
+ .trainerClass = FACILITY_CLASS_TUBER_F,
.name = _("ANN"),
.teamFlags = 0x02,
.greeting = {
@@ -136,7 +136,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("JULIA"),
.teamFlags = 0x42,
.greeting = {
@@ -151,7 +151,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("GREGORY"),
.teamFlags = 0x01,
.greeting = {
@@ -166,7 +166,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("KEITH"),
.teamFlags = 0x01,
.greeting = {
@@ -181,7 +181,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("KENDRA"),
.teamFlags = 0x0A,
.greeting = {
@@ -196,7 +196,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("DEV"),
.teamFlags = 0x01,
.greeting = {
@@ -211,7 +211,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("CASSIE"),
.teamFlags = 0x0A,
.greeting = {
@@ -226,7 +226,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("JULIAN"),
.teamFlags = 0x05,
.greeting = {
@@ -241,7 +241,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("JOYCE"),
.teamFlags = 0x02,
.greeting = {
@@ -256,7 +256,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("LES"),
.teamFlags = 0x01,
.greeting = {
@@ -271,7 +271,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .trainerClass = FACILITY_CLASS_RICH_BOY,
.name = _("CLINTON"),
.teamFlags = 0x01,
.greeting = {
@@ -286,7 +286,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .trainerClass = FACILITY_CLASS_BUG_CATCHER,
.name = _("LEWIS"),
.teamFlags = 0x01,
.greeting = {
@@ -301,7 +301,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PICNICKER,
+ .trainerClass = FACILITY_CLASS_PICNICKER,
.name = _("RACHAEL"),
.teamFlags = 0x02,
.greeting = {
@@ -316,7 +316,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("HAROLD"),
.teamFlags = 0x09,
.greeting = {
@@ -331,7 +331,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_M,
+ .trainerClass = FACILITY_CLASS_TUBER_M,
.name = _("KIPP"),
.teamFlags = 0x01,
.greeting = {
@@ -346,7 +346,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("IRWIN"),
.teamFlags = 0x05,
.greeting = {
@@ -361,7 +361,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("EILEEN"),
.teamFlags = 0x0A,
.greeting = {
@@ -376,7 +376,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("ANNE"),
.teamFlags = 0x02,
.greeting = {
@@ -391,7 +391,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("RUTH"),
.teamFlags = 0x06,
.greeting = {
@@ -406,7 +406,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("JEREMY"),
.teamFlags = 0x40,
.greeting = {
@@ -421,7 +421,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("TREVOR"),
.teamFlags = 0x09,
.greeting = {
@@ -436,7 +436,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("COLETTE"),
.teamFlags = 0x06,
.greeting = {
@@ -451,7 +451,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("PAULA"),
.teamFlags = 0x42,
.greeting = {
@@ -466,7 +466,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("STANLY"),
.teamFlags = 0x41,
.greeting = {
@@ -481,7 +481,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("TROY"),
.teamFlags = 0x09,
.greeting = {
@@ -496,7 +496,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_M,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_M,
.name = _("ED"),
.teamFlags = 0x08,
.greeting = {
@@ -511,7 +511,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("ELLEN"),
.teamFlags = 0x04,
.greeting = {
@@ -526,7 +526,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("ARNIE"),
.teamFlags = 0x09,
.greeting = {
@@ -541,7 +541,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("HAL"),
.teamFlags = 0x09,
.greeting = {
@@ -556,7 +556,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("LAUREN"),
.teamFlags = 0x06,
.greeting = {
@@ -571,7 +571,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("STACY"),
.teamFlags = 0x06,
.greeting = {
@@ -586,7 +586,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("DARYL"),
.teamFlags = 0x81,
.greeting = {
@@ -601,7 +601,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("KATHY"),
.teamFlags = 0x04,
.greeting = {
@@ -616,7 +616,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("HARRIS"),
.teamFlags = 0x0C,
.greeting = {
@@ -631,7 +631,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("GLENN"),
.teamFlags = 0x80,
.greeting = {
@@ -646,7 +646,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("NICO"),
.teamFlags = 0x04,
.greeting = {
@@ -661,7 +661,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("BAILEY"),
.teamFlags = 0x41,
.greeting = {
@@ -676,7 +676,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("ABBIE"),
.teamFlags = 0x08,
.greeting = {
@@ -691,7 +691,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("AL"),
.teamFlags = 0x0C,
.greeting = {
@@ -706,7 +706,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("PEGGY"),
.teamFlags = 0x42,
.greeting = {
@@ -721,7 +721,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("NAOMI"),
.teamFlags = 0x04,
.greeting = {
@@ -736,7 +736,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("KENJI"),
.teamFlags = 0x0C,
.greeting = {
@@ -751,7 +751,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("ROSS"),
.teamFlags = 0x01,
.greeting = {
@@ -766,7 +766,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("EDNA"),
.teamFlags = 0x02,
.greeting = {
@@ -781,7 +781,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("ANTON"),
.teamFlags = 0x41,
.greeting = {
@@ -796,7 +796,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("MITCH"),
.teamFlags = 0x81,
.greeting = {
@@ -811,7 +811,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("ROD"),
.teamFlags = 0x42,
.greeting = {
@@ -826,7 +826,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("RICH"),
.teamFlags = 0x01,
.greeting = {
@@ -841,7 +841,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("DANIEL"),
.teamFlags = 0x80,
.greeting = {
@@ -856,7 +856,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("GLORIA"),
.teamFlags = 0x82,
.greeting = {
@@ -871,7 +871,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("NELSON"),
.teamFlags = 0x01,
.greeting = {
@@ -886,7 +886,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("FERRIS"),
.teamFlags = 0x41,
.greeting = {
@@ -901,7 +901,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("AMANDA"),
.teamFlags = 0x82,
.greeting = {
@@ -916,7 +916,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("MASON"),
.teamFlags = 0x10,
.greeting = {
@@ -931,7 +931,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("NATE"),
.teamFlags = 0x10,
.greeting = {
@@ -946,7 +946,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("MIRIAM"),
.teamFlags = 0x82,
.greeting = {
@@ -961,7 +961,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("THEO"),
.teamFlags = 0x40,
.greeting = {
@@ -976,7 +976,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("PAMELA"),
.teamFlags = 0x10,
.greeting = {
@@ -991,7 +991,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("ALISSA"),
.teamFlags = 0x20,
.greeting = {
@@ -1006,7 +1006,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("ARTHUR"),
.teamFlags = 0x20,
.greeting = {
@@ -1021,7 +1021,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("MARCY"),
.teamFlags = 0x82,
.greeting = {
@@ -1036,7 +1036,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("MILLER"),
.teamFlags = 0x10,
.greeting = {
@@ -1051,7 +1051,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("OLIVER"),
.teamFlags = 0x11,
.greeting = {
@@ -1066,7 +1066,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("MOLLY"),
.teamFlags = 0x12,
.greeting = {
@@ -1081,7 +1081,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("JASON"),
.teamFlags = 0x40,
.greeting = {
@@ -1096,7 +1096,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("AVA"),
.teamFlags = 0x20,
.greeting = {
@@ -1111,7 +1111,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("HANK"),
.teamFlags = 0x10,
.greeting = {
@@ -1126,7 +1126,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("PETER"),
.teamFlags = 0x20,
.greeting = {
@@ -1141,7 +1141,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("MINDY"),
.teamFlags = 0x20,
.greeting = {
@@ -1156,7 +1156,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("DWIGHT"),
.teamFlags = 0x11,
.greeting = {
@@ -1171,7 +1171,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("REENA"),
.teamFlags = 0x12,
.greeting = {
@@ -1186,7 +1186,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("MEGAN"),
.teamFlags = 0x10,
.greeting = {
@@ -1201,7 +1201,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("SIERRA"),
.teamFlags = 0x04,
.greeting = {
@@ -1216,7 +1216,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("ARNOLD"),
.teamFlags = 0x08,
.greeting = {
@@ -1231,7 +1231,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("XIN"),
.teamFlags = 0x04,
.greeting = {
@@ -1246,7 +1246,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("KELLY"),
.teamFlags = 0x02,
.greeting = {
@@ -1261,7 +1261,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("VANCE"),
.teamFlags = 0x80,
.greeting = {
@@ -1276,7 +1276,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("TOBY"),
.teamFlags = 0x01,
.greeting = {
@@ -1291,7 +1291,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("NORTON"),
.teamFlags = 0x20,
.greeting = {
@@ -1306,7 +1306,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("ZOE"),
.teamFlags = 0x02,
.greeting = {
@@ -1321,7 +1321,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("EMMA"),
.teamFlags = 0x20,
.greeting = {
@@ -1336,7 +1336,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("VINCE"),
.teamFlags = 0x04,
.greeting = {
@@ -1351,7 +1351,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("MARV"),
.teamFlags = 0x10,
.greeting = {
@@ -1366,7 +1366,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("TODD"),
.teamFlags = 0x40,
.greeting = {
@@ -1381,7 +1381,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("GAVIN"),
.teamFlags = 0x01,
.greeting = {
@@ -1396,7 +1396,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("QUINN"),
.teamFlags = 0x08,
.greeting = {
@@ -1411,7 +1411,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("JENN"),
.teamFlags = 0x02,
.greeting = {
@@ -1426,7 +1426,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("JOEL"),
.teamFlags = 0x10,
.greeting = {
@@ -1441,7 +1441,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("KYLE"),
.teamFlags = 0x0C,
.greeting = {
@@ -1456,7 +1456,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("BRET"),
.teamFlags = 0x01,
.greeting = {
@@ -1471,7 +1471,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("CARRIE"),
.teamFlags = 0x10,
.greeting = {
@@ -1486,7 +1486,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("GILLIAN"),
.teamFlags = 0x02,
.greeting = {
diff --git a/src/data/battle_tower/trainers_de.h b/src/data/battle_tower/trainers_de.h
index 86182da9d..db226c6a6 100644
--- a/src/data/battle_tower/trainers_de.h
+++ b/src/data/battle_tower/trainers_de.h
@@ -1,7 +1,7 @@
const struct BattleTowerTrainer gBattleTowerTrainers[] =
{
{
- .trainerClass = TRAINER_CLASS_YOUNGSTER,
+ .trainerClass = FACILITY_CLASS_YOUNGSTER,
.name = _("ALWIN"),
.teamFlags = 0x01,
.greeting = {
@@ -16,7 +16,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("DIRK"),
.teamFlags = 0x01,
.greeting = {
@@ -31,7 +31,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("SIBILLE"),
.teamFlags = 0x02,
.greeting = {
@@ -46,7 +46,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("OLAF"),
.teamFlags = 0x05,
.greeting = {
@@ -61,7 +61,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("JOST"),
.teamFlags = 0x05,
.greeting = {
@@ -76,7 +76,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("TINA"),
.teamFlags = 0x0A,
.greeting = {
@@ -91,7 +91,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("HAJO"),
.teamFlags = 0x41,
.greeting = {
@@ -106,7 +106,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("GEORG"),
.teamFlags = 0x01,
.greeting = {
@@ -121,7 +121,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_F,
+ .trainerClass = FACILITY_CLASS_TUBER_F,
.name = _("ANNE"),
.teamFlags = 0x02,
.greeting = {
@@ -136,7 +136,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("JULIA"),
.teamFlags = 0x42,
.greeting = {
@@ -151,7 +151,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("JOHANN"),
.teamFlags = 0x01,
.greeting = {
@@ -166,7 +166,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("KARL"),
.teamFlags = 0x01,
.greeting = {
@@ -181,7 +181,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("KENDRA"),
.teamFlags = 0x0A,
.greeting = {
@@ -196,7 +196,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("DAVID"),
.teamFlags = 0x01,
.greeting = {
@@ -211,7 +211,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("KEA"),
.teamFlags = 0x0A,
.greeting = {
@@ -226,7 +226,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("JULIAN"),
.teamFlags = 0x05,
.greeting = {
@@ -241,7 +241,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("JOSI"),
.teamFlags = 0x02,
.greeting = {
@@ -256,7 +256,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("LEIF"),
.teamFlags = 0x01,
.greeting = {
@@ -271,7 +271,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RICH_BOY,
+ .trainerClass = FACILITY_CLASS_RICH_BOY,
.name = _("INGO"),
.teamFlags = 0x01,
.greeting = {
@@ -286,7 +286,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_CATCHER,
+ .trainerClass = FACILITY_CLASS_BUG_CATCHER,
.name = _("LUDWIG"),
.teamFlags = 0x01,
.greeting = {
@@ -301,7 +301,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PICNICKER,
+ .trainerClass = FACILITY_CLASS_PICNICKER,
.name = _("RAJA"),
.teamFlags = 0x02,
.greeting = {
@@ -316,7 +316,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("HARALD"),
.teamFlags = 0x09,
.greeting = {
@@ -331,7 +331,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_TUBER_M,
+ .trainerClass = FACILITY_CLASS_TUBER_M,
.name = _("KIM"),
.teamFlags = 0x01,
.greeting = {
@@ -346,7 +346,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("ERWIN"),
.teamFlags = 0x05,
.greeting = {
@@ -361,7 +361,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("EIKA"),
.teamFlags = 0x0A,
.greeting = {
@@ -376,7 +376,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("ANNINA"),
.teamFlags = 0x02,
.greeting = {
@@ -391,7 +391,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("RUTH"),
.teamFlags = 0x06,
.greeting = {
@@ -406,7 +406,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("JENS"),
.teamFlags = 0x40,
.greeting = {
@@ -421,7 +421,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("TITUS"),
.teamFlags = 0x09,
.greeting = {
@@ -436,7 +436,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("NICOLA"),
.teamFlags = 0x06,
.greeting = {
@@ -451,7 +451,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("PAULA"),
.teamFlags = 0x42,
.greeting = {
@@ -466,7 +466,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("SÖREN"),
.teamFlags = 0x41,
.greeting = {
@@ -481,7 +481,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("RAINER"),
.teamFlags = 0x09,
.greeting = {
@@ -496,7 +496,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_M,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_M,
.name = _("FABIAN"),
.teamFlags = 0x08,
.greeting = {
@@ -511,7 +511,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("ELLEN"),
.teamFlags = 0x04,
.greeting = {
@@ -526,7 +526,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("ARNIE"),
.teamFlags = 0x09,
.greeting = {
@@ -541,7 +541,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("HARDI"),
.teamFlags = 0x09,
.greeting = {
@@ -556,7 +556,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("LINA"),
.teamFlags = 0x06,
.greeting = {
@@ -571,7 +571,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("SELINA"),
.teamFlags = 0x06,
.greeting = {
@@ -586,7 +586,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("DANTE"),
.teamFlags = 0x81,
.greeting = {
@@ -601,7 +601,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("KATJA"),
.teamFlags = 0x04,
.greeting = {
@@ -616,7 +616,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("HORST"),
.teamFlags = 0x0C,
.greeting = {
@@ -631,7 +631,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("GERRIT"),
.teamFlags = 0x80,
.greeting = {
@@ -646,7 +646,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("NIKO"),
.teamFlags = 0x04,
.greeting = {
@@ -661,7 +661,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("BALDO"),
.teamFlags = 0x41,
.greeting = {
@@ -676,7 +676,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("ALMA"),
.teamFlags = 0x08,
.greeting = {
@@ -691,7 +691,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CAMPER,
+ .trainerClass = FACILITY_CLASS_CAMPER,
.name = _("ADAM"),
.teamFlags = 0x0C,
.greeting = {
@@ -706,7 +706,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SCHOOL_KID_F,
+ .trainerClass = FACILITY_CLASS_SCHOOL_KID_F,
.name = _("GRETE"),
.teamFlags = 0x42,
.greeting = {
@@ -721,7 +721,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("NAOMI"),
.teamFlags = 0x04,
.greeting = {
@@ -736,7 +736,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_NINJA_BOY,
+ .trainerClass = FACILITY_CLASS_NINJA_BOY,
.name = _("KENO"),
.teamFlags = 0x0C,
.greeting = {
@@ -751,7 +751,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M,
.name = _("REMUS"),
.teamFlags = 0x01,
.greeting = {
@@ -766,7 +766,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F,
.name = _("EDITH"),
.teamFlags = 0x02,
.greeting = {
@@ -781,7 +781,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUIN_MANIAC,
+ .trainerClass = FACILITY_CLASS_RUIN_MANIAC,
.name = _("ANTON"),
.teamFlags = 0x41,
.greeting = {
@@ -796,7 +796,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_M,
+ .trainerClass = FACILITY_CLASS_SWIMMER_M,
.name = _("MALTE"),
.teamFlags = 0x81,
.greeting = {
@@ -811,7 +811,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HEX_MANIAC,
+ .trainerClass = FACILITY_CLASS_HEX_MANIAC,
.name = _("RAOUL"),
.teamFlags = 0x42,
.greeting = {
@@ -826,7 +826,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
.name = _("RICK"),
.teamFlags = 0x01,
.greeting = {
@@ -841,7 +841,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_M,
+ .trainerClass = FACILITY_CLASS_POKEFAN_M,
.name = _("DENNIS"),
.teamFlags = 0x80,
.greeting = {
@@ -856,7 +856,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_F,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_F,
.name = _("GLORIA"),
.teamFlags = 0x82,
.greeting = {
@@ -871,7 +871,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("NINO"),
.teamFlags = 0x01,
.greeting = {
@@ -886,7 +886,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_KINDLER,
+ .trainerClass = FACILITY_CLASS_KINDLER,
.name = _("FIETE"),
.teamFlags = 0x41,
.greeting = {
@@ -901,7 +901,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_AROMA_LADY,
+ .trainerClass = FACILITY_CLASS_AROMA_LADY,
.name = _("AMANDA"),
.teamFlags = 0x82,
.greeting = {
@@ -916,7 +916,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("MAREK"),
.teamFlags = 0x10,
.greeting = {
@@ -931,7 +931,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("NATHAN"),
.teamFlags = 0x10,
.greeting = {
@@ -946,7 +946,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LASS,
+ .trainerClass = FACILITY_CLASS_LASS,
.name = _("MIRIAM"),
.teamFlags = 0x82,
.greeting = {
@@ -961,7 +961,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMANIAC,
+ .trainerClass = FACILITY_CLASS_POKEMANIAC,
.name = _("THEO"),
.teamFlags = 0x40,
.greeting = {
@@ -976,7 +976,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
.name = _("PIA"),
.teamFlags = 0x10,
.greeting = {
@@ -991,7 +991,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEFAN_F,
+ .trainerClass = FACILITY_CLASS_POKEFAN_F,
.name = _("ALISSA"),
.teamFlags = 0x20,
.greeting = {
@@ -1006,7 +1006,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("ARTUR"),
.teamFlags = 0x20,
.greeting = {
@@ -1021,7 +1021,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMER_F,
+ .trainerClass = FACILITY_CLASS_SWIMMER_F,
.name = _("MAJA"),
.teamFlags = 0x82,
.greeting = {
@@ -1036,7 +1036,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("MARIUS"),
.teamFlags = 0x10,
.greeting = {
@@ -1051,7 +1051,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BIRD_KEEPER,
+ .trainerClass = FACILITY_CLASS_BIRD_KEEPER,
.name = _("OLIVER"),
.teamFlags = 0x11,
.greeting = {
@@ -1066,7 +1066,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F,
.name = _("MOLLY"),
.teamFlags = 0x12,
.greeting = {
@@ -1081,7 +1081,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("JÖRG"),
.teamFlags = 0x40,
.greeting = {
@@ -1096,7 +1096,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("ANKE"),
.teamFlags = 0x20,
.greeting = {
@@ -1111,7 +1111,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_FISHERMAN,
+ .trainerClass = FACILITY_CLASS_FISHERMAN,
.name = _("HANS"),
.teamFlags = 0x10,
.greeting = {
@@ -1126,7 +1126,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SAILOR,
+ .trainerClass = FACILITY_CLASS_SAILOR,
.name = _("PETER"),
.teamFlags = 0x20,
.greeting = {
@@ -1141,7 +1141,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("MARA"),
.teamFlags = 0x20,
.greeting = {
@@ -1156,7 +1156,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BUG_MANIAC,
+ .trainerClass = FACILITY_CLASS_BUG_MANIAC,
.name = _("DARIUS"),
.teamFlags = 0x11,
.greeting = {
@@ -1171,7 +1171,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F,
.name = _("REGINA"),
.teamFlags = 0x12,
.greeting = {
@@ -1186,7 +1186,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PARASOL_LADY,
+ .trainerClass = FACILITY_CLASS_PARASOL_LADY,
.name = _("MAIKE"),
.teamFlags = 0x10,
.greeting = {
@@ -1201,7 +1201,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F,
+ .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
.name = _("SANDRA"),
.teamFlags = 0x04,
.greeting = {
@@ -1216,7 +1216,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M,
.name = _("ARNOLD"),
.teamFlags = 0x08,
.greeting = {
@@ -1231,7 +1231,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BLACK_BELT,
+ .trainerClass = FACILITY_CLASS_BLACK_BELT,
.name = _("XENO"),
.teamFlags = 0x04,
.greeting = {
@@ -1246,7 +1246,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("KARLA"),
.teamFlags = 0x02,
.greeting = {
@@ -1261,7 +1261,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COLLECTOR,
+ .trainerClass = FACILITY_CLASS_COLLECTOR,
.name = _("VOLKER"),
.teamFlags = 0x80,
.greeting = {
@@ -1276,7 +1276,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
+ .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
.name = _("TOBIAS"),
.teamFlags = 0x01,
.greeting = {
@@ -1291,7 +1291,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GENTLEMAN,
+ .trainerClass = FACILITY_CLASS_GENTLEMAN,
.name = _("NORBERT"),
.teamFlags = 0x20,
.greeting = {
@@ -1306,7 +1306,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BATTLE_GIRL,
+ .trainerClass = FACILITY_CLASS_BATTLE_GIRL,
.name = _("ZITA"),
.teamFlags = 0x02,
.greeting = {
@@ -1321,7 +1321,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_BEAUTY,
+ .trainerClass = FACILITY_CLASS_BEAUTY,
.name = _("ELKE"),
.teamFlags = 0x20,
.greeting = {
@@ -1336,7 +1336,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_HIKER,
+ .trainerClass = FACILITY_CLASS_HIKER,
.name = _("VITUS"),
.teamFlags = 0x04,
.greeting = {
@@ -1351,7 +1351,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("MALTE"),
.teamFlags = 0x10,
.greeting = {
@@ -1366,7 +1366,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M,
+ .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M,
.name = _("TIM"),
.teamFlags = 0x40,
.greeting = {
@@ -1381,7 +1381,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_GUITARIST,
+ .trainerClass = FACILITY_CLASS_GUITARIST,
.name = _("GAVIN"),
.teamFlags = 0x01,
.greeting = {
@@ -1396,7 +1396,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_PSYCHIC_M,
+ .trainerClass = FACILITY_CLASS_PSYCHIC_M,
.name = _("RALF"),
.teamFlags = 0x08,
.greeting = {
@@ -1411,7 +1411,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_F,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_F,
.name = _("JENNY"),
.teamFlags = 0x02,
.greeting = {
@@ -1426,7 +1426,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_M,
+ .trainerClass = FACILITY_CLASS_EXPERT_M,
.name = _("JOEL"),
.teamFlags = 0x10,
.greeting = {
@@ -1441,7 +1441,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_DRAGON_TAMER,
+ .trainerClass = FACILITY_CLASS_DRAGON_TAMER,
.name = _("KOLJA"),
.teamFlags = 0x0C,
.greeting = {
@@ -1456,7 +1456,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_COOL_TRAINER_M,
+ .trainerClass = FACILITY_CLASS_COOL_TRAINER_M,
.name = _("BILL"),
.teamFlags = 0x01,
.greeting = {
@@ -1471,7 +1471,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_EXPERT_F,
+ .trainerClass = FACILITY_CLASS_EXPERT_F,
.name = _("CALLA"),
.teamFlags = 0x10,
.greeting = {
@@ -1486,7 +1486,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] =
},
},
{
- .trainerClass = TRAINER_CLASS_LADY,
+ .trainerClass = FACILITY_CLASS_LADY,
.name = _("GESA"),
.teamFlags = 0x02,
.greeting = {
diff --git a/src/data/credits_de.h b/src/data/credits_de.h
index 570c0d4c5..570c0d4c5 100755..100644
--- a/src/data/credits_de.h
+++ b/src/data/credits_de.h
diff --git a/src/data/credits_en.h b/src/data/credits_en.h
index 8ce0bad03..8ce0bad03 100755..100644
--- a/src/data/credits_en.h
+++ b/src/data/credits_en.h
diff --git a/src/data/items_de.h b/src/data/items_de.h
index 0453a95d0..92304e8b0 100644
--- a/src/data/items_de.h
+++ b/src/data/items_de.h
@@ -4626,7 +4626,7 @@ const struct Item gItems[] =
},
{
.name = _("TM01"),
- .itemId = ITEM_TM01,
+ .itemId = ITEM_TM01_FOCUS_PUNCH,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4642,7 +4642,7 @@ const struct Item gItems[] =
},
{
.name = _("TM02"),
- .itemId = ITEM_TM02,
+ .itemId = ITEM_TM02_DRAGON_CLAW,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4658,7 +4658,7 @@ const struct Item gItems[] =
},
{
.name = _("TM03"),
- .itemId = ITEM_TM03,
+ .itemId = ITEM_TM03_WATER_PULSE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4674,7 +4674,7 @@ const struct Item gItems[] =
},
{
.name = _("TM04"),
- .itemId = ITEM_TM04,
+ .itemId = ITEM_TM04_CALM_MIND,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4690,7 +4690,7 @@ const struct Item gItems[] =
},
{
.name = _("TM05"),
- .itemId = ITEM_TM05,
+ .itemId = ITEM_TM05_ROAR,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4706,7 +4706,7 @@ const struct Item gItems[] =
},
{
.name = _("TM06"),
- .itemId = ITEM_TM06,
+ .itemId = ITEM_TM06_TOXIC,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4722,7 +4722,7 @@ const struct Item gItems[] =
},
{
.name = _("TM07"),
- .itemId = ITEM_TM07,
+ .itemId = ITEM_TM07_HAIL,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4738,7 +4738,7 @@ const struct Item gItems[] =
},
{
.name = _("TM08"),
- .itemId = ITEM_TM08,
+ .itemId = ITEM_TM08_BULK_UP,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4754,7 +4754,7 @@ const struct Item gItems[] =
},
{
.name = _("TM09"),
- .itemId = ITEM_TM09,
+ .itemId = ITEM_TM09_BULLET_SEED,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4770,7 +4770,7 @@ const struct Item gItems[] =
},
{
.name = _("TM10"),
- .itemId = ITEM_TM10,
+ .itemId = ITEM_TM10_HIDDEN_POWER,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4786,7 +4786,7 @@ const struct Item gItems[] =
},
{
.name = _("TM11"),
- .itemId = ITEM_TM11,
+ .itemId = ITEM_TM11_SUNNY_DAY,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4802,7 +4802,7 @@ const struct Item gItems[] =
},
{
.name = _("TM12"),
- .itemId = ITEM_TM12,
+ .itemId = ITEM_TM12_TAUNT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4818,7 +4818,7 @@ const struct Item gItems[] =
},
{
.name = _("TM13"),
- .itemId = ITEM_TM13,
+ .itemId = ITEM_TM13_ICE_BEAM,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4834,7 +4834,7 @@ const struct Item gItems[] =
},
{
.name = _("TM14"),
- .itemId = ITEM_TM14,
+ .itemId = ITEM_TM14_BLIZZARD,
.price = 5500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4850,7 +4850,7 @@ const struct Item gItems[] =
},
{
.name = _("TM15"),
- .itemId = ITEM_TM15,
+ .itemId = ITEM_TM15_HYPER_BEAM,
.price = 7500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4866,7 +4866,7 @@ const struct Item gItems[] =
},
{
.name = _("TM16"),
- .itemId = ITEM_TM16,
+ .itemId = ITEM_TM16_LIGHT_SCREEN,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4882,7 +4882,7 @@ const struct Item gItems[] =
},
{
.name = _("TM17"),
- .itemId = ITEM_TM17,
+ .itemId = ITEM_TM17_PROTECT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4898,7 +4898,7 @@ const struct Item gItems[] =
},
{
.name = _("TM18"),
- .itemId = ITEM_TM18,
+ .itemId = ITEM_TM18_RAIN_DANCE,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4914,7 +4914,7 @@ const struct Item gItems[] =
},
{
.name = _("TM19"),
- .itemId = ITEM_TM19,
+ .itemId = ITEM_TM19_GIGA_DRAIN,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4930,7 +4930,7 @@ const struct Item gItems[] =
},
{
.name = _("TM20"),
- .itemId = ITEM_TM20,
+ .itemId = ITEM_TM20_SAFEGUARD,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4946,7 +4946,7 @@ const struct Item gItems[] =
},
{
.name = _("TM21"),
- .itemId = ITEM_TM21,
+ .itemId = ITEM_TM21_FRUSTRATION,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4962,7 +4962,7 @@ const struct Item gItems[] =
},
{
.name = _("TM22"),
- .itemId = ITEM_TM22,
+ .itemId = ITEM_TM22_SOLARBEAM,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4978,7 +4978,7 @@ const struct Item gItems[] =
},
{
.name = _("TM23"),
- .itemId = ITEM_TM23,
+ .itemId = ITEM_TM23_IRON_TAIL,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4994,7 +4994,7 @@ const struct Item gItems[] =
},
{
.name = _("TM24"),
- .itemId = ITEM_TM24,
+ .itemId = ITEM_TM24_THUNDERBOLT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5010,7 +5010,7 @@ const struct Item gItems[] =
},
{
.name = _("TM25"),
- .itemId = ITEM_TM25,
+ .itemId = ITEM_TM25_THUNDER,
.price = 5500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5026,7 +5026,7 @@ const struct Item gItems[] =
},
{
.name = _("TM26"),
- .itemId = ITEM_TM26,
+ .itemId = ITEM_TM26_EARTHQUAKE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5042,7 +5042,7 @@ const struct Item gItems[] =
},
{
.name = _("TM27"),
- .itemId = ITEM_TM27,
+ .itemId = ITEM_TM27_RETURN,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5058,7 +5058,7 @@ const struct Item gItems[] =
},
{
.name = _("TM28"),
- .itemId = ITEM_TM28,
+ .itemId = ITEM_TM28_DIG,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5074,7 +5074,7 @@ const struct Item gItems[] =
},
{
.name = _("TM29"),
- .itemId = ITEM_TM29,
+ .itemId = ITEM_TM29_PSYCHIC,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5090,7 +5090,7 @@ const struct Item gItems[] =
},
{
.name = _("TM30"),
- .itemId = ITEM_TM30,
+ .itemId = ITEM_TM30_SHADOW_BALL,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5106,7 +5106,7 @@ const struct Item gItems[] =
},
{
.name = _("TM31"),
- .itemId = ITEM_TM31,
+ .itemId = ITEM_TM31_BRICK_BREAK,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5122,7 +5122,7 @@ const struct Item gItems[] =
},
{
.name = _("TM32"),
- .itemId = ITEM_TM32,
+ .itemId = ITEM_TM32_DOUBLE_TEAM,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5138,7 +5138,7 @@ const struct Item gItems[] =
},
{
.name = _("TM33"),
- .itemId = ITEM_TM33,
+ .itemId = ITEM_TM33_REFLECT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5154,7 +5154,7 @@ const struct Item gItems[] =
},
{
.name = _("TM34"),
- .itemId = ITEM_TM34,
+ .itemId = ITEM_TM34_SHOCK_WAVE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5170,7 +5170,7 @@ const struct Item gItems[] =
},
{
.name = _("TM35"),
- .itemId = ITEM_TM35,
+ .itemId = ITEM_TM35_FLAMETHROWER,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5186,7 +5186,7 @@ const struct Item gItems[] =
},
{
.name = _("TM36"),
- .itemId = ITEM_TM36,
+ .itemId = ITEM_TM36_SLUDGE_BOMB,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5202,7 +5202,7 @@ const struct Item gItems[] =
},
{
.name = _("TM37"),
- .itemId = ITEM_TM37,
+ .itemId = ITEM_TM37_SANDSTORM,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5218,7 +5218,7 @@ const struct Item gItems[] =
},
{
.name = _("TM38"),
- .itemId = ITEM_TM38,
+ .itemId = ITEM_TM38_FIRE_BLAST,
.price = 5500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5234,7 +5234,7 @@ const struct Item gItems[] =
},
{
.name = _("TM39"),
- .itemId = ITEM_TM39,
+ .itemId = ITEM_TM39_ROCK_TOMB,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5250,7 +5250,7 @@ const struct Item gItems[] =
},
{
.name = _("TM40"),
- .itemId = ITEM_TM40,
+ .itemId = ITEM_TM40_AERIAL_ACE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5266,7 +5266,7 @@ const struct Item gItems[] =
},
{
.name = _("TM41"),
- .itemId = ITEM_TM41,
+ .itemId = ITEM_TM41_TORMENT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5282,7 +5282,7 @@ const struct Item gItems[] =
},
{
.name = _("TM42"),
- .itemId = ITEM_TM42,
+ .itemId = ITEM_TM42_FACADE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5298,7 +5298,7 @@ const struct Item gItems[] =
},
{
.name = _("TM43"),
- .itemId = ITEM_TM43,
+ .itemId = ITEM_TM43_SECRET_POWER,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5314,7 +5314,7 @@ const struct Item gItems[] =
},
{
.name = _("TM44"),
- .itemId = ITEM_TM44,
+ .itemId = ITEM_TM44_REST,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5330,7 +5330,7 @@ const struct Item gItems[] =
},
{
.name = _("TM45"),
- .itemId = ITEM_TM45,
+ .itemId = ITEM_TM45_ATTRACT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5346,7 +5346,7 @@ const struct Item gItems[] =
},
{
.name = _("TM46"),
- .itemId = ITEM_TM46,
+ .itemId = ITEM_TM46_THIEF,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5362,7 +5362,7 @@ const struct Item gItems[] =
},
{
.name = _("TM47"),
- .itemId = ITEM_TM47,
+ .itemId = ITEM_TM47_STEEL_WING,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5378,7 +5378,7 @@ const struct Item gItems[] =
},
{
.name = _("TM48"),
- .itemId = ITEM_TM48,
+ .itemId = ITEM_TM48_SKILL_SWAP,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5394,7 +5394,7 @@ const struct Item gItems[] =
},
{
.name = _("TM49"),
- .itemId = ITEM_TM49,
+ .itemId = ITEM_TM49_SNATCH,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5410,7 +5410,7 @@ const struct Item gItems[] =
},
{
.name = _("TM50"),
- .itemId = ITEM_TM50,
+ .itemId = ITEM_TM50_OVERHEAT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5426,7 +5426,7 @@ const struct Item gItems[] =
},
{
.name = _("VM01"),
- .itemId = ITEM_HM01,
+ .itemId = ITEM_HM01_CUT,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5442,7 +5442,7 @@ const struct Item gItems[] =
},
{
.name = _("VM02"),
- .itemId = ITEM_HM02,
+ .itemId = ITEM_HM02_FLY,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5458,7 +5458,7 @@ const struct Item gItems[] =
},
{
.name = _("VM03"),
- .itemId = ITEM_HM03,
+ .itemId = ITEM_HM03_SURF,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5474,7 +5474,7 @@ const struct Item gItems[] =
},
{
.name = _("VM04"),
- .itemId = ITEM_HM04,
+ .itemId = ITEM_HM04_STRENGTH,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5490,7 +5490,7 @@ const struct Item gItems[] =
},
{
.name = _("VM05"),
- .itemId = ITEM_HM05,
+ .itemId = ITEM_HM05_FLASH,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5506,7 +5506,7 @@ const struct Item gItems[] =
},
{
.name = _("VM06"),
- .itemId = ITEM_HM06,
+ .itemId = ITEM_HM06_ROCK_SMASH,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5522,7 +5522,7 @@ const struct Item gItems[] =
},
{
.name = _("VM07"),
- .itemId = ITEM_HM07,
+ .itemId = ITEM_HM07_WATERFALL,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5538,7 +5538,7 @@ const struct Item gItems[] =
},
{
.name = _("VM08"),
- .itemId = ITEM_HM08,
+ .itemId = ITEM_HM08_DIVE,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
diff --git a/src/data/items_en.h b/src/data/items_en.h
index a3e822370..3660f4590 100644
--- a/src/data/items_en.h
+++ b/src/data/items_en.h
@@ -4626,7 +4626,7 @@ const struct Item gItems[] =
},
{
.name = _("TM01"),
- .itemId = ITEM_TM01,
+ .itemId = ITEM_TM01_FOCUS_PUNCH,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4642,7 +4642,7 @@ const struct Item gItems[] =
},
{
.name = _("TM02"),
- .itemId = ITEM_TM02,
+ .itemId = ITEM_TM02_DRAGON_CLAW,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4658,7 +4658,7 @@ const struct Item gItems[] =
},
{
.name = _("TM03"),
- .itemId = ITEM_TM03,
+ .itemId = ITEM_TM03_WATER_PULSE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4674,7 +4674,7 @@ const struct Item gItems[] =
},
{
.name = _("TM04"),
- .itemId = ITEM_TM04,
+ .itemId = ITEM_TM04_CALM_MIND,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4690,7 +4690,7 @@ const struct Item gItems[] =
},
{
.name = _("TM05"),
- .itemId = ITEM_TM05,
+ .itemId = ITEM_TM05_ROAR,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4706,7 +4706,7 @@ const struct Item gItems[] =
},
{
.name = _("TM06"),
- .itemId = ITEM_TM06,
+ .itemId = ITEM_TM06_TOXIC,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4722,7 +4722,7 @@ const struct Item gItems[] =
},
{
.name = _("TM07"),
- .itemId = ITEM_TM07,
+ .itemId = ITEM_TM07_HAIL,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4738,7 +4738,7 @@ const struct Item gItems[] =
},
{
.name = _("TM08"),
- .itemId = ITEM_TM08,
+ .itemId = ITEM_TM08_BULK_UP,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4754,7 +4754,7 @@ const struct Item gItems[] =
},
{
.name = _("TM09"),
- .itemId = ITEM_TM09,
+ .itemId = ITEM_TM09_BULLET_SEED,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4770,7 +4770,7 @@ const struct Item gItems[] =
},
{
.name = _("TM10"),
- .itemId = ITEM_TM10,
+ .itemId = ITEM_TM10_HIDDEN_POWER,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4786,7 +4786,7 @@ const struct Item gItems[] =
},
{
.name = _("TM11"),
- .itemId = ITEM_TM11,
+ .itemId = ITEM_TM11_SUNNY_DAY,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4802,7 +4802,7 @@ const struct Item gItems[] =
},
{
.name = _("TM12"),
- .itemId = ITEM_TM12,
+ .itemId = ITEM_TM12_TAUNT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4818,7 +4818,7 @@ const struct Item gItems[] =
},
{
.name = _("TM13"),
- .itemId = ITEM_TM13,
+ .itemId = ITEM_TM13_ICE_BEAM,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4834,7 +4834,7 @@ const struct Item gItems[] =
},
{
.name = _("TM14"),
- .itemId = ITEM_TM14,
+ .itemId = ITEM_TM14_BLIZZARD,
.price = 5500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4850,7 +4850,7 @@ const struct Item gItems[] =
},
{
.name = _("TM15"),
- .itemId = ITEM_TM15,
+ .itemId = ITEM_TM15_HYPER_BEAM,
.price = 7500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4866,7 +4866,7 @@ const struct Item gItems[] =
},
{
.name = _("TM16"),
- .itemId = ITEM_TM16,
+ .itemId = ITEM_TM16_LIGHT_SCREEN,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4882,7 +4882,7 @@ const struct Item gItems[] =
},
{
.name = _("TM17"),
- .itemId = ITEM_TM17,
+ .itemId = ITEM_TM17_PROTECT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4898,7 +4898,7 @@ const struct Item gItems[] =
},
{
.name = _("TM18"),
- .itemId = ITEM_TM18,
+ .itemId = ITEM_TM18_RAIN_DANCE,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4914,7 +4914,7 @@ const struct Item gItems[] =
},
{
.name = _("TM19"),
- .itemId = ITEM_TM19,
+ .itemId = ITEM_TM19_GIGA_DRAIN,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4930,7 +4930,7 @@ const struct Item gItems[] =
},
{
.name = _("TM20"),
- .itemId = ITEM_TM20,
+ .itemId = ITEM_TM20_SAFEGUARD,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4946,7 +4946,7 @@ const struct Item gItems[] =
},
{
.name = _("TM21"),
- .itemId = ITEM_TM21,
+ .itemId = ITEM_TM21_FRUSTRATION,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4962,7 +4962,7 @@ const struct Item gItems[] =
},
{
.name = _("TM22"),
- .itemId = ITEM_TM22,
+ .itemId = ITEM_TM22_SOLARBEAM,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4978,7 +4978,7 @@ const struct Item gItems[] =
},
{
.name = _("TM23"),
- .itemId = ITEM_TM23,
+ .itemId = ITEM_TM23_IRON_TAIL,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -4994,7 +4994,7 @@ const struct Item gItems[] =
},
{
.name = _("TM24"),
- .itemId = ITEM_TM24,
+ .itemId = ITEM_TM24_THUNDERBOLT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5010,7 +5010,7 @@ const struct Item gItems[] =
},
{
.name = _("TM25"),
- .itemId = ITEM_TM25,
+ .itemId = ITEM_TM25_THUNDER,
.price = 5500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5026,7 +5026,7 @@ const struct Item gItems[] =
},
{
.name = _("TM26"),
- .itemId = ITEM_TM26,
+ .itemId = ITEM_TM26_EARTHQUAKE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5042,7 +5042,7 @@ const struct Item gItems[] =
},
{
.name = _("TM27"),
- .itemId = ITEM_TM27,
+ .itemId = ITEM_TM27_RETURN,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5058,7 +5058,7 @@ const struct Item gItems[] =
},
{
.name = _("TM28"),
- .itemId = ITEM_TM28,
+ .itemId = ITEM_TM28_DIG,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5074,7 +5074,7 @@ const struct Item gItems[] =
},
{
.name = _("TM29"),
- .itemId = ITEM_TM29,
+ .itemId = ITEM_TM29_PSYCHIC,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5090,7 +5090,7 @@ const struct Item gItems[] =
},
{
.name = _("TM30"),
- .itemId = ITEM_TM30,
+ .itemId = ITEM_TM30_SHADOW_BALL,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5106,7 +5106,7 @@ const struct Item gItems[] =
},
{
.name = _("TM31"),
- .itemId = ITEM_TM31,
+ .itemId = ITEM_TM31_BRICK_BREAK,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5122,7 +5122,7 @@ const struct Item gItems[] =
},
{
.name = _("TM32"),
- .itemId = ITEM_TM32,
+ .itemId = ITEM_TM32_DOUBLE_TEAM,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5138,7 +5138,7 @@ const struct Item gItems[] =
},
{
.name = _("TM33"),
- .itemId = ITEM_TM33,
+ .itemId = ITEM_TM33_REFLECT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5154,7 +5154,7 @@ const struct Item gItems[] =
},
{
.name = _("TM34"),
- .itemId = ITEM_TM34,
+ .itemId = ITEM_TM34_SHOCK_WAVE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5170,7 +5170,7 @@ const struct Item gItems[] =
},
{
.name = _("TM35"),
- .itemId = ITEM_TM35,
+ .itemId = ITEM_TM35_FLAMETHROWER,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5186,7 +5186,7 @@ const struct Item gItems[] =
},
{
.name = _("TM36"),
- .itemId = ITEM_TM36,
+ .itemId = ITEM_TM36_SLUDGE_BOMB,
.price = 1000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5202,7 +5202,7 @@ const struct Item gItems[] =
},
{
.name = _("TM37"),
- .itemId = ITEM_TM37,
+ .itemId = ITEM_TM37_SANDSTORM,
.price = 2000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5218,7 +5218,7 @@ const struct Item gItems[] =
},
{
.name = _("TM38"),
- .itemId = ITEM_TM38,
+ .itemId = ITEM_TM38_FIRE_BLAST,
.price = 5500,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5234,7 +5234,7 @@ const struct Item gItems[] =
},
{
.name = _("TM39"),
- .itemId = ITEM_TM39,
+ .itemId = ITEM_TM39_ROCK_TOMB,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5250,7 +5250,7 @@ const struct Item gItems[] =
},
{
.name = _("TM40"),
- .itemId = ITEM_TM40,
+ .itemId = ITEM_TM40_AERIAL_ACE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5266,7 +5266,7 @@ const struct Item gItems[] =
},
{
.name = _("TM41"),
- .itemId = ITEM_TM41,
+ .itemId = ITEM_TM41_TORMENT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5282,7 +5282,7 @@ const struct Item gItems[] =
},
{
.name = _("TM42"),
- .itemId = ITEM_TM42,
+ .itemId = ITEM_TM42_FACADE,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5298,7 +5298,7 @@ const struct Item gItems[] =
},
{
.name = _("TM43"),
- .itemId = ITEM_TM43,
+ .itemId = ITEM_TM43_SECRET_POWER,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5314,7 +5314,7 @@ const struct Item gItems[] =
},
{
.name = _("TM44"),
- .itemId = ITEM_TM44,
+ .itemId = ITEM_TM44_REST,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5330,7 +5330,7 @@ const struct Item gItems[] =
},
{
.name = _("TM45"),
- .itemId = ITEM_TM45,
+ .itemId = ITEM_TM45_ATTRACT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5346,7 +5346,7 @@ const struct Item gItems[] =
},
{
.name = _("TM46"),
- .itemId = ITEM_TM46,
+ .itemId = ITEM_TM46_THIEF,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5362,7 +5362,7 @@ const struct Item gItems[] =
},
{
.name = _("TM47"),
- .itemId = ITEM_TM47,
+ .itemId = ITEM_TM47_STEEL_WING,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5378,7 +5378,7 @@ const struct Item gItems[] =
},
{
.name = _("TM48"),
- .itemId = ITEM_TM48,
+ .itemId = ITEM_TM48_SKILL_SWAP,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5394,7 +5394,7 @@ const struct Item gItems[] =
},
{
.name = _("TM49"),
- .itemId = ITEM_TM49,
+ .itemId = ITEM_TM49_SNATCH,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5410,7 +5410,7 @@ const struct Item gItems[] =
},
{
.name = _("TM50"),
- .itemId = ITEM_TM50,
+ .itemId = ITEM_TM50_OVERHEAT,
.price = 3000,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5426,7 +5426,7 @@ const struct Item gItems[] =
},
{
.name = _("HM01"),
- .itemId = ITEM_HM01,
+ .itemId = ITEM_HM01_CUT,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5442,7 +5442,7 @@ const struct Item gItems[] =
},
{
.name = _("HM02"),
- .itemId = ITEM_HM02,
+ .itemId = ITEM_HM02_FLY,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5458,7 +5458,7 @@ const struct Item gItems[] =
},
{
.name = _("HM03"),
- .itemId = ITEM_HM03,
+ .itemId = ITEM_HM03_SURF,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5474,7 +5474,7 @@ const struct Item gItems[] =
},
{
.name = _("HM04"),
- .itemId = ITEM_HM04,
+ .itemId = ITEM_HM04_STRENGTH,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5490,7 +5490,7 @@ const struct Item gItems[] =
},
{
.name = _("HM05"),
- .itemId = ITEM_HM05,
+ .itemId = ITEM_HM05_FLASH,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5506,7 +5506,7 @@ const struct Item gItems[] =
},
{
.name = _("HM06"),
- .itemId = ITEM_HM06,
+ .itemId = ITEM_HM06_ROCK_SMASH,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5522,7 +5522,7 @@ const struct Item gItems[] =
},
{
.name = _("HM07"),
- .itemId = ITEM_HM07,
+ .itemId = ITEM_HM07_WATERFALL,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
@@ -5538,7 +5538,7 @@ const struct Item gItems[] =
},
{
.name = _("HM08"),
- .itemId = ITEM_HM08,
+ .itemId = ITEM_HM08_DIVE,
.price = 0,
.holdEffect = HOLD_EFFECT_NONE,
.holdEffectParam = 0,
diff --git a/src/data/pokedex_entries_de.h b/src/data/pokedex_entries_de.h
index 0f64cba66..413b73d90 100644
--- a/src/data/pokedex_entries_de.h
+++ b/src/data/pokedex_entries_de.h
@@ -6337,7 +6337,8 @@ static const u8 DexDescription_Deoxys_2[] = _(
"dieses POKéMON ist sein Gehirn.");
#endif
-static const struct PokedexEntry gPokedexEntries[] = {
+const struct PokedexEntry gPokedexEntries[] =
+{
{
// Dummy
.categoryName = _("UNBEKANNT"),
diff --git a/src/data/pokedex_entries_en.h b/src/data/pokedex_entries_en.h
index 86da3d67b..933b1fc7d 100644
--- a/src/data/pokedex_entries_en.h
+++ b/src/data/pokedex_entries_en.h
@@ -5389,7 +5389,7 @@ static const u8 DexDescription_Deoxys_2[] = _(
"chest appears to be its brain.");
#endif
-static const struct PokedexEntry gPokedexEntries[] =
+const struct PokedexEntry gPokedexEntries[] =
{
{ //Dummy
.categoryName = _("UNKNOWN"),
diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h
index 37f59e1c6..bc6572b46 100644
--- a/src/data/pokemon/base_stats.h
+++ b/src/data/pokemon/base_stats.h
@@ -1,7823 +1,13576 @@
-//
-
-//
-
-#ifndef POKERUBY_BASE_STATS_H
-#define POKERUBY_BASE_STATS_H
-
-const struct BaseStats gBaseStats[] = {
- { // ??????????
- }, {
- // Bulbasaur
- 45, 49, 49, 45, 65, 65,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 64, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Ivysaur
- 60, 62, 63, 60, 80, 80,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 141, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Venusaur
- 80, 82, 83, 80, 100, 100,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 0, 0, 2, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Charmander
- 39, 52, 43, 65, 60, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Charmeleon
- 58, 64, 58, 80, 80, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 142, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Charizard
- 78, 84, 78, 100, 109, 85,
- TYPE_FIRE,
- TYPE_FLYING,
- 45, // catch rate
- 209, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Squirtle
- 44, 48, 65, 43, 50, 64,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 66, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wartortle
- 59, 63, 80, 58, 65, 80,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 143, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Blastoise
- 79, 83, 100, 78, 85, 105,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 210, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Caterpie
- 45, 30, 35, 45, 20, 20,
- TYPE_BUG,
- TYPE_BUG,
- 255, // catch rate
- 53, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Metapod
- 50, 20, 55, 30, 25, 25,
- TYPE_BUG,
- TYPE_BUG,
- 120, // catch rate
- 72, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Butterfree
- 60, 45, 50, 70, 80, 80,
- TYPE_BUG,
- TYPE_FLYING,
- 45, // catch rate
- 160, // base exp. yield
- 0, 0, 0, 0, 2, 1,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_COMPOUND_EYES,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Weedle
- 40, 35, 30, 50, 20, 20,
- TYPE_BUG,
- TYPE_POISON,
- 255, // catch rate
- 52, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Kakuna
- 45, 25, 50, 35, 25, 25,
- TYPE_BUG,
- TYPE_POISON,
- 120, // catch rate
- 71, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Beedrill
- 65, 80, 40, 75, 45, 80,
- TYPE_BUG,
- TYPE_POISON,
- 45, // catch rate
- 159, // base exp. yield
- 0, 2, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Pidgey
- 40, 45, 40, 56, 35, 35,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 55, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Pidgeotto
- 63, 60, 55, 71, 50, 50,
- TYPE_NORMAL,
- TYPE_FLYING,
- 120, // catch rate
- 113, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Pidgeot
- 83, 80, 75, 91, 70, 70,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 172, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Rattata
- 30, 56, 35, 72, 25, 35,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 57, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Raticate
- 55, 81, 60, 97, 50, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 127, // catch rate
- 116, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Spearow
- 40, 60, 30, 70, 31, 31,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 58, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Fearow
- 65, 90, 65, 100, 61, 61,
- TYPE_NORMAL,
- TYPE_FLYING,
- 90, // catch rate
- 162, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_SHARP_BEAK,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ekans
- 35, 60, 44, 55, 40, 54,
- TYPE_POISON,
- TYPE_POISON,
- 255, // catch rate
- 62, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_SHED_SKIN,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Arbok
- 60, 85, 69, 80, 65, 79,
- TYPE_POISON,
- TYPE_POISON,
- 90, // catch rate
- 147, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_SHED_SKIN,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Pikachu
- 35, 55, 30, 90, 50, 40,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 190, // catch rate
- 82, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_ORAN_BERRY,
- ITEM_LIGHT_BALL,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_STATIC,
- ABILITY_NONE,
- 6, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Raichu
- 60, 90, 55, 100, 90, 80,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 75, // catch rate
- 122, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Sandshrew
- 50, 75, 85, 40, 20, 30,
- TYPE_GROUND,
- TYPE_GROUND,
- 255, // catch rate
- 93, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_QUICK_CLAW,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Sandslash
- 75, 100, 110, 65, 45, 55,
- TYPE_GROUND,
- TYPE_GROUND,
- 90, // catch rate
- 163, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_QUICK_CLAW,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Nidoran♀
- 55, 47, 52, 41, 40, 40,
- TYPE_POISON,
- TYPE_POISON,
- 235, // catch rate
- 59, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Nidorina
- 70, 62, 67, 56, 55, 55,
- TYPE_POISON,
- TYPE_POISON,
- 120, // catch rate
- 117, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Nidoqueen
- 90, 82, 87, 76, 75, 85,
- TYPE_POISON,
- TYPE_GROUND,
- 45, // catch rate
- 194, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Nidoran♂
- 46, 57, 40, 50, 40, 40,
- TYPE_POISON,
- TYPE_POISON,
- 235, // catch rate
- 60, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Nidorino
- 61, 72, 57, 65, 55, 55,
- TYPE_POISON,
- TYPE_POISON,
- 120, // catch rate
- 118, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Nidoking
- 81, 92, 77, 85, 85, 75,
- TYPE_POISON,
- TYPE_GROUND,
- 45, // catch rate
- 195, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Clefairy
- 70, 45, 48, 35, 60, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 150, // catch rate
- 68, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_LEPPA_BERRY,
- ITEM_MOON_STONE,
- 191, // gender
- 10, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Clefable
- 95, 70, 73, 60, 85, 90,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 25, // catch rate
- 129, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_LEPPA_BERRY,
- ITEM_MOON_STONE,
- 191, // gender
- 10, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Vulpix
- 38, 41, 40, 65, 50, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 63, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_FLASH_FIRE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ninetales
- 73, 76, 75, 100, 81, 100,
- TYPE_FIRE,
- TYPE_FIRE,
- 75, // catch rate
- 178, // base exp. yield
- 0, 0, 0, 1, 0, 1,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_FLASH_FIRE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Jigglypuff
- 115, 45, 20, 20, 45, 25,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 170, // catch rate
- 76, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Wigglytuff
- 140, 70, 45, 45, 75, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 50, // catch rate
- 109, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Zubat
- 40, 45, 35, 55, 30, 40,
- TYPE_POISON,
- TYPE_FLYING,
- 255, // catch rate
- 54, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Golbat
- 75, 80, 70, 90, 65, 75,
- TYPE_POISON,
- TYPE_FLYING,
- 90, // catch rate
- 171, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Oddish
- 45, 50, 55, 30, 75, 65,
- TYPE_GRASS,
- TYPE_POISON,
- 255, // catch rate
- 78, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 4, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Gloom
- 60, 65, 70, 40, 85, 75,
- TYPE_GRASS,
- TYPE_POISON,
- 120, // catch rate
- 132, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 6, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Vileplume
- 75, 80, 85, 50, 100, 90,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 184, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Paras
- 35, 70, 55, 25, 45, 55,
- TYPE_BUG,
- TYPE_GRASS,
- 190, // catch rate
- 70, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_TINY_MUSHROOM,
- ITEM_BIG_MUSHROOM,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Parasect
- 60, 95, 80, 30, 60, 80,
- TYPE_BUG,
- TYPE_GRASS,
- 75, // catch rate
- 128, // base exp. yield
- 0, 2, 1, 0, 0, 0,
- ITEM_TINY_MUSHROOM,
- ITEM_BIG_MUSHROOM,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Venonat
- 60, 55, 50, 45, 40, 55,
- TYPE_BUG,
- TYPE_POISON,
- 190, // catch rate
- 75, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_COMPOUND_EYES,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Venomoth
- 70, 65, 60, 90, 90, 75,
- TYPE_BUG,
- TYPE_POISON,
- 75, // catch rate
- 138, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Diglett
- 10, 55, 25, 95, 35, 45,
- TYPE_GROUND,
- TYPE_GROUND,
- 255, // catch rate
- 81, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_ARENA_TRAP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Dugtrio
- 35, 80, 50, 120, 50, 70,
- TYPE_GROUND,
- TYPE_GROUND,
- 50, // catch rate
- 153, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SAND_VEIL,
- ABILITY_ARENA_TRAP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Meowth
- 40, 45, 35, 90, 40, 40,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 69, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Persian
- 65, 70, 60, 115, 65, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 148, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_LIMBER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Psyduck
- 50, 52, 48, 55, 65, 50,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 80, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_CLOUD_NINE,
- 6, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Golduck
- 80, 82, 78, 85, 95, 80,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 174, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_CLOUD_NINE,
- 8, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Mankey
- 40, 80, 35, 70, 35, 45,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 190, // catch rate
- 74, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Primeape
- 65, 105, 60, 95, 60, 70,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 75, // catch rate
- 149, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Growlithe
- 55, 70, 45, 60, 70, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 91, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Arcanine
- 90, 110, 80, 95, 100, 80,
- TYPE_FIRE,
- TYPE_FIRE,
- 75, // catch rate
- 213, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Poliwag
- 40, 50, 40, 90, 40, 40,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 77, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Poliwhirl
- 65, 65, 65, 90, 50, 50,
- TYPE_WATER,
- TYPE_WATER,
- 120, // catch rate
- 131, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Poliwrath
- 90, 85, 95, 70, 70, 90,
- TYPE_WATER,
- TYPE_FIGHTING,
- 45, // catch rate
- 185, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Abra
- 25, 20, 15, 90, 105, 55,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 200, // catch rate
- 73, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_TWISTED_SPOON,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SYNCHRONIZE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Kadabra
- 40, 35, 30, 105, 120, 70,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 100, // catch rate
- 145, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_TWISTED_SPOON,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SYNCHRONIZE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Alakazam
- 55, 50, 45, 120, 135, 85,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 50, // catch rate
- 186, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_TWISTED_SPOON,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SYNCHRONIZE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Machop
- 70, 80, 50, 35, 35, 35,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 180, // catch rate
- 88, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Machoke
- 80, 100, 70, 45, 50, 60,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 90, // catch rate
- 146, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Machamp
- 90, 130, 80, 55, 65, 85,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 193, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Bellsprout
- 50, 75, 35, 40, 70, 30,
- TYPE_GRASS,
- TYPE_POISON,
- 255, // catch rate
- 84, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Weepinbell
- 65, 90, 50, 55, 85, 45,
- TYPE_GRASS,
- TYPE_POISON,
- 120, // catch rate
- 151, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Victreebel
- 80, 105, 65, 70, 100, 60,
- TYPE_GRASS,
- TYPE_POISON,
- 45, // catch rate
- 191, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Tentacool
- 40, 40, 35, 70, 50, 100,
- TYPE_WATER,
- TYPE_POISON,
- 190, // catch rate
- 105, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_CLEAR_BODY,
- ABILITY_LIQUID_OOZE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Tentacruel
- 80, 70, 65, 100, 80, 120,
- TYPE_WATER,
- TYPE_POISON,
- 60, // catch rate
- 205, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_CLEAR_BODY,
- ABILITY_LIQUID_OOZE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Geodude
- 40, 80, 100, 20, 30, 30,
- TYPE_ROCK,
- TYPE_GROUND,
- 255, // catch rate
- 86, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_EVERSTONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 4, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Graveler
- 55, 95, 115, 35, 45, 45,
- TYPE_ROCK,
- TYPE_GROUND,
- 120, // catch rate
- 134, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_EVERSTONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Golem
- 80, 110, 130, 45, 55, 65,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 177, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_EVERSTONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ponyta
- 50, 85, 55, 90, 65, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 152, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Rapidash
- 65, 100, 70, 105, 80, 80,
- TYPE_FIRE,
- TYPE_FIRE,
- 60, // catch rate
- 192, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Slowpoke
- 90, 65, 65, 15, 40, 40,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 190, // catch rate
- 99, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_OBLIVIOUS,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Slowbro
- 95, 75, 110, 30, 100, 80,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 75, // catch rate
- 164, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_OBLIVIOUS,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Magnemite
- 25, 35, 70, 45, 95, 55,
- TYPE_ELECTRIC,
- TYPE_STEEL,
- 190, // catch rate
- 89, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_MAGNET_PULL,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Magneton
- 50, 60, 95, 70, 120, 70,
- TYPE_ELECTRIC,
- TYPE_STEEL,
- 60, // catch rate
- 161, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_MAGNET_PULL,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Farfetch'd
- 52, 65, 55, 60, 58, 62,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 94, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_STICK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FIELD,
- ABILITY_KEEN_EYE,
- ABILITY_INNER_FOCUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Doduo
- 35, 85, 45, 75, 35, 35,
- TYPE_NORMAL,
- TYPE_FLYING,
- 190, // catch rate
- 96, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SHARP_BEAK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_RUN_AWAY,
- ABILITY_EARLY_BIRD,
- 8, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Dodrio
- 60, 110, 70, 100, 60, 60,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 158, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SHARP_BEAK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_RUN_AWAY,
- ABILITY_EARLY_BIRD,
- 10, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Seel
- 65, 45, 55, 45, 45, 70,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 100, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Dewgong
- 90, 70, 80, 70, 70, 95,
- TYPE_WATER,
- TYPE_ICE,
- 75, // catch rate
- 176, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Grimer
- 80, 80, 50, 25, 40, 50,
- TYPE_POISON,
- TYPE_POISON,
- 190, // catch rate
- 90, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NUGGET,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_STENCH,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Muk
- 105, 105, 75, 50, 65, 100,
- TYPE_POISON,
- TYPE_POISON,
- 75, // catch rate
- 157, // base exp. yield
- 1, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NUGGET,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_STENCH,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Shellder
- 30, 65, 100, 40, 45, 25,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 97, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_PEARL,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SHELL_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Cloyster
- 50, 95, 180, 70, 85, 45,
- TYPE_WATER,
- TYPE_ICE,
- 60, // catch rate
- 203, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_PEARL,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SHELL_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Gastly
- 30, 35, 30, 80, 100, 35,
- TYPE_GHOST,
- TYPE_POISON,
- 190, // catch rate
- 95, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Haunter
- 45, 50, 45, 95, 115, 55,
- TYPE_GHOST,
- TYPE_POISON,
- 90, // catch rate
- 126, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Gengar
- 60, 65, 60, 110, 130, 75,
- TYPE_GHOST,
- TYPE_POISON,
- 45, // catch rate
- 190, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Onix
- 35, 45, 160, 70, 30, 45,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 108, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Drowzee
- 60, 48, 45, 42, 43, 90,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 190, // catch rate
- 102, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Hypno
- 85, 73, 70, 67, 73, 115,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 75, // catch rate
- 165, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Krabby
- 30, 105, 90, 50, 25, 25,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 115, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Kingler
- 55, 130, 115, 75, 50, 50,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 206, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED, TRUE
- }, { // Voltorb
- 40, 30, 50, 100, 55, 55,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 190, // catch rate
- 103, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_SOUNDPROOF,
- ABILITY_STATIC,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Electrode
- 60, 50, 70, 140, 80, 80,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 60, // catch rate
- 150, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_SOUNDPROOF,
- ABILITY_STATIC,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Exeggcute
- 60, 40, 80, 40, 60, 45,
- TYPE_GRASS,
- TYPE_PSYCHIC,
- 90, // catch rate
- 98, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Exeggutor
- 95, 95, 85, 55, 125, 65,
- TYPE_GRASS,
- TYPE_PSYCHIC,
- 45, // catch rate
- 212, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Cubone
- 50, 50, 95, 35, 40, 50,
- TYPE_GROUND,
- TYPE_GROUND,
- 190, // catch rate
- 87, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_THICK_CLUB,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_ROCK_HEAD,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Marowak
- 60, 80, 110, 45, 50, 80,
- TYPE_GROUND,
- TYPE_GROUND,
- 75, // catch rate
- 124, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_THICK_CLUB,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_ROCK_HEAD,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Hitmonlee
- 50, 120, 53, 87, 35, 110,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 139, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_LIMBER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Hitmonchan
- 50, 105, 79, 76, 35, 110,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 140, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Lickitung
- 90, 55, 75, 30, 60, 75,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 127, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_OWN_TEMPO,
- ABILITY_OBLIVIOUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Koffing
- 40, 65, 95, 35, 60, 45,
- TYPE_POISON,
- TYPE_POISON,
- 190, // catch rate
- 114, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_SMOKE_BALL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Weezing
- 65, 90, 120, 60, 85, 70,
- TYPE_POISON,
- TYPE_POISON,
- 60, // catch rate
- 173, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_SMOKE_BALL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Rhyhorn
- 80, 85, 95, 25, 30, 30,
- TYPE_GROUND,
- TYPE_ROCK,
- 120, // catch rate
- 135, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_LIGHTNING_ROD,
- ABILITY_ROCK_HEAD,
- 4, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Rhydon
- 105, 130, 120, 40, 45, 45,
- TYPE_GROUND,
- TYPE_ROCK,
- 60, // catch rate
- 204, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_LIGHTNING_ROD,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Chansey
- 250, 5, 5, 50, 35, 105,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 30, // catch rate
- 255, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_LUCKY_EGG,
- 254, // gender
- 40, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_NATURAL_CURE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Tangela
- 65, 55, 115, 60, 100, 40,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 166, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Kangaskhan
- 105, 95, 80, 90, 40, 80,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 175, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_EARLY_BIRD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Horsea
- 30, 40, 70, 60, 70, 25,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 83, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Seadra
- 55, 65, 95, 85, 95, 45,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 155, // base exp. yield
- 0, 0, 1, 0, 1, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_POISON_POINT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Goldeen
- 45, 67, 60, 63, 35, 50,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 111, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_WATER_VEIL,
- 4, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Seaking
- 80, 92, 65, 68, 65, 80,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 170, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_WATER_VEIL,
- 6, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Staryu
- 30, 45, 55, 85, 70, 55,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 106, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_STARDUST,
- ITEM_STAR_PIECE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_ILLUMINATE,
- ABILITY_NATURAL_CURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Starmie
- 60, 75, 85, 115, 100, 85,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 60, // catch rate
- 207, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_STARDUST,
- ITEM_STAR_PIECE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_ILLUMINATE,
- ABILITY_NATURAL_CURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Mr. mime
- 40, 45, 65, 90, 100, 120,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 136, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_LEPPA_BERRY,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Scyther
- 70, 110, 80, 105, 55, 80,
- TYPE_BUG,
- TYPE_FLYING,
- 45, // catch rate
- 187, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Jynx
- 65, 50, 35, 95, 115, 95,
- TYPE_ICE,
- TYPE_PSYCHIC,
- 45, // catch rate
- 137, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_ASPEAR_BERRY,
- ITEM_ASPEAR_BERRY,
- 254, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Electabuzz
- 65, 83, 57, 105, 95, 85,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 156, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW, TRUE
- }, { // Magmar
- 65, 95, 57, 93, 100, 85,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 167, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_FLAME_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Pinsir
- 65, 125, 100, 85, 55, 70,
- TYPE_BUG,
- TYPE_BUG,
- 45, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_HYPER_CUTTER,
- ABILITY_NONE,
- 8, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Tauros
- 75, 100, 95, 110, 40, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 211, // base exp. yield
- 0, 1, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Magikarp
- 20, 10, 55, 80, 15, 20,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 20, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 5, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 4, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Gyarados
- 95, 125, 79, 81, 60, 100,
- TYPE_WATER,
- TYPE_FLYING,
- 45, // catch rate
- 214, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 5, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Lapras
- 130, 85, 80, 60, 85, 95,
- TYPE_WATER,
- TYPE_ICE,
- 45, // catch rate
- 219, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Ditto
- 48, 48, 48, 48, 48, 48,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 35, // catch rate
- 61, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_POWDER,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_DITTO,
- EGG_GROUP_DITTO,
- ABILITY_LIMBER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Eevee
- 55, 55, 50, 55, 45, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 92, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Vaporeon
- 130, 65, 60, 65, 110, 95,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 196, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_WATER_ABSORB,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Jolteon
- 65, 65, 60, 130, 110, 95,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 197, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VOLT_ABSORB,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Flareon
- 65, 130, 60, 65, 95, 110,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 198, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_FLASH_FIRE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Porygon
- 65, 60, 70, 40, 85, 75,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 130, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_TRACE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Omanyte
- 35, 40, 100, 35, 90, 55,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 120, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Omastar
- 70, 60, 125, 55, 115, 70,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 199, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Kabuto
- 30, 80, 90, 55, 55, 45,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 119, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_BATTLE_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Kabutops
- 60, 115, 105, 80, 65, 70,
- TYPE_ROCK,
- TYPE_WATER,
- 45, // catch rate
- 201, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_SWIFT_SWIM,
- ABILITY_BATTLE_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Aerodactyl
- 80, 105, 65, 130, 60, 75,
- TYPE_ROCK,
- TYPE_FLYING,
- 45, // catch rate
- 202, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_ROCK_HEAD,
- ABILITY_PRESSURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Snorlax
- 160, 110, 65, 30, 65, 110,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 25, // catch rate
- 154, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_LEFTOVERS,
- ITEM_LEFTOVERS,
- 31, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_IMMUNITY,
- ABILITY_THICK_FAT,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Articuno
- 90, 85, 100, 85, 95, 125,
- TYPE_ICE,
- TYPE_FLYING,
- 3, // catch rate
- 215, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Zapdos
- 90, 90, 85, 100, 125, 90,
- TYPE_ELECTRIC,
- TYPE_FLYING,
- 3, // catch rate
- 216, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Moltres
- 90, 100, 90, 90, 125, 85,
- TYPE_FIRE,
- TYPE_FLYING,
- 3, // catch rate
- 217, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Dratini
- 41, 64, 45, 50, 50, 50,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 67, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Dragonair
- 61, 84, 65, 70, 70, 70,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 144, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Dragonite
- 91, 134, 95, 80, 100, 100,
- TYPE_DRAGON,
- TYPE_FLYING,
- 45, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Mewtwo
- 106, 110, 90, 130, 154, 90,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 3, // catch rate
- 220, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Mew
- 100, 100, 100, 100, 100, 100,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 64, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_LUM_BERRY,
- ITEM_LUM_BERRY,
- 255, // gender
- 120, // egg cycles
- 100, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_SYNCHRONIZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Chikorita
- 45, 49, 65, 45, 49, 65,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 64, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Bayleef
- 60, 62, 80, 60, 63, 80,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 141, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Meganium
- 80, 82, 100, 80, 83, 100,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 1, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Cyndaquil
- 39, 52, 43, 65, 60, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Quilava
- 58, 64, 58, 80, 80, 65,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 142, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Typhlosion
- 78, 84, 78, 100, 109, 85,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 209, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Totodile
- 50, 65, 64, 43, 44, 48,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 66, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Croconaw
- 65, 80, 80, 58, 59, 63,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 143, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE, TRUE
- }, { // Feraligatr
- 85, 105, 100, 78, 79, 83,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 210, // base exp. yield
- 0, 2, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sentret
- 35, 46, 34, 20, 35, 45,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 57, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Furret
- 85, 76, 64, 90, 45, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 116, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_ORAN_BERRY,
- ITEM_SITRUS_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Hoothoot
- 60, 30, 30, 50, 36, 56,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 58, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INSOMNIA,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Noctowl
- 100, 50, 50, 70, 76, 96,
- TYPE_NORMAL,
- TYPE_FLYING,
- 90, // catch rate
- 162, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INSOMNIA,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Ledyba
- 40, 20, 30, 55, 40, 80,
- TYPE_BUG,
- TYPE_FLYING,
- 255, // catch rate
- 54, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Ledian
- 55, 35, 50, 85, 55, 110,
- TYPE_BUG,
- TYPE_FLYING,
- 90, // catch rate
- 134, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Spinarak
- 40, 60, 40, 30, 40, 40,
- TYPE_BUG,
- TYPE_POISON,
- 255, // catch rate
- 54, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_INSOMNIA,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Ariados
- 70, 90, 70, 40, 60, 60,
- TYPE_BUG,
- TYPE_POISON,
- 90, // catch rate
- 134, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_INSOMNIA,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Crobat
- 85, 90, 80, 130, 70, 80,
- TYPE_POISON,
- TYPE_FLYING,
- 90, // catch rate
- 204, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Chinchou
- 75, 38, 38, 67, 56, 56,
- TYPE_WATER,
- TYPE_ELECTRIC,
- 190, // catch rate
- 90, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_YELLOW_SHARD,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_VOLT_ABSORB,
- ABILITY_ILLUMINATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Lanturn
- 125, 58, 58, 67, 76, 76,
- TYPE_WATER,
- TYPE_ELECTRIC,
- 75, // catch rate
- 156, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_YELLOW_SHARD,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_VOLT_ABSORB,
- ABILITY_ILLUMINATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Pichu
- 20, 40, 15, 60, 35, 35,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 190, // catch rate
- 42, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Cleffa
- 50, 25, 28, 15, 45, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 150, // catch rate
- 37, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_LEPPA_BERRY,
- ITEM_MOON_STONE,
- 191, // gender
- 10, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Igglybuff
- 90, 30, 15, 15, 40, 20,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 170, // catch rate
- 39, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK, TRUE
- }, { // Togepi
- 35, 20, 65, 20, 40, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_HUSTLE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Togetic
- 55, 40, 85, 40, 80, 105,
- TYPE_NORMAL,
- TYPE_FLYING,
- 75, // catch rate
- 114, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FAIRY,
- ABILITY_HUSTLE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Natu
- 40, 50, 45, 70, 70, 45,
- TYPE_PSYCHIC,
- TYPE_FLYING,
- 190, // catch rate
- 73, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_SYNCHRONIZE,
- ABILITY_EARLY_BIRD,
- 6, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Xatu
- 65, 75, 70, 95, 95, 70,
- TYPE_PSYCHIC,
- TYPE_FLYING,
- 75, // catch rate
- 171, // base exp. yield
- 0, 0, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_SYNCHRONIZE,
- ABILITY_EARLY_BIRD,
- 8, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Mareep
- 55, 40, 40, 35, 65, 45,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 235, // catch rate
- 59, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Flaaffy
- 70, 55, 55, 45, 80, 60,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 120, // catch rate
- 117, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Ampharos
- 90, 75, 75, 55, 115, 90,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 194, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Bellossom
- 75, 80, 85, 50, 90, 100,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 184, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Marill
- 70, 20, 50, 40, 20, 50,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 58, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FAIRY,
- ABILITY_THICK_FAT,
- ABILITY_HUGE_POWER,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Azumarill
- 100, 50, 80, 50, 50, 80,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 153, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FAIRY,
- ABILITY_THICK_FAT,
- ABILITY_HUGE_POWER,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sudowoodo
- 70, 100, 115, 30, 30, 65,
- TYPE_ROCK,
- TYPE_ROCK,
- 65, // catch rate
- 135, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Politoed
- 90, 75, 75, 70, 90, 100,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 185, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_WATER_ABSORB,
- ABILITY_DAMP,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN, TRUE
- }, { // Hoppip
- 35, 35, 40, 50, 35, 55,
- TYPE_GRASS,
- TYPE_FLYING,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Skiploom
- 55, 45, 50, 80, 45, 65,
- TYPE_GRASS,
- TYPE_FLYING,
- 120, // catch rate
- 136, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Jumpluff
- 75, 55, 70, 110, 55, 85,
- TYPE_GRASS,
- TYPE_FLYING,
- 45, // catch rate
- 176, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Aipom
- 55, 70, 55, 85, 40, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 94, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_PICKUP,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Sunkern
- 30, 30, 30, 30, 30, 30,
- TYPE_GRASS,
- TYPE_GRASS,
- 235, // catch rate
- 52, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Sunflora
- 75, 75, 55, 30, 105, 85,
- TYPE_GRASS,
- TYPE_GRASS,
- 120, // catch rate
- 146, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Yanma
- 65, 65, 45, 95, 75, 45,
- TYPE_BUG,
- TYPE_FLYING,
- 75, // catch rate
- 147, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SPEED_BOOST,
- ABILITY_COMPOUND_EYES,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Wooper
- 55, 45, 45, 15, 25, 25,
- TYPE_WATER,
- TYPE_GROUND,
- 255, // catch rate
- 52, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_WATER_ABSORB,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Quagsire
- 95, 85, 85, 35, 65, 65,
- TYPE_WATER,
- TYPE_GROUND,
- 90, // catch rate
- 137, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_DAMP,
- ABILITY_WATER_ABSORB,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Espeon
- 65, 65, 60, 110, 130, 95,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 197, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SYNCHRONIZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Umbreon
- 95, 65, 110, 65, 60, 130,
- TYPE_DARK,
- TYPE_DARK,
- 45, // catch rate
- 197, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SYNCHRONIZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Murkrow
- 60, 85, 42, 91, 85, 42,
- TYPE_DARK,
- TYPE_FLYING,
- 30, // catch rate
- 107, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Slowking
- 95, 75, 80, 30, 100, 110,
- TYPE_WATER,
- TYPE_PSYCHIC,
- 70, // catch rate
- 164, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_OBLIVIOUS,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Misdreavus
- 60, 60, 60, 85, 85, 85,
- TYPE_GHOST,
- TYPE_GHOST,
- 45, // catch rate
- 147, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Unown
- 48, 72, 48, 48, 72, 48,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 225, // catch rate
- 61, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK, TRUE
- }, { // Wobbuffet
- 190, 33, 58, 33, 33, 58,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 177, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SHADOW_TAG,
- ABILITY_NONE,
- 4, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Girafarig
- 70, 80, 65, 85, 90, 65,
- TYPE_NORMAL,
- TYPE_PSYCHIC,
- 60, // catch rate
- 149, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_PERSIM_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INNER_FOCUS,
- ABILITY_EARLY_BIRD,
- 4, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Pineco
- 50, 65, 90, 15, 35, 35,
- TYPE_BUG,
- TYPE_BUG,
- 190, // catch rate
- 60, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Forretress
- 75, 90, 140, 40, 60, 60,
- TYPE_BUG,
- TYPE_STEEL,
- 75, // catch rate
- 118, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Dunsparce
- 100, 70, 70, 45, 65, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 75, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_SERENE_GRACE,
- ABILITY_RUN_AWAY,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Gligar
- 65, 75, 105, 85, 35, 65,
- TYPE_GROUND,
- TYPE_FLYING,
- 60, // catch rate
- 108, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_HYPER_CUTTER,
- ABILITY_SAND_VEIL,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Steelix
- 75, 85, 200, 30, 55, 65,
- TYPE_STEEL,
- TYPE_GROUND,
- 25, // catch rate
- 196, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_ROCK_HEAD,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Snubbull
- 60, 80, 50, 30, 40, 40,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 63, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_INTIMIDATE,
- ABILITY_RUN_AWAY,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Granbull
- 90, 120, 75, 45, 60, 60,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 75, // catch rate
- 178, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_INTIMIDATE,
- ABILITY_INTIMIDATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Qwilfish
- 65, 95, 75, 85, 55, 55,
- TYPE_WATER,
- TYPE_POISON,
- 45, // catch rate
- 100, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_POISON_POINT,
- ABILITY_SWIFT_SWIM,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Scizor
- 70, 130, 100, 65, 55, 80,
- TYPE_BUG,
- TYPE_STEEL,
- 25, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Shuckle
- 20, 10, 230, 5, 10, 230,
- TYPE_BUG,
- TYPE_ROCK,
- 190, // catch rate
- 80, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_ORAN_BERRY,
- ITEM_ORAN_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Heracross
- 80, 125, 75, 85, 40, 95,
- TYPE_BUG,
- TYPE_FIGHTING,
- 45, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_GUTS,
- 8, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sneasel
- 55, 95, 55, 115, 35, 75,
- TYPE_DARK,
- TYPE_ICE,
- 60, // catch rate
- 132, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_QUICK_CLAW,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INNER_FOCUS,
- ABILITY_KEEN_EYE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK, TRUE
- }, { // Teddiursa
- 60, 80, 50, 40, 50, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 120, // catch rate
- 124, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN, TRUE
- }, { // Ursaring
- 90, 130, 75, 55, 75, 75,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 60, // catch rate
- 189, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Slugma
- 40, 40, 40, 20, 70, 40,
- TYPE_FIRE,
- TYPE_FIRE,
- 190, // catch rate
- 78, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_FLAME_BODY,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Magcargo
- 50, 50, 120, 30, 80, 80,
- TYPE_FIRE,
- TYPE_ROCK,
- 75, // catch rate
- 154, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_MAGMA_ARMOR,
- ABILITY_FLAME_BODY,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Swinub
- 50, 50, 40, 50, 30, 30,
- TYPE_ICE,
- TYPE_GROUND,
- 225, // catch rate
- 78, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Piloswine
- 100, 100, 80, 50, 60, 60,
- TYPE_ICE,
- TYPE_GROUND,
- 75, // catch rate
- 160, // base exp. yield
- 1, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Corsola
- 55, 55, 85, 35, 65, 85,
- TYPE_WATER,
- TYPE_ROCK,
- 60, // catch rate
- 113, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_RED_SHARD,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_HUSTLE,
- ABILITY_NATURAL_CURE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Remoraid
- 35, 65, 35, 65, 65, 35,
- TYPE_WATER,
- TYPE_WATER,
- 190, // catch rate
- 78, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_2,
- ABILITY_HUSTLE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Octillery
- 75, 105, 75, 45, 105, 75,
- TYPE_WATER,
- TYPE_WATER,
- 75, // catch rate
- 164, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_2,
- ABILITY_SUCTION_CUPS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Delibird
- 45, 55, 45, 75, 65, 45,
- TYPE_ICE,
- TYPE_FLYING,
- 45, // catch rate
- 183, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_HUSTLE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Mantine
- 65, 40, 70, 70, 80, 140,
- TYPE_WATER,
- TYPE_FLYING,
- 25, // catch rate
- 168, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SWIFT_SWIM,
- ABILITY_WATER_ABSORB,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Skarmory
- 65, 80, 140, 70, 40, 70,
- TYPE_STEEL,
- TYPE_FLYING,
- 25, // catch rate
- 168, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_STURDY,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Houndour
- 45, 60, 30, 65, 80, 50,
- TYPE_DARK,
- TYPE_FIRE,
- 120, // catch rate
- 114, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_EARLY_BIRD,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Houndoom
- 75, 90, 50, 95, 110, 80,
- TYPE_DARK,
- TYPE_FIRE,
- 45, // catch rate
- 204, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_EARLY_BIRD,
- ABILITY_FLASH_FIRE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Kingdra
- 75, 95, 95, 85, 95, 95,
- TYPE_WATER,
- TYPE_DRAGON,
- 45, // catch rate
- 207, // base exp. yield
- 0, 1, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Phanpy
- 90, 60, 60, 40, 40, 40,
- TYPE_GROUND,
- TYPE_GROUND,
- 120, // catch rate
- 124, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 10, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Donphan
- 90, 120, 120, 50, 60, 60,
- TYPE_GROUND,
- TYPE_GROUND,
- 60, // catch rate
- 189, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_STURDY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Porygon2
- 85, 80, 90, 60, 105, 95,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 180, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_TRACE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Stantler
- 73, 95, 62, 85, 85, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 165, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Smeargle
- 55, 20, 35, 75, 20, 45,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 106, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OWN_TEMPO,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Tyrogue
- 35, 35, 35, 35, 35, 35,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 75, // catch rate
- 91, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Hitmontop
- 50, 95, 95, 70, 35, 110,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 45, // catch rate
- 138, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Smoochum
- 45, 30, 15, 65, 85, 65,
- TYPE_ICE,
- TYPE_PSYCHIC,
- 45, // catch rate
- 87, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_ASPEAR_BERRY,
- ITEM_ASPEAR_BERRY,
- 254, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Elekid
- 45, 63, 37, 95, 65, 55,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 106, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_STATIC,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW, TRUE
- }, { // Magby
- 45, 75, 37, 83, 70, 55,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 117, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 63, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_FLAME_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Miltank
- 95, 80, 105, 100, 40, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 200, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_MOOMOO_MILK,
- ITEM_MOOMOO_MILK,
- 254, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Blissey
- 255, 10, 10, 55, 75, 135,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 30, // catch rate
- 255, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_LUCKY_EGG,
- 254, // gender
- 40, // egg cycles
- 140, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_NATURAL_CURE,
- ABILITY_SERENE_GRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Raikou
- 90, 85, 75, 115, 115, 100,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 3, // catch rate
- 216, // base exp. yield
- 0, 0, 0, 2, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Entei
- 115, 115, 85, 100, 90, 75,
- TYPE_FIRE,
- TYPE_FIRE,
- 3, // catch rate
- 217, // base exp. yield
- 1, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Suicune
- 100, 75, 115, 85, 90, 115,
- TYPE_WATER,
- TYPE_WATER,
- 3, // catch rate
- 215, // base exp. yield
- 0, 0, 1, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Larvitar
- 50, 64, 50, 41, 45, 50,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 67, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Pupitar
- 70, 84, 70, 51, 65, 70,
- TYPE_ROCK,
- TYPE_GROUND,
- 45, // catch rate
- 144, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Tyranitar
- 100, 134, 110, 61, 95, 100,
- TYPE_ROCK,
- TYPE_DARK,
- 45, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_SAND_STREAM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Lugia
- 106, 90, 130, 110, 90, 154,
- TYPE_PSYCHIC,
- TYPE_FLYING,
- 3, // catch rate
- 220, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Ho-Oh
- 106, 130, 90, 90, 110, 154,
- TYPE_FIRE,
- TYPE_FLYING,
- 3, // catch rate
- 220, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_SACRED_ASH,
- ITEM_SACRED_ASH,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Celebi
- 100, 100, 100, 100, 100, 100,
- TYPE_PSYCHIC,
- TYPE_GRASS,
- 45, // catch rate
- 64, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_LUM_BERRY,
- ITEM_LUM_BERRY,
- 255, // gender
- 120, // egg cycles
- 100, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NATURAL_CURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // ?
- 50, 150, 50, 150, 150, 50,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 3, // catch rate
- 1, // base exp. yield
- 2, 2, 2, 2, 2, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_NONE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Treecko
- 40, 45, 35, 70, 65, 55,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Grovyle
- 50, 65, 45, 95, 85, 65,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 141, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Sceptile
- 70, 85, 65, 120, 105, 85,
- TYPE_GRASS,
- TYPE_GRASS,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 0, 3, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_DRAGON,
- ABILITY_OVERGROW,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Torchic
- 45, 60, 40, 45, 70, 50,
- TYPE_FIRE,
- TYPE_FIRE,
- 45, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Combusken
- 60, 85, 60, 55, 85, 60,
- TYPE_FIRE,
- TYPE_FIGHTING,
- 45, // catch rate
- 142, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Blaziken
- 80, 120, 70, 80, 110, 70,
- TYPE_FIRE,
- TYPE_FIGHTING,
- 45, // catch rate
- 209, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_BLAZE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Mudkip
- 50, 70, 50, 40, 50, 50,
- TYPE_WATER,
- TYPE_WATER,
- 45, // catch rate
- 65, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Marshtomp
- 70, 85, 70, 50, 60, 70,
- TYPE_WATER,
- TYPE_GROUND,
- 45, // catch rate
- 143, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Swampert
- 100, 110, 90, 60, 85, 90,
- TYPE_WATER,
- TYPE_GROUND,
- 45, // catch rate
- 210, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_WATER_1,
- ABILITY_TORRENT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Poochyena
- 35, 55, 35, 35, 30, 30,
- TYPE_DARK,
- TYPE_DARK,
- 255, // catch rate
- 55, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_PECHA_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_RUN_AWAY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Mightyena
- 70, 90, 70, 70, 60, 60,
- TYPE_DARK,
- TYPE_DARK,
- 127, // catch rate
- 128, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_PECHA_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Zigzagoon
- 38, 30, 41, 60, 30, 41,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 60, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_ORAN_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Linoone
- 78, 70, 61, 100, 50, 61,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 128, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_ORAN_BERRY,
- ITEM_SITRUS_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PICKUP,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Wurmple
- 45, 45, 35, 20, 20, 30,
- TYPE_BUG,
- TYPE_BUG,
- 255, // catch rate
- 54, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Silcoon
- 50, 35, 55, 15, 25, 25,
- TYPE_BUG,
- TYPE_BUG,
- 120, // catch rate
- 71, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Beautifly
- 60, 70, 50, 65, 90, 50,
- TYPE_BUG,
- TYPE_FLYING,
- 45, // catch rate
- 161, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SWARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Cascoon
- 50, 35, 55, 15, 25, 25,
- TYPE_BUG,
- TYPE_BUG,
- 120, // catch rate
- 72, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Dustox
- 60, 50, 70, 65, 50, 90,
- TYPE_BUG,
- TYPE_POISON,
- 45, // catch rate
- 160, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SHIELD_DUST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Lotad
- 40, 30, 30, 30, 40, 50,
- TYPE_WATER,
- TYPE_GRASS,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_GRASS,
- ABILITY_SWIFT_SWIM,
- ABILITY_RAIN_DISH,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Lombre
- 60, 50, 50, 50, 60, 70,
- TYPE_WATER,
- TYPE_GRASS,
- 120, // catch rate
- 141, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_GRASS,
- ABILITY_SWIFT_SWIM,
- ABILITY_RAIN_DISH,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Ludicolo
- 80, 70, 70, 70, 90, 100,
- TYPE_WATER,
- TYPE_GRASS,
- 45, // catch rate
- 181, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_GRASS,
- ABILITY_SWIFT_SWIM,
- ABILITY_RAIN_DISH,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Seedot
- 40, 40, 50, 30, 30, 30,
- TYPE_GRASS,
- TYPE_GRASS,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Nuzleaf
- 70, 70, 40, 60, 60, 40,
- TYPE_GRASS,
- TYPE_DARK,
- 120, // catch rate
- 141, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Shiftry
- 90, 100, 60, 80, 90, 60,
- TYPE_GRASS,
- TYPE_DARK,
- 45, // catch rate
- 181, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_EARLY_BIRD,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Nincada
- 31, 45, 90, 40, 30, 30,
- TYPE_BUG,
- TYPE_GROUND,
- 255, // catch rate
- 65, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_COMPOUND_EYES,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Ninjask
- 61, 90, 45, 160, 50, 50,
- TYPE_BUG,
- TYPE_FLYING,
- 120, // catch rate
- 155, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_SPEED_BOOST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Shedinja
- 1, 90, 45, 40, 30, 30,
- TYPE_BUG,
- TYPE_GHOST,
- 45, // catch rate
- 95, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_WONDER_GUARD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Taillow
- 40, 55, 30, 85, 30, 30,
- TYPE_NORMAL,
- TYPE_FLYING,
- 200, // catch rate
- 59, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Swellow
- 60, 85, 60, 125, 50, 50,
- TYPE_NORMAL,
- TYPE_FLYING,
- 45, // catch rate
- 162, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FLYING,
- EGG_GROUP_FLYING,
- ABILITY_GUTS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Shroomish
- 60, 40, 60, 35, 40, 60,
- TYPE_GRASS,
- TYPE_GRASS,
- 255, // catch rate
- 65, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Breloom
- 60, 130, 80, 70, 60, 60,
- TYPE_GRASS,
- TYPE_FIGHTING,
- 90, // catch rate
- 165, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_EFFECT_SPORE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Spinda
- 60, 60, 60, 60, 60, 60,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 85, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_OWN_TEMPO,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN, TRUE
- }, { // Wingull
- 40, 30, 30, 85, 55, 30,
- TYPE_WATER,
- TYPE_FLYING,
- 190, // catch rate
- 64, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Pelipper
- 60, 50, 100, 65, 85, 70,
- TYPE_WATER,
- TYPE_FLYING,
- 45, // catch rate
- 164, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FLYING,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Surskit
- 40, 30, 32, 65, 50, 52,
- TYPE_BUG,
- TYPE_WATER,
- 200, // catch rate
- 63, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_BUG,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Masquerain
- 70, 60, 62, 60, 80, 82,
- TYPE_BUG,
- TYPE_FLYING,
- 75, // catch rate
- 128, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_SILVER_POWDER,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_1,
- EGG_GROUP_BUG,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wailmer
- 130, 70, 35, 60, 70, 35,
- TYPE_WATER,
- TYPE_WATER,
- 125, // catch rate
- 137, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FIELD,
- EGG_GROUP_WATER_2,
- ABILITY_WATER_VEIL,
- ABILITY_OBLIVIOUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wailord
- 170, 90, 45, 60, 90, 45,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 206, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FIELD,
- EGG_GROUP_WATER_2,
- ABILITY_WATER_VEIL,
- ABILITY_OBLIVIOUS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Skitty
- 50, 45, 45, 50, 35, 35,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 65, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_LEPPA_BERRY,
- 191, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Delcatty
- 70, 65, 65, 70, 55, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 60, // catch rate
- 138, // base exp. yield
- 1, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_LEPPA_BERRY,
- 191, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_CUTE_CHARM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Kecleon
- 60, 90, 70, 40, 60, 120,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 200, // catch rate
- 132, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_PERSIM_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_COLOR_CHANGE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Baltoy
- 40, 40, 55, 55, 40, 70,
- TYPE_GROUND,
- TYPE_PSYCHIC,
- 255, // catch rate
- 58, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Claydol
- 60, 70, 105, 75, 70, 120,
- TYPE_GROUND,
- TYPE_PSYCHIC,
- 90, // catch rate
- 189, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Nosepass
- 30, 45, 135, 30, 45, 90,
- TYPE_ROCK,
- TYPE_ROCK,
- 255, // catch rate
- 108, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_STURDY,
- ABILITY_MAGNET_PULL,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Torkoal
- 70, 85, 140, 20, 85, 70,
- TYPE_FIRE,
- TYPE_FIRE,
- 90, // catch rate
- 161, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_WHITE_SMOKE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Sableye
- 50, 75, 75, 50, 65, 65,
- TYPE_DARK,
- TYPE_GHOST,
- 45, // catch rate
- 98, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_KEEN_EYE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Barboach
- 50, 48, 43, 60, 46, 41,
- TYPE_WATER,
- TYPE_GROUND,
- 190, // catch rate
- 92, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Whiscash
- 110, 78, 73, 60, 76, 71,
- TYPE_WATER,
- TYPE_GROUND,
- 75, // catch rate
- 158, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Luvdisc
- 43, 30, 55, 97, 40, 65,
- TYPE_WATER,
- TYPE_WATER,
- 225, // catch rate
- 110, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_HEART_SCALE,
- ITEM_NONE,
- 191, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Corphish
- 43, 80, 65, 35, 50, 35,
- TYPE_WATER,
- TYPE_WATER,
- 205, // catch rate
- 111, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Crawdaunt
- 63, 120, 85, 55, 90, 55,
- TYPE_WATER,
- TYPE_DARK,
- 155, // catch rate
- 161, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_3,
- ABILITY_HYPER_CUTTER,
- ABILITY_SHELL_ARMOR,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Feebas
- 20, 15, 20, 80, 10, 55,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 61, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Milotic
- 95, 60, 79, 81, 100, 125,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 213, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_DRAGON,
- ABILITY_MARVEL_SCALE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Carvanha
- 45, 90, 20, 65, 65, 20,
- TYPE_WATER,
- TYPE_DARK,
- 225, // catch rate
- 88, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_ROUGH_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Sharpedo
- 70, 120, 40, 95, 95, 40,
- TYPE_WATER,
- TYPE_DARK,
- 60, // catch rate
- 175, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_2,
- EGG_GROUP_WATER_2,
- ABILITY_ROUGH_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Trapinch
- 45, 100, 45, 10, 45, 45,
- TYPE_GROUND,
- TYPE_GROUND,
- 255, // catch rate
- 73, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SOFT_SAND,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_HYPER_CUTTER,
- ABILITY_ARENA_TRAP,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Vibrava
- 50, 70, 50, 70, 50, 50,
- TYPE_GROUND,
- TYPE_DRAGON,
- 120, // catch rate
- 126, // base exp. yield
- 0, 1, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_LEVITATE,
- ABILITY_LEVITATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Flygon
- 80, 100, 80, 100, 80, 80,
- TYPE_GROUND,
- TYPE_DRAGON,
- 45, // catch rate
- 197, // base exp. yield
- 0, 1, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_BUG,
- EGG_GROUP_BUG,
- ABILITY_LEVITATE,
- ABILITY_LEVITATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Makuhita
- 72, 60, 30, 25, 20, 30,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 180, // catch rate
- 87, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_THICK_FAT,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Hariyama
- 144, 120, 60, 50, 40, 60,
- TYPE_FIGHTING,
- TYPE_FIGHTING,
- 200, // catch rate
- 184, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_KINGS_ROCK,
- 63, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_THICK_FAT,
- ABILITY_GUTS,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Electrike
- 40, 45, 40, 65, 65, 40,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 120, // catch rate
- 104, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Manectric
- 70, 75, 60, 105, 105, 60,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 45, // catch rate
- 168, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_STATIC,
- ABILITY_LIGHTNING_ROD,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Numel
- 60, 60, 40, 35, 65, 45,
- TYPE_FIRE,
- TYPE_GROUND,
- 255, // catch rate
- 88, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Camerupt
- 70, 100, 70, 40, 105, 75,
- TYPE_FIRE,
- TYPE_GROUND,
- 150, // catch rate
- 175, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_RAWST_BERRY,
- ITEM_RAWST_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_MAGMA_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Spheal
- 70, 40, 50, 25, 55, 50,
- TYPE_ICE,
- TYPE_WATER,
- 255, // catch rate
- 75, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Sealeo
- 90, 60, 70, 45, 75, 70,
- TYPE_ICE,
- TYPE_WATER,
- 120, // catch rate
- 128, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Walrein
- 110, 80, 90, 65, 95, 90,
- TYPE_ICE,
- TYPE_WATER,
- 45, // catch rate
- 192, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Cacnea
- 50, 85, 40, 35, 85, 40,
- TYPE_GRASS,
- TYPE_GRASS,
- 190, // catch rate
- 97, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Cacturne
- 70, 115, 60, 55, 115, 60,
- TYPE_GRASS,
- TYPE_DARK,
- 60, // catch rate
- 177, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_GRASS,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_SAND_VEIL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Snorunt
- 50, 50, 50, 50, 50, 50,
- TYPE_ICE,
- TYPE_ICE,
- 190, // catch rate
- 74, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_MINERAL,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Glalie
- 80, 80, 80, 80, 80, 80,
- TYPE_ICE,
- TYPE_ICE,
- 75, // catch rate
- 187, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NEVER_MELT_ICE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_MINERAL,
- ABILITY_INNER_FOCUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Lunatone
- 70, 55, 65, 70, 95, 85,
- TYPE_ROCK,
- TYPE_PSYCHIC,
- 45, // catch rate
- 150, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_MOON_STONE,
- 255, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Solrock
- 70, 95, 85, 70, 55, 65,
- TYPE_ROCK,
- TYPE_PSYCHIC,
- 45, // catch rate
- 150, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SUN_STONE,
- 255, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Azurill
- 50, 20, 40, 20, 20, 40,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 150, // catch rate
- 33, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 191, // gender
- 10, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_THICK_FAT,
- ABILITY_HUGE_POWER,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Spoink
- 60, 25, 35, 60, 70, 80,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 255, // catch rate
- 89, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Grumpig
- 80, 45, 65, 80, 90, 110,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 60, // catch rate
- 164, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_THICK_FAT,
- ABILITY_OWN_TEMPO,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Plusle
- 60, 50, 40, 95, 85, 75,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 200, // catch rate
- 120, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_PLUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Minun
- 60, 40, 50, 95, 75, 85,
- TYPE_ELECTRIC,
- TYPE_ELECTRIC,
- 200, // catch rate
- 120, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_FAIRY,
- ABILITY_MINUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Mawile
- 50, 85, 85, 50, 55, 55,
- TYPE_STEEL,
- TYPE_STEEL,
- 45, // catch rate
- 98, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_FIELD,
- EGG_GROUP_FAIRY,
- ABILITY_HYPER_CUTTER,
- ABILITY_INTIMIDATE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Meditite
- 30, 40, 55, 60, 40, 55,
- TYPE_FIGHTING,
- TYPE_PSYCHIC,
- 180, // catch rate
- 91, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_PURE_POWER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Medicham
- 60, 60, 75, 80, 60, 75,
- TYPE_FIGHTING,
- TYPE_PSYCHIC,
- 90, // catch rate
- 153, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_HUMAN_LIKE,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_PURE_POWER,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Swablu
- 45, 40, 60, 50, 40, 75,
- TYPE_NORMAL,
- TYPE_FLYING,
- 255, // catch rate
- 74, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_FLYING,
- EGG_GROUP_DRAGON,
- ABILITY_NATURAL_CURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Altaria
- 75, 70, 90, 80, 70, 105,
- TYPE_DRAGON,
- TYPE_FLYING,
- 45, // catch rate
- 188, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_FLYING,
- EGG_GROUP_DRAGON,
- ABILITY_NATURAL_CURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Wynaut
- 95, 23, 48, 23, 23, 48,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 125, // catch rate
- 44, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_SHADOW_TAG,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Duskull
- 20, 40, 90, 25, 30, 90,
- TYPE_GHOST,
- TYPE_GHOST,
- 190, // catch rate
- 97, // base exp. yield
- 0, 0, 1, 0, 0, 1,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Dusclops
- 40, 70, 130, 25, 60, 130,
- TYPE_GHOST,
- TYPE_GHOST,
- 90, // catch rate
- 179, // base exp. yield
- 0, 0, 1, 0, 0, 2,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Roselia
- 50, 60, 45, 65, 100, 80,
- TYPE_GRASS,
- TYPE_POISON,
- 150, // catch rate
- 152, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_POISON_BARB,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FAIRY,
- EGG_GROUP_GRASS,
- ABILITY_NATURAL_CURE,
- ABILITY_POISON_POINT,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN, TRUE
- }, { // Slakoth
- 60, 60, 60, 30, 35, 35,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 255, // catch rate
- 83, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_TRUANT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Vigoroth
- 80, 80, 80, 90, 55, 55,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 120, // catch rate
- 126, // base exp. yield
- 0, 0, 0, 2, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_VITAL_SPIRIT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Slaking
- 150, 160, 100, 100, 95, 65,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 210, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_TRUANT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Gulpin
- 70, 43, 53, 40, 43, 53,
- TYPE_POISON,
- TYPE_POISON,
- 225, // catch rate
- 75, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LIQUID_OOZE,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Swalot
- 100, 73, 83, 55, 73, 83,
- TYPE_POISON,
- TYPE_POISON,
- 75, // catch rate
- 168, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_BIG_PEARL,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LIQUID_OOZE,
- ABILITY_STICKY_HOLD,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Tropius
- 99, 68, 83, 51, 72, 87,
- TYPE_GRASS,
- TYPE_FLYING,
- 200, // catch rate
- 169, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_GRASS,
- ABILITY_CHLOROPHYLL,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Whismur
- 64, 51, 23, 28, 51, 23,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 190, // catch rate
- 68, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Loudred
- 84, 71, 43, 48, 71, 43,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 120, // catch rate
- 126, // base exp. yield
- 2, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Exploud
- 104, 91, 63, 68, 91, 63,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 184, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_CHESTO_BERRY,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_FIELD,
- ABILITY_SOUNDPROOF,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Clamperl
- 35, 64, 85, 32, 74, 55,
- TYPE_WATER,
- TYPE_WATER,
- 255, // catch rate
- 142, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_BLUE_SHARD,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SHELL_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Huntail
- 55, 104, 105, 52, 94, 75,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 178, // base exp. yield
- 0, 1, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Gorebyss
- 55, 84, 105, 52, 114, 75,
- TYPE_WATER,
- TYPE_WATER,
- 60, // catch rate
- 178, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_1,
- ABILITY_SWIFT_SWIM,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PINK
- }, { // Absol
- 65, 130, 60, 75, 75, 60,
- TYPE_DARK,
- TYPE_DARK,
- 30, // catch rate
- 174, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_MEDIUM_SLOW,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE, TRUE
- }, { // Shuppet
- 44, 75, 35, 45, 63, 33,
- TYPE_GHOST,
- TYPE_GHOST,
- 225, // catch rate
- 97, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Banette
- 64, 115, 65, 65, 83, 63,
- TYPE_GHOST,
- TYPE_GHOST,
- 45, // catch rate
- 179, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_SPELL_TAG,
- 127, // gender
- 25, // egg cycles
- 35, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_INSOMNIA,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK
- }, { // Seviper
- 73, 100, 60, 65, 100, 60,
- TYPE_POISON,
- TYPE_POISON,
- 90, // catch rate
- 165, // base exp. yield
- 0, 1, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_FIELD,
- EGG_GROUP_DRAGON,
- ABILITY_SHED_SKIN,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLACK, TRUE
- }, { // Zangoose
- 73, 115, 60, 90, 60, 60,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 90, // catch rate
- 165, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_FIELD,
- EGG_GROUP_FIELD,
- ABILITY_IMMUNITY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE, TRUE
- }, { // Relicanth
- 100, 90, 130, 55, 45, 65,
- TYPE_WATER,
- TYPE_ROCK,
- 25, // catch rate
- 198, // base exp. yield
- 1, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_GREEN_SHARD,
- 31, // gender
- 40, // egg cycles
- 70, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_WATER_1,
- EGG_GROUP_WATER_2,
- ABILITY_SWIFT_SWIM,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Aron
- 50, 70, 100, 30, 40, 40,
- TYPE_STEEL,
- TYPE_ROCK,
- 180, // catch rate
- 96, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_HARD_STONE,
- 127, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Lairon
- 60, 90, 140, 40, 50, 50,
- TYPE_STEEL,
- TYPE_ROCK,
- 90, // catch rate
- 152, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_HARD_STONE,
- 127, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Aggron
- 70, 110, 180, 50, 60, 60,
- TYPE_STEEL,
- TYPE_ROCK,
- 45, // catch rate
- 205, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_HARD_STONE,
- 127, // gender
- 35, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MONSTER,
- EGG_GROUP_MONSTER,
- ABILITY_STURDY,
- ABILITY_ROCK_HEAD,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Castform
- 70, 70, 70, 70, 70, 70,
- TYPE_NORMAL,
- TYPE_NORMAL,
- 45, // catch rate
- 145, // base exp. yield
- 1, 0, 0, 0, 0, 0,
- ITEM_MYSTIC_WATER,
- ITEM_MYSTIC_WATER,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_MEDIUM_FAST,
- EGG_GROUP_FAIRY,
- EGG_GROUP_AMORPHOUS,
- ABILITY_FORECAST,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Volbeat
- 65, 73, 55, 85, 47, 75,
- TYPE_BUG,
- TYPE_BUG,
- 150, // catch rate
- 146, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_BUG,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_ILLUMINATE,
- ABILITY_SWARM,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Illumise
- 65, 47, 55, 85, 73, 75,
- TYPE_BUG,
- TYPE_BUG,
- 150, // catch rate
- 146, // base exp. yield
- 0, 0, 0, 1, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 15, // egg cycles
- 70, // base friendship
- GROWTH_FLUCTUATING,
- EGG_GROUP_BUG,
- EGG_GROUP_HUMAN_LIKE,
- ABILITY_OBLIVIOUS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Lileep
- 66, 41, 77, 23, 61, 87,
- TYPE_ROCK,
- TYPE_GRASS,
- 45, // catch rate
- 121, // base exp. yield
- 0, 0, 0, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SUCTION_CUPS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_PURPLE
- }, { // Cradily
- 86, 81, 97, 43, 81, 107,
- TYPE_ROCK,
- TYPE_GRASS,
- 45, // catch rate
- 201, // base exp. yield
- 0, 0, 0, 0, 0, 2,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_SUCTION_CUPS,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Anorith
- 45, 95, 50, 75, 40, 50,
- TYPE_ROCK,
- TYPE_BUG,
- 45, // catch rate
- 119, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_BATTLE_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Armaldo
- 75, 125, 100, 45, 70, 80,
- TYPE_ROCK,
- TYPE_BUG,
- 45, // catch rate
- 200, // base exp. yield
- 0, 2, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 31, // gender
- 30, // egg cycles
- 70, // base friendship
- GROWTH_ERRATIC,
- EGG_GROUP_WATER_3,
- EGG_GROUP_WATER_3,
- ABILITY_BATTLE_ARMOR,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Ralts
- 28, 25, 25, 40, 45, 35,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 235, // catch rate
- 70, // base exp. yield
- 0, 0, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SYNCHRONIZE,
- ABILITY_TRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Kirlia
- 38, 35, 35, 50, 65, 55,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 120, // catch rate
- 140, // base exp. yield
- 0, 0, 0, 0, 2, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SYNCHRONIZE,
- ABILITY_TRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Gardevoir
- 68, 65, 65, 80, 125, 115,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 208, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 20, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_SYNCHRONIZE,
- ABILITY_TRACE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Bagon
- 45, 75, 60, 50, 40, 30,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 89, // base exp. yield
- 0, 1, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_DRAGON,
- EGG_GROUP_DRAGON,
- ABILITY_ROCK_HEAD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Shelgon
- 65, 95, 100, 50, 60, 50,
- TYPE_DRAGON,
- TYPE_DRAGON,
- 45, // catch rate
- 144, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_DRAGON,
- EGG_GROUP_DRAGON,
- ABILITY_ROCK_HEAD,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_WHITE
- }, { // Salamence
- 95, 135, 80, 100, 110, 80,
- TYPE_DRAGON,
- TYPE_FLYING,
- 45, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_DRAGON_SCALE,
- 127, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_DRAGON,
- EGG_GROUP_DRAGON,
- ABILITY_INTIMIDATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Beldum
- 40, 55, 80, 30, 35, 60,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 103, // base exp. yield
- 0, 0, 1, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Metang
- 60, 75, 100, 50, 55, 80,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 153, // base exp. yield
- 0, 0, 2, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Metagross
- 80, 135, 130, 70, 95, 90,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 210, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_METAL_COAT,
- 255, // gender
- 40, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_MINERAL,
- EGG_GROUP_MINERAL,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Regirock
- 80, 100, 200, 50, 50, 100,
- TYPE_ROCK,
- TYPE_ROCK,
- 3, // catch rate
- 217, // base exp. yield
- 0, 0, 3, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BROWN
- }, { // Regice
- 80, 50, 100, 50, 100, 200,
- TYPE_ICE,
- TYPE_ICE,
- 3, // catch rate
- 216, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Registeel
- 80, 75, 150, 50, 75, 150,
- TYPE_STEEL,
- TYPE_STEEL,
- 3, // catch rate
- 215, // base exp. yield
- 0, 0, 2, 0, 0, 1,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 80, // egg cycles
- 35, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_CLEAR_BODY,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GRAY
- }, { // Kyogre
- 100, 100, 90, 90, 150, 140,
- TYPE_WATER,
- TYPE_WATER,
- 5, // catch rate
- 218, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_DRIZZLE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Groudon
- 100, 150, 140, 90, 100, 90,
- TYPE_GROUND,
- TYPE_GROUND,
- 5, // catch rate
- 218, // base exp. yield
- 0, 3, 0, 0, 0, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_DROUGHT,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Rayquaza
- 105, 150, 90, 95, 150, 90,
- TYPE_DRAGON,
- TYPE_FLYING,
- 3, // catch rate
- 220, // base exp. yield
- 0, 2, 0, 0, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_AIR_LOCK,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_GREEN
- }, { // Latias
- 80, 80, 90, 110, 110, 130,
- TYPE_DRAGON,
- TYPE_PSYCHIC,
- 3, // catch rate
- 211, // base exp. yield
- 0, 0, 0, 0, 0, 3,
- ITEM_NONE,
- ITEM_NONE,
- 254, // gender
- 120, // egg cycles
- 90, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED
- }, { // Latios
- 80, 90, 80, 110, 130, 110,
- TYPE_DRAGON,
- TYPE_PSYCHIC,
- 3, // catch rate
- 211, // base exp. yield
- 0, 0, 0, 0, 3, 0,
- ITEM_NONE,
- ITEM_NONE,
- 0, // gender
- 120, // egg cycles
- 90, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
- }, { // Jirachi
- 100, 100, 100, 100, 100, 100,
- TYPE_STEEL,
- TYPE_PSYCHIC,
- 3, // catch rate
- 215, // base exp. yield
- 3, 0, 0, 0, 0, 0,
- ITEM_STAR_PIECE,
- ITEM_STAR_PIECE,
- 255, // gender
- 120, // egg cycles
- 100, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_SERENE_GRACE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_YELLOW
- }, { // Deoxys
- 50, 150, 50, 150, 150, 50,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 3, // catch rate
- 215, // base exp. yield
- 0, 1, 0, 1, 1, 0,
- ITEM_NONE,
- ITEM_NONE,
- 255, // gender
- 120, // egg cycles
- 0, // base friendship
- GROWTH_SLOW,
- EGG_GROUP_UNDISCOVERED,
- EGG_GROUP_UNDISCOVERED,
- ABILITY_PRESSURE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_RED, TRUE
- }, { // Chimecho
- 65, 50, 70, 65, 95, 80,
- TYPE_PSYCHIC,
- TYPE_PSYCHIC,
- 45, // catch rate
- 147, // base exp. yield
- 0, 0, 0, 0, 1, 1,
- ITEM_NONE,
- ITEM_NONE,
- 127, // gender
- 25, // egg cycles
- 70, // base friendship
- GROWTH_FAST,
- EGG_GROUP_AMORPHOUS,
- EGG_GROUP_AMORPHOUS,
- ABILITY_LEVITATE,
- ABILITY_NONE,
- 0, // Safari Zone flee rate
- BODY_COLOR_BLUE
+#ifndef GUARD_BASE_STATS_H
+#define GUARD_BASE_STATS_H
+
+// Maximum value for a female pokemon is 254 (MON_FEMALE) which is 100% female.
+// 255 (MON_GENDERLESS) is reserved for genderless pokemon.
+#define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100))
+
+const struct BaseStats gBaseStats[] =
+{
+ [SPECIES_NONE] = {0},
+
+ [SPECIES_BULBASAUR] =
+ {
+ .baseHP = 45,
+ .baseAttack = 49,
+ .baseDefense = 49,
+ .baseSpeed = 45,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_IVYSAUR] =
+ {
+ .baseHP = 60,
+ .baseAttack = 62,
+ .baseDefense = 63,
+ .baseSpeed = 60,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VENUSAUR] =
+ {
+ .baseHP = 80,
+ .baseAttack = 82,
+ .baseDefense = 83,
+ .baseSpeed = 80,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHARMANDER] =
+ {
+ .baseHP = 39,
+ .baseAttack = 52,
+ .baseDefense = 43,
+ .baseSpeed = 65,
+ .baseSpAttack = 60,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHARMELEON] =
+ {
+ .baseHP = 58,
+ .baseAttack = 64,
+ .baseDefense = 58,
+ .baseSpeed = 80,
+ .baseSpAttack = 80,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHARIZARD] =
+ {
+ .baseHP = 78,
+ .baseAttack = 84,
+ .baseDefense = 78,
+ .baseSpeed = 100,
+ .baseSpAttack = 109,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 209,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SQUIRTLE] =
+ {
+ .baseHP = 44,
+ .baseAttack = 48,
+ .baseDefense = 65,
+ .baseSpeed = 43,
+ .baseSpAttack = 50,
+ .baseSpDefense = 64,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 66,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WARTORTLE] =
+ {
+ .baseHP = 59,
+ .baseAttack = 63,
+ .baseDefense = 80,
+ .baseSpeed = 58,
+ .baseSpAttack = 65,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 143,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BLASTOISE] =
+ {
+ .baseHP = 79,
+ .baseAttack = 83,
+ .baseDefense = 100,
+ .baseSpeed = 78,
+ .baseSpAttack = 85,
+ .baseSpDefense = 105,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CATERPIE] =
+ {
+ .baseHP = 45,
+ .baseAttack = 30,
+ .baseDefense = 35,
+ .baseSpeed = 45,
+ .baseSpAttack = 20,
+ .baseSpDefense = 20,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 255,
+ .expYield = 53,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_METAPOD] =
+ {
+ .baseHP = 50,
+ .baseAttack = 20,
+ .baseDefense = 55,
+ .baseSpeed = 30,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 120,
+ .expYield = 72,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BUTTERFREE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 45,
+ .baseDefense = 50,
+ .baseSpeed = 70,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 160,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_COMPOUND_EYES,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WEEDLE] =
+ {
+ .baseHP = 40,
+ .baseAttack = 35,
+ .baseDefense = 30,
+ .baseSpeed = 50,
+ .baseSpAttack = 20,
+ .baseSpDefense = 20,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 52,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KAKUNA] =
+ {
+ .baseHP = 45,
+ .baseAttack = 25,
+ .baseDefense = 50,
+ .baseSpeed = 35,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 71,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BEEDRILL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 80,
+ .baseDefense = 40,
+ .baseSpeed = 75,
+ .baseSpAttack = 45,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 159,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIDGEY] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 40,
+ .baseSpeed = 56,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 55,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIDGEOTTO] =
+ {
+ .baseHP = 63,
+ .baseAttack = 60,
+ .baseDefense = 55,
+ .baseSpeed = 71,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 120,
+ .expYield = 113,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIDGEOT] =
+ {
+ .baseHP = 83,
+ .baseAttack = 80,
+ .baseDefense = 75,
+ .baseSpeed = 91,
+ .baseSpAttack = 70,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 172,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RATTATA] =
+ {
+ .baseHP = 30,
+ .baseAttack = 56,
+ .baseDefense = 35,
+ .baseSpeed = 72,
+ .baseSpAttack = 25,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 57,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RATICATE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 81,
+ .baseDefense = 60,
+ .baseSpeed = 97,
+ .baseSpAttack = 50,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 127,
+ .expYield = 116,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPEAROW] =
+ {
+ .baseHP = 40,
+ .baseAttack = 60,
+ .baseDefense = 30,
+ .baseSpeed = 70,
+ .baseSpAttack = 31,
+ .baseSpDefense = 31,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 58,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FEAROW] =
+ {
+ .baseHP = 65,
+ .baseAttack = 90,
+ .baseDefense = 65,
+ .baseSpeed = 100,
+ .baseSpAttack = 61,
+ .baseSpDefense = 61,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 162,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SHARP_BEAK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EKANS] =
+ {
+ .baseHP = 35,
+ .baseAttack = 60,
+ .baseDefense = 44,
+ .baseSpeed = 55,
+ .baseSpAttack = 40,
+ .baseSpDefense = 54,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 62,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_SHED_SKIN,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARBOK] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 69,
+ .baseSpeed = 80,
+ .baseSpAttack = 65,
+ .baseSpDefense = 79,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_SHED_SKIN,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PIKACHU] =
+ {
+ .baseHP = 35,
+ .baseAttack = 55,
+ .baseDefense = 30,
+ .baseSpeed = 90,
+ .baseSpAttack = 50,
+ .baseSpDefense = 40,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 82,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_LIGHT_BALL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAICHU] =
+ {
+ .baseHP = 60,
+ .baseAttack = 90,
+ .baseDefense = 55,
+ .baseSpeed = 100,
+ .baseSpAttack = 90,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 75,
+ .expYield = 122,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SANDSHREW] =
+ {
+ .baseHP = 50,
+ .baseAttack = 75,
+ .baseDefense = 85,
+ .baseSpeed = 40,
+ .baseSpAttack = 20,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 93,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_QUICK_CLAW,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SANDSLASH] =
+ {
+ .baseHP = 75,
+ .baseAttack = 100,
+ .baseDefense = 110,
+ .baseSpeed = 65,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 90,
+ .expYield = 163,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_QUICK_CLAW,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORAN_F] =
+ {
+ .baseHP = 55,
+ .baseAttack = 47,
+ .baseDefense = 52,
+ .baseSpeed = 41,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 235,
+ .expYield = 59,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORINA] =
+ {
+ .baseHP = 70,
+ .baseAttack = 62,
+ .baseDefense = 67,
+ .baseSpeed = 56,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 117,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDOQUEEN] =
+ {
+ .baseHP = 90,
+ .baseAttack = 82,
+ .baseDefense = 87,
+ .baseSpeed = 76,
+ .baseSpAttack = 75,
+ .baseSpDefense = 85,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 194,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORAN_M] =
+ {
+ .baseHP = 46,
+ .baseAttack = 57,
+ .baseDefense = 40,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 235,
+ .expYield = 60,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDORINO] =
+ {
+ .baseHP = 61,
+ .baseAttack = 72,
+ .baseDefense = 57,
+ .baseSpeed = 65,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 118,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NIDOKING] =
+ {
+ .baseHP = 81,
+ .baseAttack = 92,
+ .baseDefense = 77,
+ .baseSpeed = 85,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 195,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLEFAIRY] =
+ {
+ .baseHP = 70,
+ .baseAttack = 45,
+ .baseDefense = 48,
+ .baseSpeed = 35,
+ .baseSpAttack = 60,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 150,
+ .expYield = 68,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LEPPA_BERRY,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLEFABLE] =
+ {
+ .baseHP = 95,
+ .baseAttack = 70,
+ .baseDefense = 73,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 90,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 25,
+ .expYield = 129,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LEPPA_BERRY,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VULPIX] =
+ {
+ .baseHP = 38,
+ .baseAttack = 41,
+ .baseDefense = 40,
+ .baseSpeed = 65,
+ .baseSpAttack = 50,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 63,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_FLASH_FIRE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NINETALES] =
+ {
+ .baseHP = 73,
+ .baseAttack = 76,
+ .baseDefense = 75,
+ .baseSpeed = 100,
+ .baseSpAttack = 81,
+ .baseSpDefense = 100,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 75,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_FLASH_FIRE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JIGGLYPUFF] =
+ {
+ .baseHP = 115,
+ .baseAttack = 45,
+ .baseDefense = 20,
+ .baseSpeed = 20,
+ .baseSpAttack = 45,
+ .baseSpDefense = 25,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 170,
+ .expYield = 76,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WIGGLYTUFF] =
+ {
+ .baseHP = 140,
+ .baseAttack = 70,
+ .baseDefense = 45,
+ .baseSpeed = 45,
+ .baseSpAttack = 75,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 50,
+ .expYield = 109,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ZUBAT] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 55,
+ .baseSpAttack = 30,
+ .baseSpDefense = 40,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLBAT] =
+ {
+ .baseHP = 75,
+ .baseAttack = 80,
+ .baseDefense = 70,
+ .baseSpeed = 90,
+ .baseSpAttack = 65,
+ .baseSpDefense = 75,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 171,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ODDISH] =
+ {
+ .baseHP = 45,
+ .baseAttack = 50,
+ .baseDefense = 55,
+ .baseSpeed = 30,
+ .baseSpAttack = 75,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GLOOM] =
+ {
+ .baseHP = 60,
+ .baseAttack = 65,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 132,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VILEPLUME] =
+ {
+ .baseHP = 75,
+ .baseAttack = 80,
+ .baseDefense = 85,
+ .baseSpeed = 50,
+ .baseSpAttack = 100,
+ .baseSpDefense = 90,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 184,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PARAS] =
+ {
+ .baseHP = 35,
+ .baseAttack = 70,
+ .baseDefense = 55,
+ .baseSpeed = 25,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GRASS,
+ .catchRate = 190,
+ .expYield = 70,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_TINY_MUSHROOM,
+ .item2 = ITEM_BIG_MUSHROOM,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PARASECT] =
+ {
+ .baseHP = 60,
+ .baseAttack = 95,
+ .baseDefense = 80,
+ .baseSpeed = 30,
+ .baseSpAttack = 60,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GRASS,
+ .catchRate = 75,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_TINY_MUSHROOM,
+ .item2 = ITEM_BIG_MUSHROOM,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VENONAT] =
+ {
+ .baseHP = 60,
+ .baseAttack = 55,
+ .baseDefense = 50,
+ .baseSpeed = 45,
+ .baseSpAttack = 40,
+ .baseSpDefense = 55,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 75,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_COMPOUND_EYES,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VENOMOTH] =
+ {
+ .baseHP = 70,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 90,
+ .baseSpAttack = 90,
+ .baseSpDefense = 75,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 75,
+ .expYield = 138,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DIGLETT] =
+ {
+ .baseHP = 10,
+ .baseAttack = 55,
+ .baseDefense = 25,
+ .baseSpeed = 95,
+ .baseSpAttack = 35,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 81,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_ARENA_TRAP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUGTRIO] =
+ {
+ .baseHP = 35,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 120,
+ .baseSpAttack = 50,
+ .baseSpDefense = 70,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 50,
+ .expYield = 153,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_ARENA_TRAP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEOWTH] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 90,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 69,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PERSIAN] =
+ {
+ .baseHP = 65,
+ .baseAttack = 70,
+ .baseDefense = 60,
+ .baseSpeed = 115,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 148,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_LIMBER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PSYDUCK] =
+ {
+ .baseHP = 50,
+ .baseAttack = 52,
+ .baseDefense = 48,
+ .baseSpeed = 55,
+ .baseSpAttack = 65,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 80,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_CLOUD_NINE,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLDUCK] =
+ {
+ .baseHP = 80,
+ .baseAttack = 82,
+ .baseDefense = 78,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 174,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_CLOUD_NINE,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MANKEY] =
+ {
+ .baseHP = 40,
+ .baseAttack = 80,
+ .baseDefense = 35,
+ .baseSpeed = 70,
+ .baseSpAttack = 35,
+ .baseSpDefense = 45,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 190,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PRIMEAPE] =
+ {
+ .baseHP = 65,
+ .baseAttack = 105,
+ .baseDefense = 60,
+ .baseSpeed = 95,
+ .baseSpAttack = 60,
+ .baseSpDefense = 70,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 75,
+ .expYield = 149,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GROWLITHE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 70,
+ .baseDefense = 45,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 91,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARCANINE] =
+ {
+ .baseHP = 90,
+ .baseAttack = 110,
+ .baseDefense = 80,
+ .baseSpeed = 95,
+ .baseSpAttack = 100,
+ .baseSpDefense = 80,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 75,
+ .expYield = 213,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_POLIWAG] =
+ {
+ .baseHP = 40,
+ .baseAttack = 50,
+ .baseDefense = 40,
+ .baseSpeed = 90,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 77,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_POLIWHIRL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 90,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 120,
+ .expYield = 131,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_POLIWRATH] =
+ {
+ .baseHP = 90,
+ .baseAttack = 85,
+ .baseDefense = 95,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 90,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 185,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_ABRA] =
+ {
+ .baseHP = 25,
+ .baseAttack = 20,
+ .baseDefense = 15,
+ .baseSpeed = 90,
+ .baseSpAttack = 105,
+ .baseSpDefense = 55,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 200,
+ .expYield = 73,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_TWISTED_SPOON,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KADABRA] =
+ {
+ .baseHP = 40,
+ .baseAttack = 35,
+ .baseDefense = 30,
+ .baseSpeed = 105,
+ .baseSpAttack = 120,
+ .baseSpDefense = 70,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 100,
+ .expYield = 145,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_TWISTED_SPOON,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ALAKAZAM] =
+ {
+ .baseHP = 55,
+ .baseAttack = 50,
+ .baseDefense = 45,
+ .baseSpeed = 120,
+ .baseSpAttack = 135,
+ .baseSpDefense = 85,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 50,
+ .expYield = 186,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_TWISTED_SPOON,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MACHOP] =
+ {
+ .baseHP = 70,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 35,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 180,
+ .expYield = 88,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MACHOKE] =
+ {
+ .baseHP = 80,
+ .baseAttack = 100,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 50,
+ .baseSpDefense = 60,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 90,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MACHAMP] =
+ {
+ .baseHP = 90,
+ .baseAttack = 130,
+ .baseDefense = 80,
+ .baseSpeed = 55,
+ .baseSpAttack = 65,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 193,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BELLSPROUT] =
+ {
+ .baseHP = 50,
+ .baseAttack = 75,
+ .baseDefense = 35,
+ .baseSpeed = 40,
+ .baseSpAttack = 70,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 84,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WEEPINBELL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 90,
+ .baseDefense = 50,
+ .baseSpeed = 55,
+ .baseSpAttack = 85,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 120,
+ .expYield = 151,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VICTREEBEL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 105,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 100,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 191,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TENTACOOL] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 35,
+ .baseSpeed = 70,
+ .baseSpAttack = 50,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 105,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_LIQUID_OOZE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TENTACRUEL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 70,
+ .baseDefense = 65,
+ .baseSpeed = 100,
+ .baseSpAttack = 80,
+ .baseSpDefense = 120,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_POISON,
+ .catchRate = 60,
+ .expYield = 205,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_LIQUID_OOZE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GEODUDE] =
+ {
+ .baseHP = 40,
+ .baseAttack = 80,
+ .baseDefense = 100,
+ .baseSpeed = 20,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 86,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_EVERSTONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRAVELER] =
+ {
+ .baseHP = 55,
+ .baseAttack = 95,
+ .baseDefense = 115,
+ .baseSpeed = 35,
+ .baseSpAttack = 45,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 120,
+ .expYield = 134,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_EVERSTONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLEM] =
+ {
+ .baseHP = 80,
+ .baseAttack = 110,
+ .baseDefense = 130,
+ .baseSpeed = 45,
+ .baseSpAttack = 55,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 177,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_EVERSTONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PONYTA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 85,
+ .baseDefense = 55,
+ .baseSpeed = 90,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 152,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAPIDASH] =
+ {
+ .baseHP = 65,
+ .baseAttack = 100,
+ .baseDefense = 70,
+ .baseSpeed = 105,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 60,
+ .expYield = 192,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLOWPOKE] =
+ {
+ .baseHP = 90,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 15,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 190,
+ .expYield = 99,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLOWBRO] =
+ {
+ .baseHP = 95,
+ .baseAttack = 75,
+ .baseDefense = 110,
+ .baseSpeed = 30,
+ .baseSpAttack = 100,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 75,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGNEMITE] =
+ {
+ .baseHP = 25,
+ .baseAttack = 35,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 95,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_STEEL,
+ .catchRate = 190,
+ .expYield = 89,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_MAGNET_PULL,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGNETON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 60,
+ .baseDefense = 95,
+ .baseSpeed = 70,
+ .baseSpAttack = 120,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_STEEL,
+ .catchRate = 60,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_MAGNET_PULL,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FARFETCHD] =
+ {
+ .baseHP = 52,
+ .baseAttack = 65,
+ .baseDefense = 55,
+ .baseSpeed = 60,
+ .baseSpAttack = 58,
+ .baseSpDefense = 62,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 94,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_STICK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_INNER_FOCUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DODUO] =
+ {
+ .baseHP = 35,
+ .baseAttack = 85,
+ .baseDefense = 45,
+ .baseSpeed = 75,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 190,
+ .expYield = 96,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SHARP_BEAK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DODRIO] =
+ {
+ .baseHP = 60,
+ .baseAttack = 110,
+ .baseDefense = 70,
+ .baseSpeed = 100,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 158,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SHARP_BEAK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 10,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEEL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 45,
+ .baseDefense = 55,
+ .baseSpeed = 45,
+ .baseSpAttack = 45,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 100,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DEWGONG] =
+ {
+ .baseHP = 90,
+ .baseAttack = 70,
+ .baseDefense = 80,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ICE,
+ .catchRate = 75,
+ .expYield = 176,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRIMER] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 25,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 90,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NUGGET,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_STENCH,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MUK] =
+ {
+ .baseHP = 105,
+ .baseAttack = 105,
+ .baseDefense = 75,
+ .baseSpeed = 50,
+ .baseSpAttack = 65,
+ .baseSpDefense = 100,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 75,
+ .expYield = 157,
+ .evYield_HP = 1,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NUGGET,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_STENCH,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHELLDER] =
+ {
+ .baseHP = 30,
+ .baseAttack = 65,
+ .baseDefense = 100,
+ .baseSpeed = 40,
+ .baseSpAttack = 45,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_PEARL,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SHELL_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLOYSTER] =
+ {
+ .baseHP = 50,
+ .baseAttack = 95,
+ .baseDefense = 180,
+ .baseSpeed = 70,
+ .baseSpAttack = 85,
+ .baseSpDefense = 45,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ICE,
+ .catchRate = 60,
+ .expYield = 203,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_PEARL,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SHELL_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GASTLY] =
+ {
+ .baseHP = 30,
+ .baseAttack = 35,
+ .baseDefense = 30,
+ .baseSpeed = 80,
+ .baseSpAttack = 100,
+ .baseSpDefense = 35,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 95,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HAUNTER] =
+ {
+ .baseHP = 45,
+ .baseAttack = 50,
+ .baseDefense = 45,
+ .baseSpeed = 95,
+ .baseSpAttack = 115,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 126,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GENGAR] =
+ {
+ .baseHP = 60,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 110,
+ .baseSpAttack = 130,
+ .baseSpDefense = 75,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 190,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ONIX] =
+ {
+ .baseHP = 35,
+ .baseAttack = 45,
+ .baseDefense = 160,
+ .baseSpeed = 70,
+ .baseSpAttack = 30,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 108,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DROWZEE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 48,
+ .baseDefense = 45,
+ .baseSpeed = 42,
+ .baseSpAttack = 43,
+ .baseSpDefense = 90,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 190,
+ .expYield = 102,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HYPNO] =
+ {
+ .baseHP = 85,
+ .baseAttack = 73,
+ .baseDefense = 70,
+ .baseSpeed = 67,
+ .baseSpAttack = 73,
+ .baseSpDefense = 115,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 75,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KRABBY] =
+ {
+ .baseHP = 30,
+ .baseAttack = 105,
+ .baseDefense = 90,
+ .baseSpeed = 50,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 115,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KINGLER] =
+ {
+ .baseHP = 55,
+ .baseAttack = 130,
+ .baseDefense = 115,
+ .baseSpeed = 75,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 206,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_VOLTORB] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 50,
+ .baseSpeed = 100,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 103,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_STATIC,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELECTRODE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 70,
+ .baseSpeed = 140,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 60,
+ .expYield = 150,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_STATIC,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EXEGGCUTE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 40,
+ .baseDefense = 80,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 90,
+ .expYield = 98,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EXEGGUTOR] =
+ {
+ .baseHP = 95,
+ .baseAttack = 95,
+ .baseDefense = 85,
+ .baseSpeed = 55,
+ .baseSpAttack = 125,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 212,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CUBONE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 95,
+ .baseSpeed = 35,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 190,
+ .expYield = 87,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_THICK_CLUB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAROWAK] =
+ {
+ .baseHP = 60,
+ .baseAttack = 80,
+ .baseDefense = 110,
+ .baseSpeed = 45,
+ .baseSpAttack = 50,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 75,
+ .expYield = 124,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_THICK_CLUB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HITMONLEE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 120,
+ .baseDefense = 53,
+ .baseSpeed = 87,
+ .baseSpAttack = 35,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 139,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_LIMBER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HITMONCHAN] =
+ {
+ .baseHP = 50,
+ .baseAttack = 105,
+ .baseDefense = 79,
+ .baseSpeed = 76,
+ .baseSpAttack = 35,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 140,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LICKITUNG] =
+ {
+ .baseHP = 90,
+ .baseAttack = 55,
+ .baseDefense = 75,
+ .baseSpeed = 30,
+ .baseSpAttack = 60,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 127,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_OWN_TEMPO,
+ .ability2 = ABILITY_OBLIVIOUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KOFFING] =
+ {
+ .baseHP = 40,
+ .baseAttack = 65,
+ .baseDefense = 95,
+ .baseSpeed = 35,
+ .baseSpAttack = 60,
+ .baseSpDefense = 45,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 190,
+ .expYield = 114,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SMOKE_BALL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WEEZING] =
+ {
+ .baseHP = 65,
+ .baseAttack = 90,
+ .baseDefense = 120,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 70,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 60,
+ .expYield = 173,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SMOKE_BALL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RHYHORN] =
+ {
+ .baseHP = 80,
+ .baseAttack = 85,
+ .baseDefense = 95,
+ .baseSpeed = 25,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_ROCK,
+ .catchRate = 120,
+ .expYield = 135,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_LIGHTNING_ROD,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RHYDON] =
+ {
+ .baseHP = 105,
+ .baseAttack = 130,
+ .baseDefense = 120,
+ .baseSpeed = 40,
+ .baseSpAttack = 45,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_ROCK,
+ .catchRate = 60,
+ .expYield = 204,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_LIGHTNING_ROD,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHANSEY] =
+ {
+ .baseHP = 250,
+ .baseAttack = 5,
+ .baseDefense = 5,
+ .baseSpeed = 50,
+ .baseSpAttack = 35,
+ .baseSpDefense = 105,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 30,
+ .expYield = 255,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LUCKY_EGG,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 40,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TANGELA] =
+ {
+ .baseHP = 65,
+ .baseAttack = 55,
+ .baseDefense = 115,
+ .baseSpeed = 60,
+ .baseSpAttack = 100,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 166,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KANGASKHAN] =
+ {
+ .baseHP = 105,
+ .baseAttack = 95,
+ .baseDefense = 80,
+ .baseSpeed = 90,
+ .baseSpAttack = 40,
+ .baseSpDefense = 80,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 175,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_EARLY_BIRD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HORSEA] =
+ {
+ .baseHP = 30,
+ .baseAttack = 40,
+ .baseDefense = 70,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 83,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEADRA] =
+ {
+ .baseHP = 55,
+ .baseAttack = 65,
+ .baseDefense = 95,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 45,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 155,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOLDEEN] =
+ {
+ .baseHP = 45,
+ .baseAttack = 67,
+ .baseDefense = 60,
+ .baseSpeed = 63,
+ .baseSpAttack = 35,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 111,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_WATER_VEIL,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEAKING] =
+ {
+ .baseHP = 80,
+ .baseAttack = 92,
+ .baseDefense = 65,
+ .baseSpeed = 68,
+ .baseSpAttack = 65,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 170,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_WATER_VEIL,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STARYU] =
+ {
+ .baseHP = 30,
+ .baseAttack = 45,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 70,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 106,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_STARDUST,
+ .item2 = ITEM_STAR_PIECE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_ILLUMINATE,
+ .ability2 = ABILITY_NATURAL_CURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STARMIE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 75,
+ .baseDefense = 85,
+ .baseSpeed = 115,
+ .baseSpAttack = 100,
+ .baseSpDefense = 85,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 60,
+ .expYield = 207,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_STARDUST,
+ .item2 = ITEM_STAR_PIECE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_ILLUMINATE,
+ .ability2 = ABILITY_NATURAL_CURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MR_MIME] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 65,
+ .baseSpeed = 90,
+ .baseSpAttack = 100,
+ .baseSpDefense = 120,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 136,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LEPPA_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SCYTHER] =
+ {
+ .baseHP = 70,
+ .baseAttack = 110,
+ .baseDefense = 80,
+ .baseSpeed = 105,
+ .baseSpAttack = 55,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 187,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JYNX] =
+ {
+ .baseHP = 65,
+ .baseAttack = 50,
+ .baseDefense = 35,
+ .baseSpeed = 95,
+ .baseSpAttack = 115,
+ .baseSpDefense = 95,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 137,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ASPEAR_BERRY,
+ .item2 = ITEM_ASPEAR_BERRY,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELECTABUZZ] =
+ {
+ .baseHP = 65,
+ .baseAttack = 83,
+ .baseDefense = 57,
+ .baseSpeed = 105,
+ .baseSpAttack = 95,
+ .baseSpDefense = 85,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 156,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_MAGMAR] =
+ {
+ .baseHP = 65,
+ .baseAttack = 95,
+ .baseDefense = 57,
+ .baseSpeed = 93,
+ .baseSpAttack = 100,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 167,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_FLAME_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PINSIR] =
+ {
+ .baseHP = 65,
+ .baseAttack = 125,
+ .baseDefense = 100,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 70,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TAUROS] =
+ {
+ .baseHP = 75,
+ .baseAttack = 100,
+ .baseDefense = 95,
+ .baseSpeed = 110,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 211,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGIKARP] =
+ {
+ .baseHP = 20,
+ .baseAttack = 10,
+ .baseDefense = 55,
+ .baseSpeed = 80,
+ .baseSpAttack = 15,
+ .baseSpDefense = 20,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 20,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 5,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GYARADOS] =
+ {
+ .baseHP = 95,
+ .baseAttack = 125,
+ .baseDefense = 79,
+ .baseSpeed = 81,
+ .baseSpAttack = 60,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 214,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 5,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LAPRAS] =
+ {
+ .baseHP = 130,
+ .baseAttack = 85,
+ .baseDefense = 80,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ICE,
+ .catchRate = 45,
+ .expYield = 219,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DITTO] =
+ {
+ .baseHP = 48,
+ .baseAttack = 48,
+ .baseDefense = 48,
+ .baseSpeed = 48,
+ .baseSpAttack = 48,
+ .baseSpDefense = 48,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 35,
+ .expYield = 61,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_POWDER,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_DITTO,
+ .eggGroup2 = EGG_GROUP_DITTO,
+ .ability1 = ABILITY_LIMBER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EEVEE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 55,
+ .baseDefense = 50,
+ .baseSpeed = 55,
+ .baseSpAttack = 45,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 92,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VAPOREON] =
+ {
+ .baseHP = 130,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 65,
+ .baseSpAttack = 110,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 196,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JOLTEON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 130,
+ .baseSpAttack = 110,
+ .baseSpDefense = 95,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VOLT_ABSORB,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FLAREON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 130,
+ .baseDefense = 60,
+ .baseSpeed = 65,
+ .baseSpAttack = 95,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 198,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_FLASH_FIRE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PORYGON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 60,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 130,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_TRACE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OMANYTE] =
+ {
+ .baseHP = 35,
+ .baseAttack = 40,
+ .baseDefense = 100,
+ .baseSpeed = 35,
+ .baseSpAttack = 90,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 120,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OMASTAR] =
+ {
+ .baseHP = 70,
+ .baseAttack = 60,
+ .baseDefense = 125,
+ .baseSpeed = 55,
+ .baseSpAttack = 115,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 199,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KABUTO] =
+ {
+ .baseHP = 30,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 55,
+ .baseSpAttack = 55,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 119,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_BATTLE_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KABUTOPS] =
+ {
+ .baseHP = 60,
+ .baseAttack = 115,
+ .baseDefense = 105,
+ .baseSpeed = 80,
+ .baseSpAttack = 65,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 201,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_BATTLE_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AERODACTYL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 105,
+ .baseDefense = 65,
+ .baseSpeed = 130,
+ .baseSpAttack = 60,
+ .baseSpDefense = 75,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 202,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_PRESSURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNORLAX] =
+ {
+ .baseHP = 160,
+ .baseAttack = 110,
+ .baseDefense = 65,
+ .baseSpeed = 30,
+ .baseSpAttack = 65,
+ .baseSpDefense = 110,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 25,
+ .expYield = 154,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LEFTOVERS,
+ .item2 = ITEM_LEFTOVERS,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_IMMUNITY,
+ .ability2 = ABILITY_THICK_FAT,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARTICUNO] =
+ {
+ .baseHP = 90,
+ .baseAttack = 85,
+ .baseDefense = 100,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 125,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ZAPDOS] =
+ {
+ .baseHP = 90,
+ .baseAttack = 90,
+ .baseDefense = 85,
+ .baseSpeed = 100,
+ .baseSpAttack = 125,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 216,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MOLTRES] =
+ {
+ .baseHP = 90,
+ .baseAttack = 100,
+ .baseDefense = 90,
+ .baseSpeed = 90,
+ .baseSpAttack = 125,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 217,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DRATINI] =
+ {
+ .baseHP = 41,
+ .baseAttack = 64,
+ .baseDefense = 45,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 67,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DRAGONAIR] =
+ {
+ .baseHP = 61,
+ .baseAttack = 84,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 70,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 144,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DRAGONITE] =
+ {
+ .baseHP = 91,
+ .baseAttack = 134,
+ .baseDefense = 95,
+ .baseSpeed = 80,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEWTWO] =
+ {
+ .baseHP = 106,
+ .baseAttack = 110,
+ .baseDefense = 90,
+ .baseSpeed = 130,
+ .baseSpAttack = 154,
+ .baseSpDefense = 90,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEW] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LUM_BERRY,
+ .item2 = ITEM_LUM_BERRY,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 100,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHIKORITA] =
+ {
+ .baseHP = 45,
+ .baseAttack = 49,
+ .baseDefense = 65,
+ .baseSpeed = 45,
+ .baseSpAttack = 49,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BAYLEEF] =
+ {
+ .baseHP = 60,
+ .baseAttack = 62,
+ .baseDefense = 80,
+ .baseSpeed = 60,
+ .baseSpAttack = 63,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEGANIUM] =
+ {
+ .baseHP = 80,
+ .baseAttack = 82,
+ .baseDefense = 100,
+ .baseSpeed = 80,
+ .baseSpAttack = 83,
+ .baseSpDefense = 100,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CYNDAQUIL] =
+ {
+ .baseHP = 39,
+ .baseAttack = 52,
+ .baseDefense = 43,
+ .baseSpeed = 65,
+ .baseSpAttack = 60,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_QUILAVA] =
+ {
+ .baseHP = 58,
+ .baseAttack = 64,
+ .baseDefense = 58,
+ .baseSpeed = 80,
+ .baseSpAttack = 80,
+ .baseSpDefense = 65,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TYPHLOSION] =
+ {
+ .baseHP = 78,
+ .baseAttack = 84,
+ .baseDefense = 78,
+ .baseSpeed = 100,
+ .baseSpAttack = 109,
+ .baseSpDefense = 85,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 209,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TOTODILE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 65,
+ .baseDefense = 64,
+ .baseSpeed = 43,
+ .baseSpAttack = 44,
+ .baseSpDefense = 48,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 66,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CROCONAW] =
+ {
+ .baseHP = 65,
+ .baseAttack = 80,
+ .baseDefense = 80,
+ .baseSpeed = 58,
+ .baseSpAttack = 59,
+ .baseSpDefense = 63,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 143,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_FERALIGATR] =
+ {
+ .baseHP = 85,
+ .baseAttack = 105,
+ .baseDefense = 100,
+ .baseSpeed = 78,
+ .baseSpAttack = 79,
+ .baseSpDefense = 83,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SENTRET] =
+ {
+ .baseHP = 35,
+ .baseAttack = 46,
+ .baseDefense = 34,
+ .baseSpeed = 20,
+ .baseSpAttack = 35,
+ .baseSpDefense = 45,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 57,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FURRET] =
+ {
+ .baseHP = 85,
+ .baseAttack = 76,
+ .baseDefense = 64,
+ .baseSpeed = 90,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 116,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_SITRUS_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HOOTHOOT] =
+ {
+ .baseHP = 60,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 50,
+ .baseSpAttack = 36,
+ .baseSpDefense = 56,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 58,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NOCTOWL] =
+ {
+ .baseHP = 100,
+ .baseAttack = 50,
+ .baseDefense = 50,
+ .baseSpeed = 70,
+ .baseSpAttack = 76,
+ .baseSpDefense = 96,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 162,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LEDYBA] =
+ {
+ .baseHP = 40,
+ .baseAttack = 20,
+ .baseDefense = 30,
+ .baseSpeed = 55,
+ .baseSpAttack = 40,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LEDIAN] =
+ {
+ .baseHP = 55,
+ .baseAttack = 35,
+ .baseDefense = 50,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 110,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 134,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPINARAK] =
+ {
+ .baseHP = 40,
+ .baseAttack = 60,
+ .baseDefense = 40,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_INSOMNIA,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARIADOS] =
+ {
+ .baseHP = 70,
+ .baseAttack = 90,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 134,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_INSOMNIA,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CROBAT] =
+ {
+ .baseHP = 85,
+ .baseAttack = 90,
+ .baseDefense = 80,
+ .baseSpeed = 130,
+ .baseSpAttack = 70,
+ .baseSpDefense = 80,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 90,
+ .expYield = 204,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CHINCHOU] =
+ {
+ .baseHP = 75,
+ .baseAttack = 38,
+ .baseDefense = 38,
+ .baseSpeed = 67,
+ .baseSpAttack = 56,
+ .baseSpDefense = 56,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 90,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_YELLOW_SHARD,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_VOLT_ABSORB,
+ .ability2 = ABILITY_ILLUMINATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LANTURN] =
+ {
+ .baseHP = 125,
+ .baseAttack = 58,
+ .baseDefense = 58,
+ .baseSpeed = 67,
+ .baseSpAttack = 76,
+ .baseSpDefense = 76,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 75,
+ .expYield = 156,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_YELLOW_SHARD,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_VOLT_ABSORB,
+ .ability2 = ABILITY_ILLUMINATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PICHU] =
+ {
+ .baseHP = 20,
+ .baseAttack = 40,
+ .baseDefense = 15,
+ .baseSpeed = 60,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 190,
+ .expYield = 42,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLEFFA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 25,
+ .baseDefense = 28,
+ .baseSpeed = 15,
+ .baseSpAttack = 45,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 150,
+ .expYield = 37,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_LEPPA_BERRY,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_IGGLYBUFF] =
+ {
+ .baseHP = 90,
+ .baseAttack = 30,
+ .baseDefense = 15,
+ .baseSpeed = 15,
+ .baseSpAttack = 40,
+ .baseSpDefense = 20,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 170,
+ .expYield = 39,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_TOGEPI] =
+ {
+ .baseHP = 35,
+ .baseAttack = 20,
+ .baseDefense = 65,
+ .baseSpeed = 20,
+ .baseSpAttack = 40,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TOGETIC] =
+ {
+ .baseHP = 55,
+ .baseAttack = 40,
+ .baseDefense = 85,
+ .baseSpeed = 40,
+ .baseSpAttack = 80,
+ .baseSpDefense = 105,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 114,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NATU] =
+ {
+ .baseHP = 40,
+ .baseAttack = 50,
+ .baseDefense = 45,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 45,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 190,
+ .expYield = 73,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 6,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_XATU] =
+ {
+ .baseHP = 65,
+ .baseAttack = 75,
+ .baseDefense = 70,
+ .baseSpeed = 95,
+ .baseSpAttack = 95,
+ .baseSpDefense = 70,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 171,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAREEP] =
+ {
+ .baseHP = 55,
+ .baseAttack = 40,
+ .baseDefense = 40,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 235,
+ .expYield = 59,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FLAAFFY] =
+ {
+ .baseHP = 70,
+ .baseAttack = 55,
+ .baseDefense = 55,
+ .baseSpeed = 45,
+ .baseSpAttack = 80,
+ .baseSpDefense = 60,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 120,
+ .expYield = 117,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AMPHAROS] =
+ {
+ .baseHP = 90,
+ .baseAttack = 75,
+ .baseDefense = 75,
+ .baseSpeed = 55,
+ .baseSpAttack = 115,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 194,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BELLOSSOM] =
+ {
+ .baseHP = 75,
+ .baseAttack = 80,
+ .baseDefense = 85,
+ .baseSpeed = 50,
+ .baseSpAttack = 90,
+ .baseSpDefense = 100,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 184,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MARILL] =
+ {
+ .baseHP = 70,
+ .baseAttack = 20,
+ .baseDefense = 50,
+ .baseSpeed = 40,
+ .baseSpAttack = 20,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 58,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_HUGE_POWER,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AZUMARILL] =
+ {
+ .baseHP = 100,
+ .baseAttack = 50,
+ .baseDefense = 80,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 80,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 153,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_HUGE_POWER,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUDOWOODO] =
+ {
+ .baseHP = 70,
+ .baseAttack = 100,
+ .baseDefense = 115,
+ .baseSpeed = 30,
+ .baseSpAttack = 30,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_ROCK,
+ .catchRate = 65,
+ .expYield = 135,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_POLITOED] =
+ {
+ .baseHP = 90,
+ .baseAttack = 75,
+ .baseDefense = 75,
+ .baseSpeed = 70,
+ .baseSpAttack = 90,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 185,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_WATER_ABSORB,
+ .ability2 = ABILITY_DAMP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_HOPPIP] =
+ {
+ .baseHP = 35,
+ .baseAttack = 35,
+ .baseDefense = 40,
+ .baseSpeed = 50,
+ .baseSpAttack = 35,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SKIPLOOM] =
+ {
+ .baseHP = 55,
+ .baseAttack = 45,
+ .baseDefense = 50,
+ .baseSpeed = 80,
+ .baseSpAttack = 45,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 120,
+ .expYield = 136,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JUMPLUFF] =
+ {
+ .baseHP = 75,
+ .baseAttack = 55,
+ .baseDefense = 70,
+ .baseSpeed = 110,
+ .baseSpAttack = 55,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 176,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AIPOM] =
+ {
+ .baseHP = 55,
+ .baseAttack = 70,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 40,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 94,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_PICKUP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUNKERN] =
+ {
+ .baseHP = 30,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 30,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 235,
+ .expYield = 52,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUNFLORA] =
+ {
+ .baseHP = 75,
+ .baseAttack = 75,
+ .baseDefense = 55,
+ .baseSpeed = 30,
+ .baseSpAttack = 105,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 120,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_YANMA] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 45,
+ .baseSpeed = 95,
+ .baseSpAttack = 75,
+ .baseSpDefense = 45,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SPEED_BOOST,
+ .ability2 = ABILITY_COMPOUND_EYES,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WOOPER] =
+ {
+ .baseHP = 55,
+ .baseAttack = 45,
+ .baseDefense = 45,
+ .baseSpeed = 15,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 52,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_WATER_ABSORB,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_QUAGSIRE] =
+ {
+ .baseHP = 95,
+ .baseAttack = 85,
+ .baseDefense = 85,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 90,
+ .expYield = 137,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_DAMP,
+ .ability2 = ABILITY_WATER_ABSORB,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ESPEON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 65,
+ .baseDefense = 60,
+ .baseSpeed = 110,
+ .baseSpAttack = 130,
+ .baseSpDefense = 95,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_UMBREON] =
+ {
+ .baseHP = 95,
+ .baseAttack = 65,
+ .baseDefense = 110,
+ .baseSpeed = 65,
+ .baseSpAttack = 60,
+ .baseSpDefense = 130,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MURKROW] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 42,
+ .baseSpeed = 91,
+ .baseSpAttack = 85,
+ .baseSpDefense = 42,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_FLYING,
+ .catchRate = 30,
+ .expYield = 107,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLOWKING] =
+ {
+ .baseHP = 95,
+ .baseAttack = 75,
+ .baseDefense = 80,
+ .baseSpeed = 30,
+ .baseSpAttack = 100,
+ .baseSpDefense = 110,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 70,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MISDREAVUS] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 85,
+ .baseSpAttack = 85,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_UNOWN] =
+ {
+ .baseHP = 48,
+ .baseAttack = 72,
+ .baseDefense = 48,
+ .baseSpeed = 48,
+ .baseSpAttack = 72,
+ .baseSpDefense = 48,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 225,
+ .expYield = 61,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_WOBBUFFET] =
+ {
+ .baseHP = 190,
+ .baseAttack = 33,
+ .baseDefense = 58,
+ .baseSpeed = 33,
+ .baseSpAttack = 33,
+ .baseSpDefense = 58,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 177,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SHADOW_TAG,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GIRAFARIG] =
+ {
+ .baseHP = 70,
+ .baseAttack = 80,
+ .baseDefense = 65,
+ .baseSpeed = 85,
+ .baseSpAttack = 90,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 60,
+ .expYield = 149,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PERSIM_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 4,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PINECO] =
+ {
+ .baseHP = 50,
+ .baseAttack = 65,
+ .baseDefense = 90,
+ .baseSpeed = 15,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 190,
+ .expYield = 60,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FORRETRESS] =
+ {
+ .baseHP = 75,
+ .baseAttack = 90,
+ .baseDefense = 140,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_STEEL,
+ .catchRate = 75,
+ .expYield = 118,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUNSPARCE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 70,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 75,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SERENE_GRACE,
+ .ability2 = ABILITY_RUN_AWAY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GLIGAR] =
+ {
+ .baseHP = 65,
+ .baseAttack = 75,
+ .baseDefense = 105,
+ .baseSpeed = 85,
+ .baseSpAttack = 35,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_FLYING,
+ .catchRate = 60,
+ .expYield = 108,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SAND_VEIL,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STEELIX] =
+ {
+ .baseHP = 75,
+ .baseAttack = 85,
+ .baseDefense = 200,
+ .baseSpeed = 30,
+ .baseSpAttack = 55,
+ .baseSpDefense = 65,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_GROUND,
+ .catchRate = 25,
+ .expYield = 196,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNUBBULL] =
+ {
+ .baseHP = 60,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 63,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_RUN_AWAY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRANBULL] =
+ {
+ .baseHP = 90,
+ .baseAttack = 120,
+ .baseDefense = 75,
+ .baseSpeed = 45,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 75,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_INTIMIDATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_QWILFISH] =
+ {
+ .baseHP = 65,
+ .baseAttack = 95,
+ .baseDefense = 75,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 100,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_POISON_POINT,
+ .ability2 = ABILITY_SWIFT_SWIM,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SCIZOR] =
+ {
+ .baseHP = 70,
+ .baseAttack = 130,
+ .baseDefense = 100,
+ .baseSpeed = 65,
+ .baseSpAttack = 55,
+ .baseSpDefense = 80,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_STEEL,
+ .catchRate = 25,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHUCKLE] =
+ {
+ .baseHP = 20,
+ .baseAttack = 10,
+ .baseDefense = 230,
+ .baseSpeed = 5,
+ .baseSpAttack = 10,
+ .baseSpDefense = 230,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_ROCK,
+ .catchRate = 190,
+ .expYield = 80,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HERACROSS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 125,
+ .baseDefense = 75,
+ .baseSpeed = 85,
+ .baseSpAttack = 40,
+ .baseSpDefense = 95,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 8,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNEASEL] =
+ {
+ .baseHP = 55,
+ .baseAttack = 95,
+ .baseDefense = 55,
+ .baseSpeed = 115,
+ .baseSpAttack = 35,
+ .baseSpDefense = 75,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_ICE,
+ .catchRate = 60,
+ .expYield = 132,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_QUICK_CLAW,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_KEEN_EYE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_TEDDIURSA] =
+ {
+ .baseHP = 60,
+ .baseAttack = 80,
+ .baseDefense = 50,
+ .baseSpeed = 40,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 120,
+ .expYield = 124,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_URSARING] =
+ {
+ .baseHP = 90,
+ .baseAttack = 130,
+ .baseDefense = 75,
+ .baseSpeed = 55,
+ .baseSpAttack = 75,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 60,
+ .expYield = 189,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLUGMA] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 40,
+ .baseSpeed = 20,
+ .baseSpAttack = 70,
+ .baseSpDefense = 40,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 190,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_MAGMA_ARMOR,
+ .ability2 = ABILITY_FLAME_BODY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAGCARGO] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 120,
+ .baseSpeed = 30,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_ROCK,
+ .catchRate = 75,
+ .expYield = 154,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_MAGMA_ARMOR,
+ .ability2 = ABILITY_FLAME_BODY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWINUB] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 40,
+ .baseSpeed = 50,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 225,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PILOSWINE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 80,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 75,
+ .expYield = 160,
+ .evYield_HP = 1,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CORSOLA] =
+ {
+ .baseHP = 55,
+ .baseAttack = 55,
+ .baseDefense = 85,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 85,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ROCK,
+ .catchRate = 60,
+ .expYield = 113,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_RED_SHARD,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_NATURAL_CURE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REMORAID] =
+ {
+ .baseHP = 35,
+ .baseAttack = 65,
+ .baseDefense = 35,
+ .baseSpeed = 65,
+ .baseSpAttack = 65,
+ .baseSpDefense = 35,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 190,
+ .expYield = 78,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_HUSTLE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OCTILLERY] =
+ {
+ .baseHP = 75,
+ .baseAttack = 105,
+ .baseDefense = 75,
+ .baseSpeed = 45,
+ .baseSpAttack = 105,
+ .baseSpDefense = 75,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 75,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SUCTION_CUPS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DELIBIRD] =
+ {
+ .baseHP = 45,
+ .baseAttack = 55,
+ .baseDefense = 45,
+ .baseSpeed = 75,
+ .baseSpAttack = 65,
+ .baseSpDefense = 45,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 183,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_HUSTLE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MANTINE] =
+ {
+ .baseHP = 65,
+ .baseAttack = 40,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 80,
+ .baseSpDefense = 140,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 25,
+ .expYield = 168,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_WATER_ABSORB,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SKARMORY] =
+ {
+ .baseHP = 65,
+ .baseAttack = 80,
+ .baseDefense = 140,
+ .baseSpeed = 70,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 25,
+ .expYield = 168,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_STURDY,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HOUNDOUR] =
+ {
+ .baseHP = 45,
+ .baseAttack = 60,
+ .baseDefense = 30,
+ .baseSpeed = 65,
+ .baseSpAttack = 80,
+ .baseSpDefense = 50,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_FIRE,
+ .catchRate = 120,
+ .expYield = 114,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_EARLY_BIRD,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HOUNDOOM] =
+ {
+ .baseHP = 75,
+ .baseAttack = 90,
+ .baseDefense = 50,
+ .baseSpeed = 95,
+ .baseSpAttack = 110,
+ .baseSpDefense = 80,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 204,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_EARLY_BIRD,
+ .ability2 = ABILITY_FLASH_FIRE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KINGDRA] =
+ {
+ .baseHP = 75,
+ .baseAttack = 95,
+ .baseDefense = 95,
+ .baseSpeed = 85,
+ .baseSpAttack = 95,
+ .baseSpDefense = 95,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 207,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PHANPY] =
+ {
+ .baseHP = 90,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 40,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 120,
+ .expYield = 124,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 10,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DONPHAN] =
+ {
+ .baseHP = 90,
+ .baseAttack = 120,
+ .baseDefense = 120,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 60,
+ .expYield = 189,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PORYGON2] =
+ {
+ .baseHP = 85,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 60,
+ .baseSpAttack = 105,
+ .baseSpDefense = 95,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 180,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_TRACE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_STANTLER] =
+ {
+ .baseHP = 73,
+ .baseAttack = 95,
+ .baseDefense = 62,
+ .baseSpeed = 85,
+ .baseSpAttack = 85,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SMEARGLE] =
+ {
+ .baseHP = 55,
+ .baseAttack = 20,
+ .baseDefense = 35,
+ .baseSpeed = 75,
+ .baseSpAttack = 20,
+ .baseSpDefense = 45,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 106,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OWN_TEMPO,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TYROGUE] =
+ {
+ .baseHP = 35,
+ .baseAttack = 35,
+ .baseDefense = 35,
+ .baseSpeed = 35,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 75,
+ .expYield = 91,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HITMONTOP] =
+ {
+ .baseHP = 50,
+ .baseAttack = 95,
+ .baseDefense = 95,
+ .baseSpeed = 70,
+ .baseSpAttack = 35,
+ .baseSpDefense = 110,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 138,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SMOOCHUM] =
+ {
+ .baseHP = 45,
+ .baseAttack = 30,
+ .baseDefense = 15,
+ .baseSpeed = 65,
+ .baseSpAttack = 85,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 87,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ASPEAR_BERRY,
+ .item2 = ITEM_ASPEAR_BERRY,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELEKID] =
+ {
+ .baseHP = 45,
+ .baseAttack = 63,
+ .baseDefense = 37,
+ .baseSpeed = 95,
+ .baseSpAttack = 65,
+ .baseSpDefense = 55,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 106,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_MAGBY] =
+ {
+ .baseHP = 45,
+ .baseAttack = 75,
+ .baseDefense = 37,
+ .baseSpeed = 83,
+ .baseSpAttack = 70,
+ .baseSpDefense = 55,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 117,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_FLAME_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MILTANK] =
+ {
+ .baseHP = 95,
+ .baseAttack = 80,
+ .baseDefense = 105,
+ .baseSpeed = 100,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_MOOMOO_MILK,
+ .item2 = ITEM_MOOMOO_MILK,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BLISSEY] =
+ {
+ .baseHP = 255,
+ .baseAttack = 10,
+ .baseDefense = 10,
+ .baseSpeed = 55,
+ .baseSpAttack = 75,
+ .baseSpDefense = 135,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 30,
+ .expYield = 255,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LUCKY_EGG,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 40,
+ .friendship = 140,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_SERENE_GRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAIKOU] =
+ {
+ .baseHP = 90,
+ .baseAttack = 85,
+ .baseDefense = 75,
+ .baseSpeed = 115,
+ .baseSpAttack = 115,
+ .baseSpDefense = 100,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 3,
+ .expYield = 216,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ENTEI] =
+ {
+ .baseHP = 115,
+ .baseAttack = 115,
+ .baseDefense = 85,
+ .baseSpeed = 100,
+ .baseSpAttack = 90,
+ .baseSpDefense = 75,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 3,
+ .expYield = 217,
+ .evYield_HP = 1,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SUICUNE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 75,
+ .baseDefense = 115,
+ .baseSpeed = 85,
+ .baseSpAttack = 90,
+ .baseSpDefense = 115,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LARVITAR] =
+ {
+ .baseHP = 50,
+ .baseAttack = 64,
+ .baseDefense = 50,
+ .baseSpeed = 41,
+ .baseSpAttack = 45,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 67,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PUPITAR] =
+ {
+ .baseHP = 70,
+ .baseAttack = 84,
+ .baseDefense = 70,
+ .baseSpeed = 51,
+ .baseSpAttack = 65,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 144,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TYRANITAR] =
+ {
+ .baseHP = 100,
+ .baseAttack = 134,
+ .baseDefense = 110,
+ .baseSpeed = 61,
+ .baseSpAttack = 95,
+ .baseSpDefense = 100,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_DARK,
+ .catchRate = 45,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_SAND_STREAM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUGIA] =
+ {
+ .baseHP = 106,
+ .baseAttack = 90,
+ .baseDefense = 130,
+ .baseSpeed = 110,
+ .baseSpAttack = 90,
+ .baseSpDefense = 154,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HO_OH] =
+ {
+ .baseHP = 106,
+ .baseAttack = 130,
+ .baseDefense = 90,
+ .baseSpeed = 90,
+ .baseSpAttack = 110,
+ .baseSpDefense = 154,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_SACRED_ASH,
+ .item2 = ITEM_SACRED_ASH,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CELEBI] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 64,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_LUM_BERRY,
+ .item2 = ITEM_LUM_BERRY,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 100,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_B] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_C] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_D] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_E] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_F] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_G] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_H] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_I] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_J] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_K] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_L] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_M] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_N] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_O] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_P] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_Q] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_R] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_S] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_T] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_U] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_V] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_W] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_X] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_Y] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_OLD_UNOWN_Z] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 3,
+ .expYield = 1,
+ .evYield_HP = 2,
+ .evYield_Attack = 2,
+ .evYield_Defense = 2,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_NONE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TREECKO] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 70,
+ .baseSpAttack = 65,
+ .baseSpDefense = 55,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GROVYLE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 65,
+ .baseDefense = 45,
+ .baseSpeed = 95,
+ .baseSpAttack = 85,
+ .baseSpDefense = 65,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SCEPTILE] =
+ {
+ .baseHP = 70,
+ .baseAttack = 85,
+ .baseDefense = 65,
+ .baseSpeed = 120,
+ .baseSpAttack = 105,
+ .baseSpDefense = 85,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 3,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_OVERGROW,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TORCHIC] =
+ {
+ .baseHP = 45,
+ .baseAttack = 60,
+ .baseDefense = 40,
+ .baseSpeed = 45,
+ .baseSpAttack = 70,
+ .baseSpDefense = 50,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_COMBUSKEN] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 60,
+ .baseSpeed = 55,
+ .baseSpAttack = 85,
+ .baseSpDefense = 60,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BLAZIKEN] =
+ {
+ .baseHP = 80,
+ .baseAttack = 120,
+ .baseDefense = 70,
+ .baseSpeed = 80,
+ .baseSpAttack = 110,
+ .baseSpDefense = 70,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 45,
+ .expYield = 209,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_BLAZE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MUDKIP] =
+ {
+ .baseHP = 50,
+ .baseAttack = 70,
+ .baseDefense = 50,
+ .baseSpeed = 40,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MARSHTOMP] =
+ {
+ .baseHP = 70,
+ .baseAttack = 85,
+ .baseDefense = 70,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 143,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWAMPERT] =
+ {
+ .baseHP = 100,
+ .baseAttack = 110,
+ .baseDefense = 90,
+ .baseSpeed = 60,
+ .baseSpAttack = 85,
+ .baseSpDefense = 90,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_TORRENT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_POOCHYENA] =
+ {
+ .baseHP = 35,
+ .baseAttack = 55,
+ .baseDefense = 35,
+ .baseSpeed = 35,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 255,
+ .expYield = 55,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PECHA_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_RUN_AWAY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MIGHTYENA] =
+ {
+ .baseHP = 70,
+ .baseAttack = 90,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 127,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PECHA_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ZIGZAGOON] =
+ {
+ .baseHP = 38,
+ .baseAttack = 30,
+ .baseDefense = 41,
+ .baseSpeed = 60,
+ .baseSpAttack = 30,
+ .baseSpDefense = 41,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 60,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_ORAN_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LINOONE] =
+ {
+ .baseHP = 78,
+ .baseAttack = 70,
+ .baseDefense = 61,
+ .baseSpeed = 100,
+ .baseSpAttack = 50,
+ .baseSpDefense = 61,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_ORAN_BERRY,
+ .item2 = ITEM_SITRUS_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PICKUP,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WURMPLE] =
+ {
+ .baseHP = 45,
+ .baseAttack = 45,
+ .baseDefense = 35,
+ .baseSpeed = 20,
+ .baseSpAttack = 20,
+ .baseSpDefense = 30,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 255,
+ .expYield = 54,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SILCOON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 35,
+ .baseDefense = 55,
+ .baseSpeed = 15,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 120,
+ .expYield = 71,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BEAUTIFLY] =
+ {
+ .baseHP = 60,
+ .baseAttack = 70,
+ .baseDefense = 50,
+ .baseSpeed = 65,
+ .baseSpAttack = 90,
+ .baseSpDefense = 50,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CASCOON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 35,
+ .baseDefense = 55,
+ .baseSpeed = 15,
+ .baseSpAttack = 25,
+ .baseSpDefense = 25,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 120,
+ .expYield = 72,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUSTOX] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 70,
+ .baseSpeed = 65,
+ .baseSpAttack = 50,
+ .baseSpDefense = 90,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_POISON,
+ .catchRate = 45,
+ .expYield = 160,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SHIELD_DUST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LOTAD] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GRASS,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_RAIN_DISH,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LOMBRE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 50,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GRASS,
+ .catchRate = 120,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_RAIN_DISH,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUDICOLO] =
+ {
+ .baseHP = 80,
+ .baseAttack = 70,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 90,
+ .baseSpDefense = 100,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 181,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_RAIN_DISH,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEEDOT] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 50,
+ .baseSpeed = 30,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NUZLEAF] =
+ {
+ .baseHP = 70,
+ .baseAttack = 70,
+ .baseDefense = 40,
+ .baseSpeed = 60,
+ .baseSpAttack = 60,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_DARK,
+ .catchRate = 120,
+ .expYield = 141,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHIFTRY] =
+ {
+ .baseHP = 90,
+ .baseAttack = 100,
+ .baseDefense = 60,
+ .baseSpeed = 80,
+ .baseSpAttack = 90,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_DARK,
+ .catchRate = 45,
+ .expYield = 181,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_EARLY_BIRD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NINCADA] =
+ {
+ .baseHP = 31,
+ .baseAttack = 45,
+ .baseDefense = 90,
+ .baseSpeed = 40,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_COMPOUND_EYES,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NINJASK] =
+ {
+ .baseHP = 61,
+ .baseAttack = 90,
+ .baseDefense = 45,
+ .baseSpeed = 160,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 120,
+ .expYield = 155,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SPEED_BOOST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHEDINJA] =
+ {
+ .baseHP = 1,
+ .baseAttack = 90,
+ .baseDefense = 45,
+ .baseSpeed = 40,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 95,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_WONDER_GUARD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TAILLOW] =
+ {
+ .baseHP = 40,
+ .baseAttack = 55,
+ .baseDefense = 30,
+ .baseSpeed = 85,
+ .baseSpAttack = 30,
+ .baseSpDefense = 30,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 200,
+ .expYield = 59,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWELLOW] =
+ {
+ .baseHP = 60,
+ .baseAttack = 85,
+ .baseDefense = 60,
+ .baseSpeed = 125,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 162,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_GUTS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHROOMISH] =
+ {
+ .baseHP = 60,
+ .baseAttack = 40,
+ .baseDefense = 60,
+ .baseSpeed = 35,
+ .baseSpAttack = 40,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 255,
+ .expYield = 65,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BRELOOM] =
+ {
+ .baseHP = 60,
+ .baseAttack = 130,
+ .baseDefense = 80,
+ .baseSpeed = 70,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 90,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_EFFECT_SPORE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPINDA] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 60,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 85,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_OWN_TEMPO,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_WINGULL] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 30,
+ .baseSpeed = 85,
+ .baseSpAttack = 55,
+ .baseSpDefense = 30,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 190,
+ .expYield = 64,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PELIPPER] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 100,
+ .baseSpeed = 65,
+ .baseSpAttack = 85,
+ .baseSpDefense = 70,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FLYING,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SURSKIT] =
+ {
+ .baseHP = 40,
+ .baseAttack = 30,
+ .baseDefense = 32,
+ .baseSpeed = 65,
+ .baseSpAttack = 50,
+ .baseSpDefense = 52,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_WATER,
+ .catchRate = 200,
+ .expYield = 63,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MASQUERAIN] =
+ {
+ .baseHP = 70,
+ .baseAttack = 60,
+ .baseDefense = 62,
+ .baseSpeed = 60,
+ .baseSpAttack = 80,
+ .baseSpDefense = 82,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_FLYING,
+ .catchRate = 75,
+ .expYield = 128,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SILVER_POWDER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WAILMER] =
+ {
+ .baseHP = 130,
+ .baseAttack = 70,
+ .baseDefense = 35,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 35,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 125,
+ .expYield = 137,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_WATER_VEIL,
+ .ability2 = ABILITY_OBLIVIOUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WAILORD] =
+ {
+ .baseHP = 170,
+ .baseAttack = 90,
+ .baseDefense = 45,
+ .baseSpeed = 60,
+ .baseSpAttack = 90,
+ .baseSpDefense = 45,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 206,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_WATER_VEIL,
+ .ability2 = ABILITY_OBLIVIOUS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SKITTY] =
+ {
+ .baseHP = 50,
+ .baseAttack = 45,
+ .baseDefense = 45,
+ .baseSpeed = 50,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 65,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LEPPA_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DELCATTY] =
+ {
+ .baseHP = 70,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 60,
+ .expYield = 138,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_LEPPA_BERRY,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_CUTE_CHARM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KECLEON] =
+ {
+ .baseHP = 60,
+ .baseAttack = 90,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 60,
+ .baseSpDefense = 120,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 200,
+ .expYield = 132,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_PERSIM_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_COLOR_CHANGE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BALTOY] =
+ {
+ .baseHP = 40,
+ .baseAttack = 40,
+ .baseDefense = 55,
+ .baseSpeed = 55,
+ .baseSpAttack = 40,
+ .baseSpDefense = 70,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 255,
+ .expYield = 58,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLAYDOL] =
+ {
+ .baseHP = 60,
+ .baseAttack = 70,
+ .baseDefense = 105,
+ .baseSpeed = 75,
+ .baseSpAttack = 70,
+ .baseSpDefense = 120,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 90,
+ .expYield = 189,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NOSEPASS] =
+ {
+ .baseHP = 30,
+ .baseAttack = 45,
+ .baseDefense = 135,
+ .baseSpeed = 30,
+ .baseSpAttack = 45,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_ROCK,
+ .catchRate = 255,
+ .expYield = 108,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_MAGNET_PULL,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TORKOAL] =
+ {
+ .baseHP = 70,
+ .baseAttack = 85,
+ .baseDefense = 140,
+ .baseSpeed = 20,
+ .baseSpAttack = 85,
+ .baseSpDefense = 70,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_FIRE,
+ .catchRate = 90,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_WHITE_SMOKE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SABLEYE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 75,
+ .baseDefense = 75,
+ .baseSpeed = 50,
+ .baseSpAttack = 65,
+ .baseSpDefense = 65,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 98,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_KEEN_EYE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BARBOACH] =
+ {
+ .baseHP = 50,
+ .baseAttack = 48,
+ .baseDefense = 43,
+ .baseSpeed = 60,
+ .baseSpAttack = 46,
+ .baseSpDefense = 41,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 190,
+ .expYield = 92,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WHISCASH] =
+ {
+ .baseHP = 110,
+ .baseAttack = 78,
+ .baseDefense = 73,
+ .baseSpeed = 60,
+ .baseSpAttack = 76,
+ .baseSpDefense = 71,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_GROUND,
+ .catchRate = 75,
+ .expYield = 158,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUVDISC] =
+ {
+ .baseHP = 43,
+ .baseAttack = 30,
+ .baseDefense = 55,
+ .baseSpeed = 97,
+ .baseSpAttack = 40,
+ .baseSpDefense = 65,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 225,
+ .expYield = 110,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_HEART_SCALE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CORPHISH] =
+ {
+ .baseHP = 43,
+ .baseAttack = 80,
+ .baseDefense = 65,
+ .baseSpeed = 35,
+ .baseSpAttack = 50,
+ .baseSpDefense = 35,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 205,
+ .expYield = 111,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CRAWDAUNT] =
+ {
+ .baseHP = 63,
+ .baseAttack = 120,
+ .baseDefense = 85,
+ .baseSpeed = 55,
+ .baseSpAttack = 90,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DARK,
+ .catchRate = 155,
+ .expYield = 161,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_SHELL_ARMOR,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FEEBAS] =
+ {
+ .baseHP = 20,
+ .baseAttack = 15,
+ .baseDefense = 20,
+ .baseSpeed = 80,
+ .baseSpAttack = 10,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 61,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MILOTIC] =
+ {
+ .baseHP = 95,
+ .baseAttack = 60,
+ .baseDefense = 79,
+ .baseSpeed = 81,
+ .baseSpAttack = 100,
+ .baseSpDefense = 125,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 213,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_MARVEL_SCALE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CARVANHA] =
+ {
+ .baseHP = 45,
+ .baseAttack = 90,
+ .baseDefense = 20,
+ .baseSpeed = 65,
+ .baseSpAttack = 65,
+ .baseSpDefense = 20,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DARK,
+ .catchRate = 225,
+ .expYield = 88,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_ROUGH_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHARPEDO] =
+ {
+ .baseHP = 70,
+ .baseAttack = 120,
+ .baseDefense = 40,
+ .baseSpeed = 95,
+ .baseSpAttack = 95,
+ .baseSpDefense = 40,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_DARK,
+ .catchRate = 60,
+ .expYield = 175,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_2,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_ROUGH_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TRAPINCH] =
+ {
+ .baseHP = 45,
+ .baseAttack = 100,
+ .baseDefense = 45,
+ .baseSpeed = 10,
+ .baseSpAttack = 45,
+ .baseSpDefense = 45,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 73,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SOFT_SAND,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_ARENA_TRAP,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VIBRAVA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 70,
+ .baseDefense = 50,
+ .baseSpeed = 70,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 120,
+ .expYield = 126,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_LEVITATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_FLYGON] =
+ {
+ .baseHP = 80,
+ .baseAttack = 100,
+ .baseDefense = 80,
+ .baseSpeed = 100,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 197,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_BUG,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_LEVITATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAKUHITA] =
+ {
+ .baseHP = 72,
+ .baseAttack = 60,
+ .baseDefense = 30,
+ .baseSpeed = 25,
+ .baseSpAttack = 20,
+ .baseSpDefense = 30,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 180,
+ .expYield = 87,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HARIYAMA] =
+ {
+ .baseHP = 144,
+ .baseAttack = 120,
+ .baseDefense = 60,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 60,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_FIGHTING,
+ .catchRate = 200,
+ .expYield = 184,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_KINGS_ROCK,
+ .genderRatio = PERCENT_FEMALE(25),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_GUTS,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ELECTRIKE] =
+ {
+ .baseHP = 40,
+ .baseAttack = 45,
+ .baseDefense = 40,
+ .baseSpeed = 65,
+ .baseSpAttack = 65,
+ .baseSpDefense = 40,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 120,
+ .expYield = 104,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MANECTRIC] =
+ {
+ .baseHP = 70,
+ .baseAttack = 75,
+ .baseDefense = 60,
+ .baseSpeed = 105,
+ .baseSpAttack = 105,
+ .baseSpDefense = 60,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 45,
+ .expYield = 168,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_STATIC,
+ .ability2 = ABILITY_LIGHTNING_ROD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_NUMEL] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 40,
+ .baseSpeed = 35,
+ .baseSpAttack = 65,
+ .baseSpDefense = 45,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 255,
+ .expYield = 88,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CAMERUPT] =
+ {
+ .baseHP = 70,
+ .baseAttack = 100,
+ .baseDefense = 70,
+ .baseSpeed = 40,
+ .baseSpAttack = 105,
+ .baseSpDefense = 75,
+ .type1 = TYPE_FIRE,
+ .type2 = TYPE_GROUND,
+ .catchRate = 150,
+ .expYield = 175,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_RAWST_BERRY,
+ .item2 = ITEM_RAWST_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_MAGMA_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPHEAL] =
+ {
+ .baseHP = 70,
+ .baseAttack = 40,
+ .baseDefense = 50,
+ .baseSpeed = 25,
+ .baseSpAttack = 55,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 75,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEALEO] =
+ {
+ .baseHP = 90,
+ .baseAttack = 60,
+ .baseDefense = 70,
+ .baseSpeed = 45,
+ .baseSpAttack = 75,
+ .baseSpDefense = 70,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_WATER,
+ .catchRate = 120,
+ .expYield = 128,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WALREIN] =
+ {
+ .baseHP = 110,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 65,
+ .baseSpAttack = 95,
+ .baseSpDefense = 90,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_WATER,
+ .catchRate = 45,
+ .expYield = 192,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CACNEA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 85,
+ .baseDefense = 40,
+ .baseSpeed = 35,
+ .baseSpAttack = 85,
+ .baseSpDefense = 40,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_GRASS,
+ .catchRate = 190,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CACTURNE] =
+ {
+ .baseHP = 70,
+ .baseAttack = 115,
+ .baseDefense = 60,
+ .baseSpeed = 55,
+ .baseSpAttack = 115,
+ .baseSpDefense = 60,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_DARK,
+ .catchRate = 60,
+ .expYield = 177,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_GRASS,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_SAND_VEIL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SNORUNT] =
+ {
+ .baseHP = 50,
+ .baseAttack = 50,
+ .baseDefense = 50,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_ICE,
+ .catchRate = 190,
+ .expYield = 74,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GLALIE] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 80,
+ .baseSpeed = 80,
+ .baseSpAttack = 80,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_ICE,
+ .catchRate = 75,
+ .expYield = 187,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NEVER_MELT_ICE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_INNER_FOCUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LUNATONE] =
+ {
+ .baseHP = 70,
+ .baseAttack = 55,
+ .baseDefense = 65,
+ .baseSpeed = 70,
+ .baseSpAttack = 95,
+ .baseSpDefense = 85,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 150,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_MOON_STONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SOLROCK] =
+ {
+ .baseHP = 70,
+ .baseAttack = 95,
+ .baseDefense = 85,
+ .baseSpeed = 70,
+ .baseSpAttack = 55,
+ .baseSpDefense = 65,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 150,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SUN_STONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AZURILL] =
+ {
+ .baseHP = 50,
+ .baseAttack = 20,
+ .baseDefense = 40,
+ .baseSpeed = 20,
+ .baseSpAttack = 20,
+ .baseSpDefense = 40,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 150,
+ .expYield = 33,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(75),
+ .eggCycles = 10,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_HUGE_POWER,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SPOINK] =
+ {
+ .baseHP = 60,
+ .baseAttack = 25,
+ .baseDefense = 35,
+ .baseSpeed = 60,
+ .baseSpAttack = 70,
+ .baseSpDefense = 80,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 255,
+ .expYield = 89,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GRUMPIG] =
+ {
+ .baseHP = 80,
+ .baseAttack = 45,
+ .baseDefense = 65,
+ .baseSpeed = 80,
+ .baseSpAttack = 90,
+ .baseSpDefense = 110,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 60,
+ .expYield = 164,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_THICK_FAT,
+ .ability2 = ABILITY_OWN_TEMPO,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_PLUSLE] =
+ {
+ .baseHP = 60,
+ .baseAttack = 50,
+ .baseDefense = 40,
+ .baseSpeed = 95,
+ .baseSpAttack = 85,
+ .baseSpDefense = 75,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 200,
+ .expYield = 120,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_PLUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MINUN] =
+ {
+ .baseHP = 60,
+ .baseAttack = 40,
+ .baseDefense = 50,
+ .baseSpeed = 95,
+ .baseSpAttack = 75,
+ .baseSpDefense = 85,
+ .type1 = TYPE_ELECTRIC,
+ .type2 = TYPE_ELECTRIC,
+ .catchRate = 200,
+ .expYield = 120,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_MINUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MAWILE] =
+ {
+ .baseHP = 50,
+ .baseAttack = 85,
+ .baseDefense = 85,
+ .baseSpeed = 50,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_STEEL,
+ .catchRate = 45,
+ .expYield = 98,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FAIRY,
+ .ability1 = ABILITY_HYPER_CUTTER,
+ .ability2 = ABILITY_INTIMIDATE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEDITITE] =
+ {
+ .baseHP = 30,
+ .baseAttack = 40,
+ .baseDefense = 55,
+ .baseSpeed = 60,
+ .baseSpAttack = 40,
+ .baseSpDefense = 55,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 180,
+ .expYield = 91,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_PURE_POWER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_MEDICHAM] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 75,
+ .baseSpeed = 80,
+ .baseSpAttack = 60,
+ .baseSpDefense = 75,
+ .type1 = TYPE_FIGHTING,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 90,
+ .expYield = 153,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_HUMAN_LIKE,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_PURE_POWER,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWABLU] =
+ {
+ .baseHP = 45,
+ .baseAttack = 40,
+ .baseDefense = 60,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 75,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_FLYING,
+ .catchRate = 255,
+ .expYield = 74,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ALTARIA] =
+ {
+ .baseHP = 75,
+ .baseAttack = 70,
+ .baseDefense = 90,
+ .baseSpeed = 80,
+ .baseSpAttack = 70,
+ .baseSpDefense = 105,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 188,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_FLYING,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WYNAUT] =
+ {
+ .baseHP = 95,
+ .baseAttack = 23,
+ .baseDefense = 48,
+ .baseSpeed = 23,
+ .baseSpAttack = 23,
+ .baseSpDefense = 48,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 125,
+ .expYield = 44,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_SHADOW_TAG,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUSKULL] =
+ {
+ .baseHP = 20,
+ .baseAttack = 40,
+ .baseDefense = 90,
+ .baseSpeed = 25,
+ .baseSpAttack = 30,
+ .baseSpDefense = 90,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 190,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DUSCLOPS] =
+ {
+ .baseHP = 40,
+ .baseAttack = 70,
+ .baseDefense = 130,
+ .baseSpeed = 25,
+ .baseSpAttack = 60,
+ .baseSpDefense = 130,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 90,
+ .expYield = 179,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ROSELIA] =
+ {
+ .baseHP = 50,
+ .baseAttack = 60,
+ .baseDefense = 45,
+ .baseSpeed = 65,
+ .baseSpAttack = 100,
+ .baseSpDefense = 80,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_POISON,
+ .catchRate = 150,
+ .expYield = 152,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_POISON_BARB,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_NATURAL_CURE,
+ .ability2 = ABILITY_POISON_POINT,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_SLAKOTH] =
+ {
+ .baseHP = 60,
+ .baseAttack = 60,
+ .baseDefense = 60,
+ .baseSpeed = 30,
+ .baseSpAttack = 35,
+ .baseSpDefense = 35,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 255,
+ .expYield = 83,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_TRUANT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VIGOROTH] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 80,
+ .baseSpeed = 90,
+ .baseSpAttack = 55,
+ .baseSpDefense = 55,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 120,
+ .expYield = 126,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 2,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_VITAL_SPIRIT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SLAKING] =
+ {
+ .baseHP = 150,
+ .baseAttack = 160,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 95,
+ .baseSpDefense = 65,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 210,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_TRUANT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GULPIN] =
+ {
+ .baseHP = 70,
+ .baseAttack = 43,
+ .baseDefense = 53,
+ .baseSpeed = 40,
+ .baseSpAttack = 43,
+ .baseSpDefense = 53,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 225,
+ .expYield = 75,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LIQUID_OOZE,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SWALOT] =
+ {
+ .baseHP = 100,
+ .baseAttack = 73,
+ .baseDefense = 83,
+ .baseSpeed = 55,
+ .baseSpAttack = 73,
+ .baseSpDefense = 83,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 75,
+ .expYield = 168,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_BIG_PEARL,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LIQUID_OOZE,
+ .ability2 = ABILITY_STICKY_HOLD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_TROPIUS] =
+ {
+ .baseHP = 99,
+ .baseAttack = 68,
+ .baseDefense = 83,
+ .baseSpeed = 51,
+ .baseSpAttack = 72,
+ .baseSpDefense = 87,
+ .type1 = TYPE_GRASS,
+ .type2 = TYPE_FLYING,
+ .catchRate = 200,
+ .expYield = 169,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_GRASS,
+ .ability1 = ABILITY_CHLOROPHYLL,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_WHISMUR] =
+ {
+ .baseHP = 64,
+ .baseAttack = 51,
+ .baseDefense = 23,
+ .baseSpeed = 28,
+ .baseSpAttack = 51,
+ .baseSpDefense = 23,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 190,
+ .expYield = 68,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LOUDRED] =
+ {
+ .baseHP = 84,
+ .baseAttack = 71,
+ .baseDefense = 43,
+ .baseSpeed = 48,
+ .baseSpAttack = 71,
+ .baseSpDefense = 43,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 120,
+ .expYield = 126,
+ .evYield_HP = 2,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_EXPLOUD] =
+ {
+ .baseHP = 104,
+ .baseAttack = 91,
+ .baseDefense = 63,
+ .baseSpeed = 68,
+ .baseSpAttack = 91,
+ .baseSpDefense = 63,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 184,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_CHESTO_BERRY,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_SOUNDPROOF,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CLAMPERL] =
+ {
+ .baseHP = 35,
+ .baseAttack = 64,
+ .baseDefense = 85,
+ .baseSpeed = 32,
+ .baseSpAttack = 74,
+ .baseSpDefense = 55,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 255,
+ .expYield = 142,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_BLUE_SHARD,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SHELL_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_HUNTAIL] =
+ {
+ .baseHP = 55,
+ .baseAttack = 104,
+ .baseDefense = 105,
+ .baseSpeed = 52,
+ .baseSpAttack = 94,
+ .baseSpDefense = 75,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GOREBYSS] =
+ {
+ .baseHP = 55,
+ .baseAttack = 84,
+ .baseDefense = 105,
+ .baseSpeed = 52,
+ .baseSpAttack = 114,
+ .baseSpDefense = 75,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 60,
+ .expYield = 178,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_1,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PINK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ABSOL] =
+ {
+ .baseHP = 65,
+ .baseAttack = 130,
+ .baseDefense = 60,
+ .baseSpeed = 75,
+ .baseSpAttack = 75,
+ .baseSpDefense = 60,
+ .type1 = TYPE_DARK,
+ .type2 = TYPE_DARK,
+ .catchRate = 30,
+ .expYield = 174,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_MEDIUM_SLOW,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_SHUPPET] =
+ {
+ .baseHP = 44,
+ .baseAttack = 75,
+ .baseDefense = 35,
+ .baseSpeed = 45,
+ .baseSpAttack = 63,
+ .baseSpDefense = 33,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 225,
+ .expYield = 97,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BANETTE] =
+ {
+ .baseHP = 64,
+ .baseAttack = 115,
+ .baseDefense = 65,
+ .baseSpeed = 65,
+ .baseSpAttack = 83,
+ .baseSpDefense = 63,
+ .type1 = TYPE_GHOST,
+ .type2 = TYPE_GHOST,
+ .catchRate = 45,
+ .expYield = 179,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_SPELL_TAG,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 35,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_INSOMNIA,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SEVIPER] =
+ {
+ .baseHP = 73,
+ .baseAttack = 100,
+ .baseDefense = 60,
+ .baseSpeed = 65,
+ .baseSpAttack = 100,
+ .baseSpDefense = 60,
+ .type1 = TYPE_POISON,
+ .type2 = TYPE_POISON,
+ .catchRate = 90,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_SHED_SKIN,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLACK,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_ZANGOOSE] =
+ {
+ .baseHP = 73,
+ .baseAttack = 115,
+ .baseDefense = 60,
+ .baseSpeed = 90,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 90,
+ .expYield = 165,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_FIELD,
+ .eggGroup2 = EGG_GROUP_FIELD,
+ .ability1 = ABILITY_IMMUNITY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_RELICANTH] =
+ {
+ .baseHP = 100,
+ .baseAttack = 90,
+ .baseDefense = 130,
+ .baseSpeed = 55,
+ .baseSpAttack = 45,
+ .baseSpDefense = 65,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_ROCK,
+ .catchRate = 25,
+ .expYield = 198,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_GREEN_SHARD,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 40,
+ .friendship = 70,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_WATER_1,
+ .eggGroup2 = EGG_GROUP_WATER_2,
+ .ability1 = ABILITY_SWIFT_SWIM,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARON] =
+ {
+ .baseHP = 50,
+ .baseAttack = 70,
+ .baseDefense = 100,
+ .baseSpeed = 30,
+ .baseSpAttack = 40,
+ .baseSpDefense = 40,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_ROCK,
+ .catchRate = 180,
+ .expYield = 96,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_HARD_STONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LAIRON] =
+ {
+ .baseHP = 60,
+ .baseAttack = 90,
+ .baseDefense = 140,
+ .baseSpeed = 40,
+ .baseSpAttack = 50,
+ .baseSpDefense = 50,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_ROCK,
+ .catchRate = 90,
+ .expYield = 152,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_HARD_STONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_AGGRON] =
+ {
+ .baseHP = 70,
+ .baseAttack = 110,
+ .baseDefense = 180,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 60,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_ROCK,
+ .catchRate = 45,
+ .expYield = 205,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_HARD_STONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 35,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MONSTER,
+ .eggGroup2 = EGG_GROUP_MONSTER,
+ .ability1 = ABILITY_STURDY,
+ .ability2 = ABILITY_ROCK_HEAD,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CASTFORM] =
+ {
+ .baseHP = 70,
+ .baseAttack = 70,
+ .baseDefense = 70,
+ .baseSpeed = 70,
+ .baseSpAttack = 70,
+ .baseSpDefense = 70,
+ .type1 = TYPE_NORMAL,
+ .type2 = TYPE_NORMAL,
+ .catchRate = 45,
+ .expYield = 145,
+ .evYield_HP = 1,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_MYSTIC_WATER,
+ .item2 = ITEM_MYSTIC_WATER,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_MEDIUM_FAST,
+ .eggGroup1 = EGG_GROUP_FAIRY,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_FORECAST,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_VOLBEAT] =
+ {
+ .baseHP = 65,
+ .baseAttack = 73,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 47,
+ .baseSpDefense = 75,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 150,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_ILLUMINATE,
+ .ability2 = ABILITY_SWARM,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ILLUMISE] =
+ {
+ .baseHP = 65,
+ .baseAttack = 47,
+ .baseDefense = 55,
+ .baseSpeed = 85,
+ .baseSpAttack = 73,
+ .baseSpDefense = 75,
+ .type1 = TYPE_BUG,
+ .type2 = TYPE_BUG,
+ .catchRate = 150,
+ .expYield = 146,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 15,
+ .friendship = 70,
+ .growthRate = GROWTH_FLUCTUATING,
+ .eggGroup1 = EGG_GROUP_BUG,
+ .eggGroup2 = EGG_GROUP_HUMAN_LIKE,
+ .ability1 = ABILITY_OBLIVIOUS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LILEEP] =
+ {
+ .baseHP = 66,
+ .baseAttack = 41,
+ .baseDefense = 77,
+ .baseSpeed = 23,
+ .baseSpAttack = 61,
+ .baseSpDefense = 87,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 121,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SUCTION_CUPS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_PURPLE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_CRADILY] =
+ {
+ .baseHP = 86,
+ .baseAttack = 81,
+ .baseDefense = 97,
+ .baseSpeed = 43,
+ .baseSpAttack = 81,
+ .baseSpDefense = 107,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_GRASS,
+ .catchRate = 45,
+ .expYield = 201,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 2,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_SUCTION_CUPS,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ANORITH] =
+ {
+ .baseHP = 45,
+ .baseAttack = 95,
+ .baseDefense = 50,
+ .baseSpeed = 75,
+ .baseSpAttack = 40,
+ .baseSpDefense = 50,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_BUG,
+ .catchRate = 45,
+ .expYield = 119,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_BATTLE_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_ARMALDO] =
+ {
+ .baseHP = 75,
+ .baseAttack = 125,
+ .baseDefense = 100,
+ .baseSpeed = 45,
+ .baseSpAttack = 70,
+ .baseSpDefense = 80,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_BUG,
+ .catchRate = 45,
+ .expYield = 200,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(12.5),
+ .eggCycles = 30,
+ .friendship = 70,
+ .growthRate = GROWTH_ERRATIC,
+ .eggGroup1 = EGG_GROUP_WATER_3,
+ .eggGroup2 = EGG_GROUP_WATER_3,
+ .ability1 = ABILITY_BATTLE_ARMOR,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RALTS] =
+ {
+ .baseHP = 28,
+ .baseAttack = 25,
+ .baseDefense = 25,
+ .baseSpeed = 40,
+ .baseSpAttack = 45,
+ .baseSpDefense = 35,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 235,
+ .expYield = 70,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_TRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KIRLIA] =
+ {
+ .baseHP = 38,
+ .baseAttack = 35,
+ .baseDefense = 35,
+ .baseSpeed = 50,
+ .baseSpAttack = 65,
+ .baseSpDefense = 55,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 120,
+ .expYield = 140,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 2,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_TRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GARDEVOIR] =
+ {
+ .baseHP = 68,
+ .baseAttack = 65,
+ .baseDefense = 65,
+ .baseSpeed = 80,
+ .baseSpAttack = 125,
+ .baseSpDefense = 115,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 208,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 20,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_SYNCHRONIZE,
+ .ability2 = ABILITY_TRACE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BAGON] =
+ {
+ .baseHP = 45,
+ .baseAttack = 75,
+ .baseDefense = 60,
+ .baseSpeed = 50,
+ .baseSpAttack = 40,
+ .baseSpDefense = 30,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 89,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_DRAGON,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SHELGON] =
+ {
+ .baseHP = 65,
+ .baseAttack = 95,
+ .baseDefense = 100,
+ .baseSpeed = 50,
+ .baseSpAttack = 60,
+ .baseSpDefense = 50,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_DRAGON,
+ .catchRate = 45,
+ .expYield = 144,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_DRAGON,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_ROCK_HEAD,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_WHITE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_SALAMENCE] =
+ {
+ .baseHP = 95,
+ .baseAttack = 135,
+ .baseDefense = 80,
+ .baseSpeed = 100,
+ .baseSpAttack = 110,
+ .baseSpDefense = 80,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 45,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_DRAGON_SCALE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_DRAGON,
+ .eggGroup2 = EGG_GROUP_DRAGON,
+ .ability1 = ABILITY_INTIMIDATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_BELDUM] =
+ {
+ .baseHP = 40,
+ .baseAttack = 55,
+ .baseDefense = 80,
+ .baseSpeed = 30,
+ .baseSpAttack = 35,
+ .baseSpDefense = 60,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 103,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 1,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_METANG] =
+ {
+ .baseHP = 60,
+ .baseAttack = 75,
+ .baseDefense = 100,
+ .baseSpeed = 50,
+ .baseSpAttack = 55,
+ .baseSpDefense = 80,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 153,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_METAGROSS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 135,
+ .baseDefense = 130,
+ .baseSpeed = 70,
+ .baseSpAttack = 95,
+ .baseSpDefense = 90,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 210,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_METAL_COAT,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 40,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_MINERAL,
+ .eggGroup2 = EGG_GROUP_MINERAL,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REGIROCK] =
+ {
+ .baseHP = 80,
+ .baseAttack = 100,
+ .baseDefense = 200,
+ .baseSpeed = 50,
+ .baseSpAttack = 50,
+ .baseSpDefense = 100,
+ .type1 = TYPE_ROCK,
+ .type2 = TYPE_ROCK,
+ .catchRate = 3,
+ .expYield = 217,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 3,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BROWN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REGICE] =
+ {
+ .baseHP = 80,
+ .baseAttack = 50,
+ .baseDefense = 100,
+ .baseSpeed = 50,
+ .baseSpAttack = 100,
+ .baseSpDefense = 200,
+ .type1 = TYPE_ICE,
+ .type2 = TYPE_ICE,
+ .catchRate = 3,
+ .expYield = 216,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_REGISTEEL] =
+ {
+ .baseHP = 80,
+ .baseAttack = 75,
+ .baseDefense = 150,
+ .baseSpeed = 50,
+ .baseSpAttack = 75,
+ .baseSpDefense = 150,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_STEEL,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 2,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 80,
+ .friendship = 35,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_CLEAR_BODY,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GRAY,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_KYOGRE] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 90,
+ .baseSpeed = 90,
+ .baseSpAttack = 150,
+ .baseSpDefense = 140,
+ .type1 = TYPE_WATER,
+ .type2 = TYPE_WATER,
+ .catchRate = 5,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_DRIZZLE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_GROUDON] =
+ {
+ .baseHP = 100,
+ .baseAttack = 150,
+ .baseDefense = 140,
+ .baseSpeed = 90,
+ .baseSpAttack = 100,
+ .baseSpDefense = 90,
+ .type1 = TYPE_GROUND,
+ .type2 = TYPE_GROUND,
+ .catchRate = 5,
+ .expYield = 218,
+ .evYield_HP = 0,
+ .evYield_Attack = 3,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_DROUGHT,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_RAYQUAZA] =
+ {
+ .baseHP = 105,
+ .baseAttack = 150,
+ .baseDefense = 90,
+ .baseSpeed = 95,
+ .baseSpAttack = 150,
+ .baseSpDefense = 90,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_FLYING,
+ .catchRate = 3,
+ .expYield = 220,
+ .evYield_HP = 0,
+ .evYield_Attack = 2,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_AIR_LOCK,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_GREEN,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LATIAS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 80,
+ .baseDefense = 90,
+ .baseSpeed = 110,
+ .baseSpAttack = 110,
+ .baseSpDefense = 130,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 211,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 3,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_FEMALE,
+ .eggCycles = 120,
+ .friendship = 90,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_LATIOS] =
+ {
+ .baseHP = 80,
+ .baseAttack = 90,
+ .baseDefense = 80,
+ .baseSpeed = 110,
+ .baseSpAttack = 130,
+ .baseSpDefense = 110,
+ .type1 = TYPE_DRAGON,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 211,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 3,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_MALE,
+ .eggCycles = 120,
+ .friendship = 90,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_JIRACHI] =
+ {
+ .baseHP = 100,
+ .baseAttack = 100,
+ .baseDefense = 100,
+ .baseSpeed = 100,
+ .baseSpAttack = 100,
+ .baseSpDefense = 100,
+ .type1 = TYPE_STEEL,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 3,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 0,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_STAR_PIECE,
+ .item2 = ITEM_STAR_PIECE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 100,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_SERENE_GRACE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_YELLOW,
+ .noFlip = FALSE,
+ },
+
+ [SPECIES_DEOXYS] =
+ {
+ .baseHP = 50,
+ .baseAttack = 150,
+ .baseDefense = 50,
+ .baseSpeed = 150,
+ .baseSpAttack = 150,
+ .baseSpDefense = 50,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 3,
+ .expYield = 215,
+ .evYield_HP = 0,
+ .evYield_Attack = 1,
+ .evYield_Defense = 0,
+ .evYield_Speed = 1,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 0,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = MON_GENDERLESS,
+ .eggCycles = 120,
+ .friendship = 0,
+ .growthRate = GROWTH_SLOW,
+ .eggGroup1 = EGG_GROUP_UNDISCOVERED,
+ .eggGroup2 = EGG_GROUP_UNDISCOVERED,
+ .ability1 = ABILITY_PRESSURE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_RED,
+ .noFlip = TRUE,
+ },
+
+ [SPECIES_CHIMECHO] =
+ {
+ .baseHP = 65,
+ .baseAttack = 50,
+ .baseDefense = 70,
+ .baseSpeed = 65,
+ .baseSpAttack = 95,
+ .baseSpDefense = 80,
+ .type1 = TYPE_PSYCHIC,
+ .type2 = TYPE_PSYCHIC,
+ .catchRate = 45,
+ .expYield = 147,
+ .evYield_HP = 0,
+ .evYield_Attack = 0,
+ .evYield_Defense = 0,
+ .evYield_Speed = 0,
+ .evYield_SpAttack = 1,
+ .evYield_SpDefense = 1,
+ .item1 = ITEM_NONE,
+ .item2 = ITEM_NONE,
+ .genderRatio = PERCENT_FEMALE(50),
+ .eggCycles = 25,
+ .friendship = 70,
+ .growthRate = GROWTH_FAST,
+ .eggGroup1 = EGG_GROUP_AMORPHOUS,
+ .eggGroup2 = EGG_GROUP_AMORPHOUS,
+ .ability1 = ABILITY_LEVITATE,
+ .ability2 = ABILITY_NONE,
+ .safariZoneFleeRate = 0,
+ .bodyColor = BODY_COLOR_BLUE,
+ .noFlip = FALSE,
}
};
-#endif //POKERUBY_BASE_STATS_H
+#endif //GUARD_BASE_STATS_H
diff --git a/src/data/pokemon/dex_order.h b/src/data/pokemon/dex_order.h
deleted file mode 100644
index cbb7182ed..000000000
--- a/src/data/pokemon/dex_order.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-
-//
-
-#ifndef POKERUBY_DEX_ORDER_H
-#define POKERUBY_DEX_ORDER_H
-
-const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151
-};
-
-const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358};
-
-const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411};
-
-#endif //POKERUBY_DEX_ORDER_H
diff --git a/src/data/pokemon/evolution.h b/src/data/pokemon/evolution.h
index 919416fee..b88e42cd2 100644
--- a/src/data/pokemon/evolution.h
+++ b/src/data/pokemon/evolution.h
@@ -1,608 +1,192 @@
-//
-
-//
-
#ifndef POKERUBY_EVOLUTION_H
#define POKERUBY_EVOLUTION_H
-const struct EvolutionData gEvolutionTable[] = {
- {{ // ??????????
- }}, {{ // Bulbasaur
- {EVO_LEVEL, 16, SPECIES_IVYSAUR},
- }}, {{ // Ivysaur
- {EVO_LEVEL, 32, SPECIES_VENUSAUR},
- }}, {{ // Venusaur
- }}, {{ // Charmander
- {EVO_LEVEL, 16, SPECIES_CHARMELEON},
- }}, {{ // Charmeleon
- {EVO_LEVEL, 36, SPECIES_CHARIZARD},
- }}, {{ // Charizard
- }}, {{ // Squirtle
- {EVO_LEVEL, 16, SPECIES_WARTORTLE},
- }}, {{ // Wartortle
- {EVO_LEVEL, 36, SPECIES_BLASTOISE},
- }}, {{ // Blastoise
- }}, {{ // Caterpie
- {EVO_LEVEL, 7, SPECIES_METAPOD},
- }}, {{ // Metapod
- {EVO_LEVEL, 10, SPECIES_BUTTERFREE},
- }}, {{ // Butterfree
- }}, {{ // Weedle
- {EVO_LEVEL, 7, SPECIES_KAKUNA},
- }}, {{ // Kakuna
- {EVO_LEVEL, 10, SPECIES_BEEDRILL},
- }}, {{ // Beedrill
- }}, {{ // Pidgey
- {EVO_LEVEL, 18, SPECIES_PIDGEOTTO},
- }}, {{ // Pidgeotto
- {EVO_LEVEL, 36, SPECIES_PIDGEOT},
- }}, {{ // Pidgeot
- }}, {{ // Rattata
- {EVO_LEVEL, 20, SPECIES_RATICATE},
- }}, {{ // Raticate
- }}, {{ // Spearow
- {EVO_LEVEL, 20, SPECIES_FEAROW},
- }}, {{ // Fearow
- }}, {{ // Ekans
- {EVO_LEVEL, 22, SPECIES_ARBOK},
- }}, {{ // Arbok
- }}, {{ // Pikachu
- {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU},
- }}, {{ // Raichu
- }}, {{ // Sandshrew
- {EVO_LEVEL, 22, SPECIES_SANDSLASH},
- }}, {{ // Sandslash
- }}, {{ // Nidoran♀
- {EVO_LEVEL, 16, SPECIES_NIDORINA},
- }}, {{ // Nidorina
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN},
- }}, {{ // Nidoqueen
- }}, {{ // Nidoran♂
- {EVO_LEVEL, 16, SPECIES_NIDORINO},
- }}, {{ // Nidorino
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING},
- }}, {{ // Nidoking
- }}, {{ // Clefairy
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE},
- }}, {{ // Clefable
- }}, {{ // Vulpix
- {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES},
- }}, {{ // Ninetales
- }}, {{ // Jigglypuff
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF},
- }}, {{ // Wigglytuff
- }}, {{ // Zubat
- {EVO_LEVEL, 22, SPECIES_GOLBAT},
- }}, {{ // Golbat
- {EVO_FRIENDSHIP, 0, SPECIES_CROBAT},
- }}, {{ // Oddish
- {EVO_LEVEL, 21, SPECIES_GLOOM},
- }}, {{ // Gloom
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
- {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM},
- }}, {{ // Vileplume
- }}, {{ // Paras
- {EVO_LEVEL, 24, SPECIES_PARASECT},
- }}, {{ // Parasect
- }}, {{ // Venonat
- {EVO_LEVEL, 31, SPECIES_VENOMOTH},
- }}, {{ // Venomoth
- }}, {{ // Diglett
- {EVO_LEVEL, 26, SPECIES_DUGTRIO},
- }}, {{ // Dugtrio
- }}, {{ // Meowth
- {EVO_LEVEL, 28, SPECIES_PERSIAN},
- }}, {{ // Persian
- }}, {{ // Psyduck
- {EVO_LEVEL, 33, SPECIES_GOLDUCK},
- }}, {{ // Golduck
- }}, {{ // Mankey
- {EVO_LEVEL, 28, SPECIES_PRIMEAPE},
- }}, {{ // Primeape
- }}, {{ // Growlithe
- {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE},
- }}, {{ // Arcanine
- }}, {{ // Poliwag
- {EVO_LEVEL, 25, SPECIES_POLIWHIRL},
- }}, {{ // Poliwhirl
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
- {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED},
- }}, {{ // Poliwrath
- }}, {{ // Abra
- {EVO_LEVEL, 16, SPECIES_KADABRA},
- }}, {{ // Kadabra
- {EVO_TRADE, 0, SPECIES_ALAKAZAM},
- }}, {{ // Alakazam
- }}, {{ // Machop
- {EVO_LEVEL, 28, SPECIES_MACHOKE},
- }}, {{ // Machoke
- {EVO_TRADE, 0, SPECIES_MACHAMP},
- }}, {{ // Machamp
- }}, {{ // Bellsprout
- {EVO_LEVEL, 21, SPECIES_WEEPINBELL},
- }}, {{ // Weepinbell
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL},
- }}, {{ // Victreebel
- }}, {{ // Tentacool
- {EVO_LEVEL, 30, SPECIES_TENTACRUEL},
- }}, {{ // Tentacruel
- }}, {{ // Geodude
- {EVO_LEVEL, 25, SPECIES_GRAVELER},
- }}, {{ // Graveler
- {EVO_TRADE, 0, SPECIES_GOLEM},
- }}, {{ // Golem
- }}, {{ // Ponyta
- {EVO_LEVEL, 40, SPECIES_RAPIDASH},
- }}, {{ // Rapidash
- }}, {{ // Slowpoke
- {EVO_LEVEL, 37, SPECIES_SLOWBRO},
- {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING},
- }}, {{ // Slowbro
- }}, {{ // Magnemite
- {EVO_LEVEL, 30, SPECIES_MAGNETON},
- }}, {{ // Magneton
- }}, {{ // Farfetch'd
- }}, {{ // Doduo
- {EVO_LEVEL, 31, SPECIES_DODRIO},
- }}, {{ // Dodrio
- }}, {{ // Seel
- {EVO_LEVEL, 34, SPECIES_DEWGONG},
- }}, {{ // Dewgong
- }}, {{ // Grimer
- {EVO_LEVEL, 38, SPECIES_MUK},
- }}, {{ // Muk
- }}, {{ // Shellder
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER},
- }}, {{ // Cloyster
- }}, {{ // Gastly
- {EVO_LEVEL, 25, SPECIES_HAUNTER},
- }}, {{ // Haunter
- {EVO_TRADE, 0, SPECIES_GENGAR},
- }}, {{ // Gengar
- }}, {{ // Onix
- {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX},
- }}, {{ // Drowzee
- {EVO_LEVEL, 26, SPECIES_HYPNO},
- }}, {{ // Hypno
- }}, {{ // Krabby
- {EVO_LEVEL, 28, SPECIES_KINGLER},
- }}, {{ // Kingler
- }}, {{ // Voltorb
- {EVO_LEVEL, 30, SPECIES_ELECTRODE},
- }}, {{ // Electrode
- }}, {{ // Exeggcute
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR},
- }}, {{ // Exeggutor
- }}, {{ // Cubone
- {EVO_LEVEL, 28, SPECIES_MAROWAK},
- }}, {{ // Marowak
- }}, {{ // Hitmonlee
- }}, {{ // Hitmonchan
- }}, {{ // Lickitung
- }}, {{ // Koffing
- {EVO_LEVEL, 35, SPECIES_WEEZING},
- }}, {{ // Weezing
- }}, {{ // Rhyhorn
- {EVO_LEVEL, 42, SPECIES_RHYDON},
- }}, {{ // Rhydon
- }}, {{ // Chansey
- {EVO_FRIENDSHIP, 0, SPECIES_BLISSEY},
- }}, {{ // Tangela
- }}, {{ // Kangaskhan
- }}, {{ // Horsea
- {EVO_LEVEL, 32, SPECIES_SEADRA},
- }}, {{ // Seadra
- {EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA},
- }}, {{ // Goldeen
- {EVO_LEVEL, 33, SPECIES_SEAKING},
- }}, {{ // Seaking
- }}, {{ // Staryu
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE},
- }}, {{ // Starmie
- }}, {{ // Mr. mime
- }}, {{ // Scyther
- {EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR},
- }}, {{ // Jynx
- }}, {{ // Electabuzz
- }}, {{ // Magmar
- }}, {{ // Pinsir
- }}, {{ // Tauros
- }}, {{ // Magikarp
- {EVO_LEVEL, 20, SPECIES_GYARADOS},
- }}, {{ // Gyarados
- }}, {{ // Lapras
- }}, {{ // Ditto
- }}, {{ // Eevee
- {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
- {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
- {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
- {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON},
- }}, {{ // Vaporeon
- }}, {{ // Jolteon
- }}, {{ // Flareon
- }}, {{ // Porygon
- {EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2},
- }}, {{ // Omanyte
- {EVO_LEVEL, 40, SPECIES_OMASTAR},
- }}, {{ // Omastar
- }}, {{ // Kabuto
- {EVO_LEVEL, 40, SPECIES_KABUTOPS},
- }}, {{ // Kabutops
- }}, {{ // Aerodactyl
- }}, {{ // Snorlax
- }}, {{ // Articuno
- }}, {{ // Zapdos
- }}, {{ // Moltres
- }}, {{ // Dratini
- {EVO_LEVEL, 30, SPECIES_DRAGONAIR},
- }}, {{ // Dragonair
- {EVO_LEVEL, 55, SPECIES_DRAGONITE},
- }}, {{ // Dragonite
- }}, {{ // Mewtwo
- }}, {{ // Mew
- }}, {{ // Chikorita
- {EVO_LEVEL, 16, SPECIES_BAYLEEF},
- }}, {{ // Bayleef
- {EVO_LEVEL, 32, SPECIES_MEGANIUM},
- }}, {{ // Meganium
- }}, {{ // Cyndaquil
- {EVO_LEVEL, 14, SPECIES_QUILAVA},
- }}, {{ // Quilava
- {EVO_LEVEL, 36, SPECIES_TYPHLOSION},
- }}, {{ // Typhlosion
- }}, {{ // Totodile
- {EVO_LEVEL, 18, SPECIES_CROCONAW},
- }}, {{ // Croconaw
- {EVO_LEVEL, 30, SPECIES_FERALIGATR},
- }}, {{ // Feraligatr
- }}, {{ // Sentret
- {EVO_LEVEL, 15, SPECIES_FURRET},
- }}, {{ // Furret
- }}, {{ // Hoothoot
- {EVO_LEVEL, 20, SPECIES_NOCTOWL},
- }}, {{ // Noctowl
- }}, {{ // Ledyba
- {EVO_LEVEL, 18, SPECIES_LEDIAN},
- }}, {{ // Ledian
- }}, {{ // Spinarak
- {EVO_LEVEL, 22, SPECIES_ARIADOS},
- }}, {{ // Ariados
- }}, {{ // Crobat
- }}, {{ // Chinchou
- {EVO_LEVEL, 27, SPECIES_LANTURN},
- }}, {{ // Lanturn
- }}, {{ // Pichu
- {EVO_FRIENDSHIP, 0, SPECIES_PIKACHU},
- }}, {{ // Cleffa
- {EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY},
- }}, {{ // Igglybuff
- {EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF},
- }}, {{ // Togepi
- {EVO_FRIENDSHIP, 0, SPECIES_TOGETIC},
- }}, {{ // Togetic
- }}, {{ // Natu
- {EVO_LEVEL, 25, SPECIES_XATU},
- }}, {{ // Xatu
- }}, {{ // Mareep
- {EVO_LEVEL, 15, SPECIES_FLAAFFY},
- }}, {{ // Flaaffy
- {EVO_LEVEL, 30, SPECIES_AMPHAROS},
- }}, {{ // Ampharos
- }}, {{ // Bellossom
- }}, {{ // Marill
- {EVO_LEVEL, 18, SPECIES_AZUMARILL},
- }}, {{ // Azumarill
- }}, {{ // Sudowoodo
- }}, {{ // Politoed
- }}, {{ // Hoppip
- {EVO_LEVEL, 18, SPECIES_SKIPLOOM},
- }}, {{ // Skiploom
- {EVO_LEVEL, 27, SPECIES_JUMPLUFF},
- }}, {{ // Jumpluff
- }}, {{ // Aipom
- }}, {{ // Sunkern
- {EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA},
- }}, {{ // Sunflora
- }}, {{ // Yanma
- }}, {{ // Wooper
- {EVO_LEVEL, 20, SPECIES_QUAGSIRE},
- }}, {{ // Quagsire
- }}, {{ // Espeon
- }}, {{ // Umbreon
- }}, {{ // Murkrow
- }}, {{ // Slowking
- }}, {{ // Misdreavus
- }}, {{ // Unown
- }}, {{ // Wobbuffet
- }}, {{ // Girafarig
- }}, {{ // Pineco
- {EVO_LEVEL, 31, SPECIES_FORRETRESS},
- }}, {{ // Forretress
- }}, {{ // Dunsparce
- }}, {{ // Gligar
- }}, {{ // Steelix
- }}, {{ // Snubbull
- {EVO_LEVEL, 23, SPECIES_GRANBULL},
- }}, {{ // Granbull
- }}, {{ // Qwilfish
- }}, {{ // Scizor
- }}, {{ // Shuckle
- }}, {{ // Heracross
- }}, {{ // Sneasel
- }}, {{ // Teddiursa
- {EVO_LEVEL, 30, SPECIES_URSARING},
- }}, {{ // Ursaring
- }}, {{ // Slugma
- {EVO_LEVEL, 38, SPECIES_MAGCARGO},
- }}, {{ // Magcargo
- }}, {{ // Swinub
- {EVO_LEVEL, 33, SPECIES_PILOSWINE},
- }}, {{ // Piloswine
- }}, {{ // Corsola
- }}, {{ // Remoraid
- {EVO_LEVEL, 25, SPECIES_OCTILLERY},
- }}, {{ // Octillery
- }}, {{ // Delibird
- }}, {{ // Mantine
- }}, {{ // Skarmory
- }}, {{ // Houndour
- {EVO_LEVEL, 24, SPECIES_HOUNDOOM},
- }}, {{ // Houndoom
- }}, {{ // Kingdra
- }}, {{ // Phanpy
- {EVO_LEVEL, 25, SPECIES_DONPHAN},
- }}, {{ // Donphan
- }}, {{ // Porygon2
- }}, {{ // Stantler
- }}, {{ // Smeargle
- }}, {{ // Tyrogue
- {EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
- {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
- {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP},
- }}, {{ // Hitmontop
- }}, {{ // Smoochum
- {EVO_LEVEL, 30, SPECIES_JYNX},
- }}, {{ // Elekid
- {EVO_LEVEL, 30, SPECIES_ELECTABUZZ},
- }}, {{ // Magby
- {EVO_LEVEL, 30, SPECIES_MAGMAR},
- }}, {{ // Miltank
- }}, {{ // Blissey
- }}, {{ // Raikou
- }}, {{ // Entei
- }}, {{ // Suicune
- }}, {{ // Larvitar
- {EVO_LEVEL, 30, SPECIES_PUPITAR},
- }}, {{ // Pupitar
- {EVO_LEVEL, 55, SPECIES_TYRANITAR},
- }}, {{ // Tyranitar
- }}, {{ // Lugia
- }}, {{ // Ho-Oh
- }}, {{ // Celebi
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // ?
- }}, {{ // Treecko
- {EVO_LEVEL, 16, SPECIES_GROVYLE},
- }}, {{ // Grovyle
- {EVO_LEVEL, 36, SPECIES_SCEPTILE},
- }}, {{ // Sceptile
- }}, {{ // Torchic
- {EVO_LEVEL, 16, SPECIES_COMBUSKEN},
- }}, {{ // Combusken
- {EVO_LEVEL, 36, SPECIES_BLAZIKEN},
- }}, {{ // Blaziken
- }}, {{ // Mudkip
- {EVO_LEVEL, 16, SPECIES_MARSHTOMP},
- }}, {{ // Marshtomp
- {EVO_LEVEL, 36, SPECIES_SWAMPERT},
- }}, {{ // Swampert
- }}, {{ // Poochyena
- {EVO_LEVEL, 18, SPECIES_MIGHTYENA},
- }}, {{ // Mightyena
- }}, {{ // Zigzagoon
- {EVO_LEVEL, 20, SPECIES_LINOONE},
- }}, {{ // Linoone
- }}, {{ // Wurmple
- {EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
- {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON},
- }}, {{ // Silcoon
- {EVO_LEVEL, 10, SPECIES_BEAUTIFLY},
- }}, {{ // Beautifly
- }}, {{ // Cascoon
- {EVO_LEVEL, 10, SPECIES_DUSTOX},
- }}, {{ // Dustox
- }}, {{ // Lotad
- {EVO_LEVEL, 14, SPECIES_LOMBRE},
- }}, {{ // Lombre
- {EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO},
- }}, {{ // Ludicolo
- }}, {{ // Seedot
- {EVO_LEVEL, 14, SPECIES_NUZLEAF},
- }}, {{ // Nuzleaf
- {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY},
- }}, {{ // Shiftry
- }}, {{ // Nincada
- {EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
- {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA},
- }}, {{ // Ninjask
- }}, {{ // Shedinja
- }}, {{ // Taillow
- {EVO_LEVEL, 22, SPECIES_SWELLOW},
- }}, {{ // Swellow
- }}, {{ // Shroomish
- {EVO_LEVEL, 23, SPECIES_BRELOOM},
- }}, {{ // Breloom
- }}, {{ // Spinda
- }}, {{ // Wingull
- {EVO_LEVEL, 25, SPECIES_PELIPPER},
- }}, {{ // Pelipper
- }}, {{ // Surskit
- {EVO_LEVEL, 22, SPECIES_MASQUERAIN},
- }}, {{ // Masquerain
- }}, {{ // Wailmer
- {EVO_LEVEL, 40, SPECIES_WAILORD},
- }}, {{ // Wailord
- }}, {{ // Skitty
- {EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY},
- }}, {{ // Delcatty
- }}, {{ // Kecleon
- }}, {{ // Baltoy
- {EVO_LEVEL, 36, SPECIES_CLAYDOL},
- }}, {{ // Claydol
- }}, {{ // Nosepass
- }}, {{ // Torkoal
- }}, {{ // Sableye
- }}, {{ // Barboach
- {EVO_LEVEL, 30, SPECIES_WHISCASH},
- }}, {{ // Whiscash
- }}, {{ // Luvdisc
- }}, {{ // Corphish
- {EVO_LEVEL, 30, SPECIES_CRAWDAUNT},
- }}, {{ // Crawdaunt
- }}, {{ // Feebas
- {EVO_BEAUTY, 170, SPECIES_MILOTIC},
- }}, {{ // Milotic
- }}, {{ // Carvanha
- {EVO_LEVEL, 30, SPECIES_SHARPEDO},
- }}, {{ // Sharpedo
- }}, {{ // Trapinch
- {EVO_LEVEL, 35, SPECIES_VIBRAVA},
- }}, {{ // Vibrava
- {EVO_LEVEL, 45, SPECIES_FLYGON},
- }}, {{ // Flygon
- }}, {{ // Makuhita
- {EVO_LEVEL, 24, SPECIES_HARIYAMA},
- }}, {{ // Hariyama
- }}, {{ // Electrike
- {EVO_LEVEL, 26, SPECIES_MANECTRIC},
- }}, {{ // Manectric
- }}, {{ // Numel
- {EVO_LEVEL, 33, SPECIES_CAMERUPT},
- }}, {{ // Camerupt
- }}, {{ // Spheal
- {EVO_LEVEL, 32, SPECIES_SEALEO},
- }}, {{ // Sealeo
- {EVO_LEVEL, 44, SPECIES_WALREIN},
- }}, {{ // Walrein
- }}, {{ // Cacnea
- {EVO_LEVEL, 32, SPECIES_CACTURNE},
- }}, {{ // Cacturne
- }}, {{ // Snorunt
- {EVO_LEVEL, 42, SPECIES_GLALIE},
- }}, {{ // Glalie
- }}, {{ // Lunatone
- }}, {{ // Solrock
- }}, {{ // Azurill
- {EVO_FRIENDSHIP, 0, SPECIES_MARILL},
- }}, {{ // Spoink
- {EVO_LEVEL, 32, SPECIES_GRUMPIG},
- }}, {{ // Grumpig
- }}, {{ // Plusle
- }}, {{ // Minun
- }}, {{ // Mawile
- }}, {{ // Meditite
- {EVO_LEVEL, 37, SPECIES_MEDICHAM},
- }}, {{ // Medicham
- }}, {{ // Swablu
- {EVO_LEVEL, 35, SPECIES_ALTARIA},
- }}, {{ // Altaria
- }}, {{ // Wynaut
- {EVO_LEVEL, 15, SPECIES_WOBBUFFET},
- }}, {{ // Duskull
- {EVO_LEVEL, 37, SPECIES_DUSCLOPS},
- }}, {{ // Dusclops
- }}, {{ // Roselia
- }}, {{ // Slakoth
- {EVO_LEVEL, 18, SPECIES_VIGOROTH},
- }}, {{ // Vigoroth
- {EVO_LEVEL, 36, SPECIES_SLAKING},
- }}, {{ // Slaking
- }}, {{ // Gulpin
- {EVO_LEVEL, 26, SPECIES_SWALOT},
- }}, {{ // Swalot
- }}, {{ // Tropius
- }}, {{ // Whismur
- {EVO_LEVEL, 20, SPECIES_LOUDRED},
- }}, {{ // Loudred
- {EVO_LEVEL, 40, SPECIES_EXPLOUD},
- }}, {{ // Exploud
- }}, {{ // Clamperl
- {EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
- {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS},
- }}, {{ // Huntail
- }}, {{ // Gorebyss
- }}, {{ // Absol
- }}, {{ // Shuppet
- {EVO_LEVEL, 37, SPECIES_BANETTE},
- }}, {{ // Banette
- }}, {{ // Seviper
- }}, {{ // Zangoose
- }}, {{ // Relicanth
- }}, {{ // Aron
- {EVO_LEVEL, 32, SPECIES_LAIRON},
- }}, {{ // Lairon
- {EVO_LEVEL, 42, SPECIES_AGGRON},
- }}, {{ // Aggron
- }}, {{ // Castform
- }}, {{ // Volbeat
- }}, {{ // Illumise
- }}, {{ // Lileep
- {EVO_LEVEL, 40, SPECIES_CRADILY},
- }}, {{ // Cradily
- }}, {{ // Anorith
- {EVO_LEVEL, 40, SPECIES_ARMALDO},
- }}, {{ // Armaldo
- }}, {{ // Ralts
- {EVO_LEVEL, 20, SPECIES_KIRLIA},
- }}, {{ // Kirlia
- {EVO_LEVEL, 30, SPECIES_GARDEVOIR},
- }}, {{ // Gardevoir
- }}, {{ // Bagon
- {EVO_LEVEL, 30, SPECIES_SHELGON},
- }}, {{ // Shelgon
- {EVO_LEVEL, 50, SPECIES_SALAMENCE},
- }}, {{ // Salamence
- }}, {{ // Beldum
- {EVO_LEVEL, 20, SPECIES_METANG},
- }}, {{ // Metang
- {EVO_LEVEL, 45, SPECIES_METAGROSS},
- }}, {{ // Metagross
- }}, {{ // Regirock
- }}, {{ // Regice
- }}, {{ // Registeel
- }}, {{ // Kyogre
- }}, {{ // Groudon
- }}, {{ // Rayquaza
- }}, {{ // Latias
- }}, {{ // Latios
- }}, {{ // Jirachi
- }}, {{ // Deoxys
- }}, {{ // Chimecho
- }}
+struct Evolution gEvolutionTable[NUM_SPECIES][5] =
+{
+ [SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}},
+ [SPECIES_IVYSAUR] = {{EVO_LEVEL, 32, SPECIES_VENUSAUR}},
+ [SPECIES_CHARMANDER] = {{EVO_LEVEL, 16, SPECIES_CHARMELEON}},
+ [SPECIES_CHARMELEON] = {{EVO_LEVEL, 36, SPECIES_CHARIZARD}},
+ [SPECIES_SQUIRTLE] = {{EVO_LEVEL, 16, SPECIES_WARTORTLE}},
+ [SPECIES_WARTORTLE] = {{EVO_LEVEL, 36, SPECIES_BLASTOISE}},
+ [SPECIES_CATERPIE] = {{EVO_LEVEL, 7, SPECIES_METAPOD}},
+ [SPECIES_METAPOD] = {{EVO_LEVEL, 10, SPECIES_BUTTERFREE}},
+ [SPECIES_WEEDLE] = {{EVO_LEVEL, 7, SPECIES_KAKUNA}},
+ [SPECIES_KAKUNA] = {{EVO_LEVEL, 10, SPECIES_BEEDRILL}},
+ [SPECIES_PIDGEY] = {{EVO_LEVEL, 18, SPECIES_PIDGEOTTO}},
+ [SPECIES_PIDGEOTTO] = {{EVO_LEVEL, 36, SPECIES_PIDGEOT}},
+ [SPECIES_RATTATA] = {{EVO_LEVEL, 20, SPECIES_RATICATE}},
+ [SPECIES_SPEAROW] = {{EVO_LEVEL, 20, SPECIES_FEAROW}},
+ [SPECIES_EKANS] = {{EVO_LEVEL, 22, SPECIES_ARBOK}},
+ [SPECIES_PIKACHU] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}},
+ [SPECIES_SANDSHREW] = {{EVO_LEVEL, 22, SPECIES_SANDSLASH}},
+ [SPECIES_NIDORAN_F] = {{EVO_LEVEL, 16, SPECIES_NIDORINA}},
+ [SPECIES_NIDORINA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}},
+ [SPECIES_NIDORAN_M] = {{EVO_LEVEL, 16, SPECIES_NIDORINO}},
+ [SPECIES_NIDORINO] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}},
+ [SPECIES_CLEFAIRY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}},
+ [SPECIES_VULPIX] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}},
+ [SPECIES_JIGGLYPUFF] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}},
+ [SPECIES_ZUBAT] = {{EVO_LEVEL, 22, SPECIES_GOLBAT}},
+ [SPECIES_GOLBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_CROBAT}},
+ [SPECIES_ODDISH] = {{EVO_LEVEL, 21, SPECIES_GLOOM}},
+ [SPECIES_GLOOM] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
+ {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}},
+ [SPECIES_PARAS] = {{EVO_LEVEL, 24, SPECIES_PARASECT}},
+ [SPECIES_VENONAT] = {{EVO_LEVEL, 31, SPECIES_VENOMOTH}},
+ [SPECIES_DIGLETT] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO}},
+ [SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}},
+ [SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}},
+ [SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}},
+ [SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}},
+ [SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}},
+ [SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}},
+ [SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}},
+ [SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}},
+ [SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}},
+ [SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}},
+ [SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}},
+ [SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}},
+ [SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}},
+ [SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}},
+ [SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}},
+ [SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}},
+ [SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}},
+ [SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}},
+ [SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}},
+ [SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}},
+ [SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}},
+ [SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}},
+ [SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}},
+ [SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}},
+ [SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}},
+ [SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}},
+ [SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}},
+ [SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}},
+ [SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}},
+ [SPECIES_CUBONE] = {{EVO_LEVEL, 28, SPECIES_MAROWAK}},
+ [SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}},
+ [SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}},
+ [SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}},
+ [SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}},
+ [SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}},
+ [SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}},
+ [SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}},
+ [SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}},
+ [SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}},
+ [SPECIES_EEVEE] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
+ {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
+ {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
+ {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
+ {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}},
+ [SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
+ [SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}},
+ [SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}},
+ [SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}},
+ [SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}},
+ [SPECIES_CHIKORITA] = {{EVO_LEVEL, 16, SPECIES_BAYLEEF}},
+ [SPECIES_BAYLEEF] = {{EVO_LEVEL, 32, SPECIES_MEGANIUM}},
+ [SPECIES_CYNDAQUIL] = {{EVO_LEVEL, 14, SPECIES_QUILAVA}},
+ [SPECIES_QUILAVA] = {{EVO_LEVEL, 36, SPECIES_TYPHLOSION}},
+ [SPECIES_TOTODILE] = {{EVO_LEVEL, 18, SPECIES_CROCONAW}},
+ [SPECIES_CROCONAW] = {{EVO_LEVEL, 30, SPECIES_FERALIGATR}},
+ [SPECIES_SENTRET] = {{EVO_LEVEL, 15, SPECIES_FURRET}},
+ [SPECIES_HOOTHOOT] = {{EVO_LEVEL, 20, SPECIES_NOCTOWL}},
+ [SPECIES_LEDYBA] = {{EVO_LEVEL, 18, SPECIES_LEDIAN}},
+ [SPECIES_SPINARAK] = {{EVO_LEVEL, 22, SPECIES_ARIADOS}},
+ [SPECIES_CHINCHOU] = {{EVO_LEVEL, 27, SPECIES_LANTURN}},
+ [SPECIES_PICHU] = {{EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}},
+ [SPECIES_CLEFFA] = {{EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}},
+ [SPECIES_IGGLYBUFF] = {{EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}},
+ [SPECIES_TOGEPI] = {{EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}},
+ [SPECIES_NATU] = {{EVO_LEVEL, 25, SPECIES_XATU}},
+ [SPECIES_MAREEP] = {{EVO_LEVEL, 15, SPECIES_FLAAFFY}},
+ [SPECIES_FLAAFFY] = {{EVO_LEVEL, 30, SPECIES_AMPHAROS}},
+ [SPECIES_MARILL] = {{EVO_LEVEL, 18, SPECIES_AZUMARILL}},
+ [SPECIES_HOPPIP] = {{EVO_LEVEL, 18, SPECIES_SKIPLOOM}},
+ [SPECIES_SKIPLOOM] = {{EVO_LEVEL, 27, SPECIES_JUMPLUFF}},
+ [SPECIES_SUNKERN] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}},
+ [SPECIES_WOOPER] = {{EVO_LEVEL, 20, SPECIES_QUAGSIRE}},
+ [SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}},
+ [SPECIES_SNUBBULL] = {{EVO_LEVEL, 23, SPECIES_GRANBULL}},
+ [SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}},
+ [SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}},
+ [SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}},
+ [SPECIES_REMORAID] = {{EVO_LEVEL, 25, SPECIES_OCTILLERY}},
+ [SPECIES_HOUNDOUR] = {{EVO_LEVEL, 24, SPECIES_HOUNDOOM}},
+ [SPECIES_PHANPY] = {{EVO_LEVEL, 25, SPECIES_DONPHAN}},
+ [SPECIES_TYROGUE] = {{EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
+ {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
+ {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}},
+ [SPECIES_SMOOCHUM] = {{EVO_LEVEL, 30, SPECIES_JYNX}},
+ [SPECIES_ELEKID] = {{EVO_LEVEL, 30, SPECIES_ELECTABUZZ}},
+ [SPECIES_MAGBY] = {{EVO_LEVEL, 30, SPECIES_MAGMAR}},
+ [SPECIES_LARVITAR] = {{EVO_LEVEL, 30, SPECIES_PUPITAR}},
+ [SPECIES_PUPITAR] = {{EVO_LEVEL, 55, SPECIES_TYRANITAR}},
+ [SPECIES_TREECKO] = {{EVO_LEVEL, 16, SPECIES_GROVYLE}},
+ [SPECIES_GROVYLE] = {{EVO_LEVEL, 36, SPECIES_SCEPTILE}},
+ [SPECIES_TORCHIC] = {{EVO_LEVEL, 16, SPECIES_COMBUSKEN}},
+ [SPECIES_COMBUSKEN] = {{EVO_LEVEL, 36, SPECIES_BLAZIKEN}},
+ [SPECIES_MUDKIP] = {{EVO_LEVEL, 16, SPECIES_MARSHTOMP}},
+ [SPECIES_MARSHTOMP] = {{EVO_LEVEL, 36, SPECIES_SWAMPERT}},
+ [SPECIES_POOCHYENA] = {{EVO_LEVEL, 18, SPECIES_MIGHTYENA}},
+ [SPECIES_ZIGZAGOON] = {{EVO_LEVEL, 20, SPECIES_LINOONE}},
+ [SPECIES_WURMPLE] = {{EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
+ {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}},
+ [SPECIES_SILCOON] = {{EVO_LEVEL, 10, SPECIES_BEAUTIFLY}},
+ [SPECIES_CASCOON] = {{EVO_LEVEL, 10, SPECIES_DUSTOX}},
+ [SPECIES_LOTAD] = {{EVO_LEVEL, 14, SPECIES_LOMBRE}},
+ [SPECIES_LOMBRE] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}},
+ [SPECIES_SEEDOT] = {{EVO_LEVEL, 14, SPECIES_NUZLEAF}},
+ [SPECIES_NUZLEAF] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}},
+ [SPECIES_NINCADA] = {{EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
+ {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}},
+ [SPECIES_TAILLOW] = {{EVO_LEVEL, 22, SPECIES_SWELLOW}},
+ [SPECIES_SHROOMISH] = {{EVO_LEVEL, 23, SPECIES_BRELOOM}},
+ [SPECIES_WINGULL] = {{EVO_LEVEL, 25, SPECIES_PELIPPER}},
+ [SPECIES_SURSKIT] = {{EVO_LEVEL, 22, SPECIES_MASQUERAIN}},
+ [SPECIES_WAILMER] = {{EVO_LEVEL, 40, SPECIES_WAILORD}},
+ [SPECIES_SKITTY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}},
+ [SPECIES_BALTOY] = {{EVO_LEVEL, 36, SPECIES_CLAYDOL}},
+ [SPECIES_BARBOACH] = {{EVO_LEVEL, 30, SPECIES_WHISCASH}},
+ [SPECIES_CORPHISH] = {{EVO_LEVEL, 30, SPECIES_CRAWDAUNT}},
+ [SPECIES_FEEBAS] = {{EVO_BEAUTY, 170, SPECIES_MILOTIC}},
+ [SPECIES_CARVANHA] = {{EVO_LEVEL, 30, SPECIES_SHARPEDO}},
+ [SPECIES_TRAPINCH] = {{EVO_LEVEL, 35, SPECIES_VIBRAVA}},
+ [SPECIES_VIBRAVA] = {{EVO_LEVEL, 45, SPECIES_FLYGON}},
+ [SPECIES_MAKUHITA] = {{EVO_LEVEL, 24, SPECIES_HARIYAMA}},
+ [SPECIES_ELECTRIKE] = {{EVO_LEVEL, 26, SPECIES_MANECTRIC}},
+ [SPECIES_NUMEL] = {{EVO_LEVEL, 33, SPECIES_CAMERUPT}},
+ [SPECIES_SPHEAL] = {{EVO_LEVEL, 32, SPECIES_SEALEO}},
+ [SPECIES_SEALEO] = {{EVO_LEVEL, 44, SPECIES_WALREIN}},
+ [SPECIES_CACNEA] = {{EVO_LEVEL, 32, SPECIES_CACTURNE}},
+ [SPECIES_SNORUNT] = {{EVO_LEVEL, 42, SPECIES_GLALIE}},
+ [SPECIES_AZURILL] = {{EVO_FRIENDSHIP, 0, SPECIES_MARILL}},
+ [SPECIES_SPOINK] = {{EVO_LEVEL, 32, SPECIES_GRUMPIG}},
+ [SPECIES_MEDITITE] = {{EVO_LEVEL, 37, SPECIES_MEDICHAM}},
+ [SPECIES_SWABLU] = {{EVO_LEVEL, 35, SPECIES_ALTARIA}},
+ [SPECIES_WYNAUT] = {{EVO_LEVEL, 15, SPECIES_WOBBUFFET}},
+ [SPECIES_DUSKULL] = {{EVO_LEVEL, 37, SPECIES_DUSCLOPS}},
+ [SPECIES_SLAKOTH] = {{EVO_LEVEL, 18, SPECIES_VIGOROTH}},
+ [SPECIES_VIGOROTH] = {{EVO_LEVEL, 36, SPECIES_SLAKING}},
+ [SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}},
+ [SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}},
+ [SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}},
+ [SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
+ {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}},
+ [SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}},
+ [SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}},
+ [SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}},
+ [SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}},
+ [SPECIES_ANORITH] = {{EVO_LEVEL, 40, SPECIES_ARMALDO}},
+ [SPECIES_RALTS] = {{EVO_LEVEL, 20, SPECIES_KIRLIA}},
+ [SPECIES_KIRLIA] = {{EVO_LEVEL, 30, SPECIES_GARDEVOIR}},
+ [SPECIES_BAGON] = {{EVO_LEVEL, 30, SPECIES_SHELGON}},
+ [SPECIES_SHELGON] = {{EVO_LEVEL, 50, SPECIES_SALAMENCE}},
+ [SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}},
+ [SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}},
};
#endif //POKERUBY_EVOLUTION_H
diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h
index cd06228dd..c7409f3b2 100644
--- a/src/data/pokemon/item_effects.h
+++ b/src/data/pokemon/item_effects.h
@@ -1,661 +1,72 @@
-//
-
-//
-
-#ifndef POKERUBY_ITEM_EFFECTS_H
-#define POKERUBY_ITEM_EFFECTS_H
-
-const u8 gItemEffect_Potion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 20
-};
-
-const u8 gItemEffect_Antidote[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x10,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_BurnHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_IceHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_Awakening[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_ParalyzeHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x02,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_FullRestore[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x04,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_MaxPotion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_HyperPotion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 200
-};
-
-const u8 gItemEffect_SuperPotion[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 50
-};
-
-const u8 gItemEffect_FullHeal[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_Revive[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0x00,
- 0xfe
-};
-
-const u8 gItemEffect_MaxRevive[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_FreshWater[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 50
-};
-
-const u8 gItemEffect_SodaPop[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 60
-};
-
-const u8 gItemEffect_Lemonade[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 80
-};
-
-const u8 gItemEffect_MoomooMilk[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 100
-};
-
-const u8 gItemEffect_EnergyPowder[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0xe0,
- 50,
- 0xfb,
- 0xfb,
- 0xf6
-};
-
-const u8 gItemEffect_EnergyRoot[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0xe0,
- 200,
- 0xf6,
- 0xf6,
- 0xf1
-};
-
-const u8 gItemEffect_HealPowder[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0xe0,
- 0xfb,
- 0xfb,
- 0xf6
-};
-
-const u8 gItemEffect_RevivalHerb[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0xe0,
- 0xfe,
- 0xf1,
- 0xf1,
- 0xec
-};
-
-const u8 gItemEffect_Ether[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x18,
- 0x00,
- 0x0a
-};
-
-const u8 gItemEffect_MaxEther[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x18,
- 0x00,
- 0x7f
-};
-
-const u8 gItemEffect_Elixir[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x0a
-};
-
-const u8 gItemEffect_MaxElixir[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x7f
-};
-
-const u8 gItemEffect_LavaCookie[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_BlueFlute[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_YellowFlute[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_RedFlute[] = {
- 0x80,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_BerryJuice[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 20
-};
-
-const u8 gItemEffect_SacredAsh[] = {
- 0x40,
- 0x00,
- 0x00,
- 0x00,
- 0x44,
- 0x00,
- 0xff
-};
-
-const u8 gItemEffect_HPUp[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0xe0,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Protein[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x02,
- 0xe0,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Iron[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe1,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Carbos[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe2,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Calcium[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe8,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_RareCandy[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x40,
- 0x44,
- 0xe0,
- 253,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_PPUp[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0xe0,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_Zinc[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xe4,
- 0x0a,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_PPMax[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0xf0,
- 0x05,
- 0x03,
- 0x02
-};
-
-const u8 gItemEffect_GuardSpec[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_DireHit[] = {
- 0x20,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XAttack[] = {
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XDefend[] = {
- 0x00,
- 0x10,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XSpeed[] = {
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XAccuracy[] = {
- 0x00,
- 0x00,
- 0x10,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_XSpecial[] = {
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00,
- 0x60,
- 0x01,
- 0x01
-};
-
-const u8 gItemEffect_SunStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_MoonStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_FireStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_ThunderStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_WaterStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_LeafStone[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x80,
- 0x00
-};
-
-const u8 gItemEffect_CheriBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x02,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_ChestoBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x20,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_PechaBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x10,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_RawstBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x08,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_AspearBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_LeppaBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x18,
- 0x00,
- 0x0a
-};
-
-const u8 gItemEffect_OranBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 10
-};
-
-const u8 gItemEffect_PersimBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x01,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_LumBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x3f,
- 0x00,
- 0x00
-};
-
-const u8 gItemEffect_SitrusBerry[] = {
- 0x00,
- 0x00,
- 0x00,
- 0x00,
- 0x04,
- 0x00,
- 30
-};
-
-const u8 *const gItemEffectTable[] = {
+#ifndef GUARD_ITEM_EFFECTS_H
+#define GUARD_ITEM_EFFECTS_H
+
+const u8 gItemEffect_Potion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20};
+const u8 gItemEffect_Antidote[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00};
+const u8 gItemEffect_BurnHeal[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00};
+const u8 gItemEffect_IceHeal[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00};
+const u8 gItemEffect_Awakening[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
+const u8 gItemEffect_ParalyzeHeal[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00};
+const u8 gItemEffect_FullRestore[] = {0x00, 0x00, 0x00, 0x3f, 0x04, 0x00, 0xff};
+const u8 gItemEffect_MaxPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xff};
+const u8 gItemEffect_HyperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 200};
+const u8 gItemEffect_SuperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50};
+const u8 gItemEffect_FullHeal[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
+const u8 gItemEffect_Revive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xfe};
+const u8 gItemEffect_MaxRevive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff};
+const u8 gItemEffect_FreshWater[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50};
+const u8 gItemEffect_SodaPop[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 60};
+const u8 gItemEffect_Lemonade[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 80};
+const u8 gItemEffect_MoomooMilk[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 100};
+const u8 gItemEffect_EnergyPowder[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 50, 0xfb, 0xfb, 0xf6};
+const u8 gItemEffect_EnergyRoot[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 200, 0xf6, 0xf6, 0xf1};
+const u8 gItemEffect_HealPowder[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0xe0, 0xfb, 0xfb, 0xf6};
+const u8 gItemEffect_RevivalHerb[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0xe0, 0xfe, 0xf1, 0xf1, 0xec};
+const u8 gItemEffect_Ether[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a};
+const u8 gItemEffect_MaxEther[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7f};
+const u8 gItemEffect_Elixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a};
+const u8 gItemEffect_MaxElixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7f};
+const u8 gItemEffect_LavaCookie[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
+const u8 gItemEffect_BlueFlute[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
+const u8 gItemEffect_YellowFlute[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
+const u8 gItemEffect_RedFlute[] = {0x80, 0x00, 0x00, 0x00, 0x00, 0x00};
+const u8 gItemEffect_BerryJuice[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20};
+const u8 gItemEffect_SacredAsh[] = {0x40, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff};
+const u8 gItemEffect_HPUp[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Protein[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Iron[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Carbos[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Calcium[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_RareCandy[] = {0x00, 0x00, 0x00, 0x40, 0x44, 0xe0, 253, 0x05, 0x03, 0x02};
+const u8 gItemEffect_PPUp[] = {0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x05, 0x03, 0x02};
+const u8 gItemEffect_Zinc[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x0a, 0x05, 0x03, 0x02};
+const u8 gItemEffect_PPMax[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x05, 0x03, 0x02};
+const u8 gItemEffect_GuardSpec[] = {0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_DireHit[] = {0x20, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XAttack[] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XDefend[] = {0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XSpeed[] = {0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XAccuracy[] = {0x00, 0x00, 0x10, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_XSpecial[] = {0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x01, 0x01};
+const u8 gItemEffect_SunStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_MoonStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_FireStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_ThunderStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_WaterStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_LeafStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
+const u8 gItemEffect_CheriBerry[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00};
+const u8 gItemEffect_ChestoBerry[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
+const u8 gItemEffect_PechaBerry[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00};
+const u8 gItemEffect_RawstBerry[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00};
+const u8 gItemEffect_AspearBerry[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00};
+const u8 gItemEffect_LeppaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a};
+const u8 gItemEffect_OranBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 10};
+const u8 gItemEffect_PersimBerry[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
+const u8 gItemEffect_LumBerry[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
+const u8 gItemEffect_SitrusBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 30};
+
+const u8 *const gItemEffectTable[] =
+{
gItemEffect_Potion,
gItemEffect_Antidote,
gItemEffect_BurnHeal,
@@ -821,4 +232,4 @@ const u8 *const gItemEffectTable[] = {
NULL
};
-#endif //POKERUBY_ITEM_EFFECTS_H
+#endif //GUARD_ITEM_EFFECTS_H
diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h
index 19761c996..894a2b58e 100644
--- a/src/data/pokemon/level_up_learnset_pointers.h
+++ b/src/data/pokemon/level_up_learnset_pointers.h
@@ -5,7 +5,7 @@
#ifndef POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
#define POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
-const u16 *const gLevelUpLearnsets[] = {
+const u16 *gLevelUpLearnsets[] = {
gBulbasaurLevelUpLearnset,
gBulbasaurLevelUpLearnset,
gIvysaurLevelUpLearnset,
diff --git a/src/data/pokemon/nature_stats.h b/src/data/pokemon/nature_stats.h
deleted file mode 100644
index fcef2a0ac..000000000
--- a/src/data/pokemon/nature_stats.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-
-//
-
-#ifndef POKERUBY_NATURE_STATS_H
-#define POKERUBY_NATURE_STATS_H
-
-const s8 gNatureStatTable[][5] = {
- // Atk Def Spd Sp.Atk Sp.Def
- { 0, 0, 0, 0, 0}, // Hardy
- { 1, -1, 0, 0, 0}, // Lonely
- { 1, 0, -1, 0, 0}, // Brave
- { 1, 0, 0, -1, 0}, // Adamant
- { 1, 0, 0, 0, -1}, // Naughty
- { -1, 1, 0, 0, 0}, // Bold
- { 0, 0, 0, 0, 0}, // Docile
- { 0, 1, -1, 0, 0}, // Relaxed
- { 0, 1, 0, -1, 0}, // Impish
- { 0, 1, 0, 0, -1}, // Lax
- { -1, 0, 1, 0, 0}, // Timid
- { 0, -1, 1, 0, 0}, // Hasty
- { 0, 0, 0, 0, 0}, // Serious
- { 0, 0, 1, -1, 0}, // Jolly
- { 0, 0, 1, 0, -1}, // Naive
- { -1, 0, 0, 1, 0}, // Modest
- { 0, -1, 0, 1, 0}, // Mild
- { 0, 0, -1, 1, 0}, // Quiet
- { 0, 0, 0, 0, 0}, // Bashful
- { 0, 0, 0, 1, -1}, // Rash
- { -1, 0, 0, 0, 1}, // Calm
- { 0, -1, 0, 0, 1}, // Gentle
- { 0, 0, -1, 0, 1}, // Sassy
- { 0, 0, 0, -1, 1}, // Careful
- { 0, 0, 0, 0, 0} // Quirky
-};
-
-#endif //POKERUBY_NATURE_STATS_H
diff --git a/src/data/pokemon/spinda_spots.h b/src/data/pokemon/spinda_spots.h
deleted file mode 100644
index d045e0734..000000000
--- a/src/data/pokemon/spinda_spots.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-
-//
-
-#ifndef POKERUBY_SPINDA_SPOTS_H
-#define POKERUBY_SPINDA_SPOTS_H
-
-const struct SpindaSpot gSpindaSpotGraphics[] = {
- {16, 14, INCBIN_U16("graphics/spinda_spots/spot_0.bin")},
- {40, 15, INCBIN_U16("graphics/spinda_spots/spot_1.bin")},
- {22, 32, INCBIN_U16("graphics/spinda_spots/spot_2.bin")},
- {34, 33, INCBIN_U16("graphics/spinda_spots/spot_3.bin")}
-};
-
-#endif //POKERUBY_SPINDA_SPOTS_H
diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h
index 02cd22d56..f14478863 100644
--- a/src/data/pokemon/tmhm_learnsets.h
+++ b/src/data/pokemon/tmhm_learnsets.h
@@ -1,431 +1,9393 @@
-//
-
-//
-
-#ifndef POKERUBY_TMHM_LEARNSETS_H
-#define POKERUBY_TMHM_LEARNSETS_H
-
-// TO-DO: Rewrite this declaration to allow assignment of TM/HM learns by name.
-// These are 58-bit numbers aligned to 64 bits. The least significant bit represents TM01,
-// while the most significant bit represents HM08.
-
-asm(
- ".align 2\n"
- ".global gTMHMLearnsets\n"
- "gTMHMLearnsets:\n"
-
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ??????????
- ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Bulbasaur
- ".8byte 0b0011100100000111100000100010000100001101010000011100100000\n" // Ivysaur
- ".8byte 0b0011100100000111100000100010000110001101010100011100110000\n" // Venusaur
- ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmander
- ".8byte 0b0010100110000111101010010011001100010100010000011000100011\n" // Charmeleon
- ".8byte 0b0010101110010111101010010011001110010100010100011000110011\n" // Charizard
- ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Squirtle
- ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Wartortle
- ".8byte 0b1110110000000111100000000011001110010100110111001001110101\n" // Blastoise
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Caterpie
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Metapod
- ".8byte 0b0001000000101111101000000010110100001111110100011000100000\n" // Butterfree
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Weedle
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Kakuna
- ".8byte 0b0010000100001111101000100011000100001101010100011000100000\n" // Beedrill
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgey
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Pidgeotto
- ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Pidgeot
- ".8byte 0b0010000100001111100000001010101101110100110011111000100000\n" // Rattata
- ".8byte 0b0010100100001111100000001010101101110100110111111000110000\n" // Raticate
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Spearow
- ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Fearow
- ".8byte 0b0000100001001111110000100010001110010101110000011000100000\n" // Ekans
- ".8byte 0b0000100001001111110000100010001110010101110100011000100000\n" // Arbok
- ".8byte 0b0011100000000111100000001011001101110100111000001000100001\n" // Pikachu
- ".8byte 0b0011100000001111100000001011001101110100111100001000100001\n" // Raichu
- ".8byte 0b0010100100001111101101000011001110010100010000011000100001\n" // Sandshrew
- ".8byte 0b0010100100001111101101000011001110010100010100011000100001\n" // Sandslash
- ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidoran♀
- ".8byte 0b0010100100001111101000101010001101110100110011011000100100\n" // Nidorina
- ".8byte 0b0010110100001111111111111011101111110100110111111000110101\n" // Nidoqueen
- ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidoran♂
- ".8byte 0b0010100100001111100000101010001101110100110011011000100100\n" // Nidorino
- ".8byte 0b0010110100001111110111111011101111110100110111111000110101\n" // Nidoking
- ".8byte 0b0001100001000111100010011111111101111110111011011000101101\n" // Clefairy
- ".8byte 0b0001100001000111100010011111111101111110111111011000101101\n" // Clefable
- ".8byte 0b0000000010000111100010010010001100010110010000011000110000\n" // Vulpix
- ".8byte 0b0000000010000111100010010010001100010110010100011000110000\n" // Ninetales
- ".8byte 0b0001100001000111100010011111111101101110111011011000100101\n" // Jigglypuff
- ".8byte 0b0001100001000111100010011111111101101110111111011000100101\n" // Wigglytuff
- ".8byte 0b0000000001011111111000100010100100000101110000111000100000\n" // Zubat
- ".8byte 0b0000000001011111111000100010100100000101110100111000100000\n" // Golbat
- ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Oddish
- ".8byte 0b0001000100000111100000100010000100001101010000011100100000\n" // Gloom
- ".8byte 0b0001000100000111100000100010000100001101010100011100100000\n" // Vileplume
- ".8byte 0b0011000100001111101000100010001100001101010000011100100000\n" // Paras
- ".8byte 0b0011000100001111101000100010001100001101010100011100100000\n" // Parasect
- ".8byte 0b0001000000101111100000100010010100001101010000011000100000\n" // Venonat
- ".8byte 0b0001000000101111101000100010010100001101010100011000100000\n" // Venomoth
- ".8byte 0b0010000100001111101100100010001110000100010000011000100000\n" // Diglett
- ".8byte 0b0010000100001111101100100010001110000100010100011000100000\n" // Dugtrio
- ".8byte 0b0001000101001111111000001010101101110100110000111000100100\n" // Meowth
- ".8byte 0b0001000101001111111000001010101101110100110100111000110100\n" // Persian
- ".8byte 0b1111110000000111101000000011001100010100110011001001101101\n" // Psyduck
- ".8byte 0b1111110000000111101000000011001100010100110111001001101101\n" // Golduck
- ".8byte 0b0010100010001111101100000011001111110100110000111010100001\n" // Mankey
- ".8byte 0b0010100010001111101100000011001111110100110100111010100001\n" // Primeape
- ".8byte 0b0010100010001111101010010010001100010100010000011000110000\n" // Growlithe
- ".8byte 0b0010100010001111101010010010001100010100010100011000110000\n" // Arcanine
- ".8byte 0b1100010000001111100000000010011100000100110011001001100100\n" // Poliwag
- ".8byte 0b1110110000001111100000000011011110000100110011001001100101\n" // Poliwhirl
- ".8byte 0b1110110000001111100100000011011110000100110111001011100101\n" // Poliwrath
- ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Abra
- ".8byte 0b0001000001101111110000001110110100010110111000111000101001\n" // Kadabra
- ".8byte 0b0001000001101111110000001110110100010110111100111000101001\n" // Alakazam
- ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machop
- ".8byte 0b0010100000001111100110010011001110000100110000011010100001\n" // Machoke
- ".8byte 0b0010100000001111100110010011001110000100110100011010100001\n" // Machamp
- ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Bellsprout
- ".8byte 0b0001000100001111100000100010000100001101010000011100100000\n" // Weepinbell
- ".8byte 0b0001000100001111100000100010000100001101010100011100100000\n" // Victreebel
- ".8byte 0b1100010100001111100000100010000100000101110011001001100100\n" // Tentacool
- ".8byte 0b1100010100001111100000100010000100000101110111001001100100\n" // Tentacruel
- ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Geodude
- ".8byte 0b0010100000000111100111010011001110000100010000011000100001\n" // Graveler
- ".8byte 0b0010100000000111100111010011001110000100010100011000110001\n" // Golem
- ".8byte 0b0000100010000111100010010010000100011100010000011000100000\n" // Ponyta
- ".8byte 0b0000100010000111100010010010000100011100010100011000100000\n" // Rapidash
- ".8byte 0b1001110000100111100010010010111110010110110011011001101100\n" // Slowpoke
- ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowbro
- ".8byte 0b0001000000000011100000001110000101100100110000011000100000\n" // Magnemite
- ".8byte 0b0001000000000011100000001110000101100100110100011000100000\n" // Magneton
- ".8byte 0b0000001100011111101000000010000100010100010000011000100000\n" // Farfetch'd
- ".8byte 0b0000001000011111101000000010000100000100010000011000100000\n" // Doduo
- ".8byte 0b0000001000011111111000000010000100000100010100111000100000\n" // Dodrio
- ".8byte 0b1100010000001111100000000010000100000110110011001001100100\n" // Seel
- ".8byte 0b1100010000001111100000000010000100000110110111001001100100\n" // Dewgong
- ".8byte 0b0000000000001111110110111010001101100101110000111000100000\n" // Grimer
- ".8byte 0b0010100000001111110110111011001101100101110100111000100001\n" // Muk
- ".8byte 0b1000010000000111100000000010000100000100110011001001100100\n" // Shellder
- ".8byte 0b1000010000000111110000000010000100000100110111001001100100\n" // Cloyster
- ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Gastly
- ".8byte 0b0000000001101111110000100010110100100101110000111000100000\n" // Haunter
- ".8byte 0b0010100001101111110000100011110101100101110100111000100001\n" // Gengar
- ".8byte 0b0010100000000111110101000010001110010100010000111000110000\n" // Onix
- ".8byte 0b0001000001101111110000000111110100000110111000111000101001\n" // Drowzee
- ".8byte 0b0001000001101111110000000111110100000110111100111000101001\n" // Hypno
- ".8byte 0b1010110100001111100100000010001100000100110011001001100100\n" // Krabby
- ".8byte 0b1010110100001111100100000010001100000100110111001001100100\n" // Kingler
- ".8byte 0b0001000000001011110000001010000101100100111000101000100000\n" // Voltorb
- ".8byte 0b0001000000001011110000001010000101100100111100101000100000\n" // Electrode
- ".8byte 0b0001100000101111100000100110010100001101011000011100100000\n" // Exeggcute
- ".8byte 0b0001100000101111100000100110010100001101011100011100100000\n" // Exeggutor
- ".8byte 0b0010100000001111101111010011001110010100010011011000100001\n" // Cubone
- ".8byte 0b0010100000001111101111010011001110010100010111011000100001\n" // Marowak
- ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonlee
- ".8byte 0b0010100000001111100100000011000110000100110000011010100001\n" // Hitmonchan
- ".8byte 0b0010110100001111100111011011101111111100110111011000100101\n" // Lickitung
- ".8byte 0b0001000000001111110010111010100101100100110000111000100000\n" // Koffing
- ".8byte 0b0001000000001111110010111010100101100100110100111000100000\n" // Weezing
- ".8byte 0b0010100000001111100111011010001111110100110011011000110000\n" // Rhyhorn
- ".8byte 0b0010110100001111100111011011001111110100110111011000110001\n" // Rhydon
- ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Chansey
- ".8byte 0b0011000100001111100000100010000100001101010100011100100000\n" // Tangela
- ".8byte 0b0010110100001111101111011011101111111100110111011001110101\n" // Kangaskhan
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Horsea
- ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seadra
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Goldeen
- ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Seaking
- ".8byte 0b1101010000000011100000000110010101100100111011001001100100\n" // Staryu
- ".8byte 0b1101010000100011100000000110010101100100111111001001100100\n" // Starmie
- ".8byte 0b0001000001101111110000001111110101101110111100111000101001\n" // Mr. mime
- ".8byte 0b0010000100011111101000000010000100000100110100011000100000\n" // Scyther
- ".8byte 0b0001000000101111110000000111110100000100111111101001101101\n" // Jynx
- ".8byte 0b0011100000001111100000001011010101110100111100001000100001\n" // Electabuzz
- ".8byte 0b0010100000001111100010010011010100010100010100011000100001\n" // Magmar
- ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Pinsir
- ".8byte 0b0010110000000111100111011010000111111100110111011000100100\n" // Tauros
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Magikarp
- ".8byte 0b1110110000000111110011010010000111100100110111101001110100\n" // Gyarados
- ".8byte 0b1110110000000111100000001010010101110110110111001001110100\n" // Lapras
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Ditto
- ".8byte 0b0000000000000111100000000010101100010100110000011000100000\n" // Eevee
- ".8byte 0b1100010000000111100000000010101100010100110111011001110100\n" // Vaporeon
- ".8byte 0b0001000000000111100000001010101101110100110100011000110000\n" // Jolteon
- ".8byte 0b0000000010000111100010010010101100010100110100011000110000\n" // Flareon
- ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon
- ".8byte 0b1110010000001111100101000010000100000100110011001001100100\n" // Omanyte
- ".8byte 0b1110010000001111100101000010000100000100110111001001100100\n" // Omastar
- ".8byte 0b0110010000001111101101000010001100000101110011001001100100\n" // Kabuto
- ".8byte 0b1110010100001111101101000011001100000101110111001001100100\n" // Kabutops
- ".8byte 0b0010101000011111111111010010000110010100110100111000110010\n" // Aerodactyl
- ".8byte 0b0000110000000111100111011011110111101100110111011000100101\n" // Snorlax
- ".8byte 0b0010001000010011101001000110000100000100110111011001110100\n" // Articuno
- ".8byte 0b0011001000010011101001001010000101100100111100011000110000\n" // Zapdos
- ".8byte 0b0010001010010011101011010010000100000110110100011000110000\n" // Moltres
- ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dratini
- ".8byte 0b0100010000000111100010011010000101110110110111011001100100\n" // Dragonair
- ".8byte 0b1110111100010111101111011011000111110110110111011001110111\n" // Dragonite
- ".8byte 0b0011100001100011111111011111110111111110111111111011101101\n" // Mewtwo
- ".8byte 0b1111111111111111111111111111111111111111111111111111111111\n" // Mew
- ".8byte 0b0001000100000111100000000110000100011111011000011100100000\n" // Chikorita
- ".8byte 0b0011100100000111100000000110000100011111011000011100100000\n" // Bayleef
- ".8byte 0b0011100100000111100000000110000110011111011100011100100000\n" // Meganium
- ".8byte 0b0000000110000111101010010010001100000100010000011000100000\n" // Cyndaquil
- ".8byte 0b0010100110000111101010010011001100000100010000011000110001\n" // Quilava
- ".8byte 0b0010100110000111101010010011001110000100010100011000110001\n" // Typhlosion
- ".8byte 0b1100010100000111101000000011001100010100110011001001100101\n" // Totodile
- ".8byte 0b1110110100000111101000000011001100010100110011001001110101\n" // Croconaw
- ".8byte 0b1110110100000111101000000011001110010100110111001001110111\n" // Feraligatr
- ".8byte 0b0000010100001111100000011011101100111100110001011000100101\n" // Sentret
- ".8byte 0b0010110100001111100000011011101101111100110111011000100101\n" // Furret
- ".8byte 0b0001001000011111101000000110110100000100110000011000100000\n" // Hoothoot
- ".8byte 0b0001001000011111101000000110110100000100110100011000100000\n" // Noctowl
- ".8byte 0b0001000000001111101000000111001100001111011000011000100001\n" // Ledyba
- ".8byte 0b0001000000001111101000000111001100001111011100011000100001\n" // Ledian
- ".8byte 0b0001000000001111100000100010011100001101010000011000100000\n" // Spinarak
- ".8byte 0b0001000000001111100000100010011100001101010100011000100000\n" // Ariados
- ".8byte 0b0000001001011111111000100010100100000101110100111000100000\n" // Crobat
- ".8byte 0b1101010000000111100000001010000101100100110011001001100100\n" // Chinchou
- ".8byte 0b1101010000000111100000001010000101100100110111001001100100\n" // Lanturn
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Pichu
- ".8byte 0b0001000000000111100010011110111100011110111000011000100100\n" // Cleffa
- ".8byte 0b0001000000000111100010011110111100001110111000011000100100\n" // Igglybuff
- ".8byte 0b0011000000000111100010011110110100001110111000011000100100\n" // Togepi
- ".8byte 0b0011001000010111101010011111110100001110111100011000100101\n" // Togetic
- ".8byte 0b0001000000111111101000000110110100001101111000011000101000\n" // Natu
- ".8byte 0b0001001000111111101000000110110100001101111100011000101000\n" // Xatu
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Mareep
- ".8byte 0b0011100000000111100000001011000101110100111000001000100001\n" // Flaaffy
- ".8byte 0b0011100000000111100000001011000101110100111100001000100001\n" // Ampharos
- ".8byte 0b0001000100000111100000100010000100001111010100011100100000\n" // Bellossom
- ".8byte 0b1110110000000111100000000011001100010100110011001001100101\n" // Marill
- ".8byte 0b1110110000000111100000000011001100010100110111001001100101\n" // Azumarill
- ".8byte 0b0010100000001111100101000011001110000100010000111000101001\n" // Sudowoodo
- ".8byte 0b1110110000001111100000000011011110000100110111001001100101\n" // Politoed
- ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Hoppip
- ".8byte 0b0001000000000111101000000010000100001101010000011100100000\n" // Skiploom
- ".8byte 0b0001000000000111101000000010000100001101010100011100100000\n" // Jumpluff
- ".8byte 0b0010100101001111101000001011101101111100110000111000100101\n" // Aipom
- ".8byte 0b0001000100000111100000100010000100001111011000011100100000\n" // Sunkern
- ".8byte 0b0001000100000111100000100010000100001111011100011100100000\n" // Sunflora
- ".8byte 0b0001000000011111101000000010110100001101010000011000100000\n" // Yanma
- ".8byte 0b1111010000000111100001100010001110010100110011001001100100\n" // Wooper
- ".8byte 0b1111110000000111100101100011001110010100110111001001100101\n" // Quagsire
- ".8byte 0b0001000100100111100000000110111100010100111100011000101000\n" // Espeon
- ".8byte 0b0001000101000111110000000010111100010100110100111000100000\n" // Umbreon
- ".8byte 0b0000001001011111111000000010100100000100110000111000101000\n" // Murkrow
- ".8byte 0b1011110000100111100010010011111110010110110111011001101101\n" // Slowking
- ".8byte 0b0001000001101111111000001010110101100100110000111000101000\n" // Misdreavus
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Unown
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wobbuffet
- ".8byte 0b0011100000101111100000001110110111110100111000011000101000\n" // Girafarig
- ".8byte 0b0010100000000111100001000110001110001101011000011000100000\n" // Pineco
- ".8byte 0b0010100000000111100001000110001110001101011100011000100000\n" // Forretress
- ".8byte 0b0010100000001111100110011010101111111100110011011000101100\n" // Dunsparce
- ".8byte 0b0010100100011111101101100010001110010100110000011000100000\n" // Gligar
- ".8byte 0b0010100100000111110101000010001110010100010100111000110000\n" // Steelix
- ".8byte 0b0010100010001111110010111011101111101100110000111010110101\n" // Snubbull
- ".8byte 0b0010100010001111110110111011101111111100110100111010110101\n" // Granbull
- ".8byte 0b1100010000000111100000101010100100000100110011001001100100\n" // Qwilfish
- ".8byte 0b0010100100011111101001000010000100000100110100011000100000\n" // Scizor
- ".8byte 0b0011100000000111100101100010001110000110010000011000100000\n" // Shuckle
- ".8byte 0b0010100100001111100100000011001110000100110100011010100001\n" // Heracross
- ".8byte 0b0010110101001111111000000011101100010100110011111001101001\n" // Sneasel
- ".8byte 0b0010100100001111111000000011001110000100110000111010110001\n" // Teddiursa
- ".8byte 0b0010100100001111111100000011001110000100110100111010110001\n" // Ursaring
- ".8byte 0b0010000010000111100010010110000100000100011000011000100000\n" // Slugma
- ".8byte 0b0010100010000111100111010110000110000100011100011000100000\n" // Magcargo
- ".8byte 0b0010100000000111100101000110001110000100111011001001110000\n" // Swinub
- ".8byte 0b0010100000000111100101000110001110000100111111001001110000\n" // Piloswine
- ".8byte 0b0010110000000111100101000110111110000110111011011001101100\n" // Corsola
- ".8byte 0b1100010000001111100010010010010100000100110111011000100100\n" // Remoraid
- ".8byte 0b1100010000001111100010110010010100000100110111011100100100\n" // Octillery
- ".8byte 0b0000001000001111101000000010000100000100110011001001100101\n" // Delibird
- ".8byte 0b1100010000000111101000000010000110000100110011001001100100\n" // Mantine
- ".8byte 0b0010001100011111111001000010000100000100010000111000110000\n" // Skarmory
- ".8byte 0b0010000011001111110010110010100100011100010000111000110000\n" // Houndour
- ".8byte 0b0010100011001111110010110010100100011100010100111000110000\n" // Houndoom
- ".8byte 0b1100010000000111100000000010000100000100110111001001100100\n" // Kingdra
- ".8byte 0b0010100000000111100101000010000110010100010000011000110000\n" // Phanpy
- ".8byte 0b0010100000000111100101000010000110010100010100011000110000\n" // Donphan
- ".8byte 0b0001000000001011101000001010110101111100110111011000100000\n" // Porygon2
- ".8byte 0b0001000000101111100000001110110111111100111000011000111000\n" // Stantler
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Smeargle
- ".8byte 0b0010100000001111100000000011000110000100110000011010100000\n" // Tyrogue
- ".8byte 0b0010100000001111100001000011001110000100110000011010100000\n" // Hitmontop
- ".8byte 0b0001000000101111100000000110110100000100111011001001101100\n" // Smoochum
- ".8byte 0b0011000000001111100000001011010101100100111000001000100001\n" // Elekid
- ".8byte 0b0010000000001111100010010011010100010100010000011000100001\n" // Magby
- ".8byte 0b0010110000000111100101001011100111111100110111011000100101\n" // Miltank
- ".8byte 0b0011100001100111100111011011110111111110111111011001101101\n" // Blissey
- ".8byte 0b0011100100000011100001001110001101110100110100011000111000\n" // Raikou
- ".8byte 0b0011100100000011100011010110001100011100110100011000111000\n" // Entei
- ".8byte 0b1110010100000011100001000110001100010100110111011001111100\n" // Suicune
- ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Larvitar
- ".8byte 0b0010000000000111110001000011001110000100110100111000100000\n" // Pupitar
- ".8byte 0b0010110100000111111111011011001111110100110111111000110111\n" // Tyranitar
- ".8byte 0b1110111000110011101001001110110111110111111111011001111100\n" // Lugia
- ".8byte 0b0011101010010011101011011110110111101111111100011000111000\n" // Ho-Oh
- ".8byte 0b0001000100100011101001001110110100001111111100011000101100\n" // Celebi
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // ?
- ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Treecko
- ".8byte 0b0011100100000111101100000011001100011111010000011100100001\n" // Grovyle
- ".8byte 0b0011100100000111101100000011001110011111010100011100110011\n" // Sceptile
- ".8byte 0b0010100110000111101110010010001100000100010000011000100000\n" // Torchic
- ".8byte 0b0010100110000111101110010011001100000100010000011010100001\n" // Combusken
- ".8byte 0b0010100110000111101110010011001110000100010100011010110001\n" // Blaziken
- ".8byte 0b1110110000000111100100000010001100010100110011001001100100\n" // Mudkip
- ".8byte 0b1110110000000111100100000010001110010100110011001001100100\n" // Marshtomp
- ".8byte 0b1110110000000111100100000011001110010100110111001001110101\n" // Swampert
- ".8byte 0b0010000001001111110000000010101100010100110000111000110000\n" // Poochyena
- ".8byte 0b0010100001001111110000000010101100010100110100111000110000\n" // Mightyena
- ".8byte 0b0010010100001111100000001010101101110100110011011000100100\n" // Zigzagoon
- ".8byte 0b0010110100001111100000001010101101110100110111011000110100\n" // Linoone
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wurmple
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Silcoon
- ".8byte 0b0001000000001111101000000010110100001111010100011000100000\n" // Beautifly
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Cascoon
- ".8byte 0b0001000000001111101000100010110100001101011100011000100000\n" // Dustox
- ".8byte 0b0001010000001111100000000010000100001101110011011101100100\n" // Lotad
- ".8byte 0b1111110000001111100000000011000100001101110011011101100100\n" // Lombre
- ".8byte 0b1111110000001111100000000011000100001101110111011101100101\n" // Ludicolo
- ".8byte 0b0011000000000111100000000010101100001101010000011100100000\n" // Seedot
- ".8byte 0b0011100100001111110100000011101100001101010100011100100000\n" // Nuzleaf
- ".8byte 0b0011100100001111111100000011101100001101010100011100100000\n" // Shiftry
- ".8byte 0b0001000100000011101001000010101100001101010000011000100000\n" // Nincada
- ".8byte 0b0001000100001111101001000010101100001101010100011000100000\n" // Ninjask
- ".8byte 0b0001000100001011101001000010101100001101010100011000100000\n" // Shedinja
- ".8byte 0b0000001000011111101000000010000100000100110000011000100000\n" // Taillow
- ".8byte 0b0000001000011111101000000010000100000100110100011000100000\n" // Swellow
- ".8byte 0b0001000001000111100000100010000100001111010000011100100000\n" // Shroomish
- ".8byte 0b0011100101000111100000100011000100011111010100011110100001\n" // Breloom
- ".8byte 0b0011100001101111100100001011111100000110110000011000101101\n" // Spinda
- ".8byte 0b0000001000011111101000001010000100000100110011001001100100\n" // Wingull
- ".8byte 0b0000011000011111101000001010000100000100110111001001100100\n" // Pelipper
- ".8byte 0b0001000000001111100000000010100100001101110011011000100100\n" // Surskit
- ".8byte 0b0001000000001111101000000010100100001101110111011000100100\n" // Masquerain
- ".8byte 0b1110110000000111100100000010000110000100110011001001110100\n" // Wailmer
- ".8byte 0b1110110000000111100100000010000110000100110111001001110100\n" // Wailord
- ".8byte 0b0001000000000111100000001010101101111110110011011000101100\n" // Skitty
- ".8byte 0b0011100000000111100000001010101101111110110111011000101100\n" // Delcatty
- ".8byte 0b0011100101101111101110011011101101111100110011011000100101\n" // Kecleon
- ".8byte 0b0001000000100011100101000110111110001100111001011000100000\n" // Baltoy
- ".8byte 0b0011100000100011100101000110111110001100111101011000100000\n" // Claydol
- ".8byte 0b0010100000000111110101001010000111100100010000111000100000\n" // Nosepass
- ".8byte 0b0010100010000111100010110010000100010100010000011000100000\n" // Torkoal
- ".8byte 0b0011000101001111111100001011111100000100110000111000101101\n" // Sableye
- ".8byte 0b1100010000000111100101000010000110000100110011001001100100\n" // Barboach
- ".8byte 0b1110110000000111100101000010000110000100110111001001100100\n" // Whiscash
- ".8byte 0b1100010000000111100000000010000100000110110011001001100100\n" // Luvdisc
- ".8byte 0b0110110100000111101100100011001100000100110011101001100100\n" // Corphish
- ".8byte 0b1110110100000111101100100011001100000100110111101001100100\n" // Crawdaunt
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Feebas
- ".8byte 0b1100010000000111100000000010000100010110110111001001100100\n" // Milotic
- ".8byte 0b1100010000001111110000000010000100000100110011101001100100\n" // Carvanha
- ".8byte 0b1110110000001111110100000010000110000100110111101001110100\n" // Sharpedo
- ".8byte 0b0010100000000111100101000010001110001101010100011000100000\n" // Trapinch
- ".8byte 0b0010101000010111100101000010001110001101010100011000100000\n" // Vibrava
- ".8byte 0b0010101000010111100111010010001110011101010100011000100010\n" // Flygon
- ".8byte 0b0010110000000111100100000011001110000100110000011010100001\n" // Makuhita
- ".8byte 0b0010110000000111100100000011001110000100110100011010100001\n" // Hariyama
- ".8byte 0b0001100000001111100000001010000101110100110000001000110000\n" // Electrike
- ".8byte 0b0001100000001111100000001010000101110100110100001000110000\n" // Manectric
- ".8byte 0b0010100010000111100111010010001110000100010000011000100000\n" // Numel
- ".8byte 0b0010100010000111100111010010001110000100010100011000110000\n" // Camerupt
- ".8byte 0b1110110000000111100100000010000110010100110011001001100100\n" // Spheal
- ".8byte 0b1110110000000111100100000010000110010100110011001001110100\n" // Sealeo
- ".8byte 0b1110110000000111100100000010000110010100110111001001110100\n" // Walrein
- ".8byte 0b0001000100000111100001000010000100001101010000011100100001\n" // Cacnea
- ".8byte 0b0001100100000111100001000010000100001101010100011100100001\n" // Cacturne
- ".8byte 0b0001000000000111100000000010100100000110111011001001100100\n" // Snorunt
- ".8byte 0b0001000000000111110000000010100110000110111111101001100100\n" // Glalie
- ".8byte 0b0001000000100011100101000110110110000110111101001000101000\n" // Lunatone
- ".8byte 0b0001000010100011100111010110110110001110011100011000101000\n" // Solrock
- ".8byte 0b0100010000000111100000000010000100010100110011001001100100\n" // Azurill
- ".8byte 0b0001000001101111110000001110110100010100111000111000101000\n" // Spoink
- ".8byte 0b0001000001101111110000001110110100010100111100111000101001\n" // Grumpig
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Plusle
- ".8byte 0b0001000000000111100000001010000101110100111000001000100000\n" // Minun
- ".8byte 0b0010100000000111110111110011000100001100110101111000100001\n" // Mawile
- ".8byte 0b0011100000000111100100000111110100000100111000011010101001\n" // Meditite
- ".8byte 0b0011100000000111100100000111110100000100111100011010101001\n" // Medicham
- ".8byte 0b0000001000011111101000000010000100001110110001011000100000\n" // Swablu
- ".8byte 0b0010001000011111101010010010000110011110110101011000110010\n" // Altaria
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Wynaut
- ".8byte 0b0001000001101111110000000010110100000100110011111000101000\n" // Duskull
- ".8byte 0b0011100001101111110100000010110110000100110111111000101001\n" // Dusclops
- ".8byte 0b0001000100000111100000100010100100001101010000011100100000\n" // Roselia
- ".8byte 0b0010100100000111101010011011100101101100110011011010100101\n" // Slakoth
- ".8byte 0b0010100100000111101010011011100111101100110011111010110101\n" // Vigoroth
- ".8byte 0b0010100100000111101010011011100111101100110111111010110101\n" // Slaking
- ".8byte 0b0010100001000111100000101010100100001101110001011100100100\n" // Gulpin
- ".8byte 0b0010100001000111100000101010100100001101110101011100100100\n" // Swalot
- ".8byte 0b0011101100010111101000000010000110001111010100011100110000\n" // Tropius
- ".8byte 0b0000000000000111100010011010100100001100110011011000110100\n" // Whismur
- ".8byte 0b0010100010000111110010011011100110001100110011111000110100\n" // Loudred
- ".8byte 0b0010100010000111110010011011100110001100110111111000110100\n" // Exploud
- ".8byte 0b1100010000000111100000000010000100000100110011001001100100\n" // Clamperl
- ".8byte 0b1100010001000111100100000010000100000100110111001001100100\n" // Huntail
- ".8byte 0b1100010000000111100000000010110100000110110111001001100100\n" // Gorebyss
- ".8byte 0b0011100101001111111011011010100101110100110111111001101100\n" // Absol
- ".8byte 0b0001000001101111110000001010110101100100110000111000101000\n" // Shuppet
- ".8byte 0b0001000001101111110000001010110101100100110100111000101000\n" // Banette
- ".8byte 0b0010100001001111100000110010001110010101110000111000100000\n" // Seviper
- ".8byte 0b0010100000001111101010011011101101111101110011111000110101\n" // Zangoose
- ".8byte 0b1110010000000111100101000010000110000110110111001001101100\n" // Relicanth
- ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Aron
- ".8byte 0b0010100100000111101101001010001110010100110000011000110100\n" // Lairon
- ".8byte 0b0010110100000111101111011011001111111100110111111000110111\n" // Aggron
- ".8byte 0b0001000000001111100011011010100101101100110011011001100100\n" // Castform
- ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Volbeat
- ".8byte 0b0001000000001111101000001011100101101101111000011000100101\n" // Illumise
- ".8byte 0b0000000000000111100001100010000100001101010000011100100000\n" // Lileep
- ".8byte 0b0010100000000111100101100010000110001101010100011100100000\n" // Cradily
- ".8byte 0b0010000100000111101101000011001100000100010000011000100100\n" // Anorith
- ".8byte 0b0010100100000111101101000011001110010100010100011000100100\n" // Armaldo
- ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Ralts
- ".8byte 0b0001000001101111110000001110110100100110111000111000101000\n" // Kirlia
- ".8byte 0b0001000001101111110000001110110100100110111100111000101000\n" // Gardevoir
- ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Bagon
- ".8byte 0b0010100100000111101110010011000100000100110000011000110010\n" // Shelgon
- ".8byte 0b0010101100010111101110010011000110010100110100011000110010\n" // Salamence
- ".8byte 0b0000000000000000000000000000000000000000000000000000000000\n" // Beldum
- ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metang
- ".8byte 0b0011100100000011101101100111110110000100111100011000100000\n" // Metagross
- ".8byte 0b0010100000000011100101001011001111100110010100011000100001\n" // Regirock
- ".8byte 0b0010100000000011100000001011000111100110110111001001100001\n" // Regice
- ".8byte 0b0010100000000011101101001011000111100110110100011000100001\n" // Registeel
- ".8byte 0b1110110000000011100100001011000111100110110111001001111100\n" // Kyogre
- ".8byte 0b0010100110000011101111011011001111111110010100011010110010\n" // Groudon
- ".8byte 0b1110111010000011101011011011000111111100110111011010110110\n" // Rayquaza
- ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latias
- ".8byte 0b1101011100010111101001001110110111101110111101011000111110\n" // Latios
- ".8byte 0b0001000000100011101001001110110101100110111100011000101100\n" // Jirachi
- ".8byte 0b0011100101100011111100001111110101101110111101111000101101\n" // Deoxys
- ".8byte 0b0001000001100111110000001110110100000110111000111000101000\n" // Chimecho
-);
-
-#endif //POKERUBY_TMHM_LEARNSETS_H
+#ifndef GUARD_TMHM_LEARNSETS_H
+#define GUARD_TMHM_LEARNSETS_H
+
+#define TMHM_LEARNSET(moves) {(u32)(moves), ((u64)(moves) >> 32)}
+#define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH))
+
+// This table determines which TMs and HMs a species is capable of learning.
+// Each entry is a 64-bit bit array spread across two 32-bit values, with
+// each bit corresponding to a .
+const u32 gTMHMLearnsets[][2] =
+{
+ [SPECIES_NONE] = TMHM_LEARNSET(0),
+
+ [SPECIES_BULBASAUR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_IVYSAUR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VENUSAUR] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHARMANDER] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHARMELEON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHARIZARD] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SQUIRTLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WARTORTLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_BLASTOISE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CATERPIE] = TMHM_LEARNSET(0),
+
+ [SPECIES_METAPOD] = TMHM_LEARNSET(0),
+
+ [SPECIES_BUTTERFREE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WEEDLE] = TMHM_LEARNSET(0),
+
+ [SPECIES_KAKUNA] = TMHM_LEARNSET(0),
+
+ [SPECIES_BEEDRILL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PIDGEY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_PIDGEOTTO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_PIDGEOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_RATTATA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RATICATE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SPEAROW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_FEAROW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_EKANS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_ARBOK] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_PIKACHU] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RAICHU] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SANDSHREW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SANDSLASH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORAN_F] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORINA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDOQUEEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORAN_M] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDORINO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NIDOKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CLEFAIRY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CLEFABLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VULPIX] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)),
+
+ [SPECIES_NINETALES] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)),
+
+ [SPECIES_JIGGLYPUFF] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WIGGLYTUFF] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ZUBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_GOLBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_ODDISH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GLOOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VILEPLUME] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PARAS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PARASECT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VENONAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VENOMOTH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DIGLETT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DUGTRIO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEOWTH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PERSIAN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PSYDUCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GOLDUCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MANKEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PRIMEAPE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GROWLITHE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ARCANINE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_POLIWAG] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_POLIWHIRL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_POLIWRATH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ABRA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_KADABRA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ALAKAZAM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MACHOP] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MACHOKE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MACHAMP] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BELLSPROUT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WEEPINBELL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VICTREEBEL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_TENTACOOL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_TENTACRUEL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GEODUDE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GRAVELER] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GOLEM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PONYTA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_RAPIDASH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_SLOWPOKE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SLOWBRO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MAGNEMITE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MAGNETON] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_FARFETCHD] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_DODUO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_DODRIO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SEEL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_DEWGONG] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GRIMER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)),
+
+ [SPECIES_MUK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHELLDER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CLOYSTER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GASTLY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_HAUNTER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)),
+
+ [SPECIES_GENGAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ONIX] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DROWZEE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_HYPNO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_KRABBY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_KINGLER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_VOLTORB] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ELECTRODE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_EXEGGCUTE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_EXEGGUTOR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CUBONE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAROWAK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HITMONLEE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HITMONCHAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LICKITUNG] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KOFFING] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WEEZING] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_RHYHORN] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RHYDON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHANSEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TANGELA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KANGASKHAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HORSEA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEADRA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GOLDEEN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEAKING] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_STARYU] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_STARMIE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MR_MIME] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SCYTHER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_JYNX] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ELECTABUZZ] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGMAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PINSIR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TAUROS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGIKARP] = TMHM_LEARNSET(0),
+
+ [SPECIES_GYARADOS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LAPRAS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_DITTO] = TMHM_LEARNSET(0),
+
+ [SPECIES_EEVEE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)),
+
+ [SPECIES_VAPOREON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_JOLTEON] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_FLAREON] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)),
+
+ [SPECIES_PORYGON] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_OMANYTE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_OMASTAR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_KABUTO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_KABUTOPS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_AERODACTYL] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SNORLAX] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)),
+
+ [SPECIES_ARTICUNO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ZAPDOS] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MOLTRES] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DRATINI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_DRAGONAIR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_DRAGONITE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MEWTWO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CHIKORITA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BAYLEEF] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEGANIUM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CYNDAQUIL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)),
+
+ [SPECIES_QUILAVA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TYPHLOSION] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TOTODILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CROCONAW] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_FERALIGATR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SENTRET] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)),
+
+ [SPECIES_FURRET] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HOOTHOOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_NOCTOWL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LEDYBA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LEDIAN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SPINARAK] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ARIADOS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CROBAT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_CHINCHOU] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LANTURN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_PICHU] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CLEFFA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_IGGLYBUFF] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_TOGEPI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TOGETIC] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NATU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_XATU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM02_FLY)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MAREEP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_FLAAFFY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_AMPHAROS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BELLOSSOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MARILL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_AZUMARILL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SUDOWOODO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_POLITOED] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_HOPPIP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SKIPLOOM] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_JUMPLUFF] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_AIPOM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SUNKERN] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SUNFLORA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_YANMA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WOOPER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_QUAGSIRE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ESPEON] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_UMBREON] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MURKROW] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SLOWKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MISDREAVUS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_UNOWN] = TMHM_LEARNSET(0),
+
+ [SPECIES_WOBBUFFET] = TMHM_LEARNSET(0),
+
+ [SPECIES_GIRAFARIG] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PINECO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_FORRETRESS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DUNSPARCE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GLIGAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_STEELIX] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SNUBBULL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GRANBULL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_QWILFISH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SCIZOR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHUCKLE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HERACROSS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SNEASEL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TEDDIURSA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_URSARING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SLUGMA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGCARGO] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SWINUB] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PILOSWINE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CORSOLA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REMORAID] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_OCTILLERY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_DELIBIRD] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_MANTINE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SKARMORY] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HOUNDOUR] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HOUNDOOM] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KINGDRA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_PHANPY] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_DONPHAN] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PORYGON2] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_STANTLER] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SMEARGLE] = TMHM_LEARNSET(0),
+
+ [SPECIES_TYROGUE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HITMONTOP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SMOOCHUM] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ELEKID] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAGBY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MILTANK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BLISSEY] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RAIKOU] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ENTEI] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SUICUNE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LARVITAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_PUPITAR] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TYRANITAR] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LUGIA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_HO_OH] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CELEBI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_OLD_UNOWN_B] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_C] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_D] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_E] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_F] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_G] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_H] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_I] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_J] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_K] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_L] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_M] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_N] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_O] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_P] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_Q] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_R] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_S] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_T] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_U] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_V] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_W] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_X] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_Y] = TMHM_LEARNSET(0),
+
+ [SPECIES_OLD_UNOWN_Z] = TMHM_LEARNSET(0),
+
+ [SPECIES_TREECKO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GROVYLE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SCEPTILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TORCHIC] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_COMBUSKEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BLAZIKEN] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MUDKIP] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MARSHTOMP] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SWAMPERT] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_POOCHYENA] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MIGHTYENA] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ZIGZAGOON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LINOONE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WURMPLE] = TMHM_LEARNSET(0),
+
+ [SPECIES_SILCOON] = TMHM_LEARNSET(0),
+
+ [SPECIES_BEAUTIFLY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CASCOON] = TMHM_LEARNSET(0),
+
+ [SPECIES_DUSTOX] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LOTAD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LOMBRE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LUDICOLO] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEEDOT] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NUZLEAF] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHIFTRY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NINCADA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_NINJASK] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SHEDINJA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_TAILLOW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SWELLOW] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_SHROOMISH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BRELOOM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SPINDA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WINGULL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_PELIPPER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)),
+
+ [SPECIES_SURSKIT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MASQUERAIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_WAILMER] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WAILORD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SKITTY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DELCATTY] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KECLEON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BALTOY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CLAYDOL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_NOSEPASS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TORKOAL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SABLEYE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BARBOACH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WHISCASH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LUVDISC] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CORPHISH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_CRAWDAUNT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_FEEBAS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_MILOTIC] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CARVANHA] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SHARPEDO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_TRAPINCH] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VIBRAVA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_FLYGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MAKUHITA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_HARIYAMA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ELECTRIKE] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MANECTRIC] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_NUMEL] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CAMERUPT] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SPHEAL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_SEALEO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_WALREIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_CACNEA] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_CACTURNE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SNORUNT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GLALIE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LUNATONE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SOLROCK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_AZURILL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)),
+
+ [SPECIES_SPOINK] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GRUMPIG] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_PLUSLE] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MINUN] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_MAWILE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEDITITE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_MEDICHAM] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SWABLU] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)),
+
+ [SPECIES_ALTARIA] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM02_FLY)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WYNAUT] = TMHM_LEARNSET(0),
+
+ [SPECIES_DUSKULL] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DUSCLOPS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ROSELIA] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SLAKOTH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_VIGOROTH] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SLAKING] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_GULPIN] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SWALOT] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_TROPIUS] = TMHM_LEARNSET(TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_WHISMUR] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)),
+
+ [SPECIES_LOUDRED] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_EXPLOUD] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CLAMPERL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_HUNTAIL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GOREBYSS] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ABSOL] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHUPPET] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BANETTE] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_SEVIPER] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ZANGOOSE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RELICANTH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_ARON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_LAIRON] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_AGGRON] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CASTFORM] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_VOLBEAT] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_ILLUMISE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_LILEEP] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)),
+
+ [SPECIES_CRADILY] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM09_BULLET_SEED)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM19_GIGA_DRAIN)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ANORITH] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_ARMALDO] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RALTS] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_KIRLIA] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_GARDEVOIR] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM46_THIEF)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_BAGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SHELGON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_SALAMENCE] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_BELDUM] = TMHM_LEARNSET(0),
+
+ [SPECIES_METANG] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_METAGROSS] = TMHM_LEARNSET(TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM36_SLUDGE_BOMB)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REGIROCK] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REGICE] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_REGISTEEL] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_KYOGRE] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM07_HAIL)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_GROUDON] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM28_DIG)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_RAYQUAZA] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM08_BULK_UP)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM14_BLIZZARD)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM23_IRON_TAIL)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM35_FLAMETHROWER)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM38_FIRE_BLAST)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM50_OVERHEAT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM06_ROCK_SMASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LATIAS] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_LATIOS] = TMHM_LEARNSET(TMHM(TM02_DRAGON_CLAW)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM05_ROAR)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM26_EARTHQUAKE)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM47_STEEL_WING)
+ | TMHM(HM01_CUT)
+ | TMHM(HM02_FLY)
+ | TMHM(HM03_SURF)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM07_WATERFALL)
+ | TMHM(HM08_DIVE)),
+
+ [SPECIES_JIRACHI] = TMHM_LEARNSET(TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM37_SANDSTORM)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(HM05_FLASH)),
+
+ [SPECIES_DEOXYS] = TMHM_LEARNSET(TMHM(TM01_FOCUS_PUNCH)
+ | TMHM(TM03_WATER_PULSE)
+ | TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM13_ICE_BEAM)
+ | TMHM(TM15_HYPER_BEAM)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM22_SOLARBEAM)
+ | TMHM(TM24_THUNDERBOLT)
+ | TMHM(TM25_THUNDER)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM31_BRICK_BREAK)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM39_ROCK_TOMB)
+ | TMHM(TM40_AERIAL_ACE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM01_CUT)
+ | TMHM(HM04_STRENGTH)
+ | TMHM(HM05_FLASH)
+ | TMHM(HM06_ROCK_SMASH)),
+
+ [SPECIES_CHIMECHO] = TMHM_LEARNSET(TMHM(TM04_CALM_MIND)
+ | TMHM(TM06_TOXIC)
+ | TMHM(TM10_HIDDEN_POWER)
+ | TMHM(TM11_SUNNY_DAY)
+ | TMHM(TM12_TAUNT)
+ | TMHM(TM16_LIGHT_SCREEN)
+ | TMHM(TM17_PROTECT)
+ | TMHM(TM18_RAIN_DANCE)
+ | TMHM(TM20_SAFEGUARD)
+ | TMHM(TM21_FRUSTRATION)
+ | TMHM(TM27_RETURN)
+ | TMHM(TM29_PSYCHIC)
+ | TMHM(TM30_SHADOW_BALL)
+ | TMHM(TM32_DOUBLE_TEAM)
+ | TMHM(TM33_REFLECT)
+ | TMHM(TM34_SHOCK_WAVE)
+ | TMHM(TM41_TORMENT)
+ | TMHM(TM42_FACADE)
+ | TMHM(TM43_SECRET_POWER)
+ | TMHM(TM44_REST)
+ | TMHM(TM45_ATTRACT)
+ | TMHM(TM48_SKILL_SWAP)
+ | TMHM(TM49_SNATCH)
+ | TMHM(HM05_FLASH)),
+
+};
+
+#endif // GUARD_TMHM_LEARNSETS_H
diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h
index c86e795c4..9cffca632 100644
--- a/src/data/pokemon/trainer_class_lookups.h
+++ b/src/data/pokemon/trainer_class_lookups.h
@@ -1,7 +1,3 @@
-//
-
-//
-
#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H
#define POKERUBY_TRAINER_CLASS_LOOKUPS_H
@@ -86,83 +82,83 @@ const u8 gTrainerClassToPicIndex[] = {
};
const u8 gTrainerClassToNameIndex[] = {
- TRAINER_CLASS_NAME_AQUA_LEADER, // AQUA_LEADER
- TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_M
- TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_F
- TRAINER_CLASS_NAME_AROMA_LADY, // AROMA_LADY
- TRAINER_CLASS_NAME_RUIN_MANIAC, // RUIN_MANIAC
- TRAINER_CLASS_NAME_INTERVIEWER, // INTERVIEWER
- TRAINER_CLASS_NAME_TUBER_F, // TUBER_F
- TRAINER_CLASS_NAME_TUBER_M, // TUBER_M
- TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_M
- TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_F
- TRAINER_CLASS_NAME_HEX_MANIAC, // HEX_MANIAC
- TRAINER_CLASS_NAME_LADY, // LADY
- TRAINER_CLASS_NAME_BEAUTY, // BEAUTY
- TRAINER_CLASS_NAME_RICH_BOY, // RICH_BOY
- TRAINER_CLASS_NAME_POKEMANIAC, // POKEMANIAC
- TRAINER_CLASS_NAME_SWIMMER_M, // SWIMMER_M
- TRAINER_CLASS_NAME_BLACK_BELT, // BLACK_BELT
- TRAINER_CLASS_NAME_GUITARIST, // GUITARIST
- TRAINER_CLASS_NAME_KINDLER, // KINDLER
- TRAINER_CLASS_NAME_CAMPER, // CAMPER
- TRAINER_CLASS_NAME_BUG_MANIAC, // BUG_MANIAC
- TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_M
- TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_F
- TRAINER_CLASS_NAME_GENTLEMAN, // GENTLEMAN
- TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_M
- TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_F
- TRAINER_CLASS_NAME_LEADER, // LEADER_F
- TRAINER_CLASS_NAME_LEADER, // LEADER_M
- TRAINER_CLASS_NAME_LEADER, // LEADER_MF
- TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_M
- TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_F
- TRAINER_CLASS_NAME_SR_AND_JR, // SR_AND_JR
- TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_M
- TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_F
- TRAINER_CLASS_NAME_EXPERT, // EXPERT_M
- TRAINER_CLASS_NAME_EXPERT, // EXPERT_F
- TRAINER_CLASS_NAME_YOUNGSTER, // YOUNGSTER
- TRAINER_CLASS_NAME_CHAMPION, // CHAMPION
- TRAINER_CLASS_NAME_FISHERMAN, // FISHERMAN
- TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_F
- TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_F
- TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_M
- TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_F
- TRAINER_CLASS_NAME_DRAGON_TAMER, // DRAGON_TAMER
- TRAINER_CLASS_NAME_BIRD_KEEPER, // BIRD_KEEPER
- TRAINER_CLASS_NAME_NINJA_BOY, // NINJA_BOY
- TRAINER_CLASS_NAME_BATTLE_GIRL, // BATTLE_GIRL
- TRAINER_CLASS_NAME_PARASOL_LADY, // PARASOL_LADY
- TRAINER_CLASS_NAME_SWIMMER_F, // SWIMMER_F
- TRAINER_CLASS_NAME_PICNICKER, // PICNICKER
- TRAINER_CLASS_NAME_TWINS, // TWINS
- TRAINER_CLASS_NAME_SAILOR, // SAILOR
- TRAINER_CLASS_NAME_BOARDER, // BOARDER_1
- TRAINER_CLASS_NAME_BOARDER, // BOARDER_2
- TRAINER_CLASS_NAME_COLLECTOR, // COLLECTOR
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // WALLY
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_1
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_2
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_3
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_1
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_2
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_3
- TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_M
- TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_F
- TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_M
- TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_F
- TRAINER_CLASS_NAME_MAGMA_LEADER, // MAGMA_LEADER
- TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_M
- TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_F
- TRAINER_CLASS_NAME_LASS, // LASS
- TRAINER_CLASS_NAME_BUG_CATCHER, // BUG_CATCHER
- TRAINER_CLASS_NAME_HIKER, // HIKER
- TRAINER_CLASS_NAME_YOUNG_COUPLE, // YOUNG_COUPLE
- TRAINER_CLASS_NAME_OLD_COUPLE, // OLD_COUPLE
- TRAINER_CLASS_NAME_SIS_AND_BRO // SIS_AND_BRO
+ TRAINER_CLASS_AQUA_LEADER, // AQUA_LEADER
+ TRAINER_CLASS_TEAM_AQUA, // TEAM_AQUA_M
+ TRAINER_CLASS_TEAM_AQUA, // TEAM_AQUA_F
+ TRAINER_CLASS_AROMA_LADY, // AROMA_LADY
+ TRAINER_CLASS_RUIN_MANIAC, // RUIN_MANIAC
+ TRAINER_CLASS_INTERVIEWER, // INTERVIEWER
+ TRAINER_CLASS_TUBER_F, // TUBER_F
+ TRAINER_CLASS_TUBER_M, // TUBER_M
+ TRAINER_CLASS_COOL_TRAINER, // COOL_TRAINER_M
+ TRAINER_CLASS_COOL_TRAINER, // COOL_TRAINER_F
+ TRAINER_CLASS_HEX_MANIAC, // HEX_MANIAC
+ TRAINER_CLASS_LADY, // LADY
+ TRAINER_CLASS_BEAUTY, // BEAUTY
+ TRAINER_CLASS_RICH_BOY, // RICH_BOY
+ TRAINER_CLASS_POKEMANIAC, // POKEMANIAC
+ TRAINER_CLASS_SWIMMER_M, // SWIMMER_M
+ TRAINER_CLASS_BLACK_BELT, // BLACK_BELT
+ TRAINER_CLASS_GUITARIST, // GUITARIST
+ TRAINER_CLASS_KINDLER, // KINDLER
+ TRAINER_CLASS_CAMPER, // CAMPER
+ TRAINER_CLASS_BUG_MANIAC, // BUG_MANIAC
+ TRAINER_CLASS_PSYCHIC, // PSYCHIC_M
+ TRAINER_CLASS_PSYCHIC, // PSYCHIC_F
+ TRAINER_CLASS_GENTLEMAN, // GENTLEMAN
+ TRAINER_CLASS_ELITE_FOUR, // ELITE_FOUR_M
+ TRAINER_CLASS_ELITE_FOUR, // ELITE_FOUR_F
+ TRAINER_CLASS_LEADER, // LEADER_F
+ TRAINER_CLASS_LEADER, // LEADER_M
+ TRAINER_CLASS_LEADER, // LEADER_MF
+ TRAINER_CLASS_SCHOOL_KID, // SCHOOL_KID_M
+ TRAINER_CLASS_SCHOOL_KID, // SCHOOL_KID_F
+ TRAINER_CLASS_SR_AND_JR, // SR_AND_JR
+ TRAINER_CLASS_POKEFAN, // POKEFAN_M
+ TRAINER_CLASS_POKEFAN, // POKEFAN_F
+ TRAINER_CLASS_EXPERT, // EXPERT_M
+ TRAINER_CLASS_EXPERT, // EXPERT_F
+ TRAINER_CLASS_YOUNGSTER, // YOUNGSTER
+ TRAINER_CLASS_CHAMPION, // CHAMPION
+ TRAINER_CLASS_FISHERMAN, // FISHERMAN
+ TRAINER_CLASS_TRIATHLETE, // CYCLING_TRIATHLETE_M
+ TRAINER_CLASS_TRIATHLETE, // CYCLING_TRIATHLETE_F
+ TRAINER_CLASS_TRIATHLETE, // RUNNING_TRIATHLETE_M
+ TRAINER_CLASS_TRIATHLETE, // RUNNING_TRIATHLETE_F
+ TRAINER_CLASS_TRIATHLETE, // SWIMMING_TRIATHLETE_M
+ TRAINER_CLASS_TRIATHLETE, // SWIMMING_TRIATHLETE_F
+ TRAINER_CLASS_DRAGON_TAMER, // DRAGON_TAMER
+ TRAINER_CLASS_BIRD_KEEPER, // BIRD_KEEPER
+ TRAINER_CLASS_NINJA_BOY, // NINJA_BOY
+ TRAINER_CLASS_BATTLE_GIRL, // BATTLE_GIRL
+ TRAINER_CLASS_PARASOL_LADY, // PARASOL_LADY
+ TRAINER_CLASS_SWIMMER_F, // SWIMMER_F
+ TRAINER_CLASS_PICNICKER, // PICNICKER
+ TRAINER_CLASS_TWINS, // TWINS
+ TRAINER_CLASS_SAILOR, // SAILOR
+ TRAINER_CLASS_BOARDER, // BOARDER_1
+ TRAINER_CLASS_BOARDER, // BOARDER_2
+ TRAINER_CLASS_COLLECTOR, // COLLECTOR
+ TRAINER_CLASS_POKEMON_TRAINER_3, // WALLY
+ TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_1
+ TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_2
+ TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_3
+ TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_1
+ TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_2
+ TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_3
+ TRAINER_CLASS_POKEMON_BREEDER, // POKEMON_BREEDER_M
+ TRAINER_CLASS_POKEMON_BREEDER, // POKEMON_BREEDER_F
+ TRAINER_CLASS_POKEMON_RANGER, // POKEMON_RANGER_M
+ TRAINER_CLASS_POKEMON_RANGER, // POKEMON_RANGER_F
+ TRAINER_CLASS_MAGMA_LEADER, // MAGMA_LEADER
+ TRAINER_CLASS_TEAM_MAGMA, // TEAM_MAGMA_M
+ TRAINER_CLASS_TEAM_MAGMA, // TEAM_MAGMA_F
+ TRAINER_CLASS_LASS, // LASS
+ TRAINER_CLASS_BUG_CATCHER, // BUG_CATCHER
+ TRAINER_CLASS_HIKER, // HIKER
+ TRAINER_CLASS_YOUNG_COUPLE, // YOUNG_COUPLE
+ TRAINER_CLASS_OLD_COUPLE, // OLD_COUPLE
+ TRAINER_CLASS_SIS_AND_BRO // SIS_AND_BRO
};
#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H
diff --git a/src/de_rom_8040FE0.c b/src/de_rom_8040FE0.c
index 53ad4a806..c93ef74cd 100644
--- a/src/de_rom_8040FE0.c
+++ b/src/de_rom_8040FE0.c
@@ -2,55 +2,34 @@
#include "battle.h"
#include "battle_tower.h"
#include "ewram.h"
+#include "trainer.h"
#if GERMAN
-enum {
- TRAINER_CLASS_NAME_LEADER = 25,
- TRAINER_CLASS_NAME_SCHOOL_KID = 26,
- TRAINER_CLASS_NAME_EXPERT = 30,
- TRAINER_CLASS_NAME_POKEMON_TRAINER_3 = 46,
-};
-
-enum {
- TRAINER_CLASS_LEADER_F = 26,
- TRAINER_CLASS_ELITE_FOUR_F = 25,
- TRAINER_CLASS_SCHOOL_KID_F = 30,
- TRAINER_CLASS_BIRD_KEEPER = 46,
- TRAINER_CLASS_MAY_1 = 61,
- TRAINER_CLASS_MAY_2 = 62,
- TRAINER_CLASS_MAY_3 = 63,
-};
-
extern u8 gTrainerClassNames[][13];
extern struct Trainer gTrainers[];
-u8 *de_sub_8040FE0(u8 gender) {
+u8 *de_sub_8040FE0(u8 gender)
+{
if (gender)
- {
gender++;
-
- }
-
- gender = TRAINER_CLASS_NAME_SCHOOL_KID;
+ gender = TRAINER_CLASS_SCHOOL_KID;
return gTrainerClassNames[gender];
}
-u8 *de_sub_8040FF4(u8 gender) {
- if (gender) {
+u8 *de_sub_8040FF4(u8 gender)
+{
+ if (gender)
gender++;
- }
-
- gender = TRAINER_CLASS_NAME_POKEMON_TRAINER_3;
+ gender = TRAINER_CLASS_POKEMON_TRAINER_3;
return gTrainerClassNames[gender];
}
-u8 *de_sub_804100C(u8 gender) {
- if (gender) {
+u8 *de_sub_804100C(u8 gender)
+{
+ if (gender)
gender++;
- }
-
- gender = TRAINER_CLASS_NAME_LEADER;
+ gender = TRAINER_CLASS_LEADER;
return gTrainerClassNames[gender];
}
@@ -60,7 +39,8 @@ u8 de_sub_81364AC(void);
u8 get_trainer_class_name_index(void);
u8 de_sub_81364F8(void);
-u8 *de_sub_8041024(s32 arg0, u32 arg1) {
+u8 *de_sub_8041024(s32 arg0, u32 arg1)
+{
u8 nameIndex, trainerClass, gender;
struct Trainer *trainer;
u8 local2;
@@ -70,69 +50,40 @@ u8 *de_sub_8041024(s32 arg0, u32 arg1) {
case 0x400:
nameIndex = GetSecretBaseTrainerNameIndex();
gender = eSecretBaseRecord.gender;
- if (nameIndex == TRAINER_CLASS_NAME_SCHOOL_KID)
- {
+ if (nameIndex == TRAINER_CLASS_SCHOOL_KID)
return de_sub_8040FE0(gender);
- }
-
return gTrainerClassNames[nameIndex];
-
case 0x100:
trainerClass = de_sub_81364AC();
nameIndex = get_trainer_class_name_index();
- if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F)
- {
+ if (trainerClass == FACILITY_CLASS_SCHOOL_KID_F)
return de_sub_8040FE0(FEMALE);
- }
- if (trainerClass == TRAINER_CLASS_MAY_1 || trainerClass == TRAINER_CLASS_MAY_2 || trainerClass == TRAINER_CLASS_MAY_3)
- {
+ if (trainerClass == FACILITY_CLASS_MAY_1 || trainerClass == FACILITY_CLASS_MAY_2 || trainerClass == FACILITY_CLASS_MAY_3)
return de_sub_8040FF4(FEMALE);
- }
-
return gTrainerClassNames[nameIndex];
-
case 0x800:
trainerClass = de_sub_81364F8();
nameIndex = GetEReaderTrainerClassNameIndex();
- if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F)
- {
+ if (trainerClass == FACILITY_CLASS_SCHOOL_KID_F)
return de_sub_8040FE0(FEMALE);
- }
- if (trainerClass == TRAINER_CLASS_MAY_1 || trainerClass == TRAINER_CLASS_MAY_2 || trainerClass == TRAINER_CLASS_MAY_3)
- {
+ if (trainerClass == FACILITY_CLASS_MAY_1 || trainerClass == FACILITY_CLASS_MAY_2 || trainerClass == FACILITY_CLASS_MAY_3)
return de_sub_8040FF4(FEMALE);
- }
-
return gTrainerClassNames[nameIndex];
-
default:
trainer = &gTrainers[arg1];
trainerClass = trainer->trainerClass;
local2 = sub_803FC58(arg1);
-
- if (trainerClass == TRAINER_CLASS_LEADER_F)
- {
+ if (trainerClass == FACILITY_CLASS_LEADER_F)
return de_sub_8040FE0(local2);
- }
-
- if (trainerClass == TRAINER_CLASS_BIRD_KEEPER && local2 == FEMALE)
- {
+ if (trainerClass == FACILITY_CLASS_BIRD_KEEPER && local2 == FEMALE)
return de_sub_8040FF4(FEMALE);
- }
-
- if (trainerClass == TRAINER_CLASS_ELITE_FOUR_F)
+ if (trainerClass == FACILITY_CLASS_ELITE_FOUR_F)
{
if (gTrainers[arg1].doubleBattle == TRUE)
- {
return de_sub_804100C(FEMALE);
- }
else
- {
return de_sub_804100C(MALE);
- }
}
-
-
return gTrainerClassNames[trainerClass];
}
}
@@ -264,7 +215,8 @@ _08041108: .4byte gTrainerClassNames\n\
}
#endif
-u32 de_sub_804110C(u32 arg0, u32 arg1) {
+u32 de_sub_804110C(u32 arg0, u32 arg1)
+{
return arg1;
}
diff --git a/src/debug/crash.c b/src/debug/crash.c
new file mode 100644
index 000000000..85058d285
--- /dev/null
+++ b/src/debug/crash.c
@@ -0,0 +1,55 @@
+#include "global.h"
+#include "main.h"
+#include "task.h"
+#include "text.h"
+#include "palette.h"
+
+extern struct Window gUnknown_03004210;
+
+static void CB2_CrashIdle(void);
+
+// unused exception handler. Takes a string input describing the exception
+// and halts on a black screen. Used in German Debug Ruby.
+void Crash(u8 *text)
+{
+ u16 savedIme;
+
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = savedIme;
+ REG_DISPSTAT = 8;
+ ResetTasks();
+ ResetSpriteData();
+ SetMainCallback2(CB2_CrashIdle);
+ DmaFill32Large(3, 0, (void *)VRAM, 0x18000, 0x1000);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6FD8);
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6FD8);
+ LoadFontDefaultPalette(&gWindowTemplate_81E6FD8);
+ Text_InitWindowAndPrintText(&gUnknown_03004210, text, 1, 9, 7);
+}
+
+static void CB2_CrashIdle(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+}
diff --git a/src/debug/kagaya_debug_menu.c b/src/debug/kagaya_debug_menu.c
new file mode 100644
index 000000000..3cb36ce0c
--- /dev/null
+++ b/src/debug/kagaya_debug_menu.c
@@ -0,0 +1,183 @@
+#if DEBUG
+
+#include "global.h"
+#include "field_effect.h"
+#include "field_control_avatar.h"
+#include "field_player_avatar.h"
+#include "main.h"
+#include "menu.h"
+#include "overworld.h"
+#include "palette.h"
+#include "random.h"
+#include "region_map.h"
+#include "script.h"
+#include "slot_machine.h"
+#include "trainer_card.h"
+
+extern u8 (*gMenuCallback)(void);
+
+void InitKagayaDebugMenu_B(void);
+u8 debug_sub_80B061C(void);
+u8 KagayaDebugMenu_TrainerCard(void);
+u8 debug_sub_80B068C(void);
+u8 KagayaDebugMenu_CardToExchange(void);
+u8 debug_sub_80B06E0(void);
+u8 KagayaDebugMenu_SlotMachine(void);
+u8 Kagaya_80B0734(void);
+u8 debug_sub_80B07DC(void);
+
+const u8 Str_83EBB34[] = _("Trainer’s card");
+const u8 Str_83EBB43[] = _("Card to exchange");
+const u8 Str_83EBB54[] = _("Slot machine");
+
+const struct MenuAction _83EBB64[] =
+{
+ { Str_83EBB34, KagayaDebugMenu_TrainerCard },
+ { Str_83EBB43, KagayaDebugMenu_CardToExchange },
+ { Str_83EBB54, KagayaDebugMenu_SlotMachine },
+};
+
+u8 InitKagayaDebugMenu_A(void)
+{
+ InitKagayaDebugMenu_B();
+ return 0;
+}
+
+void InitKagayaDebugMenu_B(void)
+{
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 14, 7);
+ Menu_PrintItems(2, 1, 3, _83EBB64);
+ InitMenu(0, 1, 1, 3, 0, 13);
+ gMenuCallback = debug_sub_80B061C;
+}
+
+u8 debug_sub_80B061C(void)
+{
+ s8 input = Menu_ProcessInput();
+
+ if (input == -2)
+ {
+ return 0;
+ }
+ else if (input == -1)
+ {
+ CloseMenu();
+ return 1;
+ }
+ else
+ {
+ gMenuCallback = _83EBB64[input].func;
+ return 0;
+ }
+}
+
+u8 KagayaDebugMenu_TrainerCard(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gMenuCallback = debug_sub_80B068C;
+ return 0;
+}
+
+u8 debug_sub_80B068C(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ debug_sub_80A0710(sub_805469C);
+ CloseMenu();
+ ScriptContext2_Enable();
+ return 1;
+ }
+ return 0;
+}
+
+u8 KagayaDebugMenu_CardToExchange(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gMenuCallback = debug_sub_80B06E0;
+ return 0;
+}
+
+u8 debug_sub_80B06E0(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ debug_sub_80A073C(sub_805469C);
+ CloseMenu();
+ ScriptContext2_Enable();
+ return 1;
+ }
+ return 0;
+}
+
+u8 KagayaDebugMenu_SlotMachine(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gMenuCallback = Kagaya_80B0734;
+ return 0;
+}
+
+u8 Kagaya_80B0734(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ debug_sub_811609C(Random() % 6, sub_805469C);
+ CloseMenu();
+ ScriptContext2_Enable();
+ return 1;
+ }
+ return 0;
+}
+
+u8 debug_sub_80B0770(void)
+{
+ if (!(gPlayerAvatar.flags & 8))
+ {
+ CloseMenu();
+ if (IsPlayerFacingSurfableFishableWater())
+ {
+ gFieldEffectArguments[0] = 0;
+ FieldEffectStart(9);
+ }
+ }
+ else
+ {
+ CloseMenu();
+ }
+ return 1;
+}
+
+u8 debug_sub_80B07B0(void)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gMenuCallback = debug_sub_80B07DC;
+ return 0;
+}
+
+u8 debug_sub_80B07DC(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ CloseMenu();
+ SetMainCallback2(CB2_InitFlyRegionMap);
+ return 1;
+ }
+ return 0;
+}
+
+u8 debug_sub_80B0800(void)
+{
+ u8 r2;
+
+ CloseMenu();
+ r2 = sub_8068F18();
+ if (r2 != 0)
+ {
+ gFieldEffectArguments[0] = 0;
+ gFieldEffectArguments[1] = r2 - 1;
+ FieldEffectStart(0x2C);
+ }
+ return 1;
+}
+
+#endif // DEBUG
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index bb80de6fe..efd952ef7 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -14,33 +14,24 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "ewram.h"
extern u8 gUnknown_0203856C;
-extern s16 gUnknown_02038670[];
-extern s16 gUnknown_02038678[];
-extern s16 gUnknown_02038680[];
-extern u8 gContestFinalStandings[];
extern u8 gUnknown_02038694;
-extern u8 gIsLinkContest;
-extern u8 gUnknown_0203869B;
-extern u8 gContestPlayerMonIndex;
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
-extern u16 gUnknown_030042A4;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
-extern u16 gUnknown_030041B0;
-extern u16 gUnknown_030041B8;
-extern struct Window gUnknown_03004210;
-extern u8 (*gCallback_03004AE8)(void);
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
-extern bool8 gReceivedRemoteLinkPlayers;
+extern u8 (*gMenuCallback)(void);
static bool8 sub_80A9B78(void);
static void sub_80A9BE4(u8 taskId);
@@ -247,24 +238,24 @@ static const struct OamData gUnknown_083C9400 =
u8 unref_sub_80A9B28(void)
{
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 0, 17, 18);
- PrintMenuItems(1, 1, 7, gMatsudaDebugMenuActions);
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 17, 18);
+ Menu_PrintItems(1, 1, 7, gMatsudaDebugMenuActions);
InitMenu(0, 1, 1, 7, 0, 16);
- gCallback_03004AE8 = sub_80A9B78;
+ gMenuCallback = sub_80A9B78;
return 0;
}
static bool8 sub_80A9B78(void)
{
- s8 choice = ProcessMenuInput();
+ s8 choice = Menu_ProcessInput();
switch (choice)
{
case -2:
return FALSE;
default:
- gCallback_03004AE8 = gMatsudaDebugMenuActions[choice].func;
+ gMenuCallback = gMatsudaDebugMenuActions[choice].func;
return FALSE;
case -1:
CloseMenu();
@@ -449,48 +440,32 @@ static void sub_80A9F50(void)
{
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP;
REG_DISPCNT |= DISPCNT_OBJ_ON | DISPCNT_BG0_ON;
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitWindowFromConfig(&gMenuWindow, &gWindowConfig_81E6C3C);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ Text_InitWindowWithTemplate(&gMenuWindow, &gWindowTemplate_81E6C3C);
REG_MOSAIC = 0;
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
}
static void sub_80A9FE4(void)
{
- u8 *addr;
- u32 i;
u8 ptr[5];
memcpy(ptr, gMatsudaDebugMenu_UnknownByteArray, 5);
-
- addr = (void *)VRAM;
- i = VRAM_SIZE;
-
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- i -= 0x1000;
- if (i <= 0x1000)
- {
- DmaFill32(3, 0, addr, i);
- break;
- }
- }
+ DmaFill32Large(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000);
sub_80034D4((void *)VRAM, ptr);
- LoadFontDefaultPalette(&gWindowConfig_81E6C3C);
+ LoadFontDefaultPalette(&gWindowTemplate_81E6C3C);
}
static void sub_80AA064(void)
@@ -505,18 +480,18 @@ static void sub_80AA064(void)
static void sub_80AA090(void)
{
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void sub_80AA10C(void)
@@ -528,7 +503,7 @@ static void sub_80AA10C(void)
gPaletteFade.bufferTransferDisabled = 1;
SetVBlankCallback(0);
sub_80A9F50();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetPaletteFade();
ResetSpriteData();
ResetTasks();
@@ -546,7 +521,7 @@ static void sub_80AA10C(void)
for (i = 0; i < 6; i++)
{
- sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i],
+ Text_InitWindowAndPrintText(&gMenuWindow, gMatsudaDebugMenuTextList1[i],
(0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0],
gMatsudaDebugMenuContestTopLeft[i][1]);
}
@@ -555,8 +530,8 @@ static void sub_80AA10C(void)
zero = 0; // it's possible this was some assignment that matsuda used to quickly edit and test things without changing whats passed to the later functions.
sub_80AA5BC(zero);
sub_80AA5E8(gSpecialVar_ContestRank);
- sub_8003460(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12);
- sub_8003460(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC);
+ Text_InitWindowAndPrintText(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12);
+ Text_InitWindowAndPrintText(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC);
LoadSpriteSheet(gUnknown_083C92B4);
LoadSpritePalette(gUnknown_083C92BC);
sub_80AA280(3);
@@ -573,71 +548,71 @@ void sub_80AA280(u8 var) // no?
{
u8 i;
- FillWindowRect_DefaultPalette(&gMenuWindow, 0, 0, 0, 0x1E, 3);
+ Text_FillWindowRectDefPalette(&gMenuWindow, 0, 0, 0, 0x1E, 3);
StringCopy(gSharedMem, gMatsudaDebugMenu_StartText);
StringAppend(gSharedMem, gContestMons[var].trainerName);
for (i = 0; i < 4; i++)
{
if (var == i)
- sub_8003460(&gMenuWindow, gSharedMem, 10 * i + 2, gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 10 * i + 2, gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
else
- sub_8003460(&gMenuWindow, gContestMons[i].trainerName, 10 * i + 2, gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gContestMons[i].trainerName, 10 * i + 2, gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
}
}
static void sub_80AA340(u8 var)
{
ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].cool, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0x66, gUnknown_083C9282[0], gUnknown_083C9282[1]);
}
static void sub_80AA388(u8 var)
{
ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].cute, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0x6C, gUnknown_083C9282[2], gUnknown_083C9282[3]);
}
static void sub_80AA3D0(u8 var)
{
ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].beauty, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0x72, gUnknown_083C9282[4], gUnknown_083C9282[5]);
}
static void sub_80AA418(u8 var)
{
ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].smart, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0x78, gUnknown_083C9282[6], gUnknown_083C9282[7]);
}
static void sub_80AA460(u8 var)
{
ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].tough, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0x7E, gUnknown_083C9282[8], gUnknown_083C9282[9]);
}
static void sub_80AA4A8(u8 var)
{
ConvertIntToDecimalStringN(gSharedMem, gContestMons[var].sheen, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0x84, gUnknown_083C9282[10], gUnknown_083C9282[11]);
}
static void sub_80AA4F0(u8 var1, u8 var2)
{
- FillWindowRect_DefaultPalette(&gMenuWindow, 0, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1], gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1] + 1);
- sub_8003460(&gMenuWindow, gMoveNames[gContestMons[var1].moves[var2]], 0x8A + var2 * 14, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1]);
+ Text_FillWindowRectDefPalette(&gMenuWindow, 0, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1], gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1] + 1);
+ Text_InitWindowAndPrintText(&gMenuWindow, gMoveNames[gContestMons[var1].moves[var2]], 0x8A + var2 * 14, gUnknown_083C928E[var2][0], gUnknown_083C928E[var2][1]);
ConvertIntToDecimalStringN(gStringVar1, gContestMons[var1].moves[var2], STR_CONV_MODE_LEADING_ZEROS, 3);
- sub_8003460(&gMenuWindow, gStringVar1, 0xFA + var2 * 6, gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1]);
+ Text_InitWindowAndPrintText(&gMenuWindow, gStringVar1, 0xFA + var2 * 6, gUnknown_083C928E[var2][0] + 7, gUnknown_083C928E[var2][1]);
}
static void sub_80AA5BC(u8 var)
{
- sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12);
+ Text_InitWindowAndPrintText(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12);
}
void sub_80AA5E8(u8 var)
{
- sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4);
+ Text_InitWindowAndPrintText(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4);
}
static void sub_80AA614(u8 var1, u8 var2)
@@ -645,7 +620,7 @@ static void sub_80AA614(u8 var1, u8 var2)
u16 var = sub_80AE770(var1, var2);
ConvertIntToDecimalStringN(gSharedMem, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, gSharedMem, 0xE2, 3, 0xC);
+ Text_InitWindowAndPrintText(&gMenuWindow, gSharedMem, 0xE2, 3, 0xC);
}
void sub_80AA658(u8 var)
@@ -1032,63 +1007,3 @@ u8 MatsudaDebugMenu_SetArtMuseumItems(void)
CloseMenu();
return 1;
}
-
-void unref_sub_80AB084(u8 *text)
-{
- u16 savedIme;
- u8 *addr;
- size_t size;
-
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG2HOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 0;
- REG_WIN0H = 0;
- REG_WIN0V = 0;
- REG_WIN1H = 0;
- REG_WIN1V = 0;
- REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
-
- savedIme = REG_IME;
- REG_IME = 0;
- REG_IE |= INTR_FLAG_VBLANK;
- REG_IME = savedIme;
- REG_DISPSTAT = 8;
- ResetTasks();
- ResetSpriteData();
- SetMainCallback2(sub_80AB184);
-
- addr = (void *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
- SetUpWindowConfig(&gWindowConfig_81E6FD8);
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6FD8);
- LoadFontDefaultPalette(&gWindowConfig_81E6FD8);
- sub_8003460(&gUnknown_03004210, text, 1, 9, 7);
-}
-
-void sub_80AB184(void)
-{
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG2HOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 0;
-}
diff --git a/src/debug/mori_debug_menu.c b/src/debug/mori_debug_menu.c
index 83dba8b73..767f4cda0 100644
--- a/src/debug/mori_debug_menu.c
+++ b/src/debug/mori_debug_menu.c
@@ -12,7 +12,7 @@
#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT)
-extern u8 (*gCallback_03004AE8)(void);
+extern u8 (*gMenuCallback)(void);
u8 gUnknown_03004DA0[0x20];
@@ -95,10 +95,10 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
StringAppend(localPtr, gUnknown_0839B24D);
StringAppend(localPtr, gSpeciesNames[eggSpecies]);
StringAppend(localPtr, gUnknown_0839B255);
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 14, 30, 19);
- MenuPrint(localPtr, 1, 15);
- gCallback_03004AE8 = sub_8083D4C;
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 14, 30, 19);
+ Menu_PrintText(localPtr, 1, 15);
+ gMenuCallback = sub_8083D4C;
return 0;
}
@@ -179,12 +179,12 @@ u8 MoriDebugMenu_PokeblockCase(void)
bool8 MoriDebugMenuProcessInput(void)
{
- s8 choice = ProcessMenuInput();
+ s8 choice = Menu_ProcessInput();
switch (choice)
{
default:
- gCallback_03004AE8 = gMoriDebugMenuActions[choice].func;
+ gMenuCallback = gMoriDebugMenuActions[choice].func;
return FALSE;
case -2:
return FALSE;
@@ -196,10 +196,10 @@ bool8 MoriDebugMenuProcessInput(void)
s8 InitMoriDebugMenu(void)
{
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 0, 10, 19);
- PrintMenuItems(1, 1, 9, gMoriDebugMenuActions);
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 10, 19);
+ Menu_PrintItems(1, 1, 9, gMoriDebugMenuActions);
InitMenu(0, 1, 1, 9, 0, 9);
- gCallback_03004AE8 = MoriDebugMenuProcessInput;
+ gMenuCallback = MoriDebugMenuProcessInput;
return 0;
}
diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c
new file mode 100644
index 000000000..550ac7bbd
--- /dev/null
+++ b/src/debug/nakamura_debug_menu.c
@@ -0,0 +1,189 @@
+#if DEBUG
+#include "global.h"
+#include "menu.h"
+
+EWRAM_DATA u8 _nakamuraData0 = 0;
+EWRAM_DATA u8 _nakamuraData1 = 0;
+EWRAM_DATA u8 _nakamuraData2 = 0;
+EWRAM_DATA u8 _nakamuraData3 = 0;
+EWRAM_DATA u8 _nakamuraData4 = 0;
+EWRAM_DATA u8 _nakamuraData5 = 0;
+EWRAM_DATA u16 _nakamuraData6 = 0;
+EWRAM_DATA u16 _nakamuraData8 = 0;
+EWRAM_DATA u16 _nakamuraDataA = 0;
+EWRAM_DATA u16 _nakamuraDataC = 0;
+
+__attribute__((unused)) static u8 _nakamuraStatic0[0x18];
+__attribute__((unused)) static u8 _nakamuraStatic18;
+__attribute__((unused)) static u8 gDebugFiller3000814[4];
+
+asm(".global _nakamuraStatic0");
+asm(".global _nakamuraStatic18");
+
+u8 debug_sub_815FC54();
+u8 debug_sub_815F2B4();
+u8 debug_sub_815FC94();
+u8 debug_sub_815FB1C();
+u8 debug_sub_815F2F4();
+u8 debug_sub_815F62C();
+u8 debug_sub_815FBE8();
+u8 debug_sub_815FE1C();
+u8 debug_sub_8160D98();
+
+const u8 Str_843E36C[] = _("Berries");
+const u8 Str_843E374[] = _("Goods");
+const u8 Str_843E37A[] = _("{PKMN} list");
+const u8 Str_843E382[] = _("トラップ");
+const u8 Str_843E387[] = _("Move your base");
+const u8 Str_843E396[] = _("Moving {PKMN}");
+const u8 Str_843E3A0[] = _("Fishing points");
+const u8 Str_843E3AF[] = _("Set {POKEBLOCK}");
+const u8 Str_843E3B9[] = _("Make bases(to max)");
+const u8 Str_843E3CC[] = _("Base location");
+
+const struct MenuAction _843E3DC[] = {
+ { Str_843E36C, debug_sub_815FC54 },
+ { Str_843E37A, debug_sub_815F2B4 },
+ { Str_843E374, debug_sub_815FC94 },
+ { Str_843E387, debug_sub_815FB1C },
+ { Str_843E3B9, debug_sub_815F2F4 },
+ { Str_843E3CC, debug_sub_815F62C },
+ { Str_843E396, debug_sub_815FBE8 },
+ { Str_843E3A0, debug_sub_815FE1C },
+ { Str_843E3AF, debug_sub_8160D98 },
+};
+
+const u8 _843E424[][4] = {
+ { 1, 118, 47, 14 },
+ { 2, 125, 53, 10 },
+ { 3, 113, 49, 8 },
+ { 0xB, 118, 67, 6 },
+ { 0xC, 121, 40, 11 },
+ { 0xD, 111, 35, 1 },
+ { 0x15, 115, 20, 53 },
+ { 0x16, 121, 18, 13 },
+ { 0x17, 119, 26, 81 },
+ { 0x1F, 127, 59, 67 },
+ { 0x20, 125, 55, 11 },
+ { 0x21, 111, 27, 27 },
+ { 0x29, 114, 9, 47 },
+ { 0x2A, 115, 32, 39 },
+ { 0x2B, 115, 23, 8 },
+ { 0x33, 114, 30, 51 },
+ { 0x34, 115, 26, 15 },
+ { 0x35, 115, 32, 46 },
+ { 0x3D, 114, 11, 62 },
+ { 0x3E, 115, 21, 18 },
+ { 0x3F, 115, 25, 24 },
+ { 0x47, 114, 19, 70 },
+ { 0x48, 115, 32, 6 },
+ { 0x49, 114, 32, 57 },
+ { 0x51, 116, 71, 4 },
+ { 0x52, 123, 47, 3 },
+ { 0x53, 123, 57, 5 },
+ { 0x5B, 116, 79, 11 },
+ { 0x5C, 123, 49, 3 },
+ { 0x5D, 120, 18, 12 },
+ { 0x65, 120, 28, 62 },
+ { 0x66, 116, 56, 6 },
+ { 0x67, 119, 16, 81 },
+ { 0x6F, 120, 30, 62 },
+ { 0x70, 116, 55, 15 },
+ { 0x71, 119, 16, 28 },
+ { 0x79, 111, 33, 34 },
+ { 0x7A, 118, 29, 5 },
+ { 0x7B, 127, 45, 24 },
+ { 0x83, 111, 24, 36 },
+ { 0x84, 125, 7, 25 },
+ { 0x85, 115, 8, 30 },
+ { 0x8D, 111, 34, 50 },
+ { 0x8E, 127, 59, 72 },
+ { 0x8F, 127, 61, 21 },
+ { 0x97, 127, 67, 63 },
+ { 0x98, 125, 24, 32 },
+ { 0x99, 111, 35, 31 },
+ { 0xA1, 111, 13, 19 },
+ { 0xA2, 121, 43, 7 },
+ { 0xA3, 118, 47, 5 },
+ { 0xA4, 111, 14, 19 },
+ { 0xAB, 118, 46, 5 },
+ { 0xAC, 121, 42, 7 },
+ { 0xAD, 119, 19, 76 },
+ { 0xAE, 115, 7, 20 },
+ { 0xB5, 110, 16, 25 },
+ { 0xB6, 114, 11, 27 },
+ { 0xB7, 115, 8, 20 },
+ { 0xBF, 110, 17, 25 },
+ { 0xC0, 114, 12, 27 },
+ { 0xC1, 119, 18, 76 },
+ { 0xC9, 119, 5, 2 },
+ { 0xCA, 119, 4, 89 },
+ { 0xCB, 120, 38, 54 },
+ { 0xCC, 120, 5, 76 },
+ { 0xD3, 119, 5, 15 },
+ { 0xD4, 119, 7, 101 },
+ { 0xD5, 120, 31, 23 },
+ { 0xDD, 119, 34, 24 },
+ { 0xDE, 120, 26, 10 },
+ { 0xDF, 119, 4, 15 },
+ { 0xE7, 119, 31, 73 },
+ { 0xE8, 120, 29, 85 },
+ { 0xE9, 119, 6, 2 },
+};
+
+const u8 Str_843E550[] = _("R");
+const u8 Str_843E552[] = _("X");
+const u8 Str_843E554[] = _("Y");
+const u8 Str_843E556[] = _(
+ "♂1\n"
+ "♂2\n"
+ "♂3\n"
+ "♂4\n"
+ "♂5\n"
+ "♀1\n"
+ "♀2\n"
+ "♀3\n"
+ "♀4\n"
+ "♀5");
+const u8 Str_843E574[] = _("ー");
+const u8 Str_843E576[] = _("あ");
+const u8 Str_843E578[] = _("ア");
+const u8 Str_843E57A[] = _("A");
+const u8 Str_843E57C[] = _("a");
+const u8 Str_843E57E[] = _("0");
+const u8 Str_843E580[] = _(
+ "ADD\n"
+ "DEL\n"
+ "EXIT");
+const u8 Str_843E58D[] = _(
+ "Fishing location R119\n"
+ " Y1\n"
+ " Y2\n"
+ " Y3\n"
+ "Encounter location\n"
+ "\n"
+ "\n"
+ "front of you");
+const u8 _843E5D1[] = {0x0F, 0x16, 0x19};
+const u8 Str_843E5D4[] = _(
+ "Aボタン {ESCAPE}\p"
+ "  Bボタン ー\n"
+ "START けってい");
+const u8 Str_843E5F0[] = _("?");
+const u8 Str_843E5F2[] = _("HP どりょくち");
+const u8 Str_843E5FB[] = _("こうげき どりょくち");
+const u8 Str_843E606[] = _("ぼうぎょ どりょくち");
+const u8 Str_843E611[] = _("すばやさ どりょくち");
+const u8 Str_843E61C[] = _("とくこう どりょくち");
+const u8 Str_843E627[] = _("とくぼう どりょくち");
+const u8 Str_843E632[] = _("なつきど");
+const u8 Str_843E637[] = _("どりょくち ごうけい");
+const u8 Str_843E642[] = _("ここから");
+const u8 Str_843E647[] = _("ここまで");
+const u8 Str_843E64C[] = _("かいすう");
+const u8 Str_843E651[] = _("けっか");
+const u8 Str_843E655[] = _("かい");
+const u8 Str_843E658[] = _("0");
+const u8 Str_843E65A[] = _("はんい");
+
+#endif // DEBUG
diff --git a/src/debug/nohara_debug_menu.c b/src/debug/nohara_debug_menu.c
new file mode 100644
index 000000000..b3885ff76
--- /dev/null
+++ b/src/debug/nohara_debug_menu.c
@@ -0,0 +1,12 @@
+#if DEBUG
+#include "global.h"
+
+__attribute__((unused)) static u8 gDebug_03000724;
+__attribute__((unused)) static u8 gDebug_03000725;
+__attribute__((unused)) static u8 gDebug_03000726;
+
+asm(".global gDebug_03000724");
+asm(".global gDebug_03000725");
+asm(".global gDebug_03000726");
+
+#endif
diff --git a/src/debug/sound_check_menu.c b/src/debug/sound_check_menu.c
index 968b047d9..05cbfc8f7 100644
--- a/src/debug/sound_check_menu.c
+++ b/src/debug/sound_check_menu.c
@@ -132,8 +132,8 @@ void CB2_StartSoundCheckMenu(void)
ResetPaletteFade();
ResetTasks();
ResetSpriteData();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
REG_WIN0H = WIN_RANGE(0, 0);
REG_WIN0V = WIN_RANGE(0, 0);
@@ -171,16 +171,16 @@ void Task_InitSoundCheckMenu(u8 taskId)
if (!gPaletteFade.active)
{
- MenuDrawTextWindow(2, 0, 27, 3);
- MenuDrawTextWindow(2, 5, 27, 10);
- MenuDrawTextWindow(2, 12, 27, 17);
- MenuPrint(soundcheckStr, 4, 1);
- MenuPrint(abDescStr, 14, 1);
- MenuPrint(bgmStr, 4, 6);
- MenuPrint(upDownStr, 14, 6);
- MenuPrint(seStr, 4, 13);
- MenuPrint(upDownStr, 14, 13);
- MenuPrint(driverStr, 14, 18);
+ Menu_DrawStdWindowFrame(2, 0, 27, 3);
+ Menu_DrawStdWindowFrame(2, 5, 27, 10);
+ Menu_DrawStdWindowFrame(2, 12, 27, 17);
+ Menu_PrintText(soundcheckStr, 4, 1);
+ Menu_PrintText(abDescStr, 14, 1);
+ Menu_PrintText(bgmStr, 4, 6);
+ Menu_PrintText(upDownStr, 14, 6);
+ Menu_PrintText(seStr, 4, 13);
+ Menu_PrintText(upDownStr, 14, 13);
+ Menu_PrintText(driverStr, 14, 18);
gTasks[taskId].func = sub_80BA384;
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(1, 31);
@@ -384,7 +384,7 @@ void PrintSoundNumber(u16 soundIndex, u16 x, u16 y) // PrintSoundNumber ?
str[1] = divisorValue + CHAR_0;
str[2] = ((soundIndex % 100) % 10) + CHAR_0;
- MenuPrint(str, x, y);
+ Menu_PrintText(str, x, y);
}
void sub_80BA79C(const u8 *const string, u16 x, u16 y)
@@ -400,7 +400,7 @@ void sub_80BA79C(const u8 *const string, u16 x, u16 y)
for (i = 0; string[i] != EOS && i < 10; i++)
str[i] = string[i];
- MenuPrint(str, x, y);
+ Menu_PrintText(str, x, y);
}
void Task_DrawDriverTestMenu(u8 taskId) // Task_DrawDriverTestMenu
@@ -421,21 +421,21 @@ void Task_DrawDriverTestMenu(u8 taskId) // Task_DrawDriverTestMenu
u8 stereoStr[] = _("すてれお‥‥‥‥"); // stereo
REG_DISPCNT = 0x3140;
- MenuDrawTextWindow(0, 0, 29, 19);
- MenuPrint(bbackStr, 19, 4);
- MenuPrint(aplayStr, 19, 2);
- MenuPrint(voiceStr, 2, 1);
- MenuPrint(volumeStr, 2, 3);
- MenuPrint(panpotStr, 2, 5);
- MenuPrint(pitchStr, 2, 7);
- MenuPrint(lengthStr, 2, 9);
- MenuPrint(releaseStr, 2, 11);
- MenuPrint(progressStr, 2, 13);
- MenuPrint(chorusStr, 2, 15);
- MenuPrint(priorityStr, 2, 17);
- MenuPrint(playingStr, 19, 16);
- MenuPrint(reverseStr, 19, 14);
- MenuPrint(stereoStr, 19, 12);
+ Menu_DrawStdWindowFrame(0, 0, 29, 19);
+ Menu_PrintText(bbackStr, 19, 4);
+ Menu_PrintText(aplayStr, 19, 2);
+ Menu_PrintText(voiceStr, 2, 1);
+ Menu_PrintText(volumeStr, 2, 3);
+ Menu_PrintText(panpotStr, 2, 5);
+ Menu_PrintText(pitchStr, 2, 7);
+ Menu_PrintText(lengthStr, 2, 9);
+ Menu_PrintText(releaseStr, 2, 11);
+ Menu_PrintText(progressStr, 2, 13);
+ Menu_PrintText(chorusStr, 2, 15);
+ Menu_PrintText(priorityStr, 2, 17);
+ Menu_PrintText(playingStr, 19, 16);
+ Menu_PrintText(reverseStr, 19, 14);
+ Menu_PrintText(stereoStr, 19, 12);
REG_WIN0H = WIN_RANGE(0, DISPLAY_WIDTH);
REG_WIN0V = WIN_RANGE(0, DISPLAY_HEIGHT);
sDriverTestSelection = 0;
@@ -465,7 +465,7 @@ void Task_ProcessDriverTestInput(u8 taskId)
REG_DISPCNT = 0x7140;
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(1, 31);
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gTasks[taskId].func = Task_InitSoundCheckMenu;
return;
}
@@ -627,8 +627,8 @@ void sub_80BAE10(u8 var1, u8 var2)
u8 str1[] = _("▶");
u8 str2[] = _(" ");
- MenuPrint(str2, gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 1)]);
- MenuPrint(str1, gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 1)]);
+ Menu_PrintText(str2, gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var1, B_16, 1)]);
+ Menu_PrintText(str1, gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 0)], gUnknown_083D0300[MULTI_DIM_ARR(var2, B_16, 1)]);
}
void PrintSignedNumber(int n, u16 x, u16 y, u8 digits)
@@ -677,7 +677,7 @@ void PrintSignedNumber(int n, u16 x, u16 y, u8 digits)
n %= powersOfTen[i];
}
- MenuPrint(str, x, y);
+ Menu_PrintText(str, x, y);
}
static const s8 gUnknown_083D03F8[5] = { 0x3F, 0x00, 0xC0, 0x7F, 0x80 };
@@ -689,10 +689,10 @@ void sub_80BAF84(u8 taskId)
u8 playingStr[] = _("さいせいちゆう‥");
REG_DISPCNT = 0x3140;
- MenuDrawTextWindow(0, 0, 29, 19);
- MenuPrint(seStr, 3, 2);
- MenuPrint(panStr, 3, 4);
- MenuPrint(playingStr, 3, 8);
+ Menu_DrawStdWindowFrame(0, 0, 29, 19);
+ Menu_PrintText(seStr, 3, 2);
+ Menu_PrintText(panStr, 3, 4);
+ Menu_PrintText(playingStr, 3, 8);
REG_WIN0H = WIN_RANGE(0, DISPLAY_WIDTH);
REG_WIN0V = WIN_RANGE(0, DISPLAY_HEIGHT);
sSoundTestParams[CRY_TEST_VOICE] = 1;
@@ -739,7 +739,7 @@ void sub_80BB038(u8 taskId)
REG_DISPCNT = 0x7140;
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(1, 31);
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gTasks[taskId].func = Task_InitSoundCheckMenu;
return;
}
@@ -806,10 +806,10 @@ void sub_80BB1D4(void)
switch (gUnknown_083D03F8[sSoundTestParams[CRY_TEST_PANPOT]])
{
case 127:
- MenuPrint(lrStr, 7, 4);
+ Menu_PrintText(lrStr, 7, 4);
break;
case -128:
- MenuPrint(rlStr, 7, 4);
+ Menu_PrintText(rlStr, 7, 4);
break;
default:
PrintSignedNumber(gUnknown_083D03F8[sSoundTestParams[CRY_TEST_PANPOT]], 7, 4, 3);
@@ -1217,8 +1217,8 @@ void Task_InitCryTest(u8 taskId)
struct CryRelatedStruct cryStruct, cryStruct2;
u8 zero;
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
gSoundTestCryNum = 1;
ResetSpriteData();
FreeAllSpritePalettes();
@@ -1247,7 +1247,7 @@ void Task_InitCryTest(u8 taskId)
while (ShowPokedexCryScreen(&cryStruct2, 2) == FALSE)
;
- MenuDrawTextWindow(0, 16, 5, 19);
+ Menu_DrawStdWindowFrame(0, 16, 5, 19);
PrintCryNumber();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
REG_BG2HOFS = 0;
@@ -1288,7 +1288,7 @@ void Task_ProcessCryTestInput(u8 taskId)
REG_DISPCNT = 0x7140;
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(1, 31);
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gTasks[taskId].func = Task_InitSoundCheckMenu;
DestroyCryMeterNeedleSprite();
}
diff --git a/src/debug/start_menu_debug.c b/src/debug/start_menu_debug.c
new file mode 100644
index 000000000..4690368d8
--- /dev/null
+++ b/src/debug/start_menu_debug.c
@@ -0,0 +1,6051 @@
+#if DEBUG
+
+#include "global.h"
+#include "constants/songs.h"
+#include "battle.h"
+#include "debug.h"
+#include "link.h"
+#include "main.h"
+#include "menu.h"
+#include "mystery_event_menu.h"
+#include "overworld.h"
+#include "reset_rtc_screen.h"
+#include "rtc.h"
+#include "save.h"
+#include "sound.h"
+#include "task.h"
+#include "text.h"
+#include "trade.h"
+
+// berry_blender.c
+extern void unref_sub_80524BC(void);
+
+void debug_sub_8076BB4(u8);
+void debug_sub_8077CF4();
+
+u8 DebugMenu_Exit(void);
+u8 DebugMenu_OpenWatanabe(void);
+u8 DebugMenu_OpenSogabe(void);
+u8 DebugMenu_OpenTamada(void);
+u8 DebugMenu_OpenKagaya(void);
+u8 DebugMenu_OpenMatsuda(void);
+u8 DebugMenu_OpenNohara(void);
+u8 DebugMenu_OpenNakamura(void);
+u8 DebugMenu_Teleport(void);
+u8 DebugMenu_EditPKMN(void);
+u8 DebugMenu_SwitchBG(void);
+u8 DebugMenu_OpenMori(void);
+u8 DebugMenu_OpenTomomichi(void);
+u8 DebugMenu_OpenAoki(void);
+u8 DebugMenu_OpenTaya(void);
+u8 DebugMenu_ToggleClearFlag(void);
+u8 DebugMenu_ControlEncounter(void);
+u8 DebugMenu_PTime(void);
+u8 DebugMenu_MakeItems(void);
+u8 debug_sub_8091300(void);
+u8 DebugMenu_ViewPortraits(void);
+u8 DebugMenu_TimeRecords(void);
+u8 DebugMenu_SetTime(void);
+u8 DebugMenu_NationalDex(void);
+u8 DebugMenu_CreatePKMN(void);
+u8 DebugMenu_ViewPokemonGraphics(void);
+u8 DebugMenu_BattleForDebug(void);
+u8 DebugMenu_AllBadges(void);
+u8 DebugMenu_HoennNationalDex(void);
+u8 DebugMenu_SetRamBerry(void);
+u8 DebugMenu_UseHM(void);
+u8 DebugMenu_OpenIwasawa(void);
+u8 DebugMenu_ToggleBGM(void);
+u8 DebugMenu_OpenSizeComparison(void);
+u8 DebugMenu_Safari(void);
+u8 DebugMenu_RematchTrainers(void);
+u8 DebugMenu_MiragaIslandRND(void);
+u8 DebugMenu_HallOfFame(void);
+u8 DebugMenu_OpenMysteryEvent(void);
+u8 DebugMenu_OpenLegendsRecord(void);
+u8 DebugMenu_OpenWeatherEvents(void);
+u8 DebugMenu_CellInfo(void);
+u8 DebugMenu_CheckPKBLCK(void);
+u8 DebugMenu_EffortValues(void);
+u8 DebugMenu_HoennDex(void);
+u8 DebugMenu_OpenSeeTrainers(void);
+u8 DebugMenu_OpenBerryInfo(void);
+u8 DebugMenu_BattleTowerStages(void);
+u8 DebugMenu_EndSequenceDemo(void);
+u8 DebugMenu_RandomNumberTest(void);
+u8 DebugMenu_MeTooBackupMan(void);
+u8 DebugMenu_OpenMurakawa(void);
+u8 DebugMenu_OpenKiwa(void);
+u8 DebugMenu_8076CBC(void);
+u8 DebugMenu_8076CC0(void);
+u8 DebugMenu_8076CD4(void);
+u8 DebugMenu_8076C6C(void);
+u8 DebugMenu_8076CD8(void);
+u8 DebugMenu_8076D28(void);
+u8 DebugMenu_8076D3C(void);
+u8 DebugMenu_8076C80(void);
+u8 DebugMenu_8076C90(void);
+u8 DebugMenu_8076D50(void);
+u8 DebugMenu_8076CEC(void);
+u8 DebugMenu_8076D14(void);
+u8 DebugMenu_8076D00(void);
+u8 DebugMenu_8076D5C(void);
+u8 DebugMenu_8076E18(void);
+u8 DebugMenu_8076EDC(void);
+void DebugMenu_8076FEC(void);
+
+const u8 Str_839B740[] = _("·WATANABE");
+const u8 Str_839B74A[] = _("SOGABE");
+const u8 Str_839B751[] = _("·TAMADA");
+const u8 Str_839B759[] = _("KAGAYA");
+const u8 Str_839B760[] = _("MATUDA");
+const u8 Str_839B767[] = _("NOHARA");
+const u8 Str_839B76E[] = _("NAKAMURA");
+const u8 Str_839B777[] = _("EXIT");
+const u8 Str_839B77C[] = _("Teleport");
+const u8 Str_839B785[] = _("Switch BG");
+const u8 Str_839B78F[] = _("Edit your {PKMN}");
+const u8 Str_839B79C[] = _("MORI");
+const u8 Str_839B7A1[] = _("TOMOMITI");
+const u8 Str_839B7AA[] = _("·AOKI");
+const u8 Str_839B7B0[] = _("TAYA");
+const u8 Str_839B7B5[] = _("Control Encounter");
+const u8 Str_839B7C7[] = _("PTIME");
+const u8 Str_839B7CD[] = _("Make items");
+const u8 Str_839B7D8[] = _("Transport");
+const u8 Str_839B7E2[] = _("See portraits");
+const u8 Str_839B7F0[] = _("Time records");
+const u8 Str_839B7FD[] = _("Set time");
+const u8 Str_839B806[] = _("National オカDex");
+const u8 Str_839B815[] = _("Hoenn オカDex");
+const u8 Str_839B821[] = _("Create {PKMN}");
+const u8 Str_839B82B[] = _("See {PKMN} graphics");
+const u8 Str_839B83B[] = _("See trainers");
+const u8 Str_839B848[] = _("Battle for debug");
+const u8 Str_839B859[] = _("Full set of badges");
+const u8 Str_839B86C[] = _("Hoenn National Dex");
+const u8 Str_839B87F[] = _("Set Ram berry");
+const u8 Str_839B88D[] = _("Use HM");
+const u8 Str_839B894[] = _("IWASAWA");
+const u8 Str_839B89C[] = _("BGM ON/OFF");
+const u8 Str_839B8A7[] = _("Size comparison");
+const u8 Str_839B8B7[] = _("Clear flag ON/OFF");
+const u8 Str_839B8C9[] = _("Safari");
+const u8 Str_839B8D0[] = _("Rematch trainers");
+const u8 Str_839B8E1[] = _("Mirage island RND");
+const u8 Str_839B8F3[] = _("Hall of fame");
+const u8 Str_839B900[] = _("Mystery event");
+const u8 Str_839B90E[] = _("Legends records");
+const u8 Str_839B91E[] = _("Weather events");
+const u8 Str_839B92D[] = _("Cell info.");
+const u8 Str_839B938[] = _("Check {POKEBLOCK}");
+const u8 Str_839B944[] = _("Effort values");
+const u8 Str_839B952[] = _("Berrie Info");
+const u8 Str_839B95E[] = _("Battle Tower stages");
+const u8 Str_839B972[] = _("End sequence demo");
+const u8 Str_839B984[] = _("Random number test");
+const u8 Str_839B997[] = _("Me-too BackupMan");
+const u8 Str_839B9A8[] = _("MURAKAWA");
+const u8 Str_839B9B1[] = _("KINA(FONT)");
+
+const struct MenuAction gDebug0x839B9BC[] =
+{
+ { Str_839B777, DebugMenu_Exit },
+ { Str_839B740, DebugMenu_OpenWatanabe },
+ { Str_839B74A, DebugMenu_OpenSogabe },
+ { Str_839B751, DebugMenu_OpenTamada },
+ { Str_839B759, DebugMenu_OpenKagaya },
+ { Str_839B760, DebugMenu_OpenMatsuda },
+ { Str_839B767, DebugMenu_OpenNohara },
+ { Str_839B76E, DebugMenu_OpenNakamura },
+ { Str_839B77C, DebugMenu_Teleport },
+ { Str_839B78F, DebugMenu_EditPKMN },
+ { Str_839B785, DebugMenu_SwitchBG },
+ { Str_839B79C, DebugMenu_OpenMori },
+ { Str_839B7A1, DebugMenu_OpenTomomichi },
+ { Str_839B7AA, DebugMenu_OpenAoki },
+ { Str_839B7B0, DebugMenu_OpenTaya },
+ { Str_839B8B7, DebugMenu_ToggleClearFlag },
+ { Str_839B7B5, DebugMenu_ControlEncounter },
+ { Str_839B7C7, DebugMenu_PTime },
+ { Str_839B7CD, DebugMenu_MakeItems },
+ { Str_839B7D8, debug_sub_8091300 },
+ { Str_839B7E2, DebugMenu_ViewPortraits },
+ { Str_839B7F0, DebugMenu_TimeRecords },
+ { Str_839B7FD, DebugMenu_SetTime },
+ { Str_839B806, DebugMenu_NationalDex },
+ { Str_839B821, DebugMenu_CreatePKMN },
+ { Str_839B82B, DebugMenu_ViewPokemonGraphics },
+ { Str_839B848, DebugMenu_BattleForDebug },
+ { Str_839B859, DebugMenu_AllBadges },
+ { Str_839B86C, DebugMenu_HoennNationalDex },
+ { Str_839B87F, DebugMenu_SetRamBerry },
+ { Str_839B88D, DebugMenu_UseHM },
+ { Str_839B894, DebugMenu_OpenIwasawa },
+ { Str_839B89C, DebugMenu_ToggleBGM },
+ { Str_839B8A7, DebugMenu_OpenSizeComparison },
+ { Str_839B8C9, DebugMenu_Safari },
+ { Str_839B8D0, DebugMenu_RematchTrainers },
+ { Str_839B8E1, DebugMenu_MiragaIslandRND },
+ { Str_839B8F3, DebugMenu_HallOfFame },
+ { Str_839B900, DebugMenu_OpenMysteryEvent },
+ { Str_839B90E, DebugMenu_OpenLegendsRecord },
+ { Str_839B91E, DebugMenu_OpenWeatherEvents },
+ { Str_839B92D, DebugMenu_CellInfo },
+ { Str_839B938, DebugMenu_CheckPKBLCK },
+ { Str_839B944, DebugMenu_EffortValues },
+ { Str_839B815, DebugMenu_HoennDex },
+ { Str_839B83B, DebugMenu_OpenSeeTrainers },
+ { Str_839B952, DebugMenu_OpenBerryInfo },
+ { Str_839B95E, DebugMenu_BattleTowerStages },
+ { Str_839B972, DebugMenu_EndSequenceDemo },
+ { Str_839B984, DebugMenu_RandomNumberTest },
+ { Str_839B997, DebugMenu_MeTooBackupMan },
+ { Str_839B9A8, DebugMenu_OpenMurakawa },
+ { Str_839B9B1, DebugMenu_OpenKiwa },
+};
+
+const u8 gUnknown_Debug_839BB64[] =
+{
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x0b, 0x0c, 0x0d, 0x0e, 0x1f, 0x12, 0x13, 0x00, 0x08, 0x09, 0x0a, 0x1e, 0x10, 0x24, 0x0f, 0x00, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x00,
+ 0x1c, 0x1d, 0x14, 0x20, 0x21, 0x22, 0x23, 0x00, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x00, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x00, 0x11, 0x33, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+const u8 gUnknown_Debug_0839BBA4[] = _("Debugging Version");
+const u8 gUnknown_Debug_0839BBB6[] = _("{VERSION} Version");
+const u8 gUnknown_Debug_0839BBC1[] = _("Normal RTC compatible");
+const u8 Str_839BBD7[] = _("か の じっけん");
+const u8 Str_839BBE0[] = _("じっけん2");
+const u8 Str_839BBE6[] = _("BGじっけん");
+const u8 Str_839BBED[] = _("Battle");
+const u8 Str_839BBF4[] = _("つうしん じっけん");
+const u8 Str_839BBFE[] = _("LINK Test2");
+const u8 Str_839BC09[] = _("フィールド はじめる");
+const u8 Str_839BC14[] = _("フィールド つづき");
+const u8 Str_839BC1E[] = _("Sound test");
+const u8 Str_839BC29[] = _("{POKEBLOCK} test");
+const u8 Str_839BC34[] = _("Crash backup data");
+const u8 Str_839BC46[] = _("e-Card test");
+const u8 Str_839BC52[] = _("こうかんデモ   ");
+const u8 Str_839BC5C[] = _("Time in game");
+const u8 Str_839BC69[] = _("フェスタ モード");
+const u8 Str_839BC72[] = _("Mimic e-Card");
+const u8 Str_839BC7F[] = _("RTC reset");
+const u8 Str_839BC89[] = _("Converter");
+
+const struct MenuAction gUnknown_Debug_839BC94[] =
+{
+ { Str_839BBD7, DebugMenu_8076CBC },
+ { Str_839BBE0, DebugMenu_8076CC0 },
+ { Str_839BBE6, DebugMenu_8076CD4 },
+ { Str_839BBED, DebugMenu_8076C6C },
+ { Str_839BC29, DebugMenu_8076CD8 },
+ { Str_839BBFE, DebugMenu_8076D28 },
+ { Str_839BC1E, DebugMenu_8076D3C },
+ { Str_839BC09, DebugMenu_8076C80 },
+ { Str_839BC14, DebugMenu_8076C90 },
+ { Str_839BC34, DebugMenu_8076D50 },
+ { Str_839BC46, DebugMenu_8076CEC },
+ { Str_839BC52, DebugMenu_8076D14 },
+ { Str_839BC72, DebugMenu_8076D00 },
+ { Str_839BC5C, DebugMenu_8076D5C },
+ { Str_839BC7F, DebugMenu_8076E18 },
+ { Str_839BC89, DebugMenu_8076EDC },
+};
+
+// NOTE: When decompiling this file, I found out that having an extraneous extern
+// in a C file can affect the generated asm. If this extern is commented out,
+// debug_sub_8076BB4 will access the array differently and no longer match.
+//extern const struct MenuAction gUnknown_Debug_839BC94[];
+
+const u8 gMenuOrders_839BD14[][10] =
+{
+ { 3, 6, 4, 0xFF },
+ { 5, 9, 10, 12, 13, 14, 15, 0xFF },
+};
+
+const u8 Str_839BD26[] = {2, 0, 0, 0}; // doesn't appear to be referenced
+
+const u8 Str_839BD2C[] = _("RTCを リセット します\n" // Reset RTC
+ "Aで じっこう   Bでキャンセル");
+
+const u8 Str_839BD4C[] = _("RTCを リセット した!");
+
+const u8 Str_839BD5A[] = _("セーブデータを コンバートします\n"
+ "Aで けってい  Bで キャンセル");
+
+const u8 Str_839BD7D[] = _("へんかんが しゅうりょう しました!");
+
+
+extern const u8 Str_839BD2C[];
+extern const u8 Str_839BD4C[];
+
+__attribute__((unused)) static u8 gUnknown_030006B8[4];
+__attribute__((unused)) static u8 gUnknown_030006BC[4];
+__attribute__((unused)) static u8 gUnknown_030006C0;
+__attribute__((unused)) static u8 gUnknown_030006C1;
+static const u8 *gUnknown_030006C4;
+__attribute__((unused)) static u8 gUnknown_030006C8;
+
+void debug_sub_8076AC8(u8 a)
+{
+ s32 r4;
+
+ gUnknown_030006C4 = gMenuOrders_839BD14[a];
+ for (r4 = 0; gUnknown_030006C4[r4] != 0xFF; r4++)
+ ;
+ Menu_EraseWindowRect(16, 0, 29, 19);
+ Menu_DrawStdWindowFrame(16, 0, 29, r4 * 2 + 1);
+ Menu_PrintItemsReordered(17, 1, r4, (struct MenuAction2 *)gUnknown_Debug_839BC94, gUnknown_030006C4);
+ InitMenu(0, 17, 1, r4, 0, 12);
+}
+
+void debug_sub_8076B4C(void)
+{
+ u8 taskId = FindTaskIdByFunc(debug_sub_8076BB4);
+
+ if (taskId != 0xFF)
+ DestroyTask(taskId);
+}
+
+// Initializes test menu
+void debug_sub_8076B68(void)
+{
+ Menu_PrintText(gUnknown_Debug_0839BBB6, 1, 1);
+ Menu_PrintText(gUnknown_Debug_0839BBC1, 1, 3);
+ Menu_PrintText(gUnknown_Debug_0839BBA4, 1, 9);
+ debug_sub_8077CF4(4, 11);
+ debug_sub_8076AC8(0);
+ CreateTask(debug_sub_8076BB4, 1);
+}
+
+// Handles input for the test menu
+void debug_sub_8076BB4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s8 input = Menu_ProcessInput();
+ s8 cursorPos = Menu_GetCursorPos();
+
+ switch (input)
+ {
+ default:
+ gUnknown_Debug_839BC94[gUnknown_030006C4[cursorPos]].func();
+ break;
+ case -2:
+ if (gMain.newKeys & 0x20)
+ {
+ if (data[0] == 0)
+ data[0] = 1;
+ else
+ data[0]--;
+ debug_sub_8076AC8(data[0]);
+ PlaySE(SE_SELECT);
+ }
+ else if (gMain.newKeys & 0x10)
+ {
+ if (data[0] == 1)
+ data[0] = 0;
+ else
+ data[0]++;
+ debug_sub_8076AC8(data[0]);
+ PlaySE(SE_SELECT);
+ }
+ break;
+ case -1:
+ DoSoftReset();
+ break;
+ }
+}
+
+u8 DebugMenu_8076C6C(void)
+{
+ SetMainCallback2(debug_sub_8010800);
+ return 0;
+}
+
+u8 DebugMenu_8076C80(void)
+{
+ debug_sub_8076B4C();
+ DebugMenu_8076FEC();
+ return 0;
+}
+
+u8 DebugMenu_8076C90(void)
+{
+ if (gSaveFileStatus == SAVE_STATUS_ERROR)
+ {
+ PlaySE(0x16);
+ }
+ else
+ {
+ debug_sub_8076B4C();
+ SetMainCallback2(CB2_ContinueSavedGame);
+ }
+ return 0;
+}
+
+u8 DebugMenu_8076CBC(void)
+{
+ return 0;
+}
+
+u8 DebugMenu_8076CC0(void)
+{
+ SetMainCallback2(debug_nullsub_66);
+ return 0;
+}
+
+u8 DebugMenu_8076CD4(void)
+{
+ return 0;
+}
+
+u8 DebugMenu_8076CD8(void)
+{
+ SetMainCallback2(unref_sub_80524BC);
+ return 0;
+}
+
+u8 DebugMenu_8076CEC(void)
+{
+ SetMainCallback2(CB2_InitMysteryEventMenu);
+ return 0;
+}
+
+u8 DebugMenu_8076D00(void)
+{
+ SetMainCallback2(debug_sub_815D15C);
+ return 0;
+}
+
+u8 DebugMenu_8076D14(void)
+{
+ SetMainCallback2(sub_804B790);
+ return 0;
+}
+
+u8 DebugMenu_8076D28(void)
+{
+ SetMainCallback2(LinkTestScreen);
+ return 0;
+}
+
+u8 DebugMenu_8076D3C(void)
+{
+ SetMainCallback2(CB2_StartSoundCheckMenu);
+ return 0;
+}
+
+u8 DebugMenu_8076D50(void)
+{
+ Save_EraseAllData();
+ return 0;
+}
+
+u8 DebugMenu_8076D5C(void)
+{
+ debug_sub_8076B4C();
+ debug_sub_806F8F8();
+ return 0;
+}
+
+void DebugMenu_8076D6C(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(Str_839BD2C, 2, 15);
+ data[0]++;
+ break;
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(Str_839BD4C, 2, 15);
+ PlaySE(0x49);
+ RtcReset();
+ data[0]++;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ DestroyTask(taskId);
+ DoSoftReset();
+ }
+ break;
+ case 2:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ DestroyTask(taskId);
+ DoSoftReset();
+ }
+ break;
+ }
+}
+
+__attribute__((naked))
+u8 DebugMenu_8076E18()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8076B4C\n"
+ " ldr r0, ._67 @ DebugMenu_8076D6C\n"
+ " mov r1, #0xa\n"
+ " bl CreateTask\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._68:\n"
+ " .align 2, 0\n"
+ "._67:\n"
+ " .word DebugMenu_8076D6C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8076E30()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " lsl r0, r3, #0x2\n"
+ " add r0, r0, r3\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._73 @ gTasks\n"
+ " add r4, r0, r1\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r4, r0]\n"
+ " cmp r1, #0x1\n"
+ " beq ._69 @cond_branch\n"
+ " cmp r1, #0x1\n"
+ " bgt ._70 @cond_branch\n"
+ " cmp r1, #0\n"
+ " beq ._71 @cond_branch\n"
+ " b ._86\n"
+ "._74:\n"
+ " .align 2, 0\n"
+ "._73:\n"
+ " .word gTasks+0x8\n"
+ "._70:\n"
+ " cmp r1, #0x2\n"
+ " beq ._75 @cond_branch\n"
+ " b ._86\n"
+ "._71:\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._78 @ Str_839BD5A\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " b ._77\n"
+ "._79:\n"
+ " .align 2, 0\n"
+ "._78:\n"
+ " .word Str_839BD5A\n"
+ "._69:\n"
+ " ldr r0, ._82 @ gMain\n"
+ " ldrh r2, [r0, #0x2e]\n"
+ " and r1, r1, r2\n"
+ " cmp r1, #0\n"
+ " beq ._80 @cond_branch\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " bl sub_813B79C\n"
+ " ldr r0, ._82 + 4 @ Str_839BD7D\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0x49\n"
+ " bl PlaySE\n"
+ "._77:\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4]\n"
+ " b ._86\n"
+ "._83:\n"
+ " .align 2, 0\n"
+ "._82:\n"
+ " .word gMain\n"
+ " .word Str_839BD7D\n"
+ "._80:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._86 @cond_branch\n"
+ " add r0, r3, #0\n"
+ " bl DestroyTask\n"
+ " bl DoSoftReset\n"
+ " b ._86\n"
+ "._75:\n"
+ " ldr r0, ._87 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._86 @cond_branch\n"
+ " add r0, r3, #0\n"
+ " bl DestroyTask\n"
+ " bl DoSoftReset\n"
+ "._86:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._88:\n"
+ " .align 2, 0\n"
+ "._87:\n"
+ " .word gMain\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_8076EDC()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8076B4C\n"
+ " ldr r0, ._89 @ DebugMenu_8076E30\n"
+ " mov r1, #0xa\n"
+ " bl CreateTask\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._90:\n"
+ " .align 2, 0\n"
+ "._89:\n"
+ " .word DebugMenu_8076E30+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8076EF4()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xb\n"
+ " mov r3, #0x11\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r4, ._93 @ gUnknown_Debug_839BDC4\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x8\n"
+ " add r3, r4, #0\n"
+ " bl Menu_PrintItems\n"
+ " mov r5, #0x0\n"
+ " add r4, r4, #0x4\n"
+ "._92:\n"
+ " lsl r0, r5, #0x3\n"
+ " add r0, r0, r4\n"
+ " ldr r1, [r0]\n"
+ " mov r0, #0x1\n"
+ " and r1, r1, r0\n"
+ " mov r0, #0xb6\n"
+ " cmp r1, #0\n"
+ " bne ._91 @cond_branch\n"
+ " mov r0, #0xb5\n"
+ "._91:\n"
+ " lsl r2, r5, #0x1\n"
+ " add r2, r2, #0x1\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r1, #0xa\n"
+ " bl sub_8071F60\n"
+ " add r0, r5, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " cmp r5, #0x7\n"
+ " bls ._92 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x9\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x8\n"
+ " bl InitMenu\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._94:\n"
+ " .align 2, 0\n"
+ "._93:\n"
+ " .word gUnknown_Debug_839BDC4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8076F60()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " bl Menu_ProcessInput\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl Menu_GetCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " lsl r4, r4, #0x18\n"
+ " asr r4, r4, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r4, r0\n"
+ " beq ._97 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r4, r0\n"
+ " bne ._96 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " bl debug_sub_8076B68\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ " b ._97\n"
+ "._96:\n"
+ " ldr r3, ._100 @ gUnknown_Debug_839BDC4\n"
+ " lsl r2, r2, #0x18\n"
+ " asr r2, r2, #0x15\n"
+ " add r0, r3, #4\n"
+ " add r0, r2, r0\n"
+ " ldrb r4, [r0]\n"
+ " ldr r0, ._100 + 4 @ gSaveBlock2\n"
+ " mov r1, #0x1\n"
+ " and r1, r1, r4\n"
+ " strb r1, [r0, #0x8]\n"
+ " add r2, r2, r3\n"
+ " ldr r1, [r2]\n"
+ " bl StringCopy\n"
+ " mov r0, #0x80\n"
+ " and r4, r4, r0\n"
+ " cmp r4, #0\n"
+ " bne ._98 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " bl debug_sub_8057508\n"
+ " b ._99\n"
+ "._101:\n"
+ " .align 2, 0\n"
+ "._100:\n"
+ " .word gUnknown_Debug_839BDC4\n"
+ " .word gSaveBlock2\n"
+ "._98:\n"
+ " mov r0, #0x1\n"
+ " bl debug_sub_8057508\n"
+ "._99:\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ " ldr r0, ._102 @ debug_sub_8058C00\n"
+ " bl SetMainCallback2\n"
+ "._97:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._103:\n"
+ " .align 2, 0\n"
+ "._102:\n"
+ " .word debug_sub_8058C00+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8076FEC()
+{
+ asm(
+ " push {lr}\n"
+ " bl DebugMenu_8076EF4\n"
+ " ldr r0, ._104 @ DebugMenu_8076F60\n"
+ " mov r1, #0xa\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._105:\n"
+ " .align 2, 0\n"
+ "._104:\n"
+ " .word DebugMenu_8076F60+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077004()
+{
+ asm(
+ " ldr r2, ._106 @ gUnknown_030006C4\n"
+ " ldr r0, ._106 + 4 @ gUnknown_030006C1\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._106 + 8 @ gUnknown_Debug_839BB64\n"
+ " add r0, r0, r1\n"
+ " str r0, [r2]\n"
+ " bx lr\n"
+ "._107:\n"
+ " .align 2, 0\n"
+ "._106:\n"
+ " .word gUnknown_030006C4 \n"
+ " .word gUnknown_030006C1 \n"
+ " .word gUnknown_Debug_839BB64\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077020()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._109 @ gMenuCallback\n"
+ " ldr r0, [r0]\n"
+ " bl _call_via_r0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._108 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ "._108:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._110:\n"
+ " .align 2, 0\n"
+ "._109:\n"
+ " .word gMenuCallback\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077048()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._111 @ gMenuCallback\n"
+ " ldr r1, ._111 + 4 @ DebugMenu_807706C\n"
+ " str r1, [r0]\n"
+ " bl ScriptContext2_Enable\n"
+ " ldr r0, ._111 + 8 @ DebugMenu_8077020\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._112:\n"
+ " .align 2, 0\n"
+ "._111:\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_807706C+1\n"
+ " .word DebugMenu_8077020+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807706C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._113 @ gWindowTemplate_81E6CE4\n"
+ " bl InitMenuWindow\n"
+ " bl DebugMenu_8077004\n"
+ " bl DebugMenu_807719C\n"
+ " bl DebugMenu_80771EC\n"
+ " bl DebugMenu_8077238\n"
+ " ldr r1, ._113 + 4 @ gMenuCallback\n"
+ " ldr r0, ._113 + 8 @ DebugMenu_807709C\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._114:\n"
+ " .align 2, 0\n"
+ "._113:\n"
+ " .word gWindowTemplate_81E6CE4\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_807709C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807709C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._120 @ gMain\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._115 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " bl Menu_MoveCursor\n"
+ " ldr r1, ._120 + 4 @ gUnknown_030006C0\n"
+ " strb r0, [r1]\n"
+ "._115:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._116 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " bl Menu_MoveCursor\n"
+ " ldr r1, ._120 + 4 @ gUnknown_030006C0\n"
+ " strb r0, [r1]\n"
+ "._116:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._117 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._120 + 8 @ gUnknown_030006C1\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " bne ._118 @cond_branch\n"
+ " mov r0, #0x7\n"
+ " b ._119\n"
+ "._121:\n"
+ " .align 2, 0\n"
+ "._120:\n"
+ " .word gMain\n"
+ " .word gUnknown_030006C0 \n"
+ " .word gUnknown_030006C1 \n"
+ "._118:\n"
+ " sub r0, r0, #0x1\n"
+ "._119:\n"
+ " strb r0, [r1]\n"
+ " bl DebugMenu_8077004\n"
+ " bl DebugMenu_807719C\n"
+ "._117:\n"
+ " ldr r0, ._125 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._122 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._125 + 4 @ gUnknown_030006C1\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x7\n"
+ " bne ._123 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._124\n"
+ "._126:\n"
+ " .align 2, 0\n"
+ "._125:\n"
+ " .word gMain\n"
+ " .word gUnknown_030006C1 \n"
+ "._123:\n"
+ " add r0, r0, #0x1\n"
+ "._124:\n"
+ " strb r0, [r1]\n"
+ " bl DebugMenu_8077004\n"
+ " bl DebugMenu_807719C\n"
+ "._122:\n"
+ " ldr r0, ._129 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._127 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r1, ._129 + 4 @ gDebug0x839B9BC\n"
+ " ldr r0, ._129 + 8 @ gUnknown_030006C0\n"
+ " ldrb r2, [r0]\n"
+ " ldr r0, ._129 + 12 @ gUnknown_030006C4\n"
+ " ldr r0, [r0]\n"
+ " add r0, r0, r2\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r1, r1, #0x4\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " bl _call_via_r0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " b ._132\n"
+ "._130:\n"
+ " .align 2, 0\n"
+ "._129:\n"
+ " .word gMain\n"
+ " .word gDebug0x839B9BC\n"
+ " .word gUnknown_030006C0 \n"
+ " .word gUnknown_030006C4 \n"
+ "._127:\n"
+ " mov r0, #0xa\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._131 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._132\n"
+ "._131:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._132:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807719C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xe\n"
+ " mov r3, #0x11\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r3, ._133 @ gDebug0x839B9BC\n"
+ " ldr r0, ._133 + 4 @ gUnknown_030006C4\n"
+ " ldr r0, [r0]\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x8\n"
+ " bl Menu_PrintItemsReordered\n"
+ " ldr r4, ._133 + 8 @ gUnknown_030006C0\n"
+ " ldrb r0, [r4]\n"
+ " str r0, [sp]\n"
+ " mov r0, #0xd\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x8\n"
+ " bl InitMenu\n"
+ " strb r0, [r4]\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._134:\n"
+ " .align 2, 0\n"
+ "._133:\n"
+ " .word gDebug0x839B9BC\n"
+ " .word gUnknown_030006C4 \n"
+ " .word gUnknown_030006C0 \n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80771EC()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._135 @ gStringVar4\n"
+ " ldr r1, ._135 + 4 @ Str_839BE04\n"
+ " bl StringCopy\n"
+ " ldr r4, ._135 + 8 @ gSaveBlock1\n"
+ " mov r1, #0x4\n"
+ " ldsb r1, [r4, r1]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r1, #0x5\n"
+ " ldsb r1, [r4, r1]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, #0x13\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0xf\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._135 @ gStringVar4\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xd\n"
+ " bl Menu_PrintText\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._136:\n"
+ " .align 2, 0\n"
+ "._135:\n"
+ " .word gStringVar4\n"
+ " .word Str_839BE04\n"
+ " .word gSaveBlock1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077238()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xffffffe8\n"
+ " ldr r1, ._139 @ Str_839BE07\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " bl memcpy\n"
+ " add r0, sp, #0x4\n"
+ " mov r9, r0\n"
+ " ldr r1, ._139 + 4 @ Str_839BE09\n"
+ " mov r2, #0x3\n"
+ " bl memcpy\n"
+ " add r1, sp, #0x8\n"
+ " mov sl, r1\n"
+ " ldr r1, ._139 + 8 @ Str_839BE0C\n"
+ " mov r0, sl\n"
+ " mov r2, #0x3\n"
+ " bl memcpy\n"
+ " mov r2, #0x0\n"
+ " str r2, [sp, #0x14]\n"
+ " add r4, sp, #0x10\n"
+ " mov r6, sp\n"
+ " add r6, r6, #0x12\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " bl PlayerGetDestCoords\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r6, r2]\n"
+ " bl MapGridGetZCoordAt\n"
+ " mov r8, r0\n"
+ " mov r0, r8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0x7\n"
+ " strh r0, [r4]\n"
+ " ldrh r0, [r6]\n"
+ " sub r0, r0, #0x7\n"
+ " strh r0, [r6]\n"
+ " ldr r7, ._139 + 12 @ gStringVar4\n"
+ " add r0, r7, #0\n"
+ " mov r1, sp\n"
+ " bl StringCopy\n"
+ " add r5, sp, #0xc\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r4, r2]\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " bl StringAppend\n"
+ " add r0, r7, #0\n"
+ " mov r1, r9\n"
+ " bl StringAppend\n"
+ " mov r0, #0x0\n"
+ " ldsh r1, [r6, r0]\n"
+ " add r0, r5, #0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " bl StringAppend\n"
+ " add r0, r7, #0\n"
+ " mov r1, sl\n"
+ " bl StringAppend\n"
+ " add r0, r5, #0\n"
+ " mov r1, r8\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " bl StringAppend\n"
+ " ldrb r0, [r7]\n"
+ " cmp r0, #0xff\n"
+ " beq ._137 @cond_branch\n"
+ " add r1, r7, #0\n"
+ "._138:\n"
+ " ldr r0, [sp, #0x14]\n"
+ " add r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " str r0, [sp, #0x14]\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0xff\n"
+ " bne ._138 @cond_branch\n"
+ "._137:\n"
+ " mov r0, #0x1c\n"
+ " ldr r1, [sp, #0x14]\n"
+ " sub r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x10\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._139 + 12 @ gStringVar4\n"
+ " mov r1, #0x1d\n"
+ " ldr r2, [sp, #0x14]\n"
+ " sub r1, r1, r2\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " add sp, sp, #0x18\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._140:\n"
+ " .align 2, 0\n"
+ "._139:\n"
+ " .word Str_839BE07\n"
+ " .word Str_839BE09\n"
+ " .word Str_839BE0C\n"
+ " .word gStringVar4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_Exit()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenSogabe()
+{
+ asm(
+ " push {lr}\n"
+ " bl unref_sub_814A414\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenTamada()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8075C30\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenKagaya()
+{
+ asm(
+ " push {lr}\n"
+ " bl InitKagayaDebugMenu_A\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenMatsuda()
+{
+ asm(
+ " push {lr}\n"
+ " bl unref_sub_80A9B28\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenNohara()
+{
+ asm(
+ " push {lr}\n"
+ " bl InitNoharaDebugMenu\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenWatanabe()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._141 @ InitWatanabeDebugMenu\n"
+ " bl SetMainCallback2\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._142:\n"
+ " .align 2, 0\n"
+ "._141:\n"
+ " .word InitWatanabeDebugMenu+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_EndSequenceDemo()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._143 @ sub_81439D0\n"
+ " bl SetMainCallback2\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._144:\n"
+ " .align 2, 0\n"
+ "._143:\n"
+ " .word sub_81439D0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_HallOfFame()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl GameClear\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenSizeComparison()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl InitSizeComparison\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_HoennNationalDex()
+{
+ asm(
+ " push {lr}\n"
+ " bl IsNationalPokedexEnabled\n"
+ " cmp r0, #0\n"
+ " beq ._145 @cond_branch\n"
+ " bl DisableNationalPokedex\n"
+ " b ._146\n"
+ "._145:\n"
+ " bl EnableNationalPokedex\n"
+ "._146:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_8077434()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " bl Menu_GetCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x4\n"
+ " bhi ._165 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._149 @ \n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._150:\n"
+ " .align 2, 0\n"
+ "._149:\n"
+ " .word ._148\n"
+ "._148:\n"
+ " .word ._151\n"
+ " .word ._152\n"
+ " .word ._153\n"
+ " .word ._154\n"
+ " .word ._155\n"
+ "._151:\n"
+ " ldr r0, ._157 @ Str_839BE0F\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x4\n"
+ " bl GetEnigmaBerryChecksum\n"
+ " mov r0, #0xff\n"
+ " str r0, [sp]\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r1, #0xff\n"
+ " mov r2, #0xff\n"
+ " mov r3, #0x0\n"
+ " bl debug_sub_80C2D24\n"
+ " b ._165\n"
+ "._158:\n"
+ " .align 2, 0\n"
+ "._157:\n"
+ " .word Str_839BE0F\n"
+ "._152:\n"
+ " ldr r0, ._160 @ Str_839BE12\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x0\n"
+ " bl GetEnigmaBerryChecksum\n"
+ " mov r0, #0xff\n"
+ " str r0, [sp]\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r1, #0xff\n"
+ " mov r2, #0x0\n"
+ " b ._159\n"
+ "._161:\n"
+ " .align 2, 0\n"
+ "._160:\n"
+ " .word Str_839BE12\n"
+ "._153:\n"
+ " ldr r0, ._163 @ Str_839BE16\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0x0\n"
+ " bl GetEnigmaBerryChecksum\n"
+ " mov r0, #0xff\n"
+ " str r0, [sp]\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r1, #0x0\n"
+ " b ._162\n"
+ "._164:\n"
+ " .align 2, 0\n"
+ "._163:\n"
+ " .word Str_839BE16\n"
+ "._154:\n"
+ " ldr r0, ._166 @ Str_839BE1A\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x0\n"
+ " bl GetEnigmaBerryChecksum\n"
+ " mov r0, #0xff\n"
+ " str r0, [sp]\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0xff\n"
+ "._162:\n"
+ " mov r2, #0xff\n"
+ "._159:\n"
+ " mov r3, #0xff\n"
+ " bl debug_sub_80C2D24\n"
+ " b ._165\n"
+ "._167:\n"
+ " .align 2, 0\n"
+ "._166:\n"
+ " .word Str_839BE1A\n"
+ "._155:\n"
+ " ldr r0, ._168 @ Str_839BE1E\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x0\n"
+ " bl GetEnigmaBerryChecksum\n"
+ " mov r0, #0xff\n"
+ " str r0, [sp]\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r1, #0xff\n"
+ " mov r2, #0xff\n"
+ " mov r3, #0xff\n"
+ " bl debug_sub_80C2D24\n"
+ "._165:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " add sp, sp, #0x8\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._169:\n"
+ " .align 2, 0\n"
+ "._168:\n"
+ " .word Str_839BE1E\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_807750C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._170 @ gUnknown_Debug_839BE24\n"
+ " bl DebugMenu_8077D78\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._171:\n"
+ " .align 2, 0\n"
+ "._170:\n"
+ " .word gUnknown_Debug_839BE24\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_SetRamBerry()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._172 @ gUnknown_Debug_839BE24\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x5\n"
+ " bl DebugMenu_8077D24\n"
+ " ldr r1, ._172 + 4 @ gMenuCallback\n"
+ " ldr r0, ._172 + 8 @ DebugMenu_807750C\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._173:\n"
+ " .align 2, 0\n"
+ "._172:\n"
+ " .word gUnknown_Debug_839BE24\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_807750C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_ToggleBGM()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r2, ._175 @ gDisableMusic\n"
+ " mov r1, #0x0\n"
+ " ldrb r0, [r2]\n"
+ " cmp r0, #0\n"
+ " bne ._174 @cond_branch\n"
+ " mov r1, #0x1\n"
+ "._174:\n"
+ " strb r1, [r2]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._176:\n"
+ " .align 2, 0\n"
+ "._175:\n"
+ " .word gDisableMusic\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_BattleForDebug()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl InitBattleForDebug\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_NationalDex()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r4, #0x0\n"
+ " ldr r5, ._178 @ 0x181\n"
+ "._177:\n"
+ " add r4, r4, #0x1\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " bl GetSetPokedexFlag\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x3\n"
+ " bl GetSetPokedexFlag\n"
+ " cmp r4, r5\n"
+ " bls ._177 @cond_branch\n"
+ " ldr r1, ._178 + 4 @ gUnknown_03005CE8\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._179:\n"
+ " .align 2, 0\n"
+ "._178:\n"
+ " .word 0x181\n"
+ " .word gUnknown_03005CE8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_HoennDex()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r5, #0x0\n"
+ "._180:\n"
+ " add r5, r5, #0x1\n"
+ " lsl r5, r5, #0x10\n"
+ " lsr r5, r5, #0x10\n"
+ " add r0, r5, #0\n"
+ " bl HoennToNationalOrder\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " bl GetSetPokedexFlag\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x3\n"
+ " bl GetSetPokedexFlag\n"
+ " cmp r5, #0xc9\n"
+ " bls ._180 @cond_branch\n"
+ " ldr r1, ._181 @ gUnknown_03005CE8\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._182:\n"
+ " .align 2, 0\n"
+ "._181:\n"
+ " .word gUnknown_03005CE8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_CreatePKMN()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl InitCreatePokemon\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_ViewPokemonGraphics()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl InitSeePokemonGraphics\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenSeeTrainers()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl InitSeeTrainers\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenMori()
+{
+ asm(
+ " push {lr}\n"
+ " bl InitMoriDebugMenu\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenTomomichi()
+{
+ asm(
+ " push {lr}\n"
+ " bl InitTomomichiDebugWindow\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenAoki()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenTaya()
+{
+ asm(
+ " push {lr}\n"
+ " bl InitTayaDebugWindow\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenNakamura()
+{
+ asm(
+ " push {lr}\n"
+ " bl InitNakamuraDebugMenu\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenIwasawa()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8138CC4\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_Teleport()
+{
+ asm(
+ " push {lr}\n"
+ " bl Overworld_SetWarpDestToLastHealLoc\n"
+ " bl sub_8080E88\n"
+ " bl ScriptContext2_Enable\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_EditPKMN()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " bl debug_sub_815FFDC\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80776B4()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r1, ._183 @ Str_839BE4C\n"
+ " mov r0, sp\n"
+ " mov r2, #0x7\n"
+ " bl memcpy\n"
+ " lsl r3, r4, #0x1\n"
+ " lsl r5, r4, #0x19\n"
+ " lsr r5, r5, #0x18\n"
+ " add r3, r3, #0x1\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x19\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x1d\n"
+ " bl Menu_BlankWindowRect\n"
+ " ldr r0, ._183 + 4 @ gUnknown_030006C8\n"
+ " ldrb r0, [r0]\n"
+ " ASR r0, r4\n"
+ " mov r1, #0x1\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, sp\n"
+ " mov r1, #0x19\n"
+ " add r2, r5, #0\n"
+ " bl Menu_PrintText\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._184:\n"
+ " .align 2, 0\n"
+ "._183:\n"
+ " .word Str_839BE4C\n"
+ " .word gUnknown_030006C8 \n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077704()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xffffffec\n"
+ " ldr r1, ._185 @ Str_839BE53\n"
+ " mov r0, sp\n"
+ " mov r2, #0x11\n"
+ " bl memcpy\n"
+ " mov r0, #0x13\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x8\n"
+ " bl Menu_BlankWindowRect\n"
+ " mov r0, sp\n"
+ " mov r1, #0x15\n"
+ " mov r2, #0x0\n"
+ " bl Menu_PrintText\n"
+ " ldr r2, ._185 + 4 @ gUnknown_030006C8\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x13\n"
+ " ldrh r0, [r0]\n"
+ " lsr r0, r0, #0x8\n"
+ " mov r1, #0xf\n"
+ " and r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " mov r0, #0x0\n"
+ " bl DebugMenu_80776B4\n"
+ " mov r0, #0x1\n"
+ " bl DebugMenu_80776B4\n"
+ " mov r0, #0x2\n"
+ " bl DebugMenu_80776B4\n"
+ " mov r0, #0x3\n"
+ " bl DebugMenu_80776B4\n"
+ " add sp, sp, #0x14\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._186:\n"
+ " .align 2, 0\n"
+ "._185:\n"
+ " .word Str_839BE53\n"
+ " .word gUnknown_030006C8 \n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_8077760()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " ldr r2, ._190 @ gMain\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " add r5, r2, #0\n"
+ " cmp r0, #0\n"
+ " beq ._187 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " bl Menu_MoveCursor\n"
+ " ldr r1, ._190 + 4 @ gUnknown_030006B8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._188 @cond_branch\n"
+ " sub r0, r0, #0x1\n"
+ " b ._189\n"
+ "._191:\n"
+ " .align 2, 0\n"
+ "._190:\n"
+ " .word gMain\n"
+ " .word gUnknown_030006B8 \n"
+ "._188:\n"
+ " mov r0, #0x3\n"
+ "._189:\n"
+ " strb r0, [r1]\n"
+ "._187:\n"
+ " ldrh r1, [r5, #0x2e]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._192 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ " bl Menu_MoveCursor\n"
+ " ldr r1, ._195 @ gUnknown_030006B8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0x3\n"
+ " beq ._193 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " b ._194\n"
+ "._196:\n"
+ " .align 2, 0\n"
+ "._195:\n"
+ " .word gUnknown_030006B8 \n"
+ "._193:\n"
+ " mov r0, #0x0\n"
+ "._194:\n"
+ " strb r0, [r1]\n"
+ "._192:\n"
+ " ldrh r1, [r5, #0x2e]\n"
+ " mov r0, #0x30\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._197 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r4, ._201 @ gUnknown_030006C8\n"
+ " bl Menu_GetCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x1\n"
+ " LSL r1, r0\n"
+ " ldrb r0, [r4]\n"
+ " eor r1, r1, r0\n"
+ " strb r1, [r4]\n"
+ " bl Menu_GetCursorPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl DebugMenu_80776B4\n"
+ "._197:\n"
+ " ldrh r2, [r5, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._198 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq ._199 @cond_branch\n"
+ "._198:\n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0x13\n"
+ " ldrh r0, [r2]\n"
+ " ldr r1, ._201 + 4 @ 0xf0ff\n"
+ " and r1, r1, r0\n"
+ " ldr r0, ._201 @ gUnknown_030006C8\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x8\n"
+ " add r1, r1, r0\n"
+ " strh r1, [r2]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._200\n"
+ "._202:\n"
+ " .align 2, 0\n"
+ "._201:\n"
+ " .word gUnknown_030006C8 \n"
+ " .word 0xf0ff\n"
+ "._199:\n"
+ " mov r0, #0x0\n"
+ "._200:\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_SwitchBG()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " bl Menu_EraseScreen\n"
+ " bl DebugMenu_8077704\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x6\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x4\n"
+ " bl InitMenu\n"
+ " ldr r1, ._203 @ gMenuCallback\n"
+ " ldr r0, ._203 + 4 @ DebugMenu_8077760\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._204:\n"
+ " .align 2, 0\n"
+ "._203:\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077760+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807786C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " ldr r1, ._205 @ Str_839BE64\n"
+ " mov r0, sp\n"
+ " mov r2, #0x7\n"
+ " bl memcpy\n"
+ " mov r0, #0x19\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x1d\n"
+ " mov r3, #0x3\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " lsl r0, r4, #0x1\n"
+ " add r0, r0, r4\n"
+ " add r0, r0, sp\n"
+ " mov r1, #0x1a\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._206:\n"
+ " .align 2, 0\n"
+ "._205:\n"
+ " .word Str_839BE64\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80778A8()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._211 @ gMain\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x30\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._207 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r2, ._211 + 4 @ sWildEncountersDisabled\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " ldrb r0, [r2]\n"
+ " bl DebugMenu_807786C\n"
+ "._207:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._208 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._209 @cond_branch\n"
+ "._208:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._210\n"
+ "._212:\n"
+ " .align 2, 0\n"
+ "._211:\n"
+ " .word gMain\n"
+ " .word sWildEncountersDisabled\n"
+ "._209:\n"
+ " mov r0, #0x0\n"
+ "._210:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_ControlEncounter()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._213 @ sWildEncountersDisabled\n"
+ " ldrb r0, [r0]\n"
+ " bl DebugMenu_807786C\n"
+ " ldr r1, ._213 + 4 @ gMenuCallback\n"
+ " ldr r0, ._213 + 8 @ DebugMenu_80778A8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._214:\n"
+ " .align 2, 0\n"
+ "._213:\n"
+ " .word sWildEncountersDisabled\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_80778A8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_UseHM()
+{
+ asm(
+ " ldr r1, ._215 @ gMenuCallback\n"
+ " ldr r0, ._215 + 4 @ DebugMenu_8077C14\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " bx lr\n"
+ "._216:\n"
+ " .align 2, 0\n"
+ "._215:\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077C14+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077934()
+{
+ asm(
+ " push {lr}\n"
+ " mov r1, #0x0\n"
+ " ldr r3, ._218 @ gSaveBlock1\n"
+ " mov r2, #0x1\n"
+ "._217:\n"
+ " add r0, r1, r3\n"
+ " strb r2, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, #0x63\n"
+ " bls ._217 @cond_branch\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._219:\n"
+ " .align 2, 0\n"
+ "._218:\n"
+ " .word gSaveBlock1+0x97a\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077954()
+{
+ asm(
+ " push {lr}\n"
+ " mov r1, #0x0\n"
+ " ldr r3, ._222 @ gSaveBlock1\n"
+ " mov r2, #0x0\n"
+ "._221:\n"
+ " add r0, r1, r3\n"
+ " strb r2, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, #0x63\n"
+ " bls ._221 @cond_branch\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._223:\n"
+ " .align 2, 0\n"
+ "._222:\n"
+ " .word gSaveBlock1+0x97a\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077974()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r1, ._226 @ gSaveBlock1\n"
+ " mov r0, #0x4\n"
+ " ldsb r0, [r1, r0]\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " ldrb r1, [r1, #0x5]\n"
+ " lsl r1, r1, #0x18\n"
+ " asr r1, r1, #0x18\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " bl IsRematchTrainerIn\n"
+ " cmp r0, #0\n"
+ " beq ._224 @cond_branch\n"
+ " ldr r0, ._226 + 4 @ gStringVar1\n"
+ " ldr r1, ._226 + 8 @ Str_839BE8D\n"
+ " bl StringCopy\n"
+ " b ._225\n"
+ "._227:\n"
+ " .align 2, 0\n"
+ "._226:\n"
+ " .word gSaveBlock1\n"
+ " .word gStringVar1\n"
+ " .word Str_839BE8D\n"
+ "._224:\n"
+ " ldr r0, ._230 @ gStringVar1\n"
+ " ldr r1, ._230 + 4 @ Str_839BE90\n"
+ " bl StringCopy\n"
+ "._225:\n"
+ " ldr r1, ._230 + 8 @ gSaveBlock1\n"
+ " mov r0, #0x4\n"
+ " ldsb r0, [r1, r0]\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " ldrb r1, [r1, #0x5]\n"
+ " lsl r1, r1, #0x18\n"
+ " asr r1, r1, #0x18\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " bl DoesSomeoneWantRematchIn\n"
+ " cmp r0, #0\n"
+ " beq ._228 @cond_branch\n"
+ " ldr r0, ._230 + 12 @ gStringVar2\n"
+ " ldr r1, ._230 + 16 @ Str_839BE8D\n"
+ " bl StringCopy\n"
+ " b ._229\n"
+ "._231:\n"
+ " .align 2, 0\n"
+ "._230:\n"
+ " .word gStringVar1\n"
+ " .word Str_839BE90\n"
+ " .word gSaveBlock1\n"
+ " .word gStringVar2\n"
+ " .word Str_839BE8D\n"
+ "._228:\n"
+ " ldr r0, ._232 @ gStringVar2\n"
+ " ldr r1, ._232 + 4 @ Str_839BE90\n"
+ " bl StringCopy\n"
+ "._229:\n"
+ " ldr r0, ._232 + 8 @ Str_839BE6B\n"
+ " bl sub_8071F40\n"
+ " ldr r1, ._232 + 12 @ gMenuCallback\n"
+ " ldr r0, ._232 + 16 @ DebugMenu_8077DB4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._233:\n"
+ " .align 2, 0\n"
+ "._232:\n"
+ " .word gStringVar2\n"
+ " .word Str_839BE90\n"
+ " .word Str_839BE6B\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077DB4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077A20()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._234 @ gSaveBlock1\n"
+ " ldr r1, ._234 + 4 @ 0x978\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0xff\n"
+ " strh r1, [r0]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._235:\n"
+ " .align 2, 0\n"
+ "._234:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x978\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077A40()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._236 @ gSaveBlock1\n"
+ " ldr r1, ._236 + 4 @ 0x978\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._237:\n"
+ " .align 2, 0\n"
+ "._236:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x978\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077A60()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._238 @ gUnknown_Debug_839BEE4\n"
+ " bl DebugMenu_8077D78\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._239:\n"
+ " .align 2, 0\n"
+ "._238:\n"
+ " .word gUnknown_Debug_839BEE4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_RematchTrainers()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._240 @ gUnknown_Debug_839BEE4\n"
+ " mov r1, #0xd\n"
+ " mov r2, #0x5\n"
+ " bl DebugMenu_8077D24\n"
+ " ldr r1, ._240 + 4 @ gMenuCallback\n"
+ " ldr r0, ._240 + 8 @ DebugMenu_8077A60\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._241:\n"
+ " .align 2, 0\n"
+ "._240:\n"
+ " .word gUnknown_Debug_839BEE4\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077A60+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077A9C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._242 @ gNumSafariBalls\n"
+ " mov r0, #0x1e\n"
+ " strb r0, [r1]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._243:\n"
+ " .align 2, 0\n"
+ "._242:\n"
+ " .word gNumSafariBalls\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077AB4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._244 @ gNumSafariBalls\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._245:\n"
+ " .align 2, 0\n"
+ "._244:\n"
+ " .word gNumSafariBalls\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077ACC()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._246 @ gSafariZoneStepCounter\n"
+ " mov r2, #0xfa\n"
+ " lsl r2, r2, #0x1\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._247:\n"
+ " .align 2, 0\n"
+ "._246:\n"
+ " .word gSafariZoneStepCounter\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077AE8()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._248 @ gSafariZoneStepCounter\n"
+ " mov r0, #0x1\n"
+ " strh r0, [r1]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._249:\n"
+ " .align 2, 0\n"
+ "._248:\n"
+ " .word gSafariZoneStepCounter\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077B00()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " bl unref_sub_80C853C\n"
+ " cmp r0, #0\n"
+ " beq ._250 @cond_branch\n"
+ " ldr r0, ._252 @ Str_839BF14\n"
+ " bl sub_8071F40\n"
+ " b ._251\n"
+ "._253:\n"
+ " .align 2, 0\n"
+ "._252:\n"
+ " .word Str_839BF14\n"
+ "._250:\n"
+ " ldr r0, ._254 @ Str_839BF1F\n"
+ " bl sub_8071F40\n"
+ "._251:\n"
+ " ldr r1, ._254 + 4 @ gMenuCallback\n"
+ " ldr r0, ._254 + 8 @ DebugMenu_8077DB4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._255:\n"
+ " .align 2, 0\n"
+ "._254:\n"
+ " .word Str_839BF1F\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077DB4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077B3C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._256 @ gUnknown_Debug_839BF6C\n"
+ " bl DebugMenu_8077D78\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._257:\n"
+ " .align 2, 0\n"
+ "._256:\n"
+ " .word gUnknown_Debug_839BF6C\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_Safari()
+{
+ asm(
+ " push {lr}\n"
+ " bl GetSafariZoneFlag\n"
+ " cmp r0, #0\n"
+ " beq ._258 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._260 @ gUnknown_Debug_839BF6C\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0x5\n"
+ " bl DebugMenu_8077D24\n"
+ " ldr r0, ._260 + 4 @ gStringVar1\n"
+ " ldr r1, ._260 + 8 @ gSafariZoneStepCounter\n"
+ " ldrh r1, [r1]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r0, ._260 + 12 @ Str_839BF0C\n"
+ " bl sub_8071F40\n"
+ " ldr r1, ._260 + 16 @ gMenuCallback\n"
+ " ldr r0, ._260 + 20 @ DebugMenu_8077B3C\n"
+ " str r0, [r1]\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x0\n"
+ " b ._259\n"
+ "._261:\n"
+ " .align 2, 0\n"
+ "._260:\n"
+ " .word gUnknown_Debug_839BF6C\n"
+ " .word gStringVar1\n"
+ " .word gSafariZoneStepCounter\n"
+ " .word Str_839BF0C\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077B3C+1\n"
+ "._258:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x16\n"
+ " bl PlaySE\n"
+ " mov r0, #0x1\n"
+ "._259:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077BB4()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_80AFEE4\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077BC0()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8122080\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077BCC()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8120968\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077BD8()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_8130318\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077BE4()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_80986AC\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077BF4()
+{
+ asm(
+ " push {lr}\n"
+ " bl debug_sub_80D93F4\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077C00()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._262 @ gUnknown_Debug_839BF94\n"
+ " bl DebugMenu_8077D78\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._263:\n"
+ " .align 2, 0\n"
+ "._262:\n"
+ " .word gUnknown_Debug_839BF94\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077C14()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._264 @ gUnknown_Debug_839BF94\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " bl DebugMenu_8077D24\n"
+ " ldr r1, ._264 + 4 @ gMenuCallback\n"
+ " ldr r0, ._264 + 8 @ DebugMenu_8077C00\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._265:\n"
+ " .align 2, 0\n"
+ "._264:\n"
+ " .word gUnknown_Debug_839BF94\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077C00+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077C3C()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov sl, r0\n"
+ " add r7, r1, #0\n"
+ " ldr r0, ._271 @ gUnknown_030006BC\n"
+ " ldr r1, ._271 + 4 @ gUnknown_Debug_839BFE8\n"
+ " str r1, [r0]\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r7]\n"
+ " add r7, r7, #0x1\n"
+ " strb r1, [r7]\n"
+ " add r7, r7, #0x1\n"
+ " mov r3, #0x0\n"
+ " mov r8, r0\n"
+ "._269:\n"
+ " mov r5, #0x0\n"
+ " ldr r1, ._271 @ gUnknown_030006BC\n"
+ " ldr r0, [r1]\n"
+ " ldr r2, [r0, #0x4]\n"
+ " mov r4, #0x0\n"
+ " ldr r1, [r0, #0x8]\n"
+ " add r3, r3, #0x1\n"
+ " mov r9, r3\n"
+ " cmp r5, r1\n"
+ " bge ._266 @cond_branch\n"
+ " add r3, r0, #0\n"
+ " add r6, r1, #0\n"
+ "._267:\n"
+ " ldr r0, [r3, #0xc]\n"
+ " add r0, r0, r4\n"
+ " add r0, r0, sl\n"
+ " ldrb r0, [r0]\n"
+ " sub r0, r0, #0x30\n"
+ " mul r0, r0, r2\n"
+ " add r5, r5, r0\n"
+ " add r4, r4, #0x1\n"
+ " add r0, r2, #0\n"
+ " mov r1, #0xa\n"
+ " str r3, [sp]\n"
+ " bl __divsi3\n"
+ " add r2, r0, #0\n"
+ " ldr r3, [sp]\n"
+ " cmp r4, r6\n"
+ " blt ._267 @cond_branch\n"
+ "._266:\n"
+ " mov r0, r8\n"
+ " ldr r1, [r0]\n"
+ " ldr r0, [r1]\n"
+ " cmp r0, r5\n"
+ " bcs ._268 @cond_branch\n"
+ " add r5, r0, #0\n"
+ "._268:\n"
+ " ldrb r3, [r1, #0x8]\n"
+ " add r0, r7, #0\n"
+ " add r1, r5, #0\n"
+ " mov r2, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r7, r0, #0\n"
+ " mov r3, r9\n"
+ " mov r1, r8\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, #0x10\n"
+ " str r0, [r1]\n"
+ " cmp r3, #0x1\n"
+ " ble ._269 @cond_branch\n"
+ " mov r1, sl\n"
+ " ldrb r0, [r1, #0x1d]\n"
+ " add r0, r0, #0x7a\n"
+ " strb r0, [r7]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0xf6\n"
+ " bls ._270 @cond_branch\n"
+ " mov r0, #0xf6\n"
+ " strb r0, [r7]\n"
+ "._270:\n"
+ " mov r0, #0xff\n"
+ " strb r0, [r7, #0x1]\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._272:\n"
+ " .align 2, 0\n"
+ "._271:\n"
+ " .word gUnknown_030006BC \n"
+ " .word gUnknown_Debug_839BFE8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8077CF4()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r4, r0, #0\n"
+ " add r5, r1, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " ldr r0, ._273 @ BuildDateTime\n"
+ " ldr r6, ._273 + 4 @ gStringVar4\n"
+ " add r1, r6, #0\n"
+ " bl DebugMenu_8077C3C\n"
+ " add r0, r6, #0\n"
+ " add r1, r4, #0\n"
+ " add r2, r5, #0\n"
+ " bl Menu_PrintText\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._274:\n"
+ " .align 2, 0\n"
+ "._273:\n"
+ " .word BuildDateTime\n"
+ " .word gStringVar4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077D24()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " add r6, r0, #0\n"
+ " add r4, r1, #0\n"
+ " add r5, r2, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " lsl r5, r5, #0x18\n"
+ " lsr r5, r5, #0x18\n"
+ " bl Menu_EraseScreen\n"
+ " lsl r3, r5, #0x1\n"
+ " add r3, r3, #0x1\n"
+ " lsl r3, r3, #0x18\n"
+ " lsr r3, r3, #0x18\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " add r2, r4, #0\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " add r2, r5, #0\n"
+ " add r3, r6, #0\n"
+ " bl Menu_PrintItems\n"
+ " mov r0, #0x0\n"
+ " str r0, [sp]\n"
+ " sub r4, r4, #0x1\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " str r4, [sp, #0x4]\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " add r3, r5, #0\n"
+ " bl InitMenu\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077D78()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r5, r0, #0\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r4, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r4, r0\n"
+ " beq ._275 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r4, r0\n"
+ " beq ._276 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._278 @ gMenuCallback\n"
+ " lsl r1, r4, #0x3\n"
+ " add r1, r1, r5\n"
+ " ldr r1, [r1, #0x4]\n"
+ " str r1, [r0]\n"
+ "._275:\n"
+ " mov r0, #0x0\n"
+ " b ._277\n"
+ "._279:\n"
+ " .align 2, 0\n"
+ "._278:\n"
+ " .word gMenuCallback\n"
+ "._276:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._277:\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077DB4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._282 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._280 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._281\n"
+ "._283:\n"
+ " .align 2, 0\n"
+ "._282:\n"
+ " .word gMain\n"
+ "._280:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._281:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077DD8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r4, r0, #0\n"
+ " add r5, r1, #0\n"
+ " lsl r3, r3, #0x10\n"
+ " lsr r3, r3, #0x10\n"
+ " add r1, r3, #0\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._284 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0x1\n"
+ " b ._285\n"
+ "._284:\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._286 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " b ._287\n"
+ "._286:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r3\n"
+ " cmp r0, #0\n"
+ " beq ._288 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0xa\n"
+ "._285:\n"
+ " strh r0, [r4]\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, r5\n"
+ " bge ._293 @cond_branch\n"
+ " strh r2, [r4]\n"
+ " b ._293\n"
+ "._288:\n"
+ " mov r0, #0x10\n"
+ " and r1, r1, r0\n"
+ " cmp r1, #0\n"
+ " bne ._291 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._292\n"
+ "._291:\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0xa\n"
+ "._287:\n"
+ " strh r0, [r4]\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, r2\n"
+ " ble ._293 @cond_branch\n"
+ " strh r5, [r4]\n"
+ "._293:\n"
+ " mov r0, #0x1\n"
+ "._292:\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077E40()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " ldr r0, ._297 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._294 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._295 @cond_branch\n"
+ "._294:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " b ._302\n"
+ "._298:\n"
+ " .align 2, 0\n"
+ "._297:\n"
+ " .word gMain\n"
+ "._295:\n"
+ " mov r0, #0x30\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._299 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " cmp r4, #0\n"
+ " beq ._300 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " bl DebugMenu_807786C\n"
+ " mov r0, #0x0\n"
+ " b ._302\n"
+ "._300:\n"
+ " mov r0, #0x0\n"
+ " bl DebugMenu_807786C\n"
+ " mov r0, #0x1\n"
+ " b ._302\n"
+ "._299:\n"
+ " add r0, r4, #0\n"
+ "._302:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_MakeItems()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl DebugMenu_8077EAC\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077EAC()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._303 @ DebugMenu_8077F40\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r1, ._303 + 4 @ gTasks\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x1\n"
+ " strh r1, [r0, #0xa]\n"
+ " strh r1, [r0, #0xc]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._304:\n"
+ " .align 2, 0\n"
+ "._303:\n"
+ " .word DebugMenu_8077F40+1\n"
+ " .word gTasks\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077EE0()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r4, r0, #0\n"
+ " add r6, r1, #0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " lsl r6, r6, #0x10\n"
+ " lsr r6, r6, #0x10\n"
+ " mov r0, #0x4\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x16\n"
+ " mov r3, #0x12\n"
+ " bl Menu_BlankWindowRect\n"
+ " ldr r5, ._305 @ gStringVar1\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " add r0, r4, #0\n"
+ " bl ItemId_GetItem\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x12\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._306:\n"
+ " .align 2, 0\n"
+ "._305:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077F40()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r4, r0, #0x2\n"
+ " add r4, r4, r0\n"
+ " lsl r4, r4, #0x3\n"
+ " ldr r0, ._307 @ gTasks\n"
+ " add r4, r4, r0\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._307 + 4 @ gDebug0x839C008\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldrh r0, [r4, #0xa]\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " bl DebugMenu_8077EE0\n"
+ " ldr r0, ._307 + 8 @ DebugMenu_8077F7C\n"
+ " str r0, [r4]\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._308:\n"
+ " .align 2, 0\n"
+ "._307:\n"
+ " .word gTasks\n"
+ " .word gDebug0x839C008\n"
+ " .word DebugMenu_8077F7C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077F7C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " ldr r0, ._311 @ gTasks\n"
+ " add r4, r1, r0\n"
+ " ldr r3, ._311 + 4 @ gMain\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._309 @cond_branch\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._311 + 8 @ Str_839C014\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldrh r0, [r4, #0xa]\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " bl DebugMenu_8077EE0\n"
+ " ldr r0, ._311 + 12 @ DebugMenu_8077FFC\n"
+ " str r0, [r4]\n"
+ " b ._317\n"
+ "._312:\n"
+ " .align 2, 0\n"
+ "._311:\n"
+ " .word gTasks\n"
+ " .word gMain\n"
+ " .word Str_839C014\n"
+ " .word DebugMenu_8077FFC+1\n"
+ "._309:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._313 @cond_branch\n"
+ " ldr r0, ._315 @ DebugMenu_807806C\n"
+ " str r0, [r4]\n"
+ " b ._317\n"
+ "._316:\n"
+ " .align 2, 0\n"
+ "._315:\n"
+ " .word DebugMenu_807806C+1\n"
+ "._313:\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xa\n"
+ " mov r2, #0xae\n"
+ " lsl r2, r2, #0x1\n"
+ " ldrh r3, [r3, #0x30]\n"
+ " mov r1, #0x1\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0x1\n"
+ " bne ._317 @cond_branch\n"
+ " ldrh r0, [r4, #0xa]\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " bl DebugMenu_8077EE0\n"
+ "._317:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8077FFC()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " ldr r0, ._321 @ gTasks\n"
+ " add r4, r1, r0\n"
+ " ldr r2, ._321 + 4 @ gMain\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._318 @cond_branch\n"
+ " ldrh r0, [r4, #0xa]\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " bl AddBagItem\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._320 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " b ._320\n"
+ "._322:\n"
+ " .align 2, 0\n"
+ "._321:\n"
+ " .word gTasks\n"
+ " .word gMain\n"
+ "._318:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._323 @cond_branch\n"
+ "._320:\n"
+ " ldr r0, ._325 @ DebugMenu_8077F40\n"
+ " str r0, [r4]\n"
+ " b ._327\n"
+ "._326:\n"
+ " .align 2, 0\n"
+ "._325:\n"
+ " .word DebugMenu_8077F40+1\n"
+ "._323:\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0xc\n"
+ " ldrh r3, [r2, #0x30]\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x63\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0x1\n"
+ " bne ._327 @cond_branch\n"
+ " ldrh r0, [r4, #0xa]\n"
+ " ldrh r1, [r4, #0xc]\n"
+ " bl DebugMenu_8077EE0\n"
+ "._327:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807806C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " bl DebugMenu_8077048\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807808C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffff4\n"
+ " add r4, r0, #0\n"
+ " sub r0, r4, #1\n"
+ " cmp r0, #0xc\n"
+ " bls ._328 @cond_branch\n"
+ " mov r4, #0x1\n"
+ "._328:\n"
+ " lsl r1, r4, #0x5\n"
+ " ldr r0, ._331 @ gSaveBlock1\n"
+ " add r5, r1, r0\n"
+ " bl Menu_EraseScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x13\n"
+ " mov r3, #0x11\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._331 + 4 @ Str_839C01E\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x2\n"
+ " bl Menu_PrintText\n"
+ " mov r0, sp\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x2\n"
+ " bl Menu_PrintText\n"
+ " ldrh r1, [r5, #0x8]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x4\n"
+ " bl Menu_PrintText\n"
+ " add r4, r5, #0\n"
+ " add r4, r4, #0xb\n"
+ " add r0, r4, #0\n"
+ " bl StringLength\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi ._329 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x6\n"
+ " bl Menu_PrintText\n"
+ " b ._330\n"
+ "._332:\n"
+ " .align 2, 0\n"
+ "._331:\n"
+ " .word gSaveBlock1+0x2ddc\n"
+ " .word Str_839C01E\n"
+ "._329:\n"
+ " ldr r0, ._335 @ Str_839C04D\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x6\n"
+ " bl Menu_PrintText\n"
+ "._330:\n"
+ " add r4, r5, #0\n"
+ " add r4, r4, #0x16\n"
+ " add r0, r4, #0\n"
+ " bl StringLength\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, #0xb\n"
+ " bhi ._333 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x8\n"
+ " bl Menu_PrintText\n"
+ " b ._334\n"
+ "._336:\n"
+ " .align 2, 0\n"
+ "._335:\n"
+ " .word Str_839C04D\n"
+ "._333:\n"
+ " ldr r0, ._337 @ Str_839C04D\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0x8\n"
+ " bl Menu_PrintText\n"
+ "._334:\n"
+ " ldrb r1, [r5, #0xa]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0xa\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, [r5]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x8\n"
+ " bl ConvertIntToHexStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xb\n"
+ " mov r2, #0xc\n"
+ " bl Menu_PrintText\n"
+ " add sp, sp, #0xc\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._338:\n"
+ " .align 2, 0\n"
+ "._337:\n"
+ " .word Str_839C04D\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807817C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, ._340 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._339 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " bl ScriptContext2_Disable\n"
+ "._339:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._341:\n"
+ " .align 2, 0\n"
+ "._340:\n"
+ " .word gMain\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80781A8()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " ldr r0, ._344 @ gTasks\n"
+ " add r5, r1, r0\n"
+ " ldrh r1, [r5, #0x8]\n"
+ " mov r2, #0x8\n"
+ " ldsh r0, [r5, r2]\n"
+ " cmp r0, #0\n"
+ " bne ._342 @cond_branch\n"
+ " add r0, r1, #1\n"
+ " strh r0, [r5, #0x8]\n"
+ " b ._343\n"
+ "._345:\n"
+ " .align 2, 0\n"
+ "._344:\n"
+ " .word gTasks\n"
+ "._342:\n"
+ " ldr r2, ._348 @ gMain\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._346 @cond_branch\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r5, r1]\n"
+ " bl DebugMenu_807808C\n"
+ " ldr r0, ._348 + 4 @ DebugMenu_807817C\n"
+ " str r0, [r5]\n"
+ " b ._350\n"
+ "._349:\n"
+ " .align 2, 0\n"
+ "._348:\n"
+ " .word gMain\n"
+ " .word DebugMenu_807817C+1\n"
+ "._346:\n"
+ " add r0, r5, #0\n"
+ " add r0, r0, #0x8\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r3, #0xc0\n"
+ " and r3, r3, r1\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xd\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0\n"
+ " beq ._350 @cond_branch\n"
+ "._343:\n"
+ " mov r0, #0x4\n"
+ " mov r1, #0x11\n"
+ " mov r2, #0x16\n"
+ " mov r3, #0x12\n"
+ " bl Menu_BlankWindowRect\n"
+ " ldr r4, ._351 @ gStringVar1\n"
+ " mov r2, #0x8\n"
+ " ldsh r1, [r5, r2]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ "._350:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._352:\n"
+ " .align 2, 0\n"
+ "._351:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_ViewPortraits()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._353 @ DebugMenu_80781A8\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._354:\n"
+ " .align 2, 0\n"
+ "._353:\n"
+ " .word DebugMenu_80781A8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078254()
+{
+ asm(
+ " push {lr}\n"
+ " bl DebugMenu_807808C\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_AllBadges()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._355 @ 0x807\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 4 @ 0x808\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 8 @ 0x809\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 12 @ 0x80a\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 16 @ 0x80b\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 20 @ 0x80c\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 24 @ 0x80d\n"
+ " bl FlagSet\n"
+ " ldr r0, ._355 + 28 @ 0x80e\n"
+ " bl FlagSet\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._356:\n"
+ " .align 2, 0\n"
+ "._355:\n"
+ " .word 0x807\n"
+ " .word 0x808\n"
+ " .word 0x809\n"
+ " .word 0x80a\n"
+ " .word 0x80b\n"
+ " .word 0x80c\n"
+ " .word 0x80d\n"
+ " .word 0x80e\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_TimeRecords()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._357 @ debug_sub_806F9E4\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._358:\n"
+ " .align 2, 0\n"
+ "._357:\n"
+ " .word debug_sub_806F9E4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_SetTime()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl debug_sub_806F99C\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80782EC()
+{
+ asm(
+ " push {lr}\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " ldr r0, ._359 @ gStringVar1\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToHexStringN\n"
+ " ldr r0, ._359 + 4 @ Str_839C053\n"
+ " bl sub_8071F40\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._360:\n"
+ " .align 2, 0\n"
+ "._359:\n"
+ " .word gStringVar1\n"
+ " .word Str_839C053\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078310()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._364 @ gTasks\n"
+ " add r4, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._361 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._362 @cond_branch\n"
+ " b ._375\n"
+ "._365:\n"
+ " .align 2, 0\n"
+ "._364:\n"
+ " .word gTasks+0x8\n"
+ "._361:\n"
+ " ldr r0, ._367 @ 0x4024\n"
+ " bl VarGet\n"
+ " strh r0, [r4, #0x2]\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_80782EC\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4]\n"
+ " b ._375\n"
+ "._368:\n"
+ " .align 2, 0\n"
+ "._367:\n"
+ " .word 0x4024\n"
+ "._362:\n"
+ " ldr r3, ._371 @ gMain\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._369 @cond_branch\n"
+ " mov r0, #0x49\n"
+ " bl PlaySE\n"
+ " ldr r0, ._371 + 4 @ 0x4024\n"
+ " bl GetVarPointer\n"
+ " ldrh r1, [r4, #0x2]\n"
+ " strh r1, [r0]\n"
+ " b ._370\n"
+ "._372:\n"
+ " .align 2, 0\n"
+ "._371:\n"
+ " .word gMain\n"
+ " .word 0x4024\n"
+ "._369:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._373 @cond_branch\n"
+ "._370:\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ " bl ScriptContext2_Disable\n"
+ " b ._375\n"
+ "._373:\n"
+ " add r0, r4, #2\n"
+ " ldr r2, ._376 @ 0xffff\n"
+ " ldrh r3, [r3, #0x30]\n"
+ " mov r1, #0x0\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0x1\n"
+ " bne ._375 @cond_branch\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_80782EC\n"
+ "._375:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._377:\n"
+ " .align 2, 0\n"
+ "._376:\n"
+ " .word 0xffff\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_MiragaIslandRND()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._378 @ DebugMenu_8078310\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._379:\n"
+ " .align 2, 0\n"
+ "._378:\n"
+ " .word DebugMenu_8078310+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80783C8()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._383 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x30\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._382 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " bl PlaySE\n"
+ " ldr r4, ._383 + 4 @ 0x804\n"
+ " add r0, r4, #0\n"
+ " bl FlagGet\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._381 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl FlagSet\n"
+ " mov r0, #0x0\n"
+ " bl DebugMenu_807786C\n"
+ " b ._382\n"
+ "._384:\n"
+ " .align 2, 0\n"
+ "._383:\n"
+ " .word gMain\n"
+ " .word 0x804\n"
+ "._381:\n"
+ " add r0, r4, #0\n"
+ " bl FlagClear\n"
+ " mov r0, #0x1\n"
+ " bl DebugMenu_807786C\n"
+ "._382:\n"
+ " ldr r0, ._388 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._385 @cond_branch\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._386 @cond_branch\n"
+ "._385:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._387\n"
+ "._389:\n"
+ " .align 2, 0\n"
+ "._388:\n"
+ " .word gMain\n"
+ "._386:\n"
+ " mov r0, #0x0\n"
+ "._387:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_ToggleClearFlag()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._390 @ 0x804\n"
+ " bl FlagGet\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl DebugMenu_807786C\n"
+ " ldr r1, ._390 + 4 @ gMenuCallback\n"
+ " ldr r0, ._390 + 8 @ DebugMenu_80783C8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._391:\n"
+ " .align 2, 0\n"
+ "._390:\n"
+ " .word 0x804\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_80783C8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078464()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._396 @ 0x82a\n"
+ " add r0, r4, #0\n"
+ " bl FlagGet\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl DebugMenu_8077E40\n"
+ " add r1, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._392 @cond_branch\n"
+ " cmp r1, #0\n"
+ " bgt ._393 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._394 @cond_branch\n"
+ " b ._401\n"
+ "._397:\n"
+ " .align 2, 0\n"
+ "._396:\n"
+ " .word 0x82a\n"
+ "._393:\n"
+ " cmp r1, #0x1\n"
+ " beq ._398 @cond_branch\n"
+ " b ._401\n"
+ "._392:\n"
+ " add r0, r4, #0\n"
+ " bl FlagClear\n"
+ " b ._401\n"
+ "._398:\n"
+ " add r0, r4, #0\n"
+ " bl FlagSet\n"
+ " b ._401\n"
+ "._394:\n"
+ " mov r0, #0x1\n"
+ " b ._402\n"
+ "._401:\n"
+ " mov r0, #0x0\n"
+ "._402:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenWeatherEvents()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._404 @ 0x82a\n"
+ " bl FlagGet\n"
+ " mov r1, #0x0\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._403 @cond_branch\n"
+ " mov r1, #0x1\n"
+ "._403:\n"
+ " add r0, r1, #0\n"
+ " bl DebugMenu_807786C\n"
+ " ldr r1, ._404 + 4 @ gMenuCallback\n"
+ " ldr r0, ._404 + 8 @ DebugMenu_8078464\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._405:\n"
+ " .align 2, 0\n"
+ "._404:\n"
+ " .word 0x82a\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078464+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80784E8()
+{
+ asm(
+ " push {lr}\n"
+ " bl IsMysteryGiftEnabled\n"
+ " bl DebugMenu_8077E40\n"
+ " add r1, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq ._406 @cond_branch\n"
+ " cmp r1, #0\n"
+ " bgt ._407 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._408 @cond_branch\n"
+ " b ._413\n"
+ "._407:\n"
+ " cmp r1, #0x1\n"
+ " beq ._410 @cond_branch\n"
+ " b ._413\n"
+ "._406:\n"
+ " bl DisableMysteryGift\n"
+ " b ._413\n"
+ "._410:\n"
+ " bl EnableMysteryGift\n"
+ " b ._413\n"
+ "._408:\n"
+ " mov r0, #0x1\n"
+ " b ._414\n"
+ "._413:\n"
+ " mov r0, #0x0\n"
+ "._414:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenMysteryEvent()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " bl IsMysteryGiftEnabled\n"
+ " mov r1, #0x0\n"
+ " cmp r0, #0\n"
+ " bne ._415 @cond_branch\n"
+ " mov r1, #0x1\n"
+ "._415:\n"
+ " add r0, r1, #0\n"
+ " bl DebugMenu_807786C\n"
+ " ldr r1, ._416 @ gMenuCallback\n"
+ " ldr r0, ._416 + 4 @ DebugMenu_80784E8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._417:\n"
+ " .align 2, 0\n"
+ "._416:\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_80784E8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078550()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r6, r0, #0x10\n"
+ " lsl r0, r6, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl GetGameStat\n"
+ " add r7, r0, #0\n"
+ " ldr r0, ._420 @ gStringVar1\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r0, ._420 + 4 @ gStringVar2\n"
+ " ldr r5, ._420 + 8 @ gUnknown_Debug_839C26C\n"
+ " lsl r4, r6, #0x3\n"
+ " add r1, r5, #4\n"
+ " add r1, r4, r1\n"
+ " ldr r1, [r1]\n"
+ " bl StringCopy\n"
+ " add r4, r4, r5\n"
+ " ldr r0, [r4]\n"
+ " cmp r0, #0\n"
+ " bne ._418 @cond_branch\n"
+ " ldr r0, ._420 + 12 @ gStringVar3\n"
+ " ldr r1, ._420 + 16 @ Str_839C085\n"
+ " bl StringCopy\n"
+ " b ._423\n"
+ "._421:\n"
+ " .align 2, 0\n"
+ "._420:\n"
+ " .word gStringVar1\n"
+ " .word gStringVar2\n"
+ " .word gUnknown_Debug_839C26C\n"
+ " .word gStringVar3\n"
+ " .word Str_839C085\n"
+ "._418:\n"
+ " cmp r6, #0x1\n"
+ " beq ._422 @cond_branch\n"
+ " ldr r0, ._424 @ gStringVar3\n"
+ " add r1, r7, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0xa\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " b ._423\n"
+ "._425:\n"
+ " .align 2, 0\n"
+ "._424:\n"
+ " .word gStringVar3\n"
+ "._422:\n"
+ " ldr r4, ._426 @ gStringVar3\n"
+ " lsr r1, r7, #0x10\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r6, #0xf0\n"
+ " strb r6, [r4, #0x3]\n"
+ " add r0, r4, #4\n"
+ " lsr r1, r7, #0x8\n"
+ " mov r5, #0xff\n"
+ " and r1, r1, r5\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " strb r6, [r4, #0x6]\n"
+ " add r4, r4, #0x7\n"
+ " and r7, r7, r5\n"
+ " add r0, r4, #0\n"
+ " add r1, r7, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ "._423:\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._426 + 4 @ Str_839C07C\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._427:\n"
+ " .align 2, 0\n"
+ "._426:\n"
+ " .word gStringVar3\n"
+ " .word Str_839C07C\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807860C()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._432 @ gTasks\n"
+ " add r4, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._428 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._429 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._430 @cond_branch\n"
+ " b ._447\n"
+ "._433:\n"
+ " .align 2, 0\n"
+ "._432:\n"
+ " .word gTasks+0x8\n"
+ "._429:\n"
+ " cmp r0, #0x2\n"
+ " beq ._434 @cond_branch\n"
+ " b ._447\n"
+ "._430:\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_8078550\n"
+ "._441:\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4]\n"
+ " b ._447\n"
+ "._428:\n"
+ " ldr r3, ._439 @ gMain\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._437 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r4]\n"
+ " mov r0, #0x1\n"
+ " b ._438\n"
+ "._440:\n"
+ " .align 2, 0\n"
+ "._439:\n"
+ " .word gMain\n"
+ "._437:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r2, r0, #0x10\n"
+ " cmp r2, #0\n"
+ " bne ._441 @cond_branch\n"
+ " ldrh r1, [r3, #0x30]\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._442 @cond_branch\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4, #0x2]\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " cmp r0, #0x32\n"
+ " bne ._446 @cond_branch\n"
+ " strh r2, [r4, #0x2]\n"
+ " b ._446\n"
+ "._442:\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._447 @cond_branch\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r4, #0x2]\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bge ._446 @cond_branch\n"
+ " mov r0, #0x31\n"
+ " strh r0, [r4, #0x2]\n"
+ "._446:\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_8078550\n"
+ " b ._447\n"
+ "._434:\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ "._447:\n"
+ " mov r0, #0x0\n"
+ "._438:\n"
+ " pop {r4, r5}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80786C0()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " bl DebugMenu_807860C\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80786D0()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r0, r4, #0\n"
+ " bl DebugMenu_807860C\n"
+ " cmp r0, #0\n"
+ " beq ._449 @cond_branch\n"
+ " ldr r1, ._450 @ gTasks\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r0, #0xa]\n"
+ " ldr r1, ._450 + 4 @ gUnknown_Debug_839C26C\n"
+ " lsl r0, r2, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._449 @cond_branch\n"
+ " sub r1, r0, #1\n"
+ " add r0, r2, #0\n"
+ " bl SetGameStat\n"
+ " mov r0, #0x15\n"
+ " bl PlaySE\n"
+ "._449:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._451:\n"
+ " .align 2, 0\n"
+ "._450:\n"
+ " .word gTasks\n"
+ " .word gUnknown_Debug_839C26C\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078714()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r0, r4, #0\n"
+ " bl DebugMenu_807860C\n"
+ " cmp r0, #0\n"
+ " beq ._453 @cond_branch\n"
+ " ldr r1, ._454 @ gTasks\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrb r2, [r0, #0xa]\n"
+ " ldr r1, ._454 + 4 @ gUnknown_Debug_839C26C\n"
+ " lsl r0, r2, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._453 @cond_branch\n"
+ " add r0, r2, #0\n"
+ " mov r1, #0x0\n"
+ " bl SetGameStat\n"
+ " mov r0, #0x15\n"
+ " bl PlaySE\n"
+ "._453:\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._455:\n"
+ " .align 2, 0\n"
+ "._454:\n"
+ " .word gTasks\n"
+ " .word gUnknown_Debug_839C26C\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078758()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " bl CloseMenu\n"
+ " bl ScriptContext2_Enable\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " mov r0, #0x1\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078774()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._456 @ DebugMenu_80786C0\n"
+ " bl DebugMenu_8078758\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._457:\n"
+ " .align 2, 0\n"
+ "._456:\n"
+ " .word DebugMenu_80786C0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078788()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._458 @ DebugMenu_80786D0\n"
+ " bl DebugMenu_8078758\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._459:\n"
+ " .align 2, 0\n"
+ "._458:\n"
+ " .word DebugMenu_80786D0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_807879C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._460 @ DebugMenu_8078714\n"
+ " bl DebugMenu_8078758\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._461:\n"
+ " .align 2, 0\n"
+ "._460:\n"
+ " .word DebugMenu_8078714+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80787B0()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._462 @ gUnknown_Debug_839C3FC\n"
+ " bl DebugMenu_8077D78\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._463:\n"
+ " .align 2, 0\n"
+ "._462:\n"
+ " .word gUnknown_Debug_839C3FC\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenLegendsRecord()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._464 @ gUnknown_Debug_839C3FC\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x3\n"
+ " bl DebugMenu_8077D24\n"
+ " ldr r1, ._464 + 4 @ gMenuCallback\n"
+ " ldr r0, ._464 + 8 @ DebugMenu_80787B0\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._465:\n"
+ " .align 2, 0\n"
+ "._464:\n"
+ " .word gUnknown_Debug_839C3FC\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_80787B0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80787EC()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " mov r5, sp\n"
+ " add r5, r5, #0x2\n"
+ " mov r0, sp\n"
+ " add r1, r5, #0\n"
+ " bl GetXYCoordsOneStepInFrontOfPlayer\n"
+ " ldr r4, ._466 @ gSpecialVar_Result\n"
+ " mov r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r5, r2]\n"
+ " bl MapGridGetMetatileBehaviorAt\n"
+ " strh r0, [r4]\n"
+ " ldr r0, ._466 + 4 @ gStringVar1\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToHexStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r5, r2]\n"
+ " bl MapGridGetMetatileIdAt\n"
+ " strh r0, [r4]\n"
+ " ldr r0, ._466 + 8 @ gStringVar2\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToHexStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r0, r1]\n"
+ " mov r2, #0x0\n"
+ " ldsh r1, [r5, r2]\n"
+ " bl MapGridGetZCoordAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " strh r0, [r4]\n"
+ " ldr r0, ._466 + 12 @ gStringVar3\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToHexStringN\n"
+ " ldr r0, ._466 + 16 @ gStringVar4\n"
+ " ldr r1, ._466 + 20 @ Str_839C414\n"
+ " bl StringExpandPlaceholders\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._467:\n"
+ " .align 2, 0\n"
+ "._466:\n"
+ " .word gSpecialVar_Result\n"
+ " .word gStringVar1\n"
+ " .word gStringVar2\n"
+ " .word gStringVar3\n"
+ " .word gStringVar4\n"
+ " .word Str_839C414\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078880()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._472 @ gTasks\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r4, r0, r1\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._468 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._469 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._470 @cond_branch\n"
+ " b ._480\n"
+ "._473:\n"
+ " .align 2, 0\n"
+ "._472:\n"
+ " .word gTasks\n"
+ "._469:\n"
+ " cmp r0, #0x2\n"
+ " beq ._474 @cond_branch\n"
+ " b ._480\n"
+ "._470:\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " b ._476\n"
+ "._468:\n"
+ " ldr r0, ._478 @ gStringVar4\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ "._476:\n"
+ " ldrh r0, [r4, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4, #0x8]\n"
+ " b ._480\n"
+ "._479:\n"
+ " .align 2, 0\n"
+ "._478:\n"
+ " .word gStringVar4\n"
+ "._474:\n"
+ " ldr r0, ._481 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._480 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ "._480:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._482:\n"
+ " .align 2, 0\n"
+ "._481:\n"
+ " .word gMain\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_CellInfo()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._483 @ DebugMenu_8078880\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl DebugMenu_80787EC\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._484:\n"
+ " .align 2, 0\n"
+ "._483:\n"
+ " .word DebugMenu_8078880+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenBerryInfo()
+{
+ asm(
+ " push {r4, lr}\n"
+ " bl DebugOpenBerryInfo\n"
+ " add r4, r0, #0\n"
+ " cmp r4, #0\n"
+ " bne ._485 @cond_branch\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " b ._486\n"
+ "._485:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x13\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._487 @ gMenuCallback\n"
+ " ldr r0, ._487 + 4 @ DebugMenu_8077DB4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ "._486:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._488:\n"
+ " .align 2, 0\n"
+ "._487:\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8077DB4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078950()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._489 @ Str_839C42E\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._490:\n"
+ " .align 2, 0\n"
+ "._489:\n"
+ " .word Str_839C42E\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078968()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bne ._491 @cond_branch\n"
+ " ldr r0, ._493 @ gStringVar1\n"
+ " mov r1, #0x32\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " b ._492\n"
+ "._494:\n"
+ " .align 2, 0\n"
+ "._493:\n"
+ " .word gStringVar1\n"
+ "._491:\n"
+ " ldr r0, ._495 @ gStringVar1\n"
+ " mov r1, #0x64\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ "._492:\n"
+ " ldr r0, ._495 @ gStringVar1\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._496:\n"
+ " .align 2, 0\n"
+ "._495:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80789A4()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " ldr r4, ._497 @ gStringVar1\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x9\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._498:\n"
+ " .align 2, 0\n"
+ "._497:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_80789CC()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r4, r0, #0x2\n"
+ " add r4, r4, r0\n"
+ " lsl r4, r4, #0x3\n"
+ " ldr r6, ._499 @ gTasks\n"
+ " add r5, r4, r6\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r5]\n"
+ " ldr r0, ._499 + 4 @ gSaveBlock2\n"
+ " ldr r1, ._499 + 8 @ 0x55c\n"
+ " add r0, r0, r1\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r5, #0x2]\n"
+ " bl DebugMenu_8078950\n"
+ " ldrh r0, [r5]\n"
+ " bl DebugMenu_8078968\n"
+ " sub r6, r6, #0x8\n"
+ " add r4, r4, r6\n"
+ " ldr r0, ._499 + 12 @ DebugMenu_8078A14\n"
+ " str r0, [r4]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._500:\n"
+ " .align 2, 0\n"
+ "._499:\n"
+ " .word gTasks+0x8\n"
+ " .word gSaveBlock2\n"
+ " .word 0x55c\n"
+ " .word DebugMenu_8078A14+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078A14()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r4, r1, #0x3\n"
+ " ldr r5, ._504 @ gTasks\n"
+ " add r2, r4, r5\n"
+ " ldr r0, ._504 + 4 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0xc0\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._501 @cond_branch\n"
+ " mov r1, #0x0\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r2, r3]\n"
+ " cmp r0, #0\n"
+ " bne ._502 @cond_branch\n"
+ " mov r1, #0x1\n"
+ "._502:\n"
+ " strh r1, [r2]\n"
+ " ldrh r0, [r2]\n"
+ " bl DebugMenu_8078968\n"
+ " b ._510\n"
+ "._505:\n"
+ " .align 2, 0\n"
+ "._504:\n"
+ " .word gTasks+0x8\n"
+ " .word gMain\n"
+ "._501:\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._506 @cond_branch\n"
+ " ldr r1, ._508 @ gSaveBlock2\n"
+ " mov r3, #0x0\n"
+ " ldsh r0, [r2, r3]\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r3, ._508 + 4 @ 0x55c\n"
+ " add r1, r1, r3\n"
+ " add r0, r0, r1\n"
+ " ldrh r0, [r0]\n"
+ " strh r0, [r2, #0x2]\n"
+ " ldrh r0, [r2, #0x2]\n"
+ " bl DebugMenu_80789A4\n"
+ " add r0, r5, #0\n"
+ " sub r0, r0, #0x8\n"
+ " add r0, r4, r0\n"
+ " ldr r1, ._508 + 8 @ DebugMenu_8078AA4\n"
+ " b ._507\n"
+ "._509:\n"
+ " .align 2, 0\n"
+ "._508:\n"
+ " .word gSaveBlock2\n"
+ " .word 0x55c\n"
+ " .word DebugMenu_8078AA4+1\n"
+ "._506:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._510 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " sub r0, r0, #0x8\n"
+ " add r0, r4, r0\n"
+ " ldr r1, ._511 @ DebugMenu_8078B38\n"
+ "._507:\n"
+ " str r1, [r0]\n"
+ "._510:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._512:\n"
+ " .align 2, 0\n"
+ "._511:\n"
+ " .word DebugMenu_8078B38+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078AA4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r5, r1, #0x3\n"
+ " ldr r7, ._515 @ gTasks\n"
+ " add r4, r5, r7\n"
+ " add r0, r4, #2\n"
+ " mov r2, #0xfa\n"
+ " lsl r2, r2, #0x3\n"
+ " ldr r6, ._515 + 4 @ gMain\n"
+ " ldrh r3, [r6, #0x30]\n"
+ " mov r1, #0x0\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0x1\n"
+ " bne ._513 @cond_branch\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_80789A4\n"
+ " b ._521\n"
+ "._516:\n"
+ " .align 2, 0\n"
+ "._515:\n"
+ " .word gTasks+0x8\n"
+ " .word gMain\n"
+ "._513:\n"
+ " ldrh r1, [r6, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._517 @cond_branch\n"
+ " ldr r1, ._519 @ gSaveBlock2\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " lsl r0, r0, #0x1\n"
+ " ldr r2, ._519 + 4 @ 0x55c\n"
+ " add r1, r1, r2\n"
+ " add r0, r0, r1\n"
+ " ldrh r1, [r4, #0x2]\n"
+ " strh r1, [r0]\n"
+ " mov r0, #0x49\n"
+ " bl PlaySE\n"
+ " add r0, r7, #0\n"
+ " sub r0, r0, #0x8\n"
+ " add r0, r5, r0\n"
+ " ldr r1, ._519 + 8 @ DebugMenu_8078B38\n"
+ " b ._518\n"
+ "._520:\n"
+ " .align 2, 0\n"
+ "._519:\n"
+ " .word gSaveBlock2\n"
+ " .word 0x55c\n"
+ " .word DebugMenu_8078B38+1\n"
+ "._517:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._521 @cond_branch\n"
+ " bl DebugMenu_8078950\n"
+ " ldrh r0, [r4]\n"
+ " bl DebugMenu_8078968\n"
+ " add r0, r7, #0\n"
+ " sub r0, r0, #0x8\n"
+ " add r0, r5, r0\n"
+ " ldr r1, ._522 @ DebugMenu_8078A14\n"
+ "._518:\n"
+ " str r1, [r0]\n"
+ "._521:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._523:\n"
+ " .align 2, 0\n"
+ "._522:\n"
+ " .word DebugMenu_8078A14+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078B38()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_BattleTowerStages()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl ScriptContext2_Enable\n"
+ " ldr r0, ._524 @ DebugMenu_80789CC\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._525:\n"
+ " .align 2, 0\n"
+ "._524:\n"
+ " .word DebugMenu_80789CC+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078B70()
+{
+ asm(
+ " push {lr}\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r1, r1, #0x10\n"
+ " ldr r0, ._526 @ gStringVar1\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToHexStringN\n"
+ " ldr r0, ._526 + 4 @ Str_839C438\n"
+ " bl sub_8071F40\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._527:\n"
+ " .align 2, 0\n"
+ "._526:\n"
+ " .word gStringVar1\n"
+ " .word Str_839C438\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078B94()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r3, #0x0\n"
+ " ldr r1, ._531 @ gUnknown_Debug_839C444\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._529 @cond_branch\n"
+ " ldr r5, ._531 + 4 @ gSaveBlock1\n"
+ " add r4, r1, #0\n"
+ "._530:\n"
+ " lsl r0, r3, #0x3\n"
+ " add r2, r0, r5\n"
+ " add r0, r0, r4\n"
+ " ldr r1, [r0, #0x4]\n"
+ " ldr r0, [r0]\n"
+ " str r0, [r2]\n"
+ " str r1, [r2, #0x4]\n"
+ " add r0, r3, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r3, r0, #0x18\n"
+ " cmp r3, #0x27\n"
+ " bhi ._529 @cond_branch\n"
+ " lsl r0, r3, #0x3\n"
+ " add r0, r0, r4\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._530 @cond_branch\n"
+ "._529:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._532:\n"
+ " .align 2, 0\n"
+ "._531:\n"
+ " .word gUnknown_Debug_839C444\n"
+ " .word gSaveBlock1+0x7f8\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078BD4()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._536 @ gTasks\n"
+ " add r4, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0\n"
+ " beq ._533 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq ._534 @cond_branch\n"
+ " b ._545\n"
+ "._537:\n"
+ " .align 2, 0\n"
+ "._536:\n"
+ " .word gTasks+0x8\n"
+ "._533:\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_8078B70\n"
+ " ldrh r0, [r4]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4]\n"
+ " b ._545\n"
+ "._534:\n"
+ " ldr r2, ._541 @ gMain\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._539 @cond_branch\n"
+ " mov r0, #0x49\n"
+ " bl PlaySE\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ " bl ScriptContext2_Disable\n"
+ " bl DebugMenu_8078B94\n"
+ " b ._545\n"
+ "._542:\n"
+ " .align 2, 0\n"
+ "._541:\n"
+ " .word gMain\n"
+ "._539:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._543 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ " bl ScriptContext2_Disable\n"
+ " b ._545\n"
+ "._543:\n"
+ " add r0, r4, #2\n"
+ " ldrh r3, [r2, #0x30]\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x4\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0x1\n"
+ " bne ._545 @cond_branch\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " bl DebugMenu_8078B70\n"
+ "._545:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_CheckPKBLCK()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._546 @ DebugMenu_8078BD4\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._547:\n"
+ " .align 2, 0\n"
+ "._546:\n"
+ " .word DebugMenu_8078BD4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078C80()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._548 @ Str_839C5A4\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._548 + 4 @ gMenuCallback\n"
+ " ldr r0, ._548 + 8 @ DebugMenu_8078CA8\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._549:\n"
+ " .align 2, 0\n"
+ "._548:\n"
+ " .word Str_839C5A4\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078CA8+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078CA8()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._552 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._550 @cond_branch\n"
+ " ldr r1, ._552 + 4 @ gMenuCallback\n"
+ " ldr r0, ._552 + 8 @ DebugMenu_8078CE4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " b ._555\n"
+ "._553:\n"
+ " .align 2, 0\n"
+ "._552:\n"
+ " .word gMain\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078CE4+1\n"
+ "._550:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._554 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._555\n"
+ "._554:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._555:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078CE4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r1, ._558 @ \n"
+ " mov r2, #0x80\n"
+ " lsl r2, r2, #0xa\n"
+ " mov r0, #0x0\n"
+ " bl DebugMenu_8078E40\n"
+ " cmp r0, #0x1\n"
+ " bne ._556 @cond_branch\n"
+ " ldr r0, ._558 + 4 @ \n"
+ " ldr r1, ._558 + 8 @ \n"
+ " bl StringCopy\n"
+ " b ._557\n"
+ "._559:\n"
+ " .align 2, 0\n"
+ "._558:\n"
+ " .word +0x2000000\n"
+ " .word gStringVar4\n"
+ " .word Str_839C5CC\n"
+ "._556:\n"
+ " ldr r0, ._560 @ gStringVar4\n"
+ " ldr r1, ._560 + 4 @ Str_839C5DF\n"
+ " bl StringCopy\n"
+ "._557:\n"
+ " ldr r1, ._560 + 8 @ gMenuCallback\n"
+ " ldr r0, ._560 + 12 @ DebugMenu_8078D7C\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._561:\n"
+ " .align 2, 0\n"
+ "._560:\n"
+ " .word gStringVar4\n"
+ " .word Str_839C5DF\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078D7C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078D30()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " ldr r5, ._563 @ \n"
+ " mov r4, #0x0\n"
+ " mov r6, #0x80\n"
+ " lsl r6, r6, #0x5\n"
+ "._562:\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " add r2, r6, #0\n"
+ " bl DebugMenu_8078E68\n"
+ " add r5, r5, r6\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0x1f\n"
+ " bls ._562 @cond_branch\n"
+ " ldr r0, ._563 + 4 @ \n"
+ " ldr r1, ._563 + 8 @ \n"
+ " bl StringCopy\n"
+ " ldr r1, ._563 + 12 @ \n"
+ " ldr r0, ._563 + 16 @ \n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._564:\n"
+ " .align 2, 0\n"
+ "._563:\n"
+ " .word +0x2000000\n"
+ " .word gStringVar4\n"
+ " .word Str_839C5D6\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078D7C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078D7C()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._565 @ gStringVar4\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._565 + 4 @ gMenuCallback\n"
+ " ldr r0, ._565 + 8 @ DebugMenu_8078DA4\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._566:\n"
+ " .align 2, 0\n"
+ "._565:\n"
+ " .word gStringVar4\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078DA4+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078DA4()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._569 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._567 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._568\n"
+ "._570:\n"
+ " .align 2, 0\n"
+ "._569:\n"
+ " .word gMain\n"
+ "._567:\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ "._568:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_MeTooBackupMan()
+{
+ asm(
+ " push {lr}\n"
+ " bl Menu_EraseScreen\n"
+ " ldr r0, ._571 @ gUnknown_Debug_839C594\n"
+ " mov r1, #0xc\n"
+ " mov r2, #0x2\n"
+ " bl DebugMenu_8077D24\n"
+ " ldr r1, ._571 + 4 @ gMenuCallback\n"
+ " ldr r0, ._571 + 8 @ DebugMenu_8078DF0\n"
+ " str r0, [r1]\n"
+ " mov r0, #0x0\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._572:\n"
+ " .align 2, 0\n"
+ "._571:\n"
+ " .word gUnknown_Debug_839C594\n"
+ " .word gMenuCallback\n"
+ " .word DebugMenu_8078DF0+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078DF0()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._573 @ gUnknown_Debug_839C594\n"
+ " bl DebugMenu_8077D78\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._574:\n"
+ " .align 2, 0\n"
+ "._573:\n"
+ " .word gUnknown_Debug_839C594\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078E04()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r1, #0\n"
+ " add r5, r2, #0\n"
+ " b ._575\n"
+ "._577:\n"
+ " ldr r0, ._579 @ 0xfffff000\n"
+ " add r5, r5, r0\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x5\n"
+ " add r6, r6, r0\n"
+ " add r0, r4, #1\n"
+ "._575:\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " add r1, r6, #0\n"
+ " bl ProgramFlashSectorAndVerify\n"
+ " cmp r0, #0\n"
+ " bne ._576 @cond_branch\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x5\n"
+ " cmp r5, r0\n"
+ " bhi ._577 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._578\n"
+ "._580:\n"
+ " .align 2, 0\n"
+ "._579:\n"
+ " .word 0xfffff000\n"
+ "._576:\n"
+ " mov r0, #0x0\n"
+ "._578:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078E40()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r4, r0, #0\n"
+ " add r5, r1, #0\n"
+ " add r6, r2, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl m4aSoundVSyncOff\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " add r2, r6, #0\n"
+ " bl DebugMenu_8078E04\n"
+ " add r4, r0, #0\n"
+ " bl m4aSoundVSyncOn\n"
+ " add r0, r4, #0\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078E68()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r1, #0\n"
+ " add r3, r2, #0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r1, #0x0\n"
+ " add r2, r4, #0\n"
+ " bl ReadFlash\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078E80()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x16\n"
+ " mov r3, #0x10\n"
+ " bl Menu_BlankWindowRect\n"
+ " ldr r1, ._581 @ gUnknown_Debug_839C5F4\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r0, #0x4]\n"
+ " mov r0, #0xd0\n"
+ " mov r2, #0xf\n"
+ " bl sub_8071F60\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._582:\n"
+ " .align 2, 0\n"
+ "._581:\n"
+ " .word gUnknown_Debug_839C5F4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078EB0()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " add r5, r0, #0\n"
+ " ldr r4, ._583 @ gStringVar1\n"
+ " mov r0, #0x2\n"
+ " ldsh r1, [r5, r0]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x3\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0xf0\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x11\n"
+ " bl sub_8071F60\n"
+ " mov r0, #0x4\n"
+ " ldsh r1, [r5, r0]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x6\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0xf0\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x11\n"
+ " bl sub_8071F60\n"
+ " mov r0, #0x6\n"
+ " ldsh r1, [r5, r0]\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x2\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x9\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._584:\n"
+ " .align 2, 0\n"
+ "._583:\n"
+ " .word gStringVar1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078F1C()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r4, r0, #0x2\n"
+ " add r4, r4, r0\n"
+ " lsl r4, r4, #0x3\n"
+ " ldr r6, ._585 @ gTasks\n"
+ " add r5, r4, r6\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r5]\n"
+ " ldr r1, ._585 + 4 @ gSaveBlock2\n"
+ " ldrh r0, [r1, #0xe]\n"
+ " strh r0, [r5, #0x2]\n"
+ " ldrb r0, [r1, #0x10]\n"
+ " strh r0, [r5, #0x4]\n"
+ " ldrb r0, [r1, #0x11]\n"
+ " strh r0, [r5, #0x6]\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " add r0, r5, #0\n"
+ " bl DebugMenu_8078EB0\n"
+ " add r0, r5, #0\n"
+ " bl DebugMenu_8078E80\n"
+ " sub r6, r6, #0x8\n"
+ " add r4, r4, r6\n"
+ " ldr r0, ._585 + 8 @ DebugMenu_8078F68\n"
+ " str r0, [r4]\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._586:\n"
+ " .align 2, 0\n"
+ "._585:\n"
+ " .word gTasks+0x8\n"
+ " .word gSaveBlock2\n"
+ " .word DebugMenu_8078F68+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8078F68()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r5, r1, #0x3\n"
+ " ldr r6, ._589 @ gTasks\n"
+ " add r4, r5, r6\n"
+ " ldr r3, ._589 + 4 @ gMain\n"
+ " ldrh r1, [r3, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._587 @cond_branch\n"
+ " ldr r1, ._589 + 8 @ gSaveBlock2\n"
+ " ldrh r0, [r4, #0x2]\n"
+ " strh r0, [r1, #0xe]\n"
+ " ldrh r0, [r4, #0x4]\n"
+ " strb r0, [r1, #0x10]\n"
+ " ldrh r0, [r4, #0x6]\n"
+ " strb r0, [r1, #0x11]\n"
+ " mov r0, #0x49\n"
+ " bl PlaySE\n"
+ " b ._588\n"
+ "._590:\n"
+ " .align 2, 0\n"
+ "._589:\n"
+ " .word gTasks+0x8\n"
+ " .word gMain\n"
+ " .word gSaveBlock2\n"
+ "._587:\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._591 @cond_branch\n"
+ "._588:\n"
+ " add r0, r6, #0\n"
+ " sub r0, r0, #0x8\n"
+ " add r0, r5, r0\n"
+ " ldr r1, ._593 @ DebugMenu_8079020\n"
+ " str r1, [r0]\n"
+ " b ._601\n"
+ "._594:\n"
+ " .align 2, 0\n"
+ "._593:\n"
+ " .word DebugMenu_8079020+1\n"
+ "._591:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._595 @cond_branch\n"
+ " ldrh r1, [r4]\n"
+ " mov r2, #0x0\n"
+ " ldsh r0, [r4, r2]\n"
+ " cmp r0, #0\n"
+ " beq ._601 @cond_branch\n"
+ " sub r0, r1, #1\n"
+ " b ._597\n"
+ "._595:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._598 @cond_branch\n"
+ " ldrh r0, [r4]\n"
+ " cmp r0, #0x1\n"
+ " bhi ._601 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ "._597:\n"
+ " strh r0, [r4]\n"
+ " add r0, r4, #0\n"
+ " bl DebugMenu_8078E80\n"
+ " b ._601\n"
+ "._598:\n"
+ " mov r0, #0x0\n"
+ " ldsh r2, [r4, r0]\n"
+ " lsl r2, r2, #0x3\n"
+ " ldr r0, ._602 @ gUnknown_Debug_839C5F4\n"
+ " add r2, r2, r0\n"
+ " ldrb r0, [r2, #0x5]\n"
+ " lsl r0, r0, #0x1\n"
+ " add r0, r4, r0\n"
+ " ldrh r1, [r2]\n"
+ " ldrh r2, [r2, #0x2]\n"
+ " ldrh r3, [r3, #0x30]\n"
+ " bl DebugMenu_8077DD8\n"
+ " cmp r0, #0x1\n"
+ " bne ._601 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl DebugMenu_8078EB0\n"
+ "._601:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._603:\n"
+ " .align 2, 0\n"
+ "._602:\n"
+ " .word gUnknown_Debug_839C5F4\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8079020()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add r4, r0, #0\n"
+ " lsl r4, r4, #0x18\n"
+ " lsr r4, r4, #0x18\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_PTime()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._604 @ DebugMenu_8078F1C\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._605:\n"
+ " .align 2, 0\n"
+ "._604:\n"
+ " .word DebugMenu_8078F1C+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8079058()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._610 @ gTasks\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r4, r0, r1\n"
+ " mov r0, #0x8\n"
+ " ldsh r1, [r4, r0]\n"
+ " cmp r1, #0x1\n"
+ " beq ._606 @cond_branch\n"
+ " cmp r1, #0x1\n"
+ " bgt ._607 @cond_branch\n"
+ " cmp r1, #0\n"
+ " beq ._608 @cond_branch\n"
+ " b ._620\n"
+ "._611:\n"
+ " .align 2, 0\n"
+ "._610:\n"
+ " .word gTasks\n"
+ "._607:\n"
+ " cmp r1, #0x2\n"
+ " beq ._612 @cond_branch\n"
+ " b ._620\n"
+ "._608:\n"
+ " ldr r0, ._615 @ gUnknown_Debug_03004BD0\n"
+ " str r1, [r0]\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " b ._614\n"
+ "._616:\n"
+ " .align 2, 0\n"
+ "._615:\n"
+ " .word gUnknown_Debug_03004BD0\n"
+ "._606:\n"
+ " ldr r0, ._618 @ gDebug0x839C60C\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0x14\n"
+ " mov r1, #0x8\n"
+ " mov r2, #0x1\n"
+ " bl DisplayYesNoMenu\n"
+ "._614:\n"
+ " ldrh r0, [r4, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4, #0x8]\n"
+ " b ._620\n"
+ "._619:\n"
+ " .align 2, 0\n"
+ "._618:\n"
+ " .word gDebug0x839C60C\n"
+ "._612:\n"
+ " bl Menu_ProcessInputNoWrap_\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r1, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r1, r0\n"
+ " beq ._620 @cond_branch\n"
+ " cmp r1, #0\n"
+ " bne ._621 @cond_branch\n"
+ " ldr r1, ._623 @ gUnknown_Debug_03004BD0\n"
+ " mov r0, #0x1\n"
+ " b ._622\n"
+ "._624:\n"
+ " .align 2, 0\n"
+ "._623:\n"
+ " .word gUnknown_Debug_03004BD0\n"
+ "._621:\n"
+ " ldr r1, ._625 @ gUnknown_Debug_03004BD0\n"
+ " mov r0, #0x0\n"
+ "._622:\n"
+ " str r0, [r1]\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ "._620:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._626:\n"
+ " .align 2, 0\n"
+ "._625:\n"
+ " .word gUnknown_Debug_03004BD0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenMurakawa()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._627 @ DebugMenu_8079058\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._628:\n"
+ " .align 2, 0\n"
+ "._627:\n"
+ " .word DebugMenu_8079058+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void DebugMenu_8079110()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._633 @ gTasks\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r4, r0, r1\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._629 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._630 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._631 @cond_branch\n"
+ " b ._642\n"
+ "._634:\n"
+ " .align 2, 0\n"
+ "._633:\n"
+ " .word gTasks\n"
+ "._630:\n"
+ " cmp r0, #0x2\n"
+ " beq ._635 @cond_branch\n"
+ " b ._642\n"
+ "._631:\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " b ._637\n"
+ "._629:\n"
+ " ldr r0, ._639 @ Str_839C61A\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrintMessage\n"
+ "._637:\n"
+ " ldrh r0, [r4, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4, #0x8]\n"
+ " b ._642\n"
+ "._640:\n"
+ " .align 2, 0\n"
+ "._639:\n"
+ " .word Str_839C61A\n"
+ "._635:\n"
+ " bl Menu_UpdateWindowText\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._642 @cond_branch\n"
+ " ldr r0, ._643 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._642 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ "._642:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._644:\n"
+ " .align 2, 0\n"
+ "._643:\n"
+ " .word gMain\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+u8 DebugMenu_OpenKiwa()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " ldr r0, ._645 @ DebugMenu_8079110\n"
+ " mov r1, #0x50\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._646:\n"
+ " .align 2, 0\n"
+ "._645:\n"
+ " .word DebugMenu_8079110+1\n"
+ "\n"
+ );
+}
+
+#endif
diff --git a/src/debug/taya_debug_window.c b/src/debug/taya_debug_window.c
new file mode 100644
index 000000000..f7e0e3770
--- /dev/null
+++ b/src/debug/taya_debug_window.c
@@ -0,0 +1,6 @@
+#if DEBUG
+#include "global.h"
+
+EWRAM_DATA u8 unk_2030224[4] = { 0 };
+
+#endif
diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c
new file mode 100644
index 000000000..c3616797e
--- /dev/null
+++ b/src/debug/tomomichi_debug_menu.c
@@ -0,0 +1,20 @@
+#if DEBUG
+#include "global.h"
+
+// These should be static, uninitialized once it gets decompiled.
+#define BSS_DATA __attribute__((section(".bss")))
+BSS_DATA u8 gDebug_03000700[4] = {0};
+BSS_DATA u8 gDebug_03000704[4] = {0};
+BSS_DATA u8 gDebug_03000708[4] = {0};
+BSS_DATA u8 gDebug_0300070C = 0;
+BSS_DATA u8 gDebug_0300070D = 0;
+BSS_DATA u8 gDebug_0300070E = 0;
+BSS_DATA u8 gDebug_0300070F = 0;
+BSS_DATA u8 gDebug_03000710[13] = {0};
+BSS_DATA u8 gDebug_0300071D = 0;
+BSS_DATA u8 gDebug_0300071E = 0;
+BSS_DATA u8 gDebug_0300071F = 0;
+BSS_DATA u8 gDebug_03000720 = 0;
+BSS_DATA u8 gDebug_03000721 = 0;
+
+#endif
diff --git a/src/debug/unknown_debug_menu.c b/src/debug/unknown_debug_menu.c
index a8c3ad16b..ef3e0e66c 100644
--- a/src/debug/unknown_debug_menu.c
+++ b/src/debug/unknown_debug_menu.c
@@ -4,7 +4,7 @@
extern u8 gBattleCommunication[];
-extern u8 (*gCallback_03004AE8)(void);
+extern u8 (*gMenuCallback)(void);
static u8 sub_814A4B8(void);
static u8 sub_814A464(void);
@@ -32,17 +32,17 @@ const struct MenuAction gUnknown_0842C29C[] = {
int unref_sub_814A414(void)
{
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 0, 16, 18);
- PrintMenuItems(2, 1, 8, gUnknown_0842C29C);
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 16, 18);
+ Menu_PrintItems(2, 1, 8, gUnknown_0842C29C);
InitMenu(0, 1, 1, 8, 0, 15);
- gCallback_03004AE8 = sub_814A464;
+ gMenuCallback = sub_814A464;
return 0;
}
static u8 sub_814A464(void)
{
- s8 result = ProcessMenuInput();
+ s8 result = Menu_ProcessInput();
if (result == -2)
{
return 0;
@@ -55,7 +55,7 @@ static u8 sub_814A464(void)
else
{
gBattleCommunication[0] = result;
- gCallback_03004AE8 = gUnknown_0842C29C[result].func;
+ gMenuCallback = gUnknown_0842C29C[result].func;
return 0;
}
}
diff --git a/src/debug/watanabe_debug_menu.c b/src/debug/watanabe_debug_menu.c
new file mode 100644
index 000000000..6c94b0466
--- /dev/null
+++ b/src/debug/watanabe_debug_menu.c
@@ -0,0 +1,11 @@
+#if DEBUG
+#include "global.h"
+
+EWRAM_DATA u8 gUnknown_Debug_20389EC[0x20] = { 0 };
+EWRAM_DATA u8 gUnknown_Debug_2038A0C[0x10] = { 0 };
+EWRAM_DATA u8 gUnknown_Debug_2038A1C[4] = { 0 };
+EWRAM_DATA u8 gUnknown_Debug_2038A20[4] = { 0 };
+
+u8 byte_3005E30[0x20];
+
+#endif
diff --git a/src/easy_chat_1.c b/src/easy_chat_1.c
new file mode 100644
index 000000000..4b64846f9
--- /dev/null
+++ b/src/easy_chat_1.c
@@ -0,0 +1,1742 @@
+#include "global.h"
+#include "constants/easy_chat.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "dewford_trend.h"
+#include "easy_chat.h"
+#include "event_data.h"
+#include "ewram.h"
+#include "graphics.h"
+#include "main.h"
+#include "menu.h"
+#include "palette.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "strings.h"
+#include "scanline_effect.h"
+
+extern const struct WindowTemplate gWindowTemplate_81E6D54;
+extern const struct WindowTemplate gWindowTemplate_81E6DA8;
+
+extern void sub_80546B8(void);
+
+const u16 gMysteryEventPhrase[] = {EC_WORD_MYSTERY, EC_WORD_EVENT, EC_WORD_IS, EC_WORD_EXCITING};
+
+const u16 gBerryMasterWifePhrases[][2] =
+{
+#if ENGLISH
+ {EC_WORD_GREAT, EC_WORD_BATTLE},
+ {EC_WORD_CHALLENGE, EC_WORD_CONTEST},
+ {EC_WORD_OVERWHELMING, EC_POKEMON(LATIAS)},
+ {EC_WORD_COOL, EC_POKEMON(LATIOS)},
+ {EC_WORD_SUPER, EC_WORD_HUSTLE},
+#else
+ {EC_WORD_GREAT, EC_WORD_FIGHT},
+ {EC_WORD_CONTEST, EC_WORD_CHALLENGE},
+ {EC_POKEMON(LATIAS), EC_WORD_OVERWHELMING},
+ {EC_POKEMON(LATIOS), EC_WORD_COOL},
+ {EC_WORD_SUPER, 0xFFFF},
+#endif
+};
+
+// const pointer to gEasyChatStruct-> easy_chat might be two separate files.
+struct Shared1000 *const gEasyChatStruct = (struct Shared1000 *)(gSharedMem + 0x1000);
+
+const struct ScanlineEffectParams gUnknown_083DB698 =
+{
+ &REG_BG3VOFS,
+ ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
+ 1
+};
+
+const u8 gUnknown_083DB6A4[] = {4, 0, 0, 0, 1, 5, 0, 2, 2, 3, 2, 2, 2, 3};
+
+// choose by alphabet keyboard
+const u8 gUnknown_083DB6B2[][16] =
+{
+ _("ABCDEF "),
+ _("GHIJKL"),
+ _("MNOPQRS"),
+ _("TUVWXYZ"),
+};
+
+struct EasyChatPrompt
+{
+ const u8 *text1;
+ const u8 *text2;
+ bool8 unk8;
+};
+
+const struct EasyChatPrompt gUnknown_083DB6F4[] =
+{
+ {OtherText_MakeProfilePage1, OtherText_MakeProfilePage2, TRUE},
+ {OtherText_MakeMessagePage1, OtherText_MakeMessagePage2, TRUE},
+ {OtherText_CombineNinePhrasesPage1, OtherText_CombineNinePhrasesPage2, TRUE},
+ {OtherText_DescribeFeelingsPage1, OtherText_DescribeFeelingsPage2, TRUE},
+ {OtherText_ImproveBardSongPage1, OtherText_ImproveBardSongPage2, TRUE},
+ {OtherText_CombineTwoPhrasesPage1, OtherText_CombineTwoPhrasesPage2, TRUE},
+ {OtherText_YourProfile, OtherText_ConfirmTrendyPage2, FALSE},
+ {OtherText_YourFeelingBattle, OtherText_ConfirmTrendyPage2, TRUE},
+ {OtherText_SetWinMessage, OtherText_ConfirmTrendyPage2, TRUE},
+ {OtherText_SetLossMessage, OtherText_ConfirmTrendyPage2, TRUE},
+ {OtherText_MailMessage, OtherText_ConfirmTrendyPage2, TRUE},
+ {OtherText_MailSalutation, OtherText_ConfirmTrendyPage2, TRUE},
+ {OtherText_NewSong, OtherText_ConfirmTrendyPage2, FALSE},
+ {OtherText_TheAnswer, OtherText_ConfirmTrendyPage2, FALSE},
+ {OtherText_ConfirmTrendyPage1, OtherText_ConfirmTrendyPage2, TRUE},
+ {OtherText_HipsterPage1, OtherText_HipsterPage2, TRUE},
+ {OtherText_WithFourPhrases, OtherText_CombineNinePhrasesPage2, TRUE},
+};
+
+const u8 gUnknown_083DB7C0[][2] =
+{
+ { 0, 6},
+ { 1, 7},
+ { 1, 8},
+ { 1, 9},
+ { 2, 10},
+ {16, 13},
+ { 4, 12},
+ { 3, 13},
+ { 3, 13},
+ { 5, 14},
+ { 3, 13},
+ { 3, 13},
+ { 3, 13},
+ {15, 13},
+};
+
+void sub_80E62F8(void);
+void sub_80E6424(void);
+void sub_80E6554(void);
+void sub_80E6630(void);
+void sub_80E6690(void);
+void sub_80E682C(void (*)(void));
+void sub_80E69F8(void);
+void sub_80E6A6C(void);
+void sub_80E6A88(void);
+void sub_80E6AA8(void);
+void sub_80E6AC4(void);
+void sub_80E6AE4(void);
+void sub_80E6BC0(void);
+void sub_80E6C84(void);
+void sub_80E6D7C(void);
+void sub_80E6F68(void);
+void sub_80E6FC8(void);
+void sub_80E7114(void);
+void sub_80E718C(void);
+void sub_80E7218(void);
+void sub_80E7294(void);
+void sub_80E7324(void);
+void sub_80E73D0(void);
+void sub_80E7458(void);
+void sub_80E752C(void);
+void sub_80E7574(void);
+bool8 sub_80E75D8(void);
+bool8 sub_80E77C8(void);
+void sub_80E7A98(void);
+void sub_80E7AD4(void);
+bool8 sub_80E7B40(void);
+void sub_80E7D30(void);
+void sub_80E7D6C(void);
+void sub_80E7D9C(void);
+bool8 sub_80E7DD0(void);
+void sub_80E7E50(void);
+void sub_80E7F00(u16, u16);
+u8 sub_80E7FA8(void);
+bool8 sub_80E8054(void);
+u8 sub_80E8094(void);
+u8 sub_80E810C(void);
+void sub_80E81C0(void);
+void sub_80E81FC(void);
+void sub_80E8218(void);
+
+void sub_80E8398();
+void sub_80E8420(void);
+void sub_80E8504(void);
+void sub_80E87CC();
+
+void sub_80E88F0(void);
+void sub_80E8958();
+
+void sub_80E8BF4();
+void sub_80E8CEC(void);
+void sub_80E8D54(void);
+void sub_80E8D8C();
+void sub_80E8DD8(void);
+void sub_80E91D4();
+void sub_80E9368();
+void sub_80E95A4(void);
+void sub_80E9744(void);
+void sub_80E98C4(void);
+void sub_80E9974(void);
+void sub_80E9A14(void);
+void sub_80E9A4C(void);
+void sub_80E9AD4(void);
+void sub_80E9C94(void);
+void sub_80E9D00(void);
+void sub_80E9D7C(void);
+void sub_80E9E08();
+bool8 sub_80E9E54(void);
+void sub_80E9E98(void);
+u8 sub_80E9EA8(void);
+u8 sub_80E9F50(void);
+u8 sub_80E9FD4(void);
+u8 sub_80EA014(void);
+u8 sub_80EA050(void);
+u8 sub_80EA0E4(void);
+u8 sub_80EA184(void);
+void sub_80EAC5C(void);
+void sub_80EAD08(void);
+u8 sub_80EAD7C(u8);
+void sub_80EAECC(void);
+void LoadEasyChatStrings(void);
+void sub_80EB0B0(void);
+u8 *sub_80EB218(u8 *, u16, u16);
+u16 sub_80EB2D4();
+bool8 sub_80EB680(u16 *, u16, u16, u16);
+
+void sub_80E60D8(void)
+{
+ u8 r4 = 3;
+ u16 *r1;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ r1 = gSaveBlock1.easyChats.unk2B1C;
+ break;
+ case 1:
+ r1 = gSaveBlock1.easyChats.unk2B28;
+ break;
+ case 2:
+ r1 = gSaveBlock1.easyChats.unk2B34;
+ break;
+ case 3:
+ r1 = gSaveBlock1.easyChats.unk2B40;
+ break;
+ case 4:
+ r1 = gSaveBlock1.mail[gSpecialVar_0x8005].words;
+ break;
+ case 6:
+ {
+ struct MauvilleManBard *bard = &gSaveBlock1.mauvilleMan.bard;
+ u16 i;
+ for (i = 0; i < 6; i++)
+ bard->temporaryLyrics[i] = bard->songLyrics[i];
+ r1 = bard->temporaryLyrics;
+ }
+ break;
+ case 5:
+ // TODO: Is this the right TV show?
+ r1 = gSaveBlock1.tvShows[gSpecialVar_0x8005].fanclubLetter.pad04;
+ r4 = gSpecialVar_0x8006;
+ break;
+ case 7:
+ // TODO: Is this the right TV show?
+ r1 = &gSaveBlock1.tvShows[gSpecialVar_0x8005].fanclubOpinions.var1C[gSpecialVar_0x8006];
+ r4 = 1;
+ break;
+ case 8:
+ // TODO: Is this the right TV show?
+ r1 = &gSaveBlock1.tvShows[gSpecialVar_0x8005].fanclubOpinions.var02;
+ r4 = 0;
+ break;
+ case 9:
+ r1 = NULL;
+ break;
+ case 10:
+ r1 = &gSaveBlock1.gabbyAndTyData.quote;
+ *r1 = 0xFFFF;
+ r4 = 1;
+ break;
+ case 11:
+ // TODO: Is this the right TV show?
+ r1 = &gSaveBlock1.tvShows[gSpecialVar_0x8005].bravoTrainer.var04[gSpecialVar_0x8006];
+ r4 = 0;
+ break;
+ case 12:
+ // TODO: Is this the right TV show?
+ r1 = gSaveBlock1.tvShows[gSpecialVar_0x8005].bravoTrainerTower.var18;
+ r4 = 1;
+ break;
+ case 13:
+ gEasyChatStruct->unk9C7C = 0xFFFF;
+ gEasyChatStruct->unk9C7E = -1;
+ r1 = &gEasyChatStruct->unk9C7C;
+ break;
+ default:
+ return;
+ }
+ sub_80E62A0(gSpecialVar_0x8004, r1, sub_80546B8, r4);
+}
+
+void sub_80E62A0(u8 a, u16 *b, void (*c)(void), u8 d)
+{
+ gEasyChatStruct->unk0 = c;
+ gEasyChatStruct->unk4 = b;
+ gEasyChatStruct->unk8 = a;
+ gEasyChatStruct->unkB = d;
+ if (a == 9)
+ {
+ gEasyChatStruct->unk4 = &gEasyChatStruct->unk9C7C;
+ gEasyChatStruct->unk9C7C = gSaveBlock1.easyChatPairs[0].words[0];
+ gEasyChatStruct->unk9C7E = gSaveBlock1.easyChatPairs[0].words[1];
+ }
+ SetMainCallback2(sub_80E62F8);
+}
+
+void sub_80E62F8(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ default:
+ REG_DISPCNT = 0;
+ SetVBlankCallback(0);
+ ResetPaletteFade();
+ ResetSpriteData();
+ ScanlineEffect_Clear();
+ ScanlineEffect_Stop();
+ sub_80EAD08();
+ ScanlineEffect_SetParams(gUnknown_083DB698);
+ FreeSpriteTileRanges();
+ FreeAllSpritePalettes();
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6DA8);
+ break;
+ case 2:
+ InitMenuWindow(&gWindowTemplate_81E6D54);
+ InitMenuWindow(&gWindowTemplate_81E6DA8);
+ Menu_EraseScreen();
+ break;
+ case 3:
+ sub_80E6424();
+ break;
+ case 4:
+ sub_80E8DD8();
+ break;
+ case 5:
+ sub_80E8218();
+ sub_80E8CEC();
+ break;
+ case 6:
+ sub_80E69F8();
+ sub_80E682C(sub_80E6AA8);
+ SetVBlankCallback(sub_80E6A6C);
+ break;
+ case 7:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ break;
+ case 8:
+ REG_DISPCNT = 0x1F40;
+ SetMainCallback2(sub_80E6A88);
+ FlagSet(FLAG_SYS_CHAT_USED);
+ break;
+ }
+ gMain.state++;
+}
+
+void sub_80E6424(void)
+{
+ gEasyChatStruct->unk9 = gUnknown_083DB6A4[gEasyChatStruct->unk8];
+ switch (gEasyChatStruct->unk9)
+ {
+ case 4:
+ gEasyChatStruct->unkA = 4;
+ gEasyChatStruct->unk83 = 2;
+ gEasyChatStruct->unk84 = 2;
+ gEasyChatStruct->unk88 = 5;
+ gEasyChatStruct->unk8A = 4;
+ break;
+ case 5:
+ gEasyChatStruct->unkA = 4;
+ gEasyChatStruct->unk83 = 1;
+ gEasyChatStruct->unk84 = 4;
+ gEasyChatStruct->unk88 = 16;
+ gEasyChatStruct->unk8A = 2;
+ break;
+ case 0:
+ gEasyChatStruct->unkA = 6;
+ gEasyChatStruct->unk83 = 2;
+ gEasyChatStruct->unk84 = 3;
+ gEasyChatStruct->unk88 = 4;
+ gEasyChatStruct->unk8A = 3;
+ break;
+ case 1:
+ gEasyChatStruct->unkA = 9;
+ gEasyChatStruct->unk83 = 2;
+ gEasyChatStruct->unk84 = 5;
+ gEasyChatStruct->unk88 = 4;
+ gEasyChatStruct->unk8A = 0;
+ break;
+ case 2:
+ gEasyChatStruct->unkA = 1;
+ gEasyChatStruct->unk83 = 1;
+ gEasyChatStruct->unk84 = 1;
+ gEasyChatStruct->unk88 = 16;
+ gEasyChatStruct->unk8A = 4;
+ break;
+ case 3:
+ gEasyChatStruct->unkA = 2;
+ gEasyChatStruct->unk83 = 2;
+ gEasyChatStruct->unk84 = 1;
+ gEasyChatStruct->unk88 = 5;
+ gEasyChatStruct->unk8A = 3;
+ break;
+ }
+ gEasyChatStruct->unk86 = 0;
+ gEasyChatStruct->unk85 = 0;
+ gEasyChatStruct->unk87 = 0;
+ gEasyChatStruct->unk26 = 0;
+ gEasyChatStruct->unk1BA = 0;
+ gEasyChatStruct->unk1BE = 2;
+ sub_80E6554();
+ sub_80EAECC();
+ LoadEasyChatStrings();
+ sub_80E7E50();
+ sub_80E6630();
+ sub_80E6690();
+}
+
+void sub_80E6554(void)
+{
+ u16 r4 = 0;
+ u16 r7;
+ u16 r5;
+
+ for (r7 = 0; ; r7++)
+ {
+ for (r5 = 0; r5 < 2; r5++)
+ {
+ gEasyChatStruct->unk2A[r7][r5] = r4++;
+ if (r4 == 17)
+ break;
+ }
+ if (r4 == 17)
+ break;
+ }
+ gEasyChatStruct->unk28 = 17;
+ while (r4 < 22)
+ {
+ if (sub_80EAD7C(r4) != 0)
+ {
+ r5++;
+ if (r5 > 1)
+ {
+ r7++;
+ r5 = 0;
+ }
+ gEasyChatStruct->unk2A[r7][r5] = r4;
+ gEasyChatStruct->unk78[r4 - 17] = 1; // hmm...
+ gEasyChatStruct->unk28++;
+ }
+ else
+ {
+ gEasyChatStruct->unk78[r4 - 17] = 0;
+ }
+ r4++;
+ }
+ gEasyChatStruct->unk1B6 = (gEasyChatStruct->unk28 + 1) / 2;
+}
+
+void sub_80E6630(void)
+{
+ u8 i;
+ u8 r3;
+
+ for (i = 0; i < 4; i++)
+ {
+ const u8 *row = gUnknown_083DB6B2[i];
+
+ for (r3 = 0; row[r3] != EOS; r3++)
+ {
+ if (row[r3] != CHAR_SPACE)
+ gEasyChatStruct->unk40[i][r3] = row[r3] + 0x46;
+ else
+ gEasyChatStruct->unk40[i][r3] = CHAR_SPACE;
+ }
+ }
+}
+
+void sub_80E6690(void)
+{
+ u8 *pointers[] =
+ {
+ gEasyChatStruct->unk9C80, gEasyChatStruct->unk9CC9,
+ gEasyChatStruct->unk9D12, gEasyChatStruct->unk9D5B,
+ };
+ u8 *r3;
+ u16 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ const struct EasyChatPrompt *prompt = &gUnknown_083DB6F4[gUnknown_083DB7C0[gEasyChatStruct->unk8][i]];
+
+ r3 = StringCopy(pointers[i * 2 + 0], prompt->text1);
+ if (prompt->unk8)
+ {
+ StringCopy(pointers[i * 2 + 1], prompt->text2);
+ }
+ else
+ {
+ *r3++ = CHAR_SPACE;
+ StringCopy(r3, prompt->text2);
+ *pointers[i * 2 + 1] = EOS;
+ }
+ }
+
+ for (i = 0; i < 0x24; i++)
+ gEasyChatStruct->unk9DA4[i] = 0;
+ gEasyChatStruct->unk9DA4[i] = 0xFF;
+
+ r3 = gEasyChatStruct->unk9F6E;
+ r3[0] = EXT_CTRL_CODE_BEGIN;
+ r3[1] = 0x11;
+ r3[2] = 0xE0;
+ r3[3] = 0xFF;
+}
+
+// Default profile phrase
+const u16 gUnknown_083DB7EC[] =
+{
+#if ENGLISH
+ EC_WORD_I_AM,
+ EC_WORD_A,
+ EC_WORD_POKEMON,
+ EC_WORD_GREAT,
+#else
+ EC_WORD_I_AM,
+ EC_WORD_BIG,
+ EC_WORD_IN,
+ EC_WORD_POKEMON,
+#endif
+};
+
+const u16 gUnknown_083DB7F4[] =
+{
+ EC_WORD_ARE,
+ EC_WORD_YOU,
+ EC_WORD_READY,
+ EC_WORD_QUES,
+ EC_WORD_HERE_I_COME,
+ EC_WORD_EXCL,
+};
+
+// ResetDefaultEasyChatPhrases
+void InitEasyChatPhrases(void)
+{
+ u16 i;
+ u16 j;
+
+ for (i = 0; i < 4; i++)
+ gSaveBlock1.easyChats.unk2B1C[i] = gUnknown_083DB7EC[i];
+
+ for (i = 0; i < 6; i++)
+ gSaveBlock1.easyChats.unk2B28[i] = gUnknown_083DB7F4[i];
+
+ for (i = 0; i < 6; i++)
+ {
+ gSaveBlock1.easyChats.unk2B34[i] = 0xFFFF;
+ gSaveBlock1.easyChats.unk2B40[i] = 0xFFFF;
+ }
+
+ for (i = 0; i < 16; i++)
+ {
+ for (j = 0; j < 9; j++)
+ gSaveBlock1.mail[i].words[j] = 0xFFFF;
+ }
+
+ for (i = 0; i < 64; i++)
+ gSaveBlock1.unk2D8C[i] = 0;
+}
+
+void sub_80E682C(void (*func)(void))
+{
+ gEasyChatStruct->unk20 = func;
+ gEasyChatStruct->unk24 = 0;
+}
+
+void sub_80E683C(void)
+{
+ u16 i;
+
+ if (gEasyChatStruct->unk26 == 0)
+ {
+ for (i = 0; i < gEasyChatStruct->unk1B6; i++)
+ gEasyChatStruct->unk1AA[i] = 2;
+ gEasyChatStruct->unk1AA[i - 1] = gEasyChatStruct->unk28 % 2;
+ if (gEasyChatStruct->unk1AA[i - 1] == 0)
+ gEasyChatStruct->unk1AA[i - 1] = 2;
+ }
+ else
+ {
+ gEasyChatStruct->unk1AA[0] = 7;
+ gEasyChatStruct->unk1AA[1] = 6;
+ gEasyChatStruct->unk1AA[2] = 7;
+ gEasyChatStruct->unk1AA[3] = 7;
+ }
+ gEasyChatStruct->unk1A8 = 0;
+ gEasyChatStruct->unk1A9 = 0;
+ gEasyChatStruct->unk1B5 = 0;
+ gEasyChatStruct->unk1B7 = 0;
+ sub_80E9A4C();
+}
+
+void sub_80E68E8(void)
+{
+ sub_80EB0B0();
+ if (gEasyChatStruct->unk26 == 0)
+ {
+ u16 i;
+ u8 r6;
+
+ r6 = gEasyChatStruct->unk1B8;
+ gEasyChatStruct->unk9A28 = (gEasyChatStruct->unk4178[r6] + 1) / 2;
+ for (i = 0; i < gEasyChatStruct->unk9A28; i++)
+ gEasyChatStruct->unk99A6[i] = 2;
+ i--;
+ gEasyChatStruct->unk99A6[i] = gEasyChatStruct->unk4178[r6] % 2;
+ if (gEasyChatStruct->unk99A6[i] == 0)
+ gEasyChatStruct->unk99A6[i] = 2;
+ }
+ else
+ {
+ u16 i;
+ u8 r6;
+
+ r6 = gEasyChatStruct->unk1B8;
+ gEasyChatStruct->unk9A28 = (gEasyChatStruct->unk4142[r6] + 1) / 2;
+ for (i = 0; i < gEasyChatStruct->unk9A28; i++)
+ gEasyChatStruct->unk99A6[i] = 2;
+ i--;
+ gEasyChatStruct->unk99A6[i] = gEasyChatStruct->unk4142[r6] % 2;
+ if (gEasyChatStruct->unk99A6[i] == 0)
+ gEasyChatStruct->unk99A6[i] = 2;
+ }
+ gEasyChatStruct->unk99A4 = 0;
+ gEasyChatStruct->unk99A5 = 0;
+ gEasyChatStruct->unk9A29 = 0;
+ sub_80E9A4C();
+}
+
+void sub_80E69F8(void)
+{
+ switch (gEasyChatStruct->unk8)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 6:
+ case 9:
+ case 13:
+ default:
+ sub_80E9368(gEasyChatStruct->unk8);
+ break;
+ case 5:
+ case 7:
+ case 8:
+ case 10:
+ case 11:
+ case 12:
+ sub_80E9368(gEasyChatStruct->unk8);
+ sub_80E8BF4(gEasyChatStruct->unkB, gEasyChatStruct->unk9);
+ break;
+ }
+}
+
+void sub_80E6A6C(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ sub_80EAC5C();
+ TransferPlttBuffer();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+void sub_80E6A88(void)
+{
+ gEasyChatStruct->unk20();
+ AnimateSprites();
+ BuildOamBuffer();
+ sub_80EAD08();
+}
+
+void sub_80E6AA8(void)
+{
+ if (!UpdatePaletteFade())
+ sub_80E682C(sub_80E6AC4);
+}
+
+void sub_80E6AC4(void)
+{
+ sub_80E88F0();
+ sub_80E8398(0);
+ sub_80E91D4(0);
+ sub_80E682C(sub_80E6AE4);
+}
+
+void sub_80E6AE4(void)
+{
+ gEasyChatStruct->unk87 = sub_80E75D8();
+ if (gEasyChatStruct->unk87)
+ PlaySE(SE_SELECT);
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84)
+ {
+ switch (gEasyChatStruct->unk85)
+ {
+ case 0:
+ sub_80E682C(sub_80E6BC0);
+ return;
+ case 1:
+ sub_80E682C(sub_80E6C84);
+ return;
+ case 2:
+ sub_80E682C(sub_80E6D7C);
+ return;
+ }
+ }
+ else
+ {
+ gEasyChatStruct->unk27 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85;
+ sub_80E7574();
+ sub_80E682C(sub_80E6F68);
+ return;
+ }
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ sub_80E682C(sub_80E6C84);
+ }
+}
+
+void sub_80E6BC0(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E8398(2);
+ if (gEasyChatStruct->unk8 == 6)
+ {
+ sub_80E91D4(6);
+ gEasyChatStruct->unk24 = 100;
+ }
+ else
+ {
+ sub_80E91D4(2);
+ DisplayYesNoMenu(23, 8, 1);
+ Menu_MoveCursor(1);
+ gEasyChatStruct->unk24++;
+ }
+ break;
+ case 1:
+ switch (Menu_ProcessInputNoWrap_())
+ {
+ case 0:
+ sub_80E7D6C();
+ sub_80E98C4();
+ sub_80E95A4();
+ gEasyChatStruct->unk24++;
+ break;
+ case -1:
+ case 1:
+ gEasyChatStruct->unk24++;
+ break;
+ }
+ break;
+ case 2:
+ sub_80E81FC();
+ sub_80E682C(sub_80E6AC4);
+ break;
+ case 100:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ sub_80E682C(sub_80E6AC4);
+ break;
+ }
+}
+
+void sub_80E6C84(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E8398(2);
+ sub_80E91D4(3);
+ DisplayYesNoMenu(23, 8, 0);
+ Menu_MoveCursor(1);
+ if (gEasyChatStruct->unk8 == 9
+ || gEasyChatStruct->unk8 == 4
+ || gEasyChatStruct->unk8 == 7
+ || gEasyChatStruct->unk8 == 8
+ || gEasyChatStruct->unk8 == 10
+ || gEasyChatStruct->unk8 == 11
+ || gEasyChatStruct->unk8 == 12
+ || gEasyChatStruct->unk8 == 5
+ || gEasyChatStruct->unk8 == 13)
+ gEasyChatStruct->unk24 = 2;
+ else
+ gEasyChatStruct->unk24++;
+ break;
+ case 1:
+ switch (Menu_ProcessInputNoWrap_())
+ {
+ case 0:
+ sub_80E91D4(4);
+ DisplayYesNoMenu(23, 8, 0);
+ Menu_MoveCursor(1);
+ gEasyChatStruct->unk24++;
+ break;
+ case -1:
+ case 1:
+ gEasyChatStruct->unk24 = 0xFF;
+ break;
+ }
+ break;
+ case 2:
+ switch (Menu_ProcessInputNoWrap_())
+ {
+ case 0:
+ gSpecialVar_Result = 0;
+ sub_80E682C(sub_80E752C);
+ break;
+ case -1:
+ case 1:
+ gEasyChatStruct->unk24 = 0xFF;
+ break;
+ }
+ break;
+ case 0xFF:
+ Menu_DestroyCursor();
+ sub_80E81FC();
+ sub_80E682C(sub_80E6AC4);
+ break;
+ }
+}
+
+void sub_80E6D7C(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E8398(2);
+ if (sub_80E8054())
+ {
+ sub_80E91D4(5);
+ gEasyChatStruct->unk24 = 10;
+ break;
+ }
+ if (gEasyChatStruct->unk8 == 9)
+ {
+ if (sub_80E7FA8() == 0)
+ {
+ sub_80E91D4(8);
+ gEasyChatStruct->unk24 = 10;
+ break;
+ }
+ if (gEasyChatStruct->unkC[0] == 0xFFFF || gEasyChatStruct->unkC[1] == 0xFFFF)
+ {
+ sub_80E91D4(9);
+ gEasyChatStruct->unk24 = 10;
+ break;
+ }
+ }
+ if (gEasyChatStruct->unk8 == 4 && sub_80E7FA8() == 0)
+ {
+ sub_80E682C(sub_80E6C84);
+ }
+ else
+ {
+ sub_80E91D4(1);
+ sub_80E9744();
+ DisplayYesNoMenu(23, 8, 0);
+ Menu_MoveCursor(0);
+ gEasyChatStruct->unk24++;
+ }
+ break;
+ case 1:
+ switch (Menu_ProcessInputNoWrap_())
+ {
+ case 0:
+ gSpecialVar_Result = (sub_80E7FA8() != 0);
+ sub_80E7D9C();
+ if (gEasyChatStruct->unk8 == 0)
+ gSpecialVar_0x8004 = sub_80E8094();
+ if (gEasyChatStruct->unk8 == 9) // dewford trend?
+ {
+ sub_80E81C0();
+ gSpecialVar_0x8004 = sub_80FA364(&gEasyChatStruct->unk9C7C);
+ }
+ if (gEasyChatStruct->unk8 == 13)
+ {
+ if (gEasyChatStruct->unkC[0] == 0xFFFF || gEasyChatStruct->unkC[1] == 0xFFFF)
+ gSpecialVar_Result = 0;
+ gSpecialVar_0x8004 = sub_80E810C();
+ }
+ sub_80E682C(sub_80E752C);
+ break;
+ case -1:
+ case 1:
+ Menu_DestroyCursor();
+ sub_80E81FC();
+ if (gEasyChatStruct->unk8 == 6 && sub_80E7FA8() != 0)
+ {
+ gEasyChatStruct->unk24 = 100;
+ }
+ else
+ {
+ sub_80E95A4();
+ sub_80E682C(sub_80E6AC4);
+ }
+ break;
+ }
+ break;
+ case 10:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ sub_80E682C(sub_80E6AC4);
+ break;
+ case 100:
+ sub_80E91D4(7);
+ gEasyChatStruct->unk24++;
+ // fall through
+ case 101:
+ if (gMain.newKeys & A_BUTTON)
+ gEasyChatStruct->unk24++;
+ break;
+ case 102:
+ sub_80E7E50();
+ sub_80E95A4();
+ sub_80E682C(sub_80E6AC4);
+ break;
+ }
+}
+
+void sub_80E6F68(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E8398(1);
+ sub_80E91D4(10);
+ sub_80E683C();
+ sub_80E9974();
+ sub_80E9E98();
+ gEasyChatStruct->unk24++;
+ break;
+ case 1:
+ if (sub_80E9EA8() != 0)
+ {
+ sub_80E8D8C(1);
+ sub_80E8420();
+ sub_80E8958(0);
+ sub_80E682C(sub_80E6FC8);
+ }
+ break;
+ }
+}
+
+void sub_80E6FC8(void)
+{
+ gEasyChatStruct->unk96 = sub_80E77C8();
+ if (gEasyChatStruct->unk1C0 != 0)
+ {
+ PlaySE(SE_SELECT);
+ gEasyChatStruct->unk1C4 = sub_80E6FC8;
+ sub_80E682C(sub_80E7458);
+ }
+ else
+ {
+ if (gEasyChatStruct->unk96)
+ PlaySE(SE_SELECT);
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if (gEasyChatStruct->unk1B7 != 0)
+ {
+ PlaySE(SE_SELECT);
+ switch (gEasyChatStruct->unk1A8)
+ {
+ case 1:
+ sub_80E682C(sub_80E718C);
+ break;
+ case 2:
+ if (gEasyChatStruct->unk8 != 6)
+ {
+ sub_80E7F00(gEasyChatStruct->unk27, 0xFFFF);
+ sub_80E7574();
+ sub_80E95A4();
+ }
+ break;
+ case 3:
+ sub_80E682C(sub_80E7114);
+ break;
+ }
+ }
+ else
+ {
+ if (gEasyChatStruct->unk26 == 0
+ || gEasyChatStruct->unk4142[gEasyChatStruct->unk40[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9]] != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80E7AD4();
+ sub_80E682C(sub_80E7218);
+ }
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ sub_80E682C(sub_80E7114);
+ }
+ else if (gMain.newKeys & SELECT_BUTTON)
+ {
+ sub_80E682C(sub_80E718C);
+ }
+ }
+}
+
+void sub_80E7114(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E8504();
+ sub_80E9E98();
+ sub_80E88F0();
+ sub_80E8D8C(0);
+ gEasyChatStruct->unk24++;
+ break;
+ case 1:
+ case 2:
+ gEasyChatStruct->unk24++;
+ break;
+ case 3:
+ if (sub_80E9F50() != 0)
+ gEasyChatStruct->unk24++;
+ break;
+ case 4:
+ sub_80E682C(sub_80E6AC4);
+ break;
+ }
+}
+
+void sub_80E718C(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E8504();
+ sub_80E9E98();
+ sub_80E88F0();
+ gEasyChatStruct->unk24++;
+ sub_80E8D54();
+ break;
+ case 1:
+ if (sub_80E9FD4() != 0)
+ {
+ gEasyChatStruct->unk26 = !gEasyChatStruct->unk26;
+ sub_80E683C();
+ sub_80E9974();
+ sub_80E9E98();
+ gEasyChatStruct->unk24++;
+ }
+ break;
+ default:
+ gEasyChatStruct->unk24++;
+ break;
+ case 8:
+ if (sub_80EA014() != 0)
+ {
+ sub_80E8420();
+ sub_80E8958(0);
+ sub_80E682C(sub_80E6FC8);
+ }
+ break;
+ }
+}
+
+void sub_80E7218(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ default:
+ gEasyChatStruct->unk24++;
+ break;
+ case 8:
+ sub_80E8D8C(0);
+ sub_80E8504();
+ sub_80E9AD4();
+ sub_80E68E8();
+ sub_80E88F0();
+ sub_80E9E98();
+ gEasyChatStruct->unk24++;
+ break;
+ case 9:
+ if (sub_80EA050() != 0)
+ {
+ sub_80E9C94();
+ gEasyChatStruct->unk24++;
+ }
+ break;
+ case 10:
+ sub_80E87CC(1);
+ sub_80E8958(1);
+ sub_80E682C(sub_80E7294);
+ break;
+ case 11:
+ break;
+ }
+}
+
+void sub_80E7294(void)
+{
+ gEasyChatStruct->unk1B9 = sub_80E7B40();
+ if (gEasyChatStruct->unk1C0 != 0)
+ {
+ PlaySE(SE_SELECT);
+ gEasyChatStruct->unk1C4 = sub_80E7294;
+ sub_80E682C(sub_80E7458);
+ }
+ else
+ {
+ if (gEasyChatStruct->unk1B9)
+ PlaySE(SE_SELECT);
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80E682C(sub_80E7324);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ sub_80E682C(sub_80E73D0);
+ }
+ }
+}
+
+void sub_80E7324(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ if (!sub_80E7DD0())
+ {
+ sub_80E682C(sub_80E7294);
+ }
+ else
+ {
+ sub_80E88F0();
+ sub_80E87CC(0);
+ gEasyChatStruct->unk24++;
+ }
+ break;
+ case 1:
+ gEasyChatStruct->unk24++;
+ break;
+ case 2:
+ sub_80E9E98();
+ gEasyChatStruct->unk24++;
+ break;
+ case 3:
+ if (sub_80EA184() != 0)
+ gEasyChatStruct->unk24++;
+ break;
+ case 4:
+ if (gEasyChatStruct->unk8 == 6 && sub_80E7FA8() != 0)
+ sub_80E682C(sub_80E6D7C);
+ else
+ sub_80E682C(sub_80E6AC4);
+ break;
+ }
+}
+
+void sub_80E73D0(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ sub_80E87CC(0);
+ sub_80E88F0();
+ gEasyChatStruct->unk24++;
+ break;
+ case 1:
+ sub_80E9AD4();
+ sub_80E9E98();
+ gEasyChatStruct->unk24++;
+ break;
+ case 2:
+ if (sub_80EA0E4() != 0)
+ {
+ sub_80E8D8C(1);
+ sub_80E9A14();
+ gEasyChatStruct->unk24++;
+ }
+ break;
+ case 3:
+ sub_80E8420();
+ sub_80E8958(0);
+ gEasyChatStruct->unk24++;
+ break;
+ case 4:
+ sub_80E9974();
+ sub_80E682C(sub_80E6FC8);
+ break;
+ }
+}
+
+void sub_80E7458(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ if (gEasyChatStruct->unk1C4 == sub_80E6FC8)
+ sub_80E9D7C();
+ else
+ sub_80E9D00();
+ sub_80E9E08(gEasyChatStruct->unk1BE);
+ gEasyChatStruct->unk24++;
+ break;
+ case 1:
+ if (sub_80E9E54())
+ {
+ if (gEasyChatStruct->unk1C4 == sub_80E6FC8)
+ {
+ sub_80E9D7C();
+ gEasyChatStruct->unk1B5 += gEasyChatStruct->unk1C0;
+ sub_80E7A98();
+ gEasyChatStruct->unk96 = TRUE;
+ }
+ else
+ {
+ gEasyChatStruct->unk9A29 += gEasyChatStruct->unk1C0;
+ sub_80E7D30();
+ gEasyChatStruct->unk1B9 = 1;
+ }
+ gEasyChatStruct->unk1BE = 2;
+ sub_80E682C(gEasyChatStruct->unk1C4);
+ }
+ break;
+ }
+}
+
+void sub_80E752C(void)
+{
+ switch (gEasyChatStruct->unk24)
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gEasyChatStruct->unk24++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ SetMainCallback2(gEasyChatStruct->unk0);
+ break;
+ }
+}
+
+void sub_80E7574(void)
+{
+ if (gEasyChatStruct->unk8 == 1
+ && gEasyChatStruct->unk7E[gEasyChatStruct->unk86] == 2
+ && sub_80EB2D4(gEasyChatStruct->unkC[gEasyChatStruct->unk27]) != 7)
+ gEasyChatStruct->unk7D = 1;
+ else
+ gEasyChatStruct->unk7D = 0;
+ gEasyChatStruct->unk7D = 0; // What the hell?
+}
+
+bool8 sub_80E75D8(void)
+{
+ bool8 pressedUpDown = FALSE;
+ u8 r0;
+
+ if (gMain.newKeys & START_BUTTON)
+ {
+ gEasyChatStruct->unk86 = gEasyChatStruct->unk84;
+ gEasyChatStruct->unk85 = 2;
+ return TRUE;
+ }
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ gEasyChatStruct->unk86--;
+ if (gEasyChatStruct->unk86 < 0)
+ gEasyChatStruct->unk86 = gEasyChatStruct->unk84;
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ gEasyChatStruct->unk86++;
+ if (gEasyChatStruct->unk86 > gEasyChatStruct->unk84)
+ gEasyChatStruct->unk86 = 0;
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ if (gEasyChatStruct->unk9 == 2)
+ {
+ if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84)
+ gEasyChatStruct->unk85 = 2;
+ else
+ gEasyChatStruct->unk85 = 0;
+ return TRUE;
+ }
+ else
+ {
+ if (gEasyChatStruct->unk85 >= gEasyChatStruct->unk83)
+ gEasyChatStruct->unk85 = gEasyChatStruct->unk83 - 1;
+ if (gEasyChatStruct->unk86 != gEasyChatStruct->unk84)
+ {
+ r0 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85;
+ if (r0 >= gEasyChatStruct->unkA)
+ gEasyChatStruct->unk85 = r0 - gEasyChatStruct->unkA;
+ }
+ return TRUE;
+ }
+ }
+ else
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (--gEasyChatStruct->unk85 < 0)
+ {
+ if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84)
+ {
+ gEasyChatStruct->unk85 = 2;
+ }
+ else
+ {
+ gEasyChatStruct->unk85 = gEasyChatStruct->unk83 - 1;
+ r0 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85;
+ if (r0 >= gEasyChatStruct->unkA)
+ gEasyChatStruct->unk85 = r0 - gEasyChatStruct->unkA;
+ }
+ }
+ return TRUE;
+ }
+ if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (gEasyChatStruct->unk86 == gEasyChatStruct->unk84)
+ {
+ if (++gEasyChatStruct->unk85 > 2)
+ gEasyChatStruct->unk85 = 0;
+ }
+ else
+ {
+ if (++gEasyChatStruct->unk85 >= gEasyChatStruct->unk83)
+ gEasyChatStruct->unk85 = 0;
+ r0 = gEasyChatStruct->unk86 * gEasyChatStruct->unk83 + gEasyChatStruct->unk85;
+ if (r0 >= gEasyChatStruct->unkA)
+ gEasyChatStruct->unk85 = r0 - gEasyChatStruct->unkA;
+ }
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_80E77C8(void)
+{
+ bool8 pressedLeftRight = FALSE;
+ bool8 pressedUpDown;
+
+ if (gEasyChatStruct->unk1B7 != 0)
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ gEasyChatStruct->unk1A8--;
+ if (gEasyChatStruct->unk1A8 < 1)
+ gEasyChatStruct->unk1A8 = 3;
+ return TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ gEasyChatStruct->unk1A8++;
+ if (gEasyChatStruct->unk1A8 > 3)
+ gEasyChatStruct->unk1A8 = 1;
+ return TRUE;
+ }
+ }
+ else
+ {
+ if (gEasyChatStruct->unk26 == 1)
+ {
+ pressedUpDown = FALSE;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ gEasyChatStruct->unk1A8--;
+ if (gEasyChatStruct->unk1A8 < 0)
+ gEasyChatStruct->unk1A8 = 3;
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ gEasyChatStruct->unk1A8++;
+ if (gEasyChatStruct->unk1A8 > 3)
+ gEasyChatStruct->unk1A8 = 0;
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ sub_80E7A98();
+ return TRUE;
+ }
+ }
+ else
+ {
+ pressedUpDown = FALSE;
+ gEasyChatStruct->unk1C0 = 0;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (gEasyChatStruct->unk1A8 == 0)
+ return FALSE;
+ gEasyChatStruct->unk1A8--;
+ if (gEasyChatStruct->unk1A8 < gEasyChatStruct->unk1B5)
+ gEasyChatStruct->unk1C0 = -1;
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (gEasyChatStruct->unk1A8 >= gEasyChatStruct->unk1B6 - 1)
+ return FALSE;
+ gEasyChatStruct->unk1A8++;
+ if (gEasyChatStruct->unk1A8 > gEasyChatStruct->unk1B5 + 3)
+ gEasyChatStruct->unk1C0 = 1;
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ if (gEasyChatStruct->unk1C0 == 0)
+ {
+ sub_80E7A98();
+ return TRUE;
+ }
+ return FALSE;
+ }
+ }
+ }
+
+ if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ if (gEasyChatStruct->unk1A9 != 0)
+ gEasyChatStruct->unk1A9--;
+ else
+ gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8];
+ pressedLeftRight = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (gEasyChatStruct->unk1B7 != 0
+ || gEasyChatStruct->unk1A9 == gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8])
+ gEasyChatStruct->unk1A9 = 0;
+ else
+ gEasyChatStruct->unk1A9++;
+ pressedLeftRight = TRUE;
+ }
+
+ if (pressedLeftRight)
+ {
+ s8 r9 = gEasyChatStruct->unk1B7;
+
+ gEasyChatStruct->unk1B7 = (gEasyChatStruct->unk1A9 == gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8]);
+ if (gEasyChatStruct->unk1B7 != 0)
+ {
+ gEasyChatStruct->unk1A8 -= gEasyChatStruct->unk1B5;
+ if (gEasyChatStruct->unk1A8 == 0)
+ {
+ gEasyChatStruct->unk1A8 = 1;
+ gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8];
+ }
+ }
+ else if (r9 != 0)
+ {
+ gEasyChatStruct->unk1A8 += gEasyChatStruct->unk1B5;
+ if (gEasyChatStruct->unk1A9 != 0)
+ gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8] - 1;
+ }
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void sub_80E7A98(void)
+{
+ if (gEasyChatStruct->unk1A9 >= gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8])
+ gEasyChatStruct->unk1A9 = gEasyChatStruct->unk1AA[gEasyChatStruct->unk1A8] - 1;
+}
+
+void sub_80E7AD4(void)
+{
+ if (gEasyChatStruct->unk26 == 0)
+ gEasyChatStruct->unk1B8 = gEasyChatStruct->unk2A[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9];
+ else
+ gEasyChatStruct->unk1B8 = gEasyChatStruct->unk40[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9];
+}
+
+bool8 sub_80E7B40(void)
+{
+ bool8 pressedUpDown = FALSE;
+
+ gEasyChatStruct->unk1C0 = 0;
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (gEasyChatStruct->unk99A4 == 0)
+ return FALSE;
+ gEasyChatStruct->unk99A4--;
+ if (gEasyChatStruct->unk99A4 < gEasyChatStruct->unk9A29)
+ {
+ gEasyChatStruct->unk1C0 = -1;
+ return FALSE;
+ }
+ pressedUpDown = TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (gEasyChatStruct->unk99A4 >= gEasyChatStruct->unk9A28 - 1)
+ return FALSE;
+ gEasyChatStruct->unk99A4++;
+ if (gEasyChatStruct->unk99A4 >= gEasyChatStruct->unk9A29 + 4)
+ {
+ gEasyChatStruct->unk1C0 = 1;
+ return FALSE;
+ }
+ pressedUpDown = TRUE;
+ }
+
+ if (pressedUpDown)
+ {
+ sub_80E7D30();
+ return TRUE;
+ }
+
+ if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ gEasyChatStruct->unk99A5--;
+ if (gEasyChatStruct->unk99A5 < 0)
+ gEasyChatStruct->unk99A5 = gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4] - 1;
+ return TRUE;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ gEasyChatStruct->unk99A5++;
+ if (gEasyChatStruct->unk99A5 >= gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4])
+ gEasyChatStruct->unk99A5 = 0;
+ return TRUE;
+ }
+
+ if (gMain.newKeys & START_BUTTON)
+ {
+ if (gEasyChatStruct->unk9A29 != 0)
+ {
+ gEasyChatStruct->unk1C0 = -gEasyChatStruct->unk9A29;
+ if (gEasyChatStruct->unk1C0 < -4)
+ gEasyChatStruct->unk1C0 = -4;
+ }
+ gEasyChatStruct->unk99A4 += gEasyChatStruct->unk1C0;
+ gEasyChatStruct->unk1BE = 4;
+ }
+ else if (gMain.newKeys & SELECT_BUTTON)
+ {
+ if (gEasyChatStruct->unk9A29 < gEasyChatStruct->unk9A28 - 4)
+ {
+ gEasyChatStruct->unk1C0 = gEasyChatStruct->unk9A28 - 4 - gEasyChatStruct->unk9A29;
+ if (gEasyChatStruct->unk1C0 > 4)
+ gEasyChatStruct->unk1C0 = 4;
+ }
+ gEasyChatStruct->unk99A4 += gEasyChatStruct->unk1C0;
+ gEasyChatStruct->unk1BE = 4;
+ }
+
+ return FALSE;
+}
+
+void sub_80E7D30(void)
+{
+ if (gEasyChatStruct->unk99A5 >= gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4])
+ gEasyChatStruct->unk99A5 = gEasyChatStruct->unk99A6[gEasyChatStruct->unk99A4] - 1;
+}
+
+void sub_80E7D6C(void)
+{
+ u16 i;
+
+ for (i = 0; i < gEasyChatStruct->unkA; i++)
+ sub_80E7F00(i, 0xFFFF);
+}
+
+void sub_80E7D9C(void)
+{
+ u16 i;
+
+ for (i = 0; i < gEasyChatStruct->unkA; i++)
+ gEasyChatStruct->unk4[i] = gEasyChatStruct->unkC[i];
+}
+
+bool8 sub_80E7DD0(void)
+{
+ u16 r4 = gEasyChatStruct->unk9A2A[gEasyChatStruct->unk99A4][gEasyChatStruct->unk99A5];
+
+ if (gEasyChatStruct->unk7D != 0
+ && gEasyChatStruct->unk7E[gEasyChatStruct->unk86] > 1
+ && sub_80EB2D4(r4) == 7)
+ return FALSE;
+
+ sub_80E7F00(gEasyChatStruct->unk27, r4);
+ sub_80E95A4();
+ return TRUE;
+}
+
+void sub_80E7E50(void)
+{
+ u16 r5 = 0;
+ u16 i;
+ u16 j;
+
+ for (i = 0; i < gEasyChatStruct->unk84; i++)
+ {
+ gEasyChatStruct->unk7E[i] = 0;
+ for (j = 0; j < gEasyChatStruct->unk83; j++)
+ {
+ gEasyChatStruct->unkC[r5] = gEasyChatStruct->unk4[r5];
+ gEasyChatStruct->unk8C[i][j] = 0;
+ r5++;
+ }
+ }
+}
+
+void sub_80E7F00(u16 a, u16 b)
+{
+ u16 r5 = a / gEasyChatStruct->unk83;
+ u16 r8 = a % gEasyChatStruct->unk83;
+ u16 r4 = sub_80EB2D4(gEasyChatStruct->unkC[a]);
+ u16 r3 = sub_80EB2D4(b);
+
+ if (r4 == 7)
+ {
+ if (r3 != 7)
+ gEasyChatStruct->unk7E[r5]--;
+ }
+ else
+ {
+ if (r3 == 7)
+ gEasyChatStruct->unk7E[r5]++;
+ }
+ r3 = 0;
+ gEasyChatStruct->unk8C[r5][r8] = r3;
+ gEasyChatStruct->unkC[a] = b;
+}
+
+u8 sub_80E7FA8(void)
+{
+ u16 r8 = 0;
+ u16 i;
+ u8 *r1;
+ u8 *r2;
+
+ for (i = 0; i < gEasyChatStruct->unkA; i++)
+ {
+ sub_80EB218(gEasyChatStruct->unk9E14, gEasyChatStruct->unk4[i], 0);
+ sub_80EB218(gEasyChatStruct->unk9E41, gEasyChatStruct->unkC[i], 0);
+ r1 = gEasyChatStruct->unk9E14;
+ r2 = gEasyChatStruct->unk9E41;
+ while (*r1 == *r2 && *r1 != 0xFF)
+ {
+ r1++;
+ r2++;
+ }
+ if (*r1 != *r2)
+ r8++;
+ }
+ return r8;
+}
+
+bool8 sub_80E8054(void)
+{
+ u16 i;
+
+ for (i = 0; i < gEasyChatStruct->unkA; i++)
+ {
+ if (gEasyChatStruct->unkC[i] != 0xFFFF)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+// CheckMysteryEventPhrase
+bool8 sub_80E8094(void)
+{
+ u16 i;
+ u8 *r3;
+ u8 *r4;
+
+ for (i = 0; i < 4; i++)
+ {
+ sub_80EB218(gEasyChatStruct->unk9E14, gEasyChatStruct->unkC[i], 0);
+ sub_80EB218(gEasyChatStruct->unk9E41, gMysteryEventPhrase[i], 0);
+ r3 = gEasyChatStruct->unk9E14;
+ r4 = gEasyChatStruct->unk9E41;
+ while (*r3 != 0xFF && *r4 != 0xFF)
+ {
+ if (*r3++ != *r4++)
+ return FALSE;
+ }
+ if (*r3 != 0xFF || *r4 != 0xFF)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+u8 sub_80E810C(void)
+{
+ u16 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ u8 *ptr;
+ u8 *r3;
+
+ ptr = sub_80EB218(gEasyChatStruct->unk9E6E, gEasyChatStruct->unkC[0], 0);
+ *ptr++ = CHAR_SPACE;
+ sub_80EB218(ptr, gEasyChatStruct->unkC[1], 0);
+
+ ptr = sub_80EB218(gEasyChatStruct->unk9EEE, gBerryMasterWifePhrases[i][0], 0);
+ *ptr++ = CHAR_SPACE;
+ sub_80EB218(ptr, gBerryMasterWifePhrases[i][1], 0);
+
+ ptr = gEasyChatStruct->unk9E6E;
+ r3 = gEasyChatStruct->unk9EEE;
+ while (*ptr != EOS && *r3 != EOS)
+ {
+ if (*ptr++ != *r3++)
+ break;
+ }
+ if (*ptr == EOS && *r3 == EOS)
+ return i + 1;
+ }
+ return 0;
+}
+
+void sub_80E81C0(void)
+{
+ u8 *ptr;
+
+ ptr = sub_80EB218(gStringVar2, gEasyChatStruct->unk9C7C, 0);
+ *ptr++ = CHAR_SPACE;
+ sub_80EB218(ptr, gEasyChatStruct->unk9C7E, 0);
+}
+
+void sub_80E81FC(void)
+{
+ PlaySE(SE_SELECT);
+ sub_80E95A4();
+ Menu_EraseWindowRect(0, 0, 29, 13);
+}
diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c
new file mode 100644
index 000000000..c56fe7576
--- /dev/null
+++ b/src/easy_chat_2.c
@@ -0,0 +1,3036 @@
+#include "global.h"
+#include "constants/easy_chat.h"
+#include "constants/map_objects.h"
+#include "data2.h"
+#include "decompress.h"
+#include "easy_chat.h"
+#include "event_data.h"
+#include "field_map_obj.h"
+#include "field_message_box.h"
+#include "graphics.h"
+#include "menu.h"
+#include "palette.h"
+#include "pokedex.h"
+#include "random.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "strings.h"
+#include "strings2.h"
+#include "trig.h"
+#include "scanline_effect.h"
+
+extern void sub_8095C8C();
+extern void sub_809D104(void *, u16, u16, const void *, u16, u16, u16, u16);
+
+void sub_80E8268(void);
+void sub_80E82BC(struct Sprite *);
+void sub_80E8534(void);
+void sub_80E85F8(struct Sprite *);
+void sub_80E872C(struct Sprite *);
+void sub_80E8760(struct Sprite *);
+void sub_80E8818(void);
+void sub_80E8860(struct Sprite *);
+void sub_80E8A7C(void);
+void sub_80E8B78(struct Sprite *);
+void sub_80E8FA4(void);
+void sub_80E9198(u8);
+void sub_80E91D4(u8);
+void sub_80E948C(void);
+void sub_80E95A4(void);
+void sub_80E9620(u16, u16);
+void sub_80E97C0(u16, u16);
+void sub_80E9A4C(void);
+void sub_80E9A60(const u8 *, u16, u16);
+void sub_80E9A7C(u8 *, u16);
+void sub_80E9AD4(void);
+void sub_80E9C74(u16);
+u8 sub_80EA1E0(void);
+void sub_80EA24C(void);
+void sub_80EA348(void);
+void sub_80EA4A4(void);
+void sub_80EA5A0(void);
+void sub_80EA704(void);
+void sub_80EA764(void);
+void sub_80EA7F4(void);
+void sub_80EA8BC(void);
+void sub_80EA948(void);
+void sub_80EAA44(void);
+void sub_80EAAD4(void);
+void sub_80EABD4(u16 *, u16, u16, u16, u16, u16, u16, u16, u16);
+void sub_80EAC0C(u16 *);
+void sub_80EAC30(struct UnknownEasyChatStruct1 *, u16, u16, u16, u16, void *);
+void sub_80EAC48(struct UnknownEasyChatStruct1 *);
+void sub_80EACBC(void *, u16 *, struct UnknownEasyChatStruct1 *);
+u8 *CopyEasyChatGroupName(u8 *, u8, int);
+u8 *sub_80EB218(u8 *, u16, u16);
+u16 sub_80EB2D4(u16);
+bool8 sub_80EB37C(u16);
+bool8 sub_80EB868(u8);
+static u16 sub_80EB960(void);
+u8 sub_80EB9C8(void);
+static u16 sub_80EB9D8(void);
+
+EWRAM_DATA u8 gUnknown_020388AC = 0;
+
+static u8 gUnknown_03000740;
+
+const u16 InterviewPalette_0[] = INCBIN_U16("graphics/misc/interview_pal0.gbapal");
+const u16 InterviewPalette_1[] = INCBIN_U16("graphics/misc/interview_pal1.gbapal");
+const u8 InterviewArrowTiles[] = INCBIN_U8("graphics/misc/interview_arrow.4bpp");
+const u8 InterviewButtonTiles[] = INCBIN_U8("graphics/misc/interview_buttons.4bpp");
+const u16 gMenuInterviewFrame_Pal[] = INCBIN_U16("graphics/misc/interview_frame.gbapal");
+const u8 gMenuInterviewFrame_Gfx[] = INCBIN_U8("graphics/misc/interview_frame.4bpp.lz");
+const u8 InterviewTriangleCursorTiles[] = INCBIN_U8("graphics/misc/interview_triangle_cursor.4bpp");
+
+void sub_80E8218(void)
+{
+ struct SpriteSheet interviewSpriteSheets[] =
+ {
+ {InterviewTriangleCursorTiles, 0x20, 0},
+ {gInterviewOutlineCursorTiles, 0x700, 1},
+ {InterviewArrowTiles, 0x100, 2},
+ {InterviewButtonTiles, 0x100, 3},
+ {NULL, 0, 0},
+ };
+ struct SpritePalette interviewSpritePalettes[] =
+ {
+ {InterviewPalette_0, 0},
+ {InterviewPalette_1, 1},
+ {NULL, 0},
+ };
+
+ LoadSpriteSheets(interviewSpriteSheets);
+ LoadSpritePalettes(interviewSpritePalettes);
+ sub_80E8268();
+ sub_80E8818();
+ sub_80E8A7C();
+}
+
+const struct OamData gOamData_83DBBF4 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83DBBFC =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &gOamData_83DBBF4,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80E82BC,
+};
+
+void sub_80E8268(void)
+{
+ u8 spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83DBBFC, 0, 0, 0);
+ gSprites[spriteId].pos1.y = gEasyChatStruct->unk8A * 8 + 8;
+ gSprites[spriteId].pos1.x = gEasyChatStruct->unk88 * 8 + 4;
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = 0;
+ gEasyChatStruct->unk98 = &gSprites[spriteId];
+}
+
+void sub_80E82BC(struct Sprite *sprite)
+{
+ if (sprite->data[1] == 0)
+ {
+ if (gEasyChatStruct->unk87)
+ {
+ u16 r5 = gEasyChatStruct->unk86;
+ u16 r4 = gEasyChatStruct->unk85;
+ u16 r7 = 0;
+ u16 i;
+
+ for (i = 0; i < r4; i++)
+ r7 += gEasyChatStruct->unk8C[r5][i];
+
+ if (r5 == gEasyChatStruct->unk84)
+ {
+ sprite->pos1.y = 96;
+ sprite->pos1.x = (r4 * 7 + 3) * 8 + 4;
+ }
+ else
+ {
+ sprite->pos1.y = (gEasyChatStruct->unk8A + r5 * 2) * 8 + 8;
+ sprite->pos1.x = (gEasyChatStruct->unk88 + r7 + r4 * 11) * 8 + 4;
+ }
+
+ sprite->pos2.x = -6;
+ sprite->data[0] = 0;
+ }
+ else
+ {
+ if (++sprite->data[0] > 2)
+ {
+ sprite->data[0] = 0;
+ if (++sprite->pos2.x > 0)
+ sprite->pos2.x = -6;
+ }
+ }
+ }
+}
+
+void sub_80E8398(u8 a)
+{
+ switch (a)
+ {
+ case 0:
+ gEasyChatStruct->unk98->data[1] = a;
+ gEasyChatStruct->unk98->pos2.x = a;
+ gEasyChatStruct->unk98->invisible = FALSE;
+ break;
+ case 1:
+ gEasyChatStruct->unk98->data[1] = a;
+ gEasyChatStruct->unk98->pos2.x = 0;
+ gEasyChatStruct->unk98->invisible = FALSE;
+ break;
+ case 2:
+ gEasyChatStruct->unk98->data[1] = 1;
+ gEasyChatStruct->unk98->pos2.x = 0;
+ gEasyChatStruct->unk98->invisible = TRUE;
+ break;
+ }
+}
+
+const struct OamData gOamData_83DBC14 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 1,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83DBC1C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC24[] =
+{
+#if ENGLISH
+ ANIMCMD_FRAME(8, 5),
+#else
+ ANIMCMD_FRAME(0, 5),
+#endif
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC2C[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC34[] =
+{
+ ANIMCMD_FRAME(24, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC3C[] =
+{
+ ANIMCMD_FRAME(32, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC44[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC4C[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC54[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC5C[] =
+{
+ ANIMCMD_FRAME(48, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC64[] =
+{
+#if ENGLISH
+ ANIMCMD_FRAME(40, 5),
+#else
+ ANIMCMD_FRAME(16, 5),
+#endif
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC6C[] =
+{
+ ANIMCMD_FRAME(48, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBC74[] =
+{
+ ANIMCMD_FRAME(40, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83DBC7C[] =
+{
+ gSpriteAnim_83DBC1C,
+ gSpriteAnim_83DBC24,
+ gSpriteAnim_83DBC2C,
+ gSpriteAnim_83DBC34,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83DBC8C[] =
+{
+ gSpriteAnim_83DBC3C,
+ gSpriteAnim_83DBC44,
+ gSpriteAnim_83DBC4C,
+ gSpriteAnim_83DBC54,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83DBC9C[] =
+{
+ gSpriteAnim_83DBC5C,
+ gSpriteAnim_83DBC64,
+ gSpriteAnim_83DBC6C,
+ gSpriteAnim_83DBC74,
+};
+
+void sub_80E8420(void)
+{
+ struct SpriteTemplate spriteTemplate_83DBCAC =
+ {
+ .tileTag = 1,
+ .paletteTag = 1,
+ .oam = &gOamData_83DBC14,
+ .anims = gSpriteAnimTable_83DBC7C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80E85F8,
+ };
+ u8 spriteId;
+
+ spriteId = CreateSprite(&spriteTemplate_83DBCAC, 0, 0, 3);
+ gEasyChatStruct->unk9C = &gSprites[spriteId];
+
+ spriteTemplate_83DBCAC.anims = gSpriteAnimTable_83DBC8C;
+ spriteTemplate_83DBCAC.callback = sub_80E872C;
+ spriteId = CreateSprite(&spriteTemplate_83DBCAC, 0, 0, 4);
+ gEasyChatStruct->unkA0 = &gSprites[spriteId];
+
+ spriteTemplate_83DBCAC.anims = gSpriteAnimTable_83DBC9C;
+ spriteTemplate_83DBCAC.callback = sub_80E8760;
+ spriteId = CreateSprite(&spriteTemplate_83DBCAC, 0, 0, 5);
+ gEasyChatStruct->unkA4 = &gSprites[spriteId];
+
+ gEasyChatStruct->unk9C->data[0] = 0;
+ gEasyChatStruct->unkA0->data[0] = 0;
+ gEasyChatStruct->unkA4->data[0] = 0;
+
+ gEasyChatStruct->unk9C->data[3] = 0x0101 + IndexOfSpritePaletteTag(1) * 16;
+ sub_80E8534();
+ gEasyChatStruct->unk96 = 1;
+ REG_BLDCNT = 0x3F40;
+}
+
+void sub_80E8504(void)
+{
+ DestroySprite(gEasyChatStruct->unk9C);
+ DestroySprite(gEasyChatStruct->unkA0);
+ DestroySprite(gEasyChatStruct->unkA4);
+}
+
+void sub_80E8534(void)
+{
+ if (gEasyChatStruct->unk1B7 != 0)
+ gUnknown_020388AC = 1;
+ else if (gEasyChatStruct->unk26 == 0)
+ gUnknown_020388AC = 0;
+ else if (gEasyChatStruct->unk1A8 == 0 && gEasyChatStruct->unk1A9 == 6)
+ gUnknown_020388AC = 2;
+ else
+ gUnknown_020388AC = 3;
+
+ gEasyChatStruct->unk9C->data[2] = gUnknown_020388AC;
+ gEasyChatStruct->unkA0->data[2] = gUnknown_020388AC;
+ gEasyChatStruct->unkA4->data[2] = gUnknown_020388AC;
+
+ StartSpriteAnim(gEasyChatStruct->unk9C, gUnknown_020388AC);
+ StartSpriteAnim(gEasyChatStruct->unkA0, gUnknown_020388AC);
+ StartSpriteAnim(gEasyChatStruct->unkA4, gUnknown_020388AC);
+
+ gEasyChatStruct->unk9C->data[5] = 8;
+ gEasyChatStruct->unk9C->data[6] = 8;
+ gEasyChatStruct->unk9C->data[1] = 0;
+}
+
+const s8 gUnknown_083DBCC4[][7] =
+{
+ {1, 3, 5, 8, 10, 12, 15},
+ {1, 3, 5, 8, 10, 12, 0},
+ {1, 3, 5, 8, 10, 12, 14},
+ {1, 3, 5, 8, 10, 12, 14},
+};
+
+void sub_80E85F8(struct Sprite *sprite)
+{
+ sprite->data[0]++;
+ if (sprite->data[0] & 1)
+ sprite->data[5] = 8 + (gSineTable[sprite->data[1]] >> 5);
+ else
+ sprite->data[6] = 8 - (gSineTable[sprite->data[1]] >> 5);
+
+ sprite->data[1] = (sprite->data[1] + 5) & 0xFF;
+
+ REG_BLDALPHA = (sprite->data[6] << 8) | sprite->data[5];
+
+ if (gEasyChatStruct->unk96 != 0)
+ {
+ sub_80E8534();
+
+ gEasyChatStruct->unk9C->data[5] = 8;
+ gEasyChatStruct->unk9C->data[6] = 8;
+ gEasyChatStruct->unk9C->data[1] = 0;
+
+ switch (sprite->data[2])
+ {
+ case 0:
+ sprite->pos1.x = gEasyChatStruct->unk1A9 * 88 + 32;
+ sprite->pos1.y = (gEasyChatStruct->unk1A8 - gEasyChatStruct->unk1B5) * 16 + 96;
+ break;
+ case 1:
+#if ENGLISH
+ sprite->pos1.x = 216;
+#else
+ sprite->pos1.x = 214;
+#endif
+ sprite->pos1.y = gEasyChatStruct->unk1A8 * 16 + 96;
+ break;
+ case 2:
+ sprite->pos1.x = 151;
+ sprite->pos1.y = 96;
+ break;
+ case 3:
+ sprite->pos1.x = gUnknown_083DBCC4[gEasyChatStruct->unk1A8][gEasyChatStruct->unk1A9] * 8 + 31;
+ sprite->pos1.y = (gEasyChatStruct->unk1A8 - gEasyChatStruct->unk1B5) * 16 + 96;
+ break;
+ }
+ }
+}
+
+
+void sub_80E872C(struct Sprite *sprite)
+{
+ if (gEasyChatStruct->unk96 != 0 && sprite->data[2] == 0)
+ {
+ sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 32;
+ sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y;
+ }
+}
+
+void sub_80E8760(struct Sprite *sprite)
+{
+ if (gEasyChatStruct->unk96 != 0)
+ {
+ switch (sprite->data[2])
+ {
+ case 0:
+ sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 64;
+ sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y;
+ break;
+#if GERMAN
+ case 1:
+ sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 28;
+ sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y;
+ break;
+#endif
+ case 2:
+ sprite->pos1.x = gEasyChatStruct->unk9C->pos1.x + 21;
+ sprite->pos1.y = gEasyChatStruct->unk9C->pos1.y;
+ break;
+ }
+ }
+}
+
+void sub_80E87A4(u8 a)
+{
+ gEasyChatStruct->unkA8->data[1] = (a == 0);
+ gEasyChatStruct->unkA8->pos2.x = 0;
+}
+
+void sub_80E87CC(u8 a)
+{
+ gEasyChatStruct->unkA8->invisible = (a == 0);
+ sub_80E87A4(a);
+ if (a != 0)
+ gEasyChatStruct->unk1B9 = 1;
+}
+
+void sub_80E8818(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83DBBFC, 0, 0, 0);
+
+ gSprites[spriteId].data[0] = 0;
+ gSprites[spriteId].data[1] = 0;
+ gEasyChatStruct->unkA8 = &gSprites[spriteId];
+ gEasyChatStruct->unkA8->callback = sub_80E8860;
+ sub_80E87CC(0);
+}
+
+void sub_80E8860(struct Sprite *sprite)
+{
+ if (sprite->data[1] == 0)
+ {
+ if (gEasyChatStruct->unk1B9 != 0)
+ {
+ sprite->pos1.x = gEasyChatStruct->unk99A5 * 88 + 44;
+ sprite->pos1.y = (gEasyChatStruct->unk99A4 - gEasyChatStruct->unk9A29) * 16 + 96;
+ sprite->pos2.x = -6;
+ sprite->data[0] = 0;
+ }
+ else
+ {
+ sprite->data[0]++;
+ if (sprite->data[0] > 2)
+ {
+ sprite->data[0] = 0;
+ sprite->pos2.x++;
+ if (sprite->pos2.x > 0)
+ sprite->pos2.x = -6;
+ }
+ }
+ }
+}
+
+void sub_80E88F0(void)
+{
+ u16 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ gEasyChatStruct->unkAC[i]->invisible = TRUE;
+ gEasyChatStruct->unkAC[i]->data[1] = 0;
+ gEasyChatStruct->unkB4[i]->invisible = TRUE;
+ gEasyChatStruct->unkB4[i]->data[1] = 0;
+ }
+ gEasyChatStruct->unk9C70 = 0;
+}
+
+void sub_80E8958(u8 animNum)
+{
+ s16 r9;
+ u16 i;
+
+ if (animNum == 0)
+ {
+ r9 = 100;
+ gEasyChatStruct->unk9C6C = &gEasyChatStruct->unk1B5;
+ if (gEasyChatStruct->unk26 == 0)
+ gEasyChatStruct->unk9C71 = gEasyChatStruct->unk1B6 - 4;
+ else
+ gEasyChatStruct->unk9C71 = 0;
+ }
+ else
+ {
+ r9 = 120;
+ gEasyChatStruct->unk9C6C = &gEasyChatStruct->unk9A29;
+ gEasyChatStruct->unk9C71 = gEasyChatStruct->unk9A28 - 4;
+ for (i = 0; i < 2; i++)
+ {
+ gEasyChatStruct->unkB4[i]->invisible = FALSE;
+ gEasyChatStruct->unkB4[i]->data[1] = 1;
+ }
+ }
+
+ if (gEasyChatStruct->unk9C71 < 0)
+ gEasyChatStruct->unk9C71 = 0;
+
+ for (i = 0; i < 2; i++)
+ {
+ gEasyChatStruct->unkAC[i]->pos1.x = r9;
+ gEasyChatStruct->unkAC[i]->invisible = FALSE;
+ gEasyChatStruct->unkAC[i]->data[1] = 1;
+ StartSpriteAnim(gEasyChatStruct->unkAC[i], animNum);
+ }
+
+ gEasyChatStruct->unk9C70 = 1;
+}
+
+const struct OamData gOamData_83DBCE0 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83DBCE8[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBCF0[] =
+{
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83DBCF8[] =
+{
+ gSpriteAnim_83DBCE8,
+ gSpriteAnim_83DBCF0,
+};
+
+const union AnimCmd gSpriteAnim_83DBD00[] =
+{
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBD08[] =
+{
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83DBD10[] =
+{
+ gSpriteAnim_83DBD00,
+ gSpriteAnim_83DBD08,
+};
+
+void sub_80E8A7C(void)
+{
+ struct SpriteTemplate spriteTemplate_83DBD18 =
+ {
+ .tileTag = 2,
+ .paletteTag = 0,
+ .oam = &gOamData_83DBCE0,
+ .anims = gSpriteAnimTable_83DBCF8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80E8B78,
+ };
+ u16 i;
+ u8 spriteId;
+
+ for (i = 0; i < 2; i++)
+ {
+ spriteId = CreateSprite(&spriteTemplate_83DBD18, 0, 84 + i * 72 , 0);
+ gEasyChatStruct->unkAC[i] = &gSprites[spriteId];
+ gEasyChatStruct->unkAC[i]->data[0] = i;
+ gEasyChatStruct->unkAC[i]->vFlip = i;
+ }
+
+ spriteTemplate_83DBD18.tileTag = 3;
+ spriteTemplate_83DBD18.anims = gSpriteAnimTable_83DBD10;
+
+ for (i = 0; i < 2; i++)
+ {
+ spriteId = CreateSprite(&spriteTemplate_83DBD18, 142 + i * 40, 88, 0);
+ gEasyChatStruct->unkB4[i] = &gSprites[spriteId];
+ gEasyChatStruct->unkB4[i]->data[0] = i;
+ gEasyChatStruct->unkB4[i]->oam.shape = 1;
+ gEasyChatStruct->unkB4[i]->oam.size = 1;
+ StartSpriteAnim(gEasyChatStruct->unkB4[i], i);
+ }
+
+ sub_80E8958(0);
+ sub_80E88F0();
+}
+
+void sub_80E8B78(struct Sprite *sprite)
+{
+ bool8 invisible;
+
+ if (gEasyChatStruct->unk9C70 != 0 && sprite->data[1] != 0)
+ {
+ if (sprite->data[0] == 0)
+ {
+ invisible = FALSE;
+ if (*gEasyChatStruct->unk9C6C == 0)
+ invisible = TRUE;
+ sprite->invisible = invisible;
+ }
+ else
+ {
+ invisible = FALSE;
+ if (*gEasyChatStruct->unk9C6C == gEasyChatStruct->unk9C71)
+ invisible = TRUE;
+ sprite->invisible = invisible;
+ }
+ }
+}
+
+// defined below
+extern const struct SpriteTemplate gSpriteTemplate_83DBD48;
+
+void sub_80E8BF4(u8 reporter, u8 b)
+{
+ struct CompressedSpriteSheet gUnknown_083DBD30 = {gMenuInterviewFrame_Gfx, 2048, 0x0006};
+ struct SpritePalette gUnknown_083DBD38 = {gMenuInterviewFrame_Pal, 0x0004};
+ s16 x;
+ s16 y;
+ u16 gabbyTyGfxId;
+ u8 spriteId;
+
+ switch (b)
+ {
+ case 2:
+ default:
+ x = 64;
+ y = 40;
+ break;
+ case 5:
+ x = 36;
+ y = 48;
+ break;
+ }
+
+ switch (reporter)
+ {
+ case 0: // Gabby
+ default:
+ gabbyTyGfxId = MAP_OBJ_GFX_REPORTER_M;
+ break;
+ case 1: // Ty
+ gabbyTyGfxId = MAP_OBJ_GFX_REPORTER_F;
+ break;
+ }
+
+ LoadCompressedObjectPic(&gUnknown_083DBD30);
+ LoadSpritePalette(&gUnknown_083DBD38);
+ CreateSprite(&gSpriteTemplate_83DBD48, x, y, 1);
+
+ spriteId = AddPseudoFieldObject(
+ (gSaveBlock2.playerGender == MALE) ? MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL : MAP_OBJ_GFX_RIVAL_MAY_NORMAL,
+ SpriteCallbackDummy, x - 12, y, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 0;
+ StartSpriteAnim(&gSprites[spriteId], 3);
+ }
+
+ spriteId = AddPseudoFieldObject(gabbyTyGfxId, SpriteCallbackDummy, x + 12, y, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 0;
+ StartSpriteAnim(&gSprites[spriteId], 2);
+ }
+}
+
+const struct OamData gOamData_83DBD40 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83DBD48 =
+{
+ .tileTag = 6,
+ .paletteTag = 4,
+ .oam = &gOamData_83DBD40,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+const struct CompressedSpriteSheet gUnknown_083DBD60 = {gMenuWordGroupIndicator_Gfx, 4096, 0x0007};
+
+const struct SpritePalette gUnknown_083DBD68 = {gMenuWordGroupIndicator_Pal, 0x0005};
+
+const struct OamData gOamData_83DBD70 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83DBD78[] =
+{
+ ANIMCMD_FRAME(96, 3),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBD80[] =
+{
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(96, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBD94[] =
+{
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(96, 4),
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_FRAME(32, 4),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBDA8[] =
+{
+ ANIMCMD_FRAME(64, 2),
+ ANIMCMD_FRAME(32, 2),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBDB4[] =
+{
+ ANIMCMD_FRAME(64, 2),
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83DBDC0[] =
+{
+ ANIMCMD_FRAME(64, 2),
+ ANIMCMD_FRAME(96, 2),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83DBDCC[] =
+{
+ gSpriteAnim_83DBD78,
+ gSpriteAnim_83DBD80,
+ gSpriteAnim_83DBD94,
+ gSpriteAnim_83DBDA8,
+ gSpriteAnim_83DBDB4,
+ gSpriteAnim_83DBDC0,
+};
+
+const struct SpriteTemplate gSpriteTemplate_83DBDE4 =
+{
+ .tileTag = 7,
+ .paletteTag = 5,
+ .oam = &gOamData_83DBD70,
+ .anims = gSpriteAnimTable_83DBDCC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+void sub_80E8CEC(void)
+{
+ u8 spriteId;
+
+ LoadCompressedObjectPic(&gUnknown_083DBD60);
+ LoadSpritePalette(&gUnknown_083DBD68);
+
+ spriteId = CreateSprite(&gSpriteTemplate_83DBDE4, 224, 88, 0);
+ if (spriteId != MAX_SPRITES)
+ gEasyChatStruct->unk9C74 = &gSprites[spriteId];
+ else
+ gEasyChatStruct->unk9C74 = NULL;
+}
+
+void sub_80E8D54(void)
+{
+ if (gEasyChatStruct->unk9C74 != NULL)
+ {
+ if (gEasyChatStruct->unk26 == 0)
+ StartSpriteAnim(gEasyChatStruct->unk9C74, 1);
+ else
+ StartSpriteAnim(gEasyChatStruct->unk9C74, 2);
+ }
+}
+
+void sub_80E8D8C(u8 a)
+{
+ if (gEasyChatStruct->unk9C74 != NULL)
+ {
+ if (a != 0)
+ {
+ if (gEasyChatStruct->unk26 == 0)
+ StartSpriteAnim(gEasyChatStruct->unk9C74, 3);
+ else
+ StartSpriteAnim(gEasyChatStruct->unk9C74, 4);
+ }
+ else
+ {
+ StartSpriteAnim(gEasyChatStruct->unk9C74, 5);
+ }
+ }
+}
+
+const u16 gUnknown_083DBDFC[] = INCBIN_U16("graphics/unknown/unknown_3DBDFC.gbapal");
+
+const u16 gUnknown_083DBE1C[] =
+{
+ 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300, 0x300,
+ 0x301, 0x301, 0x301, 0x301, 0x301, 0x300, 0x300, 0x300, 0x300,
+};
+
+const u16 gUnknown_083DBE40[] = INCBIN_U16("graphics/unknown/unknown_3DBE40.gbapal");
+
+// unused tilemap?
+const u16 gUnused_083DBE60[] =
+{
+ 0x5036, 0x5037, 0x5038, 0x5039, 0x503A, 0x503B,
+ 0x5046, 0x5047, 0x5048, 0x5049, 0x504A, 0x504B,
+ 0x5056, 0x5057, 0x5058, 0x5059, 0x505A, 0x505B,
+ 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035,
+ 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045,
+ 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055,
+};
+
+const u8 gUnknown_083DBEA8[] = _("{CLEAR_TO 88}");
+
+void sub_80E8DD8(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+
+ REG_BG0CNT = 0x8B00;
+ REG_BG1CNT = 0x0D09;
+
+ CpuCopy16(gUnknown_08E945D0, gEasyChatStruct->unk1C8, 0x500);
+ LZ77UnCompWram(gUnknown_08E953D0, gEasyChatStruct->unk6C8);
+ LZ77UnCompVram(gMenuWordGroupFrame_Gfx, (void *)(VRAM + 0x8000));
+ CpuCopy16(gEasyChatStruct->unk1C8, (void *)(VRAM + 0x6800), 0x500);
+ LoadPalette(gMenuWordGroupFrame1_Pal, 64, 64);
+
+ REG_BG2CNT = 0x0E02;
+
+ DmaClear16(3, (void *)(VRAM + 0x7000), 0x800);
+ DmaCopy16Defvars(3, gUnknown_08E9AB00, (void *)(VRAM + 0x6000), 64);
+ LZ77UnCompVram(gUnknown_08E9AB60, (void *)(VRAM + 0x7000));
+ LoadPalette(gUnknown_08E9AB40, 0, 32);
+ LoadPalette(gUnknown_083DBDFC, 16, 32);
+
+ REG_BG3CNT = 0x0F0F;
+
+ DmaClear32(3, (void *)(VRAM + 0x7800), 0x800);
+ LoadPalette(gUnknown_083DBE40, 32, 32);
+ gPlttBufferUnfaded[63] = RGB(31, 31, 31);
+ gPlttBufferUnfaded[49] = RGB(27, 26, 27);
+ gPlttBufferUnfaded[56] = RGB(28, 28, 28);
+ gPlttBufferFaded[63] = RGB(31, 31, 31);
+ gPlttBufferFaded[49] = RGB(27, 26, 27);
+ gPlttBufferFaded[56] = RGB(28, 28, 28);
+
+ gEasyChatStruct->unkBC = 0;
+ sub_80E8FA4();
+ sub_80E948C();
+ sub_80E9198(10);
+ sub_80E91D4(0);
+ sub_80E95A4();
+
+ REG_BLDCNT = 0;
+}
+
+// The components are ORed in the reverse order from the normal RGB macro
+#define RGB_(r, g, b) ((((b) & 0x1F) << 10) | (((g) & 0x1F) << 5) | ((r) & 0x1F))
+
+#define R_VAL(color) ((color) & 0x1F)
+#define G_VAL(color) (((color) >> 5) & 0x1F)
+#define B_VAL(color) (((color) >> 10) & 0x1F)
+
+void sub_80E8FA4(void)
+{
+ u16 i;
+ u16 r3;
+ u16 r4;
+ s32 sp0[3];
+ s32 spC[3];
+ s32 sp18[3];
+
+ for (i = 0; i < 3; i++)
+ {
+ sp0[0] = R_VAL(*(gMenuWordGroupFrame2_Pal + i + 1)) << 8;
+ spC[0] = R_VAL(*(gMenuWordGroupFrame2_Pal + i + 4)) << 8;
+ sp0[1] = G_VAL(*(gMenuWordGroupFrame2_Pal + i + 1)) << 8;
+ spC[1] = G_VAL(*(gMenuWordGroupFrame2_Pal + i + 4)) << 8;
+ sp0[2] = B_VAL(*(gMenuWordGroupFrame2_Pal + i + 1)) << 8;
+ spC[2] = B_VAL(*(gMenuWordGroupFrame2_Pal + i + 4)) << 8;
+
+ for (r3 = 0; r3 < 3; r3++)
+ sp18[r3] = (spC[r3] - sp0[r3]) / 8;
+
+ for (r4 = 0; r4 < 8; r4++)
+ {
+ gEasyChatStruct->unk9C34[i][r4] = RGB_(sp0[0] >> 8, sp0[1] >> 8, sp0[2] >> 8);
+ for (r3 = 0; r3 < 3; r3++)
+ sp0[r3] += sp18[r3];
+ }
+ gEasyChatStruct->unk9C34[i][r4] = RGB_(spC[0] >> 8, spC[1] >> 8, spC[2] >> 8);
+ }
+ gEasyChatStruct->unk9C32 = 0;
+}
+
+void sub_80E9108(s8 a)
+{
+ u16 i;
+
+ gEasyChatStruct->unk9C32 += a;
+ for (i = 0; i < 3; i++)
+ {
+ gPlttBufferUnfaded[81 + i] = gEasyChatStruct->unk9C34[i][gEasyChatStruct->unk9C32];
+ gPlttBufferFaded[81 + i] = gEasyChatStruct->unk9C34[i][gEasyChatStruct->unk9C32];
+ }
+}
+
+void sub_80E9178(void)
+{
+ gEasyChatStruct->unk9C32 = 0;
+ sub_80E9108(0);
+}
+
+void sub_80E9198(u8 a)
+{
+ gUnknown_03000740 = a;
+}
+
+u8 sub_80E91A4(void)
+{
+ return gUnknown_03000740;
+}
+
+void sub_80E91B0(const u8 *a, u8 b, u8 c, u8 d)
+{
+ sub_8072AB0(a, b * 8, c * 8, 176, d * 8, 1);
+}
+
+void sub_80E91D4(u8 a)
+{
+ BasicInitMenuWindow(&gWindowTemplate_81E6DA8);
+
+ if (a == 10)
+ {
+ Menu_EraseWindowRect(3, 14, 26, 19);
+ sub_80E9198(10);
+ return;
+ }
+
+ if (sub_80E91A4() == 10)
+ Menu_DrawStdWindowFrame(3, 14, 26, 19);
+
+ sub_80E9198(a);
+ switch (a)
+ {
+ case 0:
+ sub_80E91B0(gEasyChatStruct->unk9C80, 4, 15, 2);
+ sub_80E91B0(gEasyChatStruct->unk9CC9, 4, 17, 2);
+ break;
+ case 1:
+ sub_80E91B0(gEasyChatStruct->unk9D12, 4, 15, 2);
+ sub_80E91B0(gEasyChatStruct->unk9D5B, 4, 17, 2);
+ break;
+ case 2:
+ sub_80E91B0(gOtherText_TextDeletedConfirmPage1, 4, 15, 2);
+ sub_80E91B0(gOtherText_TextDeletedConfirmPage2, 4, 17, 2);
+ break;
+ case 3:
+ switch (gEasyChatStruct->unk8)
+ {
+ case 9:
+ sub_80E91B0(gOtherText_QuitGivingInfo, 4, 15, 4);
+ break;
+ case 4:
+ sub_80E91B0(gOtherText_StopGivingMail, 4, 15, 4);
+ break;
+ default:
+ sub_80E91B0(gOtherText_QuitEditing, 4, 15, 4);
+ break;
+ }
+ break;
+ case 4:
+ sub_80E91B0(gOtherText_EditedTextNoSavePage1, 4, 15, 2);
+ sub_80E91B0(gOtherText_EditedTextNoSavePage2, 4, 17, 2);
+ break;
+ case 5:
+ sub_80E91B0(gOtherText_EnterAPhraseOrWord, 4, 15, 4);
+ break;
+ case 6:
+ sub_80E91B0(gOtherText_TextNoDelete, 4, 15, 4);
+ break;
+ case 7:
+ sub_80E91B0(gOtherText_OnlyOnePhrase, 4, 15, 2);
+ sub_80E91B0(gOtherText_OriginalSongRestored, 4, 17, 2);
+ break;
+ case 8:
+ sub_80E91B0(gOtherText_TrendyAlready, 4, 15, 4);
+ break;
+ case 9:
+ sub_80E91B0(gOtherText_CombineTwoPhrases, 4, 15, 4);
+ break;
+ }
+}
+
+void sub_80E9368(u8 a)
+{
+ const u8 *r4;
+
+ switch (a)
+ {
+ case 0:
+ r4 = gOtherText_Profile;
+ break;
+ case 1:
+ r4 = gOtherText_AtBattleStart;
+ break;
+ case 2:
+ r4 = gOtherText_UponWinningBattle;
+ break;
+ case 3:
+ r4 = gOtherText_UponLosingBattle;
+ break;
+ case 6:
+ r4 = gOtherText_TheBardsSong;
+ break;
+ case 9:
+ r4 = gOtherText_WhatsHipHappening;
+ break;
+ case 5:
+ case 7:
+ case 8:
+ case 10:
+ case 11:
+ case 12:
+ r4 = gOtherText_Interview;
+ break;
+ case 13:
+ r4 = gOtherText_GoodSaying;
+ break;
+ default:
+ r4 = NULL;
+ break;
+ }
+
+ BasicInitMenuWindow(&gWindowTemplate_81E6D8C);
+ gEasyChatStruct->unk9F8E[0] = EXT_CTRL_CODE_BEGIN;
+ gEasyChatStruct->unk9F8E[1] = 5;
+ gEasyChatStruct->unk9F8E[2] = 1;
+ if (r4 != NULL)
+ {
+ sub_8072C74(gEasyChatStruct->unk9F8E + 3, r4, 240, 2);
+ Menu_PrintText(gEasyChatStruct->unk9F8E, 0, 0);
+ }
+ else
+ {
+ u8 *str = gEasyChatStruct->unk9F8E + 3;
+
+ str[0] = EXT_CTRL_CODE_BEGIN;
+ str[1] = 0x11;
+ str[2] = 0x10;
+ str[3] = EOS;
+
+ Menu_PrintText(gEasyChatStruct->unk9F8E, 0, 0);
+ Menu_PrintText(gEasyChatStruct->unk9F8E, 28, 0);
+ }
+ BasicInitMenuWindow(&gWindowTemplate_81E6DA8);
+}
+
+void sub_80E948C(void)
+{
+ switch (gEasyChatStruct->unk9)
+ {
+ case 4:
+ sub_809D104((void *)(VRAM + 0x6800), 3, 3, gUnknown_08E94AD0, 0, 26, 24, 6);
+ break;
+ case 5:
+ sub_809D104((void *)(VRAM + 0x6800), 14, 2, gUnknown_08E94AD0, 0, 18, 13, 8);
+ break;
+ case 0:
+ sub_809D104((void *)(VRAM + 0x6800), 2, 2, gUnknown_08E94AD0, 0, 10, 26, 8);
+ break;
+ case 1:
+ sub_809D104((void *)(VRAM + 0x6800), 2, 0, gUnknown_08E94AD0, 0, 0, 26, 10);
+ break;
+ case 2:
+ sub_809D104((void *)(VRAM + 0x6800), 14, 3, gUnknown_08E94AD0, 13, 18, 13, 4);
+ break;
+ case 3:
+ sub_809D104((void *)(VRAM + 0x6800), 3, 2, gUnknown_08E94AD0, 0, 32, 24, 4);
+ break;
+ }
+}
+
+void sub_80E95A4(void)
+{
+ BasicInitMenuWindow(&gWindowTemplate_81E6D8C);
+ switch (gEasyChatStruct->unk9)
+ {
+ case 4:
+ sub_80E9620(4, 6);
+ break;
+ case 5:
+ sub_80E9620(2, 17);
+ break;
+ case 0:
+ sub_80E9620(3, 5);
+ break;
+ case 1:
+ sub_80E9620(0, 5);
+ break;
+ case 2:
+ sub_80E9620(4, 17);
+ break;
+ case 3:
+ sub_80E9620(3, 6);
+ break;
+ }
+ BasicInitMenuWindow(&gWindowTemplate_81E6DA8);
+}
+
+void sub_80E9620(u16 a, u16 b)
+{
+ u16 i;
+ u16 j;
+ u16 r10 = 0;
+ u16 r7 = a;
+
+ for (i = 0; i < gEasyChatStruct->unk84; i++)
+ {
+ u16 r6 = b;
+
+ for (j = 0; j < gEasyChatStruct->unk83; j++)
+ {
+ if (r10 >= gEasyChatStruct->unkA)
+ {
+ Menu_PrintText(gUnknown_083DBEA8, r6, r7);
+ break;
+ }
+ if (gEasyChatStruct->unkC[r10] == 0xFFFF)
+ {
+ sub_8095C8C((void *)(VRAM + 0x7000), r6, r7, gUnknown_083DBE1C, 0, 0, 9, 2, 9);
+ r6 += 11;
+ }
+ else
+ {
+ sub_80EB218(gEasyChatStruct->unk9E14, gEasyChatStruct->unkC[r10], 11);
+ Menu_PrintText(gEasyChatStruct->unk9E14, r6, r7);
+ r6 += gEasyChatStruct->unk8C[i][j] + 11;
+ }
+ r10++;
+ }
+ r7 += 2;
+ }
+}
+
+void sub_80E9744(void)
+{
+ BasicInitMenuWindow(&gWindowTemplate_81E6D8C);
+ switch (gEasyChatStruct->unk9)
+ {
+ case 4:
+ sub_80E97C0(4, 6);
+ break;
+ case 5:
+ sub_80E97C0(2, 17);
+ break;
+ case 0:
+ sub_80E97C0(3, 5);
+ break;
+ case 1:
+ sub_80E97C0(0, 5);
+ break;
+ case 2:
+ sub_80E97C0(4, 17);
+ break;
+ case 3:
+ sub_80E97C0(3, 6);
+ break;
+ }
+ BasicInitMenuWindow(&gWindowTemplate_81E6DA8);
+}
+
+void sub_80E97C0(u16 a, u16 b)
+{
+ u8 i;
+ u8 r7 = 0;
+
+ asm("":::"r9");
+
+ for (i = 0; i < gEasyChatStruct->unk84; i++)
+ {
+ u8 r6;
+ u8 *r2 = gEasyChatStruct->unk9E6E;
+ u32 r1;
+
+ for (r6 = 0; r6 < gEasyChatStruct->unk83; r6++)
+ {
+ if (r7 >= gEasyChatStruct->unkA)
+ break;
+ if (gEasyChatStruct->unkC[r7] != 0xFFFF)
+ {
+ r2 = sub_80EB218(r2, gEasyChatStruct->unkC[r7], 0);
+ *r2++ = CHAR_SPACE;
+ }
+ r7++;
+ }
+
+ r1 = gEasyChatStruct->unk83 * 11;
+ r2[0] = EXT_CTRL_CODE_BEGIN;
+ r2[1] = 0x13;
+ r2[2] = r1 * 8;
+ r2[3] = EOS;
+
+ Menu_PrintText(gEasyChatStruct->unk9E6E, b, a);
+
+ a += 2;
+ }
+}
+
+void sub_80E98C4(void)
+{
+ u8 r1;
+ u8 r3;
+
+ BasicInitMenuWindow(&gWindowTemplate_81E6D8C);
+ switch (gEasyChatStruct->unk9)
+ {
+ case 4:
+ r1 = 4;
+ r3 = 2;
+ break;
+ case 5:
+ r1 = 3;
+ r3 = 2;
+ break;
+ case 0:
+ r1 = 3;
+ r3 = 2;
+ break;
+ case 1:
+ r1 = 1;
+ r3 = 3;
+ break;
+ case 2:
+ r1 = 4;
+ r3 = 1;
+ break;
+ case 3:
+ r1 = 3;
+ r3 = 1;
+ break;
+ default:
+ return;
+ }
+ Menu_BlankWindowRect(2, r1, 27, r3 * 2 + r1 - 1);
+ BasicInitMenuWindow(&gWindowTemplate_81E6DA8);
+}
+
+void sub_80E9940(u8 *a, u8 b)
+{
+ u8 r4 = (b & 7);
+
+ Menu_BlankWindowRect(2, r4 * 2, 31, r4 * 2 + 1);
+ sub_80E9A7C(a, b);
+ sub_80E9A60(a, 2, r4 * 2);
+}
+
+#if ENGLISH
+
+const u8 gUnknown_083DBEAC[][32] =
+{
+ _("{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}others"),
+ _("{UNKNOWN_14 8} G H I J K L "),
+ _("{UNKNOWN_14 8} M N O P Q R S "),
+ _("{UNKNOWN_14 8} T U V W X Y Z "),
+};
+
+#else
+
+const u8 unk_83E7EB0[] = _("{UNKNOWN_14 8} A B C D E F {UNKNOWN_14 0}mehr");
+const u8 unk_83E7ECA[] = _("{UNKNOWN_14 8} G H I J K L ");
+const u8 unk_83E7EE1[] = _("{UNKNOWN_14 8} M N O P Q R S ");
+const u8 unk_83E7EF8[] = _("{UNKNOWN_14 8} T U V W X Y Z ");
+const u8 *const gUnknown_083DBEAC[] =
+{
+ unk_83E7EB0,
+ unk_83E7ECA,
+ unk_83E7EE1,
+ unk_83E7EF8,
+ unk_83E7EB0 + 21, // pointer to "mehr". What is this for?
+};
+
+#endif
+
+void sub_80E9974(void)
+{
+ BasicInitMenuWindow(&gWindowTemplate_81E6D54);
+ if (gEasyChatStruct->unk26 == 0)
+ {
+ u16 i;
+
+ for (i = gEasyChatStruct->unk1B5; i < gEasyChatStruct->unk1B5 + 4; i++)
+ sub_80E9940(gEasyChatStruct->unk9DC9, i);
+ }
+ else
+ {
+ sub_80E9AD4();
+ sub_80E9A60(gUnknown_083DBEAC[0], 2, 0);
+ sub_80E9A60(gUnknown_083DBEAC[1], 2, 2);
+ sub_80E9A60(gUnknown_083DBEAC[2], 2, 4);
+ sub_80E9A60(gUnknown_083DBEAC[3], 2, 6);
+ }
+}
+
+void sub_80E9A14(void)
+{
+ sub_80E9A4C();
+ if (gEasyChatStruct->unk26 == 0)
+ gEasyChatStruct->unk1BA += gEasyChatStruct->unk1B5 * 16;
+}
+
+void sub_80E9A4C(void)
+{
+ gEasyChatStruct->unk1BA = 0;
+}
+
+void sub_80E9A60(const u8 *a, u16 b, u16 c)
+{
+ c &= 0xF;
+ Menu_PrintText(a, b, c);
+}
+
+void sub_80E9A7C(u8 *dest, u16 b)
+{
+ u16 i;
+ u16 r5 = b * 2;
+
+ for (i = 0; i < 2; i++)
+ {
+ dest[0] = EXT_CTRL_CODE_BEGIN;
+ dest[1] = 0x12;
+ dest[2] = 88 * i;
+ dest += 3;
+
+ dest = CopyEasyChatGroupName(dest, gEasyChatStruct->unk2A[b][i], 11);
+ r5++;
+ if (r5 >= gEasyChatStruct->unk28)
+ break;
+ }
+}
+
+void sub_80E9AD4(void)
+{
+ u16 i;
+
+ BasicInitMenuWindow(&gWindowTemplate_81E6D54);
+ for (i = 0; i < 16; i++)
+ sub_80E9C74(i);
+}
+
+void sub_80E9AF8(u16 a)
+{
+ u8 *r8;
+ u16 i;
+
+ sub_80E9C74(a);
+
+ r8 = gEasyChatStruct->unk9E14;
+ r8[0] = EXT_CTRL_CODE_BEGIN;
+ r8[1] = 0x11;
+ r8[2] = 0x10;
+ r8 += 3;
+
+ if (gEasyChatStruct->unk7D != 0)
+ {
+ for (i = 0; i < gEasyChatStruct->unk99A6[a]; i++)
+ {
+ if (sub_80EB2D4(gEasyChatStruct->unk9A2A[a][i]) == 7)
+ BasicInitMenuWindow(&gWindowTemplate_81E6D70);
+ else
+ BasicInitMenuWindow(&gWindowTemplate_81E6D54);
+ sub_80EB218(r8, gEasyChatStruct->unk9A2A[a][i], 9);
+ sub_80E9A60(gEasyChatStruct->unk9E14, i * 11 + 4, a * 2);
+ }
+ }
+ else
+ {
+ BasicInitMenuWindow(&gWindowTemplate_81E6D54);
+ for (i = 0; i < gEasyChatStruct->unk99A6[a]; i++)
+ {
+ sub_80EB218(r8, gEasyChatStruct->unk9A2A[a][i], 9);
+ sub_80E9A60(gEasyChatStruct->unk9E14, i * 11 + 4, a * 2);
+ }
+ }
+}
+
+void sub_80E9C74(u16 a)
+{
+ a &= 7;
+ Menu_BlankWindowRect(0, a * 2, 29, a * 2 + 1);
+}
+
+void sub_80E9C94(void)
+{
+ u16 r5 = min(gEasyChatStruct->unk9A28, 4);
+ u16 i;
+
+ for (i = 0; i < r5; i++)
+ sub_80E9AF8(gEasyChatStruct->unk9A29 + i);
+ while (i < 4)
+ sub_80E9C74(i++);
+}
+
+void sub_80E9D00(void)
+{
+ u16 r4;
+ u16 r5;
+
+ if (gEasyChatStruct->unk1C0 > 0)
+ {
+ r4 = gEasyChatStruct->unk1C0;
+ r5 = gEasyChatStruct->unk9A29 + 4;
+ }
+ else
+ {
+ r4 = -gEasyChatStruct->unk1C0;
+ r5 = gEasyChatStruct->unk9A29 - r4;
+ }
+ while (--r4 != 0xFFFF)
+ sub_80E9AF8(r5++);
+}
+
+void sub_80E9D7C(void)
+{
+ u16 r6;
+ u16 r4;
+ u16 i;
+
+ BasicInitMenuWindow(&gWindowTemplate_81E6D54);
+ if (gEasyChatStruct->unk1C0 < 0)
+ {
+ r6 = -gEasyChatStruct->unk1C0;
+ r4 = gEasyChatStruct->unk1B5 - r6;
+ }
+ else
+ {
+ r6 = gEasyChatStruct->unk1C0;
+ r4 = gEasyChatStruct->unk1B5 + 4;
+ }
+ for (i = 0; i < r6; i++)
+ {
+ sub_80E9940(gEasyChatStruct->unk9DC9, r4);
+ r4++;
+ }
+}
+
+void sub_80E9E08(u8 a)
+{
+ gEasyChatStruct->unk1BC = (gEasyChatStruct->unk1BA + gEasyChatStruct->unk1C0 * 16) & 0x7F;
+ gEasyChatStruct->unk1BF = (gEasyChatStruct->unk1C0 < 0) ? -a : a;
+}
+
+bool8 sub_80E9E54(void)
+{
+ gEasyChatStruct->unk1BA = (gEasyChatStruct->unk1BA + gEasyChatStruct->unk1BF) & 0x7F;
+ return (gEasyChatStruct->unk1BA == gEasyChatStruct->unk1BC);
+}
+
+void nullsub_23(void)
+{
+}
+
+void sub_80E9E98(void)
+{
+ gEasyChatStruct->unkBE = 0;
+}
+
+bool8 sub_80E9EA8(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ sub_80EA24C();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 1:
+ if (sub_80EA1E0() != 0)
+ {
+ sub_80EA4A4();
+ gEasyChatStruct->unkBE++;
+ }
+ break;
+ case 2:
+ if (sub_80EA1E0() != 0)
+ {
+ sub_80EA704();
+ gEasyChatStruct->unkBE++;
+ }
+ break;
+ case 3:
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 4:
+ gEasyChatStruct->unkBE++;
+ break;
+ case 5:
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80E9F50(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ nullsub_23();
+ sub_80EA764();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 1:
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 2:
+ sub_80EA5A0();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 3:
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 4:
+ sub_80EA348();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 5:
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 6:
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80E9FD4(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ nullsub_23();
+ sub_80EA5A0();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 1:
+ if (sub_80EA1E0() != 0)
+ return TRUE;
+ break;
+ }
+ return FALSE;
+}
+
+bool8 sub_80EA014(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ sub_80EA4A4();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 1:
+ if (sub_80EA1E0() != 0)
+ return TRUE;
+ break;
+ }
+ return FALSE;
+}
+
+bool8 sub_80EA050(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ nullsub_23();
+ sub_80EA764();
+ gEasyChatStruct->unkBE++;
+ break;
+ case 1:
+ if (sub_80EA1E0() != 0)
+ {
+ sub_80EA7F4();
+ gEasyChatStruct->unkBE++;
+ }
+ break;
+ case 2:
+ sub_80E9108(1);
+ if (sub_80EA1E0() != 0)
+ {
+ sub_80EA8BC();
+ gEasyChatStruct->unkBE++;
+ }
+ break;
+ case 3:
+ sub_80E9108(1);
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 4:
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80EA0E4(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ sub_80EA948();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 1:
+ sub_80E9108(-1);
+ if (sub_80EA1E0() != 0)
+ {
+ sub_80EAA44();
+ gEasyChatStruct->unkBE++;
+ }
+ break;
+ case 2:
+ sub_80E9108(-1);
+ if (sub_80EA1E0() != 0)
+ {
+ sub_80EA704();
+ gEasyChatStruct->unkBE++;
+ }
+ break;
+ case 3:
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 4:
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80EA184(void)
+{
+ switch (gEasyChatStruct->unkBE)
+ {
+ case 0:
+ sub_80EAAD4();
+ gEasyChatStruct->unkBE++;
+ // fall through
+ case 1:
+ if (sub_80EA1E0() != 0)
+ gEasyChatStruct->unkBE++;
+ break;
+ case 2:
+ sub_80E9178();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_80EA1E0(void)
+{
+ u16 i;
+
+ if (gEasyChatStruct->unkC4 != 0)
+ {
+ for (i = 0; i < gEasyChatStruct->unkC2; i++)
+ {
+ sub_80EAC0C(gEasyChatStruct->unkC8[i]);
+ sub_80EAC48(&gEasyChatStruct->unk148[i]);
+ }
+ gEasyChatStruct->unkBC = 1;
+ gEasyChatStruct->unkC4--;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_80EA24C(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 13, 14, 13, 15, -2, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 14, 12, 15, 0, 0, 2, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 30, 0, -2, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 13, 15, 13, 16, -2, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 9, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 12, 16, 0, 0, 2, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[3], 30, 9, -2, 0, gEasyChatStruct->unk6C8);
+
+ gEasyChatStruct->unkC2 = 4;
+ gEasyChatStruct->unkC4 = 6;
+}
+
+void sub_80EA348(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 1, 14, 13, 15, 2, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 14, 24, 15, 0, 0, -2, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 18, 0, 2, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 15, 13, 16, 2, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 9, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 24, 16, 0, 0, -2, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[3], 18, 9, 2, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[4], 1, 14, 1, 16, 0, 0, 2, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[4], 1, 14, 0, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[5], 24, 14, 24, 16, -2, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[5], 24, 14, -2, 0, gEasyChatStruct->unk1C8);
+
+ gEasyChatStruct->unkC2 = 6;
+ gEasyChatStruct->unkC4 = 6;
+}
+
+void sub_80EA4A4(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 1, 14, 13, 15, 0, -1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 14, 24, 15, 0, -1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 18, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 15, 13, 16, 0, 0, 0, 1);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 9, 0, -1, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 24, 16, 0, 0, 0, 1);
+ sub_80EAC30(&gEasyChatStruct->unk148[3], 18, 9, 0, -1, gEasyChatStruct->unk6C8);
+
+ gEasyChatStruct->unkC2 = 4;
+ gEasyChatStruct->unkC4 = 4;
+}
+
+void sub_80EA5A0(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 1, 10, 13, 15, 0, 1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 12, 10, 24, 15, 0, 1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 18, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 15, 13, 20, 0, 0, 0, -1);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 5, 0, 1, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[3], 12, 15, 24, 20, 0, 0, 0, -1);
+ sub_80EAC30(&gEasyChatStruct->unk148[3], 18, 5, 0, 1, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[4], 1, 10, 24, 10, 0, 0, 0, 1);
+ sub_80EAC30(&gEasyChatStruct->unk148[4], 1, 10, 0, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[5], 1, 20, 24, 20, 0, -1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[5], 1, 20, 0, -1, gEasyChatStruct->unk1C8);
+
+ gEasyChatStruct->unkC2 = 6;
+ gEasyChatStruct->unkC4 = 4;
+}
+
+void sub_80EA704(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 24, 12, 25, 20, 0, 0, 1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 5, 10, -1, 0, gEasyChatStruct->unk6C8);
+
+ gEasyChatStruct->unkC2 = 1;
+ gEasyChatStruct->unkC4 = 5;
+}
+
+void sub_80EA764(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 24, 12, 30, 20, 0, 0, -1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 10, 1, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 30, 12, 31, 20, -1, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 30, 12, -1, 0, gEasyChatStruct->unk1C8);
+
+ gEasyChatStruct->unkC2 = 2;
+ gEasyChatStruct->unkC4 = 6;
+}
+
+void sub_80EA7F4(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 20, 10, 25, 20, 0, 0, 1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 25, 0, -1, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 0, 10, 1, 20, 0, 0, 1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 10, 0, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 1, 10, 4, 20, 1, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ gEasyChatStruct->unkC2 = 3;
+ gEasyChatStruct->unkC4 = 2;
+}
+
+void sub_80EA8BC(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 3, 10, 4, 20, 0, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 0, 10, 2, 20, 0, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 10, 0, 0, gEasyChatStruct->unk1C8);
+
+ gEasyChatStruct->unkC2 = 2;
+ gEasyChatStruct->unkC4 = 1;
+}
+
+void sub_80EA948(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 0, 10, 2, 20, 0, 0, -1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 10, 0, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 3, 10, 5, 20, -1, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 26, 10, 30, 20, -1, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 26, 10, -1, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[3], 25, 10, 26, 20, -1, 0, -1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[3], 29, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ gEasyChatStruct->unkC2 = 4;
+ gEasyChatStruct->unkC4 = 2;
+}
+
+void sub_80EAA44(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 24, 10, 30, 20, 0, 0, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 24, 10, 0, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 23, 10, 24, 20, 0, 0, -1, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 29, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ gEasyChatStruct->unkC2 = 2;
+ gEasyChatStruct->unkC4 = 1;
+}
+
+void sub_80EAAD4(void)
+{
+ sub_80EABD4(gEasyChatStruct->unkC8[0], 0, 10, 30, 15, 0, 1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[0], 0, 0, 0, 0, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[1], 0, 15, 30, 20, 0, 0, 0, -1);
+ sub_80EAC30(&gEasyChatStruct->unk148[1], 0, 5, 0, 1, gEasyChatStruct->unk6C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[2], 0, 10, 30, 10, 0, 0, 0, 1);
+ sub_80EAC30(&gEasyChatStruct->unk148[2], 0, 10, 0, 0, gEasyChatStruct->unk1C8);
+
+ sub_80EABD4(gEasyChatStruct->unkC8[3], 0, 20, 30, 20, 0, -1, 0, 0);
+ sub_80EAC30(&gEasyChatStruct->unk148[3], 0, 20, 0, -1, gEasyChatStruct->unk1C8);
+
+ gEasyChatStruct->unkC2 = 4;
+ gEasyChatStruct->unkC4 = 5;
+}
+
+void sub_80EABD4(u16 *a, u16 b, u16 c, u16 d, u16 e, u16 f, u16 g, u16 h, u16 i)
+{
+ a[0] = b;
+ a[1] = d;
+ a[2] = c;
+ a[3] = e;
+ a[4] = f;
+ a[5] = h;
+ a[6] = g;
+ a[7] = i;
+}
+
+void sub_80EAC0C(u16 *a)
+{
+ a[0] += a[4];
+ a[1] += a[5];
+ a[2] += a[6];
+ a[3] += a[7];
+}
+
+void sub_80EAC30(struct UnknownEasyChatStruct1 *a, u16 b, u16 c, u16 d, u16 e, void *f)
+{
+ a->unk0 = b;
+ a->unk2 = c;
+ a->unk4 = d;
+ a->unk6 = e;
+ a->unk8 = f;
+}
+
+void sub_80EAC48(struct UnknownEasyChatStruct1 *a)
+{
+ a->unk0 += a->unk4;
+ a->unk2 += a->unk6;
+}
+
+void sub_80EAC5C(void)
+{
+ u16 i;
+
+ if (gEasyChatStruct->unkBC != 0)
+ {
+ for (i = 0; i < gEasyChatStruct->unkC2; i++)
+ sub_80EACBC((void *)(VRAM + 0x6800), gEasyChatStruct->unkC8[i], &gEasyChatStruct->unk148[i]);
+ gEasyChatStruct->unkBC = 0;
+ }
+}
+
+void sub_80EACBC(void *a, u16 *b, struct UnknownEasyChatStruct1 *c)
+{
+ s16 r6 = b[1] - b[0];
+ s16 r5 = b[3] - b[2];
+
+ if (r6 > 0 && r5 > 0)
+ sub_809D104(a, b[0], b[2], c->unk8, c->unk0, c->unk2, r6, r5);
+}
+
+// Strange...
+void sub_80EAD08(void)
+{
+ u16 *r4;
+ u16 r2;
+ u16 i;
+
+ r4 = gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+ r4 += 88;
+ r2 = (gEasyChatStruct->unk1BA - 88) & 0xFF;
+
+ for (i = 0; i < 64; i++)
+ {
+ if (gEasyChatStruct->unk1BA + i == 128)
+ r2 = (-i - 88) & 0xFF;
+ *r4++ = r2;
+ }
+}
+
+extern const u8 *const gEasyChatGroupNames[];
+extern const u8 gEasyChatGroupSizes[];
+extern const u16 gEasyChatWordsByLetter[];
+extern const u16 gEasyChatWordsAlphabetized[];
+
+u8 *CopyEasyChatGroupName(u8 *dest, u8 group, int unused)
+{
+ return StringCopy(dest, gEasyChatGroupNames[group]);
+}
+
+bool8 sub_80EAD7C(u8 group)
+{
+ switch (group)
+ {
+ case EC_GROUP_TRENDY_SAYING:
+ return FlagGet(FLAG_SYS_HIPSTER_MEET);
+ case EC_GROUP_EVENTS:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ return FlagGet(FLAG_SYS_GAME_CLEAR);
+ case EC_GROUP_POKEMON_2:
+ return sub_80EB9C8();
+ default:
+ return TRUE;
+ }
+}
+
+bool8 sub_80EADC0(u8 group, u16 word)
+{
+ switch (group)
+ {
+ case EC_GROUP_TRENDY_SAYING:
+ if (gEasyChatStruct->unk40[2][11 + group] == 0)
+ return FALSE;
+ return sub_80EB868(word);
+ case EC_GROUP_POKEMON_1:
+ return GetSetPokedexFlag(SpeciesToNationalPokedexNum(word), 0);
+ case EC_GROUP_EVENTS:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ if (gEasyChatStruct->unk40[2][11 + group] == 0)
+ return FALSE;
+ return TRUE;
+ case EC_GROUP_POKEMON_2:
+ return sub_80EB9C8();
+ default:
+ return TRUE;
+ }
+}
+
+u16 sub_80EAE88(u8 group)
+{
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1:
+ return GetHoennPokedexCount(0);
+ case EC_GROUP_TRENDY_SAYING:
+ return sub_80EB8C0();
+ default:
+ if (sub_80EAD7C(group))
+ return gEasyChatGroupSizes[group];
+ return FALSE;
+ }
+}
+
+#if GERMAN
+__attribute__((naked))
+void sub_80EAECC(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x10\n\
+ movs r7, 0\n\
+ ldr r1, _080EAF08 @ =gEasyChatStruct\n\
+ ldr r0, [r1]\n\
+ ldr r3, _080EAF0C @ =0x0000446c\n\
+ adds r3, r0, r3\n\
+ str r3, [sp, 0x4]\n\
+_080EAEE4:\n\
+ ldr r1, _080EAF10 @ =gEasyChatWordsByLetter\n\
+ lsls r2, r7, 1\n\
+ adds r0, r2, r1\n\
+ ldrh r4, [r0]\n\
+ adds r3, r7, 0x1\n\
+ lsls r0, r3, 1\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ str r0, [sp]\n\
+ ldr r0, [sp, 0x4]\n\
+ adds r1, r0, r2\n\
+ movs r0, 0\n\
+ strh r0, [r1]\n\
+ mov r9, r0\n\
+ adds r6, r4, 0\n\
+ mov r10, r2\n\
+ str r3, [sp, 0x8]\n\
+ b _080EB00C\n\
+ .align 2, 0\n\
+_080EAF08: .4byte gEasyChatStruct\n\
+_080EAF0C: .4byte 0x0000446c\n\
+_080EAF10: .4byte gEasyChatWordsByLetter\n\
+_080EAF14:\n\
+ ldr r2, _080EAFAC @ =gEasyChatWordsAlphabetized\n\
+ adds r0, r6, 0\n\
+ adds r1, r0, 0x1\n\
+ lsls r1, 16\n\
+ lsrs r6, r1, 16\n\
+ lsls r0, 1\n\
+ adds r0, r2\n\
+ ldrh r1, [r0]\n\
+ adds r4, r1, 0\n\
+ ldr r0, _080EAFB0 @ =0x0000feff\n\
+ cmp r1, r0\n\
+ bls _080EAFC8\n\
+ movs r0, 0xFF\n\
+ ands r1, r0\n\
+ movs r3, 0\n\
+ subs r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldr r0, _080EAFB4 @ =0x0000ffff\n\
+ cmp r5, r0\n\
+ beq _080EB00C\n\
+ lsls r0, r7, 4\n\
+ adds r0, r7\n\
+ lsls r0, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ mov r8, r0\n\
+_080EAF4A:\n\
+ adds r1, r6, 0\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ lsls r1, 1\n\
+ ldr r0, _080EAFAC @ =gEasyChatWordsAlphabetized\n\
+ adds r1, r0\n\
+ ldrh r4, [r1]\n\
+ lsrs r0, r4, 9\n\
+ ldr r1, _080EAFB8 @ =0x000001ff\n\
+ adds r2, r1, 0\n\
+ adds r1, r4, 0\n\
+ ands r1, r2\n\
+ str r3, [sp, 0xC]\n\
+ bl sub_80EADC0\n\
+ lsls r0, 24\n\
+ ldr r3, [sp, 0xC]\n\
+ cmp r0, 0\n\
+ beq _080EAF9E\n\
+ cmp r3, 0\n\
+ bne _080EAF9E\n\
+ ldr r3, _080EAFBC @ =gEasyChatStruct\n\
+ ldr r2, [r3]\n\
+ mov r1, r9\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r9, r0\n\
+ lsls r1, 1\n\
+ add r1, r8\n\
+ ldr r3, _080EAFC0 @ =0x00000b78\n\
+ adds r0, r2, r3\n\
+ adds r0, r1\n\
+ strh r4, [r0]\n\
+ ldr r0, _080EAFC4 @ =0x0000446c\n\
+ adds r2, r0\n\
+ add r2, r10\n\
+ ldrh r0, [r2]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2]\n\
+ movs r3, 0x1\n\
+_080EAF9E:\n\
+ subs r0, r5, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldr r1, _080EAFB4 @ =0x0000ffff\n\
+ cmp r5, r1\n\
+ bne _080EAF4A\n\
+ b _080EB00C\n\
+ .align 2, 0\n\
+_080EAFAC: .4byte gEasyChatWordsAlphabetized\n\
+_080EAFB0: .4byte 0x0000feff\n\
+_080EAFB4: .4byte 0x0000ffff\n\
+_080EAFB8: .4byte 0x000001ff\n\
+_080EAFBC: .4byte gEasyChatStruct\n\
+_080EAFC0: .4byte 0x00000b78\n\
+_080EAFC4: .4byte 0x0000446c\n\
+_080EAFC8:\n\
+ lsrs r0, r4, 9\n\
+ ldr r3, _080EB030 @ =0x000001ff\n\
+ adds r2, r3, 0\n\
+ adds r1, r4, 0\n\
+ ands r1, r2\n\
+ bl sub_80EADC0\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EB00C\n\
+ ldr r0, _080EB034 @ =gEasyChatStruct\n\
+ ldr r2, [r0]\n\
+ mov r1, r9\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r9, r0\n\
+ lsls r1, 1\n\
+ lsls r0, r7, 4\n\
+ adds r0, r7\n\
+ lsls r0, 3\n\
+ subs r0, r7\n\
+ lsls r0, 2\n\
+ adds r1, r0\n\
+ ldr r3, _080EB038 @ =0x00000b78\n\
+ adds r0, r2, r3\n\
+ adds r0, r1\n\
+ strh r4, [r0]\n\
+ ldr r0, _080EB03C @ =0x0000446c\n\
+ adds r2, r0\n\
+ add r2, r10\n\
+ ldrh r0, [r2]\n\
+ adds r0, 0x1\n\
+ strh r0, [r2]\n\
+_080EB00C:\n\
+ ldr r1, [sp]\n\
+ cmp r6, r1\n\
+ bcs _080EB014\n\
+ b _080EAF14\n\
+_080EB014:\n\
+ ldr r3, [sp, 0x8]\n\
+ lsls r0, r3, 16\n\
+ lsrs r7, r0, 16\n\
+ cmp r7, 0x1A\n\
+ bhi _080EB020\n\
+ b _080EAEE4\n\
+_080EB020:\n\
+ add sp, 0x10\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\
+ .align 2, 0\n\
+_080EB030: .4byte 0x000001ff\n\
+_080EB034: .4byte gEasyChatStruct\n\
+_080EB038: .4byte 0x00000b78\n\
+_080EB03C: .4byte 0x0000446c\n\
+ .syntax divided\n");
+}
+#else
+void sub_80EAECC(void)
+{
+ u16 i;
+ u16 r9;
+ u16 r6;
+ u16 r5;
+ bool8 r7;
+
+ for (i = 0; i < 27; i++)
+ {
+ u16 word = gEasyChatWordsByLetter[i];
+ u16 sp0 = gEasyChatWordsByLetter[i + 1];
+
+ gEasyChatStruct->unk4142[i] = 0;
+ r9 = 0;
+ r6 = word;
+ while (r6 < sp0)
+ {
+ u16 word = gEasyChatWordsAlphabetized[r6++];
+
+ if (word > 0xFEFF)
+ {
+ r5 = word & 0xFF;
+ r7 = FALSE;
+ while (--r5 != 0xFFFF)
+ {
+ word = gEasyChatWordsAlphabetized[r6++];
+ if (sub_80EADC0(EC_GROUP(word), EC_INDEX(word)) && !r7)
+ {
+ gEasyChatStruct->unkB78[i][r9++] = word;
+ gEasyChatStruct->unk4142[i]++;
+ r7 = TRUE;
+ }
+ }
+ }
+ else
+ {
+ if (sub_80EADC0(EC_GROUP(word), EC_INDEX(word)))
+ {
+ gEasyChatStruct->unkB78[i][r9++] = word;
+ gEasyChatStruct->unk4142[i]++;
+ }
+ }
+ }
+ }
+}
+#endif
+
+extern const u8 *const gEasyChatGroupWords[];
+extern const u16 *const gEasyChatGroupOrders[];
+extern const u8 gEasyChatGroupSizes[];
+
+// loads strings of all easy chat words except for the species and move names.
+void LoadEasyChatStrings(void)
+{
+ u16 group;
+ u16 index;
+
+ for (group = 0; group <= EC_GROUP_POKEMON_2; group++)
+ {
+ if (group != EC_GROUP_POKEMON_1
+ && group != EC_GROUP_POKEMON_2
+ && group != EC_GROUP_MOVE_1
+ && group != EC_GROUP_MOVE_2)
+ {
+ const u8 *wordText = gEasyChatGroupWords[group];
+
+ index = 0;
+ while (*wordText != EOS)
+ {
+ gEasyChatStruct->ecWordStrings[group][index] = wordText;
+
+ // Find the end of the current word
+ while (*wordText != EOS)
+ wordText++;
+ // Skip over the EOS
+ wordText++;
+
+ index++;
+ }
+ }
+ }
+}
+
+void sub_80EB0B0(void)
+{
+ const u16 *sp0;
+ u16 r7;
+ u16 r9;
+ u16 r8;
+
+ if (gEasyChatStruct->unk26 == 0)
+ {
+ u16 group = gEasyChatStruct->unk1B8;
+
+ gEasyChatStruct->unk4178[group] = 0;
+ r7 = 0;
+ r9 = 0;
+ sp0 = gEasyChatGroupOrders[group];
+ for (r8 = 0; r8 < gEasyChatGroupSizes[gEasyChatStruct->unk1B8]; r8++)
+ {
+ if (sub_80EADC0(group, sp0[r8]))
+ {
+ gEasyChatStruct->unk9A2A[r9][r7] = ((group & 0x7F) << 9) | (sp0[r8] & 0x1FF);
+ gEasyChatStruct->unk4178[group]++;
+ r7++;
+ if (r7 > 1)
+ {
+ r7 = 0;
+ r9++;
+ }
+ }
+ }
+ }
+ else
+ {
+ u8 r2 = gEasyChatStruct->unk1B8;
+ u16 r3 = 0;
+ u16 r6 = 0;
+ u16 r5;
+
+ for (r5 = 0; r5 < gEasyChatStruct->unk4142[r2]; r5++)
+ {
+ gEasyChatStruct->unk9A2A[r6][r3] = gEasyChatStruct->unkB78[r2][r5];
+ r3++;
+ if (r3 > 1)
+ {
+ r3 = 0;
+ r6++;
+ }
+ }
+ }
+}
+
+u8 *sub_80EB218(u8 *dest, u16 word, u16 c)
+{
+ u8 *wordText;
+
+ if (sub_80EB37C(word))
+ {
+ wordText = StringCopy(dest, gOtherText_ThreeQuestions);
+ }
+ else if (word == 0xFFFF)
+ {
+ wordText = dest;
+ wordText[0] = EOS; // Why? It's going to get overwritten.
+ }
+ else
+ {
+ u16 group = EC_GROUP(word);
+ u16 index = EC_INDEX(word);
+
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1:
+ case EC_GROUP_POKEMON_2:
+ wordText = StringCopy(dest, gSpeciesNames[index]);
+ break;
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ wordText = StringCopy(dest, gMoveNames[index]);
+ break;
+ default:
+ wordText = StringCopy(dest, gEasyChatStruct->ecWordStrings[group][index]);
+ break;
+ }
+ }
+
+ wordText[0] = EXT_CTRL_CODE_BEGIN;
+ wordText[1] = 0x13;
+ wordText[2] = c * 8;
+ wordText += 3;
+
+ *wordText = EOS;
+
+ return wordText;
+}
+
+u16 sub_80EB2D4(u16 word)
+{
+ const u8 *wordText;
+ u16 length;
+
+ if (sub_80EB37C(word))
+ {
+ return StringLength(gOtherText_ThreeQuestions);
+ }
+ else if (word == 0xFFFF)
+ {
+ return 0;
+ }
+ else
+ {
+ u16 group = EC_GROUP(word);
+ u16 index = EC_INDEX(word);
+
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1:
+ case EC_GROUP_POKEMON_2:
+ wordText = gSpeciesNames[index];
+ break;
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ wordText = gMoveNames[index];
+ break;
+ default:
+ wordText = gEasyChatStruct->ecWordStrings[group][index];
+ break;
+ }
+ }
+
+ length = 0;
+ while (*wordText != EOS)
+ {
+ wordText++;
+ length++;
+ }
+ return length;
+}
+
+bool8 sub_80EB37C(u16 word)
+{
+ const u16 *r4;
+ u16 i;
+
+ if (word == 0xFFFF)
+ {
+ return FALSE;
+ }
+ else
+ {
+ u16 group = EC_GROUP(word);
+ u16 index = EC_INDEX(word);
+
+ if (group <= EC_GROUP_POKEMON_2)
+ {
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1:
+ case EC_GROUP_POKEMON_2:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ r4 = (u16 *)gEasyChatGroupWords[group];
+ for (i = 0; i < gEasyChatGroupSizes[group]; i++)
+ {
+ if (index == r4[i])
+ return FALSE;
+ }
+ break;
+ default:
+ if (index < gEasyChatGroupSizes[group])
+ return FALSE;
+ break;
+ }
+ }
+ return TRUE;
+ }
+}
+
+#if GERMAN
+u32 de_sub_80EB748(s32 group, s32 index)
+{
+ s32 i;
+ u16 *words;
+ u32 r7 = 0;
+
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1:
+ case EC_GROUP_POKEMON_2:
+ case EC_GROUP_MOVE_1:
+ case EC_GROUP_MOVE_2:
+ words = (u16 *)gEasyChatGroupWords[group];
+ for (i = 0; i < gEasyChatGroupSizes[group]; i++)
+ {
+ if (index == words[i])
+ {
+ r7 = i;
+ break;
+ }
+ }
+ break;
+ default:
+ r7 = index;
+ break;
+ }
+
+ return r7;
+}
+#endif
+
+// returns the end of the destination buffer text
+u8 *EasyChat_GetWordText(u8 *dst, u16 word)
+{
+ u16 group;
+ u16 wordIndex;
+ const u8 *src;
+ u16 i;
+
+ if (sub_80EB37C(word))
+ return StringCopy(dst, gOtherText_ThreeQuestions);
+
+ if (word == 0xFFFF)
+ {
+ *dst = EOS;
+ return dst;
+ }
+ else
+ {
+ group = EC_GROUP(word);
+ wordIndex = EC_INDEX(word);
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1: // 0
+ case EC_GROUP_POKEMON_2: // 21
+ dst = StringCopy(dst, gSpeciesNames[wordIndex]);
+ break;
+ case EC_GROUP_MOVE_1: // 18
+ case EC_GROUP_MOVE_2: // 19
+ dst = StringCopy(dst, gMoveNames[wordIndex]);
+ break;
+ default:
+ src = gEasyChatGroupWords[group];
+ for (i = wordIndex - 1; i != 0xFFFF; i--)
+ {
+ while (*src++ != EOS)
+ ;
+ }
+ dst = StringCopy(dst, src);
+ break;
+ }
+ *dst = EOS;
+ return dst;
+ }
+}
+
+u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3)
+{
+ u16 i;
+ u16 n;
+
+ const u16 i1 = arg2 - 1;
+
+ for (i = 0; i < arg3; i++)
+ {
+ u16 word;
+
+ for (n = 0; n < i1; n++)
+ {
+ dst = EasyChat_GetWordText(dst, words[0]);
+
+ if (words[0] != 0xFFFF)
+ {
+ dst[0] = CHAR_SPACE;
+ dst++;
+ }
+
+ words++;
+ }
+
+ word = words[0];
+ words++;
+ dst = EasyChat_GetWordText(dst, word);
+
+ dst[0] = CHAR_NEWLINE;
+ dst++;
+ }
+
+ dst--;
+ dst[0] = EOS;
+
+ return dst;
+}
+
+u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3)
+{
+ u16 i;
+ u16 n;
+
+ const u16 i1 = arg2 - 1;
+
+ for (i = 0; i < arg3; i++)
+ {
+ u16 word;
+
+ for (n = 0; n < i1; n++)
+ {
+ dst = EasyChat_GetWordText(dst, words[0]);
+
+ if (words[0] != 0xFFFF)
+ {
+ dst[0] = CHAR_SPACE;
+ dst++;
+ }
+
+ words++;
+ }
+
+ word = words[0];
+ words++;
+ dst = EasyChat_GetWordText(dst, word);
+
+ // Only difference with ConvertEasyChatWordsToString
+ dst[0] = (i == 0) ? CHAR_NEWLINE : CHAR_PROMPT_SCROLL;
+ dst++;
+ }
+
+ dst--;
+ dst[0] = EOS;
+
+ return dst;
+}
+
+
+u16 unref_sub_80EB5E0(u16 arg0)
+{
+ const u8 *chars;
+ u16 i;
+ u16 length;
+ int group, word;
+
+
+ if (arg0 == 0xFFFF)
+ return 0;
+
+ group = EC_GROUP(arg0);
+ word = EC_INDEX(arg0);
+ switch (group)
+ {
+ case EC_GROUP_POKEMON_1: // 0
+ case EC_GROUP_POKEMON_2: // 21
+ chars = gSpeciesNames[word];
+ break;
+ case EC_GROUP_MOVE_1: // 18
+ case EC_GROUP_MOVE_2: // 19
+ chars = gMoveNames[word];
+ break;
+ default:
+ chars = gEasyChatGroupWords[group];
+ for (i = word - 1; i != 0xFFFF; i--)
+ {
+ while (*chars++ != EOS)
+ ;
+ }
+ break;
+ }
+
+ length = 0;
+ while (*chars != EOS)
+ {
+ chars++;
+ length++;
+ }
+
+ return length;
+}
+
+bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3)
+{
+ return FALSE;
+}
+
+void unref_sub_80EB684(u8 arg0, u16 arg1)
+{
+ u16 *ptr;
+ u16 c;
+
+ // FIXME: find actual tv shows used
+ switch (arg0)
+ {
+ case 5:
+ c = 6;
+ ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x04);
+ break;
+ case 7:
+ c = 2;
+ ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x1C);
+ break;
+ case 8:
+ c = 1;
+ ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x02);
+ break;
+ default:
+ return;
+ }
+
+ c -= 1;
+ while (c != 0xFFFF)
+ {
+ *ptr = -1;
+ ptr++;
+ c -= 1;
+ }
+}
+
+void sub_80EB6FC(u16 *arg0, u16 arg1)
+{
+ u16 i;
+
+ for (i = arg1 - 1; i != 0xFFFF; i--)
+ {
+ *arg0 = 0xFFFF;
+ arg0++;
+ }
+
+}
+
+u16 sub_80EB72C(u16 group)
+{
+ u16 local1 = Random() % gEasyChatGroupSizes[group];
+
+ if (group == EC_GROUP_POKEMON_1
+ || group == EC_GROUP_POKEMON_2
+ || group == EC_GROUP_MOVE_1
+ || group == EC_GROUP_MOVE_2)
+ {
+ local1 = ((u16 *) gEasyChatGroupWords[group])[local1];
+ }
+
+ return ((group & 0x7F) << 9) | (local1 & 0x1FF);
+}
+
+u16 sub_80EB784(u16 group)
+{
+ if (!sub_80EAD7C(group))
+ return -1;
+
+ if (group != EC_GROUP_POKEMON_1)
+ {
+ if (group == EC_GROUP_TRENDY_SAYING)
+ return sub_80EB960();
+ }
+ else
+ {
+ return sub_80EB9D8();
+ }
+
+ return sub_80EB72C(group);
+}
+
+void sub_80EB7C4(void)
+{
+ u16 *words;
+ u16 arg1, arg2;
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ words = gSaveBlock1.easyChats.unk2B1C;
+ arg1 = 2;
+ arg2 = 2;
+ break;
+ case 1:
+ words = gSaveBlock1.easyChats.unk2B28;
+ if (sub_80EB680(gSaveBlock1.easyChats.unk2B28, 3, 2, 20))
+ {
+ arg1 = 2;
+ arg2 = 3;
+ }
+ else
+ {
+ arg1 = 3;
+ arg2 = 2;
+ }
+ break;
+ case 2:
+ words = gSaveBlock1.easyChats.unk2B34;
+ arg1 = 3;
+ arg2 = 2;
+ break;
+ case 3:
+ words = gSaveBlock1.easyChats.unk2B40;
+ arg1 = 3;
+ arg2 = 2;
+ break;
+ default:
+ return;
+ }
+
+ ConvertEasyChatWordsToString(gStringVar4, words, arg1, arg2);
+ ShowFieldAutoScrollMessage(gStringVar4);
+}
+
+void BufferRandomHobbyOrLifestyleString(void)
+{
+ u16 group, local2;
+
+ if (Random() & 1)
+ group = EC_GROUP_HOBBIES;
+ else
+ group = EC_GROUP_LIFESTYLE;
+
+ local2 = sub_80EB784(group);
+ EasyChat_GetWordText(gStringVar2, local2);
+}
+
+u8 sub_80EB868(u8 arg0)
+{
+ int offset;
+ int index;
+
+ index = arg0 / 8;
+ offset = arg0 % 8;
+ return (gSaveBlock1.unk2D8C[index] >> offset) & 1;
+}
+
+void sub_80EB890(u8 arg0)
+{
+ int offset;
+ int index;
+
+ if (arg0 < 33)
+ {
+ index = arg0 / 8;
+ offset = arg0 % 8;
+ gSaveBlock1.unk2D8C[index] |= 1 << offset;
+ }
+}
+
+u8 sub_80EB8C0(void)
+{
+ u8 i, count;
+
+ for (i = 0, count = 0; i < 33; i++)
+ {
+ if (sub_80EB868(i))
+ count++;
+ }
+ return count;
+}
+
+u16 sub_80EB8EC(void)
+{
+ u16 i;
+ u16 local1, local2;
+
+ local1 = sub_80EB8C0();
+ if (local1 == 33)
+ return -1;
+
+ local2 = Random() % (33 - local1);
+ for (i = 0; i < 33; i++)
+ {
+ if (sub_80EB868(i) == 0)
+ {
+ if (local2 == 0)
+ {
+ sub_80EB890(i);
+ return (i & 0x1FF) | 0x2800;
+ }
+ local2--;
+ }
+ }
+ return -1;
+}
+
+static u16 sub_80EB960(void)
+{
+ u16 i;
+ u16 local1;
+
+ local1 = sub_80EB8C0();
+ if (local1 == 0)
+ return -1;
+
+ local1 = Random() % local1;
+ for (i = 0; i < 33; i++)
+ {
+ if (sub_80EB868(i))
+ {
+ if (local1 == 0)
+ return (i & 0x1FF) | 0x2800;
+ local1--;
+ }
+ }
+
+ return -1;
+}
+
+u8 sub_80EB9C8(void)
+{
+ return IsNationalPokedexEnabled();
+}
+
+static u16 sub_80EB9D8(void)
+{
+ u16 *speciesList;
+ u16 local1;
+ u16 i;
+
+ local1 = sub_80EAE88(0);
+
+ if (local1 == 0)
+ return -1;
+
+ local1 = Random() % local1;
+ speciesList = (u16 *)gEasyChatGroupWords[EC_GROUP_POKEMON_1];
+ for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON_1]; i++)
+ {
+ const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList);
+ const u8 local2 = GetSetPokedexFlag(dexNum, 0);
+
+ if (local2)
+ {
+ if (local1 == 0)
+ return *speciesList & 0x1FF;
+ local1--;
+ }
+ speciesList++;
+ }
+ return -1;
+}
diff --git a/src/engine/cable_car_util.c b/src/engine/cable_car_util.c
new file mode 100644
index 000000000..02bfbc195
--- /dev/null
+++ b/src/engine/cable_car_util.c
@@ -0,0 +1,47 @@
+#include "global.h"
+#include "cable_car_util.h"
+
+// static types
+
+// static declarations
+
+// rodata
+
+// text
+
+void CableCarUtil_FillWrapped(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height)
+{
+ u8 i;
+ u8 j;
+ u8 x;
+ u8 y;
+
+ for (i = 0, y = top; i < height; i++)
+ {
+ for (x = left, j = 0; j < width; j++)
+ {
+ *(u16 *)&((u8 *)dest)[y * 64 + x * 2] = value;
+ x = (x + 1) % 32;
+ }
+ y = (y + 1) % 32;
+ }
+}
+
+void CableCarUtil_CopyWrapped(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height)
+{
+ u8 i;
+ u8 j;
+ u8 x;
+ u8 y;
+ const u16 *_src;
+
+ for (i = 0, _src = src, y = top; i < height; i++)
+ {
+ for (x = left, j = 0; j < width; j++)
+ {
+ *(u16 *)&((u8 *)dest)[y * 64 + x * 2] = *_src++;
+ x = (x + 1) % 32;
+ }
+ y = (y + 1) % 32;
+ }
+}
diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c
index 3187de7ed..ff73e638e 100644
--- a/src/engine/cable_club.c
+++ b/src/engine/cable_club.c
@@ -23,6 +23,7 @@
#include "text.h"
#include "trainer_card.h"
+extern u8 unk_2030220;
extern u16 gSpecialVar_Result;
extern struct TrainerCard gTrainerCards[4];
extern u8 gUnknown_03004860;
@@ -41,7 +42,7 @@ extern struct
u8 field1;
} gUnknown_020297D8;
-static void sub_8082F20(u8 taskId);
+/*static*/ void sub_8082F20(u8 taskId);
static void sub_8082F68(u8 taskId);
static void sub_8082FEC(u8 taskId);
static void sub_808303C(u8 taskId);
@@ -95,6 +96,382 @@ const u8 *const gTrainerCardColorNames[] =
TrainerCardColorName_Gold,
};
+#if DEBUG
+
+__attribute__((naked))
+int debug_sub_808A4D0()
+{
+ asm("\
+ push {lr}\n\
+ add r1, r0, #0\n\
+ ldr r0, ._3 @ sub_8082F68\n\
+ cmp r1, r0\n\
+ bne ._1 @cond_branch\n\
+ mov r0, #0x1\n\
+ b ._30\n\
+._4:\n\
+ .align 2, 0\n\
+._3:\n\
+ .word sub_8082F68+1\n\
+._1:\n\
+ ldr r0, ._7 @ sub_8082FEC\n\
+ cmp r1, r0\n\
+ bne ._5 @cond_branch\n\
+ mov r0, #0x11\n\
+ b ._30\n\
+._8:\n\
+ .align 2, 0\n\
+._7:\n\
+ .word sub_8082FEC+1\n\
+._5:\n\
+ ldr r0, ._11 @ sub_808303C\n\
+ cmp r1, r0\n\
+ bne ._9 @cond_branch\n\
+ mov r0, #0x12\n\
+ b ._30\n\
+._12:\n\
+ .align 2, 0\n\
+._11:\n\
+ .word sub_808303C+1\n\
+._9:\n\
+ ldr r0, ._15 @ sub_8083188\n\
+ cmp r1, r0\n\
+ bne ._13 @cond_branch\n\
+ mov r0, #0x13\n\
+ b ._30\n\
+._16:\n\
+ .align 2, 0\n\
+._15:\n\
+ .word sub_8083188+1\n\
+._13:\n\
+ ldr r0, ._19 @ sub_80830E4\n\
+ cmp r1, r0\n\
+ bne ._17 @cond_branch\n\
+ mov r0, #0x14\n\
+ b ._30\n\
+._20:\n\
+ .align 2, 0\n\
+._19:\n\
+ .word sub_80830E4+1\n\
+._17:\n\
+ ldr r0, ._23 @ sub_80831F8\n\
+ cmp r1, r0\n\
+ bne ._21 @cond_branch\n\
+ mov r0, #0x21\n\
+ b ._30\n\
+._24:\n\
+ .align 2, 0\n\
+._23:\n\
+ .word sub_80831F8+1\n\
+._21:\n\
+ ldr r0, ._27 @ sub_8083314\n\
+ cmp r1, r0\n\
+ bne ._25 @cond_branch\n\
+ mov r0, #0x2\n\
+ b ._30\n\
+._28:\n\
+ .align 2, 0\n\
+._27:\n\
+ .word sub_8083314+1\n\
+._25:\n\
+ ldr r0, ._31 @ sub_80833C4\n\
+ cmp r1, r0\n\
+ beq ._29 @cond_branch\n\
+ mov r0, #0x0\n\
+ b ._30\n\
+._32:\n\
+ .align 2, 0\n\
+._31:\n\
+ .word sub_80833C4+1\n\
+._29:\n\
+ mov r0, #0x3\n\
+._30:\n\
+ pop {r1}\n\
+ bx r1");
+}
+
+__attribute__((naked))
+void debug_sub_808A55C()
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ ldr r2, ._37 @ gTasks\n\
+ lsl r0, r7, #0x2\n\
+ add r0, r0, r7\n\
+ lsl r0, r0, #0x3\n\
+ add r4, r0, r2\n\
+ mov r0, #0x8\n\
+ ldsh r1, [r4, r0]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ ldrb r0, [r0, #0x4]\n\
+ cmp r0, #0\n\
+ bne ._33 @cond_branch\n\
+ mov r1, #0xa\n\
+ ldsh r0, [r4, r1]\n\
+ cmp r0, #0x5\n\
+ bne ._34 @cond_branch\n\
+ add r0, r7, #0\n\
+ bl DestroyTask\n\
+._34:\n\
+ ldrh r0, [r4, #0xa]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4, #0xa]\n\
+._33:\n\
+ ldr r0, ._37 + 4 @ gShouldAdvanceLinkState\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0x0\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 8 @ gBlockSendBuffer\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x16\n\
+ mov r2, #0x5\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ mov r4, #0x0\n\
+ lsl r3, r7, #0x2\n\
+ mov r8, r3\n\
+ mov r6, #0xc0\n\
+ lsl r6, r6, #0x13\n\
+ mov r5, #0xa0\n\
+ lsl r5, r5, #0x13\n\
+._35:\n\
+ ldr r0, ._37 + 12 @ gLinkPlayerPending\n\
+ add r0, r4, r0\n\
+ ldrb r0, [r0]\n\
+ lsr r1, r5, #0x18\n\
+ mov r2, #0x0\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r1, ._37 + 16 @ gBlockRecvBuffer\n\
+ lsl r0, r4, #0x8\n\
+ add r0, r0, r1\n\
+ ldrh r0, [r0]\n\
+ lsr r2, r6, #0x18\n\
+ mov r1, #0x16\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x11\n\
+ add r6, r6, r0\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x12\n\
+ add r5, r5, r1\n\
+ add r4, r4, #0x1\n\
+ cmp r4, #0x3\n\
+ ble ._35 @cond_branch\n\
+ ldr r4, ._37 + 20 @ gLinkStatus\n\
+ ldr r0, [r4]\n\
+ mov r1, #0xf\n\
+ mov r2, #0x0\n\
+ mov r3, #0x8\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 24 @ gLink\n\
+ ldrb r0, [r0, #0x1]\n\
+ mov r1, #0x2\n\
+ mov r2, #0xa\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ bl GetMultiplayerId\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x7\n\
+ mov r2, #0xc\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ bl GetBlockReceivedStatus\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x7\n\
+ mov r2, #0xa\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 28 @ gReceivedRemoteLinkPlayers\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0xc\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 32 @ gSpecialVar_Result\n\
+ ldrh r0, [r0]\n\
+ mov r1, #0xb\n\
+ mov r2, #0x8\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, [r4]\n\
+ mov r1, #0x1c\n\
+ and r0, r0, r1\n\
+ lsr r0, r0, #0x2\n\
+ mov r1, #0xb\n\
+ mov r2, #0xa\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ bl IsLinkConnectionEstablished\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0xb\n\
+ mov r2, #0xc\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ bl IsLinkTaskFinished\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0xf\n\
+ mov r2, #0xa\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r2, ._37 @ gTasks\n\
+ mov r3, r8\n\
+ add r0, r3, r7\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ mov r3, #0x8\n\
+ ldsh r1, [r0, r3]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ ldr r0, [r0]\n\
+ bl debug_sub_808A4D0\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0xf\n\
+ mov r2, #0xc\n\
+ mov r3, #0x2\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 36 @ gLinkCallback\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0xd\n\
+ mov r3, #0x8\n\
+ bl PrintHex\n\
+ bl HasLinkErrorOccurred\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x2\n\
+ mov r2, #0x2\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ ldr r0, ._37 + 40 @ gLinkPlayers\n\
+ mov r6, #0x80\n\
+ lsl r6, r6, #0x12\n\
+ add r5, r0, #0\n\
+ add r5, r5, #0x14\n\
+ mov r4, #0x3\n\
+._36:\n\
+ ldr r0, [r5]\n\
+ lsr r1, r6, #0x18\n\
+ mov r2, #0x3\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ mov r0, #0xc0\n\
+ lsl r0, r0, #0x13\n\
+ add r6, r6, r0\n\
+ add r5, r5, #0x1c\n\
+ sub r4, r4, #0x1\n\
+ cmp r4, #0\n\
+ bge ._36 @cond_branch\n\
+ ldr r0, ._37 + 44 @ 0x4000128\n\
+ ldrh r0, [r0]\n\
+ mov r1, #0x2\n\
+ mov r2, #0x6\n\
+ mov r3, #0x4\n\
+ bl PrintHex\n\
+ bl debug_sub_808B850\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ mov r1, #0x19\n\
+ mov r2, #0x3\n\
+ mov r3, #0x1\n\
+ bl PrintHex\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._38:\n\
+ .align 2, 0\n\
+._37:\n\
+ .word gTasks\n\
+ .word gShouldAdvanceLinkState\n\
+ .word gBlockSendBuffer\n\
+ .word gLinkPlayerPending\n\
+ .word gBlockRecvBuffer\n\
+ .word gLinkStatus\n\
+ .word gLink\n\
+ .word gReceivedRemoteLinkPlayers\n\
+ .word gSpecialVar_Result\n\
+ .word gLinkCallback\n\
+ .word gLinkPlayers\n\
+ .word 0x4000128");
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+static void sub_8082CD4(u8 arg0, u8 arg1)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ lsl r1, r1, #0x18\n\
+ lsr r6, r1, #0x18\n\
+ mov r0, #0xc\n\
+ mov r1, #0x0\n\
+ mov r2, #0x1f\n\
+ mov r3, #0x2\n\
+ bl InitLinkTestBG_Unused\n\
+ ldr r4, ._40 @ sub_8082F20\n\
+ add r0, r4, #0\n\
+ bl FindTaskIdByFunc\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0xff\n\
+ bne ._39 @cond_branch\n\
+ add r0, r4, #0\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ add r4, r0, #0\n\
+ lsl r4, r4, #0x18\n\
+ lsr r4, r4, #0x18\n\
+ ldr r5, ._40 + 4 @ gTasks\n\
+ lsl r0, r4, #0x2\n\
+ add r0, r0, r4\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r5\n\
+ strh r7, [r0, #0xa]\n\
+ strh r6, [r0, #0xc]\n\
+ ldr r0, ._40 + 8 @ debug_sub_808A55C\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ lsl r1, r0, #0x2\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r5\n\
+ strh r4, [r1, #0x8]\n\
+._39:\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._41:\n\
+ .align 2, 0\n\
+._40:\n\
+ .word sub_8082F20+1\n\
+ .word gTasks\n\
+ .word debug_sub_808A55C+1");
+}
+#else
static void sub_8082CD4(u8 arg0, u8 arg1)
{
if (FindTaskIdByFunc(sub_8082F20) == 0xFF)
@@ -105,17 +482,18 @@ static void sub_8082CD4(u8 arg0, u8 arg1)
gTasks[taskId].data[2] = arg1;
}
}
+#endif
static void sub_8082D18(u32 value)
{
ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEFT_ALIGN, 1);
- MenuDrawTextWindow(18, 10, 28, 13);
+ Menu_DrawStdWindowFrame(18, 10, 28, 13);
sub_8072BD8(gOtherText_PLink, 19, 11, 72);
}
static void sub_8082D4C()
{
- MenuZeroFillWindowRect(18, 10, 28, 13);
+ Menu_EraseWindowRect(18, 10, 28, 13);
}
static void sub_8082D60(u8 taskId, u8 arg1)
@@ -207,7 +585,7 @@ void unref_sub_8082EEC(u8 taskId)
}
}
-static void sub_8082F20(u8 taskId)
+/*static*/ void sub_8082F20(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -360,6 +738,10 @@ void sub_80831F8(u8 taskId)
|| sub_8082DF4(taskId) == TRUE)
return;
+#if DEBUG
+ sub_8082D60(taskId, GetLinkPlayerCount_2());
+#endif
+
gSpecialVar_Result = sub_8082D9C(local1, local2);
if (gSpecialVar_Result == 0)
return;
@@ -374,7 +756,7 @@ void sub_80831F8(u8 taskId)
gFieldLinkPlayerCount = GetLinkPlayerCount_2();
gUnknown_03004860 = GetMultiplayerId();
sub_80081C8(gFieldLinkPlayerCount);
- sub_8093390((struct TrainerCard *)gBlockSendBuffer);
+ TrainerCard_GenerateCardForPlayer((struct TrainerCard *)gBlockSendBuffer);
gTasks[taskId].func = sub_8083314;
}
}
@@ -395,7 +777,7 @@ static void sub_8083288(u8 taskId)
gFieldLinkPlayerCount = GetLinkPlayerCount_2();
gUnknown_03004860 = GetMultiplayerId();
sub_80081C8(gFieldLinkPlayerCount);
- sub_8093390((struct TrainerCard *)gBlockSendBuffer);
+ TrainerCard_GenerateCardForPlayer((struct TrainerCard *)gBlockSendBuffer);
gTasks[taskId].func = sub_8083314;
sub_8007E9C(2);
}
@@ -676,7 +1058,7 @@ static void sub_808382C(u8 taskId)
switch (task->data[0])
{
case 0:
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gLinkType = 0x2211;
ClearLinkCallback_2();
task->data[0]++;
@@ -790,7 +1172,7 @@ static void sub_80839DC(u8 taskId)
case 3:
sub_8055588();
HideFieldMessageBox();
- MenuZeroFillScreen();
+ Menu_EraseScreen();
DestroyTask(taskId);
EnableBothScriptContexts();
break;
@@ -812,7 +1194,7 @@ static void sub_8083AAC(u8 taskId)
{
case 0:
ScriptContext2_Enable();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
ClearLinkCallback_2();
task->data[0]++;
break;
@@ -874,7 +1256,7 @@ void unref_sub_8083BB0(void)
void sub_8083BDC(void)
{
- sub_8093130(gSpecialVar_0x8006, c2_exit_to_overworld_1_continue_scripts_restart_music);
+ TrainerCard_ShowLinkCard(gSpecialVar_0x8006, c2_exit_to_overworld_1_continue_scripts_restart_music);
}
bool32 sub_8083BF4(u8 linkPlayerIndex)
@@ -908,6 +1290,74 @@ void sub_8083C50(u8 taskId)
DestroyTask(taskId);
}
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_808B778()
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r4, ._390 @ debug_sub_808B7A8\n\
+ add r0, r4, #0\n\
+ bl FuncIsActiveTask\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._389 @cond_branch\n\
+ add r0, r4, #0\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+._389:\n\
+ ldr r1, ._390 + 4 @ unk_3004E98\n\
+ ldr r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ str r0, [r1]\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._391:\n\
+ .align 2, 0\n\
+._390:\n\
+ .word debug_sub_808B7A8+1\n\
+ .word unk_3004E98");
+}
+
+__attribute__((naked))
+void debug_sub_808B7A8()
+{
+ asm("\
+ push {lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r2, ._393 @ gTasks\n\
+ lsl r1, r0, #0x2\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r2\n\
+ ldrh r0, [r1, #0x8]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r1, #0x8]\n\
+ lsl r0, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0x1e\n\
+ bne ._392 @cond_branch\n\
+ mov r0, #0x0\n\
+ strh r0, [r1, #0x8]\n\
+ ldr r2, ._393 + 4 @ unk_3004E94\n\
+ ldrh r0, [r2]\n\
+ mov r1, #0x1\n\
+ orr r0, r0, r1\n\
+ strh r0, [r2]\n\
+._392:\n\
+ pop {r0}\n\
+ bx r0\n\
+._394:\n\
+ .align 2, 0\n\
+._393:\n\
+ .word gTasks\n\
+ .word unk_3004E94");
+}
+#endif
+
static void sub_8083CA4(u8 taskId)
{
if (!gReceivedRemoteLinkPlayers)
@@ -921,4 +1371,23 @@ void unref_sub_8083CC8(u8 taskId)
{
sub_800832C();
gTasks[taskId].func = sub_8083CA4;
-} \ No newline at end of file
+}
+
+#if DEBUG
+
+void debug_sub_808B82C(void)
+{
+ unk_2030220 = 0;
+}
+
+void debug_sub_808B838(u8 a)
+{
+ unk_2030220 |= 1 << a;
+}
+
+int debug_sub_808B850(void)
+{
+ return unk_2030220;
+}
+
+#endif \ No newline at end of file
diff --git a/src/engine/clear_save_data_menu.c b/src/engine/clear_save_data_menu.c
index 12cde22a7..b6053715a 100644
--- a/src/engine/clear_save_data_menu.c
+++ b/src/engine/clear_save_data_menu.c
@@ -41,11 +41,11 @@ static void Task_InitMenu(u8 taskId)
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
SetVBlankCallback(VBlankCB_ClearSaveDataScreen);
- MenuDrawTextWindow(2, 14, 27, 19);
- MenuPrint(gSystemText_ClearAllSaveDataPrompt, 3, 15);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
+ Menu_PrintText(gSystemText_ClearAllSaveDataPrompt, 3, 15);
- MenuDrawTextWindow(2, 1, 8, 6);
- PrintMenuItems(3, 2, 2, gMenuYesNoItems);
+ Menu_DrawStdWindowFrame(2, 1, 8, 6);
+ Menu_PrintItems(3, 2, 2, gMenuYesNoItems);
InitMenu(0, 3, 2, 2, 1, 5);
gTasks[taskId].func = Task_ProcessMenuInput;
@@ -53,7 +53,7 @@ static void Task_InitMenu(u8 taskId)
static void Task_ProcessMenuInput(u8 taskId)
{
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0:
PlaySE(SE_SELECT);
@@ -73,7 +73,7 @@ static void Task_ProcessMenuInput(u8 taskId)
static void Task_ClearSaveData(u8 taskId)
{
- ClearSaveData();
+ Save_EraseAllData();
DestroyTask(taskId);
SetMainCallback2(CB2_SoftReset);
}
@@ -133,8 +133,8 @@ static u8 InitClearSaveDataScreen(void)
ResetTasks();
ResetSpriteData();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0xffff);
ime = REG_IME;
diff --git a/src/engine/clock.c b/src/engine/clock.c
index 416aaa6bb..fceccdfcb 100644
--- a/src/engine/clock.c
+++ b/src/engine/clock.c
@@ -13,12 +13,11 @@
#include "tv.h"
#include "wallclock.h"
-static void InitTimeBasedEvents(void);
static void UpdatePerDay(struct Time *time);
static void UpdatePerMinute(struct Time *time);
static void ReturnFromStartWallClock(void);
-static void InitTimeBasedEvents(void)
+void InitTimeBasedEvents(void)
{
FlagSet(FLAG_SYS_CLOCK_SET);
RtcCalcLocalTime();
diff --git a/src/engine/link.c b/src/engine/link.c
index 28323207c..00c084069 100644
--- a/src/engine/link.c
+++ b/src/engine/link.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "cable_club.h"
#include "link.h"
#include "battle.h"
#include "berry.h"
@@ -12,6 +13,7 @@
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
+#include "string_util.h"
#include "strings2.h"
#include "task.h"
#include "text.h"
@@ -66,7 +68,7 @@ u32 sub_8007E40(void);
static void SetBlockReceivedFlag(u8);
static u16 LinkTestCalcBlockChecksum(void *, u16);
static void PrintHexDigit(u8, u8, u8);
-static void PrintHex(u32, u8, u8, u8);
+void PrintHex(u32, u8, u8, u8);
static void LinkCB_RequestPlayerDataExchange(void);
static void Task_PrintTestData(u8);
bool8 sub_8008224(void);
@@ -79,7 +81,7 @@ static void sub_80084C8(void);
static void sub_80084F4(void);
static void CheckErrorStatus(void);
-static void CB2_PrintErrorMessage(void);
+void CB2_PrintErrorMessage(void);
static u8 IsSioMultiMaster(void);
static void DisableSerial(void);
static void EnableSerial(void);
@@ -145,6 +147,9 @@ void (*gLinkCallback)(void);
struct LinkPlayer gSavedLinkPlayers[MAX_LINK_PLAYERS];
u8 gShouldAdvanceLinkState;
u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS];
+#if DEBUG
+u8 gUnknown_Debug_30030E0;
+#endif
u8 gBlockRequestType;
u8 gLastSendQueueCount;
struct Link gLink;
@@ -156,11 +161,11 @@ u8 deUnkValue1;
u8 deUnkValue2;
#endif
-EWRAM_DATA bool8 gLinkTestDebugValuesEnabled = {0};
-EWRAM_DATA bool8 gLinkTestDummyBool = {0};
-EWRAM_DATA u32 gFiller_20238B8 = {0};
-EWRAM_DATA u32 dword_20238BC = {0};
-EWRAM_DATA bool8 gLinkOpen = {0};
+EWRAM_DATA bool8 gLinkTestDebugValuesEnabled = 0;
+EWRAM_DATA bool8 gLinkTestDummyBool = 0;
+EWRAM_DATA u32 gFiller_20238B8 = 0;
+EWRAM_DATA u32 dword_20238BC = 0;
+EWRAM_DATA bool8 gLinkOpen = 0;
static const u16 sLinkTestDigitPalette[] = INCBIN_U16("graphics/interface/link_test_digits.gbapal");
static const u32 sLinkTestDigitTiles[] = INCBIN_U32("graphics/interface/link_test_digits.4bpp");
@@ -189,9 +194,19 @@ const struct BlockRequest sBlockRequestLookupTable[5] =
static const u8 sTestString[] = _("テストな");
-ALIGNED(4) static const u8 sMagic[] = "GameFreak inc.";
+// TODO: fix the alignment here
+
+ALIGNED(4) const u8 sMagic[] = "GameFreak inc.";
-ALIGNED(4) static const u8 sEmptyString[] = _("");
+#if DEBUG
+const u8 sEmptyString[] = _(" ");
+#else
+ALIGNED(4) const u8 sEmptyString[] = _("");
+#endif
+
+#if DEBUG
+const u8 linkDebugFillerPleaseRemove[2] = {0};
+#endif
void Task_DestroySelf(u8 taskId)
{
@@ -238,8 +253,8 @@ void LinkTestScreen(void)
FreeAllSpritePalettes();
ResetTasks();
SetVBlankCallback(VBlankCB_LinkTest);
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow((struct WindowConfig *)&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow((struct WindowTemplate *)&gWindowTemplate_81E6CE4);
ResetBlockSend();
gLinkType = 0x1111;
OpenLink();
@@ -409,7 +424,7 @@ static void LinkTestProcessKeyInput(void)
if (gMain.newKeys & START_BUTTON)
SetSuppressLinkErrorMessage(TRUE);
if (gMain.newKeys & R_BUTTON)
- TrySavingData(LINK_SAVE);
+ Save_WriteData(SAVE_LINK);
if (gMain.newKeys & SELECT_BUTTON)
sub_800832C();
if (gLinkTestDebugValuesEnabled)
@@ -543,6 +558,9 @@ static void ProcessRecvCmds(u8 unusedParam)
else
{
SetBlockReceivedFlag(i);
+#if DEBUG
+ debug_sub_808B838(i);
+#endif
}
}
break;
@@ -898,14 +916,9 @@ bool8 sub_8007E9C(u8 a1)
}
}
-bool8 sub_8007ECC(void)
+bool8 IsLinkTaskFinished(void)
{
- u8 retVal = FALSE;
-
- if (!gLinkCallback)
- retVal = TRUE;
-
- return retVal;
+ return gLinkCallback == NULL;
}
u8 GetBlockReceivedStatus(void)
@@ -957,7 +970,7 @@ static void PrintHexDigit(u8 tileNum, u8 x, u8 y)
tilemap[(32 * y) + x] = (gLinkTestBGInfo.paletteNum << 12) | (tileNum + 1);
}
-static void PrintHex(u32 num, u8 x, u8 y, u8 maxDigits)
+void PrintHex(u32 num, u8 x, u8 y, u8 maxDigits)
{
u8 buffer[16];
s32 i;
@@ -975,6 +988,143 @@ static void PrintHex(u32 num, u8 x, u8 y, u8 maxDigits)
}
}
+#if DEBUG
+
+EWRAM_DATA u16 *debugCharacterBase = NULL;
+EWRAM_DATA void *unk_20238C8 = NULL;
+EWRAM_DATA u16 (*debugTileMap)[] = NULL;
+EWRAM_DATA u32 unk_20238D0 = 0;
+
+void debug_sub_8008218(u16 *buffer, void *arg1, u16 (*arg2)[], u32 arg3)
+{
+ CpuSet(sLinkTestDigitTiles, buffer, 272);
+ debugCharacterBase = buffer;
+ unk_20238C8 = arg1;
+ debugTileMap = arg2;
+ unk_20238D0 = arg3;
+}
+
+#ifdef NONMATCHING
+void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0)
+{
+ u32 buffer[8];
+ u32 *ptr;
+
+ u16 *dest;
+
+ int i;
+
+ if (unk_20238D0 != sp0)
+ return;
+
+ r3 = max(r3, 8);
+
+ ptr = &buffer[0];
+ dest = &(*debugTileMap)[left + top * 32];
+
+ for (i = r3; i != 0; i--)
+ {
+ *(ptr++) = value & 0xF;
+ value = value >> 4;
+ }
+
+ ptr = &buffer[8 - r3];
+ for (i = r3; i != 0; i--)
+ {
+ int charOffset = (((uintptr_t) debugCharacterBase) - ((uintptr_t) unk_20238C8)) / 32;
+ *dest = *ptr + charOffset + 1;
+ ptr--;
+ dest++;
+ }
+}
+#else
+__attribute__((naked))
+void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add sp, sp, #0xffffffe0\n"
+ " add r5, r0, #0\n"
+ " add r6, r1, #0\n"
+ " add r4, r3, #0\n"
+ " ldr r0, [sp, #0x38]\n"
+ " ldr r1, ._347 @ unk_20238D0\n"
+ " ldr r1, [r1]\n"
+ " cmp r1, r0\n"
+ " bne ._345 @cond_branch\n"
+ " cmp r4, #0x8\n"
+ " ble ._342 @cond_branch\n"
+ " mov r4, #0x8\n"
+ "._342:\n"
+ " mov r3, sp\n"
+ " ldr r0, ._347 + 4 @ debugTileMap\n"
+ " mov r8, r0\n"
+ " lsl r2, r2, #0x6\n"
+ " mov ip, r2\n"
+ " lsl r6, r6, #0x1\n"
+ " lsl r7, r4, #0x2\n"
+ " cmp r4, #0\n"
+ " ble ._343 @cond_branch\n"
+ " mov r1, #0xf\n"
+ " add r2, r4, #0\n"
+ "._344:\n"
+ " add r0, r5, #0\n"
+ " and r0, r0, r1\n"
+ " stmia r3!, {r0}\n"
+ " lsr r5, r5, #0x4\n"
+ " sub r2, r2, #0x1\n"
+ " cmp r2, #0\n"
+ " bne ._344 @cond_branch\n"
+ "._343:\n"
+ " mov r1, r8\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, ip\n"
+ " add r5, r0, r6\n"
+ " mov r1, sp\n"
+ " add r0, r1, r7\n"
+ " sub r3, r0, #4\n"
+ " cmp r4, #0\n"
+ " ble ._345 @cond_branch\n"
+ " ldr r7, ._347 + 8 @ debugCharacterBase\n"
+ " ldr r6, ._347 + 12 @ unk_20238C8\n"
+ " add r2, r4, #0\n"
+ "._346:\n"
+ " ldr r1, [r7]\n"
+ " ldr r0, [r6]\n"
+ " sub r1, r1, r0\n"
+ " lsr r1, r1, #0x5\n"
+ " ldr r0, [r3]\n"
+ " add r0, r0, r1\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r5]\n"
+ " sub r3, r3, #0x4\n"
+ " add r5, r5, #0x2\n"
+ " sub r2, r2, #0x1\n"
+ " cmp r2, #0\n"
+ " bne ._346 @cond_branch\n"
+ "._345:\n"
+ " add sp, sp, #0x20\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._348:\n"
+ " .align 2, 0\n"
+ "._347:\n"
+ " .word unk_20238D0\n"
+ " .word debugTileMap\n"
+ " .word debugCharacterBase\n"
+ " .word unk_20238C8\n"
+ "\n"
+ );
+}
+#endif
+
+#endif
+
static void LinkCB_RequestPlayerDataExchange(void)
{
// Only one request needs to be sent, so only the master sends it.
@@ -1236,9 +1386,9 @@ void CB2_LinkError(void)
FillPalette(0, 0, 2);
ResetTasks();
SetVBlankCallback(VBlankCB_LinkTest);
- SetUpWindowConfig(&gWindowConfig_81E7198);
- InitMenuWindow((struct WindowConfig *)&gWindowConfig_81E7198);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7198);
+ InitMenuWindow((struct WindowTemplate *)&gWindowTemplate_81E7198);
+ Menu_EraseScreen();
REG_BLDALPHA = 0;
REG_BG0VOFS = 0;
REG_BG0HOFS = 0;
@@ -1253,14 +1403,33 @@ void CB2_LinkError(void)
SetMainCallback2(CB2_PrintErrorMessage);
}
-static void CB2_PrintErrorMessage(void)
+void CB2_PrintErrorMessage(void)
{
- u8 array[64] __attribute__((unused)); // unused
+ u8 array[32] __attribute__((unused)); // unused
+ u8 array2[32] __attribute__((unused)); // unused
switch (gMain.state)
{
case 0:
- MenuPrint_PixelCoords(gMultiText_LinkError, 20, 56, 1);
+ Menu_PrintTextPixelCoords(gMultiText_LinkError, 20, 56, 1);
+#if DEBUG
+ StringCopy(array, sColorCodes);
+
+ ConvertIntToHexStringN(array2, sErrorLinkStatus, STR_CONV_MODE_LEADING_ZEROS, 8);
+ StringAppend(array, array2);
+
+ StringAppend(array, sEmptyString);
+
+ ConvertIntToHexStringN(array2, sErrorLastSendQueueCount, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(array, array2);
+
+ StringAppend(array, sEmptyString);
+
+ ConvertIntToHexStringN(array2, sErrorLastRecvQueueCount, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(array, array2);
+
+ Menu_PrintText(array, 2, 15);
+#endif
break;
case 30:
case 60:
diff --git a/src/engine/main.c b/src/engine/main.c
index 82a5fffb4..54a443e80 100644
--- a/src/engine/main.c
+++ b/src/engine/main.c
@@ -13,7 +13,7 @@
#include "rtc.h"
#include "siirtc.h"
#include "sound.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
extern struct SoundInfo gSoundInfo;
extern u32 IntrMain[];
@@ -83,6 +83,10 @@ static void WaitForVBlank(void);
#define B_START_SELECT (B_BUTTON | START_BUTTON | SELECT_BUTTON)
+#ifndef NDEBUG
+ #include <stdlib.h> // don't include if not needed.
+#endif
+
void AgbMain()
{
RegisterRamReset(RESET_ALL);
@@ -98,6 +102,14 @@ void AgbMain()
gSoftResetDisabled = FALSE;
+// In Fire Red, AGBPrintInit is called at this spot. For user convenience, I
+// opt to initialize the print area here. It is up to the user where they choose
+// to print stuff from, as anything else declared is NOT authoritative.
+#ifndef NDEBUG
+ AGBPrintInit();
+ __mb_cur_max = 1; // fix for AGBPrintf
+#endif
+
if (gFlashMemoryPresent != TRUE)
SetMainCallback2(NULL);
@@ -350,7 +362,7 @@ void DoSoftReset(void)
{
REG_IME = 0;
m4aSoundVSyncOff();
- remove_some_task();
+ ScanlineEffect_Stop();
DmaStop(1);
DmaStop(2);
DmaStop(3);
diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c
index 909b5676b..5a3f55b29 100644
--- a/src/engine/main_menu.c
+++ b/src/engine/main_menu.c
@@ -1,4 +1,6 @@
#include "global.h"
+#include "constants/songs.h"
+#include "constants/species.h"
#include "main_menu.h"
#include "data2.h"
#include "decompress.h"
@@ -13,23 +15,20 @@
#include "overworld.h"
#include "rtc.h"
#include "save_menu_util.h"
-#include "constants/songs.h"
+#include "save.h"
#include "sound.h"
-#include "constants/species.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text.h"
#include "title_screen.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "ewram.h"
-#define BirchSpeechUpdateWindowText() ((u8)MenuUpdateWindowText_OverrideLineLength(24))
+#define BirchSpeechUpdateWindowText() ((u8)Menu_UpdateWindowTextOverrideLineLength(24))
extern struct PaletteFadeControl gPaletteFade;
-extern u16 gSaveFileStatus;
-
extern const u8 gBirchSpeech_Welcome[];
extern const u8 gBirchSpeech_ThisIsPokemon[];
extern const u8 gBirchSpeech_WorldInhabitedByPokemon[];
@@ -229,12 +228,12 @@ u32 InitMainMenu(u8 a1)
ResetPaletteFade();
LoadPalette(gMainMenuPalette, 0, 32);
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow((struct WindowConfig *)&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow((struct WindowTemplate *)&gWindowTemplate_81E6CE4);
if (a1)
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0x0000); // fade to black
@@ -284,24 +283,23 @@ void Task_MainMenuCheckSave(u8 taskId)
switch (gSaveFileStatus)
{
- case 1:
+ case SAVE_STATUS_OK:
if (IsMysteryGiftEnabled() == TRUE)
gTasks[taskId].tMenuLayout = HAS_MYSTERY_GIFT;
else
gTasks[taskId].tMenuLayout = HAS_SAVED_GAME;
-
gTasks[taskId].func = Task_MainMenuCheckRtc;
break;
case 2:
- MenuDrawTextWindow(2, 14, 27, 19);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
MenuPrintMessage(gSaveFileDeletedMessage, 3, 15);
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(113, 159);
gTasks[taskId].tMenuLayout = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_MainMenuWaitForSaveErrorAck;
break;
- case 255:
- MenuDrawTextWindow(2, 14, 27, 19);
+ case SAVE_STATUS_ERROR:
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
MenuPrintMessage(gSaveFileCorruptMessage, 3, 15);
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(113, 159);
@@ -313,13 +311,13 @@ void Task_MainMenuCheckSave(u8 taskId)
else
gTasks[taskId].tMenuLayout = HAS_SAVED_GAME;
break;
- case 0:
+ case SAVE_STATUS_EMPTY:
default:
gTasks[taskId].tMenuLayout = HAS_NO_SAVED_GAME;
gTasks[taskId].func = Task_MainMenuCheckRtc;
break;
- case 4:
- MenuDrawTextWindow(2, 14, 27, 19);
+ case SAVE_STATUS_NO_FLASH:
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
MenuPrintMessage(gBoardNotInstalledMessage, 3, 15);
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(113, 159);
@@ -331,11 +329,11 @@ void Task_MainMenuCheckSave(u8 taskId)
void Task_MainMenuWaitForSaveErrorAck(u8 taskId)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
if (gMain.newKeys & A_BUTTON)
{
- MenuZeroFillWindowRect(2, 14, 27, 19);
+ Menu_EraseWindowRect(2, 14, 27, 19);
gTasks[taskId].func = Task_MainMenuCheckRtc;
}
}
@@ -359,7 +357,7 @@ void Task_MainMenuCheckRtc(u8 taskId)
}
else
{
- MenuDrawTextWindow(2, 14, 27, 19);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
MenuPrintMessage(gBatteryDryMessage, 3, 15);
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(113, 159);
@@ -370,11 +368,11 @@ void Task_MainMenuCheckRtc(u8 taskId)
void Task_MainMenuWaitForRtcErrorAck(u8 taskId)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
if ( gMain.newKeys & 1 )
{
- MenuZeroFillWindowRect(2, 14, 27, 19);
+ Menu_EraseWindowRect(2, 14, 27, 19);
gTasks[taskId].func = Task_MainMenuDraw;
}
}
@@ -412,28 +410,28 @@ void Task_MainMenuDraw(u8 taskId)
{
case HAS_NO_SAVED_GAME:
default:
- MenuDrawTextWindow(1, 0, 28, 3);
+ Menu_DrawStdWindowFrame(1, 0, 28, 3);
PrintMainMenuItem(gMainMenuString_NewGame, 2, 1);
- MenuDrawTextWindow(1, 4, 28, 7);
+ Menu_DrawStdWindowFrame(1, 4, 28, 7);
PrintMainMenuItem(gMainMenuString_Option, 2, 5);
break;
case HAS_SAVED_GAME:
- MenuDrawTextWindow(1, 0, 28, 7);
+ Menu_DrawStdWindowFrame(1, 0, 28, 7);
PrintMainMenuItem(gMainMenuString_Continue, 2, 1);
- MenuDrawTextWindow(1, 8, 28, 11);
+ Menu_DrawStdWindowFrame(1, 8, 28, 11);
PrintMainMenuItem(gMainMenuString_NewGame, 2, 9);
- MenuDrawTextWindow(1, 12, 28, 15);
+ Menu_DrawStdWindowFrame(1, 12, 28, 15);
PrintMainMenuItem(gMainMenuString_Option, 2, 13);
PrintSaveFileInfo();
break;
case HAS_MYSTERY_GIFT:
- MenuDrawTextWindow(1, 0, 28, 7);
+ Menu_DrawStdWindowFrame(1, 0, 28, 7);
PrintMainMenuItem(gMainMenuString_Continue, 2, 1);
- MenuDrawTextWindow(1, 8, 28, 11);
+ Menu_DrawStdWindowFrame(1, 8, 28, 11);
PrintMainMenuItem(gMainMenuString_NewGame, 2, 9);
- MenuDrawTextWindow(1, 12, 28, 15);
+ Menu_DrawStdWindowFrame(1, 12, 28, 15);
PrintMainMenuItem(gMainMenuString_MysteryEvents, 2, 13);
- MenuDrawTextWindow(1, 16, 28, 19);
+ Menu_DrawStdWindowFrame(1, 16, 28, 19);
PrintMainMenuItem(gMainMenuString_Option, 2, 0x11);
PrintSaveFileInfo();
break;
@@ -681,7 +679,7 @@ void PrintMainMenuItem(const u8 *text, u8 left, u8 top)
buffer[29] = EOS;
- MenuPrint(buffer, left, top);
+ Menu_PrintText(buffer, left, top);
}
void PrintSaveFileInfo(void)
@@ -694,8 +692,8 @@ void PrintSaveFileInfo(void)
void PrintPlayerName(void)
{
- MenuPrint(gMainMenuString_Player, 2, 3);
- MenuPrint(gSaveBlock2.playerName, 9, 3);
+ Menu_PrintText(gMainMenuString_Player, 2, 3);
+ Menu_PrintText(gSaveBlock2.playerName, 9, 3);
}
void PrintPlayTime(void)
@@ -704,15 +702,15 @@ void PrintPlayTime(void)
u8 alignedPlayTime[32];
#if defined(ENGLISH)
- MenuPrint(gMainMenuString_Time, 16, 3);
+ Menu_PrintText(gMainMenuString_Time, 16, 3);
FormatPlayTime(playTime, gSaveBlock2.playTimeHours, gSaveBlock2.playTimeMinutes, 1);
sub_8072C74(alignedPlayTime, playTime, 48, 1);
- MenuPrint(alignedPlayTime, 22, 3);
+ Menu_PrintText(alignedPlayTime, 22, 3);
#elif defined(GERMAN)
- MenuPrint_PixelCoords(gMainMenuString_Time, 124, 24, TRUE);
+ Menu_PrintTextPixelCoords(gMainMenuString_Time, 124, 24, TRUE);
FormatPlayTime(playTime, gSaveBlock2.playTimeHours, gSaveBlock2.playTimeMinutes, 1);
sub_8072C74(alignedPlayTime, playTime, 40, 1);
- MenuPrint(alignedPlayTime, 23, 3);
+ Menu_PrintText(alignedPlayTime, 23, 3);
#endif
}
@@ -720,9 +718,9 @@ void PrintPokedexCount(void)
{
u8 buffer[16];
- MenuPrint(gMainMenuString_Pokedex, 2, 5);
+ Menu_PrintText(gMainMenuString_Pokedex, 2, 5);
sub_8072C14(buffer, GetPokedexSeenCount(), 18, 0);
- MenuPrint(buffer, 9, 5);
+ Menu_PrintText(buffer, 9, 5);
}
void PrintBadgeCount(void)
@@ -730,12 +728,12 @@ void PrintBadgeCount(void)
u8 buffer[16];
#if defined(ENGLISH)
- MenuPrint(gMainMenuString_Badges, 16, 5);
+ Menu_PrintText(gMainMenuString_Badges, 16, 5);
#elif defined(GERMAN)
- MenuPrint_PixelCoords(gMainMenuString_Badges, 124, 40, TRUE);
+ Menu_PrintTextPixelCoords(gMainMenuString_Badges, 124, 40, TRUE);
#endif
ConvertIntToDecimalString(buffer, GetBadgeCount());
- MenuPrint_PixelCoords(buffer, 205, 40, 1);
+ Menu_PrintTextPixelCoords(buffer, 205, 40, 1);
}
#define tTrainerSpriteId data[2]
@@ -750,8 +748,8 @@ void PrintBadgeCount(void)
static void Task_NewGameSpeech1(u8 taskId)
{
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow((struct WindowConfig *)&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow((struct WindowTemplate *)&gWindowTemplate_81E6CE4);
REG_WIN0H = 0;
REG_WIN0V = 0;
REG_WININ = 0;
@@ -763,7 +761,7 @@ static void Task_NewGameSpeech1(u8 taskId)
LZ77UnCompVram(gUnknown_081E7834, (void *)(BG_VRAM + 0x3800));
LoadPalette(gUnknown_081E764C, 0, 0x40);
LoadPalette(gUnknown_081E796C, 1, 0x10);
- remove_some_task();
+ ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
AddBirchSpeechObjects(taskId);
@@ -812,7 +810,7 @@ static void Task_NewGameSpeech3(u8 taskId)
}
else
{
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
//"Hi! Sorry to keep you waiting...
//...But everyone calls me the POKEMON PROFESSOR."
MenuPrintMessage(gBirchSpeech_Welcome, 3, 14);
@@ -857,7 +855,7 @@ static void Task_NewGameSpeech7(u8 taskId)
//Go on to next sentence after frame 95
if (gTasks[taskId].tFrameCounter > 95)
{
- MenuSetText(gSystemText_NewPara);
+ Menu_SetText(gSystemText_NewPara);
gTasks[taskId].func = Task_NewGameSpeech8;
}
}
@@ -886,7 +884,7 @@ static void Task_NewGameSpeech9(u8 taskId)
{
if (BirchSpeechUpdateWindowText())
{
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
//"And you are?"
MenuPrintMessage(gBirchSpeech_AndYouAre, 3, 14);
gTasks[taskId].func = Task_NewGameSpeech10;
@@ -962,7 +960,7 @@ static void Task_NewGameSpeech13(u8 taskId)
static void Task_NewGameSpeech14(u8 taskId)
{
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
//"Are you a boy? Or are you a girl?"
MenuPrintMessage(gBirchSpeech_AreYouBoyOrGirl, 3, 14);
gTasks[taskId].func = Task_NewGameSpeech15;
@@ -985,22 +983,22 @@ static void Task_NewGameSpeech16(u8 taskId)
switch (GenderMenuProcessInput())
{
case MALE:
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
gSaveBlock2.playerGender = MALE;
- MenuZeroFillWindowRect(2, 4, 8, 9);
+ Menu_EraseWindowRect(2, 4, 8, 9);
gTasks[taskId].func = Task_NewGameSpeech19;
break;
case FEMALE:
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
gSaveBlock2.playerGender = FEMALE;
- MenuZeroFillWindowRect(2, 4, 8, 9);
+ Menu_EraseWindowRect(2, 4, 8, 9);
gTasks[taskId].func = Task_NewGameSpeech19;
break;
}
- cursorPos = GetMenuCursorPos();
+ cursorPos = Menu_GetCursorPos();
if (cursorPos != gTasks[taskId].tGenderSelection)
{
@@ -1062,7 +1060,7 @@ static void Task_NewGameSpeech18(u8 taskId)
static void Task_NewGameSpeech19(u8 taskId)
{
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
//"All right. What's your name?"
MenuPrintMessage(gBirchSpeech_WhatsYourName, 3, 14);
gTasks[taskId].func = Task_NewGameSpeech20;
@@ -1088,9 +1086,9 @@ static void Task_NewGameSpeech21(u8 taskId)
case 2:
case 3:
case 4:
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(2, 1, 22, 12);
+ Menu_EraseWindowRect(2, 1, 22, 12);
SetPresetPlayerName(selection);
gTasks[taskId].func = Task_NewGameSpeech23;
break;
@@ -1100,9 +1098,9 @@ static void Task_NewGameSpeech21(u8 taskId)
gTasks[taskId].func = Task_NewGameSpeech22;
break;
case -1: //B button
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(2, 1, 22, 12);
+ Menu_EraseWindowRect(2, 1, 22, 12);
gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu
break;
}
@@ -1120,7 +1118,7 @@ static void Task_NewGameSpeech22(u8 taskId)
static void Task_NewGameSpeech23(u8 taskId)
{
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
//"So it's (PLAYER)?"
StringExpandPlaceholders(gStringVar4, gBirchSpeech_SoItsPlayer);
MenuPrintMessage(gStringVar4, 3, 14);
@@ -1139,11 +1137,11 @@ static void Task_NewGameSpeech24(u8 taskId)
//Handle yes/no menu selection
static void Task_NewGameSpeech25(u8 taskId)
{
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0: //YES
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(2, 1, 8, 7);
+ Menu_EraseWindowRect(2, 1, 8, 7);
gSprites[gTasks[taskId].tTrainerSpriteId].oam.objMode = ST_OAM_OBJ_BLEND;
StartSpriteFadeOut(taskId, 2);
StartBackgroundFadeOut(taskId, 1);
@@ -1152,7 +1150,7 @@ static void Task_NewGameSpeech25(u8 taskId)
case -1: //B button
case 1: //NO
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(2, 1, 8, 7);
+ Menu_EraseWindowRect(2, 1, 8, 7);
gTasks[taskId].func = Task_NewGameSpeech14; //Go back to gender menu
break;
}
@@ -1197,7 +1195,7 @@ static void Task_NewGameSpeech27(u8 taskId)
StartSpriteFadeIn(taskId, 2);
StartBackgroundFadeIn(taskId, 1);
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
StringExpandPlaceholders(gStringVar4, gBirchSpeech_AhOkayYouArePlayer);
//"Ah, okay! You're (PLAYER) who's moving...
//...I get it now!"
@@ -1267,7 +1265,7 @@ static void Task_NewGameSpeech29(u8 taskId)
StartSpriteFadeIn(taskId, 2);
StartBackgroundFadeIn(taskId, 1);
- MenuDrawTextWindow(2, 13, 27, 18);
+ Menu_DrawStdWindowFrame(2, 13, 27, 18);
MenuPrintMessage(gBirchSpeech_AreYouReady, 3, 14);
gTasks[taskId].func = Task_NewGameSpeech30;
}
@@ -1368,13 +1366,13 @@ void CB_ContinueNewGameSpeechPart2()
gTasks[taskId].tBGhofs = -60;
- remove_some_task();
+ ScanlineEffect_Stop();
ResetSpriteData();
FreeAllSpritePalettes();
AddBirchSpeechObjects(taskId);
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow((struct WindowConfig *)&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow((struct WindowTemplate *)&gWindowTemplate_81E6CE4);
if (gSaveBlock2.playerGender != MALE)
{
@@ -1661,33 +1659,33 @@ static void StartBackgroundFadeIn(u8 taskId, u8 interval)
static void CreateGenderMenu(u8 left, u8 top)
{
u8 menuLeft, menuTop;
- MenuDrawTextWindow(left, top, left + 6, top + 5);
+ Menu_DrawStdWindowFrame(left, top, left + 6, top + 5);
menuLeft = left + 1;
menuTop = top + 1;
- PrintMenuItems(menuLeft, menuTop, 2, gUnknown_081E79B0);
+ Menu_PrintItems(menuLeft, menuTop, 2, gUnknown_081E79B0);
InitMenu(0, menuLeft, menuTop, 2, 0, 5);
}
static s8 GenderMenuProcessInput(void)
{
- return ProcessMenuInputNoWrap();
+ return Menu_ProcessInputNoWrap();
}
static void CreateNameMenu(u8 left, u8 top)
{
- MenuDrawTextWindow(left, top, left + 10, top + 11);
+ Menu_DrawStdWindowFrame(left, top, left + 10, top + 11);
if (gSaveBlock2.playerGender == MALE)
- PrintMenuItems(left + 1, top + 1, 5, gMalePresetNames);
+ Menu_PrintItems(left + 1, top + 1, 5, gMalePresetNames);
else
- PrintMenuItems(left + 1, top + 1, 5, gFemalePresetNames);
+ Menu_PrintItems(left + 1, top + 1, 5, gFemalePresetNames);
InitMenu(0, left + 1, top + 1, 5, 0, 9);
}
static s8 NameMenuProcessInput(void)
{
- return ProcessMenuInput();
+ return Menu_ProcessInput();
}
static void SetPresetPlayerName(u8 index)
diff --git a/src/engine/menu.c b/src/engine/menu.c
index 10988c1d7..86e20d0eb 100644
--- a/src/engine/menu.c
+++ b/src/engine/menu.c
@@ -24,13 +24,14 @@ struct Menu
u8 columnXCoords[8];
};
-static void MultistepInitMenuWindowInternal(const struct WindowConfig *, u16);
-static void InitMenuWindowInternal(const struct WindowConfig *, u16);
-static bool8 sub_80723D4(void);
+static void MultistepInitMenuWindowInternal(const struct WindowTemplate *, u16);
+static void InitMenuWindowInternal(const struct WindowTemplate *, u16);
+static bool8 IsGridCursorMovementClamped(void);
static u8 sub_8072484(u8, u8, u8, u8, u8, u8, u32);
static u8 sub_80724F4(u8, u8, u8, const struct MenuAction[], u8);
static void sub_8072620(u8, u8, u8, const struct MenuAction[], u8);
static void sub_8072D18(u8, u8);
+static void RedrawMenuCursor(u8, u8);
static struct Menu gMenu;
@@ -52,10 +53,10 @@ const struct MenuAction gMenuYesNoItems[] =
void CloseMenu(void)
{
PlaySE(SE_SELECT);
- MenuZeroFillScreen();
+ Menu_EraseScreen();
sub_8064E2C();
ScriptContext2_Disable();
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
}
void AppendToList(u8 *list, u8 *pindex, u32 value)
@@ -64,22 +65,22 @@ void AppendToList(u8 *list, u8 *pindex, u32 value)
(*pindex)++;
}
-void InitMenuWindow(const struct WindowConfig *winConfig)
+void InitMenuWindow(const struct WindowTemplate *winTemplate)
{
- InitMenuWindowInternal(winConfig, 1);
+ InitMenuWindowInternal(winTemplate, 1);
}
-void MultistepInitMenuWindowBegin(const struct WindowConfig *winConfig)
+void MultistepInitMenuWindowBegin(const struct WindowTemplate *winTemplate)
{
- MultistepInitMenuWindowInternal(winConfig, 1);
+ MultistepInitMenuWindowInternal(winTemplate, 1);
}
-static void MultistepInitMenuWindowInternal(const struct WindowConfig *winConfig, u16 tileOffset)
+static void MultistepInitMenuWindowInternal(const struct WindowTemplate *winTemplate, u16 tileOffset)
{
gMenuMultistepInitState = 0;
gMenuTextTileOffset = tileOffset;
gMenuWindowPtr = &gMenuWindow;
- InitWindowFromConfig(&gMenuWindow, winConfig);
+ Text_InitWindowWithTemplate(&gMenuWindow, winTemplate);
}
bool32 MultistepInitMenuWindowContinue(void)
@@ -97,13 +98,13 @@ bool32 MultistepInitMenuWindowContinue(void)
goto fail;
goto next;
case 3:
- gMenuTextWindowContentTileOffset = SetTextWindowBaseTileNum(gMenuTextWindowTileOffset);
+ gMenuTextWindowContentTileOffset = TextWindow_SetBaseTileNum(gMenuTextWindowTileOffset);
next:
gMenuMultistepInitState++;
return 0;
case 4:
- LoadTextWindowGraphics(gMenuWindowPtr);
- gMenuMessageBoxContentTileOffset = SetMessageBoxBaseTileNum(gMenuTextWindowContentTileOffset);
+ TextWindow_LoadStdFrameGraphics(gMenuWindowPtr);
+ gMenuMessageBoxContentTileOffset = TextWindow_SetDlgFrameBaseTileNum(gMenuTextWindowContentTileOffset);
return 1;
default:
fail:
@@ -111,73 +112,74 @@ bool32 MultistepInitMenuWindowContinue(void)
}
}
-static void InitMenuWindowInternal(const struct WindowConfig *winConfig, u16 tileOffset)
+static void InitMenuWindowInternal(const struct WindowTemplate *winTemplate, u16 tileOffset)
{
gMenuWindowPtr = &gMenuWindow;
- InitWindowFromConfig(&gMenuWindow, winConfig);
+ Text_InitWindowWithTemplate(&gMenuWindow, winTemplate);
gMenuTextTileOffset = tileOffset;
gMenuTextWindowTileOffset = InitWindowTileData(gMenuWindowPtr, gMenuTextTileOffset);
- gMenuTextWindowContentTileOffset = SetTextWindowBaseTileNum(gMenuTextWindowTileOffset);
- LoadTextWindowGraphics(gMenuWindowPtr);
- gMenuMessageBoxContentTileOffset = SetMessageBoxBaseTileNum(gMenuTextWindowContentTileOffset);
+ gMenuTextWindowContentTileOffset = TextWindow_SetBaseTileNum(gMenuTextWindowTileOffset);
+ TextWindow_LoadStdFrameGraphics(gMenuWindowPtr);
+ gMenuMessageBoxContentTileOffset = TextWindow_SetDlgFrameBaseTileNum(gMenuTextWindowContentTileOffset);
}
-void unref_sub_8071DA4(struct WindowConfig *winConfig, u16 tileOffset)
+void unref_sub_8071DA4(struct WindowTemplate *winTemplate, u16 tileOffset)
{
gMenuWindowPtr = &gMenuWindow;
- InitWindowFromConfig(&gMenuWindow, winConfig);
+ Text_InitWindowWithTemplate(&gMenuWindow, winTemplate);
gMenuTextWindowTileOffset = tileOffset;
- gMenuTextWindowContentTileOffset = SetTextWindowBaseTileNum(gMenuTextWindowTileOffset);
- LoadTextWindowGraphics(gMenuWindowPtr);
- gMenuTextTileOffset = SetMessageBoxBaseTileNum(gMenuTextWindowContentTileOffset);
+ gMenuTextWindowContentTileOffset = TextWindow_SetBaseTileNum(gMenuTextWindowTileOffset);
+ TextWindow_LoadStdFrameGraphics(gMenuWindowPtr);
+ gMenuTextTileOffset = TextWindow_SetDlgFrameBaseTileNum(gMenuTextWindowContentTileOffset);
gMenuMessageBoxContentTileOffset = InitWindowTileData(gMenuWindowPtr, gMenuTextTileOffset);
}
-void MenuLoadTextWindowGraphics_OverrideFrameType(u8 frameType)
+void Menu_LoadStdFrameGraphicsOverrideStyle(u8 frameType)
{
- LoadTextWindowGraphics_OverrideFrameType(gMenuWindowPtr, frameType);
+ TextWindow_LoadStdFrameGraphicsOverrideStyle(gMenuWindowPtr, frameType);
}
-void MenuLoadTextWindowGraphics(void)
+void Menu_LoadStdFrameGraphics(void)
{
- LoadTextWindowGraphics(gMenuWindowPtr);
+ TextWindow_LoadStdFrameGraphics(gMenuWindowPtr);
}
-void BasicInitMenuWindow(const struct WindowConfig *winConfig)
+void BasicInitMenuWindow(const struct WindowTemplate *winTemplate)
{
- InitWindowFromConfig(gMenuWindowPtr, winConfig);
+ Text_InitWindowWithTemplate(gMenuWindowPtr, winTemplate);
gMenuWindowPtr->tileDataStartOffset = gMenuTextTileOffset;
}
-void MenuPrint(const u8 *str, u8 left, u8 top)
+// Prints
+void Menu_PrintText(const u8 *str, u8 left, u8 top)
{
- sub_8003460(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
+ Text_InitWindowAndPrintText(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
}
-void MenuZeroFillWindowRect(u8 left, u8 top, u8 right, u8 bottom)
+void Menu_EraseWindowRect(u8 left, u8 top, u8 right, u8 bottom)
{
- ZeroFillWindowRect(gMenuWindowPtr, left, top, right, bottom);
+ Text_EraseWindowRect(gMenuWindowPtr, left, top, right, bottom);
}
-void MenuFillWindowRectWithBlankTile(u8 left, u8 top, u8 right, u8 bottom)
+void Menu_BlankWindowRect(u8 left, u8 top, u8 right, u8 bottom)
{
- FillWindowRectWithBlankTile(gMenuWindowPtr, left, top, right, bottom);
+ Text_BlankWindowRect(gMenuWindowPtr, left, top, right, bottom);
}
-void MenuZeroFillScreen(void)
+void Menu_EraseScreen(void)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
}
-void MenuDrawTextWindow(u8 left, u8 top, u8 right, u8 bottom)
+void Menu_DrawStdWindowFrame(u8 left, u8 top, u8 right, u8 bottom)
{
- DrawTextWindow(gMenuWindowPtr, left, top, right, bottom);
+ TextWindow_DrawStdFrame(gMenuWindowPtr, left, top, right, bottom);
}
void sub_8071F40(const u8 *str)
{
- MenuDrawTextWindow(2, 14, 28, 19);
- MenuPrint(str, 3, 15);
+ Menu_DrawStdWindowFrame(2, 14, 28, 19);
+ Menu_PrintText(str, 3, 15);
}
void sub_8071F60(u8 a1, u8 a2, u8 a3)
@@ -187,50 +189,50 @@ void sub_8071F60(u8 a1, u8 a2, u8 a3)
u16 unref_sub_8071F98(u8 x, u8 y)
{
- return GetWindowTilemapEntry(gMenuWindowPtr, x, y);
+ return Text_GetWindowTilemapEntry(gMenuWindowPtr, x, y);
}
void unref_sub_8071FBC(u16 a1, u8 a2, u8 a3, u8 a4, u8 a5)
{
- DrawWindowRect(gMenuWindowPtr, a1, a2, a3, a4, a5);
+ Text_FillWindowBorder(gMenuWindowPtr, a1, a2, a3, a4, a5);
}
-void MenuDisplayMessageBox(void)
+void Menu_DisplayDialogueFrame(void)
{
- DisplayMessageBox(gMenuWindowPtr);
+ TextWindow_DisplayDialogueFrame(gMenuWindowPtr);
}
void MenuPrintMessage(const u8 *str, u8 left, u8 top)
{
- sub_8002EB0(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
+ Text_InitWindow8002EB0(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
}
void MenuPrintMessageDefaultCoords(const u8 *str)
{
- sub_8002EB0(gMenuWindowPtr, str, gMenuTextTileOffset, 2, 15);
+ Text_InitWindow8002EB0(gMenuWindowPtr, str, gMenuTextTileOffset, 2, 15);
}
-void MenuSetText(const u8 *str)
+void Menu_SetText(const u8 *str)
{
- sub_8002E90(gMenuWindowPtr, str);
+ Text_SetWindowText(gMenuWindowPtr, str);
}
-u8 MenuUpdateWindowText(void)
+u8 Menu_UpdateWindowText(void)
{
- return sub_80035AC(gMenuWindowPtr);
+ return Text_UpdateWindow(gMenuWindowPtr);
}
u8 unref_sub_8072098(void)
{
- return sub_8003418(gMenuWindowPtr);
+ return Text_PrintWindowSimple(gMenuWindowPtr);
}
-void sub_80720B0(void)
+void Menu_ClearWindowText(void)
{
- ClearWindowTextLines(gMenuWindowPtr);
+ Text_ClearWindow(gMenuWindowPtr);
}
-u8 MoveMenuCursor(s8 delta)
+u8 Menu_MoveCursor(s8 delta)
{
s32 newPos = gMenu.cursorPos + delta;
@@ -245,7 +247,7 @@ u8 MoveMenuCursor(s8 delta)
return gMenu.cursorPos;
}
-u8 MoveMenuCursorNoWrap(s8 delta)
+u8 Menu_MoveCursorNoWrap(s8 delta)
{
s32 newPos = gMenu.cursorPos + delta;
@@ -260,45 +262,45 @@ u8 MoveMenuCursorNoWrap(s8 delta)
return gMenu.cursorPos;
}
-u8 GetMenuCursorPos(void)
+u8 Menu_GetCursorPos(void)
{
return gMenu.cursorPos;
}
-s8 ProcessMenuInput(void)
+s8 Menu_ProcessInput(void)
{
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
if (gMenu.menu_field_7)
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
return gMenu.cursorPos;
}
if (gMain.newKeys & B_BUTTON)
{
if (gMenu.menu_field_7)
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
return -1;
}
if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
return -2;
}
else if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
return -2;
}
return -2;
}
-s8 ProcessMenuInputNoWrap(void)
+s8 Menu_ProcessInputNoWrap(void)
{
u8 cursorPos = gMenu.cursorPos;
@@ -306,31 +308,31 @@ s8 ProcessMenuInputNoWrap(void)
{
PlaySE(SE_SELECT);
if (gMenu.menu_field_7)
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
return gMenu.cursorPos;
}
if (gMain.newKeys & B_BUTTON)
{
if (gMenu.menu_field_7)
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
return -1;
}
if (gMain.newKeys & DPAD_UP)
{
- if (cursorPos != MoveMenuCursorNoWrap(-1))
+ if (cursorPos != Menu_MoveCursorNoWrap(-1))
PlaySE(SE_SELECT);
return -2;
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (cursorPos != MoveMenuCursorNoWrap(1))
+ if (cursorPos != Menu_MoveCursorNoWrap(1))
PlaySE(SE_SELECT);
return -2;
}
- MoveMenuCursorNoWrap(0);
+ Menu_MoveCursorNoWrap(0);
return -2;
}
@@ -353,11 +355,12 @@ u8 MoveMenuCursor3(s8 delta)
return gMenu.cursorPos;
}
-u8 MoveMenuCursor4(s8 delta)
+static u8 MoveMenuCursorGridLayout(s8 delta)
{
+ // Don't move cursor if it is clamped
if (gMenu.cursorPos + delta <= gMenu.maxCursorPos)
{
- if (sub_80723D4() == TRUE)
+ if (IsGridCursorMovementClamped() == TRUE)
return gMenu.cursorPos;
}
else
@@ -379,22 +382,35 @@ u8 MoveMenuCursor4(s8 delta)
return gMenu.cursorPos;
}
-static bool8 sub_80723D4(void)
+// Returns TRUE if the cursor is on an edge and cannot move in the pressed direction
+static bool8 IsGridCursorMovementClamped(void)
{
- if ((gMain.newKeys & DPAD_UP) && gMenu.cursorPos < gMenu.width)
- return TRUE;
-
- if ((gMain.newKeys & DPAD_DOWN) && gMenu.cursorPos >= (gMenu.maxCursorPos + 1) - gMenu.width)
- return TRUE;
-
- if ((gMain.newKeys & DPAD_LEFT)
- && ((gMenu.cursorPos - (gMenu.cursorPos % gMenu.width)) % gMenu.width == 1 // always false
- || gMenu.cursorPos == 0
- || gMenu.cursorPos % gMenu.width == 0))
- return TRUE;
-
- if ((gMain.newKeys & DPAD_RIGHT) && gMenu.cursorPos % gMenu.width == gMenu.width - 1)
- return TRUE;
+ if (gMain.newKeys & DPAD_UP)
+ {
+ // is cursor on first row?
+ if (gMenu.cursorPos < gMenu.width)
+ return TRUE;
+ }
+ if (gMain.newKeys & DPAD_DOWN)
+ {
+ // is cursor on last row?
+ if (gMenu.cursorPos >= gMenu.maxCursorPos + 1 - gMenu.width)
+ return TRUE;
+ }
+ if (gMain.newKeys & DPAD_LEFT)
+ {
+ // is cursor on first column?
+ if ((gMenu.cursorPos - gMenu.cursorPos % gMenu.width) % gMenu.width == 1 // always false
+ || gMenu.cursorPos == 0 // redundant
+ || gMenu.cursorPos % gMenu.width == 0)
+ return TRUE;
+ }
+ if (gMain.newKeys & DPAD_RIGHT)
+ {
+ // is cursor on last column?
+ if (gMenu.cursorPos % gMenu.width == gMenu.width - 1)
+ return TRUE;
+ }
return FALSE;
}
@@ -465,7 +481,7 @@ static u8 sub_80724F4(u8 left, u8 top, u8 menuItemCount, const struct MenuAction
totalWidth = (gMenu.columnXCoords[columnCount] + 1);
right = left + totalWidth;
- MenuDrawTextWindow(left, top, right, bottom);
+ Menu_DrawStdWindowFrame(left, top, right, bottom);
}
return maxWidth;
@@ -501,7 +517,7 @@ static void sub_8072620(u8 left, u8 top, u8 menuItemCount, const struct MenuActi
u8 row = 0;
u8 j;
for (j = 0; i + j < menuItemCount; j += columnCount, row++)
- MenuPrint(menuItems[i + j].text, left + gMenu.columnXCoords[i % columnCount], top + 2 * row);
+ Menu_PrintText(menuItems[i + j].text, left + gMenu.columnXCoords[i % columnCount], top + 2 * row);
}
}
@@ -513,93 +529,95 @@ void sub_807274C(u8 left, u8 top, u8 menuItemCount, u8 a4, const struct MenuActi
sub_8072620(left + 1, top + 1, menuItemCount, menuItems, columnCount);
}
-s8 sub_80727CC(void)
+s8 Menu_ProcessInputGridLayout(void)
{
if (gMain.newKeys & A_BUTTON)
{
if (gMenu.menu_field_7)
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
- return GetMenuCursorPos();
+ return Menu_GetCursorPos();
}
if (gMain.newKeys & B_BUTTON)
{
if (gMenu.menu_field_7)
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
return -1;
}
if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor4(-gMenu.width);
+ // Move up one whole row
+ MoveMenuCursorGridLayout(-gMenu.width);
return -2;
}
else if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor4(gMenu.width);
+ // Move down one whole column
+ MoveMenuCursorGridLayout(gMenu.width);
return -2;
}
else if (gMain.newKeys & DPAD_LEFT)
{
PlaySE(SE_SELECT);
- MoveMenuCursor4(-1);
+ MoveMenuCursorGridLayout(-1);
return -2;
}
else if (gMain.newKeys & DPAD_RIGHT)
{
PlaySE(SE_SELECT);
- MoveMenuCursor4(1);
+ MoveMenuCursorGridLayout(1);
return -2;
}
return -2;
}
-u8 sub_807288C(u8 column)
+u8 Menu_GetColumnXCoord(u8 column)
{
return gMenu.columnXCoords[column];
}
-void PrintMenuItems(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[])
+void Menu_PrintItems(u8 left, u8 top, u8 menuItemCount, const struct MenuAction menuItems[])
{
u8 i;
for (i = 0; i < menuItemCount; i++)
- MenuPrint(menuItems[i].text, left, top + 2 * i);
+ Menu_PrintText(menuItems[i].text, left, top + 2 * i);
}
-void PrintMenuItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction2 menuItems[], const u8 *order)
+void Menu_PrintItemsReordered(u8 left, u8 top, u8 menuItemCount, const struct MenuAction2 menuItems[], const u8 *order)
{
u8 i;
for (i = 0; i < menuItemCount; i++)
- MenuPrint(menuItems[order[i]].text, left, top + 2 * i);
+ Menu_PrintText(menuItems[order[i]].text, left, top + 2 * i);
}
void InitYesNoMenu(u8 left, u8 top, u8 a3)
{
- PrintMenuItems(left + 1, top + 1, 2, gMenuYesNoItems);
+ Menu_PrintItems(left + 1, top + 1, 2, gMenuYesNoItems);
InitMenu(0, left + 1, top + 1, 2, 0, a3);
}
void DisplayYesNoMenu(u8 left, u8 top, u32 a3)
{
- MenuDrawTextWindow(left, top, left + 6, top + 5);
+ Menu_DrawStdWindowFrame(left, top, left + 6, top + 5);
InitYesNoMenu(left, top, 5);
gMenu.menu_field_7 = a3 ? -1 : 0;
}
-s8 ProcessMenuInputNoWrap_(void)
+s8 Menu_ProcessInputNoWrap_(void)
{
- return ProcessMenuInputNoWrap();
+ return Menu_ProcessInputNoWrap();
}
-u8 MenuPrint_PixelCoords(const u8 *text, u8 left, u16 top, u8 a4)
+u8 Menu_PrintTextPixelCoords(const u8 *text, u8 left, u16 top, u8 a4)
{
- return sub_8004D04(gMenuWindowPtr, text, gMenuTextTileOffset, left, top, a4);
+ return Text_InitWindow8004D04(gMenuWindowPtr, text, gMenuTextTileOffset, left, top, a4);
}
u8 sub_8072A18(const u8 *text, u8 left, u16 top, u8 width, u32 a5)
@@ -623,7 +641,7 @@ int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
height = (height + 7) / 8;
if (newlineCount < height)
- MenuFillWindowRectWithBlankTile(left, top + 2 * newlineCount, left + width - 1, height + top - 1);
+ Menu_BlankWindowRect(left, top + 2 * newlineCount, left + width - 1, height + top - 1);
}
#elif GERMAN
__attribute__((naked))
@@ -700,7 +718,7 @@ _08072B0C:\n\
lsls r3, 24\n\
lsrs r3, 24\n\
adds r0, r5, 0\n\
- bl MenuFillWindowRectWithBlankTile\n\
+ bl Menu_BlankWindowRect\n\
_08072B3E:\n\
add sp, 0x10\n\
pop {r4-r7}\n\
@@ -712,7 +730,7 @@ _08072B3E:\n\
void MenuPrint_RightAligned(const u8 *str, u8 left, u8 top)
{
- sub_8004D38(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
+ Text_InitWindow8004D38(gMenuWindowPtr, str, gMenuTextTileOffset, left, top);
}
void sub_8072B80(const u8 *a1, u8 a2, u8 a3, const u8 *a4)
@@ -720,12 +738,12 @@ void sub_8072B80(const u8 *a1, u8 a2, u8 a3, const u8 *a4)
u8 buffer[64];
u8 width = GetStringWidth(gMenuWindowPtr, a4);
AlignString(gMenuWindowPtr, buffer, a1, width, 1);
- sub_8003460(gMenuWindowPtr, buffer, gMenuTextTileOffset, a2, a3);
+ Text_InitWindowAndPrintText(gMenuWindowPtr, buffer, gMenuTextTileOffset, a2, a3);
}
void sub_8072BD8(const u8 *a1, u8 a2, u8 a3, u16 a4)
{
- sub_8004DB0(gMenuWindowPtr, a1, gMenuTextTileOffset, a2, a3, a4);
+ Text_InitWindow8004DB0(gMenuWindowPtr, a1, gMenuTextTileOffset, a2, a3, a4);
}
u8 *sub_8072C14(u8 *a1, s32 a2, u8 a3, u8 a4)
@@ -748,19 +766,19 @@ u8 sub_8072CA4(const u8 *str)
return GetStringWidth(gMenuWindowPtr, str);
}
-u8 sub_8072CBC()
+u8 Menu_GetTextWindowPaletteNum(void)
{
- return sub_8004E24(gMenuWindowPtr);
+ return Text_GetWindowPaletteNum(gMenuWindowPtr);
}
-void sub_8072CD4(u8 *a1, u8 *a2, u8 *a3)
+void Menu_GetTextColors(u8 *a1, u8 *a2, u8 *a3)
{
- sub_8004E28(gMenuWindowPtr, a1, a2, a3);
+ Text_GetTextColors(gMenuWindowPtr, a1, a2, a3);
}
-u32 MenuUpdateWindowText_OverrideLineLength(u8 lineLength)
+u32 Menu_UpdateWindowTextOverrideLineLength(u8 lineLength)
{
- return sub_80037C8(gMenuWindowPtr, lineLength);
+ return Text_UpdateWindowOverrideLineLength(gMenuWindowPtr, lineLength);
}
struct Window *unref_sub_8072D0C(void)
@@ -770,7 +788,7 @@ struct Window *unref_sub_8072D0C(void)
static void sub_8072D18(u8 a1, u8 a2)
{
- sub_814A5C0(a1, 0xFFFF, 12, 11679, 8 * a2);
+ MenuCursor_Create814A5C0(a1, 0xFFFF, 12, 11679, 8 * a2);
}
u8 InitMenu(u8 cursorSubpriority, u8 left, u8 top, u8 numChoices, u8 cursorPos, u8 cursorWidth)
@@ -792,14 +810,14 @@ u8 InitMenu(u8 cursorSubpriority, u8 left, u8 top, u8 numChoices, u8 cursorPos,
pos = 0;
gMenu.cursorPos = pos;
- MoveMenuCursor(0);
+ Menu_MoveCursor(0);
return pos;
}
-void RedrawMenuCursor(u8 a1, u8 a2)
+static void RedrawMenuCursor(u8 x, u8 y)
{
- sub_814A880((a1 + 1) * 8, 8 * a2);
+ MenuCursor_SetPos814A880((x + 1) * 8, 8 * y);
}
void unref_sub_8072DC0()
@@ -817,7 +835,7 @@ void sub_8072DDC(u8 a1)
sub_8072DCC(8 * a1);
}
-void HandleDestroyMenuCursors(void)
+void Menu_DestroyCursor(void)
{
DestroyMenuCursor();
}
diff --git a/src/engine/menu_cursor.c b/src/engine/menu_cursor.c
index 960d3cc87..35116d40b 100644
--- a/src/engine/menu_cursor.c
+++ b/src/engine/menu_cursor.c
@@ -3,13 +3,13 @@
#include "palette.h"
#include "sprite.h"
-EWRAM_DATA u16 gUnknown_0203A360[0x10] = {};
-EWRAM_DATA struct Subsprite gMenuCursorSubsprites[10] = {0};
-EWRAM_DATA u8 gUnknown_0203A3D0 = 0;
-EWRAM_DATA u8 gUnknown_0203A3D1 = 0;
-EWRAM_DATA u8 gUnknown_0203A3D2 = 0;
-EWRAM_DATA u8 gUnknown_0203A3D3 = 0;
-EWRAM_DATA u8 gUnknown_0203A3D4 = 0;
+EWRAM_DATA static u16 gUnknown_0203A360[0x10] = {};
+EWRAM_DATA static struct Subsprite gMenuCursorSubsprites[10] = {0};
+EWRAM_DATA static u8 gUnknown_0203A3D0 = 0;
+EWRAM_DATA static u8 gUnknown_0203A3D1 = 0;
+EWRAM_DATA static u8 gUnknown_0203A3D2 = 0;
+EWRAM_DATA static u8 gUnknown_0203A3D3 = 0;
+EWRAM_DATA static u8 gUnknown_0203A3D4 = 0;
#if ENGLISH
#include "../src/data/menu_cursor_en.h"
@@ -26,7 +26,7 @@ void sub_814A590(void)
gUnknown_0203A3D4 = 0;
}
-u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
+u8 MenuCursor_Create814A5C0(u8 subpriority, u16 paletteTag, u8 a3, u16 a4, u8 a5)
{
int v9;
struct Sprite *v10;
@@ -35,34 +35,34 @@ u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
DestroyMenuCursor();
v9 = 1;
- if (a2 == 0xFFFF)
+ if (paletteTag == 0xFFFF)
{
gUnknown_0203A360[a3 & 0xF] = a4;
if (LoadSpritePalette(&gUnknown_0842F240) != 0xFF)
{
- a2 = 0xFFF0;
+ paletteTag = 0xFFF0;
v9 = 0;
}
}
LoadSpriteSheetDeferred(&gUnknown_0842F140[a3 & 0xF]);
- gUnknown_0203A3D0 = CreateSprite(&gSpriteTemplate_842F250[v9], 0, 0xA0, a1);
- gUnknown_0203A3D1 = CreateSprite(&gSpriteTemplate_842F250[2], 0, 0xA0, a1);
+ gUnknown_0203A3D0 = CreateSprite(&gSpriteTemplate_842F250[v9], 0, 160, subpriority);
+ gUnknown_0203A3D1 = CreateSprite(&gSpriteTemplate_842F250[2], 0, 160, subpriority);
if (gUnknown_0203A3D0 != 0x40)
{
v10 = &gSprites[gUnknown_0203A3D0];
- if (a2 == 0xFFFF)
+ if (paletteTag == 0xFFFF)
v10->oam.paletteNum = 0;
else
- v10->oam.paletteNum = IndexOfSpritePaletteTag(a2);
+ v10->oam.paletteNum = IndexOfSpritePaletteTag(paletteTag);
}
if (gUnknown_0203A3D1 != 0x40)
{
v10 = &gSprites[gUnknown_0203A3D1];
- if (a2 == 0xFFFF)
+ if (paletteTag == 0xFFFF)
v10->oam.paletteNum = 0;
else
- v10->oam.paletteNum = IndexOfSpritePaletteTag(a2);
+ v10->oam.paletteNum = IndexOfSpritePaletteTag(paletteTag);
if (!(REG_DISPCNT & (DISPCNT_WIN0_ON | DISPCNT_WIN1_ON)))
*(u8 *)(REG_ADDR_WINOUT) |= 0x1F;
@@ -75,12 +75,13 @@ u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
return gUnknown_0203A3D0;
}
-u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4)
+// unused
+u8 sub_814A758(u8 subpriority, u8 a2, u8 a3, u8 a4)
{
u8 result;
struct Sprite *spr;
- result = sub_814A5C0(a1, 0, a3, 0, a4);
+ result = MenuCursor_Create814A5C0(subpriority, 0, a3, 0, a4);
if (result != 0x40)
{
spr = &gSprites[gUnknown_0203A3D0];
@@ -128,7 +129,7 @@ void DestroyMenuCursor(void)
return;
}
-void sub_814A880(u8 a1, u8 a2)
+void MenuCursor_SetPos814A880(u8 a1, u8 a2)
{
struct Sprite *spr;
@@ -685,49 +686,48 @@ void unref_sub_814ABE4(int a1)
return;
}
-u8 CreateBlendedOutlineCursor(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
+u8 CreateBlendedOutlineCursor(u8 subpriority, u16 paletteTag, u8 a3, u16 a4, u8 a5)
{
int v8;
struct Sprite *spr;
- u8 var1 = gUnknown_0203A3D2;
- if (var1 != 0x40)
- sub_814AD44();
+ if (gUnknown_0203A3D2 != 0x40)
+ MenuCursor_Destroy814AD44();
v8 = 1;
- if (a2 == 0xFFFF)
+ if (paletteTag == 0xFFFF)
{
gUnknown_0203A360[a3 & 0xF] = a4;
if (LoadSpritePalette(&gUnknown_0842F248) != 0xFF )
{
- a2 = 0xFFF1;
+ paletteTag = 0xFFF1;
v8 = 0;
}
}
LoadSpriteSheetDeferred(&gUnknown_0842F1C0[a3 & 0xF]);
#if ENGLISH
- gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 160, a1);
+ gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 160, subpriority);
#elif GERMAN
- gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 161, a1);
+ gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 161, subpriority);
#endif
if (gUnknown_0203A3D2 != 0x40)
{
spr = &gSprites[gUnknown_0203A3D2];
- if (a2 == 0xFFFF)
+ if (paletteTag == 0xFFFF)
spr->oam.paletteNum = 0;
else
- spr->oam.paletteNum = IndexOfSpritePaletteTag(a2);
+ spr->oam.paletteNum = IndexOfSpritePaletteTag(paletteTag);
}
sub_814ADF4(a5);
return gUnknown_0203A3D2;
}
-void sub_814AD44(void)
+void MenuCursor_Destroy814AD44(void)
{
if (gUnknown_0203A3D2 != 0x40)
{
@@ -738,7 +738,7 @@ void sub_814AD44(void)
return;
}
-void sub_814AD7C(u8 a1, u8 a2)
+void MenuCursor_SetPos814AD7C(u8 a1, u8 a2)
{
struct Sprite *spr;
if (gUnknown_0203A3D2 != 0x40)
diff --git a/src/engine/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index b9c3d5ad8..bc14c760d 100644
--- a/src/engine/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
@@ -45,9 +45,9 @@ void CB2_InitMysteryEventMenu(void)
FreeAllSpritePalettes();
ResetTasks();
SetVBlankCallback(VBlankCB);
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Menu_EraseScreen();
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON;
REG_BLDCNT = 0;
CreateTask(Task_DestroySelf, 0);
@@ -86,7 +86,7 @@ static void CB2_MysteryEventMenu(void)
switch (gMain.state)
{
case 0:
- MenuDrawTextWindow(0, 14, 29, 19);
+ Menu_DrawStdWindowFrame(0, 14, 29, 19);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gMain.state++;
break;
@@ -97,7 +97,7 @@ static void CB2_MysteryEventMenu(void)
gMain.state++;
break;
case 2:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
gMain.state++;
gLinkType = 21761;
@@ -119,7 +119,7 @@ static void CB2_MysteryEventMenu(void)
}
break;
case 4:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
gMain.state++;
break;
#ifdef NONMATCHING
@@ -135,8 +135,8 @@ static void CB2_MysteryEventMenu(void)
{
PlaySE(SE_SELECT);
sub_8007F4C();
- MenuDrawTextWindow(6, 5, 23, 8);
- MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ Menu_DrawStdWindowFrame(6, 5, 23, 8);
+ Menu_PrintText(gSystemText_LoadingEvent, 7, 6);
gMain.state++;
}
else if (gMain.newKeys & B_BUTTON)
@@ -155,7 +155,7 @@ static void CB2_MysteryEventMenu(void)
if (GetLinkPlayerDataExchangeStatusTimed() == 3)
{
sub_800832C();
- MenuZeroFillWindowRect(6, 5, 23, 8);
+ Menu_EraseWindowRect(6, 5, 23, 8);
GetEventLoadMessage(gStringVar4, 1);
MenuPrintMessageDefaultCoords(gStringVar4);
gMain.state = 13;
@@ -170,7 +170,7 @@ static void CB2_MysteryEventMenu(void)
else
{
CloseLink();
- MenuZeroFillWindowRect(6, 5, 23, 8);
+ Menu_EraseWindowRect(6, 5, 23, 8);
GetEventLoadMessage(gStringVar4, 1);
MenuPrintMessageDefaultCoords(gStringVar4);
gMain.state = 13;
@@ -195,8 +195,8 @@ static void CB2_MysteryEventMenu(void)
{
PlaySE(SE_SELECT);
sub_8007F4C();
- MenuDrawTextWindow(6, 5, 23, 8);
- MenuPrint(gSystemText_LoadingEvent, 7, 6);
+ Menu_DrawStdWindowFrame(6, 5, 23, 8);
+ Menu_PrintText(gSystemText_LoadingEvent, 7, 6);
gMain.state++;
}
else if (gMain.newKeys & B_BUTTON)
@@ -219,7 +219,7 @@ static void CB2_MysteryEventMenu(void)
if (GetLinkPlayerDataExchangeStatusTimed() == 3)
{
sub_800832C();
- MenuZeroFillWindowRect(6, 5, 23, 8);
+ Menu_EraseWindowRect(6, 5, 23, 8);
GetEventLoadMessage(gStringVar4, 1);
MenuPrintMessageDefaultCoords(gStringVar4);
ptr = (u8 *)&gMain;
@@ -245,7 +245,7 @@ static void CB2_MysteryEventMenu(void)
else
{
CloseLink();
- MenuZeroFillWindowRect(6, 5, 23, 8);
+ Menu_EraseWindowRect(6, 5, 23, 8);
label:
GetEventLoadMessage(gStringVar4, 1);
MenuPrintMessageDefaultCoords(gStringVar4);
@@ -266,7 +266,7 @@ static void CB2_MysteryEventMenu(void)
break;
#endif
case 7:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
gMain.state++;
break;
case 8:
@@ -289,7 +289,7 @@ static void CB2_MysteryEventMenu(void)
unkVal = RunMysteryEventScript(gSharedMem);
CpuFill32(0, gSharedMem, 0x7D4);
if (!GetEventLoadMessage(gStringVar4, unkVal))
- TrySavingData(NORMAL_SAVE);
+ Save_WriteData(SAVE_NORMAL);
gMain.state++;
break;
case 12:
@@ -297,8 +297,8 @@ static void CB2_MysteryEventMenu(void)
gMain.state++;
break;
case 13:
- MenuZeroFillWindowRect(6, 5, 23, 8);
- if (MenuUpdateWindowText())
+ Menu_EraseWindowRect(6, 5, 23, 8);
+ if (Menu_UpdateWindowText())
{
gMain.state++;
gUnknown_02039338 = 0;
@@ -326,7 +326,7 @@ static void CB2_MysteryEventMenu(void)
if (!IsLinkMaster())
{
CloseLink();
- MenuZeroFillWindowRect(6, 5, 23, 8);
+ Menu_EraseWindowRect(6, 5, 23, 8);
GetEventLoadMessage(gStringVar4, 1);
MenuPrintMessageDefaultCoords(gStringVar4);
gMain.state = 13;
@@ -338,3 +338,463 @@ static void CB2_MysteryEventMenu(void)
BuildOamBuffer();
UpdatePaletteFade();
}
+
+#if DEBUG
+
+void debug_sub_815D1D8();
+
+__attribute__((naked))
+void debug_sub_815D04C()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " ldr r1, ._125 @ gTasks\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r4, r0, r1\n"
+ " mov r1, #0x8\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0\n"
+ " bne ._121 @cond_branch\n"
+ " mov r0, #0x4\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xd\n"
+ " mov r3, #0x7\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r1, ._125 + 4 @ gUnknown_Debug_842E2D0\n"
+ " mov r2, #0xa\n"
+ " ldsh r0, [r4, r2]\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov r1, #0x5\n"
+ " mov r2, #0x5\n"
+ " bl Menu_PrintText\n"
+ " ldrh r0, [r4, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r4, #0x8]\n"
+ "._121:\n"
+ " ldr r2, ._125 + 8 @ gMain\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " add r6, r2, #0\n"
+ " cmp r0, #0\n"
+ " beq ._122 @cond_branch\n"
+ " ldrh r1, [r4, #0xa]\n"
+ " mov r2, #0xa\n"
+ " ldsh r0, [r4, r2]\n"
+ " cmp r0, #0\n"
+ " bne ._123 @cond_branch\n"
+ " ldr r0, ._125 + 12 @ gUnknown_Debug_842E350\n"
+ " ldrb r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " b ._124\n"
+ "._126:\n"
+ " .align 2, 0\n"
+ "._125:\n"
+ " .word gTasks\n"
+ " .word gUnknown_Debug_842E2D0\n"
+ " .word gMain\n"
+ " .word gUnknown_Debug_842E350\n"
+ "._123:\n"
+ " sub r0, r1, #1\n"
+ "._124:\n"
+ " strh r0, [r4, #0xa]\n"
+ " ldr r0, ._130 @ gTasks\n"
+ " lsl r1, r5, #0x2\n"
+ " add r1, r1, r5\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r0\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r1, #0x8]\n"
+ "._122:\n"
+ " ldrh r1, [r6, #0x2e]\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._127 @cond_branch\n"
+ " ldr r1, ._130 @ gTasks\n"
+ " lsl r2, r5, #0x2\n"
+ " add r0, r2, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r4, r0, r1\n"
+ " mov r0, #0xa\n"
+ " ldsh r3, [r4, r0]\n"
+ " ldr r0, ._130 + 4 @ gUnknown_Debug_842E350\n"
+ " ldrb r0, [r0]\n"
+ " sub r0, r0, #0x1\n"
+ " cmp r3, r0\n"
+ " bne ._128 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._129\n"
+ "._131:\n"
+ " .align 2, 0\n"
+ "._130:\n"
+ " .word gTasks\n"
+ " .word gUnknown_Debug_842E350\n"
+ "._128:\n"
+ " ldrh r0, [r4, #0xa]\n"
+ " add r0, r0, #0x1\n"
+ "._129:\n"
+ " strh r0, [r4, #0xa]\n"
+ " add r0, r2, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x0\n"
+ " strh r1, [r0, #0x8]\n"
+ "._127:\n"
+ " ldrh r1, [r6, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._132 @cond_branch\n"
+ " ldr r1, ._133 @ gTasks\n"
+ " lsl r0, r5, #0x2\n"
+ " add r0, r0, r5\n"
+ " lsl r0, r0, #0x3\n"
+ " add r0, r0, r1\n"
+ " mov r2, #0xa\n"
+ " ldsh r1, [r0, r2]\n"
+ " lsl r1, r1, #0x3\n"
+ " ldr r0, ._133 + 4 @ gUnknown_Debug_842E2D0\n"
+ " add r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r0, ._133 + 8 @ \n"
+ " ldr r1, [r1]\n"
+ " bl _call_via_r1\n"
+ " ldr r0, ._133 + 12 @ \n"
+ " add r1, r6, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " add r0, r5, #0\n"
+ " bl DestroyTask\n"
+ "._132:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._134:\n"
+ " .align 2, 0\n"
+ "._133:\n"
+ " .word gTasks\n"
+ " .word gUnknown_Debug_842E2D0\n"
+ " .word +0x2004000\n"
+ " .word 0x43c\n"
+ "\n"
+ );
+}
+
+void debug_sub_815D15C(void)
+{
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ SetVBlankCallback(VBlankCB);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Menu_EraseScreen();
+ REG_DISPCNT = DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_MODE_0;
+ REG_BLDCNT = 0;
+
+ CreateTask(Task_DestroySelf, 0);
+ StopMapMusic();
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ FillPalette(0, 0, 2);
+ SetMainCallback2(debug_sub_815D1D8);
+}
+
+__attribute__((naked))
+void debug_sub_815D1D8()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r1, ._139 @ gMain\n"
+ " ldr r2, ._139 + 4 @ 0x43c\n"
+ " add r0, r1, r2\n"
+ " ldrb r0, [r0]\n"
+ " add r4, r1, #0\n"
+ " cmp r0, #0xb\n"
+ " bls ._137 @cond_branch\n"
+ " b ._196\n"
+ "._137:\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._139 + 8 @ \n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._140:\n"
+ " .align 2, 0\n"
+ "._139:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ " .word ._141\n"
+ "._141:\n"
+ " .word ._142\n"
+ " .word ._143\n"
+ " .word ._144\n"
+ " .word ._145\n"
+ " .word ._146\n"
+ " .word ._196\n"
+ " .word ._148\n"
+ " .word ._149\n"
+ " .word ._150\n"
+ " .word ._151\n"
+ " .word ._152\n"
+ " .word ._153\n"
+ "._142:\n"
+ " mov r0, #0x3\n"
+ " mov r1, #0xe\n"
+ " mov r2, #0x1b\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x0\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x10\n"
+ " mov r3, #0x0\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r1, ._155 @ gMain\n"
+ " ldr r0, ._155 + 4 @ 0x43c\n"
+ " add r1, r1, r0\n"
+ " b ._189\n"
+ "._156:\n"
+ " .align 2, 0\n"
+ "._155:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._143:\n"
+ " ldr r0, ._161 @ gPaletteFade\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._157 @cond_branch\n"
+ " b ._196\n"
+ "._157:\n"
+ " ldrh r1, [r4, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._159 @cond_branch\n"
+ " ldr r1, ._161 + 4 @ gUnknown_Debug_30030E0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ "._159:\n"
+ " ldr r0, ._161 + 8 @ Str_843DA70\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrintMessage\n"
+ " ldr r2, ._161 + 12 @ 0x43c\n"
+ " add r1, r4, r2\n"
+ " b ._189\n"
+ "._162:\n"
+ " .align 2, 0\n"
+ "._161:\n"
+ " .word gPaletteFade\n"
+ " .word gUnknown_Debug_30030E0\n"
+ " .word Str_843DA70\n"
+ " .word 0x43c\n"
+ "._144:\n"
+ " bl Menu_UpdateWindowText\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._163 @cond_branch\n"
+ " b ._196\n"
+ "._163:\n"
+ " ldr r1, ._166 @ gMain\n"
+ " ldr r0, ._166 + 4 @ 0x43c\n"
+ " add r1, r1, r0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r1, ._166 + 8 @ gLinkType\n"
+ " ldr r2, ._166 + 12 @ 0x5501\n"
+ " add r0, r2, #0\n"
+ " strh r0, [r1]\n"
+ " bl OpenLink\n"
+ " b ._196\n"
+ "._167:\n"
+ " .align 2, 0\n"
+ "._166:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ " .word gLinkType\n"
+ " .word 0x5501\n"
+ "._145:\n"
+ " ldr r0, ._171 @ gReceivedRemoteLinkPlayers\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._168 @cond_branch\n"
+ " b ._196\n"
+ "._168:\n"
+ " ldr r1, ._171 + 4 @ 0x43c\n"
+ " add r0, r4, r1\n"
+ " ldrb r1, [r0]\n"
+ " add r1, r1, #0x1\n"
+ " strb r1, [r0]\n"
+ " ldr r0, ._171 + 8 @ Str_843DA84\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrintMessage\n"
+ " b ._196\n"
+ "._172:\n"
+ " .align 2, 0\n"
+ "._171:\n"
+ " .word gReceivedRemoteLinkPlayers\n"
+ " .word 0x43c\n"
+ " .word Str_843DA84\n"
+ "._146:\n"
+ " bl Menu_UpdateWindowText\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._173 @cond_branch\n"
+ " b ._196\n"
+ "._173:\n"
+ " ldr r0, ._176 @ debug_sub_815D04C\n"
+ " mov r1, #0xa\n"
+ " bl CreateTask\n"
+ " ldr r1, ._176 + 4 @ gMain\n"
+ " ldr r2, ._176 + 8 @ 0x43c\n"
+ " add r1, r1, r2\n"
+ " b ._189\n"
+ "._177:\n"
+ " .align 2, 0\n"
+ "._176:\n"
+ " .word debug_sub_815D04C+1\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._148:\n"
+ " ldr r0, ._179 @ Str_843DA98\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl MenuPrintMessage\n"
+ " ldr r1, ._179 + 4 @ 0x2004000\n"
+ " ldr r2, ._179 + 8 @ 0x2004\n"
+ " mov r0, #0x0\n"
+ " bl SendBlock\n"
+ " ldr r1, ._179 + 12 @ gMain\n"
+ " ldr r0, ._179 + 16 @ 0x43c\n"
+ " add r1, r1, r0\n"
+ " b ._189\n"
+ "._180:\n"
+ " .align 2, 0\n"
+ "._179:\n"
+ " .word Str_843DA98\n"
+ " .word 0x2004000\n"
+ " .word 0x2004\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._149:\n"
+ " bl Menu_UpdateWindowText\n"
+ " bl IsLinkTaskFinished\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._196 @cond_branch\n"
+ " ldr r1, ._183 @ gMain\n"
+ " ldr r2, ._183 + 4 @ 0x43c\n"
+ " add r1, r1, r2\n"
+ " b ._189\n"
+ "._184:\n"
+ " .align 2, 0\n"
+ "._183:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._150:\n"
+ " bl sub_800832C\n"
+ " ldr r1, ._186 @ gMain\n"
+ " ldr r0, ._186 + 4 @ 0x43c\n"
+ " add r1, r1, r0\n"
+ " b ._189\n"
+ "._187:\n"
+ " .align 2, 0\n"
+ "._186:\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._151:\n"
+ " ldr r0, ._190 @ gReceivedRemoteLinkPlayers\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._196 @cond_branch\n"
+ " mov r0, #0x4\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x1a\n"
+ " mov r3, #0x12\n"
+ " bl Menu_BlankWindowRect\n"
+ " ldr r0, ._190 + 4 @ Str_843DAA3\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, ._190 + 8 @ gMain\n"
+ " ldr r2, ._190 + 12 @ 0x43c\n"
+ " add r1, r1, r2\n"
+ " b ._189\n"
+ "._191:\n"
+ " .align 2, 0\n"
+ "._190:\n"
+ " .word gReceivedRemoteLinkPlayers\n"
+ " .word Str_843DAA3\n"
+ " .word gMain\n"
+ " .word 0x43c\n"
+ "._152:\n"
+ " ldrh r1, [r4, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._196 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " neg r0, r0\n"
+ " mov r1, #0x0\n"
+ " str r1, [sp]\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x10\n"
+ " bl BeginNormalPaletteFade\n"
+ " ldr r0, ._194 @ 0x43c\n"
+ " add r1, r4, r0\n"
+ "._189:\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b ._196\n"
+ "._195:\n"
+ " .align 2, 0\n"
+ "._194:\n"
+ " .word 0x43c\n"
+ "._153:\n"
+ " ldr r0, ._197 @ gPaletteFade\n"
+ " ldrb r1, [r0, #0x7]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._196 @cond_branch\n"
+ " ldr r0, ._197 + 4 @ CB2_InitTitleScreen\n"
+ " bl SetMainCallback2\n"
+ "._196:\n"
+ " bl RunTasks\n"
+ " bl AnimateSprites\n"
+ " bl BuildOamBuffer\n"
+ " bl UpdatePaletteFade\n"
+ " add sp, sp, #0x4\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._198:\n"
+ " .align 2, 0\n"
+ "._197:\n"
+ " .word gPaletteFade\n"
+ " .word CB2_InitTitleScreen+1\n"
+ "\n"
+ );
+}
+
+#endif
diff --git a/src/engine/name_string_util.c b/src/engine/name_string_util.c
index f1a935453..32e9358e1 100644
--- a/src/engine/name_string_util.c
+++ b/src/engine/name_string_util.c
@@ -7,7 +7,7 @@ void PadNameString(u8 *a1, u8 a2)
{
u8 i;
- StripExtCtrlCodes(a1);
+ Text_StripExtCtrlCodes(a1);
i = StringLength(a1);
if (a2 == 0xFC)
@@ -36,5 +36,5 @@ void SanitizeNameString(u8 *a1)
if (StringLength(a1) < 6)
ConvertInternationalString(a1, 1);
else
- StripExtCtrlCodes(a1);
+ Text_StripExtCtrlCodes(a1);
}
diff --git a/src/engine/naming_screen.c b/src/engine/naming_screen.c
index 440504d5a..ca77c5483 100644
--- a/src/engine/naming_screen.c
+++ b/src/engine/naming_screen.c
@@ -26,8 +26,6 @@
#define COLUMN_COUNT 10
#endif
-extern u16 gKeyRepeatStartDelay;
-
extern u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
const u8 gSpriteImage_83CE094[] = INCBIN_U8("graphics/naming_screen/pc_icon/0.4bpp");
@@ -258,20 +256,7 @@ static void NamingScreen_InitDisplayMode(void)
static void NamingScreen_ClearVram(void)
{
- u8 *addr = (void *)VRAM;
- u32 size = 0x10000;
-
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
+ DmaFill16Large(3, 0, (void *)VRAM, 0x10000, 0x1000);
}
static void NamingScreen_ClearOam(void)
@@ -325,8 +310,8 @@ static void NamingScreen_Init(void)
static void NamingScreen_SetUpWindow(void)
{
- SetUpWindowConfig(&gWindowConfig_81E6E88);
- InitMenuWindow(&gWindowConfig_81E6E88);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6E88);
+ InitMenuWindow(&gWindowTemplate_81E6E88);
}
static void NamingScreen_ResetObjects(void)
@@ -503,7 +488,7 @@ static bool8 MainState_6(struct Task *task)
static bool8 MainState_UpdateSentToPCMessage(struct Task *task)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
namingScreenDataPtr->state++;
return FALSE;
}
@@ -1610,8 +1595,8 @@ static void DisplaySentToPCMessage(void)
{
StringCopy(gStringVar1, namingScreenDataPtr->destBuffer);
StringExpandPlaceholders(gStringVar4, gOtherText_SentToPC);
- BasicInitMenuWindow(&gWindowConfig_81E6E88);
- MenuDisplayMessageBox();
+ BasicInitMenuWindow(&gWindowTemplate_81E6E88);
+ Menu_DisplayDialogueFrame();
MenuPrintMessageDefaultCoords(gStringVar4);
}
@@ -1629,16 +1614,8 @@ static void sub_80B7558(void)
static void sub_80B7568(void)
{
- const void *src;
- void *dst;
-
- src = gNamingScreenMenu_Gfx;
- dst = (void *)(VRAM + gMenuMessageBoxContentTileOffset * 32);
- DmaCopy16(3, src, dst, 0x800);
-
- src = gNamingScreenMenu_Gfx;
- dst = (void *)(VRAM + 0x8000 + gMenuMessageBoxContentTileOffset * 32);
- DmaCopy16(3, src, dst, 0x800);
+ DmaCopy16Defvars(3, gNamingScreenMenu_Gfx, (void *)(VRAM + gMenuMessageBoxContentTileOffset * 32), 0x800);
+ DmaCopy16Defvars(3, gNamingScreenMenu_Gfx, (void *)(VRAM + 0x8000 + gMenuMessageBoxContentTileOffset * 32), 0x800);
}
static void sub_80B75B0(void)
@@ -1757,19 +1734,19 @@ static void (*const gUnknown_083CE310[][2])(void) =
sub_80B7844,
};
-static const struct WindowConfig *const gUnknown_083CE328[][2][2] =
+static const struct WindowTemplate *const gUnknown_083CE328[][2][2] =
{
{
- {&gWindowConfig_81E6EDC, &gWindowConfig_81E6EF8},
- {&gWindowConfig_81E6EA4, &gWindowConfig_81E6EC0},
+ {&gWindowTemplate_81E6EDC, &gWindowTemplate_81E6EF8},
+ {&gWindowTemplate_81E6EA4, &gWindowTemplate_81E6EC0},
},
{
- {&gWindowConfig_81E6EA4, &gWindowConfig_81E6EC0},
- {&gWindowConfig_81E6F14, &gWindowConfig_81E6F30},
+ {&gWindowTemplate_81E6EA4, &gWindowTemplate_81E6EC0},
+ {&gWindowTemplate_81E6F14, &gWindowTemplate_81E6F30},
},
{
- {&gWindowConfig_81E6F14, &gWindowConfig_81E6F30},
- {&gWindowConfig_81E6EDC, &gWindowConfig_81E6EF8},
+ {&gWindowTemplate_81E6F14, &gWindowTemplate_81E6F30},
+ {&gWindowTemplate_81E6EDC, &gWindowTemplate_81E6EF8},
},
};
@@ -1838,15 +1815,15 @@ static void PrintKeyboardCharacters(u8 page) //print letters on page
s16 r5;
for (i = 0, r5 = 9; i < 4; i++, r5 += 2)
- MenuPrint(sKeyboardCharacters[page][i], 3, r5);
+ Menu_PrintText(sKeyboardCharacters[page][i], 3, r5);
}
static void sub_80B78A8(void)
{
- BasicInitMenuWindow(&gWindowConfig_81E6F4C);
+ BasicInitMenuWindow(&gWindowTemplate_81E6F4C);
gUnknown_083CE358[namingScreenDataPtr->templateNum]();
gUnknown_083CE368[namingScreenDataPtr->template->unk3]();
- MenuPrint(namingScreenDataPtr->template->title, 9, 2);
+ Menu_PrintText(namingScreenDataPtr->template->title, 9, 2);
}
static void nullsub_61(void)
@@ -1870,7 +1847,7 @@ static void sub_80B7924(void)
{
if ((s16)namingScreenDataPtr->unk40 == MON_FEMALE)
genderSymbol[0] = 0xB6; //female symbol
- MenuPrint(genderSymbol, 0x14, 4);
+ Menu_PrintText(genderSymbol, 0x14, 4);
}
}
@@ -1886,8 +1863,8 @@ static void sub_80B7960(void)
string[5] = 1;
string += 6;
StringCopy(string, namingScreenDataPtr->textBuffer);
- BasicInitMenuWindow(&gWindowConfig_81E6F4C);
- MenuPrint(gStringVar1, namingScreenDataPtr->unk2, 4);
+ BasicInitMenuWindow(&gWindowTemplate_81E6F4C);
+ Menu_PrintText(gStringVar1, namingScreenDataPtr->unk2, 4);
}
//--------------------------------------------------
diff --git a/src/engine/option_menu.c b/src/engine/option_menu.c
index dfc49b035..a2d32ffb6 100644
--- a/src/engine/option_menu.c
+++ b/src/engine/option_menu.c
@@ -3,26 +3,16 @@
#include "main.h"
#include "menu.h"
#include "palette.h"
+#include "scanline_effect.h"
#include "sprite.h"
#include "strings2.h"
#include "task.h"
extern void SetPokemonCryStereo(u32 val);
-extern void remove_some_task(void);
-
-//Task data
-enum {
- TD_MENUSELECTION,
- TD_TEXTSPEED,
- TD_BATTLESCENE,
- TD_BATTLESTYLE,
- TD_SOUND,
- TD_BUTTONMODE,
- TD_FRAMETYPE,
-};
-//Menu items
-enum {
+// Menu items
+enum
+{
MENUITEM_TEXTSPEED,
MENUITEM_BATTLESCENE,
MENUITEM_BATTLESTYLE,
@@ -32,6 +22,15 @@ enum {
MENUITEM_CANCEL,
};
+// Task data
+#define tMenuSelection data[0]
+#define tOptTextSpeed data[1]
+#define tOptBattleScene data[2]
+#define tOptBattleStyle data[3]
+#define tOptSound data[4]
+#define tOptButtonMode data[5]
+#define tOptFrameType data[6]
+
const u16 gUnknown_0839F5FC[] = INCBIN_U16("graphics/misc/option_menu_text.gbapal");
// note: this is only used in the Japanese release
const u8 gUnknown_0839F63C[] = INCBIN_U8("graphics/misc/option_menu_equals_sign.4bpp");
@@ -75,10 +74,6 @@ void CB2_InitOptionMenu(void)
{
default:
case 0:
- {
- u8 *addr;
- u32 size;
-
SetVBlankCallback(NULL);
REG_DISPCNT = 0;
REG_BG2CNT = 0;
@@ -90,37 +85,24 @@ void CB2_InitOptionMenu(void)
REG_BG1VOFS = 0;
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
- addr = (u8 *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
+ DmaFill16Large(3, 0, (u8 *)VRAM, 0x18000, 0x1000);
DmaClear32(3, OAM, OAM_SIZE);
DmaClear16(3, PLTT, PLTT_SIZE);
gMain.state++;
break;
- }
case 1:
ResetPaletteFade();
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
gMain.state++;
break;
case 2:
- SetUpWindowConfig(&gWindowConfig_81E71B4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E71B4);
gMain.state++;
break;
case 3:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E71B4);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E71B4);
gMain.state++;
break;
case 4:
@@ -165,37 +147,38 @@ void CB2_InitOptionMenu(void)
{
u8 taskId = CreateTask(Task_OptionMenuFadeIn, 0);
- gTasks[taskId].data[TD_MENUSELECTION] = 0;
- gTasks[taskId].data[TD_TEXTSPEED] = gSaveBlock2.optionsTextSpeed;
- gTasks[taskId].data[TD_BATTLESCENE] = gSaveBlock2.optionsBattleSceneOff;
- gTasks[taskId].data[TD_BATTLESTYLE] = gSaveBlock2.optionsBattleStyle;
- gTasks[taskId].data[TD_SOUND] = gSaveBlock2.optionsSound;
- gTasks[taskId].data[TD_BUTTONMODE] = gSaveBlock2.optionsButtonMode;
- gTasks[taskId].data[TD_FRAMETYPE] = gSaveBlock2.optionsWindowFrameType;
-
- MenuDrawTextWindow(2, 0, 27, 3);
- MenuDrawTextWindow(2, 4, 27, 19);
-
- MenuPrint(gSystemText_OptionMenu, 4, 1);
- MenuPrint(gSystemText_TextSpeed, 4, 5);
- MenuPrint(gSystemText_BattleScene, 4, 7);
- MenuPrint(gSystemText_BattleStyle, 4, 9);
- MenuPrint(gSystemText_Sound, 4, 11);
- MenuPrint(gSystemText_ButtonMode, 4, 13);
- MenuPrint(gSystemText_Frame, 4, 15);
- MenuPrint(gSystemText_Cancel, 4, 17);
-
- TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
- BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
- BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
- Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
- ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
- FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
+ gTasks[taskId].tMenuSelection = 0;
+ gTasks[taskId].tOptTextSpeed = gSaveBlock2.optionsTextSpeed;
+ gTasks[taskId].tOptBattleScene = gSaveBlock2.optionsBattleSceneOff;
+ gTasks[taskId].tOptBattleStyle = gSaveBlock2.optionsBattleStyle;
+ gTasks[taskId].tOptSound = gSaveBlock2.optionsSound;
+ gTasks[taskId].tOptButtonMode = gSaveBlock2.optionsButtonMode;
+ gTasks[taskId].tOptFrameType = gSaveBlock2.optionsWindowFrameType;
+
+ Menu_DrawStdWindowFrame(2, 0, 27, 3); // title box
+ Menu_DrawStdWindowFrame(2, 4, 27, 19); // options list box
+
+ Menu_PrintText(gSystemText_OptionMenu, 4, 1);
+
+ Menu_PrintText(gSystemText_TextSpeed, 4, 5);
+ Menu_PrintText(gSystemText_BattleScene, 4, 7);
+ Menu_PrintText(gSystemText_BattleStyle, 4, 9);
+ Menu_PrintText(gSystemText_Sound, 4, 11);
+ Menu_PrintText(gSystemText_ButtonMode, 4, 13);
+ Menu_PrintText(gSystemText_Frame, 4, 15);
+ Menu_PrintText(gSystemText_Cancel, 4, 17);
+
+ TextSpeed_DrawChoices(gTasks[taskId].tOptTextSpeed);
+ BattleScene_DrawChoices(gTasks[taskId].tOptBattleScene);
+ BattleStyle_DrawChoices(gTasks[taskId].tOptBattleStyle);
+ Sound_DrawChoices(gTasks[taskId].tOptSound);
+ ButtonMode_DrawChoices(gTasks[taskId].tOptButtonMode);
+ FrameType_DrawChoices(gTasks[taskId].tOptFrameType);
REG_WIN0H = WIN_RANGE(17, 223);
REG_WIN0V = WIN_RANGE(1, 31);
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ HighlightOptionMenuItem(gTasks[taskId].tMenuSelection);
gMain.state++;
break;
}
@@ -208,16 +191,14 @@ void CB2_InitOptionMenu(void)
static void Task_OptionMenuFadeIn(u8 taskId)
{
if (!gPaletteFade.active)
- {
gTasks[taskId].func = Task_OptionMenuProcessInput;
- }
}
static void Task_OptionMenuProcessInput(u8 taskId)
{
if (gMain.newKeys & A_BUTTON)
{
- if (gTasks[taskId].data[TD_MENUSELECTION] == MENUITEM_CANCEL)
+ if (gTasks[taskId].tMenuSelection == MENUITEM_CANCEL)
gTasks[taskId].func = Task_OptionMenuSave;
}
else if (gMain.newKeys & B_BUTTON)
@@ -226,47 +207,47 @@ static void Task_OptionMenuProcessInput(u8 taskId)
}
else if (gMain.newKeys & DPAD_UP)
{
- if (gTasks[taskId].data[TD_MENUSELECTION] > 0)
- gTasks[taskId].data[TD_MENUSELECTION]--;
+ if (gTasks[taskId].tMenuSelection > 0)
+ gTasks[taskId].tMenuSelection--;
else
- gTasks[taskId].data[TD_MENUSELECTION] = 6;
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ gTasks[taskId].tMenuSelection = 6;
+ HighlightOptionMenuItem(gTasks[taskId].tMenuSelection);
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (gTasks[taskId].data[TD_MENUSELECTION] <= 5)
- gTasks[taskId].data[TD_MENUSELECTION]++;
+ if (gTasks[taskId].tMenuSelection < 6)
+ gTasks[taskId].tMenuSelection++;
else
- gTasks[taskId].data[TD_MENUSELECTION] = 0;
- HighlightOptionMenuItem(gTasks[taskId].data[TD_MENUSELECTION]);
+ gTasks[taskId].tMenuSelection = 0;
+ HighlightOptionMenuItem(gTasks[taskId].tMenuSelection);
}
else
{
- switch (gTasks[taskId].data[TD_MENUSELECTION])
+ switch (gTasks[taskId].tMenuSelection)
{
case MENUITEM_TEXTSPEED:
- gTasks[taskId].data[TD_TEXTSPEED] = TextSpeed_ProcessInput(gTasks[taskId].data[TD_TEXTSPEED]);
- TextSpeed_DrawChoices(gTasks[taskId].data[TD_TEXTSPEED]);
+ gTasks[taskId].tOptTextSpeed = TextSpeed_ProcessInput(gTasks[taskId].tOptTextSpeed);
+ TextSpeed_DrawChoices(gTasks[taskId].tOptTextSpeed);
break;
case MENUITEM_BATTLESCENE:
- gTasks[taskId].data[TD_BATTLESCENE] = BattleScene_ProcessInput(gTasks[taskId].data[TD_BATTLESCENE]);
- BattleScene_DrawChoices(gTasks[taskId].data[TD_BATTLESCENE]);
+ gTasks[taskId].tOptBattleScene = BattleScene_ProcessInput(gTasks[taskId].tOptBattleScene);
+ BattleScene_DrawChoices(gTasks[taskId].tOptBattleScene);
break;
case MENUITEM_BATTLESTYLE:
- gTasks[taskId].data[TD_BATTLESTYLE] = BattleStyle_ProcessInput(gTasks[taskId].data[TD_BATTLESTYLE]);
- BattleStyle_DrawChoices(gTasks[taskId].data[TD_BATTLESTYLE]);
+ gTasks[taskId].tOptBattleStyle = BattleStyle_ProcessInput(gTasks[taskId].tOptBattleStyle);
+ BattleStyle_DrawChoices(gTasks[taskId].tOptBattleStyle);
break;
case MENUITEM_SOUND:
- gTasks[taskId].data[TD_SOUND] = Sound_ProcessInput(gTasks[taskId].data[TD_SOUND]);
- Sound_DrawChoices(gTasks[taskId].data[TD_SOUND]);
+ gTasks[taskId].tOptSound = Sound_ProcessInput(gTasks[taskId].tOptSound);
+ Sound_DrawChoices(gTasks[taskId].tOptSound);
break;
case MENUITEM_BUTTONMODE:
- gTasks[taskId].data[TD_BUTTONMODE] = ButtonMode_ProcessInput(gTasks[taskId].data[TD_BUTTONMODE]);
- ButtonMode_DrawChoices(gTasks[taskId].data[TD_BUTTONMODE]);
+ gTasks[taskId].tOptButtonMode = ButtonMode_ProcessInput(gTasks[taskId].tOptButtonMode);
+ ButtonMode_DrawChoices(gTasks[taskId].tOptButtonMode);
break;
case MENUITEM_FRAMETYPE:
- gTasks[taskId].data[TD_FRAMETYPE] = FrameType_ProcessInput(gTasks[taskId].data[TD_FRAMETYPE]);
- FrameType_DrawChoices(gTasks[taskId].data[TD_FRAMETYPE]);
+ gTasks[taskId].tOptFrameType = FrameType_ProcessInput(gTasks[taskId].tOptFrameType);
+ FrameType_DrawChoices(gTasks[taskId].tOptFrameType);
break;
}
}
@@ -274,12 +255,12 @@ static void Task_OptionMenuProcessInput(u8 taskId)
static void Task_OptionMenuSave(u8 taskId)
{
- gSaveBlock2.optionsTextSpeed = gTasks[taskId].data[TD_TEXTSPEED];
- gSaveBlock2.optionsBattleSceneOff = gTasks[taskId].data[TD_BATTLESCENE];
- gSaveBlock2.optionsBattleStyle = gTasks[taskId].data[TD_BATTLESTYLE];
- gSaveBlock2.optionsSound = gTasks[taskId].data[TD_SOUND];
- gSaveBlock2.optionsButtonMode = gTasks[taskId].data[TD_BUTTONMODE];
- gSaveBlock2.optionsWindowFrameType = gTasks[taskId].data[TD_FRAMETYPE];
+ gSaveBlock2.optionsTextSpeed = gTasks[taskId].tOptTextSpeed;
+ gSaveBlock2.optionsBattleSceneOff = gTasks[taskId].tOptBattleScene;
+ gSaveBlock2.optionsBattleStyle = gTasks[taskId].tOptBattleStyle;
+ gSaveBlock2.optionsSound = gTasks[taskId].tOptSound;
+ gSaveBlock2.optionsButtonMode = gTasks[taskId].tOptButtonMode;
+ gSaveBlock2.optionsWindowFrameType = gTasks[taskId].tOptFrameType;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gTasks[taskId].func = Task_OptionMenuFadeOut;
@@ -305,29 +286,29 @@ static void HighlightOptionMenuItem(u8 index)
static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style)
{
- u8 dst[16];
+ u8 dst[15];
u16 i;
- for (i = 0; *text != EOS && i <= 14; i++)
+ for (i = 0; *text != EOS && i < 15; i++)
dst[i] = *(text++);
dst[2] = style;
dst[i] = EOS;
- MenuPrint_PixelCoords(dst, x, y, 1);
+ Menu_PrintTextPixelCoords(dst, x, y, 1);
}
static u8 TextSpeed_ProcessInput(u8 selection)
{
if (gMain.newKeys & DPAD_RIGHT)
{
- if (selection <= 1)
+ if (selection < 2)
selection++;
else
selection = 0;
}
if (gMain.newKeys & DPAD_LEFT)
{
- if (selection != 0)
+ if (selection > 0)
selection--;
else
selection = 2;
@@ -356,7 +337,7 @@ static void TextSpeed_DrawChoices(u8 selection)
styles[selection] = 0x8;
DrawOptionMenuChoice(gSystemText_Slow, TEXTSPEED_SLOW_LEFT, 40, styles[0]);
- DrawOptionMenuChoice(gSystemText_Mid, TEXTSPEED_MIX_LEFT, 40, styles[1]);
+ DrawOptionMenuChoice(gSystemText_Mid, TEXTSPEED_MIX_LEFT, 40, styles[1]);
DrawOptionMenuChoice(gSystemText_Fast, TEXTSPEED_FAST_LEFT, 40, styles[2]);
}
@@ -375,7 +356,7 @@ static void BattleScene_DrawChoices(u8 selection)
styles[1] = 0xF;
styles[selection] = 0x8;
- DrawOptionMenuChoice(gSystemText_On, 120, 56, styles[0]);
+ DrawOptionMenuChoice(gSystemText_On, 120, 56, styles[0]);
DrawOptionMenuChoice(gSystemText_Off, 190, 56, styles[1]);
}
@@ -403,7 +384,7 @@ static void BattleStyle_DrawChoices(u8 selection)
styles[selection] = 0x8;
DrawOptionMenuChoice(gSystemText_Shift, BATTLESTYLE_SHIFT, 72, styles[0]);
- DrawOptionMenuChoice(gSystemText_Set, BATTLESTYLE_SET, 72, styles[1]);
+ DrawOptionMenuChoice(gSystemText_Set, BATTLESTYLE_SET, 72, styles[1]);
}
static u8 Sound_ProcessInput(u8 selection)
@@ -424,7 +405,7 @@ static void Sound_DrawChoices(u8 selection)
styles[1] = 0xF;
styles[selection] = 0x8;
- DrawOptionMenuChoice(gSystemText_Mono, 120, 88, styles[0]);
+ DrawOptionMenuChoice(gSystemText_Mono, 120, 88, styles[0]);
DrawOptionMenuChoice(gSystemText_Stereo, 172, 88, styles[1]);
}
@@ -432,19 +413,19 @@ static u8 FrameType_ProcessInput(u8 selection)
{
if (gMain.newKeys & DPAD_RIGHT)
{
- if (selection <= 18)
+ if (selection < 19)
selection++;
else
selection = 0;
- MenuLoadTextWindowGraphics_OverrideFrameType(selection);
+ Menu_LoadStdFrameGraphicsOverrideStyle(selection);
}
if (gMain.newKeys & DPAD_LEFT)
{
- if (selection != 0)
+ if (selection > 0)
selection--;
else
selection = 19;
- MenuLoadTextWindowGraphics_OverrideFrameType(selection);
+ Menu_LoadStdFrameGraphicsOverrideStyle(selection);
}
return selection;
}
@@ -454,11 +435,11 @@ static u8 FrameType_ProcessInput(u8 selection)
#if ENGLISH
static void FrameType_DrawChoices(u8 selection)
{
- u8 text[8];
+ u8 text[6];
u8 n = selection + 1;
u16 i;
- for (i = 0; gSystemText_Terminator[i] != EOS && i <= 5; i++)
+ for (i = 0; gSystemText_Terminator[i] != EOS && i < 6; i++)
text[i] = gSystemText_Terminator[i];
//Convert number to decimal string
@@ -478,8 +459,8 @@ static void FrameType_DrawChoices(u8 selection)
}
text[i] = EOS;
- MenuPrint(gSystemText_Type, 15, 15);
- MenuPrint(text, 18, 15);
+ Menu_PrintText(gSystemText_Type, 15, 15);
+ Menu_PrintText(text, 18, 15);
}
#elif GERMAN
__attribute__((naked))
@@ -536,7 +517,7 @@ _0808C380:\n\
mov r0, sp\n\
movs r1, 0xF\n\
movs r2, 0xF\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
add sp, 0x10\n\
pop {r4-r6}\n\
pop {r0}\n\
@@ -549,14 +530,14 @@ static u8 ButtonMode_ProcessInput(u8 selection)
{
if (gMain.newKeys & DPAD_RIGHT)
{
- if (selection <= 1)
+ if (selection < 2)
selection++;
else
selection = 0;
}
if (gMain.newKeys & DPAD_LEFT)
{
- if (selection != 0)
+ if (selection > 0)
selection--;
else
selection = 2;
@@ -574,6 +555,6 @@ static void ButtonMode_DrawChoices(u8 selection)
styles[selection] = 0x8;
DrawOptionMenuChoice(gSystemText_Normal, 120, 104, styles[0]);
- DrawOptionMenuChoice(gSystemText_LR, 166, 104, styles[1]);
- DrawOptionMenuChoice(gSystemText_LA, 188, 104, styles[2]);
+ DrawOptionMenuChoice(gSystemText_LR, 166, 104, styles[1]);
+ DrawOptionMenuChoice(gSystemText_LA, 188, 104, styles[2]);
}
diff --git a/src/engine/palette.c b/src/engine/palette.c
index 17e9ca178..2a6602503 100644
--- a/src/engine/palette.c
+++ b/src/engine/palette.c
@@ -827,8 +827,6 @@ void BlendPalettes(u32 selectedPalettes, u8 coeff, u16 color)
void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color)
{
- void *src = gPlttBufferUnfaded;
- void *dest = gPlttBufferFaded;
- DmaCopy32(3, src, dest, PLTT_SIZE);
+ DmaCopy32Defvars(3, gPlttBufferUnfaded, gPlttBufferFaded, PLTT_SIZE);
BlendPalettes(selectedPalettes, coeff, color);
}
diff --git a/src/engine/record_mixing.c b/src/engine/record_mixing.c
index c8e2e34d5..a2660bf82 100644
--- a/src/engine/record_mixing.c
+++ b/src/engine/record_mixing.c
@@ -26,7 +26,7 @@
#include "tv.h"
#include "ewram.h"
-extern struct RecordMixingDayCareMail gUnknown_02038738;
+EWRAM_DATA struct RecordMixingDayCareMail gUnknown_02038738 = {0};
extern u16 gSpecialVar_0x8005;
u32 gUnknown_03005D2C;
@@ -146,8 +146,8 @@ void Task_RecordMixing_Main(u8 taskId)
{
tState = 4;
data[10] = sub_8083664();
- sub_80720B0();
- MenuPrint(gOtherText_MixingComplete, 2, 15);
+ Menu_ClearWindowText();
+ Menu_PrintText(gOtherText_MixingComplete, 2, 15);
data[8] = 0;
}
break;
@@ -160,7 +160,7 @@ void Task_RecordMixing_Main(u8 taskId)
if (!gTasks[data[10]].isActive)
{
sub_8055588();
- MenuZeroFillScreen();
+ Menu_EraseScreen();
DestroyTask(taskId);
EnableBothScriptContexts();
}
@@ -176,8 +176,8 @@ void sub_80B95F0(u8 taskId)
{
case 0:
sub_80B9A78();
- MenuDisplayMessageBox();
- MenuPrint(gOtherText_MixingRecordsWithFriend, 2, 15);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gOtherText_MixingRecordsWithFriend, 2, 15);
task->data[8] = 0x708;
task->tState = 400;
ClearLinkCallback_2();
diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index 67e146899..8b67f39a5 100644
--- a/src/engine/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
@@ -13,7 +13,7 @@
#include "strings2.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
struct ResetRtcStruct
{
@@ -147,6 +147,13 @@ const struct SpriteTemplate gSpriteTemplate_83764E8 =
const u8 gUnknown_08376500[] = _(" : ");
+#if DEBUG
+const u8 gUnknown_Debug_0839AE94[] = _("にっすう");
+const u8 gUnknown_Debug_0839AE99[] = _("じかん");
+const u8 gUnknown_Debug_0839AE9D[] = _("ゲームない じかん");
+const u8 gUnknown_Debug_0839AEA7[] = _("RTC じかん");
+#endif
+
void SpriteCB_ResetRtcCusor0(struct Sprite *sprite)
{
int state = gTasks[sprite->data[0]].data[2];
@@ -267,7 +274,7 @@ void ResetRtcScreen_FreeCursorPalette(void)
void ResetRtcScreen_HideChooseTimeWindow(void)
{
- MenuZeroFillWindowRect(3, 8, 25, 11);
+ Menu_EraseWindowRect(3, 8, 25, 11);
}
void ResetRtcScreen_PrintTime(u8 x, u8 y, u16 days, u8 hours, u8 minutes, u8 seconds)
@@ -286,13 +293,13 @@ void ResetRtcScreen_PrintTime(u8 x, u8 y, u16 days, u8 hours, u8 minutes, u8 sec
dest = ConvertIntToDecimalStringN(dest, minutes, STR_CONV_MODE_LEADING_ZEROS, 2);
dest = StringCopy(dest, gUnknown_08376500);
ConvertIntToDecimalStringN(dest, seconds, STR_CONV_MODE_LEADING_ZEROS, 2);
- MenuPrint(gStringVar4, x, y);
+ Menu_PrintText(gStringVar4, x, y);
}
void ResetRtcScreen_ShowChooseTimeWindow(u16 days, u8 hours, u8 minutes, u8 seconds)
{
- MenuDrawTextWindow(3, 8, 25, 11);
- MenuPrint(gOtherText_OK, 20, 9);
+ Menu_DrawStdWindowFrame(3, 8, 25, 11);
+ Menu_PrintText(gOtherText_OK, 20, 9);
ResetRtcScreen_PrintTime(4, 9, days, hours, minutes, seconds);
}
@@ -414,37 +421,19 @@ void Task_ResetRtc_0(u8 taskId)
void CB2_InitResetRtcScreen(void)
{
- u8 *addr;
- u32 size;
-
REG_DISPCNT = 0;
SetVBlankCallback(NULL);
-
DmaClear16(3, PLTT, PLTT_SIZE);
-
- addr = (u8 *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
-
+ DmaFill16Large(3, 0, (u8 *)VRAM, 0x18000, 0x1000);
ResetOamRange(0, 128);
LoadOam();
- remove_some_task();
- dp12_8087EA4();
+ ScanlineEffect_Stop();
+ ScanlineEffect_Clear();
ResetSpriteData();
ResetTasks();
ResetPaletteFade();
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
REG_DISPCNT = 4352;
SetVBlankCallback(VBlankCB_ResetRtcScreen);
SetMainCallback2(CB2_ResetRtcScreen);
@@ -468,8 +457,8 @@ void VBlankCB_ResetRtcScreen(void)
void ResetRtcScreen_ShowMessage(const u8 *str)
{
- MenuDisplayMessageBox();
- MenuPrint(str, 2, 15);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(str, 2, 15);
}
void Task_ShowResetRtcPrompt(u8 taskId)
@@ -479,9 +468,9 @@ void Task_ShowResetRtcPrompt(u8 taskId)
switch (data[0])
{
case 0:
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 0, 20, 10);
- MenuPrint(gSystemText_PresentTime, 1, 1);
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 0, 20, 10);
+ Menu_PrintText(gSystemText_PresentTime, 1, 1);
ResetRtcScreen_PrintTime(
1,
3,
@@ -489,7 +478,7 @@ void Task_ShowResetRtcPrompt(u8 taskId)
gLocalTime.hours,
gLocalTime.minutes,
gLocalTime.seconds);
- MenuPrint(gSystemText_PreviousTime, 1, 5);
+ Menu_PrintText(gSystemText_PreviousTime, 1, 5);
ResetRtcScreen_PrintTime(
1,
7,
@@ -543,7 +532,7 @@ void Task_ResetRtcScreen(u8 taskId)
case 2:
if (gTasks[data[1]].isActive != TRUE)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
ResetRtcScreen_ShowMessage(gSystemText_PleaseResetTime);
gLocalTime = gSaveBlock2.lastBerryTreeUpdate;
data[1] = CreateTask(Task_ResetRtc_0, 80);
@@ -576,7 +565,7 @@ void Task_ResetRtcScreen(u8 taskId)
}
break;
case 4:
- if (TrySavingData(0) == TRUE)
+ if (Save_WriteData(0) == SAVE_STATUS_OK)
{
ResetRtcScreen_ShowMessage(gSystemText_SaveCompleted);
PlaySE(SE_PINPON);
@@ -605,3 +594,319 @@ void Task_ResetRtcScreen(u8 taskId)
}
}
}
+
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_806F8F8(void)
+{
+ asm("\
+ push {lr}\n\
+ ldr r0, ._131 @ CB2_InitResetRtcScreen\n\
+ bl SetMainCallback2\n\
+ pop {r0}\n\
+ bx r0\n\
+._132:\n\
+ .align 2, 0\n\
+._131:\n\
+ .word CB2_InitResetRtcScreen+1");
+}
+
+__attribute__((naked))
+void debug_sub_806F908(u8 a)
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r5, r0, #0x18\n\
+ lsl r0, r5, #0x2\n\
+ add r0, r0, r5\n\
+ lsl r0, r0, #0x3\n\
+ ldr r2, ._136 @ gTasks\n\
+ add r4, r0, r2\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r4, r1]\n\
+ cmp r0, #0\n\
+ beq ._133 @cond_branch\n\
+ cmp r0, #0x1\n\
+ beq ._134 @cond_branch\n\
+ b ._141\n\
+._137:\n\
+ .align 2, 0\n\
+._136:\n\
+ .word gTasks+0x8\n\
+._133:\n\
+ ldr r0, ._139 @ Task_ResetRtc_0\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ strh r0, [r4, #0x2]\n\
+ ldrh r0, [r4]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4]\n\
+ b ._141\n\
+._140:\n\
+ .align 2, 0\n\
+._139:\n\
+ .word Task_ResetRtc_0+1\n\
+._134:\n\
+ sub r2, r2, #0x8\n\
+ mov r0, #0x2\n\
+ ldsh r1, [r4, r0]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r2, r0, r2\n\
+ mov r1, #0x8\n\
+ ldsh r0, [r2, r1]\n\
+ cmp r0, #0\n\
+ beq ._141 @cond_branch\n\
+ mov r1, #0xa\n\
+ ldsh r0, [r2, r1]\n\
+ cmp r0, #0x1\n\
+ bne ._142 @cond_branch\n\
+ ldr r3, ._143 @ gLocalTime\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r3, r1]\n\
+ mov r1, #0x2\n\
+ ldsb r1, [r3, r1]\n\
+ mov r2, #0x3\n\
+ ldsb r2, [r3, r2]\n\
+ ldrb r3, [r3, #0x4]\n\
+ lsl r3, r3, #0x18\n\
+ asr r3, r3, #0x18\n\
+ bl RtcCalcLocalTimeOffset\n\
+._142:\n\
+ ldrb r0, [r4, #0x2]\n\
+ bl DestroyTask\n\
+ bl Menu_EraseScreen\n\
+ bl ScriptContext2_Disable\n\
+ add r0, r5, #0\n\
+ bl DestroyTask\n\
+._141:\n\
+ pop {r4, r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+._144:\n\
+ .align 2, 0\n\
+._143:\n\
+ .word gLocalTime");
+}
+
+__attribute__((naked))
+void debug_sub_806F99C()
+{
+ asm("\
+ push {lr}\n\
+ bl RtcCalcLocalTime\n\
+ ldr r0, ._145 @ debug_sub_806F908\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ bl ScriptContext2_Enable\n\
+ pop {r0}\n\
+ bx r0\n\
+._146:\n\
+ .align 2, 0\n\
+._145:\n\
+ .word debug_sub_806F908+1");
+}
+
+__attribute__((naked))
+void debug_sub_806F9B8()
+{
+ asm("\
+ push {lr}\n\
+ ldr r2, ._147 @ gLocalTime\n\
+ ldr r0, ._147 + 4 @ gSaveBlock2\n\
+ add r0, r0, #0xa0\n\
+ ldr r1, [r0, #0x4]\n\
+ ldr r0, [r0]\n\
+ str r0, [r2]\n\
+ str r1, [r2, #0x4]\n\
+ ldr r0, ._147 + 8 @ debug_sub_806F908\n\
+ mov r1, #0x50\n\
+ bl CreateTask\n\
+ bl ScriptContext2_Enable\n\
+ pop {r0}\n\
+ bx r0\n\
+._148:\n\
+ .align 2, 0\n\
+._147:\n\
+ .word gLocalTime\n\
+ .word gSaveBlock2\n\
+ .word debug_sub_806F908+1");
+}
+
+__attribute__((naked))
+void debug_sub_806F9E4()
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ lsl r0, r7, #0x2\n\
+ add r0, r0, r7\n\
+ lsl r0, r0, #0x3\n\
+ ldr r1, ._153 @ gTasks\n\
+ add r5, r0, r1\n\
+ ldr r6, ._153 + 4 @ gStringVar4\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r5, r1]\n\
+ cmp r0, #0x1\n\
+ beq ._149 @cond_branch\n\
+ cmp r0, #0x1\n\
+ bgt ._150 @cond_branch\n\
+ cmp r0, #0\n\
+ beq ._151 @cond_branch\n\
+ b ._165\n\
+._154:\n\
+ .align 2, 0\n\
+._153:\n\
+ .word gTasks+0x8\n\
+ .word gStringVar4\n\
+._150:\n\
+ cmp r0, #0x2\n\
+ beq ._155 @cond_branch\n\
+ b ._165\n\
+._149:\n\
+ mov r0, #0x0\n\
+ mov r1, #0x9\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ add r4, r6, #0\n\
+ add r4, r4, #0x50\n\
+ bl RtcGetErrorStatus\n\
+ add r1, r0, #0\n\
+ lsl r1, r1, #0x10\n\
+ lsr r1, r1, #0x10\n\
+ add r0, r4, #0\n\
+ mov r2, #0x2\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToHexStringN\n\
+ add r0, r4, #0\n\
+ mov r1, #0x2\n\
+ mov r2, #0xa\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 @ gUnknown_Debug_0839AE94\n\
+ mov r1, #0xc\n\
+ mov r2, #0xc\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 + 4 @ gUnknown_Debug_0839AE99\n\
+ mov r1, #0x14\n\
+ mov r2, #0xc\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 + 8 @ gUnknown_Debug_0839AEA7\n\
+ mov r1, #0x1\n\
+ mov r2, #0xe\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._158 + 12 @ gUnknown_Debug_0839AE9D\n\
+ mov r1, #0x1\n\
+ mov r2, #0x10\n\
+ bl Menu_PrintText\n\
+._151:\n\
+ ldrh r0, [r5]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r5]\n\
+ b ._165\n\
+._159:\n\
+ .align 2, 0\n\
+._158:\n\
+ .word gUnknown_Debug_0839AE94\n\
+ .word gUnknown_Debug_0839AE99\n\
+ .word gUnknown_Debug_0839AEA7\n\
+ .word gUnknown_Debug_0839AE9D\n\
+._155:\n\
+ bl RtcCalcLocalTime\n\
+ add r0, r6, #0\n\
+ bl FormatHexRtcTime\n\
+ mov r2, #0x14\n\
+ add r2, r2, r6\n\
+ mov r9, r2\n\
+ mov r0, r9\n\
+ bl debug_sub_8009894\n\
+ mov r0, #0x28\n\
+ add r0, r0, r6\n\
+ mov sl, r0\n\
+ ldr r4, ._163 @ gLocalTime\n\
+ mov r1, #0x2\n\
+ ldsb r1, [r4, r1]\n\
+ mov r2, #0x3\n\
+ ldsb r2, [r4, r2]\n\
+ mov r3, #0x4\n\
+ ldsb r3, [r4, r3]\n\
+ bl FormatDecimalTime\n\
+ mov r1, #0x3c\n\
+ add r1, r1, r6\n\
+ mov r8, r1\n\
+ mov r2, #0x0\n\
+ ldsh r1, [r4, r2]\n\
+ mov r0, r8\n\
+ mov r2, #0x1\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r0, ._163 + 4 @ gSaveBlock2\n\
+ ldrb r0, [r0, #0x12]\n\
+ cmp r0, #0\n\
+ bne ._160 @cond_branch\n\
+ add r0, r6, #0\n\
+ mov r1, #0x14\n\
+ mov r2, #0xe\n\
+ bl Menu_PrintText\n\
+ mov r0, r9\n\
+ mov r1, #0xc\n\
+ mov r2, #0xe\n\
+ bl Menu_PrintText\n\
+ mov r0, sl\n\
+ mov r1, #0x14\n\
+ mov r2, #0x10\n\
+ bl Menu_PrintText\n\
+ mov r0, r8\n\
+ mov r1, #0xc\n\
+ mov r2, #0x10\n\
+ bl Menu_PrintText\n\
+._160:\n\
+ ldrh r1, [r5, #0x2]\n\
+ mov r2, #0x2\n\
+ ldsh r0, [r5, r2]\n\
+ cmp r0, #0x13\n\
+ ble ._161 @cond_branch\n\
+ add r0, r1, #1\n\
+ strh r0, [r5, #0x2]\n\
+ b ._165\n\
+._164:\n\
+ .align 2, 0\n\
+._163:\n\
+ .word gLocalTime\n\
+ .word gSaveBlock2\n\
+._161:\n\
+ ldr r0, ._166 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._165 @cond_branch\n\
+ bl Menu_EraseScreen\n\
+ add r0, r7, #0\n\
+ bl DestroyTask\n\
+ bl ScriptContext2_Disable\n\
+._165:\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._167:\n\
+ .align 2, 0\n\
+._166:\n\
+ .word gMain");
+}
+
+#endif \ No newline at end of file
diff --git a/src/engine/rtc.c b/src/engine/rtc.c
index d73f943d2..5462298ed 100644
--- a/src/engine/rtc.c
+++ b/src/engine/rtc.c
@@ -268,6 +268,28 @@ void FormatHexDate(u8 *dest, s32 year, s32 month, s32 day)
*dest = EOS;
}
+#if DEBUG
+
+void debug_sub_800987C(u8 *dest)
+{
+ FormatHexDate(dest, sRtc.year, sRtc.month, sRtc.day);
+}
+
+void debug_sub_8009894(u8 *dest)
+{
+ u16 dayCount;
+
+ dayCount = RtcGetDayCount(&sRtc);
+ ConvertIntToDecimalStringN(dest, dayCount, STR_CONV_MODE_RIGHT_ALIGN, 4);
+}
+
+void debug_sub_80098B8(u8 *dest)
+{
+ ConvertIntToHexStringN(dest, sRtc.status, STR_CONV_MODE_LEADING_ZEROS, 2);
+}
+
+#endif
+
void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t)
{
u16 days = RtcGetDayCount(rtc);
@@ -347,3 +369,10 @@ u32 RtcGetMinuteCount()
RtcGetInfo(&sRtc);
return (24 * 60) * RtcGetDayCount(&sRtc) + 60 * sRtc.hour + sRtc.minute;
}
+
+#if DEBUG
+void debug_sub_8009A60()
+{
+ RtcGetRawInfo(&sRtc);
+}
+#endif
diff --git a/src/engine/save.c b/src/engine/save.c
index d5de2e408..0b7a3dd79 100644
--- a/src/engine/save.c
+++ b/src/engine/save.c
@@ -4,55 +4,132 @@
#include "save.h"
#include "load_save.h"
#include "overworld.h"
+#include "pokemon.h"
#include "save_failed_screen.h"
#include "ewram.h"
-#define GETVALIDSTATUSBITFIELD ((1 << ARRAY_COUNT(gSaveSectionLocations)) - 1)
-#define GETCHUNKSIZE(chunk, n) ((sizeof(chunk) - (0xF80 * (n - 1))) >= 0xF80 ? 0xF80 : (sizeof(chunk) - (0xF80 * (n - 1))))
-#define GETBLOCKOFFSET(n) (0xF80 * (n - 1))
-#define TOTALNUMSECTORS ((ARRAY_COUNT(gSaveSectionLocations) * 2) + (ARRAY_COUNT(gHallOfFameSaveSectionLocations) * 2)) // there are 2 slots, so double each array count and get the sum.
+#define FILE_SIGNATURE 0x08012025 // signature value to determine if a sector is in use
-u16 gLastWrittenSector;
-u32 gLastSaveCounter;
+//#define TOTAL_FLASH_SECTORS ((ARRAY_COUNT(sSaveBlockChunks) * 2) + (ARRAY_COUNT(sHallOfFameChunks) * 2)) // there are 2 slots, so double each array count and get the sum.
+#define TOTAL_FLASH_SECTORS 32
+
+struct SaveBlockChunk
+{
+ u8 *data;
+ u16 size;
+};
+
+struct SaveSector
+{
+ u8 data[0xFF4];
+ u16 id;
+ u16 checksum;
+ u32 signature;
+ u32 counter;
+}; // size is 0x1000
+
+// headless save section?
+struct UnkSaveSection
+{
+ u8 data[0xFF4];
+ u32 signature;
+}; // size is 0xFF8
+
+static u8 WriteSingleChunk(u16, const struct SaveBlockChunk *);
+static u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
+static u8 TryWriteSector(u8, u8 *);
+static u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *location);
+static u32 RestoreSaveBackupVars(const struct SaveBlockChunk *location);
+static u8 sub_812550C(u16 a1, const struct SaveBlockChunk *location);
+static u8 sub_812556C(u16 a1, const struct SaveBlockChunk *location);
+static u8 sub_81255B8(u16, const struct SaveBlockChunk *location);
+static u8 WriteSomeFlashByteToPrevSector(u16 a1, const struct SaveBlockChunk *location);
+static u8 WriteSomeFlashByte0x25ToPrevSector(u16 a1, const struct SaveBlockChunk *location);
+static u8 sub_812587C(u16 a1, const struct SaveBlockChunk *location);
+static u8 sub_81258BC(u16, const struct SaveBlockChunk *location);
+static u8 GetSaveValidStatus(const struct SaveBlockChunk *location);
+static u8 ReadSomeUnknownSectorAndVerify(u8 a1, u8 *data, u16 size);
+static u8 DoReadFlashWholeSection(u8, struct SaveSector *);
+static u16 CalculateChecksum(void *, u16);
+bool8 unref_sub_8125F4C(struct UnkSaveSection *a1);
+u8 unref_sub_8125FA0(void);
+u8 unref_sub_8125FF0(u8 *data, u16 size);
+u8 unref_sub_8126068(u8 sector, u8 *data, u32 size);
+u8 unref_sub_8126080(u8 sector, u8 *data);
+
+// Sector num to begin writing save data. Sectors are rotated each time the game is saved. (possibly to avoid wear on flash memory?)
+u16 gFirstSaveSector;
+u32 gPrevSaveCounter;
u16 gLastKnownGoodSector;
u32 gDamagedSaveSectors;
u32 gSaveCounter;
-struct SaveSection *gFastSaveSection; // the pointer is in fast IWRAM but may sometimes point to the slower EWRAM.
+struct SaveSector *gFastSaveSection; // the pointer is in fast IWRAM but may sometimes point to the slower EWRAM.
u16 gUnknown_03005EB4;
u16 gSaveFileStatus;
u32 gGameContinueCallback;
-extern struct PokemonStorage gPokemonStorage;
-
static EWRAM_DATA u32 gLastSaveSectorStatus = 0; // used but in an unferenced function, so unused
-const struct SaveSectionLocation gSaveSectionLocations[] =
-{
- {((u8 *) &gSaveBlock2) + GETBLOCKOFFSET(1), GETCHUNKSIZE(gSaveBlock2, 1)},
- {((u8 *) &gSaveBlock1) + GETBLOCKOFFSET(1), GETCHUNKSIZE(gSaveBlock1, 1)},
- {((u8 *) &gSaveBlock1) + GETBLOCKOFFSET(2), GETCHUNKSIZE(gSaveBlock1, 2)},
- {((u8 *) &gSaveBlock1) + GETBLOCKOFFSET(3), GETCHUNKSIZE(gSaveBlock1, 3)},
- {((u8 *) &gSaveBlock1) + GETBLOCKOFFSET(4), GETCHUNKSIZE(gSaveBlock1, 4)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(1), GETCHUNKSIZE(gPokemonStorage, 1)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(2), GETCHUNKSIZE(gPokemonStorage, 2)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(3), GETCHUNKSIZE(gPokemonStorage, 3)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(4), GETCHUNKSIZE(gPokemonStorage, 4)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(5), GETCHUNKSIZE(gPokemonStorage, 5)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(6), GETCHUNKSIZE(gPokemonStorage, 6)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(7), GETCHUNKSIZE(gPokemonStorage, 7)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(8), GETCHUNKSIZE(gPokemonStorage, 8)},
- {((u8 *) &gPokemonStorage) + GETBLOCKOFFSET(9), GETCHUNKSIZE(gPokemonStorage, 9)}
+// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer
+#define SECTOR_DATA_SIZE 3968
+#define SECTOR_FOOTER_SIZE 128
+
+/*
+ * Sector Layout:
+ *
+ * Sectors 0 - 13: Save Slot 1
+ * Sectors 14 - 27: Save Slot 2
+ * Sectors 28 - 29: Hall of Fame
+ * Sectors 30 - 31: e-Reader battle tower data, maybe?
+ *
+ * There are two save slots for saving the player's game data. We alternate between
+ * them each time the game is saved, so that if the current save slot is corrupt,
+ * we can load the previous one. We also rotate the sectors in each save slot
+ * so that the same data is not always being written to the same sector. This
+ * might be done to reduce wear on the flash memory, but I'm not sure, since all
+ * 14 sectors get written anyway.
+ */
+
+#define HALL_OF_FAME_SECTOR 28
+
+#define NUM_SECTORS_PER_SAVE_SLOT 14 // Number of sectors occupied by a save slot
+#define NUM_HALL_OF_FAME_SECTORS 2
+
+// Divide save blocks into individual chunks to be written to flash sectors
+
+#define SAVEBLOCK_CHUNK(structure, chunkNum) \
+{ \
+ (u8 *)&structure + chunkNum * SECTOR_DATA_SIZE, \
+ min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
+} \
+
+static const struct SaveBlockChunk sSaveBlockChunks[] =
+{
+ SAVEBLOCK_CHUNK(gSaveBlock2, 0),
+
+ SAVEBLOCK_CHUNK(gSaveBlock1, 0),
+ SAVEBLOCK_CHUNK(gSaveBlock1, 1),
+ SAVEBLOCK_CHUNK(gSaveBlock1, 2),
+ SAVEBLOCK_CHUNK(gSaveBlock1, 3),
+
+ SAVEBLOCK_CHUNK(gPokemonStorage, 0),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 1),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 2),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 3),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 4),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 5),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 6),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 7),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 8),
};
-const struct SaveSectionLocation gHallOfFameSaveSectionLocations[] =
+static const struct SaveBlockChunk sHallOfFameChunks[] =
{
- {((u8 *) eHallOfFame) + GETBLOCKOFFSET(1), GETCHUNKSIZE(struct HallOfFame, 1)}, // eHallOfFame is not a proper sym, so the struct must be used.
- {((u8 *) eHallOfFame) + GETBLOCKOFFSET(2), GETCHUNKSIZE(struct HallOfFame, 2)}
+ SAVEBLOCK_CHUNK(*eHallOfFame, 0),
+ SAVEBLOCK_CHUNK(*eHallOfFame, 1),
};
-const u8 gFlashSectors[] = { 0x1E, 0x1F };
-
-void ClearSaveData(void)
+void Save_EraseAllData(void)
{
u16 i;
@@ -60,27 +137,34 @@ void ClearSaveData(void)
EraseFlashSector(i);
}
-void ResetSaveCounters(void)
+void Save_ResetSaveCounters(void)
{
gSaveCounter = 0;
- gLastWrittenSector = 0;
+ gFirstSaveSector = 0;
gDamagedSaveSectors = 0;
}
-bool32 SetDamagedSectorBits(u8 op, u8 bit)
+enum
+{
+ SECTOR_DAMAGED,
+ SECTOR_OK,
+ SECTOR_CHECK, // unused
+};
+
+static bool32 SetSectorDamagedStatus(u8 op, u8 sectorNum)
{
bool32 retVal = FALSE;
switch (op)
{
- case ENABLE:
- gDamagedSaveSectors |= (1 << bit);
+ case SECTOR_DAMAGED:
+ gDamagedSaveSectors |= (1 << sectorNum);
break;
- case DISABLE:
- gDamagedSaveSectors &= ~(1 << bit);
+ case SECTOR_OK:
+ gDamagedSaveSectors &= ~(1 << sectorNum);
break;
- case CHECK: // unused
- if (gDamagedSaveSectors & (1 << bit))
+ case SECTOR_CHECK: // unused
+ if (gDamagedSaveSectors & (1 << sectorNum))
retVal = TRUE;
break;
}
@@ -88,163 +172,166 @@ bool32 SetDamagedSectorBits(u8 op, u8 bit)
return retVal;
}
-u8 save_write_to_flash(u16 a1, const struct SaveSectionLocation *location)
+// If chunkId is 0xFFFF, this function will write all of the chunks pointed to by 'chunks'.
+// Otherwise, it will write a single chunk with the given 'chunkId'.
+static u8 WriteSaveBlockChunks(u16 chunkId, const struct SaveBlockChunk *chunks)
{
u32 retVal;
u16 i;
gFastSaveSection = eSaveSection;
- if (a1 != 0xFFFF) // for link
+ if (chunkId != 0xFFFF) // write single chunk
{
- retVal = HandleWriteSector(a1, location);
+ retVal = WriteSingleChunk(chunkId, chunks);
}
- else
+ else // write all chunks
{
- gLastKnownGoodSector = gLastWrittenSector; // backup the current written sector before attempting to write.
- gLastSaveCounter = gSaveCounter;
- gLastWrittenSector++;
- gLastWrittenSector = gLastWrittenSector % ARRAY_COUNT(gSaveSectionLocations);
+ gLastKnownGoodSector = gFirstSaveSector;
+ gPrevSaveCounter = gSaveCounter;
+ gFirstSaveSector++;
+ gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT;
gSaveCounter++;
- retVal = 1;
+ retVal = SAVE_STATUS_OK;
- for (i = 0; i < ARRAY_COUNT(gSaveSectionLocations); i++)
- HandleWriteSector(i, location);
+ for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++)
+ WriteSingleChunk(i, chunks);
+ // Check for any bad sectors
if (gDamagedSaveSectors != 0) // skip the damaged sector.
{
- retVal = 0xFF;
- gLastWrittenSector = gLastKnownGoodSector;
- gSaveCounter = gLastSaveCounter;
+ retVal = SAVE_STATUS_ERROR;
+ gFirstSaveSector = gLastKnownGoodSector;
+ gSaveCounter = gPrevSaveCounter;
}
}
return retVal;
}
-u8 HandleWriteSector(u16 a1, const struct SaveSectionLocation *location)
+static u8 WriteSingleChunk(u16 chunkId, const struct SaveBlockChunk *chunks)
{
u16 i;
- u16 sector;
- u8 *data;
- u16 size;
+ u16 sectorNum;
+ u8 *chunkData;
+ u16 chunkSize;
- sector = a1 + gLastWrittenSector;
- sector %= ARRAY_COUNT(gSaveSectionLocations);
- sector += ARRAY_COUNT(gSaveSectionLocations) * (gSaveCounter % 2);
+ // select sector number
+ sectorNum = chunkId + gFirstSaveSector;
+ sectorNum %= NUM_SECTORS_PER_SAVE_SLOT;
+ // select save slot
+ sectorNum += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
- data = location[a1].data;
- size = location[a1].size;
+ chunkData = chunks[chunkId].data;
+ chunkSize = chunks[chunkId].size;
// clear save section.
- for (i = 0; i < sizeof(struct SaveSection); i++)
- ((char *)gFastSaveSection)[i] = 0;
+ for (i = 0; i < sizeof(struct SaveSector); i++)
+ ((u8 *)gFastSaveSection)[i] = 0;
- gFastSaveSection->id = a1;
- gFastSaveSection->security = UNKNOWN_CHECK_VALUE;
+ gFastSaveSection->id = chunkId;
+ gFastSaveSection->signature = FILE_SIGNATURE;
gFastSaveSection->counter = gSaveCounter;
+ for (i = 0; i < chunkSize; i++)
+ gFastSaveSection->data[i] = chunkData[i];
+ gFastSaveSection->checksum = CalculateChecksum(chunkData, chunkSize);
- for (i = 0; i < size; i++)
- gFastSaveSection->data[i] = data[i];
-
- gFastSaveSection->checksum = CalculateChecksum(data, size);
- return TryWriteSector(sector, gFastSaveSection->data);
+ return TryWriteSector(sectorNum, gFastSaveSection->data);
}
-u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size)
+static u8 HandleWriteSectorNBytes(u8 sectorNum, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = eSaveSection;
+ struct SaveSector *section = eSaveSection;
- for (i = 0; i < sizeof(struct SaveSection); i++)
+ for (i = 0; i < sizeof(struct SaveSector); i++)
((char *)section)[i] = 0;
- section->security = UNKNOWN_CHECK_VALUE;
-
+ section->signature = FILE_SIGNATURE;
for (i = 0; i < size; i++)
section->data[i] = data[i];
-
section->id = CalculateChecksum(data, size); // though this appears to be incorrect, it might be some sector checksum instead of a whole save checksum and only appears to be relevent to HOF data, if used.
- return TryWriteSector(sector, section->data);
+
+ return TryWriteSector(sectorNum, section->data);
}
-u8 TryWriteSector(u8 sector, u8 *data)
+static u8 TryWriteSector(u8 sectorNum, u8 *data)
{
- if (ProgramFlashSectorAndVerify(sector, data) != 0) // is damaged?
+ if (ProgramFlashSectorAndVerify(sectorNum, data) != 0) // is damaged?
{
- SetDamagedSectorBits(ENABLE, sector); // set damaged sector bits.
- return 0xFF;
+ SetSectorDamagedStatus(SECTOR_DAMAGED, sectorNum); // set damaged sector bits.
+ return SAVE_STATUS_ERROR;
}
else
{
- SetDamagedSectorBits(DISABLE, sector); // unset damaged sector bits. it's safe now.
- return 1;
+ SetSectorDamagedStatus(SECTOR_OK, sectorNum); // unset damaged sector bits. it's safe now.
+ return SAVE_STATUS_OK;
}
}
-u32 RestoreSaveBackupVarsAndIncrement(const struct SaveSectionLocation *location) // location is unused
+static u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *chunk) // chunk is unused
{
gFastSaveSection = eSaveSection;
- gLastKnownGoodSector = gLastWrittenSector;
- gLastSaveCounter = gSaveCounter;
- gLastWrittenSector++;
- gLastWrittenSector = gLastWrittenSector % ARRAY_COUNT(gSaveSectionLocations);
+ gLastKnownGoodSector = gFirstSaveSector;
+ gPrevSaveCounter = gSaveCounter;
+ gFirstSaveSector++;
+ gFirstSaveSector %= NUM_SECTORS_PER_SAVE_SLOT;
gSaveCounter++;
gUnknown_03005EB4 = 0;
gDamagedSaveSectors = 0;
return 0;
}
-u32 RestoreSaveBackupVars(const struct SaveSectionLocation *location) // only ever called once, and gSaveBlock2 is passed to this function. location is unused
+static u32 RestoreSaveBackupVars(const struct SaveBlockChunk *chunk) // chunk is unused
{
gFastSaveSection = eSaveSection;
- gLastKnownGoodSector = gLastWrittenSector;
- gLastSaveCounter = gSaveCounter;
+ gLastKnownGoodSector = gFirstSaveSector;
+ gPrevSaveCounter = gSaveCounter;
gUnknown_03005EB4 = 0;
gDamagedSaveSectors = 0;
return 0;
}
-u8 sub_812550C(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_812550C(u16 a1, const struct SaveBlockChunk *chunk)
{
u8 retVal;
if (gUnknown_03005EB4 < a1 - 1)
{
- retVal = 1;
- HandleWriteSector(gUnknown_03005EB4, location);
+ retVal = SAVE_STATUS_OK;
+ WriteSingleChunk(gUnknown_03005EB4, chunk);
gUnknown_03005EB4++;
if (gDamagedSaveSectors)
{
- retVal = 0xFF;
- gLastWrittenSector = gLastKnownGoodSector;
- gSaveCounter = gLastSaveCounter;
+ retVal = SAVE_STATUS_ERROR;
+ gFirstSaveSector = gLastKnownGoodSector;
+ gSaveCounter = gPrevSaveCounter;
}
}
else
{
- retVal = 0xFF;
+ retVal = SAVE_STATUS_ERROR;
}
return retVal;
}
-u8 sub_812556C(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_812556C(u16 a1, const struct SaveBlockChunk *chunk)
{
- u8 retVal = 1;
+ u8 retVal = SAVE_STATUS_OK;
- sub_81255B8(a1 - 1, location);
+ sub_81255B8(a1 - 1, chunk);
if (gDamagedSaveSectors)
{
- retVal = 0xFF;
- gLastWrittenSector = gLastKnownGoodSector;
- gSaveCounter = gLastSaveCounter;
+ retVal = SAVE_STATUS_ERROR;
+ gFirstSaveSector = gLastKnownGoodSector;
+ gSaveCounter = gPrevSaveCounter;
}
return retVal;
}
-u8 sub_81255B8(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_81255B8(u16 chunkId, const struct SaveBlockChunk *chunks)
{
u16 i;
u16 sector;
@@ -252,19 +339,21 @@ u8 sub_81255B8(u16 a1, const struct SaveSectionLocation *location)
u16 size;
u8 status;
- sector = a1 + gLastWrittenSector;
- sector %= ARRAY_COUNT(gSaveSectionLocations);
- sector += ARRAY_COUNT(gSaveSectionLocations) * (gSaveCounter % 2);
+ // select sector number
+ sector = chunkId + gFirstSaveSector;
+ sector %= NUM_SECTORS_PER_SAVE_SLOT;
+ // select save slot
+ sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
- data = location[a1].data;
- size = location[a1].size;
+ data = chunks[chunkId].data;
+ size = chunks[chunkId].size;
// clear temp save section.
- for (i = 0; i < sizeof(struct SaveSection); i++)
+ for (i = 0; i < sizeof(struct SaveSector); i++)
((char *)gFastSaveSection)[i] = 0;
- gFastSaveSection->id = a1;
- gFastSaveSection->security = UNKNOWN_CHECK_VALUE;
+ gFastSaveSection->id = chunkId;
+ gFastSaveSection->signature = FILE_SIGNATURE;
gFastSaveSection->counter = gSaveCounter;
// set temp section's data.
@@ -276,275 +365,275 @@ u8 sub_81255B8(u16 a1, const struct SaveSectionLocation *location)
EraseFlashSector(sector);
- status = 1;
+ status = SAVE_STATUS_OK;
for (i = 0; i < sizeof(struct UnkSaveSection); i++)
{
if (ProgramFlashByte(sector, i, gFastSaveSection->data[i]))
{
- status = 0xFF;
+ status = SAVE_STATUS_ERROR;
break;
}
}
- if (status == 0xFF)
+ if (status == SAVE_STATUS_ERROR)
{
- SetDamagedSectorBits(ENABLE, sector);
- return 0xFF;
+ SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
+ return SAVE_STATUS_ERROR;
}
else
{
- status = 1;
+ status = SAVE_STATUS_OK;
for (i = 0; i < 7; i++)
{
if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gFastSaveSection)[0xFF9 + i]))
{
- status = 0xFF;
+ status = SAVE_STATUS_ERROR;
break;
}
}
- if (status == 0xFF)
+ if (status == SAVE_STATUS_ERROR)
{
- SetDamagedSectorBits(ENABLE, sector);
- return 0xFF;
+ SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
+ return SAVE_STATUS_ERROR;
}
else
{
- SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ SetSectorDamagedStatus(SECTOR_OK, sector);
+ return SAVE_STATUS_OK;
}
}
}
-u8 sub_8125758(u16 a1, const struct SaveSectionLocation *location)
+static u8 WriteSomeFlashByteToPrevSector(u16 a1, const struct SaveBlockChunk *chunk)
{
u16 sector;
- sector = a1 + gLastWrittenSector - 1;
- sector %= ARRAY_COUNT(gSaveSectionLocations);
- sector += ARRAY_COUNT(gSaveSectionLocations) * (gSaveCounter % 2);
+ // select sector number
+ sector = a1 + gFirstSaveSector - 1;
+ sector %= NUM_SECTORS_PER_SAVE_SLOT;
+ // select save slot
+ sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), ((u8 *)gFastSaveSection)[sizeof(struct UnkSaveSection)]))
{
// sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
- SetDamagedSectorBits(ENABLE, sector);
- gLastWrittenSector = gLastKnownGoodSector;
- gSaveCounter = gLastSaveCounter;
- return 0xFF;
+ SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
+ gFirstSaveSector = gLastKnownGoodSector;
+ gSaveCounter = gPrevSaveCounter;
+ return SAVE_STATUS_ERROR;
}
else
{
- SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ SetSectorDamagedStatus(SECTOR_OK, sector);
+ return SAVE_STATUS_OK;
}
}
-u8 sub_81257F0(u16 a1, const struct SaveSectionLocation *location)
+static u8 WriteSomeFlashByte0x25ToPrevSector(u16 a1, const struct SaveBlockChunk *chunk)
{
u16 sector;
- sector = a1 + gLastWrittenSector - 1;
- sector %= ARRAY_COUNT(gSaveSectionLocations);
- sector += ARRAY_COUNT(gSaveSectionLocations) * (gSaveCounter % 2);
+ sector = a1 + gFirstSaveSector - 1;
+ sector %= NUM_SECTORS_PER_SAVE_SLOT;
+ sector += NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
if (ProgramFlashByte(sector, sizeof(struct UnkSaveSection), 0x25))
{
// sector is damaged, so enable the bit in gDamagedSaveSectors and restore the last written sector and save counter.
- SetDamagedSectorBits(ENABLE, sector);
- gLastWrittenSector = gLastKnownGoodSector;
- gSaveCounter = gLastSaveCounter;
- return 0xFF;
+ SetSectorDamagedStatus(SECTOR_DAMAGED, sector);
+ gFirstSaveSector = gLastKnownGoodSector;
+ gSaveCounter = gPrevSaveCounter;
+ return SAVE_STATUS_ERROR;
}
else
{
- SetDamagedSectorBits(DISABLE, sector);
- return 1;
+ SetSectorDamagedStatus(SECTOR_OK, sector);
+ return SAVE_STATUS_OK;
}
}
-u8 sub_812587C(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_812587C(u16 a1, const struct SaveBlockChunk *chunk)
{
u8 retVal;
gFastSaveSection = eSaveSection;
if (a1 != 0xFFFF)
{
- retVal = 0xFF;
+ retVal = SAVE_STATUS_ERROR;
}
else
{
- retVal = GetSaveValidStatus(location);
- sub_81258BC(0xFFFF, location);
+ retVal = GetSaveValidStatus(chunk);
+ sub_81258BC(0xFFFF, chunk);
}
return retVal;
}
-u8 sub_81258BC(u16 a1, const struct SaveSectionLocation *location)
+static u8 sub_81258BC(u16 a1, const struct SaveBlockChunk *chunks)
{
u16 i;
u16 checksum;
- u16 v3 = ARRAY_COUNT(gSaveSectionLocations) * (gSaveCounter % 2);
+ u16 sector = NUM_SECTORS_PER_SAVE_SLOT * (gSaveCounter % 2);
u16 id;
- for (i = 0; i < ARRAY_COUNT(gSaveSectionLocations); i++)
+ for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT; i++)
{
- DoReadFlashWholeSection(i + v3, gFastSaveSection);
+ DoReadFlashWholeSection(i + sector, gFastSaveSection);
id = gFastSaveSection->id;
if (id == 0)
- gLastWrittenSector = i;
- checksum = CalculateChecksum(gFastSaveSection->data, location[id].size);
- if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE
+ gFirstSaveSector = i;
+ checksum = CalculateChecksum(gFastSaveSection->data, chunks[id].size);
+ if (gFastSaveSection->signature == FILE_SIGNATURE
&& gFastSaveSection->checksum == checksum)
{
u16 j;
- for (j = 0; j < location[id].size; j++)
- location[id].data[j] = gFastSaveSection->data[j];
+ for (j = 0; j < chunks[id].size; j++)
+ chunks[id].data[j] = gFastSaveSection->data[j];
}
}
return 1;
}
-u8 GetSaveValidStatus(const struct SaveSectionLocation *location)
+static u8 GetSaveValidStatus(const struct SaveBlockChunk *chunks)
{
- u16 i;
+ u16 sector;
+ bool8 signatureValid;
u16 checksum;
- u32 saveSlot1Counter = 0;
- u32 saveSlot2Counter = 0;
- u32 slotCheckField = 0;
- bool8 securityPassed = FALSE;
- u8 saveSlot1Status;
- u8 saveSlot2Status;
+ u32 slot1saveCounter = 0;
+ u32 slot2saveCounter = 0;
+ u8 slot1Status;
+ u8 slot2Status;
+ u32 validSectors;
+ const u32 ALL_SECTORS = (1 << NUM_SECTORS_PER_SAVE_SLOT) - 1; // bitmask of all saveblock sectors
// check save slot 1.
- for (i = 0; i < ARRAY_COUNT(gSaveSectionLocations); i++)
+ validSectors = 0;
+ signatureValid = FALSE;
+ for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++)
{
- DoReadFlashWholeSection(i, gFastSaveSection);
- if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE)
+ DoReadFlashWholeSection(sector, gFastSaveSection);
+ if (gFastSaveSection->signature == FILE_SIGNATURE)
{
- securityPassed = TRUE;
- checksum = CalculateChecksum(gFastSaveSection->data, location[gFastSaveSection->id].size);
+ signatureValid = TRUE;
+ checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size);
if (gFastSaveSection->checksum == checksum)
{
- saveSlot1Counter = gFastSaveSection->counter;
- slotCheckField |= 1 << gFastSaveSection->id;
+ slot1saveCounter = gFastSaveSection->counter;
+ validSectors |= 1 << gFastSaveSection->id;
}
}
}
- if (securityPassed)
+ if (signatureValid)
{
- if (slotCheckField == GETVALIDSTATUSBITFIELD)
- saveSlot1Status = 1;
+ if (validSectors == ALL_SECTORS)
+ slot1Status = SAVE_STATUS_OK;
else
- saveSlot1Status = 255;
+ slot1Status = SAVE_STATUS_ERROR;
}
else
{
- saveSlot1Status = 0;
+ slot1Status = SAVE_STATUS_EMPTY;
}
- slotCheckField = 0;
- securityPassed = FALSE;
-
// check save slot 2.
- for (i = 0; i < ARRAY_COUNT(gSaveSectionLocations); i++)
+ validSectors = 0;
+ signatureValid = FALSE;
+ for (sector = 0; sector < NUM_SECTORS_PER_SAVE_SLOT; sector++)
{
- DoReadFlashWholeSection(i + ARRAY_COUNT(gSaveSectionLocations), gFastSaveSection);
- if (gFastSaveSection->security == UNKNOWN_CHECK_VALUE)
+ DoReadFlashWholeSection(NUM_SECTORS_PER_SAVE_SLOT + sector, gFastSaveSection);
+ if (gFastSaveSection->signature == FILE_SIGNATURE)
{
- securityPassed = TRUE;
- checksum = CalculateChecksum(gFastSaveSection->data, location[gFastSaveSection->id].size);
+ signatureValid = TRUE;
+ checksum = CalculateChecksum(gFastSaveSection->data, chunks[gFastSaveSection->id].size);
if (gFastSaveSection->checksum == checksum)
{
- saveSlot2Counter = gFastSaveSection->counter;
- slotCheckField |= 1 << gFastSaveSection->id;
+ slot2saveCounter = gFastSaveSection->counter;
+ validSectors |= 1 << gFastSaveSection->id;
}
}
}
- if (securityPassed)
+ if (signatureValid)
{
- if (slotCheckField == GETVALIDSTATUSBITFIELD)
- saveSlot2Status = 1;
+ if (validSectors == ALL_SECTORS)
+ slot2Status = SAVE_STATUS_OK;
else
- saveSlot2Status = 255;
+ slot2Status = SAVE_STATUS_ERROR;
}
else
{
- saveSlot2Status = 0;
+ slot2Status = SAVE_STATUS_EMPTY;
}
- if (saveSlot1Status == 1 && saveSlot2Status == 1)
+ if (slot1Status == SAVE_STATUS_OK && slot2Status == SAVE_STATUS_OK)
{
- if ((saveSlot1Counter == -1 && saveSlot2Counter == 0) || (saveSlot1Counter == 0 && saveSlot2Counter == -1))
+ // Choose counter of the most recent save file
+ if ((slot1saveCounter == -1 && slot2saveCounter == 0) || (slot1saveCounter == 0 && slot2saveCounter == -1))
{
- if ((unsigned)(saveSlot1Counter + 1) < (unsigned)(saveSlot2Counter + 1))
- {
- gSaveCounter = saveSlot2Counter;
- }
+ if ((unsigned)(slot1saveCounter + 1) < (unsigned)(slot2saveCounter + 1))
+ gSaveCounter = slot2saveCounter;
else
- {
- gSaveCounter = saveSlot1Counter;
- }
+ gSaveCounter = slot1saveCounter;
}
else
{
- if (saveSlot1Counter < saveSlot2Counter)
- {
- gSaveCounter = saveSlot2Counter;
- }
+ if (slot1saveCounter < slot2saveCounter)
+ gSaveCounter = slot2saveCounter;
else
- {
- gSaveCounter = saveSlot1Counter;
- }
+ gSaveCounter = slot1saveCounter;
}
- return 1;
+ return SAVE_STATUS_OK;
}
- if (saveSlot1Status == 1)
+ if (slot1Status == SAVE_STATUS_OK)
{
- gSaveCounter = saveSlot1Counter;
- if (saveSlot2Status == 255)
- return 255;
- return 1;
+ gSaveCounter = slot1saveCounter;
+ if (slot2Status == SAVE_STATUS_ERROR)
+ return SAVE_STATUS_ERROR;
+ else
+ return SAVE_STATUS_OK;
}
- if (saveSlot2Status == 1)
+ if (slot2Status == SAVE_STATUS_OK)
{
- gSaveCounter = saveSlot2Counter;
- if (saveSlot1Status == 255)
- return 255;
- return 1;
+ gSaveCounter = slot2saveCounter;
+ if (slot1Status == SAVE_STATUS_ERROR)
+ return SAVE_STATUS_ERROR;
+ else
+ return SAVE_STATUS_OK;
}
- if (saveSlot1Status == 0 && saveSlot2Status == 0)
+ if (slot1Status == SAVE_STATUS_EMPTY && slot2Status == SAVE_STATUS_EMPTY)
{
gSaveCounter = 0;
- gLastWrittenSector = 0;
- return 0;
+ gFirstSaveSector = 0;
+ return SAVE_STATUS_EMPTY;
}
gSaveCounter = 0;
- gLastWrittenSector = 0;
+ gFirstSaveSector = 0;
return 2;
}
-u8 sub_8125B88(u8 a1, u8 *data, u16 size)
+static u8 ReadSomeUnknownSectorAndVerify(u8 sector, u8 *data, u16 size)
{
u16 i;
- struct SaveSection *section = eSaveSection;
- DoReadFlashWholeSection(a1, section);
- if (section->security == UNKNOWN_CHECK_VALUE)
+ struct SaveSector *section = eSaveSection;
+
+ DoReadFlashWholeSection(sector, section);
+ if (section->signature == FILE_SIGNATURE)
{
u16 checksum = CalculateChecksum(section->data, size);
if (section->id == checksum)
{
for (i = 0; i < size; i++)
data[i] = section->data[i];
- return 1;
+ return SAVE_STATUS_OK;
}
else
{
@@ -553,17 +642,17 @@ u8 sub_8125B88(u8 a1, u8 *data, u16 size)
}
else
{
- return 0;
+ return SAVE_STATUS_EMPTY;
}
}
-u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section)
+static u8 DoReadFlashWholeSection(u8 sector, struct SaveSector *section)
{
- ReadFlash(sector, 0, section->data, sizeof(struct SaveSection));
+ ReadFlash(sector, 0, section->data, sizeof(struct SaveSector));
return 1;
}
-u16 CalculateChecksum(void *data, u16 size)
+static u16 CalculateChecksum(void *data, u16 size)
{
u16 i;
u32 checksum = 0;
@@ -574,55 +663,97 @@ u16 CalculateChecksum(void *data, u16 size)
return ((checksum >> 16) + checksum);
}
-u8 HandleSavingData(u8 saveType)
+#if DEBUG
+void sub_813B79C(void)
+{
+ struct SaveSector *sbSector;
+ struct SaveSector *hofSector;
+ const struct SaveBlockChunk *sbChunks;
+ const struct SaveBlockChunk *hofChunks;
+ u16 i;
+
+ sbSector = eSaveSection;
+ sbChunks = sSaveBlockChunks;
+ for (i = 0; i < NUM_SECTORS_PER_SAVE_SLOT * 2; i++)
+ {
+ DoReadFlashWholeSection(i, sbSector);
+ sbSector->checksum = CalculateChecksum(sbSector, sbChunks[sbSector->id].size);
+ ProgramFlashSectorAndVerify(i, sbSector->data);
+ }
+
+ hofSector = eSaveSection;
+ hofChunks = sHallOfFameChunks;
+ for (i = 0; i < NUM_HALL_OF_FAME_SECTORS; i++)
+ {
+ DoReadFlashWholeSection(HALL_OF_FAME_SECTOR + i, hofSector);
+ hofSector->id = CalculateChecksum(hofSector, hofChunks[i].size); // why id?
+ ProgramFlashSectorAndVerify(HALL_OF_FAME_SECTOR + i, hofSector->data);
+ }
+}
+#endif
+
+u8 Save_WriteDataInternal(u8 saveType)
{
u8 i;
+
switch (saveType)
{
- case HOF_DELETE_SAVE: // deletes HOF before overwriting HOF completely. unused
- for (i = (ARRAY_COUNT(gSaveSectionLocations) * 2 + 0); i < TOTALNUMSECTORS; i++)
+ case SAVE_HALL_OF_FAME_ERASE_BEFORE: // wipes all hall of fame data, then saves hall of fame. unused
+ for (i = HALL_OF_FAME_SECTOR; i < TOTAL_FLASH_SECTORS; i++)
EraseFlashSector(i);
- case HOF_SAVE: // hall of fame.
- if (GetGameStat(10) < 999)
- IncrementGameStat(10);
- for (i = 0; i < ARRAY_COUNT(gHallOfFameSaveSectionLocations); i++)
- HandleWriteSectorNBytes((ARRAY_COUNT(gSaveSectionLocations) * 2 + 0) + i, gHallOfFameSaveSectionLocations[i].data, gHallOfFameSaveSectionLocations[i].size);
+ // fall through
+ case SAVE_HALL_OF_FAME: // hall of fame.
+ if (GetGameStat(GAME_STAT_ENTERED_HOF) < 999)
+ IncrementGameStat(GAME_STAT_ENTERED_HOF);
+ for (i = 0; i < NUM_HALL_OF_FAME_SECTORS; i++)
+ HandleWriteSectorNBytes(HALL_OF_FAME_SECTOR + i, sHallOfFameChunks[i].data, sHallOfFameChunks[i].size);
SaveSerializedGame();
- save_write_to_flash(0xFFFF, gSaveSectionLocations);
+ WriteSaveBlockChunks(0xFFFF, sSaveBlockChunks);
break;
- case NORMAL_SAVE: // normal save. also called by overwriting your own save.
+ case SAVE_NORMAL: // normal save. also called by overwriting your own save.
default:
SaveSerializedGame();
- save_write_to_flash(0xFFFF, gSaveSectionLocations);
+ WriteSaveBlockChunks(0xFFFF, sSaveBlockChunks);
break;
- case LINK_SAVE: // link save. updates only gSaveBlock1 and gSaveBlock2.
+ case SAVE_LINK: // link save. updates only gSaveBlock1 and gSaveBlock2.
SaveSerializedGame();
for (i = 0; i < 5; i++)
- save_write_to_flash(i, gSaveSectionLocations);
+ WriteSaveBlockChunks(i, sSaveBlockChunks);
break;
- case EREADER_SAVE: // used in mossdeep "game corner" before/after battling old man e-reader trainer
+ case SAVE_EREADER: // used in mossdeep "game corner" before/after battling old man e-reader trainer
SaveSerializedGame();
- save_write_to_flash(0, gSaveSectionLocations);
+ WriteSaveBlockChunks(0, sSaveBlockChunks);
break;
- case DIFFERENT_FILE_SAVE: // there is a different file, so erase the file and overwrite it completely.
- for (i = (ARRAY_COUNT(gSaveSectionLocations) * 2 + 0); i < TOTALNUMSECTORS; i++)
- EraseFlashSector(i); // erase HOF.
+ case SAVE_OVERWRITE_DIFFERENT_FILE: // there is a different file, so overwrite it completely.
+ // Erase Hall of Fame.
+ for (i = HALL_OF_FAME_SECTOR; i < TOTAL_FLASH_SECTORS; i++)
+ EraseFlashSector(i);
SaveSerializedGame();
- save_write_to_flash(0xFFFF, gSaveSectionLocations);
+ WriteSaveBlockChunks(0xFFFF, sSaveBlockChunks);
break;
}
return 0;
}
-u8 TrySavingData(u8 saveType) // TrySave
+#if DEBUG
+extern u32 gUnknown_Debug_03004BD0;
+#endif
+
+u8 Save_WriteData(u8 saveType) // TrySave
{
if (gFlashMemoryPresent != TRUE)
- return 0xFF;
- HandleSavingData(saveType);
- if (!gDamagedSaveSectors)
- return 1;
+ return SAVE_STATUS_ERROR;
+
+ Save_WriteDataInternal(saveType);
+ if (!gDamagedSaveSectors
+#if DEBUG
+ && gUnknown_Debug_03004BD0 == 0
+#endif
+ )
+ return SAVE_STATUS_OK;
+
DoSaveFailedScreen(saveType);
- return 0xFF;
+ return SAVE_STATUS_ERROR;
}
u8 sub_8125D80(void) // trade.s save
@@ -630,16 +761,16 @@ u8 sub_8125D80(void) // trade.s save
if (gFlashMemoryPresent != TRUE)
return 1;
SaveSerializedGame();
- RestoreSaveBackupVarsAndIncrement(gSaveSectionLocations);
+ RestoreSaveBackupVarsAndIncrement(sSaveBlockChunks);
return 0;
}
bool8 sub_8125DA8(void) // trade.s save
{
- u8 retVal = sub_812550C(ARRAY_COUNT(gSaveSectionLocations), gSaveSectionLocations);
+ u8 retVal = sub_812550C(ARRAY_COUNT(sSaveBlockChunks), sSaveBlockChunks);
if (gDamagedSaveSectors)
DoSaveFailedScreen(0);
- if (retVal == 0xFF)
+ if (retVal == SAVE_STATUS_ERROR)
return 1;
else
return 0;
@@ -647,7 +778,7 @@ bool8 sub_8125DA8(void) // trade.s save
u8 sub_8125DDC(void) // trade.s save
{
- sub_812556C(ARRAY_COUNT(gSaveSectionLocations), gSaveSectionLocations);
+ sub_812556C(ARRAY_COUNT(sSaveBlockChunks), sSaveBlockChunks);
if (gDamagedSaveSectors)
DoSaveFailedScreen(0);
return 0;
@@ -655,7 +786,7 @@ u8 sub_8125DDC(void) // trade.s save
u8 sub_8125E04(void) // trade.s save
{
- sub_8125758(ARRAY_COUNT(gSaveSectionLocations), gSaveSectionLocations);
+ WriteSomeFlashByteToPrevSector(ARRAY_COUNT(sSaveBlockChunks), sSaveBlockChunks);
if (gDamagedSaveSectors)
DoSaveFailedScreen(0);
return 0;
@@ -667,23 +798,24 @@ u8 sub_8125E2C(void)
return 1;
SaveSerializedGame();
- RestoreSaveBackupVars(gSaveSectionLocations);
- sub_812556C(gUnknown_03005EB4 + 1, gSaveSectionLocations);
+ RestoreSaveBackupVars(sSaveBlockChunks);
+ sub_812556C(gUnknown_03005EB4 + 1, sSaveBlockChunks);
return 0;
}
+// something to do with multiplayer. Possibly record mizing?
bool8 sub_8125E6C(void)
{
u8 retVal = FALSE;
u16 val = ++gUnknown_03005EB4;
if (val <= 4)
{
- sub_812556C(gUnknown_03005EB4 + 1, gSaveSectionLocations);
- sub_81257F0(val, gSaveSectionLocations);
+ sub_812556C(gUnknown_03005EB4 + 1, sSaveBlockChunks);
+ WriteSomeFlashByte0x25ToPrevSector(val, sSaveBlockChunks);
}
else
{
- sub_81257F0(val, gSaveSectionLocations);
+ WriteSomeFlashByte0x25ToPrevSector(val, sSaveBlockChunks);
retVal = TRUE;
}
if (gDamagedSaveSectors)
@@ -691,46 +823,48 @@ bool8 sub_8125E6C(void)
return retVal;
}
-u8 sub_8125EC8(u8 a1)
+u8 Save_LoadGameData(u8 saveType)
{
u8 result;
if (gFlashMemoryPresent != TRUE)
{
- gSaveFileStatus = 4;
- return 0xFF;
+ gSaveFileStatus = SAVE_STATUS_NO_FLASH;
+ return SAVE_STATUS_ERROR;
}
- switch (a1)
+ switch (saveType)
{
- case 0:
+ case SAVE_NORMAL:
default:
- result = sub_812587C(0xFFFF, gSaveSectionLocations);
+ result = sub_812587C(0xFFFF, sSaveBlockChunks);
LoadSerializedGame();
gSaveFileStatus = result;
gGameContinueCallback = 0;
break;
- case 3:
- result = sub_8125B88((ARRAY_COUNT(gSaveSectionLocations) * 2 + 0), gHallOfFameSaveSectionLocations[0].data, gHallOfFameSaveSectionLocations[0].size);
- if (result == 1)
- result = sub_8125B88((ARRAY_COUNT(gSaveSectionLocations) * 2 + 1), gHallOfFameSaveSectionLocations[1].data, gHallOfFameSaveSectionLocations[1].size);
+ case SAVE_HALL_OF_FAME:
+ result = ReadSomeUnknownSectorAndVerify(HALL_OF_FAME_SECTOR, sHallOfFameChunks[0].data, sHallOfFameChunks[0].size);
+ if (result == SAVE_STATUS_OK)
+ result = ReadSomeUnknownSectorAndVerify(HALL_OF_FAME_SECTOR + 1, sHallOfFameChunks[1].data, sHallOfFameChunks[1].size);
break;
}
return result;
}
+const u8 sUnusedFlashSectors[] = { 30, 31 };
+
bool8 unref_sub_8125F4C(struct UnkSaveSection *a1)
{
u16 i;
char *raw = (char *)a1;
- for (i = 0; i < sizeof(struct SaveSection); i++)
+ for (i = 0; i < sizeof(struct SaveSector); i++)
raw[i] = 0;
- ReadFlash(gFlashSectors[0], 0, a1->data, 4096);
+ ReadFlash(sUnusedFlashSectors[0], 0, a1->data, 4096);
- if (a1->security != UNKNOWN_CHECK_VALUE)
+ if (a1->signature != FILE_SIGNATURE)
return FALSE;
return TRUE;
@@ -739,22 +873,22 @@ bool8 unref_sub_8125F4C(struct UnkSaveSection *a1)
u8 unref_sub_8125FA0(void)
{
u16 i;
- u8 v0 = TrySavingData(0);
+ u8 status = Save_WriteData(SAVE_NORMAL);
for (i = 0; i < 2; i++)
- EraseFlashSector(gFlashSectors[i]);
+ EraseFlashSector(sUnusedFlashSectors[i]);
- if (v0 == 255)
+ if (status == SAVE_STATUS_ERROR)
{
return 3;
}
- else if (v0 == 3)
+ else if (status == 3)
{
return 2;
}
else
{
- sub_8125EC8(0);
+ Save_LoadGameData(SAVE_NORMAL);
return 1;
}
}
@@ -764,32 +898,32 @@ u8 unref_sub_8125FF0(u8 *data, u16 size)
u16 i;
struct UnkSaveSection *section = (struct UnkSaveSection *)eSaveSection;
- for (i = 0; i < sizeof(struct SaveSection); i++)
+ for (i = 0; i < sizeof(struct SaveSector); i++)
((char *)section)[i] = 0;
- section->security = UNKNOWN_CHECK_VALUE;
+ section->signature = FILE_SIGNATURE;
for (i = 0; i < size; i++)
section->data[i] = data[i];
- gLastSaveSectorStatus = ProgramFlashSectorAndVerifyNBytes(gFlashSectors[0], section, sizeof(struct SaveSection));
+ gLastSaveSectorStatus = ProgramFlashSectorAndVerifyNBytes(sUnusedFlashSectors[0], section, sizeof(struct SaveSector));
if (gLastSaveSectorStatus)
- return 0xFF;
+ return SAVE_STATUS_ERROR;
else
- return 1;
+ return SAVE_STATUS_OK;
}
u8 unref_sub_8126068(u8 sector, u8 *data, u32 size)
{
if (ProgramFlashSectorAndVerify(sector, data))
- return 255;
+ return SAVE_STATUS_ERROR;
else
- return 1;
+ return SAVE_STATUS_OK;
}
u8 unref_sub_8126080(u8 sector, u8 *data)
{
- ReadFlash(sector, 0, data, sizeof(struct SaveSection));
+ ReadFlash(sector, 0, data, sizeof(struct SaveSector));
return 1;
}
diff --git a/src/engine/save_failed_screen.c b/src/engine/save_failed_screen.c
index ba2d46546..49cf166d4 100644
--- a/src/engine/save_failed_screen.c
+++ b/src/engine/save_failed_screen.c
@@ -61,16 +61,18 @@ static const u8 sClockFrames[8][3] =
static const u8 gSaveFailedClockPal[] = INCBIN_U8("graphics/misc/clock_small.gbapal");
static const u8 gSaveFailedClockGfx[] = INCBIN_U8("graphics/misc/clock_small.4bpp.lz");
+#define static
+
static void VBlankCB(void);
static void CB2_SaveFailedScreen(void);
static void CB2_WipeSave(void);
-static void CB2_GameplayCannotBeContinued(void);
+/*static*/ void CB2_GameplayCannotBeContinued(void);
static void CB2_FadeAndReturnToTitleScreen(void);
static void CB2_ReturnToTitleScreen(void);
static void VBlankCB_UpdateClockGraphics(void);
static bool8 VerifySectorWipe(u16 sector);
static bool8 WipeSector(u16 sector);
-static bool8 WipeSectors(u32 sectorBits);
+/*static*/ bool8 WipeSectors(u32 sectorBits);
void DoSaveFailedScreen(u8 saveType)
{
@@ -120,11 +122,11 @@ static void CB2_SaveFailedScreen(void)
ResetPaletteFade();
LoadPalette(&gBirchBagGrassPal, 0, sizeof(gBirchBagGrassPal));
LoadPalette(&gSaveFailedClockPal, 0x100, sizeof(gSaveFailedClockPal));
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- MenuDrawTextWindow(13, CLOCK_WIN_TOP, 16, CLOCK_WIN_TOP + 3); // clock window
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19); // message window
- MenuPrint(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Menu_DrawStdWindowFrame(13, CLOCK_WIN_TOP, 16, CLOCK_WIN_TOP + 3); // clock window
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19); // message window
+ Menu_PrintText(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
ime = REG_IME;
REG_IME = 0;
@@ -148,6 +150,151 @@ static void CB2_SaveFailedScreen(void)
}
}
+#if DEBUG
+__attribute__((naked))
+void CB2_WipeSave()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r4, #0x0\n"
+ " ldr r0, ._20 @ gSaveFailedClockInfo\n"
+ " mov r2, #0x1\n"
+ " strh r2, [r0]\n"
+ " ldr r0, ._20 + 4 @ gUnknown_Debug_03004BD0\n"
+ " ldr r0, [r0]\n"
+ " ldr r1, ._20 + 8 @ gDamagedSaveSectors\n"
+ " cmp r0, #0\n"
+ " beq ._12 @cond_branch\n"
+ " str r2, [r1]\n"
+ "._12:\n"
+ " ldr r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq ._16 @cond_branch\n"
+ " add r5, r1, #0\n"
+ "._17:\n"
+ " ldr r0, [r5]\n"
+ " bl WipeSectors\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._14 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x1c\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._20 + 12 @ gSystemText_CheckCompleteSaveAttempt\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, ._20 + 16 @ gSaveFailedType\n"
+ " ldrb r0, [r0]\n"
+ " bl Save_WriteDataInternal\n"
+ " ldr r0, [r5]\n"
+ " cmp r0, #0\n"
+ " beq ._15 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x1c\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._20 + 20 @ gSystemText_SaveFailedBackupCheck\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ "._15:\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " ldr r0, [r5]\n"
+ " cmp r0, #0\n"
+ " beq ._16 @cond_branch\n"
+ " cmp r4, #0x2\n"
+ " bls ._17 @cond_branch\n"
+ "._16:\n"
+ " cmp r4, #0x3\n"
+ " bne ._18 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x1c\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._20 + 24 @ gSystemText_BackupDamagedGameContinue\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, ._20 + 28 @ CB2_FadeAndReturnToTitleScreen\n"
+ " bl SetMainCallback2\n"
+ " b ._23\n"
+ "._21:\n"
+ " .align 2, 0\n"
+ "._20:\n"
+ " .word gSaveFailedClockInfo\n"
+ " .word gUnknown_Debug_03004BD0\n"
+ " .word gDamagedSaveSectors\n"
+ " .word gSystemText_CheckCompleteSaveAttempt\n"
+ " .word gSaveFailedType\n"
+ " .word gSystemText_SaveFailedBackupCheck\n"
+ " .word gSystemText_BackupDamagedGameContinue\n"
+ " .word CB2_FadeAndReturnToTitleScreen+1\n"
+ "._18:\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x1c\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._24 @ gGameContinueCallback\n"
+ " ldr r0, [r0]\n"
+ " cmp r0, #0\n"
+ " bne ._22 @cond_branch\n"
+ " ldr r0, ._24 + 4 @ gSystemText_SaveCompletedGameEnd\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " b ._23\n"
+ "._25:\n"
+ " .align 2, 0\n"
+ "._24:\n"
+ " .word gGameContinueCallback\n"
+ " .word gSystemText_SaveCompletedGameEnd\n"
+ "._14:\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x1c\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, ._27 @ gSystemText_BackupDamagedGameContinue\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, ._27 + 4 @ CB2_GameplayCannotBeContinued\n"
+ " bl SetMainCallback2\n"
+ " b ._26\n"
+ "._28:\n"
+ " .align 2, 0\n"
+ "._27:\n"
+ " .word gSystemText_BackupDamagedGameContinue\n"
+ " .word CB2_GameplayCannotBeContinued+1\n"
+ "._22:\n"
+ " ldr r0, ._29 @ gSystemText_SaveCompletedPressA\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ "._23:\n"
+ " ldr r0, ._29 + 4 @ CB2_FadeAndReturnToTitleScreen\n"
+ " bl SetMainCallback2\n"
+ "._26:\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._30:\n"
+ " .align 2, 0\n"
+ "._29:\n"
+ " .word gSystemText_SaveCompletedPressA\n"
+ " .word CB2_FadeAndReturnToTitleScreen+1\n"
+ "\n"
+ );
+}
+#else
static void CB2_WipeSave(void)
{
u8 wipeTries = 0;
@@ -158,22 +305,22 @@ static void CB2_WipeSave(void)
{
if (WipeSectors(gDamagedSaveSectors) != FALSE)
{
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
- MenuPrint(gSystemText_BackupDamagedGameContinue, 2, MSG_WIN_TOP + 1);
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19);
+ Menu_PrintText(gSystemText_BackupDamagedGameContinue, 2, MSG_WIN_TOP + 1);
SetMainCallback2(CB2_GameplayCannotBeContinued);
return;
}
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
- MenuPrint(gSystemText_CheckCompleteSaveAttempt, 2, MSG_WIN_TOP + 1);
- HandleSavingData(gSaveFailedType);
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19);
+ Menu_PrintText(gSystemText_CheckCompleteSaveAttempt, 2, MSG_WIN_TOP + 1);
+ Save_WriteDataInternal(gSaveFailedType);
if (gDamagedSaveSectors != 0)
{
#ifdef BUGFIX_SAVEFAILEDSCREEN2
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19);
#endif
- MenuPrint(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
+ Menu_PrintText(gSystemText_SaveFailedBackupCheck, 2, MSG_WIN_TOP + 1);
}
wipeTries++;
@@ -181,32 +328,33 @@ static void CB2_WipeSave(void)
if (wipeTries == 3)
{
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
- MenuPrint(gSystemText_BackupDamagedGameContinue, 2, MSG_WIN_TOP + 1);
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19);
+ Menu_PrintText(gSystemText_BackupDamagedGameContinue, 2, MSG_WIN_TOP + 1);
SetMainCallback2(CB2_FadeAndReturnToTitleScreen); // called again below
}
else
{
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19);
// no callback exists, so the game cannot continue.
if (gGameContinueCallback == 0)
- MenuPrint(gSystemText_SaveCompletedGameEnd, 2, MSG_WIN_TOP + 1);
+ Menu_PrintText(gSystemText_SaveCompletedGameEnd, 2, MSG_WIN_TOP + 1);
else // callback exists, so continue
- MenuPrint(gSystemText_SaveCompletedPressA, 2, MSG_WIN_TOP + 1);
+ Menu_PrintText(gSystemText_SaveCompletedPressA, 2, MSG_WIN_TOP + 1);
}
SetMainCallback2(CB2_FadeAndReturnToTitleScreen);
}
+#endif
-static void CB2_GameplayCannotBeContinued(void)
+/*static*/ void CB2_GameplayCannotBeContinued(void)
{
gSaveFailedClockInfo[0] = FALSE;
if (gMain.newKeys & A_BUTTON)
{
- MenuDrawTextWindow(1, MSG_WIN_TOP, 28, 19);
- MenuPrint(gSystemText_GameplayEnded, 2, MSG_WIN_TOP + 1);
+ Menu_DrawStdWindowFrame(1, MSG_WIN_TOP, 28, 19);
+ Menu_PrintText(gSystemText_GameplayEnded, 2, MSG_WIN_TOP + 1);
SetVBlankCallback(VBlankCB);
SetMainCallback2(CB2_FadeAndReturnToTitleScreen);
}
@@ -264,6 +412,41 @@ static void VBlankCB_UpdateClockGraphics(void)
gSaveFailedClockInfo[1]--;
}
+#if DEBUG
+__attribute__((naked))
+bool8 VerifySectorWipe(u16 sector)
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " ldr r2, ._50 @ \n"
+ " mov r3, #0x80\n"
+ " lsl r3, r3, #0x5\n"
+ " mov r1, #0x0\n"
+ " bl ReadFlash\n"
+ " mov r0, #0x0\n"
+ " ldr r1, ._50 + 4 @ \n"
+ "._49:\n"
+ " add r0, r0, #0x1\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r0, r0, #0x10\n"
+ " cmp r0, r1\n"
+ " bls ._49 @cond_branch\n"
+ " ldr r0, ._50 + 8 @ \n"
+ " ldrb r0, [r0]\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._51:\n"
+ " .align 2, 0\n"
+ "._50:\n"
+ " .word +0x2000000\n"
+ " .word 0x3ff\n"
+ " .word gUnknown_Debug_03004BD0\n"
+ "\n"
+ );
+}
+#else
static bool8 VerifySectorWipe(u16 sector)
{
u32 *ptr = (u32 *)&gSharedMem;
@@ -277,6 +460,7 @@ static bool8 VerifySectorWipe(u16 sector)
return FALSE;
}
+#endif
static bool8 WipeSector(u16 sector)
{
@@ -294,7 +478,7 @@ static bool8 WipeSector(u16 sector)
return failed;
}
-static bool8 WipeSectors(u32 sectorBits)
+/*static*/ bool8 WipeSectors(u32 sectorBits)
{
u16 i;
diff --git a/src/engine/save_menu_util.c b/src/engine/save_menu_util.c
index 771cb72c7..ccf4d9f6f 100644
--- a/src/engine/save_menu_util.c
+++ b/src/engine/save_menu_util.c
@@ -18,7 +18,7 @@ void HandleDrawSaveWindowInfo(s16 left, s16 top)
if (FlagGet(FLAG_SYS_POKEDEX_GET))
{
// print info + dex information.
- MenuDrawTextWindow(left, top, left + width, top + 11);
+ Menu_DrawStdWindowFrame(left, top, left + width, top + 11);
PrintSaveMapName(++left, ++top); // MAP NAME
PrintSavePlayerName(left, top + 2); // PLAYER
PrintSaveBadges(left, top + 4); // BADGES
@@ -28,7 +28,7 @@ void HandleDrawSaveWindowInfo(s16 left, s16 top)
else
{
// print everything besides dex.
- MenuDrawTextWindow(left, top, left + width, top + 9);
+ Menu_DrawStdWindowFrame(left, top, left + width, top + 9);
PrintSaveMapName(++left, ++top); // MAP NAME
PrintSavePlayerName(left, top + 2); // PLAYER
PrintSaveBadges(left, top + 4); // BADGES
@@ -45,9 +45,9 @@ void HandleCloseSaveWindow(u16 left, u16 top)
width = 13;
if (FlagGet(FLAG_SYS_POKEDEX_GET))
- MenuZeroFillWindowRect(left, top, left + width, top + 11);
+ Menu_EraseWindowRect(left, top, left + width, top + 11);
else
- MenuZeroFillWindowRect(left, top, left + width, top + 9);
+ Menu_EraseWindowRect(left, top, left + width, top + 9);
}
/*
@@ -62,7 +62,7 @@ u8 IsResizeSaveWindowEnabled(void) // i don't know what else to name it..
void PrintSavePlayerName(s16 x, s16 y)
{
- MenuPrint(gOtherText_Player, x, y);
+ Menu_PrintText(gOtherText_Player, x, y);
MenuPrint_RightAligned(gSaveBlock2.playerName, x + 12, y);
}
@@ -71,14 +71,14 @@ void PrintSaveMapName(s16 x, s16 y)
char name[32];
CopyMapName(name, gMapHeader.regionMapSectionId);
- MenuPrint(name, x, y);
+ Menu_PrintText(name, x, y);
}
void PrintSaveBadges(s16 x, s16 y)
{
char badges[16];
- MenuPrint(gOtherText_Badges, x, y);
+ Menu_PrintText(gOtherText_Badges, x, y);
ConvertIntToDecimalString(badges, GetBadgeCount());
MenuPrint_RightAligned(badges, x + 12, y);
}
@@ -87,7 +87,7 @@ void PrintSavePokedexCount(s16 x, s16 y)
{
char pokedex[16];
- MenuPrint(gOtherText_Pokedex, x, y);
+ Menu_PrintText(gOtherText_Pokedex, x, y);
ConvertIntToDecimalStringN(pokedex, GetPokedexSeenCount(), 1, 3);
MenuPrint_RightAligned(pokedex, x + 12, y);
}
@@ -96,7 +96,7 @@ void PrintSavePlayTime(s16 x, s16 y)
{
char playtime[16];
- MenuPrint(gOtherText_PlayTime, x, y);
+ Menu_PrintText(gOtherText_PlayTime, x, y);
FormatPlayTime(playtime, gSaveBlock2.playTimeHours, gSaveBlock2.playTimeMinutes, 1);
MenuPrint_RightAligned(playtime, x + 12, y);
}
@@ -125,9 +125,9 @@ u16 GetPokedexSeenCount()
return pokedexSeenCount;
}
-void FormatPlayTime(char *playtime, u16 hours, u16 minutes, u16 unk)
+void FormatPlayTime(char *playtime, u16 hours, u16 minutes, u16 colon)
{
- s16 colon = unk;
+ s16 _colon = colon;
playtime = ConvertIntToDecimalString(playtime, hours);
// playtime[0] is hours.
@@ -136,7 +136,7 @@ void FormatPlayTime(char *playtime, u16 hours, u16 minutes, u16 unk)
playtime[0] = 0;
- if (colon)
+ if (_colon)
playtime[1] = 0xF0; // set middle character to ":"
else
playtime[1] = 0;
diff --git a/src/engine/sprite.c b/src/engine/sprite.c
index cf35e12a3..a9d84e01a 100644
--- a/src/engine/sprite.c
+++ b/src/engine/sprite.c
@@ -1,8 +1,10 @@
#include "global.h"
+#include "debug.h"
#include "sprite.h"
#include "main.h"
#include "menu_cursor.h"
#include "palette.h"
+#include "sprite.h"
#define MAX_SPRITE_COPY_REQUESTS 64
@@ -822,6 +824,12 @@ static void RequestSpriteFrameImageCopy(u16 index, u16 tileNum, const struct Spr
gSpriteCopyRequests[gSpriteCopyRequestCount].size = images[index].size;
gSpriteCopyRequestCount++;
}
+#if DEBUG
+ else
+ {
+ Crash(sDmaOverErrorMsg);
+ }
+#endif
}
void RequestSpriteCopy(const void *src, u8 *dest, u16 size)
@@ -833,6 +841,12 @@ void RequestSpriteCopy(const void *src, u8 *dest, u16 size)
gSpriteCopyRequests[gSpriteCopyRequestCount].size = size;
gSpriteCopyRequestCount++;
}
+#if DEBUG
+ else
+ {
+ Crash(sDmaOverErrorMsg);
+ }
+#endif
}
// these two functions are unused.
diff --git a/src/engine/task.c b/src/engine/task.c
index 7bd2b5937..3e8a5588c 100644
--- a/src/engine/task.c
+++ b/src/engine/task.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "debug.h"
#include "task.h"
#define ACTIVE_SENTINEL 0x10
@@ -11,8 +12,9 @@ struct Task gTasks[ACTIVE_SENTINEL];
static void InsertTask(u8 newTaskId);
static u8 FindFirstActiveTask();
-// Unused string
-const u8 sTaskOverString[] = _("TASK OVER\nタスクがオーバーしました");
+const u8 gError_NoTasksLeft[] = _(
+ "TASK OVER\n"
+ "タスクがオーバーしました");
void ResetTasks()
{
@@ -49,6 +51,10 @@ u8 CreateTask(TaskFunc func, u8 priority)
}
}
+#if DEBUG
+ Crash(gError_NoTasksLeft);
+#endif
+
return 0;
}
diff --git a/src/engine/text.c b/src/engine/text.c
index 1b158d979..fe18a6d79 100644
--- a/src/engine/text.c
+++ b/src/engine/text.c
@@ -12,16 +12,31 @@ enum
WIN_STATE_END,
WIN_STATE_BEGIN,
WIN_STATE_NORMAL,
- WIN_STATE_INTERRUPTIBLE_PAUSE,
+ WIN_STATE_CHAR_DELAY,
WIN_STATE_PAUSE,
WIN_STATE_WAIT_BUTTON,
WIN_STATE_NEWLINE,
WIN_STATE_PLACEHOLDER,
- WIN_STATE_PARAGRAPH,
- WIN_STATE_NEWLINE_WAIT,
+ WIN_STATE_WAIT_CLEAR,
+ WIN_STATE_WAIT_SCROLL,
WIN_STATE_WAIT_SOUND,
};
+enum
+{
+ TEXT_MODE_UNKNOWN0,
+ TEXT_MODE_MONOSPACE,
+ TEXT_MODE_UNKNOWN2, // variable width?
+};
+
+enum
+{
+ WAIT_TYPE_NORMAL, // allows the player to interrupt the text delay with A or B
+ WAIT_TYPE_BATTLE, // disables interrupting the text delay if in a link battle
+ WAIT_TYPE_AUTOSCROLL, // disables interrupting the text delay
+ WAIT_TYPE_CONTEST, // disables interrupting the text delay if in a link contest
+};
+
struct Font
{
u32 type;
@@ -66,7 +81,7 @@ static u16 LoadFixedWidthFont_Font4Latin(struct Window *, u16);
static u16 LoadFixedWidthFont_Braille(struct Window *, u16);
static void MultistepLoadFont_LoadGlyph(struct Window *, u16, u8);
static u8 sub_8002FA0(struct Window *, const u8 *);
-static u8 InterpretText(struct Window *);
+static u8 PrintNextChar(struct Window *);
static u8 HandleExtCtrlCode(struct Window *);
static u8 UpdateWindowText(struct Window *);
static u8 DrawGlyph_TextMode0(struct Window *, u32);
@@ -82,27 +97,27 @@ static void AddToCursorX(struct Window *, u8);
static void AddToCursorY(struct Window *, u8);
static void ClipLeft(struct Window *);
static void ClipRight(struct Window *);
-static void InitColors(struct Window *);
-static void SetBackgroundColor(struct Window *, u8);
-static void SetShadowColor(struct Window *, u8);
-static void SetForegroundColor(struct Window *, u8);
+static void SetWindowDefaultColors(struct Window *);
+static void SetWindowBackgroundColor(struct Window *, u8);
+static void SetWindowShadowColor(struct Window *, u8);
+static void SetWindowForegroundColor(struct Window *, u8);
static u8 GetTextDelay(struct Window *);
-static bool8 PlayerCanInterruptWait(struct Window *);
+static bool8 PlayerCanInterruptDelay(struct Window *);
static void ScrollWindowTextLines(struct Window *);
static void ScrollWindowTextLines_TextMode0(struct Window *);
static void DoScroll_TextMode0(struct Window *, u16);
-static void ScrollWindowTextLines_TextMode1(struct Window *);
-static void DoScroll_TextMode1(struct Window *, u16);
+static void ScrollWindowTextLines_TextModeMonospace(struct Window *);
+static void DoScroll_TextModeMonospace(struct Window *, u16);
static void ScrollWindowTextLines_TextMode2(struct Window *);
static void DoScroll_TextMode2(struct Window *, u8);
-void ClearWindowTextLines(struct Window *);
+void Text_ClearWindow(struct Window *);
static void ClearWindowTextLines_TextMode0_TextMode1(struct Window *, u8);
static void ClearWindowTextLines_TextMode2(struct Window *, u8);
static void TryEraseDownArrow(struct Window *);
static u16 GetBlankTileNum(struct Window *);
static u8 WaitWithDownArrow(struct Window *);
static void DrawInitialDownArrow(struct Window *);
-static void DrawMovingDownArrow(struct Window *);
+static void UpdateDownArrowAnimation(struct Window *);
static u16 GetCursorTileNum(struct Window *, u32, u32);
static s32 DrawGlyphTiles(struct Window *, u32, u32);
static void UpdateTilemap(struct Window *, u32);
@@ -477,7 +492,7 @@ static const ShiftGlyphTileShadowedFunc sShiftGlyphTileShadowedFuncs[] =
ShiftGlyphTile_ShadowedFont_Width8,
};
-const struct WindowConfig gWindowConfig_81E6C3C =
+const struct WindowTemplate gWindowTemplate_81E6C3C =
{
0, // BG number
2, // BG character base block
@@ -498,7 +513,7 @@ const struct WindowConfig gWindowConfig_81E6C3C =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6C58 =
+const struct WindowTemplate gWindowTemplate_81E6C58 =
{
0, // BG number
0, // BG character base block
@@ -519,7 +534,7 @@ const struct WindowConfig gWindowConfig_81E6C58 =
BG_SCREEN_ADDR(24), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6C74 =
+const struct WindowTemplate gWindowTemplate_81E6C74 =
{
0, // BG number
0, // BG character base block
@@ -540,7 +555,7 @@ const struct WindowConfig gWindowConfig_81E6C74 =
NULL, // tilemap
};
-const struct WindowConfig gWindowConfig_81E6C90 =
+const struct WindowTemplate gWindowTemplate_81E6C90 =
{
0, // BG number
1, // BG character base block
@@ -561,7 +576,7 @@ const struct WindowConfig gWindowConfig_81E6C90 =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6CAC =
+const struct WindowTemplate gWindowTemplate_81E6CAC =
{
0, // BG number
0, // BG character base block
@@ -582,7 +597,7 @@ const struct WindowConfig gWindowConfig_81E6CAC =
NULL, // tilemap
};
-const struct WindowConfig gWindowConfig_81E6CC8 =
+const struct WindowTemplate gWindowTemplate_81E6CC8 =
{
2, // BG number
2, // BG character base block
@@ -603,7 +618,7 @@ const struct WindowConfig gWindowConfig_81E6CC8 =
BG_SCREEN_ADDR(15), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6CE4 =
+const struct WindowTemplate gWindowTemplate_81E6CE4 =
{
0, // BG number
2, // BG character base block
@@ -624,7 +639,7 @@ const struct WindowConfig gWindowConfig_81E6CE4 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6D00 =
+const struct WindowTemplate gWindowTemplate_81E6D00 =
{
0, // BG number
0, // BG character base block
@@ -645,7 +660,7 @@ const struct WindowConfig gWindowConfig_81E6D00 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6D1C =
+const struct WindowTemplate gWindowTemplate_81E6D1C =
{
1, // BG number
0, // BG character base block
@@ -666,7 +681,7 @@ const struct WindowConfig gWindowConfig_81E6D1C =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6D38 =
+const struct WindowTemplate gWindowTemplate_81E6D38 =
{
0, // BG number
0, // BG character base block
@@ -687,7 +702,7 @@ const struct WindowConfig gWindowConfig_81E6D38 =
NULL, // tilemap
};
-const struct WindowConfig gWindowConfig_81E6D54 =
+const struct WindowTemplate gWindowTemplate_81E6D54 =
{
3, // BG number
3, // BG character base block
@@ -708,7 +723,7 @@ const struct WindowConfig gWindowConfig_81E6D54 =
BG_SCREEN_ADDR(15), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6D70 =
+const struct WindowTemplate gWindowTemplate_81E6D70 =
{
3, // BG number
3, // BG character base block
@@ -729,7 +744,7 @@ const struct WindowConfig gWindowConfig_81E6D70 =
BG_SCREEN_ADDR(15), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6D8C =
+const struct WindowTemplate gWindowTemplate_81E6D8C =
{
1, // BG number
0, // BG character base block
@@ -750,7 +765,7 @@ const struct WindowConfig gWindowConfig_81E6D8C =
BG_SCREEN_ADDR(14), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6DA8 =
+const struct WindowTemplate gWindowTemplate_81E6DA8 =
{
0, // BG number
0, // BG character base block
@@ -771,7 +786,7 @@ const struct WindowConfig gWindowConfig_81E6DA8 =
BG_SCREEN_ADDR(11), // tilemap
};
-const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
+const struct WindowTemplate gWindowTemplate_TrainerCard_Back_Values =
{
0, // BG number
2, // BG character base block
@@ -792,7 +807,7 @@ const struct WindowConfig WindowConfig_TrainerCard_Back_Values =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
+const struct WindowTemplate gWindowTemplate_TrainerCard_Back_Labels =
{
0, // BG number
2, // BG character base block
@@ -813,7 +828,7 @@ const struct WindowConfig WindowConfig_TrainerCard_Back_Labels =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6DFC =
+const struct WindowTemplate gWindowTemplate_81E6DFC =
{
0, // BG number
2, // BG character base block
@@ -834,7 +849,7 @@ const struct WindowConfig gWindowConfig_81E6DFC =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6E18 =
+const struct WindowTemplate gWindowTemplate_81E6E18 =
{
0, // BG number
2, // BG character base block
@@ -855,7 +870,7 @@ const struct WindowConfig gWindowConfig_81E6E18 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6E34 =
+const struct WindowTemplate gWindowTemplate_81E6E34 =
{
1, // BG number
0, // BG character base block
@@ -876,7 +891,7 @@ const struct WindowConfig gWindowConfig_81E6E34 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6E50 =
+const struct WindowTemplate gWindowTemplate_81E6E50 =
{
0, // BG number
2, // BG character base block
@@ -897,7 +912,7 @@ const struct WindowConfig gWindowConfig_81E6E50 =
BG_SCREEN_ADDR(28), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6E6C =
+const struct WindowTemplate gWindowTemplate_81E6E6C =
{
0, // BG number
2, // BG character base block
@@ -918,7 +933,7 @@ const struct WindowConfig gWindowConfig_81E6E6C =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6E88 =
+const struct WindowTemplate gWindowTemplate_81E6E88 =
{
0, // BG number
0, // BG character base block
@@ -939,7 +954,7 @@ const struct WindowConfig gWindowConfig_81E6E88 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6EA4 =
+const struct WindowTemplate gWindowTemplate_81E6EA4 =
{
1, // BG number
0, // BG character base block
@@ -960,7 +975,7 @@ const struct WindowConfig gWindowConfig_81E6EA4 =
BG_SCREEN_ADDR(28), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6EC0 =
+const struct WindowTemplate gWindowTemplate_81E6EC0 =
{
2, // BG number
2, // BG character base block
@@ -981,7 +996,7 @@ const struct WindowConfig gWindowConfig_81E6EC0 =
BG_SCREEN_ADDR(29), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6EDC =
+const struct WindowTemplate gWindowTemplate_81E6EDC =
{
1, // BG number
0, // BG character base block
@@ -1002,7 +1017,7 @@ const struct WindowConfig gWindowConfig_81E6EDC =
BG_SCREEN_ADDR(28), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6EF8 =
+const struct WindowTemplate gWindowTemplate_81E6EF8 =
{
2, // BG number
2, // BG character base block
@@ -1023,7 +1038,7 @@ const struct WindowConfig gWindowConfig_81E6EF8 =
BG_SCREEN_ADDR(29), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6F14 =
+const struct WindowTemplate gWindowTemplate_81E6F14 =
{
1, // BG number
0, // BG character base block
@@ -1044,7 +1059,7 @@ const struct WindowConfig gWindowConfig_81E6F14 =
BG_SCREEN_ADDR(28), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6F30 =
+const struct WindowTemplate gWindowTemplate_81E6F30 =
{
2, // BG number
2, // BG character base block
@@ -1065,7 +1080,7 @@ const struct WindowConfig gWindowConfig_81E6F30 =
BG_SCREEN_ADDR(29), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6F4C =
+const struct WindowTemplate gWindowTemplate_81E6F4C =
{
3, // BG number
0, // BG character base block
@@ -1086,7 +1101,7 @@ const struct WindowConfig gWindowConfig_81E6F4C =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6F68 =
+const struct WindowTemplate gWindowTemplate_81E6F68 =
{
0, // BG number
2, // BG character base block
@@ -1107,7 +1122,7 @@ const struct WindowConfig gWindowConfig_81E6F68 =
BG_SCREEN_ADDR(13), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6F84 =
+const struct WindowTemplate gWindowTemplate_81E6F84 =
{
0, // BG number
2, // BG character base block
@@ -1128,7 +1143,7 @@ const struct WindowConfig gWindowConfig_81E6F84 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6FA0 =
+const struct WindowTemplate gWindowTemplate_81E6FA0 =
{
1, // BG number
0, // BG character base block
@@ -1149,7 +1164,7 @@ const struct WindowConfig gWindowConfig_81E6FA0 =
BG_SCREEN_ADDR(24), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6FBC =
+const struct WindowTemplate gWindowTemplate_81E6FBC =
{
0, // BG number
0, // BG character base block
@@ -1170,7 +1185,7 @@ const struct WindowConfig gWindowConfig_81E6FBC =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6FD8 =
+const struct WindowTemplate gWindowTemplate_81E6FD8 =
{
0, // BG number
0, // BG character base block
@@ -1191,7 +1206,7 @@ const struct WindowConfig gWindowConfig_81E6FD8 =
BG_SCREEN_ADDR(24), // tilemap
};
-const struct WindowConfig gWindowConfig_81E6FF4 =
+const struct WindowTemplate gWindowTemplate_81E6FF4 =
{
0, // BG number
0, // BG character base block
@@ -1212,7 +1227,7 @@ const struct WindowConfig gWindowConfig_81E6FF4 =
BG_SCREEN_ADDR(24), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7010 =
+const struct WindowTemplate gWindowTemplate_81E7010 =
{
0, // BG number
0, // BG character base block
@@ -1233,7 +1248,7 @@ const struct WindowConfig gWindowConfig_81E7010 =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E702C =
+const struct WindowTemplate gWindowTemplate_81E702C =
{
3, // BG number
2, // BG character base block
@@ -1254,7 +1269,7 @@ const struct WindowConfig gWindowConfig_81E702C =
BG_SCREEN_ADDR(15), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7048 =
+const struct WindowTemplate gWindowTemplate_81E7048 =
{
2, // BG number
2, // BG character base block
@@ -1275,7 +1290,7 @@ const struct WindowConfig gWindowConfig_81E7048 =
BG_SCREEN_ADDR(14), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7064 =
+const struct WindowTemplate gWindowTemplate_81E7064 =
{
2, // BG number
2, // BG character base block
@@ -1296,7 +1311,7 @@ const struct WindowConfig gWindowConfig_81E7064 =
BG_SCREEN_ADDR(14), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7080 =
+const struct WindowTemplate gWindowTemplate_81E7080 =
{
3, // BG number
0, // BG character base block
@@ -1317,7 +1332,7 @@ const struct WindowConfig gWindowConfig_81E7080 =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E709C =
+const struct WindowTemplate gWindowTemplate_81E709C =
{
0, // BG number
0, // BG character base block
@@ -1338,7 +1353,7 @@ const struct WindowConfig gWindowConfig_81E709C =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E70B8 =
+const struct WindowTemplate gWindowTemplate_81E70B8 =
{
2, // BG number
0, // BG character base block
@@ -1359,7 +1374,7 @@ const struct WindowConfig gWindowConfig_81E70B8 =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E70D4 =
+const struct WindowTemplate gWindowTemplate_81E70D4 =
{
3, // BG number
0, // BG character base block
@@ -1380,7 +1395,7 @@ const struct WindowConfig gWindowConfig_81E70D4 =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E70F0 =
+const struct WindowTemplate gWindowTemplate_81E70F0 =
{
0, // BG number
0, // BG character base block
@@ -1401,7 +1416,7 @@ const struct WindowConfig gWindowConfig_81E70F0 =
NULL, // tilemap
};
-const struct WindowConfig gWindowConfig_81E710C =
+const struct WindowTemplate gWindowTemplate_81E710C =
{
0, // BG number
0, // BG character base block
@@ -1422,7 +1437,7 @@ const struct WindowConfig gWindowConfig_81E710C =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7128 =
+const struct WindowTemplate gWindowTemplate_81E7128 =
{
0, // BG number
2, // BG character base block
@@ -1443,7 +1458,7 @@ const struct WindowConfig gWindowConfig_81E7128 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7144 =
+const struct WindowTemplate gWindowTemplate_81E7144 =
{
0, // BG number
2, // BG character base block
@@ -1464,7 +1479,7 @@ const struct WindowConfig gWindowConfig_81E7144 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7160 =
+const struct WindowTemplate gWindowTemplate_81E7160 =
{
1, // BG number
1, // BG character base block
@@ -1485,7 +1500,7 @@ const struct WindowConfig gWindowConfig_81E7160 =
BG_SCREEN_ADDR(10), // tilemap
};
-const struct WindowConfig gWindowConfig_81E717C =
+const struct WindowTemplate gWindowTemplate_81E717C =
{
0, // BG number
3, // BG character base block
@@ -1506,7 +1521,7 @@ const struct WindowConfig gWindowConfig_81E717C =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7198 =
+const struct WindowTemplate gWindowTemplate_81E7198 =
{
0, // BG number
2, // BG character base block
@@ -1527,7 +1542,7 @@ const struct WindowConfig gWindowConfig_81E7198 =
BG_SCREEN_ADDR(15), // tilemap
};
-const struct WindowConfig gWindowConfig_81E71B4 =
+const struct WindowTemplate gWindowTemplate_81E71B4 =
{
0, // BG number
2, // BG character base block
@@ -1548,7 +1563,7 @@ const struct WindowConfig gWindowConfig_81E71B4 =
BG_SCREEN_ADDR(15), // tilemap
};
-const struct WindowConfig gWindowConfig_81E71D0 =
+const struct WindowTemplate gWindowTemplate_81E71D0 =
{
1, // BG number
1, // BG character base block
@@ -1569,7 +1584,7 @@ const struct WindowConfig gWindowConfig_81E71D0 =
BG_SCREEN_ADDR(28), // tilemap
};
-const struct WindowConfig gWindowConfig_81E71EC =
+const struct WindowTemplate gWindowTemplate_81E71EC =
{
2, // BG number
1, // BG character base block
@@ -1590,7 +1605,7 @@ const struct WindowConfig gWindowConfig_81E71EC =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7208 =
+const struct WindowTemplate gWindowTemplate_81E7208 =
{
0, // BG number
2, // BG character base block
@@ -1611,7 +1626,7 @@ const struct WindowConfig gWindowConfig_81E7208 =
BG_SCREEN_ADDR(28), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7224 =
+const struct WindowTemplate gWindowTemplate_81E7224 =
{
0, // BG number
0, // BG character base block
@@ -1632,7 +1647,7 @@ const struct WindowConfig gWindowConfig_81E7224 =
BG_SCREEN_ADDR(31), // tilemap
};
-const struct WindowConfig gWindowConfig_81E7240 =
+const struct WindowTemplate gWindowTemplate_81E7240 =
{
1, // BG number
2, // BG character base block
@@ -1653,7 +1668,7 @@ const struct WindowConfig gWindowConfig_81E7240 =
BG_SCREEN_ADDR(30), // tilemap
};
-const struct WindowConfig gWindowConfig_81E725C =
+const struct WindowTemplate gWindowTemplate_81E725C =
{
0, // BG number
0, // BG character base block
@@ -1674,7 +1689,7 @@ const struct WindowConfig gWindowConfig_81E725C =
NULL, // tilemap
};
-const struct WindowConfig gWindowConfig_81E7278 =
+const struct WindowTemplate gWindowTemplate_81E7278 =
{
0, // BG number
0, // BG character base block
@@ -1695,7 +1710,7 @@ const struct WindowConfig gWindowConfig_81E7278 =
NULL, // tilemap
};
-const struct WindowConfig gWindowConfig_81E7294 =
+const struct WindowTemplate gWindowTemplate_81E7294 =
{
0, // BG number
0, // BG character base block
@@ -1716,32 +1731,32 @@ const struct WindowConfig gWindowConfig_81E7294 =
NULL, // tilemap
};
-static void UpdateBGRegs(const struct WindowConfig *winConfig)
+static void UpdateBGRegs(const struct WindowTemplate *winTemplate)
{
- u8 bgNum = winConfig->bgNum;
+ u8 bgNum = winTemplate->bgNum;
*gBGHOffsetRegs[bgNum] = 0;
*gBGVOffsetRegs[bgNum] = 0;
- *gBGControlRegs[bgNum] = winConfig->priority | (winConfig->screenBaseBlock << 8) | (winConfig->charBaseBlock << 2);
+ *gBGControlRegs[bgNum] = winTemplate->priority | (winTemplate->screenBaseBlock << 8) | (winTemplate->charBaseBlock << 2);
}
-static void ClearBGMem(const struct WindowConfig *winConfig)
+static void ClearBGMem(const struct WindowTemplate *winTemplate)
{
- CpuFastFill(0, winConfig->tileData, 32);
+ CpuFastFill(0, winTemplate->tileData, 32);
- if (winConfig->tilemap)
- CpuFastFill(0, winConfig->tilemap, 0x800);
+ if (winTemplate->tilemap)
+ CpuFastFill(0, winTemplate->tilemap, 0x800);
}
-void LoadFontDefaultPalette(const struct WindowConfig *winConfig)
+void LoadFontDefaultPalette(const struct WindowTemplate *winTemplate)
{
- LoadPalette(gFontDefaultPalette, 16 * winConfig->paletteNum, 32);
+ LoadPalette(gFontDefaultPalette, 16 * winTemplate->paletteNum, 32);
}
-void SetUpWindowConfig(const struct WindowConfig *winConfig)
+void Text_LoadWindowTemplate(const struct WindowTemplate *winTemplate)
{
- UpdateBGRegs(winConfig);
- ClearBGMem(winConfig);
- LoadFontDefaultPalette(winConfig);
+ UpdateBGRegs(winTemplate);
+ ClearBGMem(winTemplate);
+ LoadFontDefaultPalette(winTemplate);
}
u16 InitWindowTileData(struct Window *win, u16 startOffset)
@@ -1751,13 +1766,13 @@ u16 InitWindowTileData(struct Window *win, u16 startOffset)
win->tileDataStartOffset = startOffset;
retVal = 0;
- switch (win->config->textMode)
+ switch (win->template->textMode)
{
- case 2:
+ case TEXT_MODE_UNKNOWN2:
retVal = InitVariableWidthFontTileData(win, startOffset);
break;
- case 1:
- switch (win->config->fontNum)
+ case TEXT_MODE_MONOSPACE:
+ switch (win->template->fontNum)
{
case 0:
case 3:
@@ -1789,7 +1804,7 @@ static u16 InitVariableWidthFontTileData(struct Window *win, u16 startOffset)
win->tileDataOffset = 2;
buffer = win->tileData + 32 * win->tileDataStartOffset;
CpuFastFill(0, buffer, 32);
- ApplyColors_UnshadowedFont(sBlankTile, (u32 *)(buffer + 32), win->config->foregroundColor, win->config->backgroundColor);
+ ApplyColors_UnshadowedFont(sBlankTile, (u32 *)(buffer + 32), win->template->foregroundColor, win->template->backgroundColor);
return win->tileDataStartOffset + win->tileDataOffset + win->width * win->height;
}
@@ -1850,15 +1865,15 @@ u32 MultistepInitWindowTileData(struct Window *win, u16 startOffset)
win->tileDataStartOffset = startOffset;
retVal = 0;
- switch (win->config->textMode)
+ switch (win->template->textMode)
{
- case 2:
+ case TEXT_MODE_UNKNOWN2:
retVal = InitVariableWidthFontTileData(win, startOffset);
break;
- case 1:
+ case TEXT_MODE_MONOSPACE:
retVal = 256;
- if (win->config->fontNum == 0
- || win->config->fontNum == 3)
+ if (win->template->fontNum == 0
+ || win->template->fontNum == 3)
retVal *= 2;
break;
}
@@ -1870,7 +1885,7 @@ bool32 MultistepLoadFont(void)
{
bool32 retVal = TRUE;
- if (sMultistepLoadFont_Window->config->textMode == 1)
+ if (sMultistepLoadFont_Window->template->textMode == TEXT_MODE_MONOSPACE)
{
s32 i;
@@ -1890,7 +1905,7 @@ static void MultistepLoadFont_LoadGlyph(struct Window *win, u16 startOffset, u8
{
u8 *buffer;
- switch (win->config->fontNum)
+ switch (win->template->fontNum)
{
case 0:
case 3:
@@ -1923,42 +1938,42 @@ void EmptyFunc(void)
{
}
-void InitWindowFromConfig(struct Window *win, const struct WindowConfig *winConfig)
+void Text_InitWindowWithTemplate(struct Window *win, const struct WindowTemplate *winTemplate)
{
*win = sDefaultWindow;
- win->config = (struct WindowConfig *)winConfig;
- win->textMode = winConfig->textMode;
- win->spacing = winConfig->spacing;
- win->fontNum = winConfig->fontNum;
- win->paletteNum = winConfig->paletteNum;
- win->tilemapLeft = winConfig->tilemapLeft;
- win->tilemapTop = winConfig->tilemapTop;
- win->width = winConfig->width;
- win->height = winConfig->height;
- win->tileData = winConfig->tileData;
- win->tilemap = winConfig->tilemap;
- InitColors(win);
- SetBackgroundColor(win, winConfig->backgroundColor);
- SetShadowColor(win, winConfig->shadowColor);
- SetForegroundColor(win, winConfig->foregroundColor);
-}
-
-void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
-{
- const struct WindowConfig *winConfig = win->config;
- win->textMode = winConfig->textMode;
- win->fontNum = winConfig->fontNum;
+ win->template = (struct WindowTemplate *)winTemplate;
+ win->textMode = winTemplate->textMode;
+ win->spacing = winTemplate->spacing;
+ win->fontNum = winTemplate->fontNum;
+ win->paletteNum = winTemplate->paletteNum;
+ win->tilemapLeft = winTemplate->tilemapLeft;
+ win->tilemapTop = winTemplate->tilemapTop;
+ win->width = winTemplate->width;
+ win->height = winTemplate->height;
+ win->tileData = winTemplate->tileData;
+ win->tilemap = winTemplate->tilemap;
+ SetWindowDefaultColors(win);
+ SetWindowBackgroundColor(win, winTemplate->backgroundColor);
+ SetWindowShadowColor(win, winTemplate->shadowColor);
+ SetWindowForegroundColor(win, winTemplate->foregroundColor);
+}
+
+void Text_InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
+{
+ const struct WindowTemplate *winTemplate = win->template;
+ win->textMode = winTemplate->textMode;
+ win->fontNum = winTemplate->fontNum;
win->language = GAME_LANGUAGE;
- win->paletteNum = winConfig->paletteNum;
+ win->paletteNum = winTemplate->paletteNum;
win->win_field_B = 0;
win->win_field_C = 0;
win->delayCounter = 0;
- win->spacing = winConfig->spacing;
+ win->spacing = winTemplate->spacing;
win->win_field_F = 0;
- win->tilemapLeft = winConfig->tilemapLeft;
- win->tilemapTop = winConfig->tilemapTop;
- win->width = winConfig->width;
- win->height = winConfig->height;
+ win->tilemapLeft = winTemplate->tilemapLeft;
+ win->tilemapTop = winTemplate->tilemapTop;
+ win->width = winTemplate->width;
+ win->height = winTemplate->height;
win->text = text;
win->textIndex = 0;
win->tileDataStartOffset = tileDataStartOffset;
@@ -1969,19 +1984,19 @@ void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8
win->cursorY = 0;
win->state = WIN_STATE_BEGIN;
win->downArrowCounter = 0;
- win->tileData = winConfig->tileData;
- win->tilemap = winConfig->tilemap;
- InitColors(win);
- SetBackgroundColor(win, winConfig->backgroundColor);
- SetShadowColor(win, winConfig->shadowColor);
- SetForegroundColor(win, winConfig->foregroundColor);
+ win->tileData = winTemplate->tileData;
+ win->tilemap = winTemplate->tilemap;
+ SetWindowDefaultColors(win);
+ SetWindowBackgroundColor(win, winTemplate->backgroundColor);
+ SetWindowShadowColor(win, winTemplate->shadowColor);
+ SetWindowForegroundColor(win, winTemplate->foregroundColor);
}
-void sub_8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6)
+void Text_InitWindow8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6)
{
u8 val;
- InitWindow(win, text, tileDataStartOffset, 0, 0);
+ Text_InitWindow(win, text, tileDataStartOffset, 0, 0);
win->left = left;
win->top = top;
val = 0;
@@ -1992,7 +2007,7 @@ void sub_8002E4C(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8
ClipLeft(win);
}
-void sub_8002E90(struct Window *win, const u8 *text)
+void Text_SetWindowText(struct Window *win, const u8 *text)
{
win->state = WIN_STATE_NORMAL;
win->text = text;
@@ -2003,15 +2018,15 @@ void sub_8002E90(struct Window *win, const u8 *text)
win->delayCounter = 0;
}
-void sub_8002EB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
+void Text_InitWindow8002EB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
{
gMain.watchedKeysMask = A_BUTTON | B_BUTTON;
gMain.watchedKeysPressed = 0;
- sWaitType = 0;
+ sWaitType = WAIT_TYPE_NORMAL;
sLineLength = 26;
- InitWindow(win, text, tileDataStartOffset, left, top);
+ Text_InitWindow(win, text, tileDataStartOffset, left, top);
win->win_field_B = -1;
- if (win->textMode == 0)
+ if (win->textMode == TEXT_MODE_UNKNOWN0)
{
u16 val = GetCursorTileNum(win, 0, 0);
u8 *buffer = win->tileData + 32 * val;
@@ -2021,9 +2036,9 @@ void sub_8002EB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8
}
}
-u8 sub_8002F44(struct Window *win)
+u8 Text_PrintWindow8002F44(struct Window *win)
{
- while (win->state)
+ while (win->state != WIN_STATE_END)
{
if (win->state == WIN_STATE_NEWLINE)
{
@@ -2038,7 +2053,7 @@ u8 sub_8002F44(struct Window *win)
sub_8002FA0(win, GetExpandedPlaceholder(win->text[win->textIndex++]));
}
- InterpretText(win);
+ PrintNextChar(win);
}
return 1;
}
@@ -2048,11 +2063,12 @@ static u8 sub_8002FA0(struct Window *win, const u8 *text)
u8 retVal;
u8 savedLanguage = win->language;
const u8 *savedText = win->text;
+
u16 savedTextIndex = win->textIndex;
win->text = text;
win->textIndex = 0;
win->state = WIN_STATE_NORMAL;
- retVal = sub_8002F44(win);
+ retVal = Text_PrintWindow8002F44(win);
win->text = savedText;
win->textIndex = savedTextIndex;
win->state = WIN_STATE_NORMAL;
@@ -2060,32 +2076,33 @@ static u8 sub_8002FA0(struct Window *win, const u8 *text)
return retVal;
}
-static u8 InterpretText(struct Window *win)
+static u8 PrintNextChar(struct Window *win)
{
u8 c = win->text[win->textIndex++];
+ // Handle special control characters
switch (c)
{
- case 0xFF:
+ case EOS:
ClipRight(win);
win->state = WIN_STATE_END;
return 0;
- case 0xFD:
+ case PLACEHOLDER_BEGIN:
win->state = WIN_STATE_PLACEHOLDER;
return 2;
- case 0xFE:
+ case CHAR_NEWLINE:
ClipRight(win);
win->state = WIN_STATE_NEWLINE;
return 2;
- case 0xFB:
+ case CHAR_PROMPT_CLEAR:
DrawInitialDownArrow(win);
- win->state = WIN_STATE_PARAGRAPH;
+ win->state = WIN_STATE_WAIT_CLEAR;
return 2;
- case 0xFA:
+ case CHAR_PROMPT_SCROLL:
DrawInitialDownArrow(win);
- win->state = WIN_STATE_NEWLINE_WAIT;
+ win->state = WIN_STATE_WAIT_SCROLL;
return 2;
- case 0xFC:
+ case EXT_CTRL_CODE_BEGIN:
return HandleExtCtrlCode(win);
}
@@ -2093,6 +2110,8 @@ static u8 InterpretText(struct Window *win)
return 1;
}
+// Extended 0xFC control functions
+
static u8 HandleExtCtrlCode(struct Window *win)
{
return sExtCtrlCodeFuncs[win->text[win->textIndex++]](win);
@@ -2105,27 +2124,27 @@ static u8 ExtCtrlCode_Nop(struct Window *win)
static u8 ExtCtrlCode_ForegroundColor(struct Window *win)
{
- SetForegroundColor(win, win->text[win->textIndex++]);
+ SetWindowForegroundColor(win, win->text[win->textIndex++]);
return 2;
}
static u8 ExtCtrlCode_BackgroundColor(struct Window *win)
{
- SetBackgroundColor(win, win->text[win->textIndex++]);
+ SetWindowBackgroundColor(win, win->text[win->textIndex++]);
return 2;
}
static u8 ExtCtrlCode_ShadowColor(struct Window *win)
{
- SetShadowColor(win, win->text[win->textIndex++]);
+ SetWindowShadowColor(win, win->text[win->textIndex++]);
return 2;
}
static u8 ExtCtrlCode_AllColors(struct Window *win)
{
- SetForegroundColor(win, win->text[win->textIndex++]);
- SetBackgroundColor(win, win->text[win->textIndex++]);
- SetShadowColor(win, win->text[win->textIndex++]);
+ SetWindowForegroundColor(win, win->text[win->textIndex++]);
+ SetWindowBackgroundColor(win, win->text[win->textIndex++]);
+ SetWindowShadowColor(win, win->text[win->textIndex++]);
return 2;
}
@@ -2143,7 +2162,7 @@ static u8 ExtCtrlCode_Font(struct Window *win)
static u8 ExtCtrlCode_DefaultFont(struct Window *win)
{
- win->fontNum = win->config->fontNum;
+ win->fontNum = win->template->fontNum;
return 2;
}
@@ -2197,7 +2216,7 @@ static u8 ExtCtrlCode_SetCursorY(struct Window *win)
static u8 ExtCtrlCode_ClearWindowTextLines(struct Window *win)
{
- ClearWindowTextLines(win);
+ Text_ClearWindow(win);
return 2;
}
@@ -2211,7 +2230,7 @@ static u8 ExtCtrlCode_PlaySE(struct Window *win)
static void DrawSpace(struct Window *win)
{
- if (win->textMode == 1 || (win->left + win->cursorX) & 7 || win->spacing <= 7)
+ if (win->textMode == TEXT_MODE_MONOSPACE || (win->left + win->cursorX) & 7 || win->spacing <= 7)
{
sPrintGlyphFuncs[win->textMode](win, 0);
}
@@ -2302,10 +2321,11 @@ static u8 ExtCtrlCode_Latin(struct Window *win)
return 2;
}
-u8 sub_8003418(struct Window *win)
+// Prints the window text without expanding any placeholders
+u8 Text_PrintWindowSimple(struct Window *win)
{
u8 retVal = 1;
- while (win->state)
+ while (win->state != WIN_STATE_END)
{
if (win->state == WIN_STATE_NEWLINE)
{
@@ -2315,7 +2335,7 @@ u8 sub_8003418(struct Window *win)
ClipLeft(win);
win->state = WIN_STATE_NORMAL;
}
- if (InterpretText(win) == 1)
+ if (PrintNextChar(win) == 1)
{
retVal = 0;
break;
@@ -2324,10 +2344,10 @@ u8 sub_8003418(struct Window *win)
return retVal;
}
-u8 sub_8003460(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
+u8 Text_InitWindowAndPrintText(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
{
- InitWindow(win, text, tileDataStartOffset, left, top);
- return sub_8002F44(win);
+ Text_InitWindow(win, text, tileDataStartOffset, left, top);
+ return Text_PrintWindow8002F44(win);
}
u8 sub_8003490(struct Window *win, u8 c, u16 tileDataStartOffset, u8 left, u8 top)
@@ -2336,48 +2356,51 @@ u8 sub_8003490(struct Window *win, u8 c, u16 tileDataStartOffset, u8 left, u8 to
u8 text[2];
text[0] = c;
text[1] = EOS;
- InitWindow(win, text, tileDataStartOffset, left, top);
- retVal = InterpretText(win);
+ Text_InitWindow(win, text, tileDataStartOffset, left, top);
+ retVal = PrintNextChar(win);
ClipRight(win);
return retVal;
}
void sub_80034D4(u8 *tileData, const u8 *text)
{
- sub_8004E3C(&gWindowConfig_81E6C74, tileData, text);
+ Text_InitWindow8004E3C(&gWindowTemplate_81E6C74, tileData, text);
}
u8 sub_80034EC(u8 *str)
{
- return GetStringWidthGivenWindowConfig((struct WindowConfig *)&gWindowConfig_81E6C74, str);
+ return Text_GetStringWidthFromWindowTemplate((struct WindowTemplate *)&gWindowTemplate_81E6C74, str);
}
u8 *sub_8003504(u8 *dest, s32 value, u8 alignAmount, u8 alignType)
{
- sTempWindow.config = (struct WindowConfig *)&gWindowConfig_81E6C74;
- InitWindow(&sTempWindow, 0, 0, 0, 0);
+ sTempWindow.template = (struct WindowTemplate *)&gWindowTemplate_81E6C74;
+ Text_InitWindow(&sTempWindow, 0, 0, 0, 0);
return AlignInt2(&sTempWindow, dest, value, alignAmount, alignType);
}
u8 *sub_8003558(u8 *dest, const u8 *src, u8 alignAmount, u8 alignType)
{
- sTempWindow.config = (struct WindowConfig *)&gWindowConfig_81E6C74;
- InitWindow(&sTempWindow, src, 0, 0, 0);
+ sTempWindow.template = (struct WindowTemplate *)&gWindowTemplate_81E6C74;
+ Text_InitWindow(&sTempWindow, src, 0, 0, 0);
return AlignString(&sTempWindow, dest, src, alignAmount, alignType);
}
-u8 sub_80035AC(struct Window *win)
+// Updates the window text
+// The text delay can be accelerated by holding the A button
+u8 Text_UpdateWindow(struct Window *win)
{
- sWaitType = 0;
+ sWaitType = WAIT_TYPE_NORMAL;
return UpdateWindowText(win);
}
+// Returns TRUE when all of the text has been printed.
static u8 UpdateWindowText(struct Window *win)
{
switch (win->state)
{
case WIN_STATE_WAIT_BUTTON:
- if (PlayerCanInterruptWait(win))
+ if (PlayerCanInterruptDelay(win))
{
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
@@ -2385,48 +2408,56 @@ static u8 UpdateWindowText(struct Window *win)
}
else
{
- return 0;
+ return FALSE;
}
}
else
{
win->delayCounter--;
if (win->delayCounter)
- return 0;
+ return FALSE;
}
win->state = WIN_STATE_NORMAL;
- return 0;
- case WIN_STATE_INTERRUPTIBLE_PAUSE:
- if (PlayerCanInterruptWait(win) && (gMain.heldKeys & (A_BUTTON | B_BUTTON)) && gMain.watchedKeysPressed == TRUE)
+ return FALSE;
+ case WIN_STATE_CHAR_DELAY:
+ // Allow the player to speed up text by holding a button
+ if (PlayerCanInterruptDelay(win)
+ && (gMain.heldKeys & (A_BUTTON | B_BUTTON))
+ && gMain.watchedKeysPressed == TRUE)
{
win->delayCounter = 0;
win->state = WIN_STATE_NORMAL;
break;
}
+ // fall through
case WIN_STATE_PAUSE:
+ // Wait for timer to expire, then continue printing
if (win->delayCounter)
{
win->delayCounter--;
if (win->delayCounter)
- return 0;
+ return FALSE;
}
-
win->state = WIN_STATE_NORMAL;
break;
- case WIN_STATE_PARAGRAPH:
- if (!WaitWithDownArrow(win))
- return 0;
- ClearWindowTextLines(win);
- win->state = WIN_STATE_NORMAL;
- BLOCK_CROSS_JUMP
- return 0;
- case WIN_STATE_NEWLINE_WAIT:
- if (!WaitWithDownArrow(win))
- return 0;
- ScrollWindowTextLines(win);
- win->state = WIN_STATE_NORMAL;
- BLOCK_CROSS_JUMP
- return 0;
+ case WIN_STATE_WAIT_CLEAR:
+ // Erase the text once a button is pressed
+ if (WaitWithDownArrow(win))
+ {
+ Text_ClearWindow(win);
+ win->state = WIN_STATE_NORMAL;
+ asm("");
+ }
+ return FALSE;
+ case WIN_STATE_WAIT_SCROLL:
+ // Scroll the text once a button is pressed
+ if (WaitWithDownArrow(win))
+ {
+ ScrollWindowTextLines(win);
+ win->state = WIN_STATE_NORMAL;
+ asm("");
+ }
+ return FALSE;
case WIN_STATE_PLACEHOLDER:
win->textIndex++;
win->state = WIN_STATE_NORMAL;
@@ -2434,35 +2465,35 @@ static u8 UpdateWindowText(struct Window *win)
case WIN_STATE_NEWLINE:
ScrollWindowTextLines(win);
win->state = WIN_STATE_NORMAL;
- BLOCK_CROSS_JUMP
- return 0;
+ asm("");
+ return FALSE;
case WIN_STATE_BEGIN:
- ClearWindowTextLines(win);
+ Text_ClearWindow(win);
break;
case WIN_STATE_WAIT_SOUND:
if (IsSEPlaying())
- return 0;
+ return FALSE;
win->state = WIN_STATE_NORMAL;
break;
case WIN_STATE_END:
- return 1;
+ return TRUE; // done printing text
case WIN_STATE_NORMAL:
break;
default:
win->state = WIN_STATE_END;
- return 1;
+ return TRUE;
}
- InterpretText(win);
+ PrintNextChar(win);
switch (win->state)
{
case WIN_STATE_END:
- return 1;
+ return TRUE; // done printing text
case WIN_STATE_WAIT_BUTTON:
- case WIN_STATE_PARAGRAPH:
- case WIN_STATE_NEWLINE_WAIT:
- if (PlayerCanInterruptWait(win))
+ case WIN_STATE_WAIT_CLEAR:
+ case WIN_STATE_WAIT_SCROLL:
+ if (PlayerCanInterruptDelay(win))
return 0;
win->delayCounter = 60;
break;
@@ -2471,8 +2502,9 @@ static u8 UpdateWindowText(struct Window *win)
case WIN_STATE_WAIT_SOUND:
break;
default:
- win->state = WIN_STATE_INTERRUPTIBLE_PAUSE;
+ win->state = WIN_STATE_CHAR_DELAY;
win->delayCounter = GetTextDelay(win);
+ break;
}
return 0;
@@ -2484,45 +2516,45 @@ static u8 UpdateWindowText(struct Window *win)
#define SUB_800374C_LINE_LENGTH 27
#endif
-u8 sub_800374C(struct Window *win)
+u8 Text_UpdateWindowInBattle(struct Window *win)
{
u8 retVal;
- sWaitType = 1;
+ sWaitType = WAIT_TYPE_BATTLE;
sLineLength = SUB_800374C_LINE_LENGTH;
retVal = UpdateWindowText(win);
sLineLength = 26;
- sWaitType = 0;
+ sWaitType = WAIT_TYPE_NORMAL;
return retVal;
}
-u8 sub_8003778(struct Window *win)
+u8 Text_UpdateWindowAutoscroll(struct Window *win)
{
u8 retVal;
- sWaitType = 2;
+ sWaitType = WAIT_TYPE_AUTOSCROLL;
sLineLength = 26;
retVal = UpdateWindowText(win);
- sWaitType = 0;
+ sWaitType = WAIT_TYPE_NORMAL;
return retVal;
}
-u8 sub_80037A0(struct Window *win)
+u8 Text_UpdateWindowInContest(struct Window *win)
{
u8 retVal;
- sWaitType = 3;
+ sWaitType = WAIT_TYPE_CONTEST;
sLineLength = 17;
retVal = UpdateWindowText(win);
sLineLength = 26;
return retVal;
}
-u32 sub_80037C8(struct Window *win, u8 lineLength)
+u32 Text_UpdateWindowOverrideLineLength(struct Window *win, u8 lineLength)
{
u8 retVal;
- sWaitType = 0;
+ sWaitType = WAIT_TYPE_NORMAL;
sLineLength = lineLength;
retVal = UpdateWindowText(win);
sLineLength = 26;
@@ -2757,14 +2789,14 @@ static void ApplyColors_ShadowedFont(const void *src, void *dest, u8 foreground,
static void SetCursorX(struct Window *win, u8 x)
{
- if (win->textMode == 0 && ((win->left + win->cursorX) & 7))
+ if (win->textMode == TEXT_MODE_UNKNOWN0 && ((win->left + win->cursorX) & 7))
win->tileDataOffset += 2;
win->cursorX = x;
}
static void AddToCursorX(struct Window *win, u8 deltaX)
{
- if (win->textMode == 0)
+ if (win->textMode == TEXT_MODE_UNKNOWN0)
{
u8 x = win->cursorX;
win->cursorX += deltaX;
@@ -2779,7 +2811,7 @@ static void AddToCursorX(struct Window *win, u8 deltaX)
static void AddToCursorY(struct Window *win, u8 deltaY)
{
- if (win->textMode == 0 && ((win->left + win->cursorX) & 7))
+ if (win->textMode == TEXT_MODE_UNKNOWN0 && ((win->left + win->cursorX) & 7))
win->tileDataOffset += 2;
win->cursorY += deltaY;
}
@@ -2788,11 +2820,11 @@ static void EraseAtCursor(struct Window *win)
{
switch (win->textMode)
{
- case 0:
- case 2:
+ case TEXT_MODE_UNKNOWN0:
+ case TEXT_MODE_UNKNOWN2:
DrawGlyphTiles(win, 0, 8);
break;
- case 1:
+ case TEXT_MODE_MONOSPACE:
sWriteGlyphTilemapFuncs[win->fontNum](win, 0);
break;
}
@@ -2801,7 +2833,8 @@ static void EraseAtCursor(struct Window *win)
static void ClipLeft(struct Window *win)
{
u32 pixel = win->left & 7;
- if (win->textMode != 1 && pixel)
+
+ if (win->textMode != TEXT_MODE_MONOSPACE && pixel)
{
const u32 *masks = sGlyphMasks[8][pixel];
u32 outsideMask = masks[0];
@@ -2834,37 +2867,45 @@ static void ClipRight(struct Window *win)
{
register u8 cursorX asm("r0") = win->cursorX;
u8 left = win->left;
- u32 pixel = (cursorX + left) & 7;
- if (win->textMode != 1 && pixel)
+ u32 pixelX = (cursorX + left) & 7;
+
+ if (win->textMode != TEXT_MODE_MONOSPACE && pixelX != 0)
{
- const u32 *masks = sGlyphMasks[8 - pixel][pixel];
+ const u32 *masks = sGlyphMasks[8 - pixelX][pixelX];
u32 insideMask = masks[0];
u32 outside = (sGlyphBuffer.background & ~insideMask);
- u16 tileNum = GetCursorTileNum(win, 0, 0);
- u32 *buffer = (u32 *)(win->tileData + 32 * tileNum);
- buffer[0] = (buffer[0] & insideMask) | outside;
- buffer[1] = (buffer[1] & insideMask) | outside;
- buffer[2] = (buffer[2] & insideMask) | outside;
- buffer[3] = (buffer[3] & insideMask) | outside;
- buffer[4] = (buffer[4] & insideMask) | outside;
- buffer[5] = (buffer[5] & insideMask) | outside;
- buffer[6] = (buffer[6] & insideMask) | outside;
- buffer[7] = (buffer[7] & insideMask) | outside;
+ u16 tileNum;
+ u32 *tileData;
+
+ tileNum = GetCursorTileNum(win, 0, 0);
+ tileData = (u32 *)(win->tileData + 32 * tileNum);
+
+ tileData[0] = (tileData[0] & insideMask) | outside;
+ tileData[1] = (tileData[1] & insideMask) | outside;
+ tileData[2] = (tileData[2] & insideMask) | outside;
+ tileData[3] = (tileData[3] & insideMask) | outside;
+ tileData[4] = (tileData[4] & insideMask) | outside;
+ tileData[5] = (tileData[5] & insideMask) | outside;
+ tileData[6] = (tileData[6] & insideMask) | outside;
+ tileData[7] = (tileData[7] & insideMask) | outside;
+
tileNum = GetCursorTileNum(win, 0, 1);
- buffer = (u32 *)(win->tileData + 32 * tileNum);
- buffer[0] = (buffer[0] & insideMask) | outside;
- buffer[1] = (buffer[1] & insideMask) | outside;
- buffer[2] = (buffer[2] & insideMask) | outside;
- buffer[3] = (buffer[3] & insideMask) | outside;
- buffer[4] = (buffer[4] & insideMask) | outside;
- buffer[5] = (buffer[5] & insideMask) | outside;
- buffer[6] = (buffer[6] & insideMask) | outside;
- buffer[7] = (buffer[7] & insideMask) | outside;
+ tileData = (u32 *)(win->tileData + 32 * tileNum);
+
+ tileData[0] = (tileData[0] & insideMask) | outside;
+ tileData[1] = (tileData[1] & insideMask) | outside;
+ tileData[2] = (tileData[2] & insideMask) | outside;
+ tileData[3] = (tileData[3] & insideMask) | outside;
+ tileData[4] = (tileData[4] & insideMask) | outside;
+ tileData[5] = (tileData[5] & insideMask) | outside;
+ tileData[6] = (tileData[6] & insideMask) | outside;
+ tileData[7] = (tileData[7] & insideMask) | outside;
+
UpdateTilemap(win, 1);
}
}
-static void InitColors(struct Window *win)
+static void SetWindowDefaultColors(struct Window *win)
{
u32 i;
@@ -2876,7 +2917,7 @@ static void InitColors(struct Window *win)
sGlyphBuffer.colors[i] = i;
}
-static void SetBackgroundColor(struct Window *win, u8 color)
+static void SetWindowBackgroundColor(struct Window *win, u8 color)
{
u32 val1;
u32 val2;
@@ -2889,13 +2930,13 @@ static void SetBackgroundColor(struct Window *win, u8 color)
sGlyphBuffer.background = val3;
}
-static void SetShadowColor(struct Window *win, u8 color)
+static void SetWindowShadowColor(struct Window *win, u8 color)
{
win->shadowColor = color;
sGlyphBuffer.colors[14] = color;
}
-static void SetForegroundColor(struct Window *win, u8 color)
+static void SetWindowForegroundColor(struct Window *win, u8 color)
{
win->foregroundColor = color;
sGlyphBuffer.colors[15] = color;
@@ -2903,25 +2944,25 @@ static void SetForegroundColor(struct Window *win, u8 color)
static u8 GetTextDelay(struct Window *win)
{
- if (!PlayerCanInterruptWait(win))
+ if (!PlayerCanInterruptDelay(win))
return 3;
return sTextSpeedDelays[gSaveBlock2.optionsTextSpeed];
}
-static bool8 PlayerCanInterruptWait(struct Window *win)
+static bool8 PlayerCanInterruptDelay(struct Window *win)
{
bool8 retVal = TRUE;
switch (sWaitType)
{
- case 2:
+ case WAIT_TYPE_AUTOSCROLL:
retVal = FALSE;
break;
- case 3:
+ case WAIT_TYPE_CONTEST:
retVal = gIsLinkContest ? FALSE : TRUE;
break;
- case 1:
+ case WAIT_TYPE_BATTLE:
retVal = (gBattleTypeFlags & BATTLE_TYPE_LINK) ? FALSE : TRUE;
break;
}
@@ -2933,13 +2974,13 @@ static void ScrollWindowTextLines(struct Window *win)
{
switch (win->textMode)
{
- case 0:
+ case TEXT_MODE_UNKNOWN0:
ScrollWindowTextLines_TextMode0(win);
break;
- case 1:
- ScrollWindowTextLines_TextMode1(win);
+ case TEXT_MODE_MONOSPACE:
+ ScrollWindowTextLines_TextModeMonospace(win);
break;
- case 2:
+ case TEXT_MODE_UNKNOWN2:
ScrollWindowTextLines_TextMode2(win);
break;
}
@@ -2949,6 +2990,7 @@ static void ScrollWindowTextLines_TextMode0(struct Window *win)
{
if (win->cursorY == 0)
{
+ // Advance to the next line
win->tileDataOffset = 2 * sLineLength + 2;
win->cursorX = 0;
win->cursorY += 16;
@@ -2959,7 +3001,7 @@ static void ScrollWindowTextLines_TextMode0(struct Window *win)
win->tileDataOffset = 2 * sLineLength + 2;
else
win->tileDataOffset = 2;
- win->win_field_C = win->win_field_C ^ 2;
+ win->win_field_C ^= 2;
win->cursorX = 0;
DoScroll_TextMode0(win, sLineLength);
}
@@ -2973,16 +3015,21 @@ static void DoScroll_TextMode0(struct Window *win, u16 lineLength)
u16 fill;
buffer += val1 + val2;
fill = (win->paletteNum << 12) | GetBlankTileNum(win);
+
+ // Move the bottom line up
CpuCopy16(buffer + 64, buffer, lineLength * 2);
CpuCopy16(buffer + 96, buffer + 32, lineLength * 2);
+
+ // Clear the bottom line
CpuFill16(fill, buffer + 64, lineLength * 2);
CpuFill16(fill, buffer + 96, lineLength * 2);
}
-static void ScrollWindowTextLines_TextMode1(struct Window *win)
+static void ScrollWindowTextLines_TextModeMonospace(struct Window *win)
{
if (win->cursorY == 0)
{
+ // Advance to the next line
win->cursorX = 0;
win->cursorY += 16;
}
@@ -2990,17 +3037,21 @@ static void ScrollWindowTextLines_TextMode1(struct Window *win)
{
win->win_field_C ^= 2;
win->cursorX = 0;
- DoScroll_TextMode1(win, sLineLength);
+ DoScroll_TextModeMonospace(win, sLineLength);
}
}
-static void DoScroll_TextMode1(struct Window *win, u16 lineLength)
+static void DoScroll_TextModeMonospace(struct Window *win, u16 lineLength)
{
u16 *buffer = GetCursorTilemapPointer(win);
u16 *dest = buffer - 32;
u16 fill = (win->paletteNum << 12) | GetBlankTileNum(win);
+
+ // Move the bottom line up
CpuCopy16(buffer + 32, dest, lineLength * 2);
CpuCopy16(buffer + 64, buffer, lineLength * 2);
+
+ // Clear the bottom line
CpuFill16(fill, buffer + 32, lineLength * 2);
CpuFill16(fill, buffer + 64, lineLength * 2);
}
@@ -3009,6 +3060,7 @@ static void ScrollWindowTextLines_TextMode2(struct Window *win)
{
if (win->cursorY == 0)
{
+ // Advance to the next line
win->cursorX = 0;
win->cursorY += 16;
}
@@ -3055,18 +3107,18 @@ static void DoScroll_TextMode2(struct Window *win, u8 lineLength)
}
}
-void ClearWindowTextLines(struct Window *win)
+void Text_ClearWindow(struct Window *win)
{
switch (win->textMode)
{
- case 0:
+ case TEXT_MODE_UNKNOWN0:
ClearWindowTextLines_TextMode0_TextMode1(win, sLineLength);
win->tileDataOffset = 2;
break;
- case 1:
+ case TEXT_MODE_MONOSPACE:
ClearWindowTextLines_TextMode0_TextMode1(win, sLineLength);
break;
- case 2:
+ case TEXT_MODE_UNKNOWN2:
ClearWindowTextLines_TextMode2(win, sLineLength);
break;
}
@@ -3074,7 +3126,7 @@ void ClearWindowTextLines(struct Window *win)
static void ClearWindowTextLines_TextMode0_TextMode1(struct Window *win, u8 lineLength)
{
- u8 i;
+ u8 x, y;
u16 *buffer;
u16 fill;
@@ -3085,11 +3137,10 @@ static void ClearWindowTextLines_TextMode0_TextMode1(struct Window *win, u8 line
buffer = GetCursorTilemapPointer(win);
fill = GetBlankTileNum(win) | (win->paletteNum << 12);
- for (i = 0; i < 4; i++)
+ for (y = 0; y < 4; y++)
{
- u8 j;
- for (j = 0; j < lineLength; j++)
- buffer[j] = fill;
+ for (x = 0; x < lineLength; x++)
+ buffer[x] = fill;
buffer += 32;
}
}
@@ -3114,13 +3165,13 @@ static void ClearWindowTextLines_TextMode2(struct Window *win, u8 lineLength)
static void DrawDownArrow(struct Window *win)
{
- if (PlayerCanInterruptWait(win))
+ if (PlayerCanInterruptDelay(win))
{
const u32 *downArrowTiles = &sDownArrowTiles[((win->downArrowCounter & 0x0F00) >> 8) * 16];
switch (win->textMode)
{
- case 1:
+ case TEXT_MODE_MONOSPACE:
{
u8 *buffer;
u16 tileNum = win->tileDataStartOffset + 254;
@@ -3132,8 +3183,8 @@ static void DrawDownArrow(struct Window *win)
WriteGlyphTilemap(win, tileNum, tileNum + 1);
break;
}
- case 0:
- case 2:
+ case TEXT_MODE_UNKNOWN0:
+ case TEXT_MODE_UNKNOWN2:
{
struct GlyphTileInfo glyphTileInfo;
glyphTileInfo.textMode = win->textMode;
@@ -3172,9 +3223,9 @@ static void DrawDownArrow(struct Window *win)
static u8 WaitWithDownArrow(struct Window *win)
{
- u8 retVal = 1;
+ u8 retVal = TRUE;
- if (!PlayerCanInterruptWait(win))
+ if (!PlayerCanInterruptDelay(win))
{
win->delayCounter--;
if (!win->delayCounter)
@@ -3183,8 +3234,8 @@ static u8 WaitWithDownArrow(struct Window *win)
}
else
{
- DrawMovingDownArrow(win);
- retVal = 0;
+ UpdateDownArrowAnimation(win);
+ retVal = FALSE;
}
}
else
@@ -3196,8 +3247,8 @@ static u8 WaitWithDownArrow(struct Window *win)
}
else
{
- DrawMovingDownArrow(win);
- retVal = 0;
+ UpdateDownArrowAnimation(win);
+ retVal = FALSE;
}
}
@@ -3210,7 +3261,7 @@ static void DrawInitialDownArrow(struct Window *win)
DrawDownArrow(win);
}
-static void DrawMovingDownArrow(struct Window *win)
+static void UpdateDownArrowAnimation(struct Window *win)
{
u16 downArrowPos = (win->downArrowCounter & 0x0F00) >> 8;
u16 wait = win->downArrowCounter & 0x000F;
@@ -3237,31 +3288,37 @@ static void DrawMovingDownArrow(struct Window *win)
static void TryEraseDownArrow(struct Window *win)
{
win->downArrowCounter = 0;
- if (PlayerCanInterruptWait(win) == TRUE)
+ if (PlayerCanInterruptDelay(win) == TRUE)
EraseAtCursor(win);
}
-u16 GetWindowTilemapEntry(struct Window *win, u8 x, u8 y)
+// unused
+u16 Text_GetWindowTilemapEntry(struct Window *win, u8 x, u8 y)
{
u16 *tilemap = win->tilemap;
return tilemap[32 * y + x];
}
-void DrawWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom)
+// unused
+void Text_FillWindowBorder(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom)
{
u8 i;
u16 *buffer = &win->tilemap[top * 32];
+ // Fill top border
for (i = left; i <= right; i++)
buffer[i] = tilemapEntry;
for (i = top + 1; i < bottom - 1; i++)
{
buffer += 32;
+ // left border
buffer[left] = tilemapEntry;
+ // right border
buffer[right] = tilemapEntry;
}
+ // Fill bottom border
if (top != bottom)
{
buffer += 32;
@@ -3270,37 +3327,39 @@ void DrawWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 ri
}
}
+// unused
void DrawWindowRect_DefaultPalette(struct Window *win, u16 tileNum, u8 left, u8 top, u8 right, u8 bottom)
{
- DrawWindowRect(win, (win->paletteNum << 12) | tileNum, left, top, right, bottom);
+ Text_FillWindowBorder(win, (win->paletteNum << 12) | tileNum, left, top, right, bottom);
}
-void FillWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom)
+// Fills the whole window area with tilemapEntry
+void Text_FillWindowRect(struct Window *win, u16 tilemapEntry, u8 left, u8 top, u8 right, u8 bottom)
{
u16 *buffer = &win->tilemap[top * 32];
while (top++ <= bottom)
{
- u8 j;
- for (j = left; j <= right; j++)
- buffer[j] = tilemapEntry;
+ u8 x;
+ for (x = left; x <= right; x++)
+ buffer[x] = tilemapEntry;
buffer += 32;
}
}
-void FillWindowRect_DefaultPalette(struct Window *win, u16 tileNum, u8 left, u8 top, u8 right, u8 bottom)
+void Text_FillWindowRectDefPalette(struct Window *win, u16 tileNum, u8 left, u8 top, u8 right, u8 bottom)
{
- FillWindowRect(win, (win->paletteNum << 12) | tileNum, left, top, right, bottom);
+ Text_FillWindowRect(win, (win->paletteNum << 12) | tileNum, left, top, right, bottom);
}
-void ZeroFillWindowRect(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
+void Text_EraseWindowRect(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
{
- FillWindowRect_DefaultPalette(win, 0, left, top, right, bottom);
+ Text_FillWindowRectDefPalette(win, 0, left, top, right, bottom);
}
-void FillWindowRectWithBlankTile(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
+void Text_BlankWindowRect(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
{
u16 tileNum = GetBlankTileNum(win);
- FillWindowRect_DefaultPalette(win, tileNum, left, top, right, bottom);
+ Text_FillWindowRectDefPalette(win, tileNum, left, top, right, bottom);
}
static u16 GetBlankTileNum(struct Window *win)
@@ -3309,12 +3368,12 @@ static u16 GetBlankTileNum(struct Window *win)
switch (win->textMode)
{
- case 0:
+ case TEXT_MODE_UNKNOWN0:
break;
- case 2:
+ case TEXT_MODE_UNKNOWN2:
retVal++;
break;
- case 1:
+ case TEXT_MODE_MONOSPACE:
switch (win->fontNum)
{
case 1:
@@ -3451,7 +3510,7 @@ u8 *AlignInt2(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignT
ConvertIntToDecimalString(temp, value);
width = GetStringWidth(win, temp);
dest = StringCopy(dest, temp);
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 17;
dest[2] = alignAmount - width;
dest += 3;
@@ -3462,7 +3521,7 @@ u8 *AlignInt2(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignT
width = GetStringWidth(win, temp);
if (alignAmount > width)
{
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 17;
dest[2] = alignAmount - width;
dest += 3;
@@ -3474,7 +3533,7 @@ u8 *AlignInt2(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignT
width = GetStringWidth(win, temp);
if (alignAmount > width)
{
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 17;
dest[2] = (alignAmount - width) / 2;
dest += 3;
@@ -3482,7 +3541,7 @@ u8 *AlignInt2(struct Window *win, u8 *dest, s32 value, u8 alignAmount, u8 alignT
dest = StringCopy(dest, temp);
if (alignAmount > width)
{
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 17;
dest[2] = (alignAmount - width) / 2;
dest += 3;
@@ -3500,7 +3559,7 @@ u8 *AlignString(struct Window *win, u8 *dest, const u8 *src, u8 alignAmount, u8
{
case 0:
dest = StringCopy(dest, src);
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 19;
dest[2] = alignAmount;
dest += 3;
@@ -3510,7 +3569,7 @@ u8 *AlignString(struct Window *win, u8 *dest, const u8 *src, u8 alignAmount, u8
width = GetStringWidth(win, src);
if (alignAmount > width)
{
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 19;
dest[2] = alignAmount - width;
dest += 3;
@@ -3521,7 +3580,7 @@ u8 *AlignString(struct Window *win, u8 *dest, const u8 *src, u8 alignAmount, u8
width = GetStringWidth(win, src);
if (alignAmount > width)
{
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 19;
dest[2] = (alignAmount - width) / 2;
dest += 3;
@@ -3529,7 +3588,7 @@ u8 *AlignString(struct Window *win, u8 *dest, const u8 *src, u8 alignAmount, u8
dest = StringCopy(dest, src);
if (alignAmount > width)
{
- dest[0] = 0xFC;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
dest[1] = 19;
dest[2] = alignAmount;
dest += 3;
@@ -3544,16 +3603,16 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
{
u8 width = 0;
u8 savedFontNum = win->fontNum;
- u8 savedCharset = win->language;
+ u8 savedLanguage = win->language;
u8 savedSpacing = win->spacing;
s32 i = 0;
- while (s[i] != 0xFF)
+ while (s[i] != EOS)
{
u8 c = s[i];
switch (c)
{
- case 0xFD:
+ case PLACEHOLDER_BEGIN:
{
u8 temp;
i++;
@@ -3563,7 +3622,7 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
i++;
break;
}
- case 0xFC:
+ case EXT_CTRL_CODE_BEGIN:
i++;
switch (s[i])
{
@@ -3571,7 +3630,7 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
win->fontNum = s[i + 1];
break;
case 7:
- win->fontNum = win->config->fontNum;
+ win->fontNum = win->template->fontNum;
break;
case 0x11:
width += s[i + 1];
@@ -3601,64 +3660,64 @@ u8 GetStringWidth(struct Window *win, const u8 *s)
}
win->spacing = savedSpacing;
- win->language = savedCharset;
+ win->language = savedLanguage;
win->fontNum = savedFontNum;
return width;
}
-u8 sub_8004D04(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6)
+u8 Text_InitWindow8004D04(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u16 top, u32 a6)
{
- sub_8002E4C(win, text, tileDataStartOffset, left, top, a6);
- return sub_8002F44(win);
+ Text_InitWindow8002E4C(win, text, tileDataStartOffset, left, top, a6);
+ return Text_PrintWindow8002F44(win);
}
-u8 sub_8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
+u8 Text_InitWindow8004D38(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
{
u8 width = GetStringWidth(win, text);
- InitWindow(win, text, tileDataStartOffset, left - ((u32)(width + 7) >> 3), top);
+ Text_InitWindow(win, text, tileDataStartOffset, left - ((u32)(width + 7) >> 3), top);
EraseAtCursor(win);
width &= 7;
if (width)
width = 8 - width;
sub_80048D8(win, width, 0);
- return sub_8002F44(win);
+ return Text_PrintWindow8002F44(win);
}
-u8 sub_8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6)
+u8 Text_InitWindow8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top, u16 a6)
{
register u32 val asm("r5") = (u8)((a6 >> 1) - (GetStringWidth(win, text) >> 1));
left += (val >> 3);
- InitWindow(win, text, tileDataStartOffset, left, top);
+ Text_InitWindow(win, text, tileDataStartOffset, left, top);
EraseAtCursor(win);
sub_80048D8(win, val & 7, 0);
- return sub_8002F44(win);
+ return Text_PrintWindow8002F44(win);
}
-u8 sub_8004E24(struct Window *win)
+u8 Text_GetWindowPaletteNum(struct Window *win)
{
return win->paletteNum;
}
-void sub_8004E28(struct Window *win, u8 *foreground, u8 *background, u8 *shadow)
+void Text_GetTextColors(struct Window *win, u8 *foreground, u8 *background, u8 *shadow)
{
*foreground = win->foregroundColor;
*background = win->backgroundColor;
*shadow = win->shadowColor;
}
-void sub_8004E3C(const struct WindowConfig *winConfig, u8 *tileData, const u8 *text)
+void Text_InitWindow8004E3C(const struct WindowTemplate *winTemplate, u8 *tileData, const u8 *text)
{
- sTempWindow.config = winConfig;
- InitWindow(&sTempWindow, text, 0, 0, 0);
+ sTempWindow.template = winTemplate;
+ Text_InitWindow(&sTempWindow, text, 0, 0, 0);
sTempWindow.tileData = tileData;
- sub_8002F44(&sTempWindow);
+ Text_PrintWindow8002F44(&sTempWindow);
}
-u8 GetStringWidthGivenWindowConfig(const struct WindowConfig *winConfig, const u8 *s)
+u8 Text_GetStringWidthFromWindowTemplate(const struct WindowTemplate *winTemplate, const u8 *s)
{
- sTempWindow.config = winConfig;
- InitWindow(&sTempWindow, s, 0, 0, 0);
+ sTempWindow.template = winTemplate;
+ Text_InitWindow(&sTempWindow, s, 0, 0, 0);
return GetStringWidth(&sTempWindow, s);
}
@@ -3668,11 +3727,11 @@ void ConvertInternationalString(u8 *s, u8 language)
{
u8 i;
- StripExtCtrlCodes(s);
+ Text_StripExtCtrlCodes(s);
i = StringLength(s);
- s[i++] = 0xFC;
+ s[i++] = EXT_CTRL_CODE_BEGIN;
s[i++] = 22;
- s[i++] = 0xFF;
+ s[i++] = EOS;
i--;
@@ -3682,18 +3741,18 @@ void ConvertInternationalString(u8 *s, u8 language)
i--;
}
- s[0] = 0xFC;
+ s[0] = EXT_CTRL_CODE_BEGIN;
s[1] = 21;
}
}
-void StripExtCtrlCodes(u8 *str)
+void Text_StripExtCtrlCodes(u8 *str)
{
u16 srcIndex = 0;
u16 destIndex = 0;
- while (str[srcIndex] != 0xFF)
+ while (str[srcIndex] != EOS)
{
- if (str[srcIndex] == 0xFC)
+ if (str[srcIndex] == EXT_CTRL_CODE_BEGIN)
{
srcIndex++;
srcIndex += GetExtCtrlCodeLength(str[srcIndex]);
@@ -3703,12 +3762,12 @@ void StripExtCtrlCodes(u8 *str)
str[destIndex++] = str[srcIndex++];
}
}
- str[destIndex] = 0xFF;
+ str[destIndex] = EOS;
}
static const u8 *SkipExtCtrlCode(const u8 *s)
{
- while (*s == 0xFC)
+ while (*s == EXT_CTRL_CODE_BEGIN)
{
s++;
s += GetExtCtrlCodeLength(*s);
@@ -3801,8 +3860,8 @@ u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOff
if (endsWithoutNewline)
newlineCount++;
- sub_8002E4C(win, start, tileDataStartOffset, left, top, a8);
- sub_8002F44(win);
+ Text_InitWindow8002E4C(win, start, tileDataStartOffset, left, top, a8);
+ Text_PrintWindow8002F44(win);
return newlineCount;
}
@@ -3827,7 +3886,7 @@ static s32 DrawGlyphTile_UnshadowedFont(struct GlyphTileInfo *glyphTileInfo)
if (glyphTileInfo->startPixel + glyphTileInfo->width > 8)
{
u32 mask2 = masks[1];
- if (glyphTileInfo->textMode == 2)
+ if (glyphTileInfo->textMode == TEXT_MODE_UNKNOWN2)
{
glyphBuffer->pixelRows[8] = buffer[8] & mask2;
glyphBuffer->pixelRows[9] = buffer[9] & mask2;
@@ -3867,7 +3926,7 @@ static s32 DrawGlyphTile_UnshadowedFont(struct GlyphTileInfo *glyphTileInfo)
if (glyphTileInfo->startPixel + glyphTileInfo->width > 8)
{
- if (glyphTileInfo->textMode != 2)
+ if (glyphTileInfo->textMode != TEXT_MODE_UNKNOWN2)
buffer += 8;
buffer[8] = glyphBuffer->pixelRows[8];
buffer[9] = glyphBuffer->pixelRows[9];
@@ -4039,7 +4098,7 @@ static s32 DrawGlyphTile_ShadowedFont(struct GlyphTileInfo *glyphTileInfo)
if (glyphTileInfo->startPixel + glyphTileInfo->width > 8)
{
u32 mask2 = masks[1];
- if (glyphTileInfo->textMode == 2)
+ if (glyphTileInfo->textMode == TEXT_MODE_UNKNOWN2)
{
glyphBuffer->pixelRows[8] = buffer[8] & mask2;
glyphBuffer->pixelRows[9] = buffer[9] & mask2;
@@ -4076,7 +4135,7 @@ static s32 DrawGlyphTile_ShadowedFont(struct GlyphTileInfo *glyphTileInfo)
if (glyphTileInfo->startPixel + glyphTileInfo->width > 8)
{
- if (glyphTileInfo->textMode != 2)
+ if (glyphTileInfo->textMode != TEXT_MODE_UNKNOWN2)
buffer += 8;
buffer[8] = glyphBuffer->pixelRows[8];
buffer[9] = glyphBuffer->pixelRows[9];
@@ -4314,7 +4373,7 @@ static u16 GetCursorTileNum(struct Window *win, u32 xOffset, u32 yOffset)
{
u16 index;
- if (win->textMode == 2)
+ if (win->textMode == TEXT_MODE_UNKNOWN2)
index = win->tileDataStartOffset
+ win->tileDataOffset
+ (((win->top + win->cursorY) >> 3) + yOffset) * win->width
diff --git a/src/engine/text_window.c b/src/engine/text_window.c
index c001ddefc..ade349f4e 100644
--- a/src/engine/text_window.c
+++ b/src/engine/text_window.c
@@ -4,19 +4,22 @@
#include "palette.h"
#include "text.h"
-#define STD_MSG_BOX_LEFT 0
-#define STD_MSG_BOX_TOP 14
-#define STD_MSG_BOX_WIDTH 26
-#define STD_MSG_BOX_HEIGHT 4
+#define STD_WINDOW_PALETTE_NUM 14
+
+// Dimensions (in tiles) of a field dialogue frame
+#define STD_DLG_FRAME_LEFT 0
+#define STD_DLG_FRAME_TOP 14
+#define STD_DLG_FRAME_WIDTH 26
+#define STD_DLG_FRAME_HEIGHT 4
static void LoadTextWindowTiles(u8, void *);
static void LoadTextWindowPalette(u8, u8);
-static void DrawTextWindowInternal(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom);
-static u16 GetMessageBoxTilemapEntry(u16 tilemapEntry, u8 x, u8 y, u8 width, u8 height);
-static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 height);
+static void DrawStandardFrame(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom);
+static u16 GetDialogueFrameTilemapEntry(u16 tilemapEntry, u8 x, u8 y, u8 width, u8 height);
+static void DrawDialogueFrame(struct Window *win, u8 left, u8 top, u8 width, u8 height);
static u16 sTextWindowBaseTileNum;
-static u16 sMessageBoxBaseTileNum;
+static u16 sDialogueFrameBaseTileNum;
extern const u8 gTextWindowFrame1_Gfx[];
extern const u8 gTextWindowFrame2_Gfx[];
@@ -60,9 +63,9 @@ extern const u16 gTextWindowFrame18_Pal[];
extern const u16 gTextWindowFrame19_Pal[];
extern const u16 gTextWindowFrame20_Pal[];
-extern const u8 gMessageBox_Gfx[];
+extern const u8 gDialogueFrame_Gfx[];
-static const struct FrameGraphics gUnknown_083761F0[20] =
+static const struct FrameGraphics sTextWindowFrameGraphics[20] =
{
{gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal},
{gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal},
@@ -86,7 +89,7 @@ static const struct FrameGraphics gUnknown_083761F0[20] =
{gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal},
};
-static const u16 gMessageBoxTilemap[5][7] =
+static const u16 sDialogueFrameTilemap[5][7] =
{
{1, 3, 4, 4, 5, 6, 9},
{11, 9, 9, 9, 9, 0x040B, 9},
@@ -95,113 +98,124 @@ static const u16 gMessageBoxTilemap[5][7] =
{0x0801, 0x0803, 0x0804, 0x0804, 0x0805, 0x0806, 9},
};
-u16 SetTextWindowBaseTileNum(u16 baseTileNum)
+u16 TextWindow_SetBaseTileNum(u16 baseTileNum)
{
sTextWindowBaseTileNum = baseTileNum;
return baseTileNum + 9;
}
-void LoadTextWindowGraphics(struct Window *win)
+// Loads the tiles and palette of the window frame into VRAM using the selected frame type
+void TextWindow_LoadStdFrameGraphics(struct Window *win)
{
- u8 *tileData = win->config->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
+ u8 *tileData = win->template->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
LoadTextWindowTiles(gSaveBlock2.optionsWindowFrameType, tileData);
- LoadTextWindowPalette(gSaveBlock2.optionsWindowFrameType, 0xE);
+ LoadTextWindowPalette(gSaveBlock2.optionsWindowFrameType, STD_WINDOW_PALETTE_NUM);
}
-void LoadTextWindowGraphics_OverridePalSlot(struct Window *win, u8 palSlot)
+// Loads the tiles and palette of the window frame into VRAM with an alternate palette
+void TextWindow_LoadStdFrameGraphicsOverridePal(struct Window *win, u8 palSlot)
{
- u8 *tileData = win->config->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
+ u8 *tileData = win->template->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
LoadTextWindowTiles(gSaveBlock2.optionsWindowFrameType, tileData);
LoadTextWindowPalette(gSaveBlock2.optionsWindowFrameType, palSlot);
}
-void LoadTextWindowGraphics_OverrideFrameType(struct Window *win, u8 frameType)
+// Loads the tiles and palette of the window frame into VRAM with an alternate frame type
+void TextWindow_LoadStdFrameGraphicsOverrideStyle(struct Window *win, u8 frameType)
{
- u8 *tileData = win->config->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
+ u8 *tileData = win->template->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
LoadTextWindowTiles(frameType, tileData);
- LoadTextWindowPalette(frameType, 0xE);
+ LoadTextWindowPalette(frameType, STD_WINDOW_PALETTE_NUM);
}
-void DrawTextWindow(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
+void TextWindow_DrawStdFrame(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
{
- DrawTextWindowInternal(win->config->tilemap, sTextWindowBaseTileNum, left, top, right, bottom);
+ DrawStandardFrame(win->template->tilemap, sTextWindowBaseTileNum, left, top, right, bottom);
}
-const struct FrameGraphics *GetTextWindowFrameGraphics(u8 frameType)
+// Returns the tile data and palette for the specified frame type
+const struct FrameGraphics *TextWindow_GetFrameGraphics(u8 frameType)
{
if (frameType > 19)
- return &gUnknown_083761F0[0];
+ return &sTextWindowFrameGraphics[0];
else
- return &gUnknown_083761F0[frameType];
+ return &sTextWindowFrameGraphics[frameType];
}
static void LoadTextWindowTiles(u8 frameType, void *dest)
{
- const struct FrameGraphics *frameGraphics = GetTextWindowFrameGraphics(frameType);
+ const struct FrameGraphics *frameGraphics = TextWindow_GetFrameGraphics(frameType);
CpuFastCopy(frameGraphics->tiles, dest, 9 * TILE_SIZE_4BPP);
}
static void LoadTextWindowPalette(u8 frameType, u8 palSlot)
{
- const struct FrameGraphics *frameGraphics = GetTextWindowFrameGraphics(frameType);
+ const struct FrameGraphics *frameGraphics = TextWindow_GetFrameGraphics(frameType);
LoadPalette(frameGraphics->palette, 16 * palSlot, 0x20);
}
-static void DrawTextWindowInternal(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom)
+// Draws a standard window frame
+static void DrawStandardFrame(u16 *tilemap, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom)
{
+ u8 startX = min(left, right);
+ u8 endX = max(left, right);
+ u8 startY = min(top, bottom);
+ u8 endY = max(top, bottom);
u8 x, y;
- u8 startX, endX;
- u8 startY, endY;
-
- startX = (left < right) ? left : right;
- endX = (right > left) ? right : left;
-
- startY = (top < bottom) ? top : bottom;
- endY = (bottom > top) ? bottom : top;
- dest[32 * startY + startX] = baseTileNum | 0xE000;
+ // top left corner
+ tilemap[32 * startY + startX] = baseTileNum | (STD_WINDOW_PALETTE_NUM << 12);
+ // top border
for (x = startX + 1; x < endX; x++)
- dest[32 * startY + x] = (baseTileNum + 1) | 0xE000;
+ tilemap[32 * startY + x] = (baseTileNum + 1) | (STD_WINDOW_PALETTE_NUM << 12);
- dest[32 * startY + endX] = (baseTileNum + 2) | 0xE000;
+ // top right corner
+ tilemap[32 * startY + endX] = (baseTileNum + 2) | (STD_WINDOW_PALETTE_NUM << 12);
for (y = startY + 1; y < endY; y++)
{
- dest[32 * y + startX] = (baseTileNum + 3) | 0xE000;
+ // left border
+ tilemap[32 * y + startX] = (baseTileNum + 3) | (STD_WINDOW_PALETTE_NUM << 12);
+ // middle
for (x = startX + 1; x < endX; x++)
- dest[32 * y + x] = (baseTileNum + 4) | 0xE000;
+ tilemap[32 * y + x] = (baseTileNum + 4) | (STD_WINDOW_PALETTE_NUM << 12);
- dest[32 * y + endX] = (baseTileNum + 5) | 0xE000;
+ // right border
+ tilemap[32 * y + endX] = (baseTileNum + 5) | (STD_WINDOW_PALETTE_NUM << 12);
}
- dest[32 * endY + startX] = (baseTileNum + 6) | 0xE000;
+ // bottom left corner
+ tilemap[32 * endY + startX] = (baseTileNum + 6) | (STD_WINDOW_PALETTE_NUM << 12);
+ // bottom border
for (x = startX + 1; x < endX; x++)
- dest[32 * endY + x] = (baseTileNum + 7) | 0xE000;
+ tilemap[32 * endY + x] = (baseTileNum + 7) | (STD_WINDOW_PALETTE_NUM << 12);
- dest[32 * endY + endX] = (baseTileNum + 8) | 0xE000;
+ // bottom right corner
+ tilemap[32 * endY + endX] = (baseTileNum + 8) | (STD_WINDOW_PALETTE_NUM << 12);
}
-u16 SetMessageBoxBaseTileNum(u16 baseTileNum)
+u16 TextWindow_SetDlgFrameBaseTileNum(u16 baseTileNum)
{
- sMessageBoxBaseTileNum = baseTileNum;
+ sDialogueFrameBaseTileNum = baseTileNum;
return baseTileNum + 14;
}
void unref_sub_80651DC(struct Window *win, u8 *text)
{
- sub_8002EB0(win, text, sMessageBoxBaseTileNum + 14, 2, 15);
+ Text_InitWindow8002EB0(win, text, sDialogueFrameBaseTileNum + 14, 2, 15);
}
-void DisplayMessageBox(struct Window *win)
+// Loads and draws a dialogue window frame
+void TextWindow_DisplayDialogueFrame(struct Window *win)
{
- LoadMessageBoxTiles(win);
- DrawStandardMessageBox(win);
+ TextWindow_LoadDialogueFrameTiles(win);
+ TextWindow_DrawDialogueFrame(win);
}
-static u16 GetMessageBoxTilemapEntry(u16 baseTilemapEntry, u8 x, u8 y, u8 width, u8 height)
+static u16 GetDialogueFrameTilemapEntry(u16 baseTilemapEntry, u8 x, u8 y, u8 width, u8 height)
{
u16 tilemapEntry = 9;
@@ -215,42 +229,47 @@ static u16 GetMessageBoxTilemapEntry(u16 baseTilemapEntry, u8 x, u8 y, u8 width,
else if (x > 2)
x = 3;
- if (x <= 6 && y <= 4)
- tilemapEntry = gMessageBoxTilemap[y][x];
+ if (x < 7 && y < 5)
+ tilemapEntry = sDialogueFrameTilemap[y][x];
tilemapEntry += baseTilemapEntry;
return tilemapEntry;
}
-static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 height)
+static void DrawDialogueFrame(struct Window *win, u8 left, u8 top, u8 width, u8 height)
{
- u8 i, j;
- u16 tilemapEntry = (win->paletteNum << 12) | sMessageBoxBaseTileNum;
- u16 *tilemap = win->config->tilemap;
+ u8 x, y;
+ u16 baseTilemapEntry = (win->paletteNum << 12) | sDialogueFrameBaseTileNum;
+ u16 *tilemap = win->template->tilemap;
- for (i = 0; i < height + 2; i++)
- for (j = 0; j < width + 6; j++)
- tilemap[(left + j) + 32 * (top + i)] = (win->paletteNum << 12) | GetMessageBoxTilemapEntry(tilemapEntry, j, i, width, height);
+ for (y = 0; y < height + 2; y++)
+ {
+ for (x = 0; x < width + 6; x++)
+ tilemap[(left + x) + 32 * (top + y)] = (win->paletteNum << 12) | GetDialogueFrameTilemapEntry(baseTilemapEntry, x, y, width, height);
+ }
}
-void DrawStandardMessageBox(struct Window *win)
+// Draws an alternate styled frame used for dialogue windows that appear on the overworld
+void TextWindow_DrawDialogueFrame(struct Window *win)
{
- DrawMessageBox(win, STD_MSG_BOX_LEFT, STD_MSG_BOX_TOP, STD_MSG_BOX_WIDTH, STD_MSG_BOX_HEIGHT);
+ DrawDialogueFrame(win, STD_DLG_FRAME_LEFT, STD_DLG_FRAME_TOP, STD_DLG_FRAME_WIDTH, STD_DLG_FRAME_HEIGHT);
}
-void LoadMessageBoxTiles(struct Window *win)
+// Loads the dialogue window frame tiles into VRAM
+void TextWindow_LoadDialogueFrameTiles(struct Window *win)
{
- u8 *tileData = win->config->tileData;
- CpuFastCopy(gMessageBox_Gfx, tileData + 32 * sMessageBoxBaseTileNum, 14 * TILE_SIZE_4BPP);
+ u8 *tileData = win->template->tileData;
+ CpuFastCopy(gDialogueFrame_Gfx, tileData + 32 * sDialogueFrameBaseTileNum, 14 * TILE_SIZE_4BPP);
}
-void ClearStandardMessageBox(struct Window *win)
+// Erases a dialogue window frame
+void TextWindow_EraseDialogueFrame(struct Window *win)
{
u8 i;
- u16 *tilemap = win->config->tilemap + (STD_MSG_BOX_TOP * 32);
+ u16 *tilemap = win->template->tilemap + (STD_DLG_FRAME_TOP * 32);
u16 tilemapEntry = win->paletteNum << 12;
- for (i = 0; i < ((STD_MSG_BOX_HEIGHT + 2) * 32); i++)
+ for (i = 0; i < ((STD_DLG_FRAME_HEIGHT + 2) * 32); i++)
tilemap[i] = tilemapEntry;
}
diff --git a/src/engine/time_events.c b/src/engine/time_events.c
index 3e3054aa3..4bd732788 100644
--- a/src/engine/time_events.c
+++ b/src/engine/time_events.c
@@ -93,7 +93,7 @@ void UpdateShoalTideFlag(void)
static void Task_WaitWeather(u8 taskId)
{
- if (sub_807DDFC())
+ if (IsWeatherChangeComplete())
{
EnableBothScriptContexts();
DestroyTask(taskId);
diff --git a/src/engine/trade.c b/src/engine/trade.c
index 0bc589ff4..36e6fc757 100644
--- a/src/engine/trade.c
+++ b/src/engine/trade.c
@@ -141,7 +141,7 @@ struct TradeEwramStruct {
};
static void sub_8047EC0(void);
-static void sub_804AFB8(const struct WindowConfig *, u8 *, const u8 *, u8);
+static void sub_804AFB8(const struct WindowTemplate *, u8 *, const u8 *, u8);
static void sub_804ACD8(const u8 *, u8 *, u8);
static void nullsub_5(u8, u8);
static void sub_804AA88(void);
@@ -213,12 +213,14 @@ static
#endif
void sub_804DB84(void);
-extern u8 gUnknown_020297D8[2];
-extern u8 *gUnknown_020296CC[13];
+EWRAM_DATA u8 *gUnknown_020296CC[13] = {0};
+EWRAM_DATA struct MailStruct gUnknown_02029700[6] = {0};
+EWRAM_DATA u8 gUnknown_020297D8[2] = {0};
+
extern struct TradeEwramSubstruct *gUnknown_03004824;
-extern struct MailStruct gUnknown_02029700[16];
-const u32 unref_data_820ABD4[] = {
+const u32 unref_data_820ABD4[] =
+{
0x00000890,
0x00003AC0,
0x0000001C,
@@ -1016,10 +1018,10 @@ void sub_8047CD8(void)
static void sub_8047CE8(void)
{
u8 mpId;
- sub_804AFB8(&gWindowConfig_81E725C, gUnknown_020296CC[0], gSaveBlock2.playerName, 0xC);
+ sub_804AFB8(&gWindowTemplate_81E725C, gUnknown_020296CC[0], gSaveBlock2.playerName, 0xC);
mpId = GetMultiplayerId();
- sub_804AFB8(&gWindowConfig_81E725C, gUnknown_020296CC[3], gLinkPlayers[mpId ^ 1].name, 0xC);
- sub_804AFB8(&gWindowConfig_81E725C, gUnknown_020296CC[6], gUnknown_0820C14C[0], 0x8);
+ sub_804AFB8(&gWindowTemplate_81E725C, gUnknown_020296CC[3], gLinkPlayers[mpId ^ 1].name, 0xC);
+ sub_804AFB8(&gWindowTemplate_81E725C, gUnknown_020296CC[6], gUnknown_0820C14C[0], 0x8);
sub_804ACD8(gUnknown_0820C14C[1], gUnknown_020296CC[8], 0x14);
nullsub_5(3, 0);
}
@@ -1087,12 +1089,12 @@ static void sub_8047EC0(void)
ResetTasks();
sub_804A964(&gUnknown_03004824->unk_00c8, BG_SCREEN_ADDR(5));
SetVBlankCallback(sub_80489F4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- SetUpWindowConfig(&gWindowConfig_81E6F84);
- InitWindowFromConfig(&gUnknown_03004824->window, &gWindowConfig_81E6F84);
- gUnknown_03004824->unk_007a = SetTextWindowBaseTileNum(20);
- LoadTextWindowGraphics(&gUnknown_03004824->window);
- MenuZeroFillScreen();
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F84);
+ Text_InitWindowWithTemplate(&gUnknown_03004824->window, &gWindowTemplate_81E6F84);
+ gUnknown_03004824->unk_007a = TextWindow_SetBaseTileNum(20);
+ TextWindow_LoadStdFrameGraphics(&gUnknown_03004824->window);
+ Menu_EraseScreen();
sub_809D51C();
gUnknown_03004824->unk_0075 = 0;
gUnknown_03004824->unk_007b = 0;
@@ -1157,7 +1159,7 @@ static void sub_8047EC0(void)
break;
case 6:
CalculateEnemyPartyCount();
- FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, 0, 0, 29, 19);
+ Text_FillWindowRectDefPalette(&gUnknown_03004824->window, 0, 0, 0, 29, 19);
REG_DISPCNT = 0;
gUnknown_03004824->partyCounts[0] = gPlayerPartyCount;
gUnknown_03004824->partyCounts[1] = gEnemyPartyCount;
@@ -1267,12 +1269,12 @@ static void sub_80484F4(void)
ResetTasks();
sub_804A964(&gUnknown_03004824->unk_00c8, BG_SCREEN_ADDR(5));
SetVBlankCallback(sub_80489F4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- SetUpWindowConfig(&gWindowConfig_81E6F84);
- InitWindowFromConfig(&gUnknown_03004824->window, &gWindowConfig_81E6F84);
- gUnknown_03004824->unk_007a = SetTextWindowBaseTileNum(20);
- LoadTextWindowGraphics(&gUnknown_03004824->window);
- MenuZeroFillScreen();
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F84);
+ Text_InitWindowWithTemplate(&gUnknown_03004824->window, &gWindowTemplate_81E6F84);
+ gUnknown_03004824->unk_007a = TextWindow_SetBaseTileNum(20);
+ TextWindow_LoadStdFrameGraphics(&gUnknown_03004824->window);
+ Menu_EraseScreen();
sub_809D51C();
gUnknown_03004824->unk_0075 = 0;
gUnknown_03004824->unk_007b = 0;
@@ -1453,9 +1455,7 @@ static void sub_8048AB4(void)
static void sub_8048B0C(u8 a0)
{
int i;
- u16 *dest;
- const u16 *src;
- u32 size;
+
switch (a0)
{
case 0:
@@ -1464,30 +1464,13 @@ static void sub_8048B0C(u8 a0)
gPlttBufferUnfaded[i] = *(gUnknown_08EA02C8 + i);
gPlttBufferFaded[i] = *(gUnknown_08EA02C8 + i);
}
- src = gUnknown_08EA0348;
- dest = (u16 *)BG_VRAM;
- size = 0x1280;
- while (1)
- {
- DmaCopy16(3, src, dest, BLOCKSIZE * sizeof(u16));
- src += BLOCKSIZE;
- dest += BLOCKSIZE;
- size -= BLOCKSIZE * sizeof(u16);
- if (size <= BLOCKSIZE * sizeof(u16))
- {
- DmaCopy16(3, src, dest, size);
- break;
- }
- }
+ DmaCopyLarge16(3, gUnknown_08EA0348, (void *)BG_VRAM, 0x1280, 0x1000);
for (i = 0; i < 0x400; i ++)
gUnknown_03004824->unk_00c8.unk_12[i] = gUnknown_08EA15C8[i];
- dest = BG_SCREEN_ADDR(6);
- DmaCopy16(3, gTradeStripesBG2Tilemap, dest, 0x800);
+ DmaCopy16Defvars(3, gTradeStripesBG2Tilemap, BG_SCREEN_ADDR(6), 0x800);
break;
case 1:
- src = gTradeStripesBG3Tilemap;
- dest = BG_SCREEN_ADDR(7);
- DmaCopy16(3, src, dest, 0x800);
+ DmaCopy16Defvars(3, gTradeStripesBG3Tilemap, BG_SCREEN_ADDR(7), 0x800);
sub_804A6DC(0);
sub_804A6DC(1);
sub_804A938(&gUnknown_03004824->unk_00c8);
@@ -1728,7 +1711,7 @@ static bool8 sub_8048D44(void)
gUnknown_03004824->unk_0075 ++;
break;
case 1:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
if (GetBlockReceivedStatus() == 0)
{
@@ -2096,8 +2079,8 @@ static void sub_8049680(void)
PlaySE(SE_SELECT);
if (gUnknown_03004824->tradeMenuCursorPosition < PARTY_SIZE)
{
- DrawTextWindow(&gUnknown_03004824->window, 18, 14, 28, 19);
- PrintMenuItems(19, 15, 2, (const struct MenuAction *)gUnknown_0820C320);
+ TextWindow_DrawStdFrame(&gUnknown_03004824->window, 18, 14, 28, 19);
+ Menu_PrintItems(19, 15, 2, (const struct MenuAction *)gUnknown_0820C320);
InitMenu(0, 19, 15, 2, 0, 9);
gUnknown_03004824->unk_007b = 1;
}
@@ -2108,7 +2091,7 @@ static void sub_8049680(void)
}
else if (gUnknown_03004824->tradeMenuCursorPosition == 2 * PARTY_SIZE)
{
- DrawTextWindow(&gUnknown_03004824->window, 24, 14, 29, 19);
+ TextWindow_DrawStdFrame(&gUnknown_03004824->window, 24, 14, 29, 19);
InitYesNoMenu(24, 14, 4);
gUnknown_03004824->unk_007b = 4;
sub_804ACD8(gUnknown_0820C14C[4], BG_CHAR_ADDR(4) + 32 * gUnknown_03004824->unk_007e, 20);
@@ -2126,7 +2109,7 @@ static void sub_8049680(void)
static void sub_8049804(void)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
sub_804A80C();
gUnknown_03004824->unk_007b = 0;
gSprites[gUnknown_03004824->tradeMenuCursorSpriteIdx].invisible = FALSE;
@@ -2138,17 +2121,17 @@ static void sub_8049860(void)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- gUnknown_03004824->unk_007c = MoveMenuCursor(-1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(-1);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- gUnknown_03004824->unk_007c = MoveMenuCursor(+1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(+1);
}
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- if (GetMenuCursorPos() == 0)
+ if (Menu_GetCursorPos() == 0)
{
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gUnknown_03004824->unk_007b = 2;
@@ -2227,7 +2210,7 @@ static void sub_8049A20(void)
{
sub_804AADC(3, 1);
gUnknown_03004824->linkData[0] = 0xbbbb;
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
Trade_SendData(gUnknown_03004824);
}
@@ -2239,24 +2222,24 @@ static void sub_8049AC0(void)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- gUnknown_03004824->unk_007c = MoveMenuCursor(-1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(-1);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- gUnknown_03004824->unk_007c = MoveMenuCursor(+1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(+1);
}
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- if (GetMenuCursorPos() == 0)
+ if (Menu_GetCursorPos() == 0)
{
sub_8049A20();
}
else
{
sub_804AADC(3, 1);
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
gUnknown_03004824->linkData[0] = 0xbbcc;
Trade_SendData(gUnknown_03004824);
@@ -2267,9 +2250,9 @@ static void sub_8049AC0(void)
else if (gMain.newKeys & B_BUTTON)
{
sub_804AADC(3, 1);
- if (GetMenuCursorPos() == 0)
+ if (Menu_GetCursorPos() == 0)
{
- gUnknown_03004824->unk_007c = MoveMenuCursor(+1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(+1);
}
gUnknown_03004824->linkData[0] = 0xbbcc;
Trade_SendData(gUnknown_03004824);
@@ -2282,17 +2265,17 @@ static void sub_8049BC0(void)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- gUnknown_03004824->unk_007c = MoveMenuCursor(-1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(-1);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- gUnknown_03004824->unk_007c = MoveMenuCursor(+1);
+ gUnknown_03004824->unk_007c = Menu_MoveCursor(+1);
}
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- if (GetMenuCursorPos() == 0)
+ if (Menu_GetCursorPos() == 0)
{
sub_804AA0C(4);
gUnknown_03004824->linkData[0] = 0xeeaa;
@@ -2337,7 +2320,7 @@ static void DisplayMessageAndContinueTask(void)
gUnknown_03004824->unk_00b4++;
if (gUnknown_03004824->unk_00b4 > 120)
{
- DrawTextWindow(&gUnknown_03004824->window, 24, 14, 29, 19);
+ TextWindow_DrawStdFrame(&gUnknown_03004824->window, 24, 14, 29, 19);
InitYesNoMenu(24, 14, 4);
gUnknown_03004824->unk_00b4 = 0;
gUnknown_03004824->unk_007b = 3;
@@ -2464,8 +2447,8 @@ static void sub_8049ED4(u8 a0)
StoreSpriteCallbackInData(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]], sub_809D62C);
gUnknown_03004824->unk_0080[a0] ++;
sub_8078A34(&gSprites[gUnknown_03004824->partyIcons[whichParty][whichPokemon]]);
- HandleDestroyMenuCursors();
- FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[whichParty][0], 0, gUnknown_0820C330[whichParty][1], 19);
+ Menu_DestroyCursor();
+ Text_FillWindowRectDefPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[whichParty][0], 0, gUnknown_0820C330[whichParty][1], 19);
sub_804A96C_alt(&gUnknown_03004824->unk_00c8, 15 * a0, 0, gTradePartyBoxTilemap, 15, 17, 0);
if (whichParty == 0)
{
@@ -2491,10 +2474,10 @@ static void sub_8049ED4(u8 a0)
string1[3] = 0xFC;
string1[4] = 0x11;
string1[5] = (64 - stringLength) / 2;
- sub_8003460(&gUnknown_03004824->window, string1, gUnknown_03004824->unk_007a + whichParty * 6 * 32, gUnknown_0820C334[whichParty][0], gUnknown_0820C334[whichParty][1]);
+ Text_InitWindowAndPrintText(&gUnknown_03004824->window, string1, gUnknown_03004824->unk_007a + whichParty * 6 * 32, gUnknown_0820C334[whichParty][0], gUnknown_0820C334[whichParty][1]);
sub_804A33C(string2, whichParty, whichPokemon);
- sub_8003460(&gUnknown_03004824->window, gOtherText_Terminator2, gUnknown_03004824->unk_007a + whichParty * 6 * 32 + 32, gUnknown_0820C334[whichParty + 1][0], gUnknown_0820C334[whichParty + 1][1] + 1);
- sub_8003460(&gUnknown_03004824->window, string2, gUnknown_03004824->unk_007a + whichParty * 6 * 32 + 38, gUnknown_0820C334[whichParty + 1][0], gUnknown_0820C334[whichParty + 1][1] + 1);
+ Text_InitWindowAndPrintText(&gUnknown_03004824->window, gOtherText_Terminator2, gUnknown_03004824->unk_007a + whichParty * 6 * 32 + 32, gUnknown_0820C334[whichParty + 1][0], gUnknown_0820C334[whichParty + 1][1] + 1);
+ Text_InitWindowAndPrintText(&gUnknown_03004824->window, string2, gUnknown_03004824->unk_007a + whichParty * 6 * 32 + 38, gUnknown_0820C334[whichParty + 1][0], gUnknown_0820C334[whichParty + 1][1] + 1);
gUnknown_03004824->unk_0080[a0] ++;
break;
case 4:
@@ -2692,7 +2675,7 @@ static void sub_8049ED4(u8 a0)
"\tlsls r0, 2\n"
"\tadds r0, r7\n"
"\tbl sub_8078A34\n"
- "\tbl HandleDestroyMenuCursors\n"
+ "\tbl Menu_DestroyCursor\n"
"\tldr r3, _0804A09C @ =gUnknown_03004824\n"
"\tldr r0, [r3]\n"
"\tadds r0, 0x4\n"
@@ -2708,7 +2691,7 @@ static void sub_8049ED4(u8 a0)
"\tstr r1, [sp, 0x4]\n"
"\tmovs r1, 0\n"
"\tmovs r3, 0\n"
- "\tbl FillWindowRect_DefaultPalette\n"
+ "\tbl Text_FillWindowRectDefPalette\n"
"\tldr r1, _0804A09C @ =gUnknown_03004824\n"
"\tldr r0, [r1]\n"
"\tadds r0, 0xC8\n"
@@ -2884,7 +2867,7 @@ static void sub_8049ED4(u8 a0)
"\tldrb r1, [r1]\n"
"\tstr r1, [sp]\n"
"\tadd r1, sp, 0xC\n"
- "\tbl sub_8003460\n"
+ "\tbl Text_InitWindowAndPrintText\n"
"\tadd r7, sp, 0x34\n"
"\tadds r0, r7, 0\n"
"\tldr r1, [sp, 0x6C]\n"
@@ -2910,7 +2893,7 @@ static void sub_8049ED4(u8 a0)
"\tlsrs r4, 24\n"
"\tstr r4, [sp]\n"
"\tadds r3, r5, 0\n"
- "\tbl sub_8003460\n"
+ "\tbl Text_InitWindowAndPrintText\n"
"\tldr r0, _0804A22C @ =gUnknown_03004824\n"
"\tldr r1, [r0]\n"
"\tadds r0, r1, 0x4\n"
@@ -2921,7 +2904,7 @@ static void sub_8049ED4(u8 a0)
"\tstr r4, [sp]\n"
"\tadds r1, r7, 0\n"
"\tadds r3, r5, 0\n"
- "\tbl sub_8003460\n"
+ "\tbl Text_InitWindowAndPrintText\n"
"\tldr r2, _0804A22C @ =gUnknown_03004824\n"
"\tldr r1, [r2]\n"
"\tb _0804A28A\n"
@@ -3010,7 +2993,7 @@ u8 sub_804A2B4(u8 *a0, u8 whichParty, u8 whichPokemon)
GetMonGender(&gEnemyParty[whichPokemon]);
GetMonData(&gEnemyParty[whichPokemon], MON_DATA_LEVEL);
}
- return GetStringWidthGivenWindowConfig(&gWindowConfig_81E7294, a0);
+ return Text_GetStringWidthFromWindowTemplate(&gWindowTemplate_81E7294, a0);
}
#ifdef NONMATCHING
@@ -3067,8 +3050,8 @@ static void sub_804A41C(u8 whichParty)
GetMonData(pokemon, MON_DATA_NICKNAME, nickname);
StringCopy10(string + 6, nickname);
GetMonGender(pokemon);
- string[5] = (50 - GetStringWidthGivenWindowConfig(&gWindowConfig_81E7294, string + 6)) / 2;
- sub_8003460(&gUnknown_03004824->window, string, gUnknown_03004824->unk_007a + 22 * 6 * whichParty + 22 * i, gTradeMonSpriteCoords[i + 6 * whichParty][0], gTradeMonSpriteCoords[i + 6 * whichParty][1]);
+ string[5] = (50 - Text_GetStringWidthFromWindowTemplate(&gWindowTemplate_81E7294, string + 6)) / 2;
+ Text_InitWindowAndPrintText(&gUnknown_03004824->window, string, gUnknown_03004824->unk_007a + 22 * 6 * whichParty + 22 * i, gTradeMonSpriteCoords[i + 6 * whichParty][0], gTradeMonSpriteCoords[i + 6 * whichParty][1]);
}
}
#else
@@ -3141,8 +3124,8 @@ static void sub_804A41C(u8 whichParty)
"\tbl GetMonGender\n"
"\tmov r1, sp\n"
"\tadds r1, 0x22\n"
- "\tldr r0, _0804A518 @ =gWindowConfig_81E7294\n"
- "\tbl GetStringWidthGivenWindowConfig\n"
+ "\tldr r0, _0804A518 @ =gWindowTemplate_81E7294\n"
+ "\tbl Text_GetStringWidthFromWindowTemplate\n"
"\tlsls r0, 24\n"
"\tlsrs r0, 24\n"
"\tmovs r1, 0x32\n"
@@ -3177,7 +3160,7 @@ static void sub_804A41C(u8 whichParty)
"\tldrb r1, [r1]\n"
"\tstr r1, [sp]\n"
"\tmov r1, r8\n"
- "\tbl sub_8003460\n"
+ "\tbl Text_InitWindowAndPrintText\n"
"\tadds r0, r6, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r6, r0, 24\n"
@@ -3198,7 +3181,7 @@ static void sub_804A41C(u8 whichParty)
"\tbx r0\n"
"\t.align 2, 0\n"
"_0804A514: .4byte gEnemyParty\n"
- "_0804A518: .4byte gWindowConfig_81E7294");
+ "_0804A518: .4byte gWindowTemplate_81E7294");
}
#endif
@@ -3337,7 +3320,7 @@ static void sub_804A740(u8 whichParty)
static void sub_804A80C(void)
{
- FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[1][0], 0, gUnknown_0820C330[1][1], 19);
+ Text_FillWindowRectDefPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[1][0], 0, gUnknown_0820C330[1][1], 19);
sub_804A41C(1);
}
@@ -3345,7 +3328,7 @@ static void sub_804A840(u8 whichParty)
{
if (whichParty == 0)
{
- FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[0][0], 0, gUnknown_0820C330[0][1], 19);
+ Text_FillWindowRectDefPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[0][0], 0, gUnknown_0820C330[0][1], 19);
sub_804A96C_alt(&gUnknown_03004824->unk_00c8, 0, 0, gTradePartyBoxTilemap, 15, 17, 0);
sub_804A6DC(0);
sub_804A41C(0);
@@ -3354,8 +3337,8 @@ static void sub_804A840(u8 whichParty)
}
else
{
- HandleDestroyMenuCursors();
- FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[1][0], 0, gUnknown_0820C330[1][1], 19);
+ Menu_DestroyCursor();
+ Text_FillWindowRectDefPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[1][0], 0, gUnknown_0820C330[1][1], 19);
sub_804A96C_alt(&gUnknown_03004824->unk_00c8, 15, 0, gTradePartyBoxTilemap, 15, 17, 0);
sub_804A6DC(1);
sub_804A41C(1);
@@ -3413,18 +3396,18 @@ static void sub_804A96C_alt(struct UnkStructD *arg0, u8 left, u8 top, const u16
static void sub_804A9F4(u8 unused)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
}
static void sub_804AA00(u8 unused)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
}
static void sub_804AA0C(u8 a0)
{
- DrawTextWindow(&gUnknown_03004824->window, gTradeMessageWindowRects[a0][0], gTradeMessageWindowRects[a0][1], gTradeMessageWindowRects[a0][2], gTradeMessageWindowRects[a0][3]);
- sub_8003460(&gUnknown_03004824->window, gUnknown_0820C2F0[a0], 0x180 + gUnknown_03004824->unk_007a, gTradeMessageWindowRects[a0][0] + 1, gTradeMessageWindowRects[a0][1] + 1);
+ TextWindow_DrawStdFrame(&gUnknown_03004824->window, gTradeMessageWindowRects[a0][0], gTradeMessageWindowRects[a0][1], gTradeMessageWindowRects[a0][2], gTradeMessageWindowRects[a0][3]);
+ Text_InitWindowAndPrintText(&gUnknown_03004824->window, gUnknown_0820C2F0[a0], 0x180 + gUnknown_03004824->unk_007a, gTradeMessageWindowRects[a0][0] + 1, gTradeMessageWindowRects[a0][1] + 1);
}
static void sub_804AA88(void)
@@ -3523,7 +3506,7 @@ static bool8 sub_804ABF8(void)
static void sub_804ACD8(const u8 *src, u8 *dest, u8 a2)
{
- sub_804AFB8(&gWindowConfig_81E725C, dest, src, a2);
+ sub_804AFB8(&gWindowTemplate_81E725C, dest, src, a2);
}
#ifdef NONMATCHING
@@ -3798,7 +3781,7 @@ static void sub_804AF84(void)
gSaveBlock1.giftRibbons[i] = gUnknown_03004824->unk_00b5[i];
}
-static void sub_804AFB8(const struct WindowConfig *windowConfig, u8 *dest, const u8 *src, u8 size)
+static void sub_804AFB8(const struct WindowTemplate *windowConfig, u8 *dest, const u8 *src, u8 size)
{
u8 i;
u8 *tileBuffer;
@@ -3806,7 +3789,7 @@ static void sub_804AFB8(const struct WindowConfig *windowConfig, u8 *dest, const
tileBuffer = gTileBuffer;
CpuFill16(0, tileBuffer, size * 0x80);
CpuFill16(0, tileBuffer + windowConfig->width * 0x20, size * 0x80);
- sub_8004E3C(windowConfig, tileBuffer, src);
+ Text_InitWindow8004E3C(windowConfig, tileBuffer, src);
for (i = 0; i < size; i ++)
{
CpuCopy16(&tileBuffer[32 * (i * 4)], &dest[32 * (i * 8)], 0x80);
@@ -4028,11 +4011,11 @@ static void sub_804B41C(void)
FreeAllSpritePalettes();
SetVBlankCallback(sub_804B210);
sub_804B228();
- SetUpWindowConfig(&gWindowConfig_81E6F84);
- InitWindowFromConfig(&gUnknown_03004828->window, &gWindowConfig_81E6F84);
- gUnknown_03004828->textWindowBaseTileNum = SetTextWindowBaseTileNum(2);
- LoadTextWindowGraphics(&gUnknown_03004828->window);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F84);
+ Text_InitWindowWithTemplate(&gUnknown_03004828->window, &gWindowTemplate_81E6F84);
+ gUnknown_03004828->textWindowBaseTileNum = TextWindow_SetBaseTileNum(2);
+ TextWindow_LoadStdFrameGraphics(&gUnknown_03004828->window);
+ Menu_EraseScreen();
gLinkType = 0x1144;
gMain.state ++;
LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
@@ -4182,22 +4165,22 @@ static __attribute__((naked)) void sub_804B41C(void)
"\tldr r0, _0804B578 @ =sub_804B210\n"
"\tbl SetVBlankCallback\n"
"\tbl sub_804B228\n"
- "\tldr r4, _0804B57C @ =gWindowConfig_81E6F84\n"
+ "\tldr r4, _0804B57C @ =gWindowTemplate_81E6F84\n"
"\tadds r0, r4, 0\n"
- "\tbl SetUpWindowConfig\n"
+ "\tbl Text_LoadWindowTemplate\n"
"\tldr r0, [r6]\n"
"\tadds r0, 0x4\n"
"\tadds r1, r4, 0\n"
- "\tbl InitWindowFromConfig\n"
+ "\tbl Text_InitWindowWithTemplate\n"
"\tmovs r0, 0x2\n"
- "\tbl SetTextWindowBaseTileNum\n"
+ "\tbl TextWindow_SetBaseTileNum\n"
"\tldr r1, [r6]\n"
"\tadds r1, 0x34\n"
"\tstrb r0, [r1]\n"
"\tldr r0, [r6]\n"
"\tadds r0, 0x4\n"
- "\tbl LoadTextWindowGraphics\n"
- "\tbl MenuZeroFillScreen\n"
+ "\tbl TextWindow_LoadStdFrameGraphics\n"
+ "\tbl Menu_EraseScreen\n"
"\tldr r1, _0804B580 @ =gLinkType\n"
"\tldr r4, _0804B584 @ =0x00001144\n"
"\tadds r0, r4, 0\n"
@@ -4279,7 +4262,7 @@ static __attribute__((naked)) void sub_804B41C(void)
"_0804B570: .4byte gUnknown_03004828\n"
"_0804B574: .4byte gSharedMem + 0x1F000\n"
"_0804B578: .4byte sub_804B210\n"
- "_0804B57C: .4byte gWindowConfig_81E6F84\n"
+ "_0804B57C: .4byte gWindowTemplate_81E6F84\n"
"_0804B580: .4byte gLinkType\n"
"_0804B584: .4byte 0x00001144\n"
"_0804B588: .4byte gMain\n"
@@ -4512,8 +4495,8 @@ static __attribute__((naked)) void sub_804B41C(void)
}
#endif
-static void sub_804B790(void)
// In-game trade init
+void sub_804B790(void)
{
u8 otName[11];
switch (gMain.state)
@@ -4531,11 +4514,11 @@ static void sub_804B790(void)
FreeAllSpritePalettes();
SetVBlankCallback(sub_804B210);
sub_804B228();
- SetUpWindowConfig(&gWindowConfig_81E717C);
- InitWindowFromConfig(&gUnknown_03004828->window, &gWindowConfig_81E717C);
- gUnknown_03004828->textWindowBaseTileNum = SetTextWindowBaseTileNum(2);
- LoadTextWindowGraphics(&gUnknown_03004828->window);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E717C);
+ Text_InitWindowWithTemplate(&gUnknown_03004828->window, &gWindowTemplate_81E717C);
+ gUnknown_03004828->textWindowBaseTileNum = TextWindow_SetBaseTileNum(2);
+ TextWindow_LoadStdFrameGraphics(&gUnknown_03004828->window);
+ Menu_EraseScreen();
gLinkType = 0x1144;
gUnknown_03004828->isLinkTrade = FALSE;
gUnknown_03004828->unk_00b6 = 0;
@@ -4649,7 +4632,7 @@ static void sub_804BB78(void)
switch (gUnknown_03004828->unk_00bd)
{
case 1:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
Trade_SendData(gUnknown_03004828);
gUnknown_03004828->unk_00bd ++;
@@ -4733,7 +4716,7 @@ static void sub_804BBE8(u8 a0)
for (i = 0; i < 0x280; i ++)
buffer[i] |= 0x7000;
DmaCopy16Defvars(3, gSharedMem, BG_SCREEN_ADDR(5), 0x500);
- MenuZeroFillWindowRect(2, 15, 27, 18);
+ Menu_EraseWindowRect(2, 15, 27, 18);
break;
case 6:
REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
@@ -4843,7 +4826,7 @@ static bool8 sub_804C29C(void)
case 10:
StringExpandPlaceholders(gStringVar4, gTradeText_WillBeSent);
- sub_8003460(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindowAndPrintText(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gUnknown_03004828->unk_00c4 = 11;
gUnknown_03004828->unk_00c0 = 0;
break;
@@ -4852,13 +4835,13 @@ static bool8 sub_804C29C(void)
{
gUnknown_03004828->unk_0102 = sub_8047580(gUnknown_03004828->pokePicSpriteIdxs[0], gSprites[gUnknown_03004828->pokePicSpriteIdxs[0]].oam.paletteNum, 0x78, 0x20, 0x2, 0x1, 0x14, 0xfffff);
gUnknown_03004828->unk_00c4 ++;
- ZeroFillWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
StringExpandPlaceholders(gStringVar4, gTradeText_ByeBye);
- sub_8003460(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindowAndPrintText(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
}
break;
case 12:
- if (gSprites[gUnknown_03004828->unk_0102].callback == SpriteCallbackDummy && sub_80035AC(&gUnknown_03004828->window) == TRUE)
+ if (gSprites[gUnknown_03004828->unk_0102].callback == SpriteCallbackDummy && Text_UpdateWindow(&gUnknown_03004828->window) == TRUE)
{
gUnknown_03004828->unk_0103 = CreateSprite(&gSpriteTemplate_821595C, 0x78, 0x20, 0);
gSprites[gUnknown_03004828->unk_0103].callback = sub_804D738;
@@ -5199,9 +5182,9 @@ static bool8 sub_804C29C(void)
break;
case 67:
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
- ZeroFillWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
StringExpandPlaceholders(gStringVar4, gTradeText_SentOverPoke);
- sub_8003460(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindowAndPrintText(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gUnknown_03004828->unk_00c4 ++;
gUnknown_03004828->unk_00c0 = 0;
break;
@@ -5213,9 +5196,9 @@ static bool8 sub_804C29C(void)
if (gUnknown_03004828->unk_00c0 == 0xf0)
{
gUnknown_03004828->unk_00c4 ++;
- ZeroFillWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
StringExpandPlaceholders(gStringVar4, gTradeText_TakeGoodCare);
- sub_8003460(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindowAndPrintText(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gUnknown_03004828->unk_00c0 = 0;
}
break;
@@ -5536,9 +5519,9 @@ static void sub_804DC88(void)
case 0:
gUnknown_03004828 = &ewram_2010000.unk_0f000;
gMain.state ++;
- ZeroFillWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
StringExpandPlaceholders(gStringVar4, gOtherText_LinkStandby2);
- sub_8003460(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindowAndPrintText(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
break;
case 1:
sub_80084A4();
@@ -5551,21 +5534,21 @@ static void sub_804DC88(void)
gMain.state = 101;
gUnknown_03004828->unk_00c0 = 0;
}
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
gMain.state = 2;
}
break;
case 101:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
gMain.state = 2;
}
break;
case 2:
gMain.state = 50;
- ZeroFillWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
- sub_8003460(&gUnknown_03004828->window, gSystemText_Saving, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0, 0, 29, 19);
+ Text_InitWindowAndPrintText(&gUnknown_03004828->window, gSystemText_Saving, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
break;
case 50:
SetSecretBase2Field_9_AndHideBG();
@@ -5609,7 +5592,7 @@ static void sub_804DC88(void)
gMain.state = 42;
break;
case 42:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
sub_8125E04();
gSoftResetDisabled = FALSE;
@@ -5624,7 +5607,7 @@ static void sub_804DC88(void)
}
break;
case 6:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gMain.state ++;
@@ -5701,13 +5684,9 @@ static void sub_804E1DC(void)
void sub_804E22C(void)
{
- const u16 *src;
- u16 *dest;
LZDecompressVram(gUnknown_08D00000, (void *)VRAM);
CpuCopy16(gUnknown_08D00524, gSharedMem, 0x1000);
- src = (const u16 *)gSharedMem;
- dest = BG_SCREEN_ADDR(5);
- DmaCopy16(3, src, dest, 0x500)
+ DmaCopy16Defvars(3, gSharedMem, BG_SCREEN_ADDR(5), 0x500);
LoadCompressedPalette(gUnknown_08D004E0, 0, 32);
REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(5);
}
diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c
index ffa4cbd08..998c4697e 100644
--- a/src/engine/trainer_card.c
+++ b/src/engine/trainer_card.c
@@ -5,6 +5,7 @@
#include "field_effect.h"
#include "graphics.h"
#include "link.h"
+#include "m4a.h"
#include "main.h"
#include "menu.h"
#include "money.h"
@@ -18,7 +19,7 @@
#include "string_util.h"
#include "strings2.h"
#include "task.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "util.h"
#include "ewram.h"
@@ -26,25 +27,25 @@ typedef void (*Callback)(void);
struct Struct2000000
{
- /*0x00*/ u8 var_0;
- /*0x01*/ bool8 var_1;
- /*0x02*/ u8 var_2;
- /*0x03*/ bool8 var_3;
+ /*0x00*/ u8 current_state;
+ /*0x01*/ bool8 isShowingLinkCard;
+ /*0x02*/ u8 starCount;
+ /*0x03*/ bool8 backSideShown;
/*0x04*/ u8 var_4;
- /*0x05*/ u8 var_5;
- /*0x06*/ u8 var_6;
- /*0x07*/ bool8 var_7;
- /*0x08*/ bool8 var_8;
- /*0x09*/ bool8 var_9;
- /*0x0A*/ bool8 var_a;
- /*0x0B*/ bool8 var_b;
- /*0x0C*/ bool8 var_c;
- /*0x0D*/ bool8 var_d;
- /*0x0E*/ u8 var_e[8];
+ /*0x05*/ bool8 showColon;
+ /*0x06*/ u8 frameCounter; /* Used to flash colon */
+ /*0x07*/ bool8 showPokedexCount;
+ /*0x08*/ bool8 showHallOfFame;
+ /*0x09*/ bool8 showLinkBattleStatus;
+ /*0x0A*/ bool8 showBattleTowerStatus;
+ /*0x0B*/ bool8 showContestRecord;
+ /*0x0C*/ bool8 showMixingRecord;
+ /*0x0D*/ bool8 showTradingRecord;
+ /*0x0E*/ bool8 ownedBadges[8];
/*0x16*/ u8 filler_16[10];
- /*0x20*/ u8 var_20[4][0x10];
+ /*0x20*/ u8 easyChatPhrase[4][0x10];
/*0x60*/ Callback *var_60;
- /*0x64*/ struct TrainerCard var_64;
+ /*0x64*/ struct TrainerCard displayedCard;
/*0x9C*/ u8 language; // 0x9C
};
@@ -52,49 +53,76 @@ extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0};
-extern const u8 gBadgesTiles[];
extern const u16 gUnknown_083B5F0C[];
extern const u16 gBadgesPalette[];
extern const u16 gUnknown_083B5F4C[];
extern const u16 gUnknown_083B5F6C[];
-extern const u16 gUnknown_083B5F8C[][4];
+extern const u16 gTrainerCardBadgesMap[][4];
const u8 gBadgesTiles[] = INCBIN_U8("graphics/trainer_card/badges.4bpp");
// XXX: what is this?
u8 *const ewram_ = gSharedMem;
-bool8 sub_8093864(struct Task *);
-bool8 sub_80938A8(struct Task *);
-bool8 sub_80938CC(struct Task *);
-bool8 sub_8093918(struct Task *);
-bool8 sub_8093938(struct Task *);
-bool8 sub_8093954(struct Task *);
-bool8 sub_8093980(struct Task *);
-
-bool8 (*const gUnknown_083B5EBC[])(struct Task *) =
-{
- sub_8093864,
- sub_80938A8,
- sub_80938CC,
- sub_8093918,
- sub_8093938,
- sub_8093954,
- sub_8093980,
+#if DEBUG
+const struct TrainerCard gUnknown_Debug_083E0448 =
+{
+ .gender = FEMALE,
+ .stars = 4,
+ .hasPokedex = TRUE,
+ .var_3 = TRUE,
+ .var_4 = TRUE,
+ .firstHallOfFameA = 999,
+ .firstHallOfFameB = 99,
+ .firstHallOfFameC = 99,
+ .pokedexSeen = 411,
+ .trainerId = 12345,
+ .playTimeHours = 99,
+ .playTimeMinutes = 99,
+ .linkBattleWins = 9999,
+ .linkBattleLosses = 9999,
+ .battleTowerWins = 9999,
+ .battleTowerLosses = 9999,
+ .contestsWithFriends = 999,
+ .pokeblocksWithFriends = 0xFFFF,
+ .pokemonTrades = 0xFFFF,
+ .money = 99999,
+ .var_28 = {1, 2, 3, 4},
+ .playerName = _("てすと"),
+};
+#endif
+
+bool8 TrainerCard_Init(struct Task *);
+bool8 TrainerCard_WaitForFadeInToFinish(struct Task *);
+bool8 TrainerCard_WaitForKeys(struct Task *);
+bool8 TrainerCard_StartFlipAntimation(struct Task *);
+bool8 TrainerCard_WaitForFlipToFinish(struct Task *);
+bool8 TrainerCard_FadeOut(struct Task *);
+bool8 TrainerCard_WaitForFadeOutToFinishAndQuit(struct Task *);
+
+bool8 (*const TrainerCard_StateMachine[])(struct Task *) =
+{
+ TrainerCard_Init,
+ TrainerCard_WaitForFadeInToFinish,
+ TrainerCard_WaitForKeys,
+ TrainerCard_StartFlipAntimation,
+ TrainerCard_WaitForFlipToFinish,
+ TrainerCard_FadeOut,
+ TrainerCard_WaitForFadeOutToFinishAndQuit,
};
-bool8 sub_8093AA0(struct Task *);
-bool8 sub_8093AF0(struct Task *);
-bool8 sub_8093C0C(struct Task *);
-bool8 sub_8093C38(struct Task *);
-bool8 sub_8093D50(struct Task *);
+bool8 TrainerCard_InitFlipAnimation(struct Task *);
+bool8 TrainerCard_ScaleDownFlipAnimation(struct Task *);
+bool8 TrainerCard_SwitchToNewSide(struct Task *);
+bool8 TrainerCard_ScaleUpFlipAnimation(struct Task *);
+bool8 TrainerCard_FinishFlipAnimation(struct Task *);
-bool8 (*const gUnknown_083B5ED8[])(struct Task *) =
+bool8 (*const TrainerCard_FlipAnimationStateMachine[])(struct Task *) =
{
- sub_8093AA0,
- sub_8093AF0,
- sub_8093C0C,
- sub_8093C38,
- sub_8093D50,
+ TrainerCard_InitFlipAnimation,
+ TrainerCard_ScaleDownFlipAnimation,
+ TrainerCard_SwitchToNewSide,
+ TrainerCard_ScaleUpFlipAnimation,
+ TrainerCard_FinishFlipAnimation,
};
// FIXME: Other signature than on save_menu_util.h
@@ -103,64 +131,64 @@ u16 GetPokedexSeenCount(void);
enum
{
- TD_0,
- TD_1,
+ TD_SHOWING_LINK_CARD,
+ TD_CARD_INDEX,
TD_CALLBACK,
};
static void sub_8093174(void);
static void sub_809323C(void);
static void sub_8093254(void);
-static void sub_80932AC(Callback callBack);
-static void sub_80932E4(u8 arg1, Callback callBack);
-void sub_8093324(void);
+static void TrainerCard_InitScreenForPlayer(Callback callBack);
+static void TrainerCard_InitScreenForLinkPlayer(u8 arg1, Callback callBack);
+void TrainerCard_FillTrainerCardStruct(void);
static void nullsub_60(u8);
static u32 sav12_xor_get_clamped_above(u8 index, u32 maxVal);
-static u8 sub_80934F4(struct TrainerCard *);
+static u8 TrainerCard_GetStarCount(struct TrainerCard *);
static void sub_8093534(void);
static void sub_8093550(void);
static void sub_8093598(void);
static void sub_80935EC(void);
static void sub_8093610(void);
static void sub_8093688(void);
-void sub_80936D4(void);
+static void TrainerCard_FillFlags(void);
static void sub_80937A4(void);
static void sub_80937BC(void);
static void sub_80937D8(void);
static void sub_80937F0(void);
static void nullsub_15(void);
static void sub_8093800(void);
-static void sub_809380C();
-static void sub_809382C(u8 taskId);
-static void sub_80939A4(void);
-static void sub_80939C0(void);
-static void sub_80939DC(u8 taskId);
-static void sub_8093A28(void);
-static u8 sub_8093A48(void);
-static void sub_8093A68(u8 taskId);
-void sub_8093D7C(void);
-static void sub_8093DAC(void);
-static void sub_8093DC8(void);
-static void sub_8093DEC(void);
-static void sub_8093E04(void);
-static void sub_8093E28(void);
-void sub_8093EA0(void);
-static void sub_8093EF8(void);
+static void TrainerCard_CreateStateMachine(void);
+static void TrainerCard_RunStateMachine(u8 taskId);
+static void TrainerCard_CreatePrintPlayTimeTask(void);
+static void TrainerCard_DestoryPlayTimeTask(void);
+static void TrainerCard_Front_PrintPlayTime(u8 taskId);
+static void TrainerCard_CreateFlipAnimationTask(void);
+static u8 TrainerCard_HasFlipAnimationFinished(void);
+static void TrainerCard_RunFlipAnimationStateMachine(u8 taskId);
+static void TrainerCard_FlipAnimationHBlankCallback(void);
+static void TrainerCard_DrawCard(void);
+static void TrainerCard_DrawCardFront(void);
+static void TrainerCard_DrawCardBack(void);
+static void TrainerCard_ResetOffsetRegisters(void);
+static void TrainerCard_CopyGraphics(void);
+static void TrainerCard_LoadPalettes(void);
+static void TrainerCard_LoadTrainerGraphics(void);
static void sub_8093F14(void);
static void sub_8093F48(void);
static void sub_8093F64(void);
-static void sub_8093F80(void);
-static void sub_8093FD0(void);
-static void sub_8094038(void);
-static void sub_80940E4(void);
-static void sub_8094110(void);
-static void sub_8094140(void);
-static void sub_8094188(void);
+static void TrainerCard_LoadTrainerTilemap(void);
+static void TrainerCard_DrawStars(void);
+static void TrainerCard_DisplayBadges(void);
+static void TrainerCard_ClearTrainerGraphics(void);
+static void TrainerCard_ClearPokedexLabel(void);
+static void TrainerCard_Front_PrintTexts(void);
+static void TrainerCard_Back_PrintTexts(void);
static void TrainerCard_Front_PrintTrainerID(void);
static void TrainerCard_Front_PrintMoney(void);
static void TrainerCard_Front_PrintPokedexCount(void);
-static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon);
-static void sub_809429C(void);
+static void TrainerCard_Front_GetPlayTimeString(u8 *arg1, s16 colon);
+static void TrainerCard_PrintEasyChatPhrase(void);
static void TrainerCard_Back_PrintName(void);
static void TrainerCard_Back_PrintHallOfFameTime_Label(void);
static void TrainerCard_Back_PrintHallOfFameTime(void);
@@ -176,20 +204,57 @@ static void TrainerCard_Back_PrintPokemonTrades_Label(void);
static void TrainerCard_Back_PrintPokemonTrades(void);
void unref_sub_8094588(u16 left, u16 top);
-void sub_8093110(Callback arg1)
+#if DEBUG
+static u8 gDebug_03000748;
+#endif
+
+void TrainerCard_ShowPlayerCard(Callback arg1)
{
- sub_80932AC(arg1);
+#if DEBUG
+ gDebug_03000748 = 0;
+#endif
+ TrainerCard_InitScreenForPlayer(arg1);
SetMainCallback2(sub_8093174);
ewram0_2.language = GAME_LANGUAGE;
}
-void sub_8093130(u8 playerIndex, Callback arg2)
+void TrainerCard_ShowLinkCard(u8 playerIndex, Callback arg2)
{
- sub_80932E4(playerIndex, arg2);
+#if DEBUG
+ gDebug_03000748 = 0;
+#endif
+ TrainerCard_InitScreenForLinkPlayer(playerIndex, arg2);
SetMainCallback2(sub_8093174);
ewram0_2.language = gLinkPlayers[gLinkPlayerMapObjects[playerIndex].linkPlayerId].language;
}
+#if DEBUG
+void debug_sub_80A0710(Callback callback)
+{
+ gDebug_03000748 = TRUE;
+ TrainerCard_InitScreenForPlayer(callback);
+ SetMainCallback2(sub_8093174);
+ ewram0_2.language = GAME_LANGUAGE;
+}
+
+void debug_sub_80A073C(Callback callback)
+{
+ memcpy(&gTrainerCards[0], &gUnknown_Debug_083E0448, sizeof(struct TrainerCard));
+ gDebug_03000748=TRUE;
+ TrainerCard_InitScreenForLinkPlayer(0, callback);
+ SetMainCallback2(sub_8093174);
+ ewram0_2.language = GAME_LANGUAGE;
+}
+
+void debug_sub_80A0780()
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ memcpy(&gTrainerCards[i], &gUnknown_Debug_083E0448, sizeof(struct TrainerCard));
+}
+#endif
+
static void sub_8093174(void)
{
switch (gMain.state)
@@ -249,49 +314,49 @@ static void sub_8093254(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- ewram0_2.var_6++;
- if (ewram0_2.var_6 >= 60)
+ ewram0_2.frameCounter++;
+ if (ewram0_2.frameCounter >= 60)
{
- ewram0_2.var_6 = 0;
- ewram0_2.var_5 ^= 1;
+ ewram0_2.frameCounter = 0;
+ ewram0_2.showColon ^= 1;
}
if (ewram0_2.var_4)
- DmaCopy16(3, &gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 0x140);
+ DmaCopy16(3, &gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 0x140);
}
-static void sub_80932AC(Callback callBack)
+static void TrainerCard_InitScreenForPlayer(Callback callBack)
{
u8 taskId = CreateTask(nullsub_60, 0xFF);
struct Task *task = &gTasks[taskId];
- task->data[TD_0] = FALSE;
+ task->data[TD_SHOWING_LINK_CARD] = FALSE;
StoreWordInTwoHalfwords(&task->data[TD_CALLBACK], (u32)callBack);
}
-static void sub_80932E4(u8 arg1, Callback callBack)
+static void TrainerCard_InitScreenForLinkPlayer(u8 arg1, Callback callBack)
{
u8 taskId = CreateTask(nullsub_60, 0xFF);
struct Task *task = &gTasks[taskId];
- task->data[TD_0] = TRUE;
- task->data[TD_1] = arg1;
+ task->data[TD_SHOWING_LINK_CARD] = TRUE;
+ task->data[TD_CARD_INDEX] = arg1;
StoreWordInTwoHalfwords(&task->data[TD_CALLBACK], (u32)callBack);
}
-void sub_8093324(void)
+void TrainerCard_FillTrainerCardStruct(void)
{
u8 taskId = FindTaskIdByFunc(nullsub_60);
struct Task *task = &gTasks[taskId];
- ewram0_2.var_1 = task->data[TD_0];
+ ewram0_2.isShowingLinkCard = task->data[TD_SHOWING_LINK_CARD];
LoadWordFromTwoHalfwords((u16 *)&task->data[TD_CALLBACK], (u32 *)&ewram0_2.var_60);
- if (ewram0_2.var_1)
+ if (ewram0_2.isShowingLinkCard)
{
- ewram0_2.var_64 = gTrainerCards[task->data[TD_1]];
+ ewram0_2.displayedCard = gTrainerCards[task->data[TD_CARD_INDEX]];
}
else
{
- sub_8093390(&ewram0_2.var_64);
+ TrainerCard_GenerateCardForPlayer(&ewram0_2.displayedCard);
}
}
@@ -299,7 +364,7 @@ static void nullsub_60(u8 taskid)
{
}
-void sub_8093390(struct TrainerCard *trainerCard)
+void TrainerCard_GenerateCardForPlayer(struct TrainerCard *trainerCard)
{
u32 playTime;
bool32 enteredHallOfFame;
@@ -370,7 +435,7 @@ void sub_8093390(struct TrainerCard *trainerCard)
trainerCard->playerName[i] = gSaveBlock2.playerName[i];
}
- trainerCard->stars = sub_80934F4(trainerCard);
+ trainerCard->stars = TrainerCard_GetStarCount(trainerCard);
}
u8 sub_80934C4(u8 id)
@@ -390,7 +455,7 @@ static u32 sav12_xor_get_clamped_above(u8 index, u32 maxVal)
return value;
}
-static u8 sub_80934F4(struct TrainerCard *trainerCard)
+static u8 TrainerCard_GetStarCount(struct TrainerCard *trainerCard)
{
u8 value = 0;
@@ -441,27 +506,12 @@ static void sub_8093550(void)
void sub_8093598(void)
{
- u8 *addr = (void *)VRAM;
- u32 size = 0x10000;
-
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
+ DmaFill16Large(3, 0, (void *)VRAM, 0x10000, 0x1000);
}
void sub_80935EC(void)
{
- void *addr = (void *)OAM;
-
- DmaFill16(3, 0, addr, 0x400);
+ DmaFill16Defvars(3, 0, (void *)OAM, 0x400);
}
void sub_8093610(void)
@@ -489,53 +539,53 @@ static void sub_8093688(void)
{
u8 i;
- sub_8093324();
- ewram0_2.var_0 = 0;
- ewram0_2.var_3 = 0;
+ TrainerCard_FillTrainerCardStruct();
+ ewram0_2.current_state = 0;
+ ewram0_2.backSideShown = FALSE;
ewram0_2.var_4 = FALSE;
- ewram0_2.var_2 = ewram0_2.var_64.stars;
- ewram0_2.var_5 = 0;
- ewram0_2.var_6 = 0;
+ ewram0_2.starCount = ewram0_2.displayedCard.stars;
+ ewram0_2.showColon = 0;
+ ewram0_2.frameCounter = 0;
for (i = 0; i < 4; i++)
- EasyChat_GetWordText(ewram0_2.var_20[i], ewram0_2.var_64.var_28[i]);
- sub_80936D4();
+ EasyChat_GetWordText(ewram0_2.easyChatPhrase[i], ewram0_2.displayedCard.var_28[i]);
+ TrainerCard_FillFlags();
}
-void sub_80936D4(void)
+static void TrainerCard_FillFlags(void)
{
- ewram0_2.var_7 = 0;
- ewram0_2.var_8 = 0;
- ewram0_2.var_9 = 0;
- ewram0_2.var_a = 0;
- ewram0_2.var_b = 0;
- ewram0_2.var_c = 0;
- ewram0_2.var_d = 0;
- memset(ewram0_2.var_e, 0, sizeof(ewram0_2.var_e));
+ ewram0_2.showPokedexCount = 0;
+ ewram0_2.showHallOfFame = 0;
+ ewram0_2.showLinkBattleStatus = 0;
+ ewram0_2.showBattleTowerStatus = 0;
+ ewram0_2.showContestRecord = 0;
+ ewram0_2.showMixingRecord = 0;
+ ewram0_2.showTradingRecord = 0;
+ memset(ewram0_2.ownedBadges, 0, sizeof(ewram0_2.ownedBadges));
- if (ewram0_2.var_64.hasPokedex)
- ewram0_2.var_7++;
+ if (ewram0_2.displayedCard.hasPokedex)
+ ewram0_2.showPokedexCount++;
- if (ewram0_2.var_64.firstHallOfFameA != 0
- || ewram0_2.var_64.firstHallOfFameB != 0
- || ewram0_2.var_64.firstHallOfFameC != 0)
- ewram0_2.var_8++;
+ if (ewram0_2.displayedCard.firstHallOfFameA != 0
+ || ewram0_2.displayedCard.firstHallOfFameB != 0
+ || ewram0_2.displayedCard.firstHallOfFameC != 0)
+ ewram0_2.showHallOfFame++;
- if (ewram0_2.var_64.linkBattleWins != 0 || ewram0_2.var_64.linkBattleLosses != 0)
- ewram0_2.var_9++;
+ if (ewram0_2.displayedCard.linkBattleWins != 0 || ewram0_2.displayedCard.linkBattleLosses != 0)
+ ewram0_2.showLinkBattleStatus++;
- if (ewram0_2.var_64.battleTowerWins != 0 || ewram0_2.var_64.battleTowerLosses != 0)
- ewram0_2.var_a++;
+ if (ewram0_2.displayedCard.battleTowerWins != 0 || ewram0_2.displayedCard.battleTowerLosses != 0)
+ ewram0_2.showBattleTowerStatus++;
- if (ewram0_2.var_64.contestsWithFriends != 0)
- ewram0_2.var_b++;
+ if (ewram0_2.displayedCard.contestsWithFriends != 0)
+ ewram0_2.showContestRecord++;
- if (ewram0_2.var_64.pokeblocksWithFriends != 0)
- ewram0_2.var_c++;
+ if (ewram0_2.displayedCard.pokeblocksWithFriends != 0)
+ ewram0_2.showMixingRecord++;
- if (ewram0_2.var_64.pokemonTrades != 0)
- ewram0_2.var_d++;
+ if (ewram0_2.displayedCard.pokemonTrades != 0)
+ ewram0_2.showTradingRecord++;
- if (!ewram0_2.var_1)
+ if (!ewram0_2.isShowingLinkCard)
{
u32 badgeFlag;
int i = 0;
@@ -544,7 +594,7 @@ void sub_80936D4(void)
while (1)
{
if (FlagGet(badgeFlag))
- ewram0_2.var_e[i]++;
+ ewram0_2.ownedBadges[i]++;
badgeFlag++;
i++;
if (badgeFlag > FLAG_BADGE08_GET)
@@ -553,6 +603,19 @@ void sub_80936D4(void)
}
}
}
+
+#if DEBUG
+ if (gDebug_03000748 != 0)
+ {
+ ewram0_2.showHallOfFame = TRUE;
+ ewram0_2.showLinkBattleStatus = TRUE;
+ ewram0_2.showBattleTowerStatus = TRUE;
+ ewram0_2.showContestRecord = TRUE;
+ ewram0_2.showMixingRecord = TRUE;
+ ewram0_2.showTradingRecord = TRUE;
+ memset(ewram0_2.ownedBadges, TRUE, sizeof(ewram0_2.ownedBadges));
+ }
+#endif
}
void sub_80937A4()
@@ -565,21 +628,21 @@ void sub_80937A4()
void sub_80937BC()
{
- SetUpWindowConfig(&WindowConfig_TrainerCard_Back_Values);
- MultistepInitMenuWindowBegin(&WindowConfig_TrainerCard_Back_Values);
+ Text_LoadWindowTemplate(&gWindowTemplate_TrainerCard_Back_Values);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_TrainerCard_Back_Values);
}
static void sub_80937D8()
{
- sub_8093E04();
- sub_8093E28();
+ TrainerCard_ResetOffsetRegisters();
+ TrainerCard_CopyGraphics();
sub_8093F64();
- sub_8093DAC();
+ TrainerCard_DrawCard();
}
static void sub_80937F0()
{
- sub_8093EF8();
+ TrainerCard_LoadTrainerGraphics();
}
static void nullsub_15(void)
@@ -588,159 +651,173 @@ static void nullsub_15(void)
static void sub_8093800()
{
- sub_809380C();
+ TrainerCard_CreateStateMachine();
}
-static void sub_809380C()
+static void TrainerCard_CreateStateMachine(void)
{
u8 taskId;
- taskId = CreateTask(sub_809382C, 0);
- sub_809382C(taskId);
+ taskId = CreateTask(TrainerCard_RunStateMachine, 0);
+ TrainerCard_RunStateMachine(taskId);
}
-static void sub_809382C(u8 taskId)
+static void TrainerCard_RunStateMachine(u8 taskId)
{
- while (gUnknown_083B5EBC[ewram0_2.var_0](&gTasks[taskId]) != 0)
+ while (TrainerCard_StateMachine[ewram0_2.current_state](&gTasks[taskId]) != 0)
;
}
-bool8 sub_8093864(struct Task *task)
+bool8 TrainerCard_Init(struct Task *task)
{
- ewram0_2.var_5 = gSaveBlock2.playTimeSeconds & 1;
- ewram0_2.var_6 = gSaveBlock2.playTimeVBlanks;
- sub_80939A4();
+ ewram0_2.showColon = gSaveBlock2.playTimeSeconds & 1;
+ ewram0_2.frameCounter = gSaveBlock2.playTimeVBlanks;
+ TrainerCard_CreatePrintPlayTimeTask();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- ewram0_2.var_0++;
+ ewram0_2.current_state++; /* Advance state machine */
return FALSE;
}
-bool8 sub_80938A8(struct Task *task)
+bool8 TrainerCard_WaitForFadeInToFinish(struct Task *task)
{
if (!gPaletteFade.active)
- ewram0_2.var_0++;
+ ewram0_2.current_state++; /* Advance state machine */
return FALSE;
}
-bool8 sub_80938CC(struct Task *task)
+bool8 TrainerCard_WaitForKeys(struct Task *task)
{
if (gMain.newKeys & B_BUTTON)
{
- ewram0_2.var_0 = 5;
+ ewram0_2.current_state = 5; /* Jump to fadeout state */
return TRUE;
}
else if (gMain.newKeys & A_BUTTON)
{
- if (ewram0_2.var_3 != 0)
+ /* It appears that it was previously possible to return the the front side
+ after viewing the back side. This was probably removed due to being
+ unintuitive. */
+ if (ewram0_2.backSideShown)
{
- ewram0_2.var_0 = 5;
+ ewram0_2.current_state = 5; /* Jump to fadeout state */
}
else
{
- ewram0_2.var_3 ^= 1;
- ewram0_2.var_0 = 3;
+ ewram0_2.backSideShown ^= 1; /* Switch to back side */
+ ewram0_2.current_state = 3; /* Jump to start flip animation state */
}
return TRUE;
}
+#if DEBUG
+ else if (gDebug_03000748 && gMain.newKeys & R_BUTTON)
+ {
+ ewram0_2.starCount++;
+ ewram0_2.starCount %= 5;
+ TrainerCard_LoadPalettes();
+ if (ewram0_2.backSideShown == 0)
+ TrainerCard_DrawStars();
+ }
+#endif
+
return FALSE;
}
-bool8 sub_8093918(struct Task *task)
+bool8 TrainerCard_StartFlipAntimation(struct Task *task)
{
- sub_8093A28();
+ TrainerCard_CreateFlipAnimationTask();
PlaySE(SE_CARD);
- ewram0_2.var_0++;
+ ewram0_2.current_state++; /* Advance state machine */
return FALSE;
}
-bool8 sub_8093938(struct Task *task)
+bool8 TrainerCard_WaitForFlipToFinish(struct Task *task)
{
- if (sub_8093A48())
- ewram0_2.var_0 = 2;
+ if (TrainerCard_HasFlipAnimationFinished())
+ ewram0_2.current_state = 2; /* Return to wait for keys state */
return FALSE;
}
-bool8 sub_8093954(struct Task *task)
+bool8 TrainerCard_FadeOut(struct Task *task)
{
- sub_80939C0();
+ TrainerCard_DestoryPlayTimeTask();
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- ewram0_2.var_0++;
+ ewram0_2.current_state++; /* Advance state machine */
return FALSE;
}
-bool8 sub_8093980(struct Task *task)
+bool8 TrainerCard_WaitForFadeOutToFinishAndQuit(struct Task *task)
{
if (!gPaletteFade.active)
SetMainCallback2((MainCallback)ewram0_2.var_60);
return FALSE;
}
-static void sub_80939A4(void)
+static void TrainerCard_CreatePrintPlayTimeTask(void)
{
- CreateTask(sub_80939DC, 0);
- BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
+ CreateTask(TrainerCard_Front_PrintPlayTime, 0);
+ BasicInitMenuWindow(&gWindowTemplate_TrainerCard_Back_Values);
}
-static void sub_80939C0(void)
+static void TrainerCard_DestoryPlayTimeTask(void)
{
- u8 taskId = FindTaskIdByFunc(sub_80939DC);
+ u8 taskId = FindTaskIdByFunc(TrainerCard_Front_PrintPlayTime);
if (taskId != 0xFF)
DestroyTask(taskId);
}
-static void sub_80939DC(u8 taskId)
+static void TrainerCard_Front_PrintPlayTime(u8 taskId)
{
u8 buffer[32];
struct Task *task = &gTasks[taskId];
- if (ewram0_2.var_5 != task->data[TD_1])
+ if (ewram0_2.showColon != task->data[TD_CARD_INDEX])
{
- task->data[TD_1] = ewram0_2.var_5;
- task->data[TD_0] ^= TRUE;
+ task->data[TD_CARD_INDEX] = ewram0_2.showColon;
+ task->data[TD_SHOWING_LINK_CARD] ^= TRUE;
}
- TrainerCard_Front_PrintPlayTime(buffer, task->data[TD_0]);
- MenuPrint(buffer, 10, 12);
+ TrainerCard_Front_GetPlayTimeString(buffer, task->data[TD_SHOWING_LINK_CARD]);
+ Menu_PrintText(buffer, 10, 12);
}
-static void sub_8093A28(void)
+static void TrainerCard_CreateFlipAnimationTask(void)
{
u8 taskId;
- taskId = CreateTask(sub_8093A68, 0);
- sub_8093A68(taskId);
+ taskId = CreateTask(TrainerCard_RunFlipAnimationStateMachine, 0);
+ TrainerCard_RunFlipAnimationStateMachine(taskId);
}
-static u8 sub_8093A48(void)
+static u8 TrainerCard_HasFlipAnimationFinished(void)
{
- if (FindTaskIdByFunc(sub_8093A68) == 0xFF)
+ if (FindTaskIdByFunc(TrainerCard_RunFlipAnimationStateMachine) == 0xFF)
return TRUE;
else
return FALSE;
}
-static void sub_8093A68(u8 taskId)
+static void TrainerCard_RunFlipAnimationStateMachine(u8 taskId)
{
- while (gUnknown_083B5ED8[gTasks[taskId].data[0]](&gTasks[taskId]) != 0)
+ while (TrainerCard_FlipAnimationStateMachine[gTasks[taskId].data[0]](&gTasks[taskId]) != 0)
;
}
-bool8 sub_8093AA0(struct Task *task)
+bool8 TrainerCard_InitFlipAnimation(struct Task *task)
{
u32 i;
ewram0_2.var_4 = FALSE;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 0xA0; i++)
- gUnknown_03004DE0[1][i] = -4;
- SetHBlankCallback(sub_8093D7C);
+ gScanlineEffectRegBuffers[1][i] = -4;
+ SetHBlankCallback(TrainerCard_FlipAnimationHBlankCallback);
ewram0_2.var_4 = TRUE;
task->data[0]++;
return FALSE;
}
/*
-bool8 sub_8093AF0(struct Task *task)
+bool8 TrainerCard_ScaleDownFlipAnimation(struct Task *task)
{
u32 r7;
u16 r9;
@@ -768,7 +845,7 @@ bool8 sub_8093AF0(struct Task *task)
for (i = 0; i < r7; i++)
{
- gUnknown_03004DE0.filler0[i] = -4 - (u32)i;
+ gScanlineEffectRegBuffers.filler0[i] = -4 - (u32)i;
}
//_08093B74
for (; i < r9; i++)
@@ -776,10 +853,10 @@ bool8 sub_8093AF0(struct Task *task)
u16 var = r6 >> 16;
r6 += r5;
r5 -= sp0;
- gUnknown_03004DE0.filler0[i] = -4 + var;
+ gScanlineEffectRegBuffers.filler0[i] = -4 + var;
}
for (; i < 160; i++)
- gUnknown_03004DE0.filler0[i] = -4 + (u16)(r10 >> 16);
+ gScanlineEffectRegBuffers.filler0[i] = -4 + (u16)(r10 >> 16);
ewram0_2.var_4 = 1;
if (task->data[1] > 0x4A)
task->data[0]++;
@@ -788,7 +865,7 @@ bool8 sub_8093AF0(struct Task *task)
*/
__attribute__((naked))
-bool8 sub_8093AF0(struct Task *task)
+bool8 TrainerCard_ScaleDownFlipAnimation(struct Task *task)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -840,7 +917,7 @@ _08093B18:\n\
movs r3, 0\n\
cmp r3, r7\n\
bcs _08093B74\n\
- ldr r2, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r2, _08093C04 @ =gScanlineEffectRegBuffers\n\
mov r12, r2\n\
ldr r0, _08093C08 @ =0x0000fffc\n\
adds r4, r0, 0\n\
@@ -866,7 +943,7 @@ _08093B74:\n\
lsrs r7, r4, 16\n\
cmp r2, r0\n\
bge _08093BAE\n\
- ldr r0, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093C04 @ =gScanlineEffectRegBuffers\n\
mov r9, r0\n\
ldr r4, _08093C08 @ =0x0000fffc\n\
mov r12, r4\n\
@@ -894,7 +971,7 @@ _08093BAE:\n\
asrs r0, 16\n\
cmp r0, 0x9F\n\
bgt _08093BD4\n\
- ldr r4, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r4, _08093C04 @ =gScanlineEffectRegBuffers\n\
ldr r0, _08093C08 @ =0x0000fffc\n\
adds r2, r1, r0\n\
_08093BBE:\n\
@@ -934,23 +1011,25 @@ _08093BEA:\n\
.align 2, 0\n\
_08093BFC: .4byte gSharedMem\n\
_08093C00: .4byte 0xffff0000\n\
-_08093C04: .4byte gUnknown_03004DE0\n\
+_08093C04: .4byte gScanlineEffectRegBuffers\n\
_08093C08: .4byte 0x0000fffc\n\
.syntax divided\n");
}
-bool8 sub_8093C0C(struct Task *task)
+bool8 TrainerCard_SwitchToNewSide(struct Task *task)
{
- sub_80939C0();
- sub_8093DAC();
- if (!ewram0_2.var_3)
- sub_80939A4();
+ TrainerCard_DestoryPlayTimeTask();
+ TrainerCard_DrawCard();
+ if (!ewram0_2.backSideShown) {
+ /* This code never runs because it is impossible to flip the back side back to the front side */
+ TrainerCard_CreatePrintPlayTimeTask();
+ }
task->data[0]++;
return TRUE;
}
__attribute__((naked))
-bool8 sub_8093C38(struct Task *task)
+bool8 TrainerCard_ScaleUpFlipAnimation(struct Task *task)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -1000,7 +1079,7 @@ _08093C5C:\n\
movs r3, 0\n\
cmp r3, r7\n\
bcs _08093CB8\n\
- ldr r2, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r2, _08093D48 @ =gScanlineEffectRegBuffers\n\
mov r12, r2\n\
ldr r0, _08093D4C @ =0x0000fffc\n\
adds r4, r0, 0\n\
@@ -1026,7 +1105,7 @@ _08093CB8:\n\
lsrs r7, r4, 16\n\
cmp r2, r0\n\
bge _08093CF2\n\
- ldr r0, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093D48 @ =gScanlineEffectRegBuffers\n\
mov r9, r0\n\
ldr r3, _08093D4C @ =0x0000fffc\n\
mov r12, r3\n\
@@ -1054,7 +1133,7 @@ _08093CF2:\n\
asrs r0, 16\n\
cmp r0, 0x9F\n\
bgt _08093D18\n\
- ldr r4, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r4, _08093D48 @ =gScanlineEffectRegBuffers\n\
ldr r0, _08093D4C @ =0x0000fffc\n\
adds r2, r1, r0\n\
_08093D02:\n\
@@ -1094,60 +1173,60 @@ _08093D2E:\n\
.align 2, 0\n\
_08093D40: .4byte gSharedMem\n\
_08093D44: .4byte 0xffff0000\n\
-_08093D48: .4byte gUnknown_03004DE0\n\
+_08093D48: .4byte gScanlineEffectRegBuffers\n\
_08093D4C: .4byte 0x0000fffc\n\
.syntax divided\n");
}
-bool8 sub_8093D50(struct Task *task)
+bool8 TrainerCard_FinishFlipAnimation(struct Task *task)
{
u8 taskId;
ewram0_2.var_4 = FALSE;
SetHBlankCallback(NULL);
- sub_8093E04();
- taskId = FindTaskIdByFunc(sub_8093A68);
+ TrainerCard_ResetOffsetRegisters();
+ taskId = FindTaskIdByFunc(TrainerCard_RunFlipAnimationStateMachine);
DestroyTask(taskId);
return FALSE;
}
-void sub_8093D7C(void)
+static void TrainerCard_FlipAnimationHBlankCallback(void)
{
- u16 bgVOffset = gUnknown_03004DE0[1][REG_VCOUNT & 0xFF];
+ u16 bgVOffset = gScanlineEffectRegBuffers[1][REG_VCOUNT & 0xFF];
REG_BG0VOFS = bgVOffset;
REG_BG1VOFS = bgVOffset;
REG_BG2VOFS = bgVOffset;
}
-static void sub_8093DAC(void)
+static void TrainerCard_DrawCard(void)
{
- if (ewram0_2.var_3)
- sub_8093DEC();
+ if (ewram0_2.backSideShown)
+ TrainerCard_DrawCardBack();
else
- sub_8093DC8();
+ TrainerCard_DrawCardFront();
}
-static void sub_8093DC8(void)
+static void TrainerCard_DrawCardFront(void)
{
- MenuZeroFillScreen();
- sub_80940E4();
+ Menu_EraseScreen();
+ TrainerCard_ClearTrainerGraphics();
sub_8093F14();
- sub_8093F80();
- sub_8093FD0();
- sub_8094038();
- sub_8094140();
+ TrainerCard_LoadTrainerTilemap();
+ TrainerCard_DrawStars();
+ TrainerCard_DisplayBadges();
+ TrainerCard_Front_PrintTexts();
}
-static void sub_8093DEC(void)
+static void TrainerCard_DrawCardBack(void)
{
- MenuZeroFillScreen();
- sub_80940E4();
+ Menu_EraseScreen();
+ TrainerCard_ClearTrainerGraphics();
sub_8093F48();
- sub_8094188();
+ TrainerCard_Back_PrintTexts();
}
-static void sub_8093E04(void)
+static void TrainerCard_ResetOffsetRegisters(void)
{
REG_BG0VOFS = -4;
REG_BG1HOFS = 0;
@@ -1156,65 +1235,42 @@ static void sub_8093E04(void)
REG_BG2VOFS = -4;
}
-static void sub_8093E28(void)
+static void TrainerCard_CopyGraphics(void)
{
- const u8 *src;
- u8 *dst;
- u32 size;
-
- sub_8093EA0();
+ TrainerCard_LoadPalettes();
LoadPalette(gUnknown_083B5F6C, 0xE0, 32);
- src = gMenuTrainerCard_Gfx;
- dst = (void *)VRAM;
- size = 0x1480;
- while (1)
- {
- DmaCopy16(3, src, dst, 0x1000);
- src += 0x1000;
- dst += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaCopy16(3, src, dst, size);
- break;
- }
- }
- {
- const void *src = gBadgesTiles;
- void *dst = (void *)(VRAM + 0x1480);
-
- DmaCopy16(3, src, dst, 0x400);
- }
+ DmaCopyLarge16(3, gMenuTrainerCard_Gfx, (void *)VRAM, 0x1480, 0x1000);
+ DmaCopy16Defvars(3, gBadgesTiles, (void *)(VRAM + 0x1480), 0x400);
}
-extern const u16 *const gUnknown_083B5EF8[];
+extern const u16 *const gTrainerCardPalettes[];
-void sub_8093EA0(void)
+static void TrainerCard_LoadPalettes(void)
{
- LoadPalette(gUnknown_083B5EF8[ewram0_2.var_2], 0, 48 * 2);
+ LoadPalette(gTrainerCardPalettes[ewram0_2.starCount], 0, 48 * 2);
LoadPalette(gBadgesPalette, 48, 16 * 2);
LoadPalette(gUnknown_083B5F4C, 64, 16 * 2);
- if (ewram0_2.var_64.gender != MALE)
+ if (ewram0_2.displayedCard.gender != MALE)
LoadPalette(gUnknown_083B5F0C, 16, 16 * 2);
}
-static void sub_8093EF8(void)
+static void TrainerCard_LoadTrainerGraphics(void)
{
- LoadTrainerGfx_TrainerCard(ewram0_2.var_64.gender, 80, (void *)(VRAM + 0x1880));
+ LoadTrainerGfx_TrainerCard(ewram0_2.displayedCard.gender, 80, (void *)(VRAM + 0x1880));
}
static void sub_8093F14(void)
{
const void *arr[] = {gUnknown_08E8CAC0, gUnknown_08E8D4C0};
- CpuFastSet(arr[ewram0_2.var_1], (void *)(VRAM + 0x4800), 0x140);
+ CpuFastSet(arr[ewram0_2.isShowingLinkCard], (void *)(VRAM + 0x4800), 0x140);
}
// I don't really know where to put the data. It's in such a weird order.
const u8 gUnknown_083B5EF4[] = _(" : ");
-const u16 *const gUnknown_083B5EF8[] =
+const u16 *const gTrainerCardPalettes[] =
{
gMenuTrainerCard0Star_Pal,
gMenuTrainerCard1Star_Pal,
@@ -1227,7 +1283,7 @@ const u16 gUnknown_083B5F0C[] = INCBIN_U16("graphics/trainer_card/83B5F0C.gbapal
const u16 gBadgesPalette[] = INCBIN_U16("graphics/trainer_card/badges.gbapal");
const u16 gUnknown_083B5F4C[] = INCBIN_U16("graphics/trainer_card/83B5F4C.gbapal");
const u16 gUnknown_083B5F6C[] = INCBIN_U16("graphics/trainer_card/83B5F6C.gbapal");
-const u16 gUnknown_083B5F8C[][4] = INCBIN_U16("graphics/trainer_card/83B5F8C_map.bin");
+const u16 gTrainerCardBadgesMap[][4] = INCBIN_U16("graphics/trainer_card/83B5F8C_map.bin");
static void sub_8093F48(void)
{
@@ -1239,7 +1295,7 @@ static void sub_8093F64(void)
CpuFastSet(gUnknown_08E8D9C0, (void *)(VRAM + 0x5000), 320);
}
-static void sub_8093F80(void)
+static void TrainerCard_LoadTrainerTilemap(void)
{
u16 r5 = 0xC4;
u16 *ptr = (u16 *)(VRAM + 0x4000);
@@ -1253,11 +1309,11 @@ static void sub_8093F80(void)
}
}
-static void sub_8093FD0(void)
+static void TrainerCard_DrawStars(void)
{
u16 *ptr = (u16 *)(VRAM + 0x4000);
s16 i = 15;
- s16 var = 15 + ewram0_2.var_2;
+ s16 var = 15 + ewram0_2.starCount;
while (i < var)
{
@@ -1271,9 +1327,9 @@ static void sub_8093FD0(void)
}
}
-static void sub_8094038(void)
+static void TrainerCard_DisplayBadges(void)
{
- if (ewram0_2.var_1 == 0)
+ if (!ewram0_2.isShowingLinkCard)
{
u16 *ptr = (u16 *)(VRAM + 0x4000);
s16 i;
@@ -1281,18 +1337,18 @@ static void sub_8094038(void)
for (i = 0, r2 = 4; i < 8; i++, r2 += 3)
{
- if (ewram0_2.var_e[i] != 0)
+ if (ewram0_2.ownedBadges[i] != 0)
{
- ptr[15 * 32 + r2 + 0] = gUnknown_083B5F8C[i][0] | 0x3000;
- ptr[15 * 32 + r2 + 1] = gUnknown_083B5F8C[i][1] | 0x3000;
- ptr[16 * 32 + r2 + 0] = gUnknown_083B5F8C[i][2] | 0x3000;
- ptr[16 * 32 + r2 + 1] = gUnknown_083B5F8C[i][3] | 0x3000;
+ ptr[15 * 32 + r2 + 0] = gTrainerCardBadgesMap[i][0] | 0x3000;
+ ptr[15 * 32 + r2 + 1] = gTrainerCardBadgesMap[i][1] | 0x3000;
+ ptr[16 * 32 + r2 + 0] = gTrainerCardBadgesMap[i][2] | 0x3000;
+ ptr[16 * 32 + r2 + 1] = gTrainerCardBadgesMap[i][3] | 0x3000;
}
}
}
}
-static void sub_80940E4(void)
+static void TrainerCard_ClearTrainerGraphics(void)
{
s16 i;
u16 *ptr;
@@ -1301,7 +1357,7 @@ static void sub_80940E4(void)
*ptr = 0;
}
-static void sub_8094110(void)
+static void TrainerCard_ClearPokedexLabel(void)
{
u16 *ptr = (u16 *)(VRAM + 0x4800);
u16 i;
@@ -1313,26 +1369,26 @@ static void sub_8094110(void)
}
}
-static void sub_8094140(void)
+static void TrainerCard_Front_PrintTexts(void)
{
u8 *buffer;
- BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
+ BasicInitMenuWindow(&gWindowTemplate_TrainerCard_Back_Values);
buffer = gStringVar1;
- StringCopy(buffer, ewram0_2.var_64.playerName);
+ StringCopy(buffer, ewram0_2.displayedCard.playerName);
ConvertInternationalString(buffer, ewram0_2.language);
- MenuPrint(buffer, 7, 5);
+ Menu_PrintText(buffer, 7, 5);
TrainerCard_Front_PrintTrainerID();
TrainerCard_Front_PrintMoney();
TrainerCard_Front_PrintPokedexCount();
- sub_809429C();
+ TrainerCard_PrintEasyChatPhrase();
}
-static void sub_8094188(void)
+static void TrainerCard_Back_PrintTexts(void)
{
- BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Values);
+ BasicInitMenuWindow(&gWindowTemplate_TrainerCard_Back_Values);
TrainerCard_Back_PrintName();
TrainerCard_Back_PrintHallOfFameTime_Label();
TrainerCard_Back_PrintLinkBattlesLabel();
@@ -1341,7 +1397,7 @@ static void sub_8094188(void)
TrainerCard_Back_PrintLinkPokeblocks_Label();
TrainerCard_Back_PrintPokemonTrades_Label();
- BasicInitMenuWindow(&WindowConfig_TrainerCard_Back_Labels);
+ BasicInitMenuWindow(&gWindowTemplate_TrainerCard_Back_Labels);
TrainerCard_Back_PrintHallOfFameTime();
TrainerCard_Back_PrintLinkBattles();
TrainerCard_Back_PrintBattleTower();
@@ -1354,31 +1410,35 @@ static void TrainerCard_Front_PrintTrainerID(void)
{
u8 buffer[8];
- ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
- MenuPrint(buffer, 20, 2);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.displayedCard.trainerId, STR_CONV_MODE_LEADING_ZEROS, 5);
+ Menu_PrintText(buffer, 20, 2);
}
static void TrainerCard_Front_PrintMoney(void)
{
- sub_80B7AEC(ewram0_2.var_64.money, 16, 8);
+ sub_80B7AEC(ewram0_2.displayedCard.money, 16, 8);
}
static void TrainerCard_Front_PrintPokedexCount(void)
{
u8 buffer[16];
- if (ewram0_2.var_7 == FALSE)
+ if (
+#if DEBUG
+ gDebug_03000748 == 0 &&
+#endif
+ !ewram0_2.showPokedexCount)
{
- sub_8094110();
+ TrainerCard_ClearPokedexLabel();
}
else
{
- ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.displayedCard.pokedexSeen, STR_CONV_MODE_LEFT_ALIGN, 3);
MenuPrint_RightAligned(buffer, 16, 10);
}
}
-static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon)
+static void TrainerCard_Front_GetPlayTimeString(u8 *arg1, s16 colon)
{
u8 buffer[16];
u16 playTimeHours;
@@ -1386,34 +1446,34 @@ static void TrainerCard_Front_PrintPlayTime(u8 *arg1, s16 colon)
playTimeHours = gSaveBlock2.playTimeHours;
playTimeMinutes = gSaveBlock2.playTimeMinutes;
- if (ewram0_2.var_1 != 0)
+ if (ewram0_2.isShowingLinkCard != 0)
{
- playTimeHours = ewram0_2.var_64.playTimeHours;
- playTimeMinutes = ewram0_2.var_64.playTimeMinutes;
+ playTimeHours = ewram0_2.displayedCard.playTimeHours;
+ playTimeMinutes = ewram0_2.displayedCard.playTimeMinutes;
}
FormatPlayTime(buffer, playTimeHours, playTimeMinutes, colon);
sub_8072C74(arg1, buffer, 48, 1);
}
-static void sub_809429C(void)
+static void TrainerCard_PrintEasyChatPhrase(void)
{
u8 *str;
- if (ewram0_2.var_1 != 0)
+ if (ewram0_2.isShowingLinkCard != 0)
{
str = gStringVar1;
- str = StringCopy(str, ewram0_2.var_20[0]);
+ str = StringCopy(str, ewram0_2.easyChatPhrase[0]);
str[0] = 00;
str++;
- str = StringCopy(str, ewram0_2.var_20[1]);
- MenuPrint(gStringVar1, 2, 14);
+ str = StringCopy(str, ewram0_2.easyChatPhrase[1]);
+ Menu_PrintText(gStringVar1, 2, 14);
str = gStringVar1;
- str = StringCopy(str, ewram0_2.var_20[2]);
+ str = StringCopy(str, ewram0_2.easyChatPhrase[2]);
str[0] = 00;
str++;
- str = StringCopy(str, ewram0_2.var_20[3]);
- MenuPrint(gStringVar1, 2, 16);
+ str = StringCopy(str, ewram0_2.easyChatPhrase[3]);
+ Menu_PrintText(gStringVar1, 2, 16);
}
}
@@ -1422,7 +1482,7 @@ static void TrainerCard_Back_PrintName(void)
u8 *str;
str = gStringVar1;
- StringCopy(str, ewram0_2.var_64.playerName);
+ StringCopy(str, ewram0_2.displayedCard.playerName);
ConvertInternationalString(str, ewram0_2.language);
#if ENGLISH
@@ -1436,113 +1496,113 @@ static void TrainerCard_Back_PrintName(void)
static void TrainerCard_Back_PrintHallOfFameTime_Label(void)
{
- if (ewram0_2.var_8 != 0)
- MenuPrint(gOtherText_FirstHOF, 3, 5);
+ if (ewram0_2.showHallOfFame != 0)
+ Menu_PrintText(gOtherText_FirstHOF, 3, 5);
}
static void TrainerCard_Back_PrintHallOfFameTime(void)
{
u8 *str;
- if (ewram0_2.var_8 != 0)
+ if (ewram0_2.showHallOfFame != 0)
{
str = gStringVar1;
- str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ str = ConvertIntToDecimalStringN(str, ewram0_2.displayedCard.firstHallOfFameA, STR_CONV_MODE_RIGHT_ALIGN, 3);
str = StringCopy(str, gUnknown_083B5EF4);
- str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS, 2);
+ str = ConvertIntToDecimalStringN(str, ewram0_2.displayedCard.firstHallOfFameB, STR_CONV_MODE_LEADING_ZEROS, 2);
str = StringCopy(str, gUnknown_083B5EF4);
- str = ConvertIntToDecimalStringN(str, ewram0_2.var_64.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS, 2);
+ str = ConvertIntToDecimalStringN(str, ewram0_2.displayedCard.firstHallOfFameC, STR_CONV_MODE_LEADING_ZEROS, 2);
MenuPrint_RightAligned(gStringVar1, 28, 5);
}
}
static void TrainerCard_Back_PrintLinkBattlesLabel(void)
{
- if (ewram0_2.var_9 != 0)
- MenuPrint(gOtherText_LinkCableBattles, 3, 7);
+ if (ewram0_2.showLinkBattleStatus != 0)
+ Menu_PrintText(gOtherText_LinkCableBattles, 3, 7);
}
static void TrainerCard_Back_PrintLinkBattles(void)
{
u8 buffer[16];
- if (ewram0_2.var_9 != 0)
+ if (ewram0_2.showLinkBattleStatus != 0)
{
- ConvertIntToDecimalString(buffer, ewram0_2.var_64.linkBattleWins);
+ ConvertIntToDecimalString(buffer, ewram0_2.displayedCard.linkBattleWins);
MenuPrint_RightAligned(buffer, 22, 7);
- ConvertIntToDecimalString(buffer, ewram0_2.var_64.linkBattleLosses);
+ ConvertIntToDecimalString(buffer, ewram0_2.displayedCard.linkBattleLosses);
MenuPrint_RightAligned(buffer, 28, 7);
}
}
static void TrainerCard_Back_PrintBattleTower_Label(void)
{
- if (ewram0_2.var_a != 0)
- MenuPrint(gOtherText_BattleTowerWinRecord, 3, 15);
+ if (ewram0_2.showBattleTowerStatus != 0)
+ Menu_PrintText(gOtherText_BattleTowerWinRecord, 3, 15);
}
static void TrainerCard_Back_PrintBattleTower(void)
{
u8 buffer[16];
- if (ewram0_2.var_a != 0)
+ if (ewram0_2.showBattleTowerStatus != 0)
{
- sub_8072C44(buffer, ewram0_2.var_64.battleTowerWins, 24, 1);
- MenuPrint_PixelCoords(buffer, 112, 120, 0);
+ sub_8072C44(buffer, ewram0_2.displayedCard.battleTowerWins, 24, 1);
+ Menu_PrintTextPixelCoords(buffer, 112, 120, 0);
- sub_8072C44(buffer, ewram0_2.var_64.battleTowerLosses, 24, 1);
- MenuPrint_PixelCoords(buffer, 149, 120, 0);
+ sub_8072C44(buffer, ewram0_2.displayedCard.battleTowerLosses, 24, 1);
+ Menu_PrintTextPixelCoords(buffer, 149, 120, 0);
}
}
static void TrainerCard_Back_PrintLinkContests_Label(void)
{
- if (ewram0_2.var_b != 0)
- MenuPrint(gOtherText_ContestRecord, 3, 13);
+ if (ewram0_2.showContestRecord != 0)
+ Menu_PrintText(gOtherText_ContestRecord, 3, 13);
}
static void TrainerCard_Back_PrintLinkContests(void)
{
u8 buffer[8];
- if (ewram0_2.var_b != 0)
+ if (ewram0_2.showContestRecord != 0)
{
- ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.displayedCard.contestsWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 3);
MenuPrint_RightAligned(buffer, 28, 13);
}
}
static void TrainerCard_Back_PrintLinkPokeblocks_Label(void)
{
- if (ewram0_2.var_c != 0)
- MenuPrint(gOtherText_MixingRecord, 3, 11);
+ if (ewram0_2.showMixingRecord != 0)
+ Menu_PrintText(gOtherText_MixingRecord, 3, 11);
}
static void TrainerCard_Back_PrintLinkPokeblocks(void)
{
u8 buffer[8];
- if (ewram0_2.var_c != 0)
+ if (ewram0_2.showMixingRecord != 0)
{
- ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.displayedCard.pokeblocksWithFriends, STR_CONV_MODE_RIGHT_ALIGN, 5);
MenuPrint_RightAligned(buffer, 28, 11);
}
}
static void TrainerCard_Back_PrintPokemonTrades_Label(void)
{
- if (ewram0_2.var_d != 0)
- MenuPrint(gOtherText_TradeRecord, 3, 9);
+ if (ewram0_2.showTradingRecord != 0)
+ Menu_PrintText(gOtherText_TradeRecord, 3, 9);
}
static void TrainerCard_Back_PrintPokemonTrades(void)
{
u8 buffer[8];
- if (ewram0_2.var_d != 0)
+ if (ewram0_2.showTradingRecord != 0)
{
- ConvertIntToDecimalStringN(buffer, ewram0_2.var_64.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
+ ConvertIntToDecimalStringN(buffer, ewram0_2.displayedCard.pokemonTrades, STR_CONV_MODE_RIGHT_ALIGN, 5);
MenuPrint_RightAligned(buffer, 28, 9);
}
}
@@ -1553,5 +1613,5 @@ void unref_sub_8094588(u16 left, u16 top)
if (gSaveBlock2.playerGender == FEMALE)
text = gOtherText_Girl;
- MenuPrint(text, left, top);
+ Menu_PrintText(text, left, top);
}
diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c
index caebc6a7b..41d5ae9d1 100644
--- a/src/field/battle_tower.c
+++ b/src/field/battle_tower.c
@@ -103,59 +103,59 @@ static const u16 sBattleTowerHeldItems[] = {
#include "../data/battle_tower/level_100_mons.h"
static const u8 sMaleTrainerClasses[] = {
- TRAINER_CLASS_RUIN_MANIAC,
- TRAINER_CLASS_TUBER_M,
- TRAINER_CLASS_COOL_TRAINER_M,
- TRAINER_CLASS_RICH_BOY,
- TRAINER_CLASS_POKEMANIAC,
- TRAINER_CLASS_SWIMMER_M,
- TRAINER_CLASS_BLACK_BELT,
- TRAINER_CLASS_GUITARIST,
- TRAINER_CLASS_KINDLER,
- TRAINER_CLASS_CAMPER,
- TRAINER_CLASS_BUG_MANIAC,
- TRAINER_CLASS_PSYCHIC_M,
- TRAINER_CLASS_GENTLEMAN,
- TRAINER_CLASS_SCHOOL_KID_M,
- TRAINER_CLASS_POKEFAN_M,
- TRAINER_CLASS_EXPERT_M,
- TRAINER_CLASS_YOUNGSTER,
- TRAINER_CLASS_FISHERMAN,
- TRAINER_CLASS_CYCLING_TRIATHLETE_M,
- TRAINER_CLASS_RUNNING_TRIATHLETE_M,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_M,
- TRAINER_CLASS_DRAGON_TAMER,
- TRAINER_CLASS_BIRD_KEEPER,
- TRAINER_CLASS_NINJA_BOY,
- TRAINER_CLASS_SAILOR,
- TRAINER_CLASS_COLLECTOR,
- TRAINER_CLASS_POKEMON_BREEDER_M,
- TRAINER_CLASS_POKEMON_RANGER_M,
- TRAINER_CLASS_BUG_CATCHER,
- TRAINER_CLASS_HIKER,
+ FACILITY_CLASS_RUIN_MANIAC,
+ FACILITY_CLASS_TUBER_M,
+ FACILITY_CLASS_COOL_TRAINER_M,
+ FACILITY_CLASS_RICH_BOY,
+ FACILITY_CLASS_POKEMANIAC,
+ FACILITY_CLASS_SWIMMER_M,
+ FACILITY_CLASS_BLACK_BELT,
+ FACILITY_CLASS_GUITARIST,
+ FACILITY_CLASS_KINDLER,
+ FACILITY_CLASS_CAMPER,
+ FACILITY_CLASS_BUG_MANIAC,
+ FACILITY_CLASS_PSYCHIC_M,
+ FACILITY_CLASS_GENTLEMAN,
+ FACILITY_CLASS_SCHOOL_KID_M,
+ FACILITY_CLASS_POKEFAN_M,
+ FACILITY_CLASS_EXPERT_M,
+ FACILITY_CLASS_YOUNGSTER,
+ FACILITY_CLASS_FISHERMAN,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_M,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_M,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_M,
+ FACILITY_CLASS_DRAGON_TAMER,
+ FACILITY_CLASS_BIRD_KEEPER,
+ FACILITY_CLASS_NINJA_BOY,
+ FACILITY_CLASS_SAILOR,
+ FACILITY_CLASS_COLLECTOR,
+ FACILITY_CLASS_POKEMON_BREEDER_M,
+ FACILITY_CLASS_POKEMON_RANGER_M,
+ FACILITY_CLASS_BUG_CATCHER,
+ FACILITY_CLASS_HIKER,
};
static const u8 sFemaleTrainerClasses[] = {
- TRAINER_CLASS_AROMA_LADY,
- TRAINER_CLASS_TUBER_F,
- TRAINER_CLASS_COOL_TRAINER_F,
- TRAINER_CLASS_HEX_MANIAC,
- TRAINER_CLASS_LADY,
- TRAINER_CLASS_BEAUTY,
- TRAINER_CLASS_PSYCHIC_F,
- TRAINER_CLASS_SCHOOL_KID_F,
- TRAINER_CLASS_POKEFAN_F,
- TRAINER_CLASS_EXPERT_F,
- TRAINER_CLASS_CYCLING_TRIATHLETE_F,
- TRAINER_CLASS_RUNNING_TRIATHLETE_F,
- TRAINER_CLASS_SWIMMING_TRIATHLETE_F,
- TRAINER_CLASS_BATTLE_GIRL,
- TRAINER_CLASS_PARASOL_LADY,
- TRAINER_CLASS_SWIMMER_F,
- TRAINER_CLASS_PICNICKER,
- TRAINER_CLASS_POKEMON_BREEDER_F,
- TRAINER_CLASS_POKEMON_RANGER_F,
- TRAINER_CLASS_LASS,
+ FACILITY_CLASS_AROMA_LADY,
+ FACILITY_CLASS_TUBER_F,
+ FACILITY_CLASS_COOL_TRAINER_F,
+ FACILITY_CLASS_HEX_MANIAC,
+ FACILITY_CLASS_LADY,
+ FACILITY_CLASS_BEAUTY,
+ FACILITY_CLASS_PSYCHIC_F,
+ FACILITY_CLASS_SCHOOL_KID_F,
+ FACILITY_CLASS_POKEFAN_F,
+ FACILITY_CLASS_EXPERT_F,
+ FACILITY_CLASS_CYCLING_TRIATHLETE_F,
+ FACILITY_CLASS_RUNNING_TRIATHLETE_F,
+ FACILITY_CLASS_SWIMMING_TRIATHLETE_F,
+ FACILITY_CLASS_BATTLE_GIRL,
+ FACILITY_CLASS_PARASOL_LADY,
+ FACILITY_CLASS_SWIMMER_F,
+ FACILITY_CLASS_PICNICKER,
+ FACILITY_CLASS_POKEMON_BREEDER_F,
+ FACILITY_CLASS_POKEMON_RANGER_F,
+ FACILITY_CLASS_LASS,
};
static const u8 sMaleTrainerGfxIds[] = {
@@ -255,11 +255,11 @@ static void ResetBattleTowerStreak(u8 levelType);
static void ValidateBattleTowerRecordChecksums(void);
static void PrintEReaderTrainerFarewellMessage(void);
extern void SetBattleTowerTrainerGfxId(u8);
-extern void sub_8135A3C(void);
+static void SaveCurrentWinStreak(void);
static void sub_8135CFC(void);
static void CheckMonBattleTowerBanlist(u16, u16, u16, u8, u8, u16 *, u16 *, u8 *);
static void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *);
-static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer);
+void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer);
static void SetBattleTowerRecordChecksum(struct BattleTowerRecord *);
static void ClearBattleTowerRecord(struct BattleTowerRecord *);
@@ -1538,7 +1538,7 @@ void CheckPartyBattleTowerBanlist(void)
StringAppend(gStringVar1, BattleText_Format8);
return;
}
-
+
if (1 & counter)
StringAppend(gStringVar1, BattleText_Format6);
else
@@ -1699,7 +1699,7 @@ void SetBattleTowerProperty(void)
}
gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType]++;
- sub_8135A3C();
+ SaveCurrentWinStreak();
gSpecialVar_Result = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType];
gStringVar1[0] = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType] + 0xA1;
@@ -1711,7 +1711,7 @@ void SetBattleTowerProperty(void)
gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType]++;
}
- sub_8135A3C();
+ SaveCurrentWinStreak();
gSpecialVar_Result = gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType];
break;
case 8:
@@ -1801,118 +1801,35 @@ void SetBattleTowerParty(void)
ReducePlayerPartyToThree();
}
-#ifdef NONMATCHING
-void sub_8135A3C(void)
+static void SaveCurrentWinStreak(void)
{
- u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType;
- u16 winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType);
+ u8 levelType = gSaveBlock2.battleTower.battleTowerLevelType;
+ u16 streak = GetCurrentBattleTowerWinStreak(levelType);
- if (gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] < winStreak)
- {
- gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] = winStreak;
- }
+ if (gSaveBlock2.battleTower.recordWinStreaks[levelType] < streak)
+ gSaveBlock2.battleTower.recordWinStreaks[levelType] = streak;
if (gSaveBlock2.battleTower.recordWinStreaks[0] > gSaveBlock2.battleTower.recordWinStreaks[1])
{
- u16 streak = gSaveBlock2.battleTower.recordWinStreaks[0];
+ streak = gSaveBlock2.battleTower.recordWinStreaks[0];
SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, streak);
+
if (streak > 9999)
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = 9999;
- }
else
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = streak;
- }
}
else
{
- u16 streak = gSaveBlock2.battleTower.recordWinStreaks[1];
+ streak = gSaveBlock2.battleTower.recordWinStreaks[1];
SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, streak);
+
if (streak > 9999)
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = 9999;
- }
else
- {
gSaveBlock2.battleTower.bestBattleTowerWinStreak = streak;
- }
}
}
-#else
-__attribute__((naked))
-void sub_8135A3C(void)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- ldr r6, _08135A84 @ =gSaveBlock2\n\
- ldr r1, _08135A88 @ =0x00000554\n\
- adds r0, r6, r1\n\
- ldrb r4, [r0]\n\
- lsls r4, 31\n\
- lsrs r4, 31\n\
- adds r0, r4, 0\n\
- bl GetCurrentBattleTowerWinStreak\n\
- lsls r0, 16\n\
- lsrs r5, r0, 16\n\
- lsls r4, 1\n\
- movs r3, 0xAC\n\
- lsls r3, 3\n\
- adds r2, r6, r3\n\
- adds r4, r2\n\
- ldrh r0, [r4]\n\
- cmp r0, r5\n\
- bcs _08135A66\n\
- strh r5, [r4]\n\
-_08135A66:\n\
- ldr r0, _08135A8C @ =0x00000562\n\
- adds r1, r6, r0\n\
- ldrh r0, [r2]\n\
- ldrh r3, [r1]\n\
- cmp r0, r3\n\
- bls _08135A94\n\
- adds r5, r0, 0\n\
- movs r0, 0x20\n\
- adds r1, r5, 0\n\
- bl SetGameStat\n\
- ldr r1, _08135A90 @ =0x0000270f\n\
- cmp r5, r1\n\
- bhi _08135AA4\n\
- b _08135AB4\n\
- .align 2, 0\n\
-_08135A84: .4byte gSaveBlock2\n\
-_08135A88: .4byte 0x00000554\n\
-_08135A8C: .4byte 0x00000562\n\
-_08135A90: .4byte 0x0000270f\n\
-_08135A94:\n\
- ldrh r5, [r1]\n\
- movs r0, 0x20\n\
- adds r1, r5, 0\n\
- bl SetGameStat\n\
- ldr r1, _08135AAC @ =0x0000270f\n\
- cmp r5, r1\n\
- bls _08135AB4\n\
-_08135AA4:\n\
- ldr r2, _08135AB0 @ =0x00000572\n\
- adds r0, r6, r2\n\
- strh r1, [r0]\n\
- b _08135ABA\n\
- .align 2, 0\n\
-_08135AAC: .4byte 0x0000270f\n\
-_08135AB0: .4byte 0x00000572\n\
-_08135AB4:\n\
- ldr r3, _08135AC0 @ =0x00000572\n\
- adds r0, r6, r3\n\
- strh r5, [r0]\n\
-_08135ABA:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08135AC0: .4byte 0x00000572\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
void sub_8135AC4(void)
{
@@ -1951,7 +1868,7 @@ void sub_8135AC4(void)
}
SetBattleTowerRecordChecksum(&gSaveBlock2.battleTower.playerRecord);
- sub_8135A3C();
+ SaveCurrentWinStreak();
}
void SaveBattleTowerProgress(void)
@@ -1978,7 +1895,7 @@ void SaveBattleTowerProgress(void)
VarSet(VAR_TEMP_0, 0);
gSaveBlock2.battleTower.unk_554 = 1;
- TrySavingData(EREADER_SAVE);
+ Save_WriteData(SAVE_EREADER);
}
void BattleTower_SoftReset(void)
@@ -2068,79 +1985,15 @@ u16 GetCurrentBattleTowerWinStreak(u8 battleTowerLevelType)
return winStreak;
}
-#ifdef NONMATCHING
void DetermineBattleTowerPrize(void)
{
- u16 prizeItem;
- struct SaveBlock2 *saveBlock = &gSaveBlock2;
- u8 battleTowerLevelType = saveBlock->battleTower.battleTowerLevelType;
+ u8 levelType = gSaveBlock2.battleTower.battleTowerLevelType;
- if (saveBlock->battleTower.curStreakChallengesNum[battleTowerLevelType] - 1 > 5)
- {
- prizeItem = sLongStreakPrizes[Random() % ARRAY_COUNT(sLongStreakPrizes)];
- }
+ if (gSaveBlock2.battleTower.curStreakChallengesNum[levelType] - 1 > 5)
+ gSaveBlock2.battleTower.prizeItem = sLongStreakPrizes[Random() % ARRAY_COUNT(sLongStreakPrizes)];
else
- {
- prizeItem = sShortStreakPrizes[Random() % ARRAY_COUNT(sShortStreakPrizes)];
- }
-
- saveBlock->battleTower.prizeItem = prizeItem;
-}
-#else
-__attribute__((naked))
-void DetermineBattleTowerPrize(void)
-{
- asm(".syntax unified\n\
- push {r4,r5,lr}\n\
- ldr r5, _08135DB0 @ =gSaveBlock2\n\
- ldr r1, _08135DB4 @ =0x00000554\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- lsls r0, 31\n\
- lsrs r0, 31\n\
- lsls r0, 1\n\
- ldr r2, _08135DB8 @ =0x0000055c\n\
- adds r1, r5, r2\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- subs r0, 0x1\n\
- cmp r0, 0x5\n\
- ble _08135DC0\n\
- bl Random\n\
- ldr r4, _08135DBC @ =sLongStreakPrizes\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x9\n\
- b _08135DCC\n\
- .align 2, 0\n\
-_08135DB0: .4byte gSaveBlock2\n\
-_08135DB4: .4byte 0x00000554\n\
-_08135DB8: .4byte 0x0000055c\n\
-_08135DBC: .4byte sLongStreakPrizes\n\
-_08135DC0:\n\
- bl Random\n\
- ldr r4, _08135DE8 @ =sShortStreakPrizes\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- movs r1, 0x6\n\
-_08135DCC:\n\
- bl __umodsi3\n\
- lsls r0, 16\n\
- lsrs r0, 15\n\
- adds r0, r4\n\
- ldrh r1, [r0]\n\
- movs r2, 0xAD\n\
- lsls r2, 3\n\
- adds r0, r5, r2\n\
- strh r1, [r0]\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08135DE8: .4byte sShortStreakPrizes\n\
- .syntax divided\n");
+ gSaveBlock2.battleTower.prizeItem = sShortStreakPrizes[Random() % ARRAY_COUNT(sShortStreakPrizes)];
}
-#endif // NONMATCHING
void GiveBattleTowerPrize(void)
{
diff --git a/src/field/berry.c b/src/field/berry.c
index 088267ad0..588807755 100644
--- a/src/field/berry.c
+++ b/src/field/berry.c
@@ -999,6 +999,66 @@ extern u16 gSpecialVar_0x8006;
static u8 CalcBerryYield(struct BerryTree *tree);
static u16 GetStageDurationByBerryType(u8 berry);
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80C2B04()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x0\n"
+ " bl sub_80B47D8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._1 @ gTasks\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldrh r0, [r1, #0x10]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r1, #0x10]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._2:\n"
+ " .align 2, 0\n"
+ "._1:\n"
+ " .word gTasks\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_80C2B30()
+{
+ asm(
+ " push {lr}\n"
+ " mov r0, #0x1\n"
+ " bl sub_80B47D8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " ldr r2, ._3 @ gTasks\n"
+ " lsl r1, r0, #0x2\n"
+ " add r1, r1, r0\n"
+ " lsl r1, r1, #0x3\n"
+ " add r1, r1, r2\n"
+ " ldrh r0, [r1, #0x10]\n"
+ " sub r0, r0, #0x1\n"
+ " strh r0, [r1, #0x10]\n"
+ " bl CloseMenu\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word gTasks\n"
+ "\n"
+ );
+}
+#endif
+
// unused
// this could be static, but making it so causes a compile-time warning.
void ClearEnigmaBerries(void)
@@ -1022,6 +1082,180 @@ void SetEnigmaBerry(u8 *src)
gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2;
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80C2BD0()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " ldr r3, ._11 @ gSaveBlock1\n"
+ " ldr r1, ._11 + 4 @ 0x316c\n"
+ " add r4, r3, r1\n"
+ " ldr r6, [r4]\n"
+ " add r1, r1, #0x4\n"
+ " add r2, r3, r1\n"
+ " ldr r7, [r2]\n"
+ " mov r1, #0x0\n"
+ " str r1, [r4]\n"
+ " str r1, [r2]\n"
+ " add r4, r0, #0\n"
+ " mov r2, #0x0\n"
+ " ldr r5, ._11 + 8 @ 0x52b\n"
+ "._10:\n"
+ " add r0, r4, r1\n"
+ " ldrb r0, [r0]\n"
+ " add r2, r2, r0\n"
+ " add r1, r1, #0x1\n"
+ " cmp r1, r5\n"
+ " bls ._10 @cond_branch\n"
+ " ldr r1, ._11 + 4 @ 0x316c\n"
+ " add r0, r3, r1\n"
+ " str r6, [r0]\n"
+ " add r1, r1, #0x4\n"
+ " add r0, r3, r1\n"
+ " str r7, [r0]\n"
+ " add r0, r2, #0\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._12:\n"
+ " .align 2, 0\n"
+ "._11:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x316c\n"
+ " .word 0x52b\n"
+ "\n"
+ );
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add r3, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " mov r9, r1\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " mov r8, r2\n"
+ " ldr r4, ._16 @ gSaveBlock1\n"
+ " ldr r1, ._16 + 4 @ 0x3160\n"
+ " add r0, r4, r1\n"
+ " add r2, r0, #0\n"
+ " ldr r1, ._16 + 8 @ gBerries\n"
+ " ldmia r1!, {r5, r6, r7}\n"
+ " stmia r2!, {r5, r6, r7}\n"
+ " ldmia r1!, {r5, r6, r7}\n"
+ " stmia r2!, {r5, r6, r7}\n"
+ " ldr r1, [r1]\n"
+ " str r1, [r2]\n"
+ " add r1, r3, #0\n"
+ " bl StringCopy\n"
+ " ldr r0, ._16 + 12 @ 0x361c\n"
+ " add r6, r4, r0\n"
+ " ldr r1, ._16 + 16 @ gUnknown_Debug_083F7F84\n"
+ " add r0, r6, #0\n"
+ " bl StringCopy\n"
+ " ldr r1, ._16 + 20 @ 0x3649\n"
+ " add r5, r4, r1\n"
+ " ldr r1, ._16 + 24 @ gUnknown_Debug_083F7F90\n"
+ " add r0, r5, #0\n"
+ " bl StringCopy\n"
+ " ldr r2, ._16 + 28 @ 0x316c\n"
+ " add r0, r4, r2\n"
+ " str r6, [r0]\n"
+ " ldr r6, ._16 + 32 @ 0x3170\n"
+ " add r0, r4, r6\n"
+ " str r5, [r0]\n"
+ " mov r2, #0x0\n"
+ " ldr r6, ._16 + 36 @ 0x47f\n"
+ " ldr r7, ._16 + 40 @ 0x317c\n"
+ " add r5, r4, r7\n"
+ " ldr r3, ._16 + 44 @ gSpriteImage_UnusedCherry\n"
+ "._13:\n"
+ " add r0, r2, r5\n"
+ " add r1, r2, r3\n"
+ " ldrb r1, [r1]\n"
+ " strb r1, [r0]\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, r6\n"
+ " ble ._13 @cond_branch\n"
+ " ldr r0, ._16 @ gSaveBlock1\n"
+ " ldr r3, ._16 + 48 @ gSpritePalette_UnusedCherry\n"
+ " ldr r2, ._16 + 52 @ 0x35fc\n"
+ " add r1, r0, r2\n"
+ " mov r2, #0xf\n"
+ "._14:\n"
+ " ldrh r0, [r3]\n"
+ " strh r0, [r1]\n"
+ " add r3, r3, #0x2\n"
+ " add r1, r1, #0x2\n"
+ " sub r2, r2, #0x1\n"
+ " cmp r2, #0\n"
+ " bge ._14 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " ldr r5, ._16 + 56 @ gSaveBlock1\n"
+ " ldr r3, ._16 + 60 @ gUnknown_Debug_839B6CE\n"
+ "._15:\n"
+ " add r0, r2, r5\n"
+ " add r1, r2, r3\n"
+ " ldrb r1, [r1]\n"
+ " strb r1, [r0]\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, #0x11\n"
+ " ble ._15 @cond_branch\n"
+ " ldr r5, ._16 + 64 @ 0x3688\n"
+ " add r0, r4, r5\n"
+ " mov r6, r9\n"
+ " strb r6, [r0]\n"
+ " ldr r7, ._16 + 68 @ 0x3689\n"
+ " add r0, r4, r7\n"
+ " mov r1, r8\n"
+ " strb r1, [r0]\n"
+ " ldr r2, ._16 + 4 @ 0x3160\n"
+ " add r0, r4, r2\n"
+ " bl debug_sub_80C2BD0\n"
+ " add r5, r5, #0x4\n"
+ " add r1, r4, r5\n"
+ " str r0, [r1]\n"
+ " pop {r3, r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._17:\n"
+ " .align 2, 0\n"
+ "._16:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x3160\n"
+ " .word gBerries\n"
+ " .word 0x361c\n"
+ " .word gUnknown_Debug_083F7F84\n"
+ " .word 0x3649\n"
+ " .word gUnknown_Debug_083F7F90\n"
+ " .word 0x316c\n"
+ " .word 0x3170\n"
+ " .word 0x47f\n"
+ " .word 0x317c\n"
+ " .word gSpriteImage_UnusedCherry\n"
+ " .word gSpritePalette_UnusedCherry\n"
+ " .word 0x35fc\n"
+ " .word gSaveBlock1+0x3676\n"
+ " .word gUnknown_Debug_839B6CE\n"
+ " .word 0x3688\n"
+ " .word 0x3689\n"
+ "\n"
+ );
+}
+#else
static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
{
const u8 *description1;
@@ -1051,9 +1285,110 @@ static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry)
return checksum;
}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80C2D24()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " ldr r6, [sp, #0x18]\n"
+ " ldr r4, [sp, #0x1c]\n"
+ " mov r8, r4\n"
+ " ldr r5, ._18 @ gSaveBlock1\n"
+ " ldr r7, ._18 + 4 @ 0x3175\n"
+ " add r4, r5, r7\n"
+ " strb r0, [r4]\n"
+ " ldr r4, ._18 + 8 @ 0x3176\n"
+ " add r0, r5, r4\n"
+ " strb r1, [r0]\n"
+ " add r7, r7, #0x2\n"
+ " add r0, r5, r7\n"
+ " strb r2, [r0]\n"
+ " ldr r1, ._18 + 12 @ 0x3178\n"
+ " add r0, r5, r1\n"
+ " strb r3, [r0]\n"
+ " add r4, r4, #0x3\n"
+ " add r0, r5, r4\n"
+ " strb r6, [r0]\n"
+ " add r7, r7, #0x3\n"
+ " add r0, r5, r7\n"
+ " mov r1, r8\n"
+ " strb r1, [r0]\n"
+ " sub r4, r4, #0x19\n"
+ " add r0, r5, r4\n"
+ " bl debug_sub_80C2BD0\n"
+ " ldr r7, ._18 + 16 @ 0x368c\n"
+ " add r5, r5, r7\n"
+ " str r0, [r5]\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._19:\n"
+ " .align 2, 0\n"
+ "._18:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x3175\n"
+ " .word 0x3176\n"
+ " .word 0x3178\n"
+ " .word 0x368c\n"
+ "\n"
+ );
+}
+#endif
// due to e-reader scans being particularly volatile to failure, it is a requirement to check for
// their integrity here due to scans possibly failing to produce the correct result.
+#if DEBUG
+__attribute__((naked))
+bool32 IsEnigmaBerryValid()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r4, ._24 @ gSaveBlock1\n"
+ " ldr r1, ._24 + 4 @ 0x3174\n"
+ " add r0, r4, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._22 @cond_branch\n"
+ " ldr r2, ._24 + 8 @ 0x316a\n"
+ " add r0, r4, r2\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._22 @cond_branch\n"
+ " ldr r1, ._24 + 12 @ 0x3160\n"
+ " add r0, r4, r1\n"
+ " bl debug_sub_80C2BD0\n"
+ " ldr r2, ._24 + 16 @ 0x368c\n"
+ " add r1, r4, r2\n"
+ " ldr r1, [r1]\n"
+ " cmp r0, r1\n"
+ " bne ._22 @cond_branch\n"
+ " mov r0, #0x1\n"
+ " b ._23\n"
+ "._25:\n"
+ " .align 2, 0\n"
+ "._24:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x3174\n"
+ " .word 0x316a\n"
+ " .word 0x3160\n"
+ " .word 0x368c\n"
+ "._22:\n"
+ " mov r0, #0x0\n"
+ "._23:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+#else
bool32 IsEnigmaBerryValid(void)
{
if (gSaveBlock1.enigmaBerry.berry.stageDuration == 0)
@@ -1064,6 +1399,7 @@ bool32 IsEnigmaBerryValid(void)
return FALSE;
return TRUE;
}
+#endif
const struct Berry *GetBerryInfo(u8 berry)
{
@@ -1417,6 +1753,177 @@ bool8 PlayerHasBerries(void)
return IsBagPocketNonEmpty(BAG_BERRIES);
}
+#if DEBUG
+void debug_sub_80C33FC(u8 *buffer, s32 value, u8 n)
+{
+ StringAppend(gStringVar4, buffer);
+ ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, n);
+ StringAppend(gStringVar4, gStringVar1);
+}
+
+extern const u8 gUnknown_Debug_083F7F9D[];
+extern const u8 gUnknown_Debug_083F7FA2[];
+extern const u8 gUnknown_Debug_083F7FA9[];
+extern const u8 gUnknown_Debug_083F7FB0[];
+extern const u8 gUnknown_Debug_083F7FB7[];
+extern const u8 gUnknown_Debug_083F7FBE[];
+extern const u8 gUnknown_Debug_083F7FC5[];
+extern const u8 gUnknown_Debug_083F7FCC[];
+extern const u8 gUnknown_Debug_083F7FD3[];
+extern const u8 gUnknown_Debug_083F7FD3[];
+extern const u8 gUnknown_Debug_083F7FD3[];
+
+#ifdef NONMATCHING
+u8* DebugOpenBerryInfo(void)
+{
+ s32 i;
+ u8 berryTreeId;
+ struct BerryTree *berryTree;
+
+ if (GetFieldObjectScriptPointerPlayerFacing() != &S_BerryTree)
+ return NULL;
+
+ berryTreeId = FieldObjectGetBerryTreeId(gSelectedMapObject);
+ berryTree = GetBerryTreeInfo(berryTreeId);
+
+ for (i = 0; i < 500; i++)
+ gStringVar4[i] |= 0xFF;
+
+ debug_sub_80C33FC(gUnknown_Debug_083F7F9D, berryTreeId, 3);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FA2, berryTree->berry, 2);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FA9, berryTree->stage, 2);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FB0, berryTree->secondsUntilNextStage, 5);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FB7, berryTree->berryYield, 2);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FBE, berryTree->regrowthCount, 3);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FC5, berryTree->growthSparkle, 1);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FCC, berryTree->watered1, 1);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FD3, berryTree->watered2, 1);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FD3, berryTree->watered3, 1);
+ debug_sub_80C33FC(gUnknown_Debug_083F7FD3, berryTree->watered4, 1);
+
+ return gStringVar4;
+}
+#else
+__attribute__((naked))
+void DebugOpenBerryInfo()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " bl GetFieldObjectScriptPointerPlayerFacing\n"
+ " ldr r1, ._138 @ S_BerryTree\n"
+ " cmp r0, r1\n"
+ " beq ._136 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._137\n"
+ "._139:\n"
+ " .align 2, 0\n"
+ "._138:\n"
+ " .word S_BerryTree\n"
+ "._136:\n"
+ " ldr r0, ._141 @ gSelectedMapObject\n"
+ " ldrb r0, [r0]\n"
+ " bl FieldObjectGetBerryTreeId\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " add r0, r6, #0\n"
+ " bl GetBerryTreeInfo\n"
+ " add r5, r0, #0\n"
+ " mov r2, #0x0\n"
+ " ldr r7, ._141 + 4 @ 0x1f3\n"
+ " ldr r4, ._141 + 8 @ gStringVar4\n"
+ " mov r3, #0xff\n"
+ "._140:\n"
+ " add r1, r2, r4\n"
+ " ldrb r0, [r1]\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " add r2, r2, #0x1\n"
+ " cmp r2, r7\n"
+ " ble ._140 @cond_branch\n"
+ " ldr r0, ._141 + 12 @ gUnknown_Debug_083F7F9D\n"
+ " add r1, r6, #0\n"
+ " mov r2, #0x3\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 16 @ gUnknown_Debug_083F7FA2\n"
+ " ldrb r1, [r5]\n"
+ " mov r2, #0x2\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 20 @ gUnknown_Debug_083F7FA9\n"
+ " ldrb r1, [r5, #0x1]\n"
+ " lsl r1, r1, #0x19\n"
+ " lsr r1, r1, #0x19\n"
+ " mov r2, #0x2\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 24 @ gUnknown_Debug_083F7FB0\n"
+ " ldrh r1, [r5, #0x2]\n"
+ " mov r2, #0x5\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 28 @ gUnknown_Debug_083F7FB7\n"
+ " ldrb r1, [r5, #0x4]\n"
+ " mov r2, #0x2\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 32 @ gUnknown_Debug_083F7FBE\n"
+ " ldrb r1, [r5, #0x5]\n"
+ " lsl r1, r1, #0x1c\n"
+ " lsr r1, r1, #0x1c\n"
+ " mov r2, #0x3\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 36 @ gUnknown_Debug_083F7FC5\n"
+ " ldrb r1, [r5, #0x1]\n"
+ " lsr r1, r1, #0x7\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 40 @ gUnknown_Debug_083F7FCC\n"
+ " ldrb r1, [r5, #0x5]\n"
+ " lsl r1, r1, #0x1b\n"
+ " lsr r1, r1, #0x1f\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r4, ._141 + 44 @ gUnknown_Debug_083F7FD3\n"
+ " ldrb r1, [r5, #0x5]\n"
+ " lsl r1, r1, #0x1a\n"
+ " lsr r1, r1, #0x1f\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_80C33FC\n"
+ " ldrb r1, [r5, #0x5]\n"
+ " lsl r1, r1, #0x19\n"
+ " lsr r1, r1, #0x1f\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_80C33FC\n"
+ " ldrb r1, [r5, #0x5]\n"
+ " lsr r1, r1, #0x7\n"
+ " add r0, r4, #0\n"
+ " mov r2, #0x1\n"
+ " bl debug_sub_80C33FC\n"
+ " ldr r0, ._141 + 8 @ gStringVar4\n"
+ "._137:\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._142:\n"
+ " .align 2, 0\n"
+ "._141:\n"
+ " .word gSelectedMapObject\n"
+ " .word 0x1f3\n"
+ " .word gStringVar4\n"
+ " .word gUnknown_Debug_083F7F9D\n"
+ " .word gUnknown_Debug_083F7FA2\n"
+ " .word gUnknown_Debug_083F7FA9\n"
+ " .word gUnknown_Debug_083F7FB0\n"
+ " .word gUnknown_Debug_083F7FB7\n"
+ " .word gUnknown_Debug_083F7FBE\n"
+ " .word gUnknown_Debug_083F7FC5\n"
+ " .word gUnknown_Debug_083F7FCC\n"
+ " .word gUnknown_Debug_083F7FD3\n"
+ "\n"
+ );
+}
+#endif
+
+#endif
+
// whenever the player is not within view of the berry tree during its sparkle state, the
// sparkle state will be reset.
void ResetBerryTreeSparkleFlags(void)
@@ -1445,3 +1952,17 @@ void ResetBerryTreeSparkleFlags(void)
}
}
}
+
+#if DEBUG
+static const u8 gUnknown_Debug_083F7F84[] = _("そとから きた きのみ");
+static const u8 gUnknown_Debug_083F7F90[] = _("ただいま かいはつちゅう");
+static const u8 gUnknown_Debug_083F7F9D[] = _("POS:");
+static const u8 gUnknown_Debug_083F7FA2[] = _("\nTYPE:");
+static const u8 gUnknown_Debug_083F7FA9[] = _("\nGROW:");
+static const u8 gUnknown_Debug_083F7FB0[] = _("\nTIME:");
+static const u8 gUnknown_Debug_083F7FB7[] = _("\nFCNT:");
+static const u8 gUnknown_Debug_083F7FBE[] = _("\nSCNT:");
+static const u8 gUnknown_Debug_083F7FC5[] = _("\nHOOK:");
+static const u8 gUnknown_Debug_083F7FCC[] = _("\nWBIT:");
+static const u8 gUnknown_Debug_083F7FD3[] = _("");
+#endif
diff --git a/src/field/berry_tag_screen.c b/src/field/berry_tag_screen.c
index 960a163c1..ed0ab86ae 100644
--- a/src/field/berry_tag_screen.c
+++ b/src/field/berry_tag_screen.c
@@ -42,7 +42,7 @@ extern u8 gBerryCheck_Pal[];
extern u8 gUnknown_08E788E4[];
extern u8 gUnknown_08E78A84[];
-static const u8 *const gUnknown_0841192C[] =
+const u8 *const gUnknown_0841192C[] =
{
ContestStatsText_VerySoft,
ContestStatsText_Soft,
@@ -93,7 +93,7 @@ static bool8 sub_8146058(void)
switch (gMain.state)
{
case 0:
- sub_80F9438();
+ ClearVideoCallbacks();
sub_80F9368();
sub_8146288();
REG_BLDCNT = 0;
@@ -109,11 +109,11 @@ static bool8 sub_8146058(void)
gMain.state += 1;
break;
case 3:
- SetUpWindowConfig(&gWindowConfig_81E6E18);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6E18);
gMain.state += 1;
break;
case 4:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E18);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6E18);
gMain.state += 1;
break;
case 5:
@@ -189,7 +189,6 @@ static void sub_8146288(void)
bool8 sub_81462B8(void)
{
u16 i;
- void *addr;
switch (gSharedMem.var_1FFFF)
{
@@ -213,8 +212,7 @@ bool8 sub_81462B8(void)
else
gBGTilemapBuffers[2][i] = 0x5042;
}
- addr = (void *)(VRAM + 0x3800);
- DmaCopy16(3, gBGTilemapBuffers[2], addr, 0x800);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(VRAM + 0x3800), 0x800);
gSharedMem.var_1FFFF += 1;
break;
case 4:
@@ -280,18 +278,18 @@ static void sub_81464E4(void)
berryInfo = GetBerryInfo(gSpecialVar_ItemId + OFFSET_7B + 1);
ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_ItemId - FIRST_BERRY + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
- MenuPrint(gStringVar1, 12, 4);
+ Menu_PrintText(gStringVar1, 12, 4);
#if ENGLISH
- MenuPrint(berryInfo->name, 14, 4);
+ Menu_PrintText(berryInfo->name, 14, 4);
#elif GERMAN
StringCopy(buffer, berryInfo->name);
StringAppend(buffer, gOtherText_Berry2);
- MenuPrint(buffer, 14, 4);
+ Menu_PrintText(buffer, 14, 4);
#endif
- MenuPrint(berryInfo->description1, 4, 14);
- MenuPrint(berryInfo->description2, 4, 16);
+ Menu_PrintText(berryInfo->description1, 4, 14);
+ Menu_PrintText(berryInfo->description2, 4, 16);
#ifdef UNITS_IMPERIAL
size = (berryInfo->size * 1000) / 254;
@@ -301,7 +299,7 @@ static void sub_81464E4(void)
sizeMajor = size / 100;
#endif
- MenuPrint(gOtherText_Size, 11, 7);
+ Menu_PrintText(gOtherText_Size, 11, 7);
if (berryInfo->size != 0)
{
#ifdef UNITS_IMPERIAL
@@ -311,18 +309,18 @@ static void sub_81464E4(void)
ConvertIntToDecimalStringN(gStringVar1, berryInfo->size / 10, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, berryInfo->size % 10, STR_CONV_MODE_LEFT_ALIGN, 2);
#endif
- MenuPrint(gContestStatsText_Unknown1, 16, 7);
+ Menu_PrintText(gContestStatsText_Unknown1, 16, 7);
}
else
{
- MenuPrint(gOtherText_ThreeQuestions2, 16, 7);
+ Menu_PrintText(gOtherText_ThreeQuestions2, 16, 7);
}
- MenuPrint(gOtherText_Firm, 11, 9);
+ Menu_PrintText(gOtherText_Firm, 11, 9);
if (berryInfo->firmness != 0)
- MenuPrint(gUnknown_0841192C[berryInfo->firmness - 1], 16, 9);
+ Menu_PrintText(gUnknown_0841192C[berryInfo->firmness - 1], 16, 9);
else
- MenuPrint(gOtherText_ThreeQuestions2, 16, 9);
+ Menu_PrintText(gOtherText_ThreeQuestions2, 16, 9);
}
static void sub_8146600(u8 berry)
@@ -445,7 +443,7 @@ static void sub_8146810(s8 berry)
static void sub_81468BC(void)
{
- MenuZeroFillWindowRect(0, 4, 29, 19);
+ Menu_EraseWindowRect(0, 4, 29, 19);
sub_81464E4();
// center of berry sprite
diff --git a/src/field/bike.c b/src/field/bike.c
index 8db01b4b4..98966ebd4 100644
--- a/src/field/bike.c
+++ b/src/field/bike.c
@@ -14,6 +14,11 @@ extern bool8 gBikeCyclingChallenge;
extern u8 gBikeCollisions;
extern u8 gUnusedBikeCameraAheadPanback;
+#if DEBUG
+extern u8 gUnknown_020297ED;
+u8 debug_sub_805F2B0(u8);
+#endif
+
static void MovePlayerOnMachBike(u8, u16, u16);
static u8 GetMachBikeTransition(u8 *);
static void MachBikeTransition_FaceDirection(u8);
@@ -134,6 +139,13 @@ void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys)
static void MovePlayerOnMachBike(u8 direction, u16 newKeys, u16 heldKeys)
{
+#if DEBUG
+ if (gUnknown_020297ED && debug_sub_805F2B0(direction))
+ {
+ Bike_SetBikeStill();
+ return;
+ }
+#endif
sMachBikeTransitions[GetMachBikeTransition(&direction)](direction);
}
@@ -271,6 +283,14 @@ static void MachBikeTransition_TrySlowDown(u8 var)
// the acro bike requires the input handler to be executed before the transition can.
static void MovePlayerOnAcroBike(u8 newDirection, u16 newKeys, u16 heldKeys)
{
+#if DEBUG
+ if (gUnknown_020297ED && debug_sub_805F2B0(newDirection))
+ {
+ Bike_SetBikeStill();
+ return;
+ }
+#endif
+
sAcroBikeTransitions[CheckMovementInputAcroBike(&newDirection, newKeys, heldKeys)](newDirection);
}
diff --git a/src/field/braille_puzzles.c b/src/field/braille_puzzles.c
index 0d304714d..f11fb5fb3 100644
--- a/src/field/braille_puzzles.c
+++ b/src/field/braille_puzzles.c
@@ -161,7 +161,7 @@ void Task_BrailleWait(u8 taskId)
case 1:
if (BrailleWait_CheckButtonPress() != FALSE)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
PlaySE(SE_SELECT);
data[0] = 2;
}
@@ -170,7 +170,7 @@ void Task_BrailleWait(u8 taskId)
data[1] = data[1] - 1;
if (data[1] == 0)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
data[0] = 3;
data[1] = 30;
}
diff --git a/src/field/choose_party.c b/src/field/choose_party.c
index d278eda4a..7529c4271 100644
--- a/src/field/choose_party.c
+++ b/src/field/choose_party.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "decoration.h"
+#include "event_data.h"
#include "field_fadetransition.h"
#include "main.h"
#include "menu.h"
@@ -7,6 +7,7 @@
#include "palette.h"
#include "party_menu.h"
#include "pokemon_menu.h"
+#include "field_weather.h"
#include "pokemon.h"
#include "pokemon_summary_screen.h"
#include "overworld.h"
@@ -318,19 +319,19 @@ static void sub_812238C(u8 taskId)
{
if (gMain.newAndRepeatedKeys & 0x40)
{
- if (GetMenuCursorPos() != 0)
+ if (Menu_GetCursorPos() != 0)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
return;
}
if (gMain.newAndRepeatedKeys & 0x80)
{
- if (GetMenuCursorPos() != 3)
+ if (Menu_GetCursorPos() != 3)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
return;
}
@@ -343,7 +344,7 @@ static void sub_812238C(u8 taskId)
gTasks[taskId].data[4],
sBattleTowerEntryMenu,
sBattleTowerEntryMenuItems,
- GetMenuCursorPos());
+ Menu_GetCursorPos());
popupMenuFunc(taskId);
return;
}
@@ -461,8 +462,8 @@ static void BattleTowerEntryMenuCallback_Enter(u8 taskId)
}
}
PlaySE(SE_HAZURE);
- MenuZeroFillWindowRect(20, 10, 29, 19);
- HandleDestroyMenuCursors();
+ Menu_EraseWindowRect(20, 10, 29, 19);
+ Menu_DestroyCursor();
sub_806D5A4();
sub_806E834(gOtherText_NoMoreThreePoke, 1);
gTasks[taskId].func = sub_8122728;
@@ -475,8 +476,8 @@ static void sub_8122728(u8 taskId)
if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
{
- MenuZeroFillWindowRect(0, 14, 29, 19);
- HandleDestroyMenuCursors();
+ Menu_EraseWindowRect(0, 14, 29, 19);
+ Menu_DestroyCursor();
BattleTowerEntryMenuCallback_Exit(taskId);
}
}
@@ -515,8 +516,8 @@ static void BattleTowerEntryMenuCallback_NoEntry(u8 taskId)
static void sub_81227FC(u8 taskId)
{
- MenuZeroFillWindowRect(20, 10, 29, 19);
- HandleDestroyMenuCursors();
+ Menu_EraseWindowRect(20, 10, 29, 19);
+ Menu_DestroyCursor();
PrintPartyMenuPromptText(0, 0);
gTasks[taskId].func = HandleBattleTowerPartyMenu;
}
@@ -527,6 +528,107 @@ static void BattleTowerEntryMenuCallback_Exit(u8 taskId)
sub_81227FC(taskId);
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_81381B4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " ldr r4, ._189 @ gUnknown_02023A00\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x60\n"
+ " bl memset\n"
+ " mov r7, #0x0\n"
+ " mov r8, r4\n"
+ " mov r0, #0x4\n"
+ " add r0, r0, r8\n"
+ " mov r9, r0\n"
+ "._188:\n"
+ " mov r0, #0x64\n"
+ " add r1, r7, #0\n"
+ " mul r1, r1, r0\n"
+ " ldr r0, ._189 + 4 @ gPlayerParty\n"
+ " add r5, r1, r0\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x41\n"
+ " bl GetMonData\n"
+ " lsl r4, r7, #0x5\n"
+ " mov r1, r8\n"
+ " add r6, r4, r1\n"
+ " strh r0, [r6]\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " beq ._187 @cond_branch\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x38\n"
+ " bl GetMonData\n"
+ " strb r0, [r6, #0xf]\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x39\n"
+ " bl GetMonData\n"
+ " strh r0, [r6, #0x10]\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x3a\n"
+ " bl GetMonData\n"
+ " strh r0, [r6, #0x12]\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x37\n"
+ " bl GetMonData\n"
+ " mov r1, r8\n"
+ " add r1, r1, #0x14\n"
+ " add r1, r4, r1\n"
+ " str r0, [r1]\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0xc\n"
+ " bl GetMonData\n"
+ " strh r0, [r6, #0x2]\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x0\n"
+ " bl GetMonData\n"
+ " mov r1, r8\n"
+ " add r1, r1, #0x18\n"
+ " add r1, r4, r1\n"
+ " str r0, [r1]\n"
+ " add r0, r5, #0\n"
+ " bl GetMonGender\n"
+ " strb r0, [r6, #0x1c]\n"
+ " add r4, r4, r9\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x2\n"
+ " add r2, r4, #0\n"
+ " bl GetMonData\n"
+ " add r0, r4, #0\n"
+ " bl Text_StripExtCtrlCodes\n"
+ " add r0, r5, #0\n"
+ " mov r1, #0x3\n"
+ " bl GetMonData\n"
+ " strb r0, [r6, #0x1d]\n"
+ "._187:\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x2\n"
+ " bls ._188 @cond_branch\n"
+ " pop {r3, r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._190:\n"
+ " .align 2, 0\n"
+ "._189:\n"
+ " .word gUnknown_02023A00\n"
+ " .word gPlayerParty+0x12c\n"
+ "\n"
+ );
+}
+#endif
+
bool8 SetupLinkMultiBattlePartyMenu(void)
{
switch (ewram1B000_alt.setupState)
@@ -806,19 +908,19 @@ static void Task_DaycareStorageMenu8122EAC(u8 taskId)
{
if (gMain.newAndRepeatedKeys & 0x40)
{
- if (GetMenuCursorPos() != 0)
+ if (Menu_GetCursorPos() != 0)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
return;
}
if (gMain.newAndRepeatedKeys & 0x80)
{
- if (GetMenuCursorPos() != 3)
+ if (Menu_GetCursorPos() != 3)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
return;
}
@@ -831,7 +933,7 @@ static void Task_DaycareStorageMenu8122EAC(u8 taskId)
gTasks[taskId].data[4],
sDaycareStorageMenus,
sDaycareStorageMenuItems,
- GetMenuCursorPos());
+ Menu_GetCursorPos());
popupMenuFunc(taskId);
return;
}
@@ -896,8 +998,8 @@ static void DaycareStorageMenuCallback_Summary(u8 taskId)
static void DaycareStorageMenuCallback_Exit(u8 taskId)
{
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(20, 10, 29, 19);
- HandleDestroyMenuCursors();
+ Menu_EraseWindowRect(20, 10, 29, 19);
+ Menu_DestroyCursor();
PrintPartyMenuPromptText(15, 0);
gTasks[taskId].func = HandleDaycarePartyMenu;
}
@@ -930,7 +1032,7 @@ void sub_81231AC(void)
static void sub_81231C4(u8 taskId)
{
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
DestroyTask(taskId);
ScriptContext2_Disable();
diff --git a/src/field/coins.c b/src/field/coins.c
index 91a4b508d..2c217e635 100644
--- a/src/field/coins.c
+++ b/src/field/coins.c
@@ -13,13 +13,13 @@ void UpdateCoinsWindow(s32 coins, u8 x, u8 y)
void ShowCoinsWindow(u32 coins, u8 x, u8 y)
{
- MenuDrawTextWindow(x, y, x + 9, y + 3);
+ Menu_DrawStdWindowFrame(x, y, x + 9, y + 3);
UpdateCoinsWindow(coins, x, y);
}
void HideCoinsWindow(u8 x, u8 y)
{
- MenuZeroFillWindowRect(x, y, x + 9, y + 3);
+ Menu_EraseWindowRect(x, y, x + 9, y + 3);
}
void PrintCoins(s32 coins, u8 b, u8 x, u8 y)
@@ -46,7 +46,7 @@ void PrintCoins(s32 coins, u8 b, u8 x, u8 y)
ptr[2] = (b - StringLength(string)) * 6;
ptr += 3;
StringCopy(ptr, string);
- MenuPrint(gOtherText_Coins2, x, y);
+ Menu_PrintText(gOtherText_Coins2, x, y);
}
u16 GetCoins(void)
diff --git a/src/field/coord_event_weather.c b/src/field/coord_event_weather.c
index db4e9c161..60b87fa30 100644
--- a/src/field/coord_event_weather.c
+++ b/src/field/coord_event_weather.c
@@ -34,7 +34,7 @@ static const struct CoordEventWeather sCoordEventWeatherFuncs[] =
{ COORD_EVENT_WEATHER_FOG_2, CoordEventWeather_DiagonalFog },
{ COORD_EVENT_WEATHER_ASH, CoordEventWeather_Ash },
{ COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm },
- { COORD_EVENT_WEATHER_DARK, CoordEventWeather_Dark },
+ { COORD_EVENT_WEATHER_SHADE, CoordEventWeather_Dark },
{ COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought },
{ COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle },
{ COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle },
@@ -87,7 +87,7 @@ static void CoordEventWeather_Sandstorm(void)
static void CoordEventWeather_Dark(void)
{
- SetWeather(WEATHER_DARK);
+ SetWeather(WEATHER_SHADE);
}
static void CoordEventWeather_Drought(void)
diff --git a/src/field/daycare.c b/src/field/daycare.c
index c28bc65ca..2f0c7281e 100644
--- a/src/field/daycare.c
+++ b/src/field/daycare.c
@@ -205,7 +205,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DayCare * daycare, u8 slot)
GetBoxMonNick(&daycare->mons[slot], gStringVar1);
species = GetBoxMonData(&daycare->mons[slot], MON_DATA_SPECIES);
- sub_803B4B4(&daycare->mons[slot], &pokemon);
+ ExpandBoxMon(&daycare->mons[slot], &pokemon);
if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
{
@@ -341,7 +341,7 @@ u16 GetEggSpecies(u16 species)
{
for (k = 0; k < 5; k++)
{
- if (gEvolutionTable[j].evolutions[k].targetSpecies == species)
+ if (gEvolutionTable[j][k].targetSpecies == species)
{
species = j;
found = TRUE;
@@ -557,7 +557,7 @@ void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, struct BoxP
{
for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++)
{
- if (gHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01 + j) && CanMonLearnTMHM(egg, j))
+ if (gHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01_FOCUS_PUNCH + j) && CanMonLearnTMHM(egg, j))
{
if (GiveMoveToMon(egg, gHatchedEggFatherMoves[i]) == 0xffff)
DeleteFirstMoveAndGiveMoveToMon(egg, gHatchedEggFatherMoves[i]);
@@ -1741,7 +1741,7 @@ static void HandleDaycareLevelMenuInput(u8 taskId)
if (gTasks[taskId].data[0] != 0)
{
gTasks[taskId].data[0] --;
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
PlaySE(SE_SELECT);
}
}
@@ -1750,25 +1750,25 @@ static void HandleDaycareLevelMenuInput(u8 taskId)
if (gTasks[taskId].data[0] != 2)
{
gTasks[taskId].data[0]++;
- MoveMenuCursor(+1);
+ Menu_MoveCursor(+1);
PlaySE(SE_SELECT);
}
}
else if (gMain.newKeys & A_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
gLastFieldPokeMenuOpened = gSpecialVar_Result = gTasks[taskId].data[0];
DestroyTask(taskId);
- MenuZeroFillWindowRect(15, 6, 29, 13);
+ Menu_EraseWindowRect(15, 6, 29, 13);
EnableBothScriptContexts();
}
else if (gMain.newKeys & B_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
gLastFieldPokeMenuOpened = gSpecialVar_Result = 2;
DestroyTask(taskId);
- MenuZeroFillWindowRect(15, 6, 29, 13);
+ Menu_EraseWindowRect(15, 6, 29, 13);
EnableBothScriptContexts();
}
}
@@ -1776,11 +1776,11 @@ static void HandleDaycareLevelMenuInput(u8 taskId)
void ShowDaycareLevelMenu(void)
{
u8 buffer[100];
- MenuDrawTextWindow(15, 6, 29, 13);
+ Menu_DrawStdWindowFrame(15, 6, 29, 13);
GetDaycareLevelMenuText(&gSaveBlock1.daycare, buffer);
- MenuPrint(buffer, 16, 7);
+ Menu_PrintText(buffer, 16, 7);
GetDaycareLevelMenuLevelText(&gSaveBlock1.daycare, buffer);
- MenuPrint_PixelCoords(buffer, 0xce, 0x38, TRUE);
+ Menu_PrintTextPixelCoords(buffer, 0xce, 0x38, TRUE);
InitMenu(0, 16, 7, 3, 0, 13);
CreateTask(HandleDaycareLevelMenuInput, 3);
}
diff --git a/src/field/decoration.c b/src/field/decoration.c
index 87a9d8028..0e7fa5f41 100644
--- a/src/field/decoration.c
+++ b/src/field/decoration.c
@@ -19,6 +19,7 @@
#include "event_data.h"
#include "field_weather.h"
#include "decoration.h"
+#include "shop.h"
#include "ewram.h"
EWRAM_DATA u8 *gUnknown_020388D0 = NULL;
@@ -1433,8 +1434,8 @@ extern u8 gUnknown_0815F399[];
void sub_80FE1DC(void)
{
sub_80FE2B4();
- MenuDrawTextWindow(0, 0, 10, 9);
- PrintMenuItems(1, 1, 4, (const struct MenuAction *)gUnknown_083EC604);
+ Menu_DrawStdWindowFrame(0, 0, 10, 9);
+ Menu_PrintItems(1, 1, 4, (const struct MenuAction *)gUnknown_083EC604);
InitMenu(0, 1, 1, 4, gUnknown_020388D4, 9);
}
@@ -1487,13 +1488,13 @@ void Task_DecorationPCProcessMenuInput(u8 taskId)
if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- gUnknown_020388D4 = MoveMenuCursor(-1);
+ gUnknown_020388D4 = Menu_MoveCursor(-1);
sub_80FE394();
}
if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- gUnknown_020388D4 = MoveMenuCursor(1);
+ gUnknown_020388D4 = Menu_MoveCursor(1);
sub_80FE394();
}
if (gMain.newKeys & A_BUTTON)
@@ -1510,15 +1511,15 @@ void Task_DecorationPCProcessMenuInput(u8 taskId)
void sub_80FE394(void)
{
- MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
- MenuPrint(gUnknown_083EC624[gUnknown_020388D4], 2, 15);
+ Menu_BlankWindowRect(2, 15, 27, 18);
+ Menu_PrintText(gUnknown_083EC624[gUnknown_020388D4], 2, 15);
}
void gpu_pal_decompress_alloc_tag_and_upload(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 10, 9);
- MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 10, 9);
+ Menu_BlankWindowRect(2, 15, 27, 18);
FreeSpritePaletteByTag(6);
if (ewram_1f000.isPlayerRoom == 0)
{
@@ -1546,7 +1547,7 @@ void sub_80FE470(u8 decoCat, u8 left, u8 top, u8 palIdx) // PrintDecorationCateg
{
u8 *strptr;
u8 v0;
- v0 = sub_8072CBC();
+ v0 = Menu_GetTextWindowPaletteNum();
// PALETTE {palIdx}
strptr = gStringVar4;
strptr[0] = EXT_CTRL_CODE_BEGIN;
@@ -1561,13 +1562,13 @@ void sub_80FE470(u8 decoCat, u8 left, u8 top, u8 palIdx) // PrintDecorationCateg
strptr[1] = 5;
strptr[2] = v0;
strptr[3] = EOS;
- MenuPrint(gStringVar4, left, top);
+ Menu_PrintText(gStringVar4, left, top);
}
void sub_80FE528(u8 taskId) // PrintDecorationCategorySelectionMenuStrings
{
u8 decoCat;
- MenuDrawTextWindow(0, 0, 14, 19);
+ Menu_DrawStdWindowFrame(0, 0, 14, 19);
for (decoCat=0; decoCat<8; decoCat++)
{
if (ewram_1f000.isPlayerRoom == 1 && gTasks[taskId].data[11] == 0 && decoCat != DECORCAT_DOLL && decoCat != DECORCAT_CUSHION)
@@ -1578,13 +1579,13 @@ void sub_80FE528(u8 taskId) // PrintDecorationCategorySelectionMenuStrings
sub_80FE470(decoCat, 1, 2 * decoCat + 1, 255); // Unselectable
}
}
- MenuPrint(gUnknownText_Exit, 1, 17);
+ Menu_PrintText(gUnknownText_Exit, 1, 17);
}
void sub_80FE5AC(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80FE528(taskId);
InitMenu(0, 1, 1, 9, gUnknown_020388F6, 13);
gTasks[taskId].func = sub_80FE604;
@@ -1597,15 +1598,15 @@ void sub_80FE604(u8 taskId)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
} else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
} else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- gUnknown_020388F6 = GetMenuCursorPos();
+ gUnknown_020388F6 = Menu_GetCursorPos();
if (gUnknown_020388F6 != 8)
{
gUnknown_020388D5 = sub_8134194(gUnknown_020388F6);
@@ -1614,14 +1615,14 @@ void sub_80FE604(u8 taskId)
sub_8134104(gUnknown_020388F6);
gUnknown_020388D0 = gDecorationInventories[gUnknown_020388F6].items;
sub_80FEF50(taskId);
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
sub_80F9480(gUnknown_020388F7, 8);
LoadScrollIndicatorPalette();
gTasks[taskId].func = sub_80FE868;
} else
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 14, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 14, 19);
DisplayItemMessageOnField(taskId, gSecretBaseText_NoDecors, sub_80FE418, 0);
}
} else
@@ -1649,17 +1650,17 @@ void sub_80FE728(u8 taskId)
void sub_80FE758(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 14, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 14, 19);
if (gTasks[taskId].data[11] != 2)
{
sub_80FE1DC();
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
sub_80FE394();
gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
} else
{
- sub_80B3068(taskId);
+ Shop_RunExitSellMenuTask(taskId);
}
}
@@ -1677,18 +1678,18 @@ void sub_80FE7D4(u8 *dest, u8 decClass)
void sub_80FE7EC(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80FEC94(taskId);
sub_80FECB8(gUnknown_020388F6);
#if ENGLISH
- MenuDrawTextWindow(15, 12, 29, 19);
+ Menu_DrawStdWindowFrame(15, 12, 29, 19);
#elif GERMAN
if ((gUnknown_020388F2 + gUnknown_020388F4) != gUnknown_020388D5)
{
- MenuDrawTextWindow(15, 12, 29, 19);
+ Menu_DrawStdWindowFrame(15, 12, 29, 19);
}
#endif
@@ -1710,7 +1711,7 @@ void sub_80FE894(u8 taskId /*r8*/, s8 cursorVector /*r5*/, s8 bgVector /*r7*/)
PlaySE(SE_SELECT);
if (cursorVector != 0)
{
- gUnknown_020388F2 = MoveMenuCursor(cursorVector);
+ gUnknown_020388F2 = Menu_MoveCursor(cursorVector);
}
if (bgVector != 0)
{
@@ -1722,12 +1723,12 @@ void sub_80FE894(u8 taskId /*r8*/, s8 cursorVector /*r5*/, s8 bgVector /*r7*/)
{
if (v0)
{
- MenuDrawTextWindow(15, 12, 29, 19);
+ Menu_DrawStdWindowFrame(15, 12, 29, 19);
}
sub_80FECE0(gUnknown_020388F2 + gUnknown_020388F4);
} else
{
- MenuZeroFillWindowRect(15, 12, 29, 19);
+ Menu_EraseWindowRect(15, 12, 29, 19);
}
}
@@ -1757,7 +1758,7 @@ void sub_80FE948(u8 taskId)
}
if (gMain.newKeys & A_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
gUnknown_020388F5 = gUnknown_020388F2 + gUnknown_020388F4;
if (gUnknown_020388F5 == gUnknown_020388D5)
@@ -1769,7 +1770,7 @@ void sub_80FE948(u8 taskId)
}
} else if (gMain.newKeys & B_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
gUnknown_083EC634[gTasks[taskId].data[11]].noFunc(taskId);
}
@@ -1783,17 +1784,17 @@ void sub_80FEABC(u8 taskId, u8 dummy1)
u16 i;
u16 j;
u8 ni;
- if (gUnknown_020388F4 != 0 || (DestroyVerticalScrollIndicator(0), gUnknown_020388F4 != 0))
+ if (gUnknown_020388F4 != 0 || (DestroyVerticalScrollIndicator(TOP_ARROW), gUnknown_020388F4 != 0))
{
- CreateVerticalScrollIndicators(0, 0x3c, 0x08);
+ CreateVerticalScrollIndicators(TOP_ARROW, 0x3c, 0x08);
}
if (gUnknown_020388F4 + 7 == gUnknown_020388D5)
{
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
if (gUnknown_020388F4 + 7 < gUnknown_020388D5)
{
- CreateVerticalScrollIndicators(1, 0x3c, 0x98);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0x3c, 0x98);
}
for (i=gUnknown_020388F4; i<gUnknown_020388F4+8; i++)
{
@@ -1839,13 +1840,13 @@ void sub_80FEABC(u8 taskId, u8 dummy1)
void sub_80FEC94(u8 taskId)
{
- MenuDrawTextWindow(0, 0, 14, 19);
+ Menu_DrawStdWindowFrame(0, 0, 14, 19);
sub_80FEABC(taskId, 0);
}
void sub_80FECB8(u8 decoCat)
{
- MenuDrawTextWindow(15, 0, 29, 3);
+ Menu_DrawStdWindowFrame(15, 0, 29, 3);
sub_80FE470(decoCat, 16, 1, 0xff);
}
@@ -1902,8 +1903,8 @@ _080FED26:\n\
void sub_80FED1C(void)
{
- MenuZeroFillWindowRect(15, 0, 29, 3);
- MenuZeroFillWindowRect(15, 12, 29, 19);
+ Menu_EraseWindowRect(15, 0, 29, 3);
+ Menu_EraseWindowRect(15, 12, 29, 19);
}
void sub_80FED3C(u8 taskId)
@@ -2003,10 +2004,10 @@ void sub_80FEF50(u8 taskId)
void sub_80FEF74(void)
{
sub_80F9520(gUnknown_020388F7, 8);
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 14, 19);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 14, 19);
}
bool8 sub_80FEFA4(void)
@@ -2035,16 +2036,16 @@ void sub_80FEFF4(u8 taskId)
void sub_80FF034(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 14, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 14, 19);
sub_80FE5AC(taskId);
}
void sub_80FF058(u8 taskId)
{
sub_80F9520(gUnknown_020388F7, 8);
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
BuyMenuFreeMemory();
gTasks[taskId].func = sub_80FF034;
}
@@ -2238,7 +2239,7 @@ void sub_80FF5BC(u8 taskId)
{
if (sub_80FF58C() == TRUE)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_80FF6AC;
} else
@@ -2271,8 +2272,8 @@ void sub_80FF6AC(u8 taskId)
if (!gPaletteFade.active)
{
sub_80FF0E0(taskId);
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
sub_80F9520(gUnknown_020388F7, 8);
BuyMenuFreeMemory();
gTasks[taskId].data[2] = 1;
@@ -2288,7 +2289,7 @@ void sub_80FF6AC(u8 taskId)
gTasks[taskId].data[2] = 2;
break;
case 2:
- if (sub_807D770() == 1)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].data[12] = 0;
sub_810065C(taskId);
@@ -3128,7 +3129,7 @@ void sub_81000A0(u8 taskId)
void sub_81000C4(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_8100174(taskId);
if (gDecorations[gUnknown_020388D0[gUnknown_020388F5]].permission != DECORPERM_SOLID_MAT)
{
@@ -3186,13 +3187,13 @@ void sub_8100248(u8 taskId)
void sub_810026C(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_810028C(taskId);
}
void sub_810028C(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = c1_overworld_prev_quest;
}
@@ -3221,7 +3222,7 @@ void c1_overworld_prev_quest(u8 taskId)
void sub_8100334(u8 taskId)
{
- if (sub_807D770() == 1)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].func = sub_80FE948;
}
@@ -3341,7 +3342,7 @@ void sub_8100494(u8 taskId)
void sub_810065C(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gSprites[gUnknown_020391A8].data[7] = 0;
gTasks[taskId].data[10] = 0;
gTasks[taskId].func = sub_8100494;
@@ -3628,7 +3629,7 @@ void sub_8100A0C(u8 taskId)
{
if (sub_8100D38(taskId) == 1)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_8100E70;
} else
@@ -3723,7 +3724,7 @@ void sub_8100C88(u8 taskId)
{
DrawWholeMapView();
ScriptContext1_SetupScript(gUnknown_081A2F8A);
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gTasks[taskId].data[2] = 2;
}
break;
@@ -3734,7 +3735,7 @@ void sub_8100C88(u8 taskId)
gTasks[taskId].data[2] = 3;
break;
case 3:
- if (sub_807D770() == 1)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].data[13] = -1;
DisplayItemMessageOnField(taskId, gSecretBaseText_DecorReturned, sub_81010F0, 0);
@@ -3760,7 +3761,7 @@ bool8 sub_8100D38(u8 taskId)
void SetUpPuttingAwayDecorationPlayerAvatar(void)
{
player_get_direction_lower_nybble();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gUnknown_020391A8 = gSprites[gUnknown_03004880.unk4].data[0];
sub_81016C8();
gUnknown_03004880.unk4 = CreateSprite(&gSpriteTemplate_83ECA88, 0x78, 0x50, 0);
@@ -3790,7 +3791,7 @@ void sub_8100E70(u8 taskId)
data[2] = 1;
data[6] = 1;
data[5] = 1;
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
}
break;
case 1:
@@ -3799,7 +3800,7 @@ void sub_8100E70(u8 taskId)
data[2] = 2;
break;
case 2:
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
data[12] = 1;
sub_8100EEC(taskId);
@@ -3810,7 +3811,7 @@ void sub_8100E70(u8 taskId)
void sub_8100EEC(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gSprites[gUnknown_020391A8].data[7] = 0;
gSprites[gUnknown_020391A8].invisible = 0;
gSprites[gUnknown_020391A8].callback = sub_8101698;
@@ -4137,7 +4138,7 @@ void sub_8101518(u8 taskId)
void sub_810153C(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_8100C88;
}
@@ -4150,13 +4151,13 @@ void sub_810156C(u8 taskId)
void sub_8101590(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_81015B0(taskId);
}
void sub_81015B0(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_81015E0;
}
@@ -4183,7 +4184,7 @@ void sub_81015E0(u8 taskId)
void sub_8101648(u8 taskId)
{
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gTasks[taskId].func = Task_DecorationPCProcessMenuInput;
}
@@ -4192,7 +4193,7 @@ void sub_8101648(u8 taskId)
void sub_8101678(void)
{
pal_fill_black();
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
sub_80FE220();
CreateTask(sub_8101648, 8);
}
@@ -4274,7 +4275,7 @@ void sub_8101824(u8 taskId)
void sub_8101848(u8 taskId)
{
- MenuZeroFillWindowRect(20, 8, 26, 14);
+ Menu_EraseWindowRect(20, 8, 26, 14);
sub_8109A30(gUnknown_020388D0[gUnknown_020388F5]);
gUnknown_020388D0[gUnknown_020388F5] = DECOR_NONE;
sub_80FF098(taskId);
diff --git a/src/field/decoration_inventory.c b/src/field/decoration_inventory.c
index dd0e972aa..8f7f5eb92 100644
--- a/src/field/decoration_inventory.c
+++ b/src/field/decoration_inventory.c
@@ -164,3 +164,14 @@ u8 sub_81341D4(void)
}
return count;
}
+
+
+#if DEBUG
+void debug_sub_814A3A8(void)
+{
+ u8 decor;
+
+ for (decor = 0; decor < DECOR_COUNT; decor++)
+ IsThereStorageSpaceForDecoration(decor);
+}
+#endif
diff --git a/src/field/diploma.c b/src/field/diploma.c
index 27601404c..b31fc7dec 100644
--- a/src/field/diploma.c
+++ b/src/field/diploma.c
@@ -10,7 +10,7 @@
#include "strings2.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
static void VBlankCB(void);
static void MainCB2(void);
@@ -62,14 +62,14 @@ void CB2_ShowDiploma(void)
LZ77UnCompVram(gDiplomaTiles, (void *)VRAM);
LZ77UnCompVram(gDiplomaTilemap, (void *)(VRAM + 0x3000));
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
LoadPalette(gDiplomaPalettes, 0, 64);
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
DisplayDiplomaText();
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
@@ -125,7 +125,7 @@ static void Task_DiplomaFadeOut(u8 taskId)
static void DisplayDiplomaText(void)
{
- if (sub_8090FF4())
+ if (CompletedNationalPokedex())
{
REG_BG3HOFS = 256;
StringCopy(gStringVar1, gOtherText_NationalDex);
@@ -135,5 +135,5 @@ static void DisplayDiplomaText(void)
REG_BG3HOFS = 0;
StringCopy(gStringVar1, gOtherText_HoennDex);
}
- MenuPrint(gOtherText_DiplomaCertificationGameFreak, 6, 2);
+ Menu_PrintText(gOtherText_DiplomaCertificationGameFreak, 6, 2);
} \ No newline at end of file
diff --git a/src/field/easy_chat.c b/src/field/easy_chat.c
deleted file mode 100644
index 94532506f..000000000
--- a/src/field/easy_chat.c
+++ /dev/null
@@ -1,445 +0,0 @@
-#include "global.h"
-#include "easy_chat.h"
-#include "constants/easy_chat.h"
-#include "data2.h"
-#include "event_data.h"
-#include "field_message_box.h"
-#include "pokedex.h"
-#include "random.h"
-#include "string_util.h"
-#include "strings.h"
-#include "strings2.h"
-#include "text.h"
-
-static bool8 sub_80EB680(u16 *, u16, u16, u16);
-static u16 sub_80EB9D8(void);
-static u16 sub_80EB960(void);
-
-extern void *gEasyChatGroupWords[];
-extern const u8 gEasyChatGroupSizes[];
-
-extern u16 gSpecialVar_0x8004;
-
-IWRAM_DATA u8 gUnknown_03000740;
-
-// returns the end of the destination buffer text
-u8 *EasyChat_GetWordText(u8 *dst, u16 word)
-{
- u16 group;
- u16 wordIndex;
- u8 *src;
- u16 i;
-
- if (sub_80EB37C(word))
- return StringCopy(dst, gOtherText_ThreeQuestions);
-
- if (word == 0xFFFF)
- {
- *dst = EOS;
- return dst;
- }
- else
- {
- group = EC_GROUP(word);
- wordIndex = EC_INDEX(word);
- switch (group)
- {
- case EC_GROUP_POKEMON: // 0
- case EC_GROUP_POKEMON_2: // 21
- dst = StringCopy(dst, gSpeciesNames[wordIndex]);
- break;
- case EC_GROUP_MOVE_1: // 18
- case EC_GROUP_MOVE_2: // 19
- dst = StringCopy(dst, gMoveNames[wordIndex]);
- break;
- default:
- src = gEasyChatGroupWords[group];
- for (i = wordIndex - 1; i != 0xFFFF; i--)
- {
- while (*src++ != EOS)
- ;
- }
- dst = StringCopy(dst, src);
- break;
- }
- *dst = EOS;
- return dst;
- }
-}
-
-u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3)
-{
- u16 i;
- u16 n;
-
- const u16 i1 = arg2 - 1;
-
- for (i = 0; i < arg3; i++)
- {
- u16 word;
-
- for (n = 0; n < i1; n++)
- {
- dst = EasyChat_GetWordText(dst, words[0]);
-
- if (words[0] != 0xFFFF)
- {
- dst[0] = CHAR_SPACE;
- dst++;
- }
-
- words++;
- }
-
- word = words[0];
- words++;
- dst = EasyChat_GetWordText(dst, word);
-
- dst[0] = CHAR_NEWLINE;
- dst++;
- }
-
- dst--;
- dst[0] = EOS;
-
- return dst;
-}
-
-u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3)
-{
- u16 i;
- u16 n;
-
- const u16 i1 = arg2 - 1;
-
- for (i = 0; i < arg3; i++)
- {
- u16 word;
-
- for (n = 0; n < i1; n++)
- {
- dst = EasyChat_GetWordText(dst, words[0]);
-
- if (words[0] != 0xFFFF)
- {
- dst[0] = CHAR_SPACE;
- dst++;
- }
-
- words++;
- }
-
- word = words[0];
- words++;
- dst = EasyChat_GetWordText(dst, word);
-
- // Only difference with ConvertEasyChatWordsToString
- dst[0] = (i == 0) ? CHAR_NEWLINE : CHAR_PROMPT_SCROLL;
- dst++;
- }
-
- dst--;
- dst[0] = EOS;
-
- return dst;
-}
-
-
-u16 unref_sub_80EB5E0(u16 arg0)
-{
- const u8 *chars;
- u16 i;
- u16 length;
- int group, word;
-
-
- if (arg0 == 0xFFFF)
- return 0;
-
- group = EC_GROUP(arg0);
- word = EC_INDEX(arg0);
- switch (group)
- {
- case EC_GROUP_POKEMON: // 0
- case EC_GROUP_POKEMON_2: // 21
- chars = gSpeciesNames[word];
- break;
- case EC_GROUP_MOVE_1: // 18
- case EC_GROUP_MOVE_2: // 19
- chars = gMoveNames[word];
- break;
- default:
- chars = gEasyChatGroupWords[group];
- for (i = word - 1; i != 0xFFFF; i--)
- {
- while (*chars++ != EOS)
- ;
- }
- break;
- }
-
- length = 0;
- while (*chars != EOS)
- {
- chars++;
- length++;
- }
-
- return length;
-}
-
-static bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3)
-{
- return FALSE;
-}
-
-void unref_sub_80EB684(u8 arg0, u16 arg1)
-{
- u16 *ptr;
- u16 c;
-
- // FIXME: find actual tv shows used
- switch (arg0)
- {
- case 5:
- c = 6;
- ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x04);
- break;
- case 7:
- c = 2;
- ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x1C);
- break;
- case 8:
- c = 1;
- ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x02);
- break;
- default:
- return;
- }
-
- c -= 1;
- while (c != 0xFFFF)
- {
- *ptr = -1;
- ptr++;
- c -= 1;
- }
-}
-
-void sub_80EB6FC(u16 *arg0, u16 arg1)
-{
- u16 i;
-
- for (i = arg1 - 1; i != 0xFFFF; i--)
- {
- *arg0 = 0xFFFF;
- arg0++;
- }
-
-}
-
-u16 sub_80EB72C(u16 group)
-{
- u16 local1 = Random() % gEasyChatGroupSizes[group];
-
- if (group == EC_GROUP_POKEMON
- || group == EC_GROUP_POKEMON_2
- || group == EC_GROUP_MOVE_1
- || group == EC_GROUP_MOVE_2)
- {
- local1 = ((u16 *) gEasyChatGroupWords[group])[local1];
- }
-
- return ((group & 0x7F) << 9) | (local1 & 0x1FF);
-}
-
-u16 sub_80EB784(u16 group)
-{
- if (!sub_80EAD7C(group))
- return -1;
-
- if (group != EC_GROUP_POKEMON)
- {
- if (group == EC_GROUP_TRENDY_SAYING)
- return sub_80EB960();
- }
- else
- {
- return sub_80EB9D8();
- }
-
- return sub_80EB72C(group);
-}
-
-void sub_80EB7C4(void)
-{
- u16 *words;
- u16 arg1, arg2;
-
- switch (gSpecialVar_0x8004)
- {
- case 0:
- words = gSaveBlock1.easyChats.unk2B1C;
- arg1 = 2;
- arg2 = 2;
- break;
- case 1:
- words = gSaveBlock1.easyChats.unk2B28;
- if (sub_80EB680(gSaveBlock1.easyChats.unk2B28, 3, 2, 20))
- {
- arg1 = 2;
- arg2 = 3;
- }
- else
- {
- arg1 = 3;
- arg2 = 2;
- }
- break;
- case 2:
- words = gSaveBlock1.easyChats.unk2B34;
- arg1 = 3;
- arg2 = 2;
- break;
- case 3:
- words = gSaveBlock1.easyChats.unk2B40;
- arg1 = 3;
- arg2 = 2;
- break;
- default:
- return;
- }
-
- ConvertEasyChatWordsToString(gStringVar4, words, arg1, arg2);
- ShowFieldAutoScrollMessage(gStringVar4);
-}
-
-void BufferRandomHobbyOrLifestyleString(void)
-{
- u16 group, local2;
-
- if (Random() & 1)
- group = EC_GROUP_HOBBIES;
- else
- group = EC_GROUP_LIFESTYLE;
-
- local2 = sub_80EB784(group);
- EasyChat_GetWordText(gStringVar2, local2);
-}
-
-u8 sub_80EB868(u8 arg0)
-{
- int offset;
- int index;
-
- index = arg0 / 8;
- offset = arg0 % 8;
- return (gSaveBlock1.unk2D8C[index] >> offset) & 1;
-}
-
-void sub_80EB890(u8 arg0)
-{
- int offset;
- int index;
-
- if (arg0 < 33)
- {
- index = arg0 / 8;
- offset = arg0 % 8;
- gSaveBlock1.unk2D8C[index] |= 1 << offset;
- }
-}
-
-u8 sub_80EB8C0(void)
-{
- u8 i, count;
-
- for (i = 0, count = 0; i < 33; i++)
- {
- if (sub_80EB868(i))
- count++;
- }
- return count;
-}
-
-u16 sub_80EB8EC(void)
-{
- u16 i;
- u16 local1, local2;
-
- local1 = sub_80EB8C0();
- if (local1 == 33)
- return -1;
-
- local2 = Random() % (33 - local1);
- for (i = 0; i < 33; i++)
- {
- if (sub_80EB868(i) == 0)
- {
- if (local2 == 0)
- {
- sub_80EB890(i);
- return (i & 0x1FF) | 0x2800;
- }
- local2--;
- }
- }
- return -1;
-}
-
-static u16 sub_80EB960(void)
-{
- u16 i;
- u16 local1;
-
- local1 = sub_80EB8C0();
- if (local1 == 0)
- return -1;
-
- local1 = Random() % local1;
- for (i = 0; i < 33; i++)
- {
- if (sub_80EB868(i))
- {
- if (local1 == 0)
- return (i & 0x1FF) | 0x2800;
- local1--;
- }
- }
-
- return -1;
-}
-
-u8 sub_80EB9C8(void)
-{
- return IsNationalPokedexEnabled();
-}
-
-static u16 sub_80EB9D8(void)
-{
- u16 *speciesList;
- u16 local1;
- u16 i;
-
- local1 = sub_80EAE88(0);
-
- if (local1 == 0)
- return -1;
-
- local1 = Random() % local1;
- speciesList = (u16 *) gEasyChatGroupWords[EC_GROUP_POKEMON];
- for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON]; i++)
- {
- const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList);
- const u8 local2 = GetSetPokedexFlag(dexNum, 0);
-
- if (local2)
- {
- if (local1 == 0)
- return *speciesList & 0x1FF;
- local1--;
- }
- speciesList++;
- }
- return -1;
-}
diff --git a/src/field/field_control_avatar.c b/src/field/field_control_avatar.c
index 52e66f16e..3ae422512 100644
--- a/src/field/field_control_avatar.c
+++ b/src/field/field_control_avatar.c
@@ -4,6 +4,7 @@
#include "bike.h"
#include "coord_event_weather.h"
#include "daycare.h"
+#include "debug.h"
#include "event_data.h"
#include "field_fadetransition.h"
#include "field_player_avatar.h"
@@ -35,6 +36,7 @@ extern u16 gSpecialVar_Facing;
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
+extern u8 gUnknown_020297ED;
static EWRAM_DATA u8 gUnknown_0202E8C0 = 0;
static EWRAM_DATA u16 gUnknown_0202E8C2 = 0;
@@ -103,7 +105,7 @@ static void sub_8068C30(struct MapHeader *, s8, struct MapPosition *);
static bool8 map_warp_consider_2_to_inside(struct MapPosition *, u16, u8);
static s8 map_warp_check(struct MapHeader *, u16, u16, u8);
static u8 *mapheader_trigger_activate_at(struct MapHeader *, u16, u16, u8);
-static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8);
+static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *, u16, u16, u8);;
void FieldClearPlayerInput(struct FieldInput *input)
{
@@ -162,6 +164,31 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
input->dpadDirection = DIR_WEST;
else if (heldKeys & DPAD_RIGHT)
input->dpadDirection = DIR_EAST;
+#if DEBUG
+ if ((heldKeys & R_BUTTON) && input->pressedStartButton)
+ {
+ input->input_field_1_2 = TRUE;
+ input->pressedStartButton = FALSE;
+ }
+ if (gUnknown_020297ED)
+ {
+ if (heldKeys & R_BUTTON)
+ {
+ input->input_field_1_1 = TRUE;
+ input->input_field_0_6 = FALSE;
+ input->input_field_0_1 = FALSE;
+ input->input_field_0_4 = FALSE;
+ input->input_field_0_5 = FALSE;
+ if (newKeys & SELECT_BUTTON)
+ {
+ input->input_field_1_0 = TRUE;
+ input->pressedSelectButton = FALSE;
+ }
+ }
+ if (heldKeys & L_BUTTON)
+ input->input_field_1_3 = TRUE;
+ }
+#endif
}
int sub_8068024(struct FieldInput *input)
@@ -173,15 +200,30 @@ int sub_8068024(struct FieldInput *input)
r6 = player_get_direction_lower_nybble();
player_get_pos_to_and_height(&position);
r4 = MapGridGetMetatileBehaviorAt(position.x, position.y);
- if (CheckTrainers() == TRUE)
+#if DEBUG
+ if (input->input_field_1_3 && dive_warp(&position, r4) == TRUE)
return TRUE;
- if (mapheader_run_first_tag2_script_list_match() == 1)
+#endif
+
+ if (
+#if DEBUG
+ !input->input_field_1_1 &&
+#endif
+ CheckTrainers() == TRUE)
+ return TRUE;
+
+ if (
+#if DEBUG
+ !input->input_field_1_1 &&
+#endif
+ mapheader_run_first_tag2_script_list_match() == 1)
return TRUE;
+
if (input->pressedBButton && sub_80687A4() == 1)
return TRUE;
if (input->input_field_0_6)
{
- IncrementGameStat(5);
+ IncrementGameStat(GAME_STAT_STEPS);
if (sub_80687E4(&position, r4, r6) == 1)
return TRUE;
}
@@ -211,6 +253,21 @@ int sub_8068024(struct FieldInput *input)
}
if (input->pressedSelectButton && sub_80A6D1C() == TRUE)
return TRUE;
+
+#if DEBUG
+ if (input->input_field_1_0)
+ {
+ debug_sub_80888D8();
+ return TRUE;
+ }
+ if (input->input_field_1_2)
+ {
+ PlaySE(SE_WIN_OPEN);
+ DebugMenu_8077048();
+ return TRUE;
+ }
+#endif
+
return FALSE;
}
@@ -532,7 +589,7 @@ static void happiness_algorithm_step(void)
{
struct Pokemon *pkmn = gPlayerParty;
- for (i = 5; i >= 0; i--)
+ for (i = 0; i < 6; i++)
{
AdjustFriendship(pkmn, 5);
pkmn++;
@@ -767,20 +824,19 @@ static u8 *trigger_activate(struct CoordEvent *coordEvent)
return NULL;
}
-static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 x, u16 y, u8 d)
+static u8 *mapheader_trigger_activate_at(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation)
{
s32 i;
struct CoordEvent *coordEvents = mapHeader->events->coordEvents;
u8 coordEventCount = mapHeader->events->coordEventCount;
- u8 *script;
for (i = 0; i < coordEventCount; i++)
{
if ((u16)coordEvents[i].x == x && (u16)coordEvents[i].y == y)
{
- if (coordEvents[i].unk4 == d || coordEvents[i].unk4 == 0)
+ if (coordEvents[i].elevation == elevation || coordEvents[i].elevation == 0)
{
- script = trigger_activate(&coordEvents[i]);
+ u8 *script = trigger_activate(&coordEvents[i]);
if (script != NULL)
return script;
}
@@ -811,7 +867,7 @@ static struct BgEvent *FindInvisibleMapObjectByPosition(struct MapHeader *mapHea
return NULL;
}
-int dive_warp(struct MapPosition *position, u16 b)
+bool8 dive_warp(struct MapPosition *position, u16 b)
{
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && sub_805750C(b) == 0)
{
diff --git a/src/field/field_effect.c b/src/field/field_effect.c
index 1e2aaa4ed..e1389c378 100644
--- a/src/field/field_effect.c
+++ b/src/field/field_effect.c
@@ -25,6 +25,7 @@
#include "field_map_obj.h"
#include "util.h"
#include "field_effect_helpers.h"
+#include "pokemon_storage_system.h"
#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))}
@@ -407,7 +408,7 @@ void FieldEffectScript_LoadFadedPalette(u8 **script)
{
struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script);
LoadSpritePalette(palette);
- sub_807D78C(IndexOfSpritePaletteTag(palette->tag));
+ UpdateSpritePaletteWithWeather(IndexOfSpritePaletteTag(palette->tag));
(*script) += 4;
}
@@ -543,7 +544,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
LoadCompressedObjectPalette(&gMonPaletteTable[species]);
GetMonSpriteTemplate_803C56C(species, 3);
gUnknown_02024E8C.paletteTag = gMonPaletteTable[0].tag;
- sub_807DE38(IndexOfSpritePaletteTag(gMonPaletteTable[0].tag) + 0x10);
+ PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[0].tag) + 0x10);
return CreateSprite(&gUnknown_02024E8C, x, y, subpriority);
}
@@ -556,13 +557,13 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio
LoadCompressedObjectPalette(spritePalette);
GetMonSpriteTemplate_803C56C(species, 3);
gUnknown_02024E8C.paletteTag = spritePalette->tag;
- sub_807DE38(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10);
+ PreservePaletteInWeather(IndexOfSpritePaletteTag(spritePalette->tag) + 0x10);
return CreateSprite(&gUnknown_02024E8C, x, y, subpriority);
}
void FreeResourcesAndDestroySprite(struct Sprite *sprite)
{
- sub_807DE68();
+ ResetPreservedPalettesInWeather();
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum));
if (sprite->oam.affineMode != 0)
{
@@ -1091,7 +1092,7 @@ void task00_8084310(u8 taskId)
task = &gTasks[taskId];
if (!task->data[0])
{
- if (!sub_807D770())
+ if (!IsWeatherNotFadingIn())
{
return;
}
@@ -1191,7 +1192,7 @@ bool8 sub_80867AC(struct Task *task) // gUnknown_0839F2CC[0]
bool8 sub_8086854(struct Task *task) // gUnknown_0839F2CC[1]
{
- if (sub_807D770())
+ if (IsWeatherNotFadingIn())
{
task->data[0]++;
}
@@ -1813,7 +1814,7 @@ bool8 sub_80874CC(struct Task *task, struct MapObject *mapObject, struct Sprite
bool8 sub_80874FC(struct Task *task, struct MapObject *mapObject, struct Sprite *sprite)
{
- if (sub_807D770())
+ if (IsWeatherNotFadingIn())
{
gFieldEffectArguments[0] = mapObject->coords2.x;
gFieldEffectArguments[1] = mapObject->coords2.y;
@@ -2046,7 +2047,7 @@ void sub_8087A74(u8 taskId)
void sub_8087AA4(struct Task *task)
{
- if (sub_807D770())
+ if (IsWeatherNotFadingIn())
{
task->data[0]++;
task->data[15] = player_get_direction_lower_nybble();
@@ -2199,7 +2200,7 @@ void sub_8087E4C(struct Task *task)
{
struct Sprite *sprite;
s16 centerToCornerVecY;
- if (sub_807D770())
+ if (IsWeatherNotFadingIn())
{
sprite = &gSprites[gPlayerAvatar.spriteId];
centerToCornerVecY = -(sprite->centerToCornerVecY << 1);
@@ -2434,8 +2435,8 @@ void sub_8088380(struct Task *task)
IntrCallback callback;
LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&callback);
SetVBlankCallback(callback);
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
FreeResourcesAndDestroySprite(&gSprites[task->data[15]]);
FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
DestroyTask(FindTaskIdByFunc(sub_8088120));
@@ -2557,8 +2558,8 @@ void sub_808862C(struct Task *task)
CpuFill32(0, (void *)VRAM + bg0cnt, 0x800);
LoadWordFromTwoHalfwords((u16 *)&task->data[13], (u32 *)&intrCallback);
SetVBlankCallback(intrCallback);
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
FreeResourcesAndDestroySprite(&gSprites[task->data[15]]);
FieldEffectActiveListRemove(FLDEFF_FIELD_MOVE_SHOW_MON);
DestroyTask(FindTaskIdByFunc(sub_808847C));
diff --git a/src/field/field_effect_helpers.c b/src/field/field_effect_helpers.c
index 165829a55..c9d337de1 100644
--- a/src/field/field_effect_helpers.c
+++ b/src/field/field_effect_helpers.c
@@ -29,8 +29,6 @@ static void sub_81280A0(struct MapObject *, struct Sprite *, struct Sprite *);
static void sub_8128174(struct Sprite *);
static u32 ShowDisguiseFieldEffect(u8, u8, u8);
-const u8 UnusedEggString_8401E28[] = _("タマゴ");
-
void SetUpReflection(struct MapObject *mapObject, struct Sprite *sprite, bool8 flag)
{
struct Sprite *newSprite;
@@ -95,7 +93,7 @@ static void npc_pal_op_B(struct MapObject *mapObject, u8 paletteNum)
{
pal_patch_for_npc(npc_paltag_by_palslot(paletteNum), paletteNum);
}
- sub_807D78C(paletteNum);
+ UpdateSpritePaletteWithWeather(paletteNum);
}
}
@@ -107,7 +105,7 @@ static void npc_pal_op_A(struct MapObject *mapObject, u8 paletteNum)
if (graphicsInfo->paletteTag2 != 0x11ff)
{
pal_patch_for_npc(graphicsInfo->paletteTag2, paletteNum);
- sub_807D78C(paletteNum);
+ UpdateSpritePaletteWithWeather(paletteNum);
}
}
diff --git a/src/field/field_fadetransition.c b/src/field/field_fadetransition.c
index 5014e97e3..21235500a 100644
--- a/src/field/field_fadetransition.c
+++ b/src/field/field_fadetransition.c
@@ -44,18 +44,18 @@ void pal_fill_for_map_transition(void)
switch (fade_type_for_given_maplight_pair(map_light, Overworld_GetMapTypeOfSaveblockLocation()))
{
case 0:
- fade_screen(0, 0);
+ FadeScreen(0, 0);
palette_bg_fill_black();
break;
case 1:
- fade_screen(2, 0);
+ FadeScreen(2, 0);
palette_bg_fill_white();
}
}
void pal_fill_black(void)
{
- fade_screen(0, 0);
+ FadeScreen(0, 0);
palette_bg_fill_black();
}
@@ -65,10 +65,10 @@ void fade_8080918(void)
switch (sub_810CDB8(light_level, warp1_get_mapheader()->mapType))
{
case 0:
- fade_screen(1, 0);
+ FadeScreen(1, 0);
break;
case 1:
- fade_screen(3, 0);
+ FadeScreen(3, 0);
}
}
@@ -146,7 +146,7 @@ void sub_8080A5C(u8 taskId)
task->data[0]++;
break;
case 1:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
pal_fill_for_map_transition();
task->data[0]++;
@@ -366,7 +366,7 @@ bool32 sub_8080E64(void)
bool32 sub_8080E70(void)
{
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
return TRUE;
else
return FALSE;
@@ -483,7 +483,7 @@ void sub_8081050(u8 taskId)
{
case 0:
ClearLinkCallback_2();
- fade_screen(1, 0);
+ FadeScreen(1, 0);
sub_8053FF8();
PlaySE(SE_KAIDAN);
data[0]++;
@@ -511,6 +511,22 @@ void sub_80810DC(void)
CreateTask(sub_8081050, 10);
}
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_80888D8()
+{
+ asm("\
+ PUSH {LR}\n\
+ BL debug_sub_8052E04\n\
+ BL sub_8080E88\n\
+ BL ScriptContext2_Enable\n\
+ POP {R0}\n\
+ BX R0");
+}
+
+#endif
+
void task0A_fade_n_map_maybe(u8 taskId)
{
struct Task *task = &gTasks[taskId];
diff --git a/src/field/field_map_obj.c b/src/field/field_map_obj.c
index ba7c3d68e..13d8ebb5b 100644
--- a/src/field/field_map_obj.c
+++ b/src/field/field_map_obj.c
@@ -1907,6 +1907,9 @@ static u8 gUnknown_030005A4;
static u16 gUnknown_030005A6;
struct MapObject gMapObjects[16];
+#if DEBUG
+u8 gUnknown_Debug_03004BC0[4]; // unknown type
+#endif
void npc_clear_ids_and_state(struct MapObject *mapObj)
{
@@ -1917,6 +1920,40 @@ void npc_clear_ids_and_state(struct MapObject *mapObj)
mapObj->mapobj_unk_1C = 0xFF;
}
+#if DEBUG
+__attribute__((naked))
+void npcs_clear_ids_and_state()
+{
+ asm(
+ " push {r4, r5, lr}\n"
+ " mov r4, #0x0\n"
+ " ldr r5, ._2 @ gMapObjects\n"
+ "._1:\n"
+ " lsl r0, r4, #0x3\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r5\n"
+ " bl npc_clear_ids_and_state\n"
+ " add r0, r4, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0xf\n"
+ " bls ._1 @cond_branch\n"
+ " ldr r1, ._2 + 4 @ gUnknown_Debug_03004BC0\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " pop {r4, r5}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._3:\n"
+ " .align 2, 0\n"
+ "._2:\n"
+ " .word gMapObjects\n"
+ " .word gUnknown_Debug_03004BC0\n"
+ "\n"
+ );
+}
+#else
void npcs_clear_ids_and_state(void)
{
u8 i;
@@ -1924,6 +1961,7 @@ void npcs_clear_ids_and_state(void)
for (i = 0; i < 16; i++)
npc_clear_ids_and_state(&gMapObjects[i]);
}
+#endif
void sub_805AA98(void)
{
@@ -2017,6 +2055,176 @@ u8 GetFieldObjectIdByLocalId(u8 localId)
return 16;
}
+#if DEBUG
+__attribute__((naked))
+u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 c)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r9\n"
+ " mov r6, r8\n"
+ " push {r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " add r5, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r6, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r7, r2, #0x18\n"
+ " ldrb r0, [r5]\n"
+ " add r1, r6, #0\n"
+ " add r2, r7, #0\n"
+ " mov r3, sp\n"
+ " bl GetAvailableFieldObjectSlot\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " beq ._35 @cond_branch\n"
+ " mov r0, #0x10\n"
+ " b ._36\n"
+ "._35:\n"
+ " mov r0, sp\n"
+ " ldrb r1, [r0]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._40 @ gMapObjects\n"
+ " add r4, r0, r1\n"
+ " add r0, r4, #0\n"
+ " bl npc_clear_ids_and_state\n"
+ " ldrh r3, [r5, #0x4]\n"
+ " add r3, r3, #0x7\n"
+ " lsl r3, r3, #0x10\n"
+ " lsr r3, r3, #0x10\n"
+ " ldrh r2, [r5, #0x6]\n"
+ " add r2, r2, #0x7\n"
+ " lsl r2, r2, #0x10\n"
+ " lsr r2, r2, #0x10\n"
+ " ldrb r0, [r4]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " mov r1, #0x4\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4]\n"
+ " ldrb r0, [r5, #0x1]\n"
+ " strb r0, [r4, #0x5]\n"
+ " ldrb r0, [r5, #0x9]\n"
+ " strb r0, [r4, #0x6]\n"
+ " ldrb r0, [r5]\n"
+ " strb r0, [r4, #0x8]\n"
+ " strb r6, [r4, #0x9]\n"
+ " strb r7, [r4, #0xa]\n"
+ " strh r3, [r4, #0xc]\n"
+ " strh r2, [r4, #0xe]\n"
+ " strh r3, [r4, #0x10]\n"
+ " strh r2, [r4, #0x12]\n"
+ " strh r3, [r4, #0x14]\n"
+ " strh r2, [r4, #0x16]\n"
+ " ldrb r0, [r5, #0x8]\n"
+ " mov r7, #0xf\n"
+ " add r1, r7, #0\n"
+ " and r1, r1, r0\n"
+ " ldrb r2, [r4, #0xb]\n"
+ " mov r0, #0x10\n"
+ " neg r0, r0\n"
+ " mov r8, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0xb]\n"
+ " ldrb r1, [r5, #0x8]\n"
+ " lsl r1, r1, #0x4\n"
+ " and r0, r0, r7\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0xb]\n"
+ " ldrb r1, [r5, #0xa]\n"
+ " lsl r1, r1, #0x1c\n"
+ " mov r0, #0xf\n"
+ " mov r9, r0\n"
+ " lsr r1, r1, #0x1c\n"
+ " ldrb r2, [r4, #0x19]\n"
+ " mov r0, r8\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0x19]\n"
+ " ldrb r1, [r5, #0xa]\n"
+ " lsr r1, r1, #0x4\n"
+ " lsl r1, r1, #0x4\n"
+ " and r0, r0, r7\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0x19]\n"
+ " ldrh r0, [r5, #0xc]\n"
+ " strb r0, [r4, #0x7]\n"
+ " ldrh r0, [r5, #0xe]\n"
+ " strb r0, [r4, #0x1d]\n"
+ " ldr r1, ._40 + 4 @ gUnknown_0836DC09\n"
+ " ldrb r0, [r5, #0x9]\n"
+ " add r0, r0, r1\n"
+ " ldrb r1, [r0]\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x20\n"
+ " strb r1, [r0]\n"
+ " ldrb r1, [r0]\n"
+ " add r0, r4, #0\n"
+ " bl FieldObjectSetDirection\n"
+ " add r0, r4, #0\n"
+ " bl FieldObjectHandleDynamicGraphicsId\n"
+ " ldr r1, ._40 + 8 @ gUnknown_0836DBBC\n"
+ " ldrb r0, [r4, #0x6]\n"
+ " add r0, r0, r1\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._39 @cond_branch\n"
+ " ldrb r2, [r4, #0x19]\n"
+ " add r0, r7, #0\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._38 @cond_branch\n"
+ " lsl r0, r2, #0x1c\n"
+ " lsr r0, r0, #0x1c\n"
+ " add r0, r0, #0x1\n"
+ " mov r1, r9\n"
+ " and r0, r0, r1\n"
+ " mov r1, r8\n"
+ " and r1, r1, r2\n"
+ " orr r1, r1, r0\n"
+ " strb r1, [r4, #0x19]\n"
+ "._38:\n"
+ " ldrb r2, [r4, #0x19]\n"
+ " mov r0, #0xf0\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " bne ._39 @cond_branch\n"
+ " lsr r1, r2, #0x4\n"
+ " add r1, r1, #0x1\n"
+ " lsl r1, r1, #0x4\n"
+ " add r0, r7, #0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0x19]\n"
+ "._39:\n"
+ " ldr r1, ._40 + 12 @ gUnknown_Debug_03004BC0\n"
+ " ldrb r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " mov r0, sp\n"
+ " ldrb r0, [r0]\n"
+ "._36:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._41:\n"
+ " .align 2, 0\n"
+ "._40:\n"
+ " .word gMapObjects\n"
+ " .word gUnknown_0836DC09\n"
+ " .word gUnknown_0836DBBC\n"
+ " .word gUnknown_Debug_03004BC0\n"
+ "\n"
+ );
+}
+#else
#ifdef NONMATCHING
u8 InitFieldObjectStateFromTemplate(struct MapObjectTemplate *template, u8 b, u8 c)
{
@@ -2227,6 +2435,7 @@ _0805ADD8: .4byte gUnknown_0836DBBC\n\
.syntax divided\n");
}
#endif
+#endif
u8 sub_805ADDC(u8 localId)
{
@@ -2266,11 +2475,38 @@ u8 GetAvailableFieldObjectSlot(u16 a, u8 b, u8 c, u8 *d)
return 0;
}
+#if DEBUG
+__attribute__((naked))
+void RemoveFieldObject(struct MapObject *mapObject)
+{
+ asm(
+ " push {lr}\n"
+ " ldrb r2, [r0]\n"
+ " mov r1, #0x2\n"
+ " neg r1, r1\n"
+ " and r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bl RemoveFieldObjectInternal\n"
+ " ldr r1, ._72 @ gUnknown_Debug_03004BC0\n"
+ " ldrb r0, [r1]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._73:\n"
+ " .align 2, 0\n"
+ "._72:\n"
+ " .word gUnknown_Debug_03004BC0\n"
+ "\n"
+ );
+}
+#else
void RemoveFieldObject(struct MapObject *mapObject)
{
mapObject->active = FALSE;
RemoveFieldObjectInternal(mapObject);
}
+#endif
void RemoveFieldObjectByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
{
@@ -2303,6 +2539,226 @@ void npc_hide_all_but_player(void)
}
}
+#if DEBUG
+__attribute__((naked))
+u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, u8 c, u8 d, s16 e, s16 f)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add r7, r1, #0\n"
+ " add r1, r2, #0\n"
+ " add r2, r3, #0\n"
+ " ldr r3, [sp, #0x20]\n"
+ " ldr r4, [sp, #0x24]\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " lsl r2, r2, #0x18\n"
+ " lsr r2, r2, #0x18\n"
+ " lsl r3, r3, #0x10\n"
+ " lsr r3, r3, #0x10\n"
+ " mov r9, r3\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " mov sl, r4\n"
+ " bl InitFieldObjectStateFromTemplate\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " cmp r0, #0x10\n"
+ " bne ._83 @cond_branch\n"
+ " mov r0, #0x10\n"
+ " b ._92\n"
+ "._83:\n"
+ " mov r0, r8\n"
+ " lsl r4, r0, #0x3\n"
+ " add r0, r4, r0\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._87 @ gMapObjects\n"
+ " add r5, r0, r1\n"
+ " ldrb r0, [r5, #0x5]\n"
+ " bl GetFieldObjectGraphicsInfo\n"
+ " add r6, r0, #0\n"
+ " ldrb r1, [r6, #0xc]\n"
+ " mov r0, #0xf\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._85 @cond_branch\n"
+ " ldrh r0, [r6, #0x2]\n"
+ " lsl r1, r1, #0x1c\n"
+ " lsr r1, r1, #0x1c\n"
+ " bl npc_load_two_palettes__no_record\n"
+ " b ._89\n"
+ "._88:\n"
+ " .align 2, 0\n"
+ "._87:\n"
+ " .word gMapObjects\n"
+ "._85:\n"
+ " cmp r0, #0xa\n"
+ " bne ._89 @cond_branch\n"
+ " ldrh r0, [r6, #0x2]\n"
+ " lsl r1, r1, #0x1c\n"
+ " lsr r1, r1, #0x1c\n"
+ " bl npc_load_two_palettes__and_record\n"
+ "._89:\n"
+ " ldrb r0, [r5, #0x6]\n"
+ " cmp r0, #0x4c\n"
+ " bne ._90 @cond_branch\n"
+ " ldrb r0, [r5, #0x1]\n"
+ " mov r1, #0x20\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r5, #0x1]\n"
+ "._90:\n"
+ " ldr r1, ._93 @ 0xffff\n"
+ " add r0, r1, #0\n"
+ " strh r0, [r7, #0x2]\n"
+ " add r0, r7, #0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x0\n"
+ " mov r3, #0x0\n"
+ " bl CreateSprite\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x40\n"
+ " bne ._91 @cond_branch\n"
+ " ldr r1, ._93 + 4 @ gUnknown_Debug_03004BC0\n"
+ " ldrb r0, [r1]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, ._93 + 8 @ gMapObjects\n"
+ " mov r2, r8\n"
+ " add r1, r4, r2\n"
+ " lsl r1, r1, #0x2\n"
+ " add r1, r1, r0\n"
+ " ldrb r2, [r1]\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " strb r0, [r1]\n"
+ " mov r0, #0x10\n"
+ " b ._92\n"
+ "._94:\n"
+ " .align 2, 0\n"
+ "._93:\n"
+ " .word 0xffff\n"
+ " .word gUnknown_Debug_03004BC0\n"
+ " .word gMapObjects\n"
+ "._91:\n"
+ " lsl r0, r7, #0x4\n"
+ " add r0, r0, r7\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._96 @ gSprites\n"
+ " add r4, r0, r1\n"
+ " mov r1, r9\n"
+ " lsl r0, r1, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " ldrh r2, [r5, #0x10]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " mov r2, sl\n"
+ " lsl r1, r2, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " ldrh r2, [r5, #0x12]\n"
+ " add r1, r1, r2\n"
+ " lsl r1, r1, #0x10\n"
+ " asr r1, r1, #0x10\n"
+ " add r2, r4, #0\n"
+ " add r2, r2, #0x20\n"
+ " add r3, r4, #0\n"
+ " add r3, r3, #0x22\n"
+ " bl sub_8060388\n"
+ " ldrh r0, [r6, #0x8]\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x11\n"
+ " neg r0, r0\n"
+ " add r1, r4, #0\n"
+ " add r1, r1, #0x28\n"
+ " strb r0, [r1]\n"
+ " ldrh r0, [r6, #0xa]\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x11\n"
+ " neg r0, r0\n"
+ " add r2, r4, #0\n"
+ " add r2, r2, #0x29\n"
+ " strb r0, [r2]\n"
+ " ldrh r0, [r4, #0x20]\n"
+ " add r0, r0, #0x8\n"
+ " strh r0, [r4, #0x20]\n"
+ " ldrh r1, [r4, #0x22]\n"
+ " add r1, r1, #0x10\n"
+ " mov r0, #0x0\n"
+ " ldsb r0, [r2, r0]\n"
+ " add r0, r0, r1\n"
+ " strh r0, [r4, #0x22]\n"
+ " ldrb r1, [r6, #0xc]\n"
+ " lsl r1, r1, #0x1c\n"
+ " lsr r1, r1, #0x18\n"
+ " ldrb r2, [r4, #0x5]\n"
+ " mov r0, #0xf\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r4, #0x5]\n"
+ " add r2, r4, #0\n"
+ " add r2, r2, #0x3e\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " mov r0, r8\n"
+ " strh r0, [r4, #0x2e]\n"
+ " strb r7, [r5, #0x4]\n"
+ " ldrb r1, [r6, #0xc]\n"
+ " lsl r1, r1, #0x19\n"
+ " lsr r1, r1, #0x1f\n"
+ " lsl r1, r1, #0x4\n"
+ " ldrb r2, [r5, #0x1]\n"
+ " mov r0, #0x11\n"
+ " neg r0, r0\n"
+ " and r0, r0, r2\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r5, #0x1]\n"
+ " lsl r0, r0, #0x1b\n"
+ " cmp r0, #0\n"
+ " blt ._95 @cond_branch\n"
+ " ldrb r0, [r5, #0x18]\n"
+ " lsl r0, r0, #0x1c\n"
+ " lsr r0, r0, #0x1c\n"
+ " bl FieldObjectDirectionToImageAnimId\n"
+ " add r1, r0, #0\n"
+ " lsl r1, r1, #0x18\n"
+ " lsr r1, r1, #0x18\n"
+ " add r0, r4, #0\n"
+ " bl StartSpriteAnim\n"
+ "._95:\n"
+ " ldrb r0, [r5, #0xb]\n"
+ " lsr r0, r0, #0x4\n"
+ " add r1, r4, #0\n"
+ " mov r2, #0x1\n"
+ " bl SetObjectSubpriorityByZCoord\n"
+ " add r0, r5, #0\n"
+ " add r1, r4, #0\n"
+ " bl sub_80634D0\n"
+ " mov r0, r8\n"
+ "._92:\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._97:\n"
+ " .align 2, 0\n"
+ "._96:\n"
+ " .word gSprites\n"
+ "\n"
+ );
+}
+#else
u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *sprTemplate, u8 c, u8 d, s16 e, s16 f)
{
u8 mapObjectId;
@@ -2352,6 +2808,7 @@ u8 sub_805AFCC(struct MapObjectTemplate *mapObjTemplate, struct SpriteTemplate *
sub_80634D0(mapObject, sprite);
return mapObjectId;
}
+#endif
u8 SpawnFieldObject(struct MapObjectTemplate *mapObjTemplate, u8 b, u8 c, s16 d, s16 e)
{
@@ -2440,7 +2897,7 @@ void MakeObjectTemplateFromFieldObjectTemplate(struct MapObjectTemplate *mapObjT
MakeObjectTemplateFromFieldObjectGraphicsInfoWithCallbackIndex(mapObjTemplate->graphicsId, mapObjTemplate->movementType, sprTemplate, subspriteTables);
}
-u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c, s16 d, u8 subpriority)
+u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority)
{
struct SpriteTemplate spriteTemplate;
const struct SubspriteTable *subspriteTables;
@@ -2449,7 +2906,7 @@ u8 AddPseudoFieldObject(u16 graphicsId, void (*callback)(struct Sprite *), s16 c
MakeObjectTemplateFromFieldObjectGraphicsInfo(graphicsId, callback, &spriteTemplate, &subspriteTables);
if (spriteTemplate.paletteTag != 0xFFFF)
sub_805BDF8(spriteTemplate.paletteTag);
- spriteId = CreateSprite(&spriteTemplate, c, d, subpriority);
+ spriteId = CreateSprite(&spriteTemplate, x, y, subpriority);
if (spriteId != 64 && subspriteTables != NULL)
{
SetSubspriteTables(&gSprites[spriteId], subspriteTables);
@@ -2574,6 +3031,66 @@ void RemoveFieldObjectIfOutsideView(struct MapObject *mapObject)
void sub_805B75C(u8, s16, s16);
+#if DEBUG
+__attribute__((naked))
+void sub_805B710(u16 u161, u16 u162)
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " add r4, r0, #0\n"
+ " add r5, r1, #0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsr r4, r4, #0x10\n"
+ " lsl r5, r5, #0x10\n"
+ " lsr r5, r5, #0x10\n"
+ " ldr r6, ._153 @ gUnknown_Debug_03004BC0\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r6]\n"
+ " bl ClearPlayerAvatarInfo\n"
+ " mov r7, #0x0\n"
+ " ldr r0, ._153 + 4 @ gMapObjects\n"
+ " mov r8, r0\n"
+ " lsl r4, r4, #0x10\n"
+ " lsl r5, r5, #0x10\n"
+ "._152:\n"
+ " lsl r0, r7, #0x3\n"
+ " add r0, r0, r7\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r8\n"
+ " ldrb r0, [r0]\n"
+ " lsl r0, r0, #0x1f\n"
+ " cmp r0, #0\n"
+ " beq ._151 @cond_branch\n"
+ " add r0, r7, #0\n"
+ " asr r1, r4, #0x10\n"
+ " asr r2, r5, #0x10\n"
+ " bl sub_805B75C\n"
+ " ldrb r0, [r6]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r6]\n"
+ "._151:\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0xf\n"
+ " bls ._152 @cond_branch\n"
+ " bl sub_805AAB0\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._154:\n"
+ " .align 2, 0\n"
+ "._153:\n"
+ " .word gUnknown_Debug_03004BC0\n"
+ " .word gMapObjects\n"
+ "\n"
+ );
+}
+#else
void sub_805B710(u16 a, u16 b)
{
u8 i;
@@ -2586,6 +3103,7 @@ void sub_805B710(u16 a, u16 b)
}
sub_805AAB0();
}
+#endif
extern void SetPlayerAvatarFieldObjectIdAndObjectId(u8, u8);
extern void sub_805B914(struct MapObject *);
diff --git a/src/field/field_message_box.c b/src/field/field_message_box.c
index 35aac7ac9..5eec7a14b 100644
--- a/src/field/field_message_box.c
+++ b/src/field/field_message_box.c
@@ -19,8 +19,8 @@ static void PrintFieldMessageFromStringVar4(void);
void InitFieldMessageBox(void)
{
sMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
- SetMessageBoxBaseTileNum(gMenuTextWindowContentTileOffset);
- InitWindowFromConfig(&gFieldMessageBoxWindow, &gWindowConfig_81E6CE4);
+ TextWindow_SetDlgFrameBaseTileNum(gMenuTextWindowContentTileOffset);
+ Text_InitWindowWithTemplate(&gFieldMessageBoxWindow, &gWindowTemplate_81E6CE4);
}
static void Task_FieldMessageBox(u8 taskId)
@@ -29,22 +29,22 @@ static void Task_FieldMessageBox(u8 taskId)
switch (task->data[0])
{
case 0:
- LoadMessageBoxTiles(&gFieldMessageBoxWindow);
+ TextWindow_LoadDialogueFrameTiles(&gFieldMessageBoxWindow);
task->data[0]++;
break;
case 1:
- DrawStandardMessageBox(&gFieldMessageBoxWindow);
+ TextWindow_DrawDialogueFrame(&gFieldMessageBoxWindow);
task->data[0]++;
break;
case 2:
switch (sMessageBoxMode)
{
case FIELD_MESSAGE_BOX_NORMAL:
- if (!sub_80035AC(&gFieldMessageBoxWindow))
+ if (!Text_UpdateWindow(&gFieldMessageBoxWindow))
return;
break;
case FIELD_MESSAGE_BOX_AUTO_SCROLL:
- if (!sub_8003778(&gFieldMessageBoxWindow))
+ if (!Text_UpdateWindowAutoscroll(&gFieldMessageBoxWindow))
return;
break;
}
@@ -117,20 +117,20 @@ bool8 unref_sub_8064BD0(const u8 *message)
static void PrintFieldMessage(const u8 *message)
{
StringExpandPlaceholders(gStringVar4, message);
- sub_8002EB0(&gFieldMessageBoxWindow, gStringVar4, gMenuTextTileOffset, 2, 15);
+ Text_InitWindow8002EB0(&gFieldMessageBoxWindow, gStringVar4, gMenuTextTileOffset, 2, 15);
CreateFieldMessageBoxTask();
}
static void PrintFieldMessageFromStringVar4(void)
{
- sub_8002EB0(&gFieldMessageBoxWindow, gStringVar4, gMenuTextTileOffset, 2, 15);
+ Text_InitWindow8002EB0(&gFieldMessageBoxWindow, gStringVar4, gMenuTextTileOffset, 2, 15);
CreateFieldMessageBoxTask();
}
void HideFieldMessageBox(void)
{
DestroyFieldMessageBoxTask();
- ClearStandardMessageBox(&gFieldMessageBoxWindow);
+ TextWindow_EraseDialogueFrame(&gFieldMessageBoxWindow);
sMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
}
@@ -150,6 +150,6 @@ bool8 IsFieldMessageBoxHidden(void)
void unref_sub_8064CA0(void)
{
DestroyFieldMessageBoxTask();
- DrawStandardMessageBox(&gFieldMessageBoxWindow);
+ TextWindow_DrawDialogueFrame(&gFieldMessageBoxWindow);
sMessageBoxMode = FIELD_MESSAGE_BOX_HIDDEN;
}
diff --git a/src/field/field_player_avatar.c b/src/field/field_player_avatar.c
index d80076be4..a7594372d 100644
--- a/src/field/field_player_avatar.c
+++ b/src/field/field_player_avatar.c
@@ -32,9 +32,9 @@ static void npc_clear_strange_bits(struct MapObject *a);
static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c);
static void PlayerAllowForcedMovementIfMovingSameDirection(void);
static bool8 TryDoMetatileBehaviorForcedMovement(void);
-static u8 GetForcedMovementByMetatileBehavior(void);
+/*static*/ u8 GetForcedMovementByMetatileBehavior(void);
static void MovePlayerNotOnBike(u8 a, u16 b);
-static u8 CheckMovementInputNotOnBike(u8 a);
+/*static*/ u8 CheckMovementInputNotOnBike(u8 a);
static u8 CheckForPlayerAvatarCollision(u8 a);
static u8 sub_8058EF0(s16 a, s16 b, u8 c);
static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c);
@@ -260,12 +260,59 @@ static void PlayerAllowForcedMovementIfMovingSameDirection(void)
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
}
+#if DEBUG
+__attribute__((naked))
+u8 TryDoMetatileBehaviorForcedMovement()
+{
+ asm(
+ " push {r4, lr}\n"
+ " ldr r0, ._27 @ gUnknown_020297ED\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._25 @cond_branch\n"
+ " ldr r0, ._27 + 4 @ gMain\n"
+ " ldrh r1, [r0, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._25 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._26\n"
+ "._28:\n"
+ " .align 2, 0\n"
+ "._27:\n"
+ " .word gUnknown_020297ED\n"
+ " .word gMain\n"
+ "._25:\n"
+ " ldr r4, ._29 @ gUnknown_0830FBA0\n"
+ " bl GetForcedMovementByMetatileBehavior\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x16\n"
+ " add r0, r0, r4\n"
+ " ldr r0, [r0]\n"
+ " bl _call_via_r0\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ "._26:\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "._30:\n"
+ " .align 2, 0\n"
+ "._29:\n"
+ " .word gUnknown_0830FBA0\n"
+ "\n"
+ );
+}
+#else
static bool8 TryDoMetatileBehaviorForcedMovement(void)
{
return gUnknown_0830FBA0[GetForcedMovementByMetatileBehavior()]();
}
+#endif
-static u8 GetForcedMovementByMetatileBehavior(void)
+/*static*/ u8 GetForcedMovementByMetatileBehavior(void)
{
u8 i;
@@ -436,12 +483,57 @@ bool8 ForcedMovement_MuddySlope(void)
}
}
+#if DEBUG
+__attribute__((naked))
+void MovePlayerNotOnBike(u8 u81, u16 u161)
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " add r5, r2, #0\n"
+ " lsl r1, r1, #0x10\n"
+ " lsr r6, r1, #0x10\n"
+ " ldr r0, ._84 @ gUnknown_020297ED\n"
+ " ldrb r0, [r0]\n"
+ " cmp r0, #0\n"
+ " beq ._82 @cond_branch\n"
+ " add r0, r2, #0\n"
+ " bl debug_sub_805F2B0\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bne ._83 @cond_branch\n"
+ "._82:\n"
+ " ldr r4, ._84 + 4 @ gUnknown_0830FBEC\n"
+ " add r0, r5, #0\n"
+ " bl CheckMovementInputNotOnBike\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x16\n"
+ " add r0, r0, r4\n"
+ " ldr r2, [r0]\n"
+ " add r0, r5, #0\n"
+ " add r1, r6, #0\n"
+ " bl _call_via_r2\n"
+ "._83:\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._85:\n"
+ " .align 2, 0\n"
+ "._84:\n"
+ " .word gUnknown_020297ED\n"
+ " .word gUnknown_0830FBEC\n"
+ "\n"
+ );
+}
+#else
static void MovePlayerNotOnBike(u8 direction, u16 heldKeys)
{
gUnknown_0830FBEC[CheckMovementInputNotOnBike(direction)](direction, heldKeys);
}
+#endif
-static u8 CheckMovementInputNotOnBike(u8 direction)
+/*static*/ u8 CheckMovementInputNotOnBike(u8 direction)
{
if (direction == DIR_NONE)
{
@@ -523,7 +615,7 @@ u8 CheckForFieldObjectCollision(struct MapObject *a, s16 x, s16 y, u8 direction,
return 5;
if (ShouldJumpLedge(x, y, direction))
{
- IncrementGameStat(0x2B);
+ IncrementGameStat(GAME_STAT_JUMPED_DOWN_LEDGES);
return COLLISION_LEDGE_JUMP;
}
if (collision == 4 && sub_8058F6C(x, y, direction))
@@ -1507,7 +1599,7 @@ u8 Fishing4(struct Task *task)
{
u32 randVal;
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
task->tStep++;
task->tFrameCounter = 0;
task->tNumDots = 0;
@@ -1549,7 +1641,7 @@ u8 Fishing5(struct Task *task)
}
else
{
- MenuPrint(dot, task->tNumDots + 4, 15);
+ Menu_PrintText(dot, task->tNumDots + 4, 15);
task->tNumDots++;
}
}
@@ -1573,7 +1665,7 @@ u8 Fishing6(struct Task *task)
u8 Fishing7(struct Task *task)
{
sub_805A954();
- MenuPrint(gOtherText_OhABite, 4, 17);
+ Menu_PrintText(gOtherText_OhABite, 4, 17);
task->tStep++;
task->tFrameCounter = 0;
return 0;
@@ -1624,7 +1716,7 @@ u8 Fishing10(struct Task *task)
{
sub_805A954();
MenuPrintMessageDefaultCoords(gOtherText_PokeOnHook);
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
task->tStep++;
task->tFrameCounter = 0;
return 0;
@@ -1637,7 +1729,7 @@ u8 Fishing11(struct Task *task)
if (task->tFrameCounter == 0)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
@@ -1647,7 +1739,7 @@ u8 Fishing11(struct Task *task)
sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 0, 0);
gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
- MenuZeroFillScreen();
+ Menu_EraseScreen();
task->tFrameCounter++;
return 0;
}
@@ -1688,7 +1780,7 @@ u8 Fishing13(struct Task *task)
u8 Fishing14(struct Task *task)
{
sub_805A954();
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
task->tStep++;
return 0;
}
@@ -1713,12 +1805,12 @@ u8 Fishing15(struct Task *task)
u8 Fishing16(struct Task *task)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
gPlayerAvatar.preventStep = FALSE;
ScriptContext2_Disable();
UnfreezeMapObjects();
- MenuZeroFillScreen();
+ Menu_EraseScreen();
sub_80BE97C(0);
DestroyTask(FindTaskIdByFunc(Task_Fishing));
}
@@ -1763,3 +1855,98 @@ static void sub_805A954(void)
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING)
sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 1, playerSprite->pos2.y);
}
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_805F2B0()
+{
+ asm(
+ " push {lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " ldr r0, ._422 @ gMain\n"
+ " ldrh r1, [r0, #0x2c]\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne ._420 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b ._421\n"
+ "._423:\n"
+ " .align 2, 0\n"
+ "._422:\n"
+ " .word gMain\n"
+ "._420:\n"
+ " add r0, r2, #0\n"
+ " bl debug_sub_805F2DC\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ "._421:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_805F2DC()
+{
+ asm(
+ " push {r4, lr}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0\n"
+ " bne ._424 @cond_branch\n"
+ " ldr r2, ._426 @ gMapObjects\n"
+ " ldr r0, ._426 + 4 @ gPlayerAvatar\n"
+ " ldrb r1, [r0, #0x5]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r2\n"
+ " ldrb r0, [r0, #0x18]\n"
+ " lsr r0, r0, #0x4\n"
+ " bl PlayerFaceDirection\n"
+ " b ._430\n"
+ "._427:\n"
+ " .align 2, 0\n"
+ "._426:\n"
+ " .word gMapObjects\n"
+ " .word gPlayerAvatar\n"
+ "._424:\n"
+ " ldr r2, ._431 @ gMapObjects\n"
+ " ldr r0, ._431 + 4 @ gPlayerAvatar\n"
+ " ldrb r1, [r0, #0x5]\n"
+ " lsl r0, r1, #0x3\n"
+ " add r0, r0, r1\n"
+ " lsl r0, r0, #0x2\n"
+ " add r0, r0, r2\n"
+ " ldrb r0, [r0, #0x1]\n"
+ " lsr r0, r0, #0x7\n"
+ " cmp r0, #0\n"
+ " beq ._429 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl CanCameraMoveInDirection\n"
+ " cmp r0, #0\n"
+ " bne ._429 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl PlayerOnBikeCollide\n"
+ " b ._430\n"
+ "._432:\n"
+ " .align 2, 0\n"
+ "._431:\n"
+ " .word gMapObjects\n"
+ " .word gPlayerAvatar\n"
+ "._429:\n"
+ " add r0, r4, #0\n"
+ " bl PlayerGoSpeed4\n"
+ "._430:\n"
+ " mov r0, #0x1\n"
+ " pop {r4}\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+#endif
diff --git a/src/field/field_poison.c b/src/field/field_poison.c
index 49678f269..8365351f9 100644
--- a/src/field/field_poison.c
+++ b/src/field/field_poison.c
@@ -43,7 +43,7 @@ void MonFaintFromPoisonOnField(u8 partyMember)
u32 val = 0;
AdjustFriendship(pkmn, 7);
- SetMonData(pkmn, MON_DATA_STATUS, (u8*)&val);
+ SetMonData(pkmn, MON_DATA_STATUS, &val);
GetMonData(pkmn, MON_DATA_NICKNAME, gStringVar1);
StringGetEnd10(gStringVar1);
}
@@ -60,38 +60,36 @@ bool32 CheckMonFaintedFromPoison(u8 partyMember)
return FALSE;
}
-//Task data
-enum
-{
- TD_STATE,
- TD_PARTY_MEMBER,
-};
+#define tState data[0]
+#define tPartyMember data[1]
void Task_WhiteOut(u8 taskId)
{
- s16 *taskData = gTasks[taskId].data;
+ s16 *data = gTasks[taskId].data;
- switch (taskData[TD_STATE])
+ switch (tState)
{
- case 0: //Check if Pokemon have fainted due to poison
- while (taskData[TD_PARTY_MEMBER] < 6)
+ case 0:
+ // Check if any Pokemon have fainted due to poison
+ while (tPartyMember < 6)
{
- if (CheckMonFaintedFromPoison(taskData[TD_PARTY_MEMBER]))
+ if (CheckMonFaintedFromPoison(tPartyMember))
{
- MonFaintFromPoisonOnField(taskData[TD_PARTY_MEMBER]);
+ // Show message about fainted mon
+ MonFaintFromPoisonOnField(tPartyMember);
ShowFieldMessage(fieldPoisonText_PokemonFainted);
- taskData[TD_STATE]++;
+ tState++;
return;
}
- taskData[TD_PARTY_MEMBER]++;
+ tPartyMember++;
}
- taskData[TD_STATE] = 2;
+ tState = 2;
break;
- case 1: //Wait for message box to disappear
+ case 1: // Wait for message box to disappear
if (IsFieldMessageBoxHidden())
- taskData[TD_STATE]--; //Check next party member
+ tState--; // Go to previous step and check next party member
break;
- case 2: //Done checking Pokemon
+ case 2: // done checking all mons
if (AllMonsFainted())
gSpecialVar_Result = 1;
else
@@ -102,6 +100,9 @@ void Task_WhiteOut(u8 taskId)
}
}
+#undef tState
+#undef tPartyMember
+
void ExecuteWhiteOut(void)
{
CreateTask(Task_WhiteOut, 0x50);
@@ -115,26 +116,28 @@ s32 DoPoisonFieldEffect(void)
u32 numFainting = 0;
int i;
+ // count the number of mons that are poisoned and fainting from poison,
+ // and decrement HP of all poisoned mons
for (i = 0; i < 6; i++)
{
u32 hp;
- // UB: Too few arguments for function 'GetMonData'
if (GetMonData(pkmn, MON_DATA_SANITY_BIT2) != 0
&& pokemon_ailments_get_primary(GetMonData(pkmn, MON_DATA_STATUS)) == 1)
{
+ // decrement HP of poisoned mon
hp = GetMonData(pkmn, MON_DATA_HP);
if (hp != 0)
hp--;
if (hp == 0)
- numFainting++; //Pokemon will now faint due to poison
+ numFainting++;
SetMonData(pkmn, MON_DATA_HP, &hp);
numPoisoned++;
}
pkmn++;
}
if (numFainting != 0 || numPoisoned != 0)
- DoFieldPoisonEffect();
+ FldeffPoison_Start();
if (numFainting != 0)
return 2;
if (numPoisoned != 0)
diff --git a/src/field/field_region_map.c b/src/field/field_region_map.c
index 73e101d8f..54091459f 100644
--- a/src/field/field_region_map.c
+++ b/src/field/field_region_map.c
@@ -50,13 +50,13 @@ void CB2_FieldInitRegionMap(void)
InitRegionMap((void *)&ewram0_5.unk8, 0);
CreateRegionMapPlayerIcon(0, 0);
CreateRegionMapCursor(1, 1);
- SetUpWindowConfig(&gWindowConfig_81E709C);
- InitMenuWindow(&gWindowConfig_81E709C);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E709C);
+ InitMenuWindow(&gWindowTemplate_81E709C);
+ Menu_EraseScreen();
REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
- MenuDrawTextWindow(21, 0, 29, 3);
+ Menu_DrawStdWindowFrame(21, 0, 29, 3);
sub_8072BD8(gOtherText_Hoenn, 0x16, 1, 0x38);
- MenuDrawTextWindow(16, 16, 29, 19);
+ Menu_DrawStdWindowFrame(16, 16, 29, 19);
sub_813F0C8();
SetMainCallback2(CB2_FieldRegionMap);
SetVBlankCallback(VBlankCB_FieldRegionMap);
@@ -117,7 +117,7 @@ void sub_813EFDC(void)
void sub_813F0C8(void)
{
- MenuFillWindowRectWithBlankTile(17, 17, 28, 18);
+ Menu_BlankWindowRect(17, 17, 28, 18);
if (ewram0_5.unk8.unk16)
- MenuPrint(ewram0_5.unk8.str, 17, 17);
+ Menu_PrintText(ewram0_5.unk8.str, 17, 17);
}
diff --git a/src/field/field_screen_effect.c b/src/field/field_screen_effect.c
index a472d5a9c..61301c5a9 100644
--- a/src/field/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
@@ -7,13 +7,13 @@
#include "script.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
const static u16 gUnknown_0839ACDC[] = { 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0 };
const s32 gMaxFlashLevel = 4;
-const static struct UnknownTaskStruct gUnknown_0839ACEC =
+const static struct ScanlineEffectParams gUnknown_0839ACEC =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -64,18 +64,18 @@ static void sub_8081424(u8 taskId)
switch (data[0])
{
case 0:
- sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.srcBank][0], data[1], data[2], data[3]);
+ sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]);
data[0] = 1;
break;
case 1:
- sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.srcBank][0], data[1], data[2], data[3]);
+ sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]);
data[0] = 0;
data[3] += data[5];
if (data[3] > data[4])
{
if (data[6] == 1)
{
- remove_some_task();
+ ScanlineEffect_Stop();
data[0] = 2;
}
else
@@ -85,7 +85,7 @@ static void sub_8081424(u8 taskId)
}
break;
case 2:
- dp12_8087EA4();
+ ScanlineEffect_Clear();
DestroyTask(taskId);
break;
}
@@ -140,8 +140,8 @@ void sub_80815E0(u8 a1)
{
if (a1)
{
- sub_8081398(&gUnknown_03004DE0[0][0], 120, 80, gUnknown_0839ACDC[a1]);
- CpuFastSet(&gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 480);
+ sub_8081398(&gScanlineEffectRegBuffers[0][0], 120, 80, gUnknown_0839ACDC[a1]);
+ CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
}
}
@@ -208,14 +208,14 @@ static void sub_80816A8(u8 taskId)
REG_BLDALPHA = 1804;
REG_WININ = 63;
REG_WINOUT = 30;
- sub_8081398(&gUnknown_03004DE0[0][0], data[2], data[3], 1);
- CpuFastSet(&gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 480);
- //sub_80895F8(gUnknown_0839ACEC[0], gUnknown_0839ACEC[1], gUnknown_0839ACEC[2]);
- sub_80895F8(gUnknown_0839ACEC);
+ sub_8081398(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1);
+ CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
+ //ScanlineEffect_SetParams(gUnknown_0839ACEC[0], gUnknown_0839ACEC[1], gUnknown_0839ACEC[2]);
+ ScanlineEffect_SetParams(gUnknown_0839ACEC);
data[0] = 1;
break;
case 1:
- MenuFillWindowRectWithBlankTile(0, 0, 29, 19);
+ Menu_BlankWindowRect(0, 0, 29, 19);
sub_808161C(data[1]);
sub_8081534(data[2], data[3], 1, 160, 1, 2);
data[0] = 2;
@@ -264,8 +264,8 @@ static void sub_80816A8(u8 taskId)
}
break;
case 5:
- MenuZeroFillWindowRect(0, 0, 29, 19);
- LoadFontDefaultPalette(&gWindowConfig_81E6CE4);
+ Menu_EraseWindowRect(0, 0, 29, 19);
+ LoadFontDefaultPalette(&gWindowTemplate_81E6CE4);
REG_WIN0H = 255;
REG_DISPCNT = data[6];
REG_BLDCNT = data[7];
diff --git a/src/field/field_specials.c b/src/field/field_specials.c
index fc6f690a3..e56d9ddbb 100644
--- a/src/field/field_specials.c
+++ b/src/field/field_specials.c
@@ -1058,21 +1058,21 @@ static void sub_810E874(void)
ScriptContext2_Enable();
if (gUnknown_0203925A > 5)
{
- MenuDrawTextWindow(0, 0, 8, 11);
+ Menu_DrawStdWindowFrame(0, 0, 8, 11);
InitMenu(0, 1, 1, 5, 0, 7);
gUnknown_0203925C = 0;
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
sub_810ECD4();
}
else
{
- MenuDrawTextWindow(0, 0, 8, 2 * gUnknown_0203925A + 1);
+ Menu_DrawStdWindowFrame(0, 0, 8, 2 * gUnknown_0203925A + 1);
InitMenu(0, 1, 1, gUnknown_0203925A, 0, 7);
}
for (i = 0; i < 5 && gUnknown_03000760[i].var0 != 16; i ++)
{
- MenuPrint(gUnknown_083F8380[gUnknown_03000760[i].var0], 1, 2 * i + 1);
+ Menu_PrintText(gUnknown_083F8380[gUnknown_03000760[i].var0], 1, 2 * i + 1);
}
DisplayCurrentElevatorFloor();
CreateTask(sub_810E984, 8);
@@ -1080,7 +1080,7 @@ static void sub_810E874(void)
void DisplayCurrentElevatorFloor(void)
{
- MenuDrawTextWindow(20, 0, 29, 5);
+ Menu_DrawStdWindowFrame(20, 0, 29, 5);
sub_8072BD8(gOtherText_NowOn, 21, 1, 64);
sub_8072BD8(gUnknown_083F8380[gSpecialVar_0x8005], 21, 3, 64);
}
@@ -1091,15 +1091,15 @@ void sub_810E984(u8 taskId)
if (gMain.newKeys == DPAD_UP && gUnknown_0203925B != 0)
{
gUnknown_0203925B--;
- curMenuPos = GetMenuCursorPos();
- MoveMenuCursorNoWrap(-1);
+ curMenuPos = Menu_GetCursorPos();
+ Menu_MoveCursorNoWrap(-1);
sub_810EAC8(curMenuPos, DPAD_UP);
}
if (gMain.newKeys == DPAD_DOWN && gUnknown_0203925B != gUnknown_0203925A - 1)
{
gUnknown_0203925B++;
- curMenuPos = GetMenuCursorPos();
- MoveMenuCursorNoWrap(+1);
+ curMenuPos = Menu_GetCursorPos();
+ Menu_MoveCursorNoWrap(+1);
sub_810EAC8(curMenuPos, DPAD_DOWN);
}
if (gMain.newKeys & A_BUTTON)
@@ -1109,7 +1109,7 @@ void sub_810E984(u8 taskId)
{
gSpecialVar_Result = 0;
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(0, 0, 29, 12);
+ Menu_EraseWindowRect(0, 0, 29, 12);
sub_810EC9C(taskId);
}
else
@@ -1119,7 +1119,7 @@ void sub_810E984(u8 taskId)
ShakeScreenInElevator();
FieldObjectTurnByLocalIdAndMap(gSpecialVar_LastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, DIR_SOUTH);
sub_810EEDC();
- MenuZeroFillScreen();
+ Menu_EraseScreen();
DestroyTask(taskId);
}
}
@@ -1128,7 +1128,7 @@ void sub_810E984(u8 taskId)
gSpecialVar_Result = 0;
PlaySE(SE_SELECT);
sub_810EEDC();
- MenuZeroFillWindowRect(0, 0, 29, 12);
+ Menu_EraseWindowRect(0, 0, 29, 12);
sub_810EC9C(taskId);
}
}
@@ -1163,10 +1163,10 @@ bool8 sub_810EAC8(u8 prevMenuPos, u8 dpadInput)
if (flag)
{
sub_810EB90(newPos, 5);
- MenuFillWindowRectWithBlankTile(2, 1, 7, 10);
+ Menu_BlankWindowRect(2, 1, 7, 10);
for (i=0; i<5 && gUnknown_03000760[newPos].var0 != 16; newPos++, i++)
{
- MenuPrint(gUnknown_083F8380[gUnknown_03000760[newPos].var0], 1, i * 2 + 1);
+ Menu_PrintText(gUnknown_083F8380[gUnknown_03000760[newPos].var0], 1, i * 2 + 1);
}
}
return flag;
@@ -1227,7 +1227,7 @@ bool8 sub_810EAC8(u8 prevMenuPos, u8 dpadInput)
"\tmovs r1, 0x1\n"
"\tmovs r2, 0x7\n"
"\tmovs r3, 0xA\n"
- "\tbl MenuFillWindowRectWithBlankTile\n"
+ "\tbl Menu_BlankWindowRect\n"
"\tmovs r5, 0\n"
"\tldr r2, _0810EB88 @ =gUnknown_03000760\n"
"\tlsls r1, r4, 2\n"
@@ -1249,7 +1249,7 @@ bool8 sub_810EAC8(u8 prevMenuPos, u8 dpadInput)
"\tlsls r2, 24\n"
"\tlsrs r2, 24\n"
"\tmovs r1, 0x1\n"
- "\tbl MenuPrint\n"
+ "\tbl Menu_PrintText\n"
"\tadds r0, r4, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r4, r0, 24\n"
@@ -1283,7 +1283,7 @@ void sub_810EB90(u8 newPos, u8 maxItems)
if (newPos == 0)
{
gUnknown_0203925C ^= 0x02;
- DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
}
else
{
@@ -1296,7 +1296,7 @@ void sub_810EB90(u8 newPos, u8 maxItems)
else if (newPos + maxItems == gUnknown_0203925A)
{
gUnknown_0203925C ^= 0x01;
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
}
@@ -1347,7 +1347,7 @@ void sub_810ECB0(void)
if (gUnknown_0203925C >> 1 != 1)
{
gUnknown_0203925C |= 0x2;
- CreateVerticalScrollIndicators(0, 0x24, 0x08);
+ CreateVerticalScrollIndicators(TOP_ARROW, 0x24, 0x08);
}
}
@@ -1356,7 +1356,7 @@ void sub_810ECD4(void)
if ((gUnknown_0203925C & 1) == 0)
{
gUnknown_0203925C |= 0x1;
- CreateVerticalScrollIndicators(1, 0x24, 0x48);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0x24, 0x48);
}
}
@@ -1428,11 +1428,11 @@ void sub_810EEDC(void)
{
if ((gUnknown_0203925C & 1) != 0)
{
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
if ((gUnknown_0203925C >> 1) == 1)
{
- DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
}
BuyMenuFreeMemory();
}
@@ -1539,15 +1539,15 @@ void ShowGlassWorkshopMenu(void)
{
u8 i;
ScriptContext2_Enable();
- MenuDrawTextWindow(0, 0, 10, 11);
+ Menu_DrawStdWindowFrame(0, 0, 10, 11);
InitMenu(0, 1, 1, 5, 0, 9);
gUnknown_0203925C = 0;
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
sub_810F2B4();
for (i=0; i<5; i++)
{
- MenuPrint(gUnknown_083F83C0[i], 1, 2 * i + 1);
+ Menu_PrintText(gUnknown_083F83C0[i], 1, 2 * i + 1);
}
gUnknown_0203925B = 0;
gUnknown_0203925A = ARRAY_COUNT(gUnknown_083F83C0);
@@ -1560,33 +1560,33 @@ void sub_810F118(u8 taskId)
if (gMain.newKeys == DPAD_UP && gUnknown_0203925B != 0)
{
gUnknown_0203925B--;
- prevCursorPos = GetMenuCursorPos();
- MoveMenuCursorNoWrap(-1);
+ prevCursorPos = Menu_GetCursorPos();
+ Menu_MoveCursorNoWrap(-1);
sub_810F1F4(prevCursorPos, DPAD_UP);
}
if (gMain.newKeys == DPAD_DOWN && gUnknown_0203925B != gUnknown_0203925A - 1)
{
gUnknown_0203925B++;
- prevCursorPos = GetMenuCursorPos();
- MoveMenuCursorNoWrap(1);
+ prevCursorPos = Menu_GetCursorPos();
+ Menu_MoveCursorNoWrap(1);
sub_810F1F4(prevCursorPos, DPAD_DOWN);
}
if (gMain.newKeys & A_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
gSpecialVar_Result = gUnknown_0203925B;
PlaySE(SE_SELECT);
sub_810EEDC();
- MenuZeroFillWindowRect(0, 0, 29, 12);
+ Menu_EraseWindowRect(0, 0, 29, 12);
sub_810EC9C(taskId);
}
if (gMain.newKeys & B_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
gSpecialVar_Result = 0x7f;
PlaySE(SE_SELECT);
sub_810EEDC();
- MenuZeroFillWindowRect(0, 0, 29, 12);
+ Menu_EraseWindowRect(0, 0, 29, 12);
sub_810EC9C(taskId);
}
}
@@ -1621,10 +1621,10 @@ bool8 sub_810F1F4(u8 prevCursorPos, u8 dpadInput)
if (flag)
{
GlassWorkshopUpdateScrollIndicators(newPos, 5);
- MenuFillWindowRectWithBlankTile(2, 1, 9, 10);
+ Menu_BlankWindowRect(2, 1, 9, 10);
for (i=0; i<5; newPos++, i++)
{
- MenuPrint(gUnknown_083F83C0[newPos], 1, 2 * i + 1);
+ Menu_PrintText(gUnknown_083F83C0[newPos], 1, 2 * i + 1);
}
}
return flag;
@@ -1683,7 +1683,7 @@ bool8 sub_810F1F4(u8 prevCursorPos, u8 dpadInput)
"\tmovs r1, 0x1\n"
"\tmovs r2, 0x9\n"
"\tmovs r3, 0xA\n"
- "\tbl MenuFillWindowRectWithBlankTile\n"
+ "\tbl Menu_BlankWindowRect\n"
"\tmovs r5, 0\n"
"\tldr r7, _0810F28C @ =gUnknown_083F83C0\n"
"_0810F25C:\n"
@@ -1695,7 +1695,7 @@ bool8 sub_810F1F4(u8 prevCursorPos, u8 dpadInput)
"\tlsls r2, 24\n"
"\tlsrs r2, 24\n"
"\tmovs r1, 0x1\n"
- "\tbl MenuPrint\n"
+ "\tbl Menu_PrintText\n"
"\tadds r0, r4, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r4, r0, 24\n"
@@ -1721,7 +1721,7 @@ void sub_810F290(void)
if (gUnknown_0203925C >> 1 != 1)
{
gUnknown_0203925C |= 0x02;
- CreateVerticalScrollIndicators(0, 0x2c, 0x08);
+ CreateVerticalScrollIndicators(TOP_ARROW, 0x2c, 0x08);
}
}
@@ -1730,7 +1730,7 @@ void sub_810F2B4(void)
if (!(gUnknown_0203925C & 0x01))
{
gUnknown_0203925C |= 0x01;
- CreateVerticalScrollIndicators(1, 0x2c, 0x58);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0x2c, 0x58);
}
}
@@ -1739,7 +1739,7 @@ void GlassWorkshopUpdateScrollIndicators(u8 newPos, u8 maxItems)
if (newPos == 0)
{
gUnknown_0203925C ^= 0x02;
- DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
}
else
{
@@ -1752,7 +1752,7 @@ void GlassWorkshopUpdateScrollIndicators(u8 newPos, u8 maxItems)
else if (newPos + maxItems == gUnknown_0203925A)
{
gUnknown_0203925C ^= 0x01;
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
}
diff --git a/src/field/field_weather.c b/src/field/field_weather.c
index 4a819bddf..fbc5431ae 100644
--- a/src/field/field_weather.c
+++ b/src/field/field_weather.c
@@ -13,7 +13,13 @@
#include "trig.h"
#include "ewram.h"
-#define MACRO1(a) ((((a) >> 1) & 0xF) | (((a) >> 2) & 0xF0) | (((a) >> 3) & 0xF00))
+#define MACRO1(color) ((((color) >> 1) & 0xF) | (((color) >> 2) & 0xF0) | (((color) >> 3) & 0xF00))
+
+enum {
+ GAMMA_NONE,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+};
struct RGBColor
{
@@ -24,7 +30,7 @@ struct RGBColor
struct WeatherPaletteData
{
- u16 data[0][0x1000]; // unknown length
+ u16 gammaShiftColors[8][0x1000]; // 0x1000 is the number of bytes that make up all palettes.
};
struct WeatherCallbacks
@@ -35,10 +41,14 @@ struct WeatherCallbacks
bool8 (*finish)(void);
};
-extern struct Weather gWeather;
-extern u8 gUnknown_0202FF38[];
-extern u16 gUnknown_0202FF58;
-IWRAM_DATA const u8 *gUnknown_030006DC;
+EWRAM_DATA struct Weather gWeather = {0};
+EWRAM_DATA u8 gFieldEffectPaletteGammaTypes[32] = {0};
+EWRAM_DATA u16 gUnknown_0202FF58 = 0;
+#if DEBUG
+EWRAM_DATA u16 gUnknown_Debug_20301FE = 0;
+#endif
+
+static const u8 *sPaletteGammaTypes;
const u8 DroughtPaletteData_0[] = INCBIN_U8("graphics/weather/drought0.bin.lz");
const u8 DroughtPaletteData_1[] = INCBIN_U8("graphics/weather/drought1.bin.lz");
@@ -46,8 +56,6 @@ const u8 DroughtPaletteData_2[] = INCBIN_U8("graphics/weather/drought2.bin.lz");
const u8 DroughtPaletteData_3[] = INCBIN_U8("graphics/weather/drought3.bin.lz");
const u8 DroughtPaletteData_4[] = INCBIN_U8("graphics/weather/drought4.bin.lz");
const u8 DroughtPaletteData_5[] = INCBIN_U8("graphics/weather/drought5.bin.lz");
-extern u8 (*gUnknown_0202FC48)[32];
-extern u8 gUnknown_0202F9E8[32];
static const u8 *const sCompressedDroughtPalettes[] =
{
@@ -57,7 +65,7 @@ static const u8 *const sCompressedDroughtPalettes[] =
DroughtPaletteData_3,
DroughtPaletteData_4,
DroughtPaletteData_5,
- gSharedMem,
+ (u8*)eDroughtPaletteData.gammaShiftColors,
};
// This is a pointer to gWeather. All code in this file accesses gWeather directly,
@@ -66,6 +74,18 @@ static const u8 *const sCompressedDroughtPalettes[] =
// this file produces the same result as accessing gWeather directly.
struct Weather *const gWeatherPtr = &gWeather;
+static bool8 LightenSpritePaletteInFog(u8);
+static void BuildGammaShiftTables(void);
+static void UpdateWeatherGammaShift(void);
+static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex);
+static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaIndex, u8 blendCoeff, u16 blendColor);
+static void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 blendColor);
+static void ApplyFogBlend(u8 blendCoeff, u16 blendColor);
+static bool8 FadeInScreen_RainShowShade(void);
+static bool8 FadeInScreen_Drought(void);
+static bool8 FadeInScreen_Fog1(void);
+static void FadeInScreenWithWeather(void);
+static void DoNothing(void);
void None_Init(void);
void None_Main(void);
bool8 None_Finish(void);
@@ -109,10 +129,10 @@ void Fog1_InitVars(void);
void Fog1_Main(void);
void Fog1_InitAll(void);
bool8 Fog1_Finish(void);
-void Weather11_InitVars(void);
-void Weather11_Main(void);
-void Weather11_InitAll(void);
-bool8 Weather11_Finish(void);
+void Shade_InitVars(void);
+void Shade_Main(void);
+void Shade_InitAll(void);
+bool8 Shade_Finish(void);
void Drought_InitVars(void);
void Drought_Main(void);
void Drought_InitAll(void);
@@ -131,7 +151,7 @@ static const struct WeatherCallbacks sWeatherFuncs[] =
{None_Init, None_Main, None_Init, None_Finish},
{Clouds_InitVars, Clouds_Main, Clouds_InitAll, Clouds_Finish},
{Weather2_InitVars, Weather2_Main, Weather2_InitAll, Weather2_Finish},
- {LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish}, // light rain
+ {LightRain_InitVars, LightRain_Main, LightRain_InitAll, LightRain_Finish},
{Snow_InitVars, Snow_Main, Snow_InitAll, Snow_Finish},
{MedRain_InitVars, Rain_Main, MedRain_InitAll, Rain_Finish},
{Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
@@ -139,68 +159,112 @@ static const struct WeatherCallbacks sWeatherFuncs[] =
{Sandstorm_InitVars, Sandstorm_Main, Sandstorm_InitAll, Sandstorm_Finish},
{Fog2_InitVars, Fog2_Main, Fog2_InitAll, Fog2_Finish},
{Fog1_InitVars, Fog1_Main, Fog1_InitAll, Fog1_Finish},
- {Weather11_InitVars, Weather11_Main, Weather11_InitAll, Weather11_Finish},
+ {Shade_InitVars, Shade_Main, Shade_InitAll, Shade_Finish},
{Drought_InitVars, Drought_Main, Drought_InitAll, Drought_Finish},
{HeavyRain_InitVars, Rain_Main, HeavyRain_InitAll, Rain_Finish},
{Bubbles_InitVars, Bubbles_Main, Bubbles_InitAll, Bubbles_Finish},
};
-void (*const gUnknown_083970B8[])(void) =
+void (*const gWeatherPalStateFuncs[])(void) =
{
- sub_807CC24,
- sub_807CCAC,
- nullsub_39,
- nullsub_39,
+ UpdateWeatherGammaShift, // WEATHER_PAL_STATE_CHANGING_WEATHER
+ FadeInScreenWithWeather, // WEATHER_PAL_STATE_SCREEN_FADING_IN
+ DoNothing, // WEATHER_PAL_STATE_SCREEN_FADING_OUT
+ DoNothing, // WEATHER_PAL_STATE_IDLE
};
-const u8 gUnknown_083970C8[] =
+// This table specifies which of the gamma shift tables should be
+// applied to each of the background and sprite palettes.
+static const u8 sBasePaletteGammaTypes[32] =
{
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 1,
- 0,
- 0,
- 2,
- 1,
- 2,
- 2,
- 2,
- 2,
- 1,
- 1,
- 1,
- 1,
- 2,
- 1,
- 1,
- 1,
- 1,
- 1,
+ // background palettes
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NONE,
+ GAMMA_NONE,
+ // sprite palettes
+ GAMMA_ALT,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+ GAMMA_ALT,
+ GAMMA_ALT,
+ GAMMA_ALT,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_ALT,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
+ GAMMA_NORMAL,
};
+#if DEBUG
+
+const u8 gDebugText_Weather_0[] = _("なし   ");
+const u8 gDebugText_Weather_1[] = _("はれ   ");
+const u8 gDebugText_Weather_2[] = _("はれ2  ");
+const u8 gDebugText_Weather_3[] = _("あめ   ");
+const u8 gDebugText_Weather_4[] = _("ゆき   ");
+const u8 gDebugText_Weather_5[] = _("かみなり ");
+const u8 gDebugText_Weather_6[] = _("きり   ");
+const u8 gDebugText_Weather_7[] = _("かざんばい");
+const u8 gDebugText_Weather_8[] = _("すなあらし");
+const u8 gDebugText_Weather_9[] = _("きり2  ");
+const u8 gDebugText_Weather_10[] = _("かいてい ");
+const u8 gDebugText_Weather_11[] = _("くもり  ");
+const u8 gDebugText_Weather_12[] = _("はれ3  ");
+const u8 gDebugText_Weather_13[] = _("おおあめ");
+const u8 gDebugText_Weather_14[] = _("かいてい2");
+
+const u8 *const gDebugText_Weather[] =
+{
+ gDebugText_Weather_0,
+ gDebugText_Weather_1,
+ gDebugText_Weather_2,
+ gDebugText_Weather_3,
+ gDebugText_Weather_4,
+ gDebugText_Weather_5,
+ gDebugText_Weather_6,
+ gDebugText_Weather_7,
+ gDebugText_Weather_8,
+ gDebugText_Weather_9,
+ gDebugText_Weather_10,
+ gDebugText_Weather_11,
+ gDebugText_Weather_12,
+ gDebugText_Weather_13,
+ gDebugText_Weather_14,
+};
+
+#endif
+
const u16 gUnknown_083970E8[] = INCBIN_U16("graphics/weather/0.gbapal");
void StartWeather(void)
{
u8 index;
+
if (!FuncIsActiveTask(Task_WeatherMain))
{
index = AllocSpritePalette(0x1200);
CpuCopy32(gUnknown_083970E8, &gPlttBufferUnfaded[0x100 + index * 16], 32);
- sub_807CB10();
- gWeatherPtr->unknown_6D5 = index;
- gWeatherPtr->unknown_6D4 = AllocSpritePalette(0x1201);
+ BuildGammaShiftTables();
+ gWeatherPtr->altGammaSpritePalIndex = index;
+ gWeatherPtr->weatherPicSpritePalIndex = AllocSpritePalette(0x1201);
gWeatherPtr->rainSpriteCount = 0;
gWeatherPtr->unknown_6D8 = 0;
gWeatherPtr->cloudSpritesCreated = 0;
@@ -211,49 +275,53 @@ void StartWeather(void)
gWeatherPtr->sandstormSprites1Created = 0;
gWeatherPtr->sandstormSprites2Created = 0;
gWeatherPtr->unknown_72E = 0;
- gWeatherPtr->unknown_6FA = 0;
+ gWeatherPtr->lightenedFogSpritePalsCount = 0;
Weather_SetBlendCoeffs(16, 0);
gWeatherPtr->currWeather = 0;
- gWeatherPtr->unknown_6C6 = 3;
- gWeatherPtr->unknown_6C8 = 0;
- gWeatherPtr->unknown_6D3 = 1;
- gWeatherPtr->unknown_6C9 = CreateTask(Task_WeatherInit, 80);
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
+ gWeatherPtr->readyForInit = FALSE;
+ gWeatherPtr->weatherChangeComplete = TRUE;
+ gWeatherPtr->taskId = CreateTask(Task_WeatherInit, 80);
}
}
-void DoWeatherEffect(u8 effect)
+void ChangeWeather(u8 weather)
{
- if (effect != WEATHER_RAIN_LIGHT && effect != WEATHER_RAIN_MED && effect != WEATHER_RAIN_HEAVY)
+ if (weather != WEATHER_RAIN_LIGHT && weather != WEATHER_RAIN_MED && weather != WEATHER_RAIN_HEAVY)
{
PlayRainSoundEffect();
}
- if (gWeatherPtr->nextWeather != effect && gWeatherPtr->currWeather == effect)
+
+ if (gWeatherPtr->nextWeather != weather && gWeatherPtr->currWeather == weather)
{
- sWeatherFuncs[effect].initVars();
+ sWeatherFuncs[weather].initVars();
}
- gWeatherPtr->unknown_6D3 = 0;
- gWeatherPtr->nextWeather = effect;
+
+ gWeatherPtr->weatherChangeComplete = FALSE;
+ gWeatherPtr->nextWeather = weather;
gWeatherPtr->finishStep = 0;
}
-void sub_807C988(u8 effect)
+void sub_807C988(u8 weather)
{
PlayRainSoundEffect();
- gWeatherPtr->currWeather = effect;
- gWeatherPtr->nextWeather = effect;
+ gWeatherPtr->currWeather = weather;
+ gWeatherPtr->nextWeather = weather;
}
-void sub_807C9B4(u8 effect)
+void sub_807C9B4(u8 weather)
{
PlayRainSoundEffect();
- gWeatherPtr->currWeather = effect;
- gWeatherPtr->nextWeather = effect;
- gWeatherPtr->unknown_6C8 = 1;
+ gWeatherPtr->currWeather = weather;
+ gWeatherPtr->nextWeather = weather;
+ gWeatherPtr->readyForInit = TRUE;
}
void Task_WeatherInit(u8 taskId)
{
- if (gWeatherPtr->unknown_6C8)
+ // Waits until it's ok to initialize weather.
+ // When the screen fades in, this is set to TRUE.
+ if (gWeatherPtr->readyForInit)
{
sWeatherFuncs[gWeatherPtr->currWeather].initAll();
gTasks[taskId].func = Task_WeatherMain;
@@ -266,24 +334,26 @@ void Task_WeatherMain(u8 taskId)
{
if (!sWeatherFuncs[gWeatherPtr->currWeather].finish())
{
+ // Finished cleaning up previous weather. Now transition to next weather.
sWeatherFuncs[gWeatherPtr->nextWeather].initVars();
- gWeatherPtr->unknown_6C3 = 0;
- gWeatherPtr->unknown_6C6 = 0;
+ gWeatherPtr->gammaStepFrameCounter = 0;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_CHANGING_WEATHER;
gWeatherPtr->currWeather = gWeatherPtr->nextWeather;
- gWeatherPtr->unknown_6D3 = 1;
+ gWeatherPtr->weatherChangeComplete = TRUE;
}
}
else
{
sWeatherFuncs[gWeatherPtr->currWeather].main();
}
- gUnknown_083970B8[gWeatherPtr->unknown_6C6]();
+
+ gWeatherPalStateFuncs[gWeatherPtr->palProcessingState]();
}
void None_Init(void)
{
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 0;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 0;
}
void None_Main(void)
@@ -295,7 +365,10 @@ u8 None_Finish(void)
return 0;
}
-void sub_807CB10(void)
+// Builds two tables that contain gamma shifts for palette colors.
+// It's unclear why the two tables aren't declared as const arrays, since
+// this function always builds the same two tables.
+static void BuildGammaShiftTables(void)
{
u16 v0;
u8 (*v1)[32];
@@ -308,15 +381,15 @@ void sub_807CB10(void)
u16 v11;
s16 dunno;
- gUnknown_030006DC = gUnknown_083970C8;
+ sPaletteGammaTypes = sBasePaletteGammaTypes;
for (v0 = 0; v0 <= 1; v0++)
{
if (v0 == 0)
- v1 = gWeatherPtr->unknown_200;
+ v1 = gWeatherPtr->gammaShifts;
else
- v1 = gWeatherPtr->unk460;
+ v1 = gWeatherPtr->altGammaShifts;
- for (v2 = 0; (u16)v2 <= 0x1f; v2++)
+ for (v2 = 0; v2 < 32; v2++)
{
v4 = v2 << 8;
if (v0 == 0)
@@ -335,88 +408,86 @@ void sub_807CB10(void)
v10 += 0xf;
}
v11 = v10 >> 4;
- if (v2 <= 0xb)
+ if (v2 < 12)
{
- for (; v6 <= 0x12; v6++)
+ for (; v6 < 19; v6++)
{
v4 += v11;
dunno = v4 - v9;
if (dunno > 0)
- {
v4 -= (dunno + ((u16)dunno >> 15)) >> 1;
- }
v1[v6][v2] = v4 >> 8;
if (v1[v6][v2] > 0x1f)
- {
v1[v6][v2] = 0x1f;
- }
}
}
else
{
- for (; v6 <= 0x12; v6++)
+ for (; v6 < 19; v6++)
{
v4 += v11;
v1[v6][v2] = v4 >> 8;
if (v1[v6][v2] > 0x1f)
- {
v1[v6][v2] = 0x1f;
- }
}
}
}
}
}
-void sub_807CC24(void)
+// When the weather is changing, it gradually updates the palettes
+// towards the desired gamma shift.
+static void UpdateWeatherGammaShift(void)
{
- if (gWeatherPtr->unknown_6C0 == gWeatherPtr->unknown_6C1)
+ if (gWeatherPtr->gammaIndex == gWeatherPtr->gammaTargetIndex)
{
- gWeatherPtr->unknown_6C6 = 3;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
else
{
- if (++gWeatherPtr->unknown_6C3 >= gWeatherPtr->unknown_6C2)
+ if (++gWeatherPtr->gammaStepFrameCounter >= gWeatherPtr->gammaStepDelay)
{
- gWeatherPtr->unknown_6C3 = 0;
- if (gWeatherPtr->unknown_6C0 < gWeatherPtr->unknown_6C1)
- gWeatherPtr->unknown_6C0++;
+ gWeatherPtr->gammaStepFrameCounter = 0;
+ if (gWeatherPtr->gammaIndex < gWeatherPtr->gammaTargetIndex)
+ gWeatherPtr->gammaIndex++;
else
- gWeatherPtr->unknown_6C0--;
- sub_807CEBC(0, 0x20, gWeatherPtr->unknown_6C0);
+ gWeatherPtr->gammaIndex--;
+
+ ApplyGammaShift(0, 32, gWeatherPtr->gammaIndex);
}
}
}
-void sub_807CCAC(void)
+static void FadeInScreenWithWeather(void)
{
if (++gWeatherPtr->unknown_6CB > 1)
gWeatherPtr->unknown_6CA = 0;
+
switch (gWeatherPtr->currWeather)
{
case WEATHER_RAIN_LIGHT:
case WEATHER_RAIN_MED:
case WEATHER_RAIN_HEAVY:
case WEATHER_SNOW:
- case WEATHER_DARK:
- if (sub_807CDC4() == 0)
+ case WEATHER_SHADE:
+ if (FadeInScreen_RainShowShade() == FALSE)
{
- gWeatherPtr->unknown_6C0 = 3;
- gWeatherPtr->unknown_6C6 = 3;
+ gWeatherPtr->gammaIndex = 3;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
break;
case WEATHER_DROUGHT:
- if (sub_807CE24() == 0)
+ if (FadeInScreen_Drought() == FALSE)
{
- gWeatherPtr->unknown_6C0 = -6;
- gWeatherPtr->unknown_6C6 = 3;
+ gWeatherPtr->gammaIndex = -6;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
break;
case WEATHER_FOG_1:
- if (sub_807CE7C() == 0)
+ if (FadeInScreen_Fog1() == FALSE)
{
- gWeatherPtr->unknown_6C0 = 0;
- gWeatherPtr->unknown_6C6 = 3;
+ gWeatherPtr->gammaIndex = 0;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
break;
case WEATHER_ASH:
@@ -426,71 +497,78 @@ void sub_807CCAC(void)
default:
if (!gPaletteFade.active)
{
- gWeatherPtr->unknown_6C0 = gWeatherPtr->unknown_6C1;
- gWeatherPtr->unknown_6C6 = 3;
+ gWeatherPtr->gammaIndex = gWeatherPtr->gammaTargetIndex;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
break;
}
}
-u8 sub_807CDC4(void)
+bool8 FadeInScreen_RainShowShade(void)
{
- if (gWeatherPtr->unknown_6C7 == 0x10)
- return 0;
- if (++gWeatherPtr->unknown_6C7 >= 0x10)
+ if (gWeatherPtr->fadeScreenCounter == 16)
+ return FALSE;
+
+ if (++gWeatherPtr->fadeScreenCounter >= 16)
{
- sub_807CEBC(0, 0x20, 3);
- gWeatherPtr->unknown_6C7 = 0x10;
- return 0;
+ ApplyGammaShift(0, 32, 3);
+ gWeatherPtr->fadeScreenCounter = 16;
+ return FALSE;
}
- sub_807D1BC(0, 0x20, 3, 0x10 - gWeatherPtr->unknown_6C7, gWeatherPtr->unknown_6C4);
- return 1;
+
+ ApplyGammaShiftWithBlend(0, 32, 3, 16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor);
+ return TRUE;
}
-u8 sub_807CE24(void)
+bool8 FadeInScreen_Drought(void)
{
- if (gWeatherPtr->unknown_6C7 == 0x10)
- return 0;
- if (++gWeatherPtr->unknown_6C7 >= 0x10)
+ if (gWeatherPtr->fadeScreenCounter == 16)
+ return FALSE;
+
+ if (++gWeatherPtr->fadeScreenCounter >= 16)
{
- sub_807CEBC(0, 0x20, -6);
- gWeatherPtr->unknown_6C7 = 0x10;
- return 0;
+ ApplyGammaShift(0, 32, -6);
+ gWeatherPtr->fadeScreenCounter = 16;
+ return FALSE;
}
- sub_807D304(-6, 0x10 - gWeatherPtr->unknown_6C7, gWeatherPtr->unknown_6C4);
- return 1;
-}
-u8 sub_807CE7C(void)
-{
- if (gWeatherPtr->unknown_6C7 == 0x10)
- return 0;
- ++gWeatherPtr->unknown_6C7;
- sub_807D424(0x10 - gWeatherPtr->unknown_6C7, gWeatherPtr->unknown_6C4);
- return 1;
+ ApplyDroughtGammaShiftWithBlend(-6, 16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor);
+ return TRUE;
}
-void nullsub_39(void)
+bool8 FadeInScreen_Fog1(void)
{
+ if (gWeatherPtr->fadeScreenCounter == 16)
+ return FALSE;
+
+ gWeatherPtr->fadeScreenCounter++;
+ ApplyFogBlend(16 - gWeatherPtr->fadeScreenCounter, gWeatherPtr->fadeDestColor);
+ return TRUE;
}
-void sub_807CEBC(u8 a, u8 b, s8 c)
+static void DoNothing(void)
+{ }
+
+static void ApplyGammaShift(u8 startPalIndex, u8 numPalettes, s8 gammaIndex)
{
- u16 r4;
+ u16 curPalIndex;
u16 palOffset;
- u8 *r6;
+ u8 *gammaTable;
u16 i;
- if (c > 0)
+ if (gammaIndex > 0)
{
- c = c - 1;
- palOffset = a * 16;
- b += a;
- r4 = a;
- while (r4 < b)
+ gammaIndex--;
+ palOffset = startPalIndex * 16;
+ numPalettes += startPalIndex;
+ curPalIndex = startPalIndex;
+
+ // Loop through the speficied palette range and apply necessary gamma shifts to the colors.
+ while (curPalIndex < numPalettes)
{
- if (gUnknown_030006DC[r4] == 0)
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
{
+ // No palette change.
CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
palOffset += 16;
}
@@ -498,25 +576,27 @@ void sub_807CEBC(u8 a, u8 b, s8 c)
{
u8 r, g, b;
- if (gUnknown_030006DC[r4] == 2 || r4 - 16 == gWeatherPtr->unknown_6D5)
- r6 = gWeatherPtr->unk460[c];
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_ALT || curPalIndex - 16 == gWeatherPtr->altGammaSpritePalIndex)
+ gammaTable = gWeatherPtr->altGammaShifts[gammaIndex];
else
- r6 = gWeatherPtr->unknown_200[c];
- if (r4 == 16 || r4 > 0x1B)
+ gammaTable = gWeatherPtr->gammaShifts[gammaIndex];
+
+ if (curPalIndex == 16 || curPalIndex > 27)
{
for (i = 0; i < 16; i++)
{
- if (gPlttBufferUnfaded[palOffset] == 0x2D9F)
+ if (gPlttBufferUnfaded[palOffset] == RGB(31, 12, 11))
{
+ // Skip gamma shift for this specific color. (Why?)
palOffset++;
}
else
{
- struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
-
- r = r6[color.r];
- g = r6[color.g];
- b = r6[color.b];
+ // Apply gamma shift to the original color.
+ struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ r = gammaTable[baseColor.r];
+ g = gammaTable[baseColor.g];
+ b = gammaTable[baseColor.b];
gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
}
}
@@ -525,39 +605,45 @@ void sub_807CEBC(u8 a, u8 b, s8 c)
{
for (i = 0; i < 16; i++)
{
- struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
-
- r = r6[color.r];
- g = r6[color.g];
- b = r6[color.b];
+ // Apply gamma shift to the original color.
+ struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ r = gammaTable[baseColor.r];
+ g = gammaTable[baseColor.g];
+ b = gammaTable[baseColor.b];
gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
}
}
}
- r4++;
+
+ curPalIndex++;
}
}
- else if (c < 0)
+ else if (gammaIndex < 0)
{
- c = -c - 1;
- palOffset = a * 16;
- b += a;
- r4 = a;
- while (r4 < b)
+ // A negative gammIndex value means that the blending will come from the special Drought weather's palette tables.
+ gammaIndex = -gammaIndex - 1;
+ palOffset = startPalIndex * 16;
+ numPalettes += startPalIndex;
+ curPalIndex = startPalIndex;
+
+ while (curPalIndex < numPalettes)
{
- if (gUnknown_030006DC[r4] == 0)
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
{
+ // No palette change.
CpuFastCopy(gPlttBufferUnfaded + palOffset, gPlttBufferFaded + palOffset, 16 * sizeof(u16));
palOffset += 16;
}
else
{
- if (r4 == 16 || r4 > 0x1B)
+ if (curPalIndex == 16 || curPalIndex > 27)
{
for (i = 0; i < 16; i++)
{
- if (gPlttBufferUnfaded[palOffset] != 0x2D9F)
- gPlttBufferFaded[palOffset] = eWeatherPaletteData.data[c][MACRO1(gPlttBufferUnfaded[palOffset])];
+ // Skip gamma shift for this specific color. (Why?)
+ if (gPlttBufferUnfaded[palOffset] != RGB(31, 12, 11))
+ gPlttBufferFaded[palOffset] = eDroughtPaletteData.gammaShiftColors[gammaIndex][MACRO1(gPlttBufferUnfaded[palOffset])];
+
palOffset++;
}
}
@@ -565,93 +651,100 @@ void sub_807CEBC(u8 a, u8 b, s8 c)
{
for (i = 0; i < 16; i++)
{
- gPlttBufferFaded[palOffset] = eWeatherPaletteData.data[c][MACRO1(gPlttBufferUnfaded[palOffset])];
+ gPlttBufferFaded[palOffset] = eDroughtPaletteData.gammaShiftColors[gammaIndex][MACRO1(gPlttBufferUnfaded[palOffset])];
palOffset++;
}
}
}
- r4++;
+
+ curPalIndex++;
}
}
else
{
- CpuFastCopy(gPlttBufferUnfaded + a * 16, gPlttBufferFaded + a * 16, b * 16 * sizeof(u16));
+ // No palette blending.
+ CpuFastCopy(gPlttBufferUnfaded + startPalIndex * 16, gPlttBufferFaded + startPalIndex * 16, numPalettes * 16 * sizeof(u16));
}
}
-void sub_807D1BC(u8 a1, u8 a2, s8 c, u8 d, u16 e)
+static void ApplyGammaShiftWithBlend(u8 startPalIndex, u8 numPalettes, s8 gammaIndex, u8 blendCoeff, u16 blendColor)
{
u16 palOffset;
- u16 r4;
+ u16 curPalIndex;
u16 i;
- struct RGBColor color = *(struct RGBColor *)&e;
- u8 r_ = color.r;
- u8 g_ = color.g;
- u8 b_ = color.b;
-
- palOffset = a1 * 16;
- a2 += a1;
- c = c - 1;
- r4 = a1;
- while (r4 < a2)
+ struct RGBColor color = *(struct RGBColor *)&blendColor;
+ u8 rBlend = color.r;
+ u8 gBlend = color.g;
+ u8 bBlend = color.b;
+
+ palOffset = startPalIndex * 16;
+ numPalettes += startPalIndex;
+ gammaIndex--;
+ curPalIndex = startPalIndex;
+
+ while (curPalIndex < numPalettes)
{
- if (gUnknown_030006DC[r4] == 0)
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
{
- BlendPalette(palOffset, 16, d, e);
+ // No gamma shift. Simply blend the colors.
+ BlendPalette(palOffset, 16, blendCoeff, blendColor);
palOffset += 16;
}
else
{
- u8 *r5;
+ u8 *gammaTable;
- if (gUnknown_030006DC[r4] == 1)
- r5 = gWeatherPtr->unknown_200[c];
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NORMAL)
+ gammaTable = gWeatherPtr->gammaShifts[gammaIndex];
else
- r5 = gWeatherPtr->unk460[c];
+ gammaTable = gWeatherPtr->altGammaShifts[gammaIndex];
for (i = 0; i < 16; i++)
{
- struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
- u8 r = r5[color.r];
- u8 g = r5[color.g];
- u8 b = r5[color.b];
-
- r += ((r_ - r) * d) >> 4;
- g += ((g_ - g) * d) >> 4;
- b += ((b_ - b) * d) >> 4;
+ struct RGBColor baseColor = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
+ u8 r = gammaTable[baseColor.r];
+ u8 g = gammaTable[baseColor.g];
+ u8 b = gammaTable[baseColor.b];
+
+ // Apply gamma shift and target blend color to the original color.
+ r += ((rBlend - r) * blendCoeff) >> 4;
+ g += ((gBlend - g) * blendCoeff) >> 4;
+ b += ((bBlend - b) * blendCoeff) >> 4;
gPlttBufferFaded[palOffset++] = (b << 10) | (g << 5) | r;
}
}
- r4++;
+
+ curPalIndex++;
}
}
-void sub_807D304(s8 a, u8 coeff, u16 c)
+void ApplyDroughtGammaShiftWithBlend(s8 gammaIndex, u8 blendCoeff, u16 blendColor)
{
struct RGBColor color;
- u8 r_;
- u8 g_;
- u8 b_;
- u16 r4;
+ u8 rBlend;
+ u8 gBlend;
+ u8 bBlend;
+ u16 curPalIndex;
u16 palOffset;
- u16 r12;
+ u16 i;
- a = -a - 1;
- color = *(struct RGBColor *)&c;
- r_ = color.r;
- g_ = color.g;
- b_ = color.b;
+ gammaIndex = -gammaIndex - 1;
+ color = *(struct RGBColor *)&blendColor;
+ rBlend = color.r;
+ gBlend = color.g;
+ bBlend = color.b;
palOffset = 0;
- for (r4 = 0; r4 < 32; r4++)
+ for (curPalIndex = 0; curPalIndex < 32; curPalIndex++)
{
- if (gUnknown_030006DC[r4] == 0)
+ if (sPaletteGammaTypes[curPalIndex] == GAMMA_NONE)
{
- BlendPalette(palOffset, 16, coeff, c);
+ // No gamma shift. Simply blend the colors.
+ BlendPalette(palOffset, 16, blendCoeff, blendColor);
palOffset += 16;
}
else
{
- for (r12 = 0; r12 < 16; r12++)
+ for (i = 0; i < 16; i++)
{
u32 offset;
struct RGBColor color1;
@@ -665,14 +758,14 @@ void sub_807D304(s8 a, u8 coeff, u16 c)
b1 = color1.b;
offset = ((b1 & 0x1E) << 7) | ((g1 & 0x1E) << 3) | ((r1 & 0x1E) >> 1);
- color2 = *(struct RGBColor *)&eWeatherPaletteData.data[a][offset];
+ color2 = *(struct RGBColor *)&eDroughtPaletteData.gammaShiftColors[gammaIndex][offset];
r2 = color2.r;
g2 = color2.g;
b2 = color2.b;
- r2 += ((r_ - r2) * coeff) >> 4;
- g2 += ((g_ - g2) * coeff) >> 4;
- b2 += ((b_ - b2) * coeff) >> 4;
+ r2 += ((rBlend - r2) * blendCoeff) >> 4;
+ g2 += ((gBlend - g2) * blendCoeff) >> 4;
+ b2 += ((bBlend - b2) * blendCoeff) >> 4;
gPlttBufferFaded[palOffset++] = (b2 << 10) | (g2 << 5) | r2;
}
@@ -680,33 +773,30 @@ void sub_807D304(s8 a, u8 coeff, u16 c)
}
}
-bool8 sub_807D574(u8);
-
-void sub_807D424(u8 a, u16 b)
+void ApplyFogBlend(u8 blendCoeff, u16 blendColor)
{
struct RGBColor color;
- u8 r_;
- u8 g_;
- u8 b_;
- u16 r4;
-
- BlendPalette(0, 0x100, a, b);
- color = *(struct RGBColor *)&b;
- r_ = color.r;
- g_ = color.g;
- b_ = color.b;
-
- r4 = 16;
- while (r4 < 32)
+ u8 rBlend;
+ u8 gBlend;
+ u8 bBlend;
+ u16 curPalIndex;
+
+ BlendPalette(0, 0x100, blendCoeff, blendColor);
+ color = *(struct RGBColor *)&blendColor;
+ rBlend = color.r;
+ gBlend = color.g;
+ bBlend = color.b;
+
+ for (curPalIndex = 16; curPalIndex < 32; curPalIndex++)
{
- if (sub_807D574(r4))
+ if (LightenSpritePaletteInFog(curPalIndex))
{
- u16 r12 = (r4 + 1) * 16;
- u16 r6 = r4 * 16;
+ u16 palEnd = (curPalIndex + 1) * 16;
+ u16 palOffset = curPalIndex * 16;
- while (r6 < r12)
+ while (palOffset < palEnd)
{
- struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[r6];
+ struct RGBColor color = *(struct RGBColor *)&gPlttBufferUnfaded[palOffset];
u8 r = color.r;
u8 g = color.g;
u8 b = color.b;
@@ -715,88 +805,88 @@ void sub_807D424(u8 a, u16 b)
g += ((31 - g) * 3) >> 2;
b += ((28 - b) * 3) >> 2;
- r += ((r_ - r) * a) >> 4;
- g += ((g_ - g) * a) >> 4;
- b += ((b_ - b) * a) >> 4;
+ r += ((rBlend - r) * blendCoeff) >> 4;
+ g += ((gBlend - g) * blendCoeff) >> 4;
+ b += ((bBlend - b) * blendCoeff) >> 4;
- gPlttBufferFaded[r6] = (b << 10) | (g << 5) | r;
- r6++;
+ gPlttBufferFaded[palOffset] = (b << 10) | (g << 5) | r;
+ palOffset++;
}
}
else
{
- BlendPalette(r4 * 16, 16, a, b);
+ BlendPalette(curPalIndex * 16, 16, blendCoeff, blendColor);
}
- r4++;
}
}
-void sub_807D540(u8 a)
+static void MarkFogSpritePalToLighten(u8 paletteIndex)
{
- if (gWeatherPtr->unknown_6FA < 6)
+ if (gWeatherPtr->lightenedFogSpritePalsCount < 6)
{
- gWeatherPtr->unknown_6F4[gWeatherPtr->unknown_6FA] = a;
- gWeatherPtr->unknown_6FA++;
+ gWeatherPtr->lightenedFogSpritePals[gWeatherPtr->lightenedFogSpritePalsCount] = paletteIndex;
+ gWeatherPtr->lightenedFogSpritePalsCount++;
}
}
-bool8 sub_807D574(u8 a)
+static bool8 LightenSpritePaletteInFog(u8 paletteIndex)
{
u16 i;
- for (i = 0; i < gWeatherPtr->unknown_6FA; i++)
+ for (i = 0; i < gWeatherPtr->lightenedFogSpritePalsCount; i++)
{
- if (gWeatherPtr->unknown_6F4[i] == a)
+ if (gWeatherPtr->lightenedFogSpritePals[i] == paletteIndex)
return TRUE;
}
+
return FALSE;
}
-void sub_807D5BC(s8 a)
+void sub_807D5BC(s8 gammaIndex)
{
- if (gWeatherPtr->unknown_6C6 == 3)
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE)
{
- sub_807CEBC(0, 32, a);
- gWeatherPtr->unknown_6C0 = a;
+ ApplyGammaShift(0, 32, gammaIndex);
+ gWeatherPtr->gammaIndex = gammaIndex;
}
}
-void sub_807D5F0(u8 a, u8 b, u8 c)
+void sub_807D5F0(u8 gammaIndex, u8 gammaTargetIndex, u8 gammaStepDelay)
{
- if (gWeatherPtr->unknown_6C6 == 3)
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE)
{
- gWeatherPtr->unknown_6C6 = 0;
- gWeatherPtr->unknown_6C0 = a;
- gWeatherPtr->unknown_6C1 = b;
- gWeatherPtr->unknown_6C3 = 0;
- gWeatherPtr->unknown_6C2 = c;
- sub_807D5BC(a);
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_CHANGING_WEATHER;
+ gWeatherPtr->gammaIndex = gammaIndex;
+ gWeatherPtr->gammaTargetIndex = gammaTargetIndex;
+ gWeatherPtr->gammaStepFrameCounter = 0;
+ gWeatherPtr->gammaStepDelay = gammaStepDelay;
+ sub_807D5BC(gammaIndex);
}
}
-void fade_screen(u8 a, u8 delay)
+void FadeScreen(u8 mode, u8 delay)
{
u32 fadeColor;
- u32 r1;
- u32 r2;
+ bool8 fadeOut;
+ bool8 useWeatherPal;
- switch (a)
+ switch (mode)
{
- case 0:
+ case FADE_FROM_BLACK:
fadeColor = 0;
- r1 = 0;
+ fadeOut = FALSE;
break;
- case 2:
+ case FADE_FROM_WHITE:
fadeColor = 0xFFFF;
- r1 = 0;
+ fadeOut = FALSE;
break;
- case 1:
+ case FADE_TO_BLACK:
fadeColor = 0;
- r1 = 1;
+ fadeOut = TRUE;
break;
- case 3:
+ case FADE_TO_WHITE:
fadeColor = 0xFFFF;
- r1 = 1;
+ fadeOut = TRUE;
break;
default:
return;
@@ -809,145 +899,149 @@ void fade_screen(u8 a, u8 delay)
case WEATHER_RAIN_HEAVY:
case WEATHER_SNOW:
case WEATHER_FOG_1:
- case WEATHER_DARK:
+ case WEATHER_SHADE:
case WEATHER_DROUGHT:
- r2 = 1;
+ useWeatherPal = TRUE;
break;
default:
- r2 = 0;
+ useWeatherPal = FALSE;
break;
}
- if (r1 != 0)
+ if (fadeOut)
{
- if (r2 != 0)
+ if (useWeatherPal)
CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400);
+
BeginNormalPaletteFade(0xFFFFFFFF, delay, 0, 16, fadeColor);
- gWeatherPtr->unknown_6C6 = 2;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
}
else
{
- gWeatherPtr->unknown_6C4 = fadeColor;
- if (r2 != 0)
- gWeatherPtr->unknown_6C7 = 0;
+ gWeatherPtr->fadeDestColor = fadeColor;
+ if (useWeatherPal)
+ gWeatherPtr->fadeScreenCounter = 0;
else
BeginNormalPaletteFade(0xFFFFFFFF, delay, 16, 0, fadeColor);
- gWeatherPtr->unknown_6C6 = 1;
+
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_IN;
gWeatherPtr->unknown_6CA = 1;
gWeatherPtr->unknown_6CB = 0;
Weather_SetBlendCoeffs(gWeatherPtr->currBlendEVA, gWeatherPtr->currBlendEVB);
- gWeatherPtr->unknown_6C8 = 1;
+ gWeatherPtr->readyForInit = TRUE;
}
}
-bool8 sub_807D770(void)
+bool8 IsWeatherNotFadingIn(void)
{
- return gWeatherPtr->unknown_6C6 ^ 1 ? TRUE : FALSE;
+ return (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_IN);
}
-void sub_807D78C(u8 a)
+void UpdateSpritePaletteWithWeather(u8 spritePaletteIndex)
{
- u16 r4 = 16 + a;
+ u16 paletteIndex = 16 + spritePaletteIndex;
u16 i;
- switch (gWeatherPtr->unknown_6C6)
+ switch (gWeatherPtr->palProcessingState)
{
- case 1:
+ case WEATHER_PAL_STATE_SCREEN_FADING_IN:
if (gWeatherPtr->unknown_6CA != 0)
{
if (gWeatherPtr->currWeather == WEATHER_FOG_1)
- sub_807D540(r4);
- r4 *= 16;
+ MarkFogSpritePalToLighten(paletteIndex);
+ paletteIndex *= 16;
for (i = 0; i < 16; i++)
- gPlttBufferFaded[r4 + i] = gWeatherPtr->unknown_6C4;
+ gPlttBufferFaded[paletteIndex + i] = gWeatherPtr->fadeDestColor;
}
break;
- case 2:
- r4 *= 16;
- CpuFastCopy(gPlttBufferFaded + r4, gPlttBufferUnfaded + r4, 32);
- BlendPalette(r4, 16, gPaletteFade.y, gPaletteFade.blendColor);
+ case WEATHER_PAL_STATE_SCREEN_FADING_OUT:
+ paletteIndex *= 16;
+ CpuFastCopy(gPlttBufferFaded + paletteIndex, gPlttBufferUnfaded + paletteIndex, 32);
+ BlendPalette(paletteIndex, 16, gPaletteFade.y, gPaletteFade.blendColor);
break;
+ // WEATHER_PAL_STATE_CHANGING_WEATHER
+ // WEATHER_PAL_STATE_CHANGING_IDLE
default:
if (gWeatherPtr->currWeather != WEATHER_FOG_1)
{
- sub_807CEBC(r4, 1, gWeatherPtr->unknown_6C0);
+ ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex);
}
else
{
- r4 *= 16;
- BlendPalette(r4, 16, 12, 0x73FC);
+ paletteIndex *= 16;
+ BlendPalette(paletteIndex, 16, 12, 0x73FC);
}
break;
}
}
-void sub_807D874(u8 a)
+void ApplyWeatherGammaShiftToPal(u8 paletteIndex)
{
- sub_807CEBC(a, 1, gWeatherPtr->unknown_6C0);
+ ApplyGammaShift(paletteIndex, 1, gWeatherPtr->gammaIndex);
}
u8 unref_sub_807D894(void)
{
- if (gWeatherPtr->unknown_6C6 == 1)
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_SCREEN_FADING_IN)
return gWeatherPtr->unknown_6CA;
else
return 0;
}
-void sub_807D8C0(const u16 *palette)
+void LoadCustomWeatherSpritePalette(const u16 *palette)
{
- LoadPalette(palette, 0x100 + gWeatherPtr->unknown_6D4 * 16, 32);
- sub_807D78C(gWeatherPtr->unknown_6D4);
+ LoadPalette(palette, 0x100 + gWeatherPtr->weatherPicSpritePalIndex * 16, 32);
+ UpdateSpritePaletteWithWeather(gWeatherPtr->weatherPicSpritePalIndex);
}
-void sub_807D8F0(u8 *a, u8 *b)
+static void LoadDroughtWeatherPalette(u8 *gammaIndexPtr, u8 *b)
{
- u8 r4 = *a;
+ u8 gammaIndex = *gammaIndexPtr;
u16 i;
- if (r4 < 7)
+ if (gammaIndex < 7)
{
- r4--;
- LZ77UnCompWram(sCompressedDroughtPalettes[r4], eWeatherPaletteData.data[r4]);
- if (r4 == 0)
+ gammaIndex--;
+ LZ77UnCompWram(sCompressedDroughtPalettes[gammaIndex], eDroughtPaletteData.gammaShiftColors[gammaIndex]);
+ if (gammaIndex == 0)
{
- eWeatherPaletteData.data[r4][0] = 0x421;
+ eDroughtPaletteData.gammaShiftColors[gammaIndex][0] = RGB(1, 1, 1);
for (i = 1; i < 0x1000; i++)
- eWeatherPaletteData.data[r4][i] += eWeatherPaletteData.data[r4][i - 1];
+ eDroughtPaletteData.gammaShiftColors[gammaIndex][i] += eDroughtPaletteData.gammaShiftColors[gammaIndex][i - 1];
}
else
{
for (i = 0; i < 0x1000; i++)
- eWeatherPaletteData.data[r4][i] += eWeatherPaletteData.data[r4 - 1][i];
+ eDroughtPaletteData.gammaShiftColors[gammaIndex][i] += eDroughtPaletteData.gammaShiftColors[gammaIndex - 1][i];
}
- if (++(*a) == 7)
+ if (++(*gammaIndexPtr) == 7)
{
- *a = 32;
+ *gammaIndexPtr = 32;
*b = 32;
}
}
}
-void sub_807D9A8(void)
+void ResetDroughtWeatherPaletteLoading(void)
{
- gWeatherPtr->unknown_74D = 1;
- gWeatherPtr->unknown_74E = 1;
+ gWeatherPtr->loadDroughtPalsIndex = 1;
+ gWeatherPtr->loadDroughtPalsOffset = 1;
}
-bool8 sub_807D9C8(void)
+bool8 LoadDroughtWeatherPalettes(void)
{
- if (gWeatherPtr->unknown_74D < 32)
+ if (gWeatherPtr->loadDroughtPalsIndex < 32)
{
- sub_807D8F0(&gWeatherPtr->unknown_74D, &gWeatherPtr->unknown_74E);
- if (gWeatherPtr->unknown_74D < 32)
+ LoadDroughtWeatherPalette(&gWeatherPtr->loadDroughtPalsIndex, &gWeatherPtr->loadDroughtPalsOffset);
+ if (gWeatherPtr->loadDroughtPalsIndex < 32)
return TRUE;
}
return FALSE;
}
-void sub_807DA04(s8 a)
+void sub_807DA04(s8 gammaIndex)
{
- sub_807D5BC(-a - 1);
+ sub_807D5BC(-gammaIndex - 1);
}
void sub_807DA14(void)
@@ -1009,8 +1103,8 @@ void Weather_SetTargetBlendCoeffs(u8 eva, u8 evb, int delay)
gWeatherPtr->targetBlendEVA = eva;
gWeatherPtr->targetBlendEVB = evb;
gWeatherPtr->blendDelay = delay;
- gWeatherPtr->unknown_739 = 0;
- gWeatherPtr->unknown_738 = 0;
+ gWeatherPtr->blendFrameCounter = 0;
+ gWeatherPtr->blendUpdateCounter = 0;
}
bool8 Weather_UpdateBlend(void)
@@ -1019,13 +1113,13 @@ bool8 Weather_UpdateBlend(void)
&& gWeatherPtr->currBlendEVB == gWeatherPtr->targetBlendEVB)
return TRUE;
- if (++gWeatherPtr->unknown_739 > gWeatherPtr->blendDelay)
+ if (++gWeatherPtr->blendFrameCounter > gWeatherPtr->blendDelay)
{
- gWeatherPtr->unknown_739 = 0;
- gWeatherPtr->unknown_738++;
+ gWeatherPtr->blendFrameCounter = 0;
+ gWeatherPtr->blendUpdateCounter++;
// Update currBlendEVA and currBlendEVB on alternate frames
- if (gWeatherPtr->unknown_738 & 1)
+ if (gWeatherPtr->blendUpdateCounter & 1)
{
if (gWeatherPtr->currBlendEVA < gWeatherPtr->targetBlendEVA)
gWeatherPtr->currBlendEVA++;
@@ -1055,48 +1149,48 @@ void unref_sub_807DCB4(u8 a)
switch (a)
{
case 1:
- SetWeather(1);
+ SetWeather(WEATHER_CLOUDS);
break;
case 2:
- SetWeather(2);
+ SetWeather(WEATHER_SUNNY);
break;
case 3:
- SetWeather(3);
+ SetWeather(WEATHER_RAIN_LIGHT);
break;
case 4:
- SetWeather(4);
+ SetWeather(WEATHER_SNOW);
break;
case 5:
- SetWeather(5);
+ SetWeather(WEATHER_RAIN_MED);
break;
case 6:
- SetWeather(6);
+ SetWeather(WEATHER_FOG_1);
break;
case 7:
- SetWeather(9);
+ SetWeather(WEATHER_FOG_2);
break;
case 8:
- SetWeather(7);
+ SetWeather(WEATHER_ASH);
break;
case 9:
- SetWeather(8);
+ SetWeather(WEATHER_SANDSTORM);
break;
case 10:
- SetWeather(11);
+ SetWeather(WEATHER_SHADE);
break;
}
}
-u8 weather_get_current(void)
+u8 GetCurrentWeather(void)
{
return gWeatherPtr->currWeather;
}
-void SetRainStrengthFromSoundEffect(u16 sndEff)
+void SetRainStrengthFromSoundEffect(u16 soundEffect)
{
- if (gWeatherPtr->unknown_6C6 != 2)
+ if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_SCREEN_FADING_OUT)
{
- switch (sndEff)
+ switch (soundEffect)
{
case SE_T_KOAME:
gWeatherPtr->rainStrength = 0;
@@ -1110,7 +1204,8 @@ void SetRainStrengthFromSoundEffect(u16 sndEff)
default:
return;
}
- PlaySE(sndEff);
+
+ PlaySE(soundEffect);
}
}
@@ -1134,29 +1229,171 @@ void PlayRainSoundEffect(void)
}
}
-u8 sub_807DDFC(void)
+u8 IsWeatherChangeComplete(void)
{
- return gWeatherPtr->unknown_6D3;
+ return gWeatherPtr->weatherChangeComplete;
}
-void sub_807DE10(void)
+void SetWeatherScreenFadeOut(void)
{
- gWeatherPtr->unknown_6C6 = 2;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_SCREEN_FADING_OUT;
}
void unref_sub_807DE24(void)
{
- gWeatherPtr->unknown_6C6 = 3;
+ gWeatherPtr->palProcessingState = WEATHER_PAL_STATE_IDLE;
}
-void sub_807DE38(u8 a)
+void PreservePaletteInWeather(u8 preservedPalIndex)
{
- CpuCopy16(gUnknown_083970C8, gUnknown_0202FF38, 32);
- gUnknown_0202FF38[a] = 0;
- gUnknown_030006DC = gUnknown_0202FF38;
+ CpuCopy16(sBasePaletteGammaTypes, gFieldEffectPaletteGammaTypes, 32);
+ gFieldEffectPaletteGammaTypes[preservedPalIndex] = GAMMA_NONE;
+ sPaletteGammaTypes = gFieldEffectPaletteGammaTypes;
}
-void sub_807DE68(void)
+void ResetPreservedPalettesInWeather(void)
{
- gUnknown_030006DC = gUnknown_083970C8;
+ sPaletteGammaTypes = sBasePaletteGammaTypes;
}
+
+#if DEBUG
+
+__attribute__((naked))
+u8 debug_sub_8085564(void)
+{
+ asm("\
+ push {lr}\n\
+ mov r2, #0x0\n\
+ ldr r0, ._375 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._370 @cond_branch\n\
+ ldr r1, ._375 + 4 @ gUnknown_Debug_20301FE\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0xf\n\
+ bne ._371 @cond_branch\n\
+ strb r2, [r1]\n\
+._371:\n\
+ mov r2, #0x1\n\
+._370:\n\
+ ldr r0, ._375 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._372 @cond_branch\n\
+ ldr r1, ._375 + 4 @ gUnknown_Debug_20301FE\n\
+ ldrb r0, [r1]\n\
+ cmp r0, #0\n\
+ beq ._373 @cond_branch\n\
+ sub r0, r0, #0x1\n\
+ b ._374\n\
+._376:\n\
+ .align 2, 0\n\
+._375:\n\
+ .word gMain\n\
+ .word gUnknown_Debug_20301FE\n\
+._373:\n\
+ mov r0, #0xe\n\
+._374:\n\
+ strb r0, [r1]\n\
+ mov r2, #0x1\n\
+._372:\n\
+ cmp r2, #0\n\
+ beq ._377 @cond_branch\n\
+ mov r0, #0x16\n\
+ mov r1, #0x1\n\
+ mov r2, #0x1c\n\
+ mov r3, #0x2\n\
+ bl Menu_BlankWindowRect\n\
+ ldr r1, ._380 @ gDebugText_Weather\n\
+ ldr r0, ._380 + 4 @ gUnknown_Debug_20301FE\n\
+ ldrb r0, [r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x17\n\
+ mov r2, #0x1\n\
+ bl Menu_PrintText\n\
+._377:\n\
+ ldr r0, ._380 + 8 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._378 @cond_branch\n\
+ mov r0, #0x0\n\
+ b ._379\n\
+._381:\n\
+ .align 2, 0\n\
+._380:\n\
+ .word gDebugText_Weather\n\
+ .word gUnknown_Debug_20301FE\n\
+ .word gMain\n\
+._378:\n\
+ ldr r0, ._382 @ gUnknown_Debug_20301FE\n\
+ ldrb r0, [r0]\n\
+ bl ChangeWeather\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+._379:\n\
+ pop {r1}\n\
+ bx r1\n\
+._383:\n\
+ .align 2, 0\n\
+._382:\n\
+ .word gUnknown_Debug_20301FE");
+}
+
+__attribute__((naked))
+u8 debug_sub_808560C(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r4, ._384 @ gUnknown_Debug_20301FE\n\
+ ldr r0, ._384 + 4 @ gWeather\n\
+ mov r1, #0xda\n\
+ lsl r1, r1, #0x3\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ strb r0, [r4]\n\
+ bl Menu_EraseScreen\n\
+ mov r0, #0x16\n\
+ mov r1, #0x1\n\
+ mov r2, #0x1c\n\
+ mov r3, #0x2\n\
+ bl Menu_BlankWindowRect\n\
+ ldr r1, ._384 + 8 @ gDebugText_Weather\n\
+ ldrb r0, [r4]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x17\n\
+ mov r2, #0x1\n\
+ bl Menu_PrintText\n\
+ ldr r1, ._384 + 12 @ gMenuCallback\n\
+ ldr r0, ._384 + 16 @ debug_sub_8085564\n\
+ str r0, [r1]\n\
+ mov r0, #0x0\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+._385:\n\
+ .align 2, 0\n\
+._384:\n\
+ .word gUnknown_Debug_20301FE\n\
+ .word gWeather\n\
+ .word gDebugText_Weather\n\
+ .word gMenuCallback\n\
+ .word debug_sub_8085564+1");
+}
+
+#endif
diff --git a/src/field/field_weather_effects.c b/src/field/field_weather_effects.c
index 5a59d6c2a..eff702f8c 100644
--- a/src/field/field_weather_effects.c
+++ b/src/field/field_weather_effects.c
@@ -74,10 +74,7 @@ static const struct SpriteTemplate sCloudSpriteTemplate =
.callback = sub_807E0F4,
};
-extern void sub_807D5BC(s8 a);
-extern void sub_807D8C0(const u16 *palette);
-extern void sub_807D9A8(void);
-extern bool8 sub_807D9C8(void);
+extern void sub_807D5BC(s8 gammaIndex);
extern void sub_807DA14(void);
extern void sub_807DA4C(void);
extern void Weather_SetTargetBlendCoeffs(u8 a, u8 b, int c);
@@ -91,8 +88,8 @@ extern void sub_807D5F0(u8 a, u8 b, u8 c);
void Clouds_InitVars(void)
{
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->weatherGfxLoaded = FALSE;
gWeatherPtr->initStep = 0;
if (gWeatherPtr->cloudSpritesCreated == FALSE)
@@ -159,8 +156,8 @@ bool8 Clouds_Finish(void)
void Weather2_InitVars(void)
{
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 20;
}
void Weather2_InitAll(void)
@@ -184,7 +181,7 @@ void CreateCloudSprites(void)
if (gWeatherPtr->cloudSpritesCreated == TRUE)
return;
LoadSpriteSheet(&sCloudSpriteSheet);
- sub_807D8C0(gUnknown_08397108);
+ LoadCustomWeatherSpritePalette(gUnknown_08397108);
for (i = 0; i < 3; i++)
{
u8 spriteId = CreateSprite(&sCloudSpriteTemplate, 0, 0, 0xFF);
@@ -236,8 +233,8 @@ void Drought_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 0;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 0;
}
void Drought_Main(void);
@@ -254,15 +251,15 @@ void Drought_Main(void)
switch (gWeatherPtr->initStep)
{
case 0:
- if (gWeatherPtr->unknown_6C6 != 0)
+ if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER)
gWeatherPtr->initStep++;
break;
case 1:
- sub_807D9A8();
+ ResetDroughtWeatherPaletteLoading();
gWeatherPtr->initStep++;
break;
case 2:
- if (sub_807D9C8() == FALSE)
+ if (LoadDroughtWeatherPalettes() == FALSE)
gWeatherPtr->initStep++;
break;
case 3:
@@ -368,8 +365,8 @@ void LightRain_InitVars(void)
gWeatherPtr->unknown_6DB = 8;
gWeatherPtr->unknown_6DC = 0;
gWeatherPtr->unknown_6D9 = 10;
- gWeatherPtr->unknown_6C1 = 3;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 3;
+ gWeatherPtr->gammaStepDelay = 20;
SetRainStrengthFromSoundEffect(SE_T_KOAME);
}
@@ -885,8 +882,8 @@ void Snow_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
- gWeatherPtr->unknown_6C1 = 3;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 3;
+ gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->unknown_6E5 = 16;
gWeatherPtr->unknown_6E0 = 0;
}
@@ -1074,8 +1071,8 @@ void MedRain_InitVars(void)
gWeatherPtr->unknown_6DB = 4;
gWeatherPtr->unknown_6DC = 0;
gWeatherPtr->unknown_6D9 = 16;
- gWeatherPtr->unknown_6C1 = 3;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 3;
+ gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
gWeatherPtr->unknown_6ED = 0;
SetRainStrengthFromSoundEffect(SE_T_AME);
@@ -1102,8 +1099,8 @@ void HeavyRain_InitVars(void)
gWeatherPtr->unknown_6DB = 4;
gWeatherPtr->unknown_6DC = 1;
gWeatherPtr->unknown_6D9 = 24;
- gWeatherPtr->unknown_6C1 = 3;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 3;
+ gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->weatherGfxLoaded = FALSE; // duplicate assignment
SetRainStrengthFromSoundEffect(SE_T_OOAME);
}
@@ -1139,7 +1136,7 @@ void Rain_Main(void)
gWeatherPtr->initStep++;
break;
case 3:
- if (gWeatherPtr->unknown_6C6 == 0)
+ if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_CHANGING_WEATHER)
break;
gWeatherPtr->initStep = 6;
break;
@@ -1213,7 +1210,7 @@ void Rain_Main(void)
gWeatherPtr->initStep++;
break;
case 14:
- if (gWeatherPtr->unknown_6C6 != 3)
+ if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_IDLE)
break;
gWeatherPtr->unknown_6EA = 1;
gWeatherPtr->initStep = 4;
@@ -1296,8 +1293,8 @@ void Fog1_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 20;
if (gWeatherPtr->fog1SpritesCreated == 0)
{
gWeatherPtr->unknown_6F0 = 0;
@@ -1446,8 +1443,8 @@ void Ash_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = FALSE;
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->unknown_6FE = 20;
if (!gWeatherPtr->ashSpritesCreated)
{
@@ -1634,8 +1631,8 @@ void Fog2_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = 0;
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 20;
gWeatherPtr->unknown_6F0 = 0;
gWeatherPtr->unknown_6F2 = 1;
if (gWeatherPtr->fog2SpritesCreated == 0)
@@ -1835,8 +1832,8 @@ void Sandstorm_InitVars(void)
{
gWeatherPtr->initStep = 0;
gWeatherPtr->weatherGfxLoaded = 0;
- gWeatherPtr->unknown_6C1 = 0;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 0;
+ gWeatherPtr->gammaStepDelay = 20;
if (gWeatherPtr->sandstormSprites1Created == 0)
{
gWeatherPtr->unknown_704 = gWeatherPtr->unknown_708 = 0;
@@ -2015,7 +2012,7 @@ void CreateSandstormSprites_1(void)
if (!gWeatherPtr->sandstormSprites1Created)
{
LoadSpriteSheet(&sSandstormSpriteSheet);
- sub_807D8C0(gUnknown_08397128);
+ LoadCustomWeatherSpritePalette(gUnknown_08397128);
for (i = 0; i < 20; i++)
{
u8 spriteId = CreateSpriteAtEnd(&sSandstormSpriteTemplate, 0, (i / 5) * 64, 1);
@@ -2113,26 +2110,26 @@ void SandstormSpriteCallback3(struct Sprite *sprite)
}
//------------------------------------------------------------------------------
-// Weather 11
+// Shade
//------------------------------------------------------------------------------
-void Weather11_InitVars(void)
+void Shade_InitVars(void)
{
gWeatherPtr->initStep = 0;
- gWeatherPtr->unknown_6C1 = 3;
- gWeatherPtr->unknown_6C2 = 20;
+ gWeatherPtr->gammaTargetIndex = 3;
+ gWeatherPtr->gammaStepDelay = 20;
}
-void Weather11_InitAll(void)
+void Shade_InitAll(void)
{
- Weather11_InitVars();
+ Shade_InitVars();
}
-void Weather11_Main(void)
+void Shade_Main(void)
{
}
-bool8 Weather11_Finish(void)
+bool8 Shade_Finish(void)
{
return FALSE;
}
@@ -2322,7 +2319,7 @@ void SetSav1WeatherFromCurrMapHeader(void)
void SetWeather(u32 weather)
{
SetSav1Weather(weather);
- DoWeatherEffect(GetSav1Weather());
+ ChangeWeather(GetSav1Weather());
}
void SetWeather_Unused(u32 weather)
@@ -2333,7 +2330,7 @@ void SetWeather_Unused(u32 weather)
void DoCurrentWeather(void)
{
- DoWeatherEffect(GetSav1Weather());
+ ChangeWeather(GetSav1Weather());
}
void sub_8080750(void)
@@ -2380,5 +2377,5 @@ void UpdateRainCounter(u8 newWeather, u8 oldWeather)
{
if (newWeather != oldWeather
&& (newWeather == WEATHER_RAIN_LIGHT || newWeather == WEATHER_RAIN_MED))
- IncrementGameStat(0x28);
+ IncrementGameStat(GAME_STAT_GOT_RAINED_ON);
}
diff --git a/src/field/fieldmap.c b/src/field/fieldmap.c
index 7a31ae720..7383bb174 100644
--- a/src/field/fieldmap.c
+++ b/src/field/fieldmap.c
@@ -86,18 +86,20 @@ void map_copy_with_padding(u16 *map, u16 width, u16 height)
void sub_80560AC(struct MapHeader *mapHeader)
{
+ // BUG: This results in a null pointer dereference when mapHeader->connections
+ // is NULL, causing count to be assigned a garbage value. This garbage value
+ // just so happens to have the most significant bit set, so it is treated as
+ // negative and the loop below thankfully never executes in this scenario.
+ int count = mapHeader->connections->count;
+ struct MapConnection *connection = mapHeader->connections->connections;
int i;
- struct MapConnection *connection;
- struct MapHeader *cMap;
- u32 offset;
- int count;
- count = mapHeader->connections->count;
- connection = mapHeader->connections->connections;
+
gUnknown_0202E850 = sDummyConnectionFlags;
for (i = 0; i < count; i++, connection++)
{
- cMap = mapconnection_get_mapheader(connection);
- offset = connection->offset;
+ struct MapHeader *cMap = mapconnection_get_mapheader(connection);
+ u32 offset = connection->offset;
+
switch (connection->direction)
{
case CONNECTION_SOUTH:
diff --git a/src/field/fldeff_cut.c b/src/field/fldeff_cut.c
index e4328acfc..5d39b87a9 100644
--- a/src/field/fldeff_cut.c
+++ b/src/field/fldeff_cut.c
@@ -72,6 +72,115 @@ static const struct SpriteTemplate gSpriteTemplate_CutGrass =
.callback = sub_80A2A48,
};
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80AFEE4()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, r8\n"
+ " push {r7}\n"
+ " mov r0, #0x52\n"
+ " bl npc_before_player_of_type\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._1 @cond_branch\n"
+ " ldr r1, ._3 @ gLastFieldPokeMenuOpened\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl sub_80A2634\n"
+ " b ._8\n"
+ "._4:\n"
+ " .align 2, 0\n"
+ "._3:\n"
+ " .word gLastFieldPokeMenuOpened\n"
+ "._1:\n"
+ " ldr r4, ._9 @ gUnknown_0203923C\n"
+ " add r1, r4, #2\n"
+ " add r0, r4, #0\n"
+ " bl PlayerGetDestCoords\n"
+ " mov r7, #0x0\n"
+ " mov r8, r4\n"
+ "._12:\n"
+ " ldr r1, ._9 + 4 @ 0xffff\n"
+ " add r0, r7, r1\n"
+ " mov r2, r8\n"
+ " ldrh r2, [r2, #0x2]\n"
+ " add r0, r0, r2\n"
+ " mov r6, #0x0\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r5, r0, #0x10\n"
+ "._11:\n"
+ " ldr r1, ._9 + 4 @ 0xffff\n"
+ " add r0, r6, r1\n"
+ " mov r2, r8\n"
+ " ldrh r2, [r2]\n"
+ " add r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r4, r0, #0x10\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " bl MapGridGetZCoordAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r2, r8\n"
+ " mov r1, #0x4\n"
+ " ldsb r1, [r2, r1]\n"
+ " cmp r0, r1\n"
+ " bne ._7 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " add r1, r5, #0\n"
+ " bl MapGridGetMetatileBehaviorAt\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " add r0, r4, #0\n"
+ " bl MetatileBehavior_IsPokeGrass\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " beq ._6 @cond_branch\n"
+ " add r0, r4, #0\n"
+ " bl MetatileBehavior_IsAshGrass\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x1\n"
+ " bne ._7 @cond_branch\n"
+ "._6:\n"
+ " ldr r1, ._9 + 8 @ gLastFieldPokeMenuOpened\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ " bl sub_80A25E8\n"
+ " b ._8\n"
+ "._10:\n"
+ " .align 2, 0\n"
+ "._9:\n"
+ " .word gUnknown_0203923C\n"
+ " .word 0xffff\n"
+ " .word gLastFieldPokeMenuOpened\n"
+ "._7:\n"
+ " add r0, r6, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " cmp r6, #0x2\n"
+ " bls ._11 @cond_branch\n"
+ " add r0, r7, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " cmp r7, #0x2\n"
+ " bls ._12 @cond_branch\n"
+ " bl ScriptContext2_Disable\n"
+ "._8:\n"
+ " pop {r3}\n"
+ " mov r8, r3\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+#endif
+
bool8 SetUpFieldMove_Cut(void)
{
s16 x, y;
@@ -122,7 +231,7 @@ bool8 FldEff_UseCutOnGrass(void)
gTasks[taskId].data[8] = (u32)sub_80A2684 >> 16;
gTasks[taskId].data[9] = (u32)sub_80A2684;
- IncrementGameStat(0x12);
+ IncrementGameStat(GAME_STAT_USED_CUT);
return FALSE;
}
@@ -138,7 +247,7 @@ bool8 FldEff_UseCutOnTree(void)
gTasks[taskId].data[8] = (u32)sub_80A2B00 >> 16;
gTasks[taskId].data[9] = (u32)sub_80A2B00;
- IncrementGameStat(0x12);
+ IncrementGameStat(GAME_STAT_USED_CUT);
return FALSE;
}
diff --git a/src/field/fldeff_escalator.c b/src/field/fldeff_escalator.c
new file mode 100644
index 000000000..981233480
--- /dev/null
+++ b/src/field/fldeff_escalator.c
@@ -0,0 +1,132 @@
+#include "global.h"
+#include "task.h"
+#include "fieldmap.h"
+#include "field_camera.h"
+#include "field_player_avatar.h"
+
+extern u8 gUnknown_02038731;
+
+void sub_80B45B4(u8 taskId, const s16 *list, u16 c)
+{
+ s16 r5 = gTasks[taskId].data[4] - 1;
+ s16 r3 = gTasks[taskId].data[5] - 1;
+ s16 r4 = gTasks[taskId].data[1];
+ s16 y;
+ s16 x;
+
+ if (gTasks[taskId].data[2] == 0)
+ {
+ for (y = 0; y < 3; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
+
+ if (list[r4] == metatileId)
+ {
+ if (r4 != 2)
+ MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[r4 + 1]);
+ else
+ MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[0]);
+ }
+ }
+ }
+ }
+ else
+ {
+ for (y = 0; y < 3; y++)
+ {
+ for (x = 0; x < 3; x++)
+ {
+ s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
+
+ if (list[2 - r4] == metatileId)
+ {
+ if (r4 != 2)
+ MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[1 - r4]);
+ else
+ MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[2]);
+ }
+ }
+ }
+ }
+}
+
+const u16 gUnknown_083CC714[] = {0x284, 0x282, 0x280};
+const u16 gUnknown_083CC71A[] = {0x285, 0x283, 0x281};
+const u16 gUnknown_083CC720[] = {0x28C, 0x28A, 0x288};
+const u16 gUnknown_083CC726[] = {0x28D, 0x28B, 0x289};
+const u16 gUnknown_083CC72C[] = {0x2A0, 0x2A2, 0x2A4};
+const u16 gUnknown_083CC732[] = {0x2A1, 0x2A3, 0x2A5};
+const u16 gUnknown_083CC738[] = {0x2A8, 0x2AA, 0x2AC};
+
+void sub_80B4710(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ data[3] = 1;
+
+ switch (data[0])
+ {
+ case 0:
+ sub_80B45B4(taskId, gUnknown_083CC714, 0);
+ break;
+ case 1:
+ sub_80B45B4(taskId, gUnknown_083CC71A, 0);
+ break;
+ case 2:
+ sub_80B45B4(taskId, gUnknown_083CC720, 0xC00);
+ break;
+ case 3:
+ sub_80B45B4(taskId, gUnknown_083CC726, 0);
+ break;
+ case 4:
+ sub_80B45B4(taskId, gUnknown_083CC72C, 0xC00);
+ break;
+ case 5:
+ sub_80B45B4(taskId, gUnknown_083CC732, 0);
+ break;
+ case 6:
+ sub_80B45B4(taskId, gUnknown_083CC738, 0);
+ break;
+ }
+
+ data[0] = (data[0] + 1) & 7;
+ if (!data[0])
+ {
+ DrawWholeMapView();
+ data[1] = (data[1] + 1) % 3;
+ data[3] = 0;
+ }
+}
+
+u8 sub_80B47D8(u16 var)
+{
+ u8 taskId = CreateTask(sub_80B4710, 0);
+ s16 *data = gTasks[taskId].data;
+
+ PlayerGetDestCoords(&data[4], &data[5]);
+ data[0] = 0;
+ data[1] = 0;
+ data[2] = var;
+ sub_80B4710(taskId);
+ return taskId;
+}
+
+void sub_80B4824(u8 var)
+{
+ gUnknown_02038731 = sub_80B47D8(var);
+}
+
+void sub_80B483C(void)
+{
+ DestroyTask(gUnknown_02038731);
+}
+
+bool8 sub_80B4850(void)
+{
+ if (gTasks[gUnknown_02038731].data[3] == 0 && gTasks[gUnknown_02038731].data[1] == 2)
+ return FALSE;
+ else
+ return TRUE;
+}
diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c
index 22f170184..8c0f09bd9 100644
--- a/src/field/fldeff_flash.c
+++ b/src/field/fldeff_flash.c
@@ -71,6 +71,36 @@ static const u16 gUnknown_083F809C[] = INCBIN_U16("graphics/misc/83F809C.gbapal"
static const u16 gCaveTransitionTilemap[] = INCBIN_U16("graphics/misc/cave_transition_map.bin.lz");
static const u8 gCaveTransitionTiles[] = INCBIN_U8("graphics/misc/cave_transition.4bpp.lz");
+#if DEBUG
+__attribute__((naked))
+void debug_sub_8122080(void)
+{
+ asm("\
+ push {lr}\n\
+ ldr r0, ._4 @ gMapHeader\n\
+ ldrb r0, [r0, #0x15]\n\
+ cmp r0, #0x1\n\
+ bne ._2 @cond_branch\n\
+ ldr r0, ._4 + 4 @ 0x828\n\
+ bl FlagGet\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._2 @cond_branch\n\
+ bl sub_810CBFC\n\
+ b ._3\n\
+._5:\n\
+ .align 2, 0\n\
+._4:\n\
+ .word gMapHeader\n\
+ .word 0x828\n\
+._2:\n\
+ bl ScriptContext2_Disable\n\
+._3:\n\
+ pop {r0}\n\
+ bx r0");
+}
+#endif
+
bool8 SetUpFieldMove_Flash(void)
{
if (gMapHeader.cave == TRUE && !FlagGet(FLAG_SYS_USE_FLASH))
diff --git a/src/field/fldeff_poison.c b/src/field/fldeff_poison.c
index b0052d59d..52afc2516 100644
--- a/src/field/fldeff_poison.c
+++ b/src/field/fldeff_poison.c
@@ -32,13 +32,13 @@ static void Task_FieldPoisonEffect(u8 taskId)
REG_MOSAIC = (data[1] << 4) | data[1];
}
-void DoFieldPoisonEffect(void)
+void FldeffPoison_Start(void)
{
PlaySE(SE_DOKU);
CreateTask(Task_FieldPoisonEffect, 80);
}
-bool32 FieldPoisonEffectIsRunning(void)
+bool32 FldeffPoison_IsActive(void)
{
return FuncIsActiveTask(Task_FieldPoisonEffect);
}
diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c
index bf8e98403..0e91bb55c 100644
--- a/src/field/fldeff_secretpower.c
+++ b/src/field/fldeff_secretpower.c
@@ -243,6 +243,102 @@ void sub_80C6280(void)
}
}
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_80D93F4()
+{
+ asm("\
+ push {r4, lr}\n\
+ bl sub_80BB63C\n\
+ ldr r0, ._98 @ gSpecialVar_Result\n\
+ ldrh r0, [r0]\n\
+ cmp r0, #0x1\n\
+ beq ._95 @cond_branch\n\
+ bl player_get_direction_lower_nybble\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x2\n\
+ beq ._96 @cond_branch\n\
+._95:\n\
+ bl ScriptContext2_Disable\n\
+ b ._109\n\
+._99:\n\
+ .align 2, 0\n\
+._98:\n\
+ .word gSpecialVar_Result\n\
+._96:\n\
+ ldr r4, ._102 @ gUnknown_0203923C\n\
+ add r1, r4, #2\n\
+ add r0, r4, #0\n\
+ bl GetXYCoordsOneStepInFrontOfPlayer\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r4, r1]\n\
+ mov r2, #0x2\n\
+ ldsh r1, [r4, r2]\n\
+ bl MapGridGetMetatileBehaviorAt\n\
+ lsl r0, r0, #0x18\n\
+ lsr r4, r0, #0x18\n\
+ add r0, r4, #0\n\
+ bl MetatileBehavior_IsSecretBaseCave\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bne ._100 @cond_branch\n\
+ bl sub_80C6264\n\
+ ldr r1, ._102 + 4 @ gLastFieldPokeMenuOpened\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ bl sub_80C639C\n\
+ b ._109\n\
+._103:\n\
+ .align 2, 0\n\
+._102:\n\
+ .word gUnknown_0203923C\n\
+ .word gLastFieldPokeMenuOpened\n\
+._100:\n\
+ add r0, r4, #0\n\
+ bl MetatileBehavior_IsSecretBaseTree\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bne ._104 @cond_branch\n\
+ bl sub_80C6264\n\
+ ldr r1, ._106 @ gLastFieldPokeMenuOpened\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ bl sub_80C64A8\n\
+ b ._109\n\
+._107:\n\
+ .align 2, 0\n\
+._106:\n\
+ .word gLastFieldPokeMenuOpened\n\
+._104:\n\
+ add r0, r4, #0\n\
+ bl MetatileBehavior_IsSecretBaseShrub\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bne ._108 @cond_branch\n\
+ bl sub_80C6264\n\
+ ldr r1, ._110 @ gLastFieldPokeMenuOpened\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ bl sub_80C660C\n\
+ b ._109\n\
+._111:\n\
+ .align 2, 0\n\
+._110:\n\
+ .word gLastFieldPokeMenuOpened\n\
+._108:\n\
+ bl ScriptContext2_Disable\n\
+._109:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0");
+}
+#endif
+
bool8 SetUpFieldMove_SecretPower(void)
{
u8 behavior;
diff --git a/src/field/fldeff_softboiled.c b/src/field/fldeff_softboiled.c
index a574232a8..3c64ec520 100644
--- a/src/field/fldeff_softboiled.c
+++ b/src/field/fldeff_softboiled.c
@@ -126,7 +126,7 @@ static void sub_8133E74(u8 taskId) {
return;
}
- MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
+ Menu_EraseWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
PrintPartyMenuPromptText(3, 0);
gTasks[taskId].func = HandlePartyMenuSwitchPokemonInput;
}
@@ -142,7 +142,7 @@ static void sub_8133EF8(void) {
sub_806CCE4();
EWRAM_1B000_2.unk261 = 2;
DestroySprite(&gSprites[EWRAM_1000.unk1]);
- MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
+ Menu_EraseWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
PrintPartyMenuPromptText(0, 0);
SwitchTaskToFollowupFunc(EWRAM_1000.unk0);
}
diff --git a/src/field/fldeff_strength.c b/src/field/fldeff_strength.c
index 565ac1651..9f9cd4013 100644
--- a/src/field/fldeff_strength.c
+++ b/src/field/fldeff_strength.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "constants/map_objects.h"
#include "braille_puzzles.h"
#include "field_effect.h"
#include "party_menu.h"
@@ -20,6 +21,28 @@ extern void (*gUnknown_03005CE4)(void);
extern u8 S_UseStrength[];
+#if DEBUG
+void debug_sub_8130318(void)
+{
+ if (ShouldDoBrailleStrengthEffect())
+ {
+ gLastFieldPokeMenuOpened = 0;
+ gSpecialVar_Result = 0;
+ sub_811AA38();
+ }
+ else if (npc_before_player_of_type(MAP_OBJ_GFX_PUSHABLE_BOULDER) == TRUE)
+ {
+ gLastFieldPokeMenuOpened = 0;
+ gSpecialVar_Result = 0;
+ sub_811AA18();
+ }
+ else
+ {
+ ScriptContext2_Disable();
+ }
+}
+#endif
+
bool8 SetUpFieldMove_Strength(void)
{
if (ShouldDoBrailleStrengthEffect())
diff --git a/src/field/item.c b/src/field/item.c
index 66d7d65df..6ff7a7cbe 100644
--- a/src/field/item.c
+++ b/src/field/item.c
@@ -571,7 +571,7 @@ void SwapRegisteredBike(void)
static u16 SanitizeItemId(u16 itemId)
{
- if (itemId > 0x15C)
+ if (itemId >= ARRAY_COUNT(gItems))
return 0;
else
return itemId;
diff --git a/src/field/item_menu.c b/src/field/item_menu.c
index e9b8b24d3..ae1465fbd 100644
--- a/src/field/item_menu.c
+++ b/src/field/item_menu.c
@@ -33,13 +33,13 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
+#include "menu_helpers.h"
#include "ewram.h"
// External stuff
extern void gpu_pal_allocator_reset__manage_upper_four(void);
-extern void sub_80F9020(void);
-extern void sub_80F9988();
+extern void SetVerticalScrollIndicatorPriority();
extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16);
extern void PauseVerticalScrollIndicator();
extern u8 sub_80F9284(void);
@@ -47,10 +47,10 @@ extern void sub_808B5B4();
extern u8 sub_80F92F4();
extern void sub_80C9C7C(u8);
extern void pal_fill_black(void);
-extern bool8 sub_807D770(void);
+extern bool8 IsWeatherNotFadingIn(void);
extern u8 sub_80F931C();
extern void sub_808A3F8(u8);
-extern void sub_80B3050(void);
+extern void Shop_FadeReturnToMartMenu(void);
extern void sub_80546B8(u8);
extern void sub_804E990(u8);
extern void sub_802E424(u8);
@@ -158,6 +158,9 @@ extern struct PocketScrollState gBagPocketScrollStates[];
extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
extern const u8 Event_NoRegisteredItem[];
+// TODO: decompile the debug code so we can use static in this file
+#define static
+
extern const struct CompressedSpriteSheet sMaleBagSpriteSheet;
extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet;
extern const struct CompressedSpritePalette sBagSpritePalette;
@@ -286,6 +289,24 @@ static void sub_80A6618(u8);
const struct YesNoFuncTable gUnknown_083C16FC = {sub_80A65AC, sub_80A6618};
+#if DEBUG
+const struct {u16 item; u8 unk;} gUnknown_Debug_083EBC68[12+48] =
+{
+ {ITEM_POKE_BALL, 10},
+ {ITEM_ULTRA_BALL, 15},
+ {ITEM_GREAT_BALL, 20},
+ {ITEM_MASTER_BALL, 25},
+ {ITEM_ACRO_BIKE, 1 },
+ {ITEM_OLD_ROD, 1 },
+ {ITEM_GOOD_ROD, 1 },
+ {ITEM_SUPER_ROD, 1 },
+ {ITEM_POKEBLOCK_CASE, 1 },
+ {ITEM_WAILMER_PAIL, 1 },
+ {ITEM_ITEMFINDER, 1 },
+ {ITEM_NONE, 1 },
+};
+#endif
+
void sub_80A34E8(void);
static bool8 LoadBagGraphicsMultistep(void);
static void sub_80A362C(void);
@@ -368,22 +389,394 @@ static void sub_80A3134(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
-
- {
- const void *src = gBGTilemapBuffers[1];
- void *dst = (void *)(VRAM + 0x2000);
-
- DmaCopy16(3, src, dst, 0x800);
- }
-
- {
- const void *src = gBGTilemapBuffers[2];
- void *dst = (void *)(VRAM + 0x6000);
-
- DmaCopy16(3, src, dst, 0x800);
- }
+ DmaCopy16Defvars(3, gBGTilemapBuffers[1], (void *)(VRAM + 0x2000), 0x800);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(VRAM + 0x6000), 0x800);
}
+#if DEBUG
+__attribute__((naked))
+static bool8 SetupBagMultistep(void)
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r0, ._5 @ gMain\n\
+ ldr r1, ._5 + 4 @ 0x43c\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x10\n\
+ bls ._3 @cond_branch\n\
+ b ._66\n\
+._3:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._5 + 8 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._6:\n\
+ .align 2, 0\n\
+._5:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+ .word ._7\n\
+._7:\n\
+ .word ._8\n\
+ .word ._9\n\
+ .word ._10\n\
+ .word ._11\n\
+ .word ._12\n\
+ .word ._13\n\
+ .word ._14\n\
+ .word ._15\n\
+ .word ._16\n\
+ .word ._17\n\
+ .word ._18\n\
+ .word ._19\n\
+ .word ._20\n\
+ .word ._21\n\
+ .word ._22\n\
+ .word ._23\n\
+ .word ._24\n\
+._8:\n\
+ bl ClearVideoCallbacks\n\
+ bl sub_80A34E8\n\
+ b ._61\n\
+._9:\n\
+ bl ScanlineEffect_Stop\n\
+ ldr r1, ._27 @ gMain\n\
+ ldr r0, ._27 + 4 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._28:\n\
+ .align 2, 0\n\
+._27:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._10:\n\
+ bl gpu_pal_allocator_reset__manage_upper_four\n\
+ b ._61\n\
+._11:\n\
+ bl ClearBGTilemapBuffers\n\
+ ldr r0, ._31 @ \n\
+ ldr r1, ._31 + 4 @ \n\
+ add r0, r0, r1\n\
+ mov r1, #0x0\n\
+ strb r1, [r0]\n\
+ b ._61\n\
+._32:\n\
+ .align 2, 0\n\
+._31:\n\
+ .word +0x2000000\n\
+ .word 0x1ffff\n\
+._12:\n\
+ bl ResetPaletteFade\n\
+ ldr r2, ._34 @ gPaletteFade\n\
+ ldrb r0, [r2, #0x8]\n\
+ mov r1, #0x80\n\
+ orr r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+ ldr r1, ._34 + 4 @ gMain\n\
+ ldr r0, ._34 + 8 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._35:\n\
+ .align 2, 0\n\
+._34:\n\
+ .word gPaletteFade\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._13:\n\
+ bl ResetSpriteData\n\
+ b ._61\n\
+._14:\n\
+ bl LoadBagGraphicsMultistep\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._37 @cond_branch\n\
+ b ._66\n\
+._37:\n\
+ ldr r1, ._40 @ gMain\n\
+ ldr r0, ._40 + 4 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._41:\n\
+ .align 2, 0\n\
+._40:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._15:\n\
+ ldr r0, ._43 @ gWindowTemplate_81E6DFC\n\
+ bl Text_LoadWindowTemplate\n\
+ b ._61\n\
+._44:\n\
+ .align 2, 0\n\
+._43:\n\
+ .word gWindowTemplate_81E6DFC\n\
+._16:\n\
+ ldr r0, ._46 @ gWindowTemplate_81E6DFC\n\
+ bl MultistepInitMenuWindowBegin\n\
+ ldr r1, ._46 + 4 @ gMain\n\
+ ldr r0, ._46 + 8 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._47:\n\
+ .align 2, 0\n\
+._46:\n\
+ .word gWindowTemplate_81E6DFC\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._17:\n\
+ bl MultistepInitMenuWindowContinue\n\
+ cmp r0, #0\n\
+ bne ._48 @cond_branch\n\
+ b ._66\n\
+._48:\n\
+ b ._61\n\
+._18:\n\
+ bl ClearVerticalScrollIndicatorPalettes\n\
+ bl LoadScrollIndicatorPalette\n\
+ mov r0, #0x0\n\
+ mov r1, #0xac\n\
+ mov r2, #0xc\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x1\n\
+ mov r1, #0xac\n\
+ mov r2, #0x94\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x2\n\
+ mov r1, #0x1c\n\
+ mov r2, #0x58\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x3\n\
+ mov r1, #0x64\n\
+ mov r2, #0x58\n\
+ bl CreateVerticalScrollIndicators\n\
+ mov r0, #0x0\n\
+ mov r1, #0x2\n\
+ bl SetVerticalScrollIndicatorPriority\n\
+ mov r0, #0x1\n\
+ mov r1, #0x2\n\
+ bl SetVerticalScrollIndicatorPriority\n\
+ mov r0, #0x2\n\
+ mov r1, #0x2\n\
+ bl SetVerticalScrollIndicatorPriority\n\
+ mov r0, #0x3\n\
+ mov r1, #0x2\n\
+ bl SetVerticalScrollIndicatorPriority\n\
+ ldr r0, ._53 @ sReturnLocation\n\
+ ldrb r0, [r0]\n\
+ sub r0, r0, #0x4\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bhi ._51 @cond_branch\n\
+ mov r0, #0x2\n\
+ mov r1, #0x1\n\
+ bl SetVerticalScrollIndicators\n\
+ mov r0, #0x3\n\
+ mov r1, #0x1\n\
+ bl SetVerticalScrollIndicators\n\
+._51:\n\
+ ldr r1, ._53 + 4 @ gMain\n\
+ ldr r0, ._53 + 8 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._54:\n\
+ .align 2, 0\n\
+._53:\n\
+ .word sReturnLocation\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._19:\n\
+ ldr r1, ._56 @ gUnknown_0203855A\n\
+ mov r0, #0x10\n\
+ strb r0, [r1]\n\
+ ldr r4, ._56 + 4 @ gBGTilemapBuffers\n\
+ ldr r5, ._56 + 8 @ sCurrentBagPocket\n\
+ ldrb r1, [r5]\n\
+ add r1, r1, #0x1\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ add r0, r4, #0\n\
+ bl sub_80A39B8\n\
+ ldrb r1, [r5]\n\
+ add r0, r4, #0\n\
+ bl DrawPocketIndicatorDots\n\
+ bl UpdateAllBagPockets\n\
+ ldr r4, ._56 + 12 @ gBagPockets\n\
+ ldr r0, [r4, #0x10]\n\
+ ldr r1, [r4, #0x14]\n\
+ bl SortItemSlots\n\
+ ldr r0, [r4, #0x18]\n\
+ ldr r1, [r4, #0x1c]\n\
+ bl SortItemSlots\n\
+ bl sub_80A3D40\n\
+ ldr r1, ._56 + 16 @ gCurrentBagPocketItemSlots\n\
+ mov r0, #0x0\n\
+ ldsb r0, [r5, r0]\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r4\n\
+ ldr r0, [r0]\n\
+ str r0, [r1]\n\
+ bl sub_80A362C\n\
+ b ._61\n\
+._57:\n\
+ .align 2, 0\n\
+._56:\n\
+ .word gUnknown_0203855A\n\
+ .word gBGTilemapBuffers+0x1000\n\
+ .word sCurrentBagPocket\n\
+ .word gBagPockets\n\
+ .word gCurrentBagPocketItemSlots\n\
+._20:\n\
+ ldr r0, ._59 @ 0xffff\n\
+ mov r1, #0x0\n\
+ mov r2, #0x7\n\
+ bl sub_80A48E8\n\
+ ldr r1, ._59 + 4 @ gBagPocketScrollStates\n\
+ ldr r4, ._59 + 8 @ sCurrentBagPocket\n\
+ mov r0, #0x0\n\
+ ldsb r0, [r4, r0]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0, #0x1]\n\
+ ldrb r0, [r0]\n\
+ add r1, r1, r0\n\
+ ldr r0, ._59 + 12 @ gCurrentBagPocketItemSlots\n\
+ ldr r0, [r0]\n\
+ lsl r1, r1, #0x2\n\
+ add r1, r1, r0\n\
+ mov r2, #0x0\n\
+ ldsh r0, [r1, r2]\n\
+ bl ItemListMenu_InitDescription\n\
+ bl ItemListMenu_InitMenu\n\
+ ldr r1, ._59 + 16 @ gUnknown_0203855B\n\
+ ldrb r0, [r4]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ ldr r1, ._59 + 20 @ gUnknown_0203855C\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ ldr r1, ._59 + 24 @ gMain\n\
+ ldr r0, ._59 + 28 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._60:\n\
+ .align 2, 0\n\
+._59:\n\
+ .word 0xffff\n\
+ .word gBagPocketScrollStates\n\
+ .word sCurrentBagPocket\n\
+ .word gCurrentBagPocketItemSlots\n\
+ .word gUnknown_0203855B\n\
+ .word gUnknown_0203855C\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._21:\n\
+ bl CreateBagSprite\n\
+ mov r0, #0x0\n\
+ bl CreateBagPokeballSprite\n\
+ bl sub_80A3740\n\
+ b ._61\n\
+._22:\n\
+ ldr r3, ._63 @ 0x4000208\n\
+ ldrh r2, [r3]\n\
+ mov r0, #0x0\n\
+ strh r0, [r3]\n\
+ ldr r4, ._63 + 4 @ 0x4000200\n\
+ ldrh r0, [r4]\n\
+ mov r1, #0x1\n\
+ orr r0, r0, r1\n\
+ strh r0, [r4]\n\
+ strh r2, [r3]\n\
+ ldr r2, ._63 + 8 @ 0x4000004\n\
+ ldrh r0, [r2]\n\
+ mov r1, #0x8\n\
+ orr r0, r0, r1\n\
+ strh r0, [r2]\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r2, ._63 + 12 @ gPaletteFade\n\
+ ldrb r1, [r2, #0x8]\n\
+ mov r0, #0x7f\n\
+ and r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+ ldr r1, ._63 + 16 @ gMain\n\
+ ldr r0, ._63 + 20 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._62\n\
+._64:\n\
+ .align 2, 0\n\
+._63:\n\
+ .word 0x4000208\n\
+ .word 0x4000200\n\
+ .word 0x4000004\n\
+ .word gPaletteFade\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._23:\n\
+ bl sub_8055870\n\
+ cmp r0, #0x1\n\
+ beq ._66 @cond_branch\n\
+._61:\n\
+ ldr r1, ._67 @ gMain\n\
+ ldr r2, ._67 + 4 @ 0x43c\n\
+ add r1, r1, r2\n\
+._62:\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ b ._66\n\
+._68:\n\
+ .align 2, 0\n\
+._67:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._24:\n\
+ ldr r0, ._71 @ sub_80A3134\n\
+ bl SetVBlankCallback\n\
+ ldr r0, ._71 + 4 @ sub_80A3118\n\
+ bl SetMainCallback2\n\
+ bl sub_80A751C\n\
+ bl sub_80A7630\n\
+ bl sub_80A770C\n\
+ bl sub_80A7828\n\
+ bl sub_80A78B8\n\
+ ldr r0, ._71 + 8 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._69 @cond_branch\n\
+ ldr r0, ._71 + 12 @ 0x600f5e0\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x8\n\
+ ldr r2, ._71 + 16 @ 0x600f800\n\
+ mov r3, #0x0\n\
+ bl debug_sub_8008218\n\
+._69:\n\
+ mov r0, #0x1\n\
+ b ._70\n\
+._72:\n\
+ .align 2, 0\n\
+._71:\n\
+ .word sub_80A3134+1\n\
+ .word sub_80A3118+1\n\
+ .word gLinkOpen\n\
+ .word 0x600f5e0\n\
+ .word 0x600f800\n\
+._66:\n\
+ mov r0, #0x0\n\
+._70:\n\
+ add sp, sp, #0x4\n\
+ pop {r4, r5}\n\
+ pop {r1}\n\
+ bx r1");
+}
+#else
static bool8 SetupBagMultistep(void)
{
u32 index;
@@ -392,12 +785,12 @@ static bool8 SetupBagMultistep(void)
switch (gMain.state)
{
case 0:
- sub_80F9438();
+ ClearVideoCallbacks();
sub_80A34E8();
gMain.state++;
break;
case 1:
- remove_some_task();
+ ScanlineEffect_Stop();
gMain.state++;
break;
case 2:
@@ -405,7 +798,7 @@ static bool8 SetupBagMultistep(void)
gMain.state++;
break;
case 3:
- sub_80F9020();
+ ClearBGTilemapBuffers();
ewramBagSetupStep = 0;
gMain.state++;
break;
@@ -424,11 +817,11 @@ static bool8 SetupBagMultistep(void)
gMain.state++;
break;
case 7:
- SetUpWindowConfig(&gWindowConfig_81E6DFC);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6DFC);
gMain.state++;
break;
case 8:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6DFC);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6DFC);
gMain.state++;
break;
case 9:
@@ -437,20 +830,20 @@ static bool8 SetupBagMultistep(void)
gMain.state++;
break;
case 10:
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
- CreateVerticalScrollIndicators(0, 172, 12);
- CreateVerticalScrollIndicators(1, 172, 148);
- CreateVerticalScrollIndicators(2, 28, 88);
- CreateVerticalScrollIndicators(3, 100, 88);
- sub_80F9988(0, 2);
- sub_80F9988(1, 2);
- sub_80F9988(2, 2);
- sub_80F9988(3, 2);
+ CreateVerticalScrollIndicators(TOP_ARROW, 172, 12);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 172, 148);
+ CreateVerticalScrollIndicators(LEFT_ARROW, 28, 88);
+ CreateVerticalScrollIndicators(RIGHT_ARROW, 100, 88);
+ SetVerticalScrollIndicatorPriority(TOP_ARROW, 2);
+ SetVerticalScrollIndicatorPriority(BOTTOM_ARROW, 2);
+ SetVerticalScrollIndicatorPriority(LEFT_ARROW, 2);
+ SetVerticalScrollIndicatorPriority(RIGHT_ARROW, 2);
if (sReturnLocation == RETURN_TO_FIELD_4 || sReturnLocation == RETURN_TO_FIELD_5)
{
- sub_80F979C(2, 1);
- sub_80F979C(3, 1);
+ SetVerticalScrollIndicators(LEFT_ARROW, INVISIBLE);
+ SetVerticalScrollIndicators(RIGHT_ARROW, INVISIBLE);
}
gMain.state++;
break;
@@ -508,6 +901,7 @@ static bool8 SetupBagMultistep(void)
}
return FALSE;
}
+#endif
static bool8 sub_80A34B4(void)
{
@@ -634,6 +1028,79 @@ void ClearBag(void)
ResetBagScrollPositions();
}
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80A3714()
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ add sp, sp, #0xfffffff4\n\
+ mov r5, #0x0\n\
+ ldr r2, ._138 @ gUnknown_Debug_083EBC68\n\
+ mov r1, #0x0\n\
+._134:\n\
+ lsl r0, r5, #0x1\n\
+ add r0, r0, sp\n\
+ strh r1, [r0]\n\
+ add r0, r5, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r5, r0, #0x10\n\
+ cmp r5, #0x4\n\
+ bls ._134 @cond_branch\n\
+ mov r5, #0x0\n\
+ ldrh r0, [r2]\n\
+ cmp r0, #0\n\
+ beq ._136 @cond_branch\n\
+ add r6, r2, #0\n\
+._137:\n\
+ lsl r4, r5, #0x2\n\
+ add r4, r4, r6\n\
+ ldrh r0, [r4]\n\
+ bl ItemId_GetPocket\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x8\n\
+ ldr r1, ._138 + 4 @ 0xffff0000\n\
+ add r0, r0, r1\n\
+ lsr r0, r0, #0x10\n\
+ ldr r1, ._138 + 8 @ gBagPockets\n\
+ lsl r2, r0, #0x3\n\
+ add r2, r2, r1\n\
+ lsl r0, r0, #0x1\n\
+ mov r1, sp\n\
+ add r3, r1, r0\n\
+ ldrh r1, [r3]\n\
+ ldr r0, [r2]\n\
+ lsl r1, r1, #0x2\n\
+ add r1, r1, r0\n\
+ ldr r0, [r4]\n\
+ str r0, [r1]\n\
+ ldrh r0, [r3]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r3]\n\
+ add r0, r5, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r5, r0, #0x10\n\
+ cmp r5, #0x3b\n\
+ bhi ._136 @cond_branch\n\
+ lsl r0, r5, #0x2\n\
+ add r0, r0, r6\n\
+ ldrh r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._137 @cond_branch\n\
+._136:\n\
+ add sp, sp, #0xc\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._139:\n\
+ .align 2, 0\n\
+._138:\n\
+ .word gUnknown_Debug_083EBC68\n\
+ .word 0xffff0000\n\
+ .word gBagPockets");
+}
+#endif
+
static void sub_80A3740(void)
{
const u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE};
@@ -657,10 +1124,10 @@ static void sub_80A3770(void)
static void sub_80A37C0(u8 taskId)
{
gTasks[taskId].func = sub_80A50C8;
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
- StartVerticalScrollIndicators(2);
- StartVerticalScrollIndicators(3);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
+ StartVerticalScrollIndicators(LEFT_ARROW);
+ StartVerticalScrollIndicators(RIGHT_ARROW);
}
static void sub_80A37F8(u8 taskId)
@@ -702,8 +1169,8 @@ static void sub_80A37F8(u8 taskId)
sub_80A37C0(FindTaskIdByFunc(sub_80A4F68));
DestroyTask(taskId);
ItemListMenu_InitMenu();
- sub_80F979C(2, 0);
- sub_80F979C(3, 0);
+ SetVerticalScrollIndicators(LEFT_ARROW, VISIBLE);
+ SetVerticalScrollIndicators(RIGHT_ARROW, VISIBLE);
}
}
@@ -1062,7 +1529,7 @@ void sub_80A4164(u8 *dest, u16 value, enum StringConvertMode mode, u8 digits)
void sub_80A418C(u16 value, enum StringConvertMode mode, u8 c, u8 d, u8 digits)
{
sub_80A4164(gStringVar1, value, mode, digits);
- MenuPrint(gStringVar1, c, d);
+ Menu_PrintText(gStringVar1, c, d);
}
static void sub_80A41D4(u8 taskId)
@@ -1112,7 +1579,7 @@ static bool8 sub_80A42B0(u8 itemPos, int b)
return TRUE;
r5 = itemPos * 2 + 2;
sub_8072C74(gStringVar1, gOtherText_CloseBag, 0x78, 0);
- MenuPrint(gStringVar1, 14, r5);
+ Menu_PrintText(gStringVar1, 14, r5);
ptr = gBGTilemapBuffers[2] + 14 + r5 * 32;
ptr[0] = 0x4F;
ptr[1] = 0x4F;
@@ -1121,9 +1588,9 @@ static bool8 sub_80A42B0(u8 itemPos, int b)
if (itemPos == 7)
return TRUE;
if ((b == 1 && r8->unk2 != 0) || b == 2)
- MenuFillWindowRectWithBlankTile(14, r5 + 2, 29, 13);
+ Menu_BlankWindowRect(14, r5 + 2, 29, 13);
else
- MenuFillWindowRectWithBlankTile(14, r5 + 2, 29, 17);
+ Menu_BlankWindowRect(14, r5 + 2, 29, 17);
return TRUE;
}
return FALSE;
@@ -1148,7 +1615,7 @@ static void sub_80A4380(u16 a, int b, int c, int d)
text = sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x66, 0);
*text++ = CHAR_MULT_SIGN;
sub_8072C14(text, gCurrentBagPocketItemSlots[r4].quantity, 0x78, 1);
- MenuPrint(gStringVar1, 14, r5);
+ Menu_PrintText(gStringVar1, 14, r5);
}
}
@@ -1173,7 +1640,7 @@ static void sub_80A444C(u16 a, int b, int c, int d)
#else
sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x63, 0);
#endif
- MenuPrint(gStringVar1, 14, r5);
+ Menu_PrintText(gStringVar1, 14, r5);
if (gUnknown_02038558 != 0)
{
if (gCurrentBagPocketItemSlots[r4].itemId == gSaveBlock1.registeredItem)
@@ -1240,7 +1707,7 @@ static void sub_80A4548(u16 a, int b, int c, int d)
moveName = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)];
sub_8072C74(text, moveName, 0x78, 0);
}
- MenuPrint(gStringVar1, 14, sp10);
+ Menu_PrintText(gStringVar1, 14, sp10);
}
}
#else
@@ -1421,7 +1888,7 @@ _080A46AE:\n\
ldr r0, _080A46F8 @ =gStringVar1\n\
movs r1, 0xE\n\
ldr r2, [sp, 0x10]\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
mov r0, r8\n\
adds r0, 0x1\n\
lsls r0, 24\n\
@@ -1482,7 +1949,7 @@ static void sub_80A46FC(u16 a, int b, int c, int d)
text = sub_80A425C(a, text, i);
CopyItemName(gCurrentBagPocketItemSlots[r4].itemId, gStringVar2);
sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 0x84, gStringVar2, gCurrentBagPocketItemSlots[r4].quantity, 3);
- MenuPrint(gStringVar1, 14, r5);
+ Menu_PrintText(gStringVar1, 14, r5);
}
}
@@ -1505,14 +1972,14 @@ static void sub_80A47E8(u16 a, int b, int c, int d)
break;
}
if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0)
- sub_80F979C(0, 0);
+ SetVerticalScrollIndicators(TOP_ARROW, VISIBLE);
else
- sub_80F979C(0, 1);
+ SetVerticalScrollIndicators(TOP_ARROW, INVISIBLE);
if ((sReturnLocation != RETURN_TO_FIELD_5 && gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 8 < gBagPocketScrollStates[sCurrentBagPocket].numSlots + 1)
|| (sReturnLocation == RETURN_TO_FIELD_5 && gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 8 < gBagPocketScrollStates[sCurrentBagPocket].numSlots))
- sub_80F979C(1, 0);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, VISIBLE);
else
- sub_80F979C(1, 1);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
}
static void sub_80A48E8(u16 taskId, int b, int c)
@@ -1540,7 +2007,7 @@ static void ItemListMenu_InitDescription(s16 itemId)
}
if (r5 < 3)
- MenuZeroFillWindowRect(0, 13 + r5 * 2, 13, 20);
+ Menu_EraseWindowRect(0, 13 + r5 * 2, 13, 20);
}
static void ItemListMenu_ChangeDescription(s16 itemId, int b)
@@ -1551,20 +2018,20 @@ static void ItemListMenu_ChangeDescription(s16 itemId, int b)
{
if (b == 0)
{
- MenuZeroFillWindowRect(0, 13, 13, 20);
- MenuPrint_PixelCoords(gOtherText_ReturnTo, 4, 0x68, 0);
+ Menu_EraseWindowRect(0, 13, 13, 20);
+ Menu_PrintTextPixelCoords(gOtherText_ReturnTo, 4, 0x68, 0);
}
else if (b == 1)
{
- MenuPrint_PixelCoords(gUnknown_0840E740[sReturnLocation], 4, 0x78, 0);
+ Menu_PrintTextPixelCoords(gUnknown_0840E740[sReturnLocation], 4, 0x78, 0);
}
}
else
{
if (b == 0)
- MenuZeroFillWindowRect(0, 13, 13, 20);
+ Menu_EraseWindowRect(0, 13, 13, 20);
if (ItemId_CopyDescription(description, itemId, b))
- MenuPrint_PixelCoords(description, 4, 104 + b * 16, 0);
+ Menu_PrintTextPixelCoords(description, 4, 104 + b * 16, 0);
}
}
@@ -1602,9 +2069,9 @@ static void sub_80A4A98(const u8 *text, u32 line)
u8 buffer[100];
if (line == 0)
- MenuZeroFillWindowRect(0, 13, 13, 20);
+ Menu_EraseWindowRect(0, 13, 13, 20);
if (CopyTextLine(buffer, text, line))
- MenuPrint_PixelCoords(buffer, 4, 104 + line * 16, 0);
+ Menu_PrintTextPixelCoords(buffer, 4, 104 + line * 16, 0);
}
static void sub_80A4ADC(u8 taskId)
@@ -1618,7 +2085,7 @@ static void sub_80A4ADC(u8 taskId)
static void sub_80A4B14(s8 a, u8 b)
{
gBagPocketScrollStates[sCurrentBagPocket].scrollTop += a;
- MoveMenuCursor(0);
+ Menu_MoveCursor(0);
sub_80A73C0();
sub_80A763C();
sub_80A4ADC(b);
@@ -1626,7 +2093,7 @@ static void sub_80A4B14(s8 a, u8 b)
static void sub_80A4B58(s8 delta, u8 b)
{
- gBagPocketScrollStates[sCurrentBagPocket].cursorPos = MoveMenuCursor(delta);
+ gBagPocketScrollStates[sCurrentBagPocket].cursorPos = Menu_MoveCursor(delta);
sub_80A73C0();
sub_80A4ADC(b);
}
@@ -1649,7 +2116,7 @@ static void sub_80A4BF0(u16 *a)
if (gUnknown_02038564 == 4)
{
- MenuDrawTextWindow(0, 7, 13, 12);
+ Menu_DrawStdWindowFrame(0, 7, 13, 12);
sub_80A4008(a, 1, 8, 12, 4);
if (sub_80F9344() == TRUE && sReturnLocation == RETURN_TO_FIELD_5)
{
@@ -1665,7 +2132,7 @@ static void sub_80A4BF0(u16 *a)
text = sub_80A4B90(gSpecialVar_ItemId);
else
text = sItemPopupMenuActions[sPopupMenuActionList[i]].text;
- MenuPrint(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2);
+ Menu_PrintText(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2);
}
}
if (sReturnLocation == RETURN_TO_FIELD_5)
@@ -1676,10 +2143,10 @@ static void sub_80A4BF0(u16 *a)
}
else
{
- MenuDrawTextWindow(0, 5, 13, 12);
+ Menu_DrawStdWindowFrame(0, 5, 13, 12);
sub_80A4008(a, 1, 6, 12, 6);
for (i = 0; i < gUnknown_02038564; i++)
- MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[i]].text, 1 + (i / 3) * 6, 6 + (i % 3) * 2);
+ Menu_PrintText(sItemPopupMenuActions[sPopupMenuActionList[i]].text, 1 + (i / 3) * 6, 6 + (i % 3) * 2);
InitMenu(0, 1, 6, gUnknown_02038564, 0, 1);
sub_8072DCC(0x2F);
}
@@ -1690,7 +2157,7 @@ static void sub_80A4DA4(u16 *a)
{
sub_80A73FC();
sub_80A36B8(a, 0, 6, 13, 6);
- MenuZeroFillWindowRect(0, 5, 13, 12);
+ Menu_EraseWindowRect(0, 5, 13, 12);
sub_80A7590();
}
@@ -1699,7 +2166,7 @@ static void sub_80A4DD8(u8 taskId, u8 b, u8 c, u8 d, u8 e, u8 digits)
gTasks[taskId].data[1] = 1;
gTasks[taskId].data[2] = b + 2;
gTasks[taskId].data[3] = c + 1;
- MenuDrawTextWindow(b, c, b + d, c + e);
+ Menu_DrawStdWindowFrame(b, c, b + d, c + e);
sub_80A4008(gBGTilemapBuffers[1], b + 1, c + 1, d - 1, e - 1);
sub_80A418C(1, 1, b + 2, c + 1, digits);
}
@@ -1707,14 +2174,14 @@ static void sub_80A4DD8(u8 taskId, u8 b, u8 c, u8 d, u8 e, u8 digits)
static void sub_80A4E8C(s8 delta, u8 b)
{
PlaySE(SE_SELECT);
- sub_80F979C(0, 1);
- sub_80F979C(1, 1);
- sub_80F979C(2, 1);
- sub_80F979C(3, 1);
- PauseVerticalScrollIndicator(0);
- PauseVerticalScrollIndicator(1);
- PauseVerticalScrollIndicator(2);
- PauseVerticalScrollIndicator(3);
+ SetVerticalScrollIndicators(TOP_ARROW, INVISIBLE);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
+ SetVerticalScrollIndicators(LEFT_ARROW, INVISIBLE);
+ SetVerticalScrollIndicators(RIGHT_ARROW, INVISIBLE);
+ PauseVerticalScrollIndicator(TOP_ARROW);
+ PauseVerticalScrollIndicator(BOTTOM_ARROW);
+ PauseVerticalScrollIndicator(LEFT_ARROW);
+ PauseVerticalScrollIndicator(RIGHT_ARROW);
ChangePocket(gBGTilemapBuffers[2], delta);
DrawPocketIndicatorDots(gBGTilemapBuffers[2], sCurrentBagPocket);
sub_80A3770();
@@ -1866,10 +2333,10 @@ static void sub_80A50C8(u8 taskId)
gUnknown_02038560 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
gSpecialVar_ItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId;
gUnknown_083C16BC[sReturnLocation].onItemSelect(taskId);
- sub_80F98A4(0);
- sub_80F98A4(1);
- sub_80F98A4(2);
- sub_80F98A4(3);
+ StopVerticalScrollIndicators(TOP_ARROW);
+ StopVerticalScrollIndicators(BOTTOM_ARROW);
+ StopVerticalScrollIndicators(LEFT_ARROW);
+ StopVerticalScrollIndicators(RIGHT_ARROW);
sub_80A797C();
}
else
@@ -1901,7 +2368,7 @@ static void sub_80A50C8(u8 taskId)
}
}
-bool8 sub_80A52C4(u8 taskId, u16 b)
+bool8 SellMenu_QuantityRoller(u8 taskId, u16 b)
{
s16 *taskData = gTasks[taskId].data;
@@ -1948,7 +2415,7 @@ static bool8 sub_80A5350(u8 taskId)
{
s16 *taskData = gTasks[taskId].data;
- if (sub_80A52C4(taskId, gCurrentBagPocketItemSlots[gUnknown_02038560].quantity) == TRUE)
+ if (SellMenu_QuantityRoller(taskId, gCurrentBagPocketItemSlots[gUnknown_02038560].quantity) == TRUE)
{
// if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way
if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1)
@@ -2539,7 +3006,7 @@ static void sub_80A57C4(void)
r5 = 7;
}
sub_80A4008(gBGTilemapBuffers[1], 7, r5 + 1, 6, gUnknown_02038564 * 2);
- MenuDrawTextWindow(6, r5, 13, gUnknown_02038564 * 2 + 1 + r5);
+ Menu_DrawStdWindowFrame(6, r5, 13, gUnknown_02038564 * 2 + 1 + r5);
sub_80A7834(0, r5);
InitMenu(0, 7, r5 + 1, gUnknown_02038564, 0, 6);
}
@@ -2553,7 +3020,7 @@ static void sub_80A5888(u8 taskId)
if (sPopupMenuSelection != 0)
{
PlaySE(SE_SELECT);
- sPopupMenuSelection = MoveMenuCursor(-1);
+ sPopupMenuSelection = Menu_MoveCursor(-1);
}
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
@@ -2561,7 +3028,7 @@ static void sub_80A5888(u8 taskId)
if (sPopupMenuSelection != gUnknown_02038564 - 1)
{
PlaySE(SE_SELECT);
- sPopupMenuSelection = MoveMenuCursor(1);
+ sPopupMenuSelection = Menu_MoveCursor(1);
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -2690,14 +3157,14 @@ static void sub_80A5C24(u8 taskId)
void CleanUpItemMenuMessage(u8 taskId)
{
sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
- MenuZeroFillWindowRect(7, 7, 13, 12);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(7, 7, 13, 12);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskId].func = sub_80A5C24;
}
void CleanUpOverworldMessage(u8 taskId)
{
- MenuZeroFillWindowRect(0, 13, 29, 19);
+ Menu_EraseWindowRect(0, 13, 29, 19);
DestroyTask(taskId);
sub_8064E2C();
ScriptContext2_Disable();
@@ -2711,7 +3178,7 @@ void ExecuteItemUseFromBlackPalette(void)
static void Task_CallItemUseOnFieldCallback(u8 taskId)
{
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
gFieldItemUseCallback(taskId);
}
@@ -2760,7 +3227,7 @@ static void sub_80A5DA0(u16 itemId, u16 quantity)
static void sub_80A5DF8(void)
{
sub_80A4DA4(gBGTilemapBuffers[1]);
- MenuZeroFillWindowRect(7, 6, 11, 13);
+ Menu_EraseWindowRect(7, 6, 11, 13);
sub_80A7528(4);
}
@@ -2857,7 +3324,7 @@ static void sub_80A6024(u8 taskId)
if (gMain.newKeys & A_BUTTON)
{
sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskId].func = sub_80A6000;
}
}
@@ -2963,7 +3430,7 @@ static void sub_80A62D8(void)
gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
}
-void sub_80A6300(void)
+void ItemMenu_LoadSellMenu(void)
{
sReturnLocation = RETURN_TO_SHOP;
SetMainCallback2(sub_80A62D8);
@@ -2971,7 +3438,7 @@ void sub_80A6300(void)
static void OnBagClose_Shop(u8 taskId)
{
- gFieldCallback = sub_80B3050;
+ gFieldCallback = Shop_FadeReturnToMartMenu;
gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16;
gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch;
sub_80A5AE4(taskId);
@@ -3008,7 +3475,7 @@ static void sub_80A640C(u8 taskId)
static void sub_80A6444(u8 taskId)
{
sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskId].func = sub_80A640C;
}
@@ -3016,7 +3483,7 @@ static void sub_80A648C(u8 taskId)
{
gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput;
sub_80A4008(gBGTilemapBuffers[1], 1, 11, 12, 2);
- MenuDrawTextWindow(0, 10, 13, 13);
+ Menu_DrawStdWindowFrame(0, 10, 13, 13);
gTasks[taskId].data[1] = 1;
gTasks[taskId].data[2] = 1;
gTasks[taskId].data[3] = 11;
@@ -3053,7 +3520,7 @@ static void sub_80A6574(u8 taskId)
static void sub_80A65AC(u8 taskId)
{
- MenuZeroFillWindowRect(7, 6, 13, 12);
+ Menu_EraseWindowRect(7, 6, 13, 12);
sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6);
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gOtherText_SoldItem);
@@ -3063,7 +3530,7 @@ static void sub_80A65AC(u8 taskId)
static void sub_80A6618(u8 taskId)
{
- MenuZeroFillWindowRect(7, 6, 13, 12);
+ Menu_EraseWindowRect(7, 6, 13, 12);
sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6);
BuyMenuPrintItemQuantityAndPrice(taskId);
}
@@ -3078,13 +3545,13 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
{
if (sub_80A5350(taskId) == TRUE)
{
- MenuZeroFillWindowRect(6, 11, 12, 11);
+ Menu_EraseWindowRect(6, 11, 12, 11);
BuyMenuDisplayMessage(gSpecialVar_ItemId, gTasks[taskId].data[1]);
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(0, 10, 13, 13);
+ Menu_EraseWindowRect(0, 10, 13, 13);
sub_80A36B8(gBGTilemapBuffers[1], 0, 10, 13, 3);
ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gSpecialVar_ItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6);
StringExpandPlaceholders(gStringVar4, gOtherText_CanPay);
@@ -3110,8 +3577,8 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
{
sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
CloseMoneyWindow(0, 0);
- MenuZeroFillWindowRect(0, 4, 13, 13);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 4, 13, 13);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskId].func = sub_80A6760;
}
@@ -3229,7 +3696,7 @@ static void sub_80A6A84(u8 taskId)
sub_80A4DA4(gBGTilemapBuffers[1]);
CopyItemName(gSpecialVar_ItemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar2, taskData[1], STR_CONV_MODE_LEFT_ALIGN, 3);
- MenuZeroFillWindowRect(7, 6, 11, 13);
+ Menu_EraseWindowRect(7, 6, 11, 13);
sub_80A7528(7);
sub_80A3D5C(taskId);
gTasks[taskId].func = sub_80A5E1C;
@@ -3361,16 +3828,16 @@ static void sub_80A6DF0(u16 *a)
{
u8 r6 = (gUnknown_02038564 - 1) * 2;
- MenuDrawTextWindow(7, 9 - r6, 13, 12);
+ Menu_DrawStdWindowFrame(7, 9 - r6, 13, 12);
sub_80A4008(a, 8, 10 - r6, 5, r6 + 2);
if (gUnknown_02038564 == 1)
{
- MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 10);
+ Menu_PrintText(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 10);
}
else
{
- MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 8);
- MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[1]].text, 8, 10);
+ Menu_PrintText(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 8);
+ Menu_PrintText(sItemPopupMenuActions[sPopupMenuActionList[1]].text, 8, 10);
}
InitMenu(0, 8, 10 - r6, gUnknown_02038564, 0, 5);
sub_80A7528(2);
@@ -3383,7 +3850,7 @@ static void sub_80A6EB8(u8 taskId)
if (sPopupMenuSelection == 1)
{
PlaySE(SE_SELECT);
- sPopupMenuSelection = MoveMenuCursor(-1);
+ sPopupMenuSelection = Menu_MoveCursor(-1);
}
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
@@ -3391,7 +3858,7 @@ static void sub_80A6EB8(u8 taskId)
if (sPopupMenuSelection + 1 < gUnknown_02038564)
{
PlaySE(SE_SELECT);
- sPopupMenuSelection = MoveMenuCursor(1);
+ sPopupMenuSelection = Menu_MoveCursor(1);
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -3523,8 +3990,8 @@ static void sub_80A7230(u8 taskId)
break;
case 204:
PlaySE(SE_SELECT);
- sub_80F98A4(2);
- sub_80F98A4(3);
+ StopVerticalScrollIndicators(LEFT_ARROW);
+ StopVerticalScrollIndicators(RIGHT_ARROW);
gSpecialVar_ItemId = ITEM_POKE_BALL;
sPopupMenuActionList = gUnknown_083C1708;
gUnknown_02038564 = 2;
@@ -3559,7 +4026,7 @@ static void ItemListMenu_InitMenu(void)
static void sub_80A73C0(void)
{
- sub_814AD7C(0x70, gBagPocketScrollStates[sCurrentBagPocket].cursorPos * 16 + 16);
+ MenuCursor_SetPos814AD7C(0x70, gBagPocketScrollStates[sCurrentBagPocket].cursorPos * 16 + 16);
}
static void sub_80A73F0(void)
@@ -3569,16 +4036,53 @@ static void sub_80A73F0(void)
static void sub_80A73FC(void)
{
- HandleDestroyMenuCursors();
- sub_814AD44();
+ Menu_DestroyCursor();
+ MenuCursor_Destroy814AD44();
}
+#if DEBUG
+__attribute__((naked))
+static void sub_80A740C(void)
+{
+ asm("\
+ push {lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ bl sub_80A75E4\n\
+ bl sub_80A7768\n\
+ bl sub_80A7420\n\
+ ldr r0, ._931 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._930 @cond_branch\n\
+ ldr r0, ._931 + 4 @ gLink\n\
+ ldr r1, ._931 + 8 @ 0xfbd\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r1, #0x1\n\
+ mov r2, #0x1\n\
+ mov r3, #0x2\n\
+ bl debug_sub_8008264\n\
+._930:\n\
+ add sp, sp, #0x4\n\
+ pop {r0}\n\
+ bx r0\n\
+._932:\n\
+ .align 2, 0\n\
+._931:\n\
+ .word gLinkOpen\n\
+ .word gLink\n\
+ .word 0xfbd");
+}
+#else
static void sub_80A740C(void)
{
sub_80A75E4();
sub_80A7768();
sub_80A7420();
}
+#endif
static void sub_80A7420(void)
{
@@ -3669,7 +4173,7 @@ static void sub_80A756C(void)
static void sub_80A7590(void)
{
- MenuZeroFillWindowRect(0, 13, 13, 20);
+ Menu_EraseWindowRect(0, 13, 13, 20);
sub_80A756C();
}
@@ -3748,7 +4252,7 @@ static void sub_80A7694(void)
static void sub_80A76A0(void)
{
- MenuZeroFillWindowRect(14, 2, 29, 18);
+ Menu_EraseWindowRect(14, 2, 29, 18);
sub_80A7678();
}
@@ -3816,7 +4320,7 @@ static void sub_80A7768(void)
const u8 *text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text;
int var = r4->unk1 - 1;
- MenuPrint(text, 7, var * 2 + 1 + r4->unk3);
+ Menu_PrintText(text, 7, var * 2 + 1 + r4->unk3);
}
else
{
@@ -3828,7 +4332,7 @@ static void sub_80A7768(void)
else
text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text;
var = r4->unk1 - 1;
- MenuPrint(text, (var >> 1) * 6 + 1, (var & 1) * 2 + 8);
+ Menu_PrintText(text, (var >> 1) * 6 + 1, (var & 1) * 2 + 8);
}
if (r4->unk1 == gUnknown_02038564)
{
diff --git a/src/field/item_use.c b/src/field/item_use.c
index e1fdddce0..219ef5080 100644
--- a/src/field/item_use.c
+++ b/src/field/item_use.c
@@ -40,7 +40,7 @@
extern void (*gFieldItemUseCallback)(u8);
extern void (*gFieldCallback)(void);
extern void (*gUnknown_0300485C)(void);
-extern void (*gUnknown_03004AE4)(u8, u16, TaskFunc);
+extern void (*gPokemonItemUseCallback)(u8, u16, TaskFunc);
extern u8 gUnknown_02038561;
extern u8 gLastFieldPokeMenuOpened;
@@ -100,7 +100,7 @@ void ItemMenu_ConfirmNormalFade(u8 var)
void ItemMenu_ConfirmComplexFade(u8 var)
{
ExecuteSwitchToOverworldFromItemUse(var);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
void SetUpItemUseOnFieldCallback(u8 taskId)
@@ -123,7 +123,7 @@ void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *text)
switch (playerMenuStatus)
{
case 0: // Item Menu
- MenuZeroFillWindowRect(0, 13, 13, 20);
+ Menu_EraseWindowRect(0, 13, 13, 20);
DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1);
break;
default: // Field
@@ -259,7 +259,7 @@ void ItemUseOnFieldCB_Rod(u8 taskId)
void ItemUseOutOfBattle_Itemfinder(u8 var)
{
- IncrementGameStat(0x27);
+ IncrementGameStat(GAME_STAT_USED_ITEMFINDER);
gFieldItemUseCallback = (void *)ItemUseOnFieldCB_Itemfinder;
SetUpItemUseOnFieldCallback(var);
}
@@ -312,7 +312,7 @@ void RunItemfinderResults(u8 taskId)
void ExitItemfinder(u8 taskId)
{
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
sub_8064E2C();
ScriptContext2_Disable();
DestroyTask(taskId);
@@ -744,7 +744,7 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId)
if (!gTasks[taskId].data[2])
{
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
DisplayItemMessageOnField(taskId, gStringVar4, CleanUpItemMenuMessage, 1);
}
else
@@ -770,7 +770,7 @@ void ItemUseOutOfBattle_SSTicket(u8 taskId)
{
if (gTasks[taskId].data[2] == 0)
{
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gSpecialVar_ItemId)], sub_80C9BB8, 1);
}
else
@@ -832,7 +832,7 @@ void sub_80C9D98(u8 taskId)
void ItemUseOutOfBattle_Medicine(u8 taskId)
{
- gUnknown_03004AE4 = UseMedicine;
+ gPokemonItemUseCallback = UseMedicine;
sub_80C9D98(taskId);
}
@@ -850,34 +850,34 @@ void ItemUseOutOfBattle_SacredAsh(u8 taskId)
break;
}
}
- gUnknown_03004AE4 = sub_8070048;
+ gPokemonItemUseCallback = sub_8070048;
gUnknown_02038561 = 4;
ItemMenu_ConfirmNormalFade(taskId);
}
void ItemUseOutOfBattle_PPRecovery(u8 taskId)
{
- gUnknown_03004AE4 = DoPPRecoveryItemEffect;
+ gPokemonItemUseCallback = DoPPRecoveryItemEffect;
sub_80C9D98(taskId);
}
void ItemUseOutOfBattle_PPUp(u8 taskId)
{
- gUnknown_03004AE4 = DoPPUpItemEffect;
+ gPokemonItemUseCallback = DoPPUpItemEffect;
sub_80C9D98(taskId);
}
void ItemUseOutOfBattle_RareCandy(u8 taskId)
{
- gUnknown_03004AE4 = DoRareCandyItemEffect;
+ gPokemonItemUseCallback = DoRareCandyItemEffect;
sub_80C9D98(taskId);
}
void ItemUseOutOfBattle_TMHM(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
- if (gSpecialVar_ItemId >= ITEM_HM01)
+ if (gSpecialVar_ItemId >= ITEM_HM01_CUT)
DisplayItemMessageOnField(taskId, gOtherText_BootedHM, sub_80C9EE4, 1); // HM
else
DisplayItemMessageOnField(taskId, gOtherText_BootedTM, sub_80C9EE4, 1); // TM
@@ -908,7 +908,7 @@ void sub_80C9F80(u8 var)
void sub_80C9FC0(u8 var)
{
- gUnknown_03004AE4 = TeachMonTMMove;
+ gPokemonItemUseCallback = TeachMonTMMove;
sub_80C9D98(var);
}
@@ -1009,7 +1009,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId)
void ItemUseOutOfBattle_EvolutionStone(u8 var)
{
- gUnknown_03004AE4 = DoEvolutionStoneItemEffect;
+ gPokemonItemUseCallback = DoEvolutionStoneItemEffect;
sub_80C9D98(var);
}
@@ -1022,7 +1022,7 @@ void ItemUseInBattle_PokeBall(u8 var)
}
else
{
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
DisplayItemMessageOnField(var, gOtherText_BoxIsFull, CleanUpItemMenuMessage, 1);
}
}
@@ -1047,7 +1047,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
{
u16 partyId = gBattlePartyID[gBankInMenu];
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE)
{
@@ -1078,25 +1078,25 @@ void sub_80CA3C0(u8 taskId)
void ItemUseInBattle_Medicine(u8 var)
{
- gUnknown_03004AE4 = UseMedicine;
+ gPokemonItemUseCallback = UseMedicine;
sub_80CA3C0(var);
}
void unref_sub_80CA410(u8 var)
{
- gUnknown_03004AE4 = sub_8070048;
+ gPokemonItemUseCallback = sub_8070048;
sub_80CA3C0(var);
}
void ItemUseInBattle_PPRecovery(u8 var)
{
- gUnknown_03004AE4 = DoPPRecoveryItemEffect;
+ gPokemonItemUseCallback = DoPPRecoveryItemEffect;
sub_80CA3C0(var);
}
void unref_sub_80CA448(u8 var)
{
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
if (ExecuteTableBasedItemEffect__(0, gSpecialVar_ItemId, 0) == FALSE)
{
@@ -1113,7 +1113,7 @@ void unref_sub_80CA448(u8 var)
void ItemUseInBattle_Escape(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
+ Menu_EraseWindowRect(0, 0xD, 0xD, 0x14);
if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE)
{
diff --git a/src/field/map_name_popup.c b/src/field/map_name_popup.c
index 2e2dfc72e..49a470cc1 100644
--- a/src/field/map_name_popup.c
+++ b/src/field/map_name_popup.c
@@ -89,8 +89,8 @@ void HideMapNamePopup(void)
{
if (FuncIsActiveTask(Task_MapNamePopup))
{
- MenuLoadTextWindowGraphics();
- MenuZeroFillWindowRect(0, 0, 13, 3);
+ Menu_LoadStdFrameGraphics();
+ Menu_EraseWindowRect(0, 0, 13, 3);
REG_BG0VOFS = 0;
DestroyTask(sTaskId);
}
@@ -100,8 +100,8 @@ void DrawMapNamePopup(void)
{
u8 name[20];
- MenuLoadTextWindowGraphics_OverrideFrameType(0);
+ Menu_LoadStdFrameGraphicsOverrideStyle(0);
GetMapSectionName(name, gMapHeader.regionMapSectionId, 0);
- MenuDrawTextWindow(0, 0, 13, 3);
+ Menu_DrawStdWindowFrame(0, 0, 13, 3);
sub_8072BD8(name, 1, 1, 0x60);
}
diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c
index 4db513f65..b42c50513 100644
--- a/src/field/mauville_man.c
+++ b/src/field/mauville_man.c
@@ -250,7 +250,88 @@ void SetupMauvilleOldMan(void)
sub_80F83D0();
}
-static u8 GetCurrentMauvilleOldMan(void)
+#if DEBUG
+__attribute__((naked))
+void debug_sub_810B32C()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x4\n"
+ " bhi ._37 @cond_branch\n"
+ " lsl r0, r0, #0x2\n"
+ " ldr r1, ._23 @ \n"
+ " add r0, r0, r1\n"
+ " ldr r0, [r0]\n"
+ " mov pc, r0\n"
+ "._24:\n"
+ " .align 2, 0\n"
+ "._23:\n"
+ " .word ._22\n"
+ "._22:\n"
+ " .word ._25\n"
+ " .word ._26\n"
+ " .word ._27\n"
+ " .word ._28\n"
+ " .word ._29\n"
+ "._25:\n"
+ " bl SetupBard\n"
+ " b ._37\n"
+ "._26:\n"
+ " mov r2, #0x0\n"
+ " ldr r3, ._34 @ gSaveBlock1\n"
+ "._31:\n"
+ " mov r0, sp\n"
+ " add r1, r0, r2\n"
+ " add r0, r2, r3\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x7\n"
+ " bls ._31 @cond_branch\n"
+ " bl SetupHipster\n"
+ " mov r2, #0x0\n"
+ " ldr r3, ._34 @ gSaveBlock1\n"
+ "._32:\n"
+ " add r1, r2, r3\n"
+ " mov r4, sp\n"
+ " add r0, r4, r2\n"
+ " ldrb r0, [r0]\n"
+ " strb r0, [r1]\n"
+ " add r0, r2, #1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r2, r0, #0x18\n"
+ " cmp r2, #0x7\n"
+ " bls ._32 @cond_branch\n"
+ " b ._37\n"
+ "._35:\n"
+ " .align 2, 0\n"
+ "._34:\n"
+ " .word gSaveBlock1+0x2d8c\n"
+ "._27:\n"
+ " bl SetupTrader\n"
+ " b ._37\n"
+ "._28:\n"
+ " bl SetupStoryteller\n"
+ " b ._37\n"
+ "._29:\n"
+ " bl SetupGiddy\n"
+ "._37:\n"
+ " bl sub_80F83D0\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+#endif
+
+u8 GetCurrentMauvilleOldMan(void)
{
struct MauvilleManCommon *common = &gSaveBlock1.mauvilleMan.common;
@@ -345,7 +426,7 @@ void PrepareSongText(void)
void ScrSpecial_PlayBardSong(void)
{
StartBardSong(gSpecialVar_0x8004);
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
ScriptContext1_Stop();
}
@@ -858,8 +939,8 @@ static void Task_BardSong(u8 taskId)
{
case 0: // Initialize song
PrepareSongText();
- InitWindowFromConfig(gMenuWindowPtr, &gWindowConfig_81E6CE4);
- sub_8002EB0(gMenuWindowPtr, gStringVar4, 2, 4, 15);
+ Text_InitWindowWithTemplate(gMenuWindowPtr, &gWindowTemplate_81E6CE4);
+ Text_InitWindow8002EB0(gMenuWindowPtr, gStringVar4, 2, 4, 15);
task->data[1] = 0;
task->data[2] = 0;
task->tCharIndex = 0;
@@ -921,7 +1002,7 @@ static void Task_BardSong(u8 taskId)
}
else if (gStringVar4[task->tCharIndex] == CHAR_SPACE)
{
- sub_8003418(gMenuWindowPtr);
+ Text_PrintWindowSimple(gMenuWindowPtr);
task->tCharIndex++;
task->tState = 2;
task->data[2] = 0;
@@ -941,7 +1022,7 @@ static void Task_BardSong(u8 taskId)
else if (gStringVar4[task->tCharIndex] == CHAR_SONG_WORD_SEPARATOR)
{
gStringVar4[task->tCharIndex] = CHAR_SPACE; // restore it back to a space
- sub_8003418(gMenuWindowPtr);
+ Text_PrintWindowSimple(gMenuWindowPtr);
task->tCharIndex++;
task->data[2] = 0;
}
@@ -950,7 +1031,7 @@ static void Task_BardSong(u8 taskId)
switch (task->data[1])
{
case 0:
- sub_8003418(gMenuWindowPtr);
+ Text_PrintWindowSimple(gMenuWindowPtr);
task->data[1]++;
break;
case 1:
@@ -1219,7 +1300,7 @@ static void PrintStoryList(void)
{
s32 i;
- MenuDrawTextWindow(0, 0, 25, 4 + GetFreeStorySlot() * 2);
+ Menu_DrawStdWindowFrame(0, 0, 25, 4 + GetFreeStorySlot() * 2);
for (i = 0; i < 4; i++)
{
struct MauvilleManStoryteller *storyteller = &gSaveBlock1.mauvilleMan.storyteller;
@@ -1227,9 +1308,9 @@ static void PrintStoryList(void)
if (stat == 0)
break;
- MenuPrint(GetStoryTitleByStat(stat), 1, 2 + i * 2);
+ Menu_PrintText(GetStoryTitleByStat(stat), 1, 2 + i * 2);
}
- MenuPrint(gPCText_Cancel, 1, 2 + i * 2);
+ Menu_PrintText(gPCText_Cancel, 1, 2 + i * 2);
}
static u8 gUnknown_03000748;
@@ -1247,7 +1328,7 @@ static void Task_StoryListMenu(u8 taskId)
task->data[0]++;
break;
case 1:
- selection = ProcessMenuInput();
+ selection = Menu_ProcessInput();
if (selection == -2)
break;
if (selection == -1 || selection == GetFreeStorySlot())
@@ -1259,8 +1340,8 @@ static void Task_StoryListMenu(u8 taskId)
gSpecialVar_Result = 1;
gUnknown_03000748 = selection;
}
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 25, 12);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 25, 12);
DestroyTask(taskId);
EnableBothScriptContexts();
break;
diff --git a/src/field/menu_helpers.c b/src/field/menu_helpers.c
index e3ef0c790..388d98ec7 100644
--- a/src/field/menu_helpers.c
+++ b/src/field/menu_helpers.c
@@ -18,7 +18,7 @@
static void sub_80F9834(struct Sprite *sprite);
-static EWRAM_DATA u8 gUnknown_020388C0[4] = {0};
+static EWRAM_DATA u8 gVerticalScrollIndicatorIds[4] = {0};
static EWRAM_DATA struct YesNoFuncTable gUnknown_020388C4 = {0};
static TaskFunc gUnknown_0300074C;
@@ -125,7 +125,7 @@ static const struct SpriteTemplate gSpriteTemplate_83E5A00 =
.callback = SpriteCallbackDummy,
};
-void sub_80F9020(void)
+void ClearBGTilemapBuffers(void)
{
memset(&gBGTilemapBuffers[1], 0, 0x800);
memset(&gBGTilemapBuffers[2], 0, 0x800);
@@ -135,7 +135,7 @@ void sub_80F9020(void)
// display message box, fill box with tile if tile is not zero, print string
static void PrintMessage(const u8 *str, u16 tile)
{
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
if (tile)
{
sub_80A3FA0(&gBGTilemapBuffers[1][0], 2, 15, 26, 4, tile);
@@ -145,7 +145,7 @@ static void PrintMessage(const u8 *str, u16 tile)
static void sub_80F9090(u8 taskId)
{
- if (MenuUpdateWindowText() == TRUE)
+ if (Menu_UpdateWindowText() == TRUE)
{
gUnknown_0300074C(taskId);
}
@@ -160,7 +160,7 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *str, TaskFunc callback, u16
static void Task_CallYesOrNoCallback(u8 taskId)
{
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0:
PlaySE(SE_SELECT);
@@ -196,7 +196,7 @@ static void PrintStringWithPalette(const u8 *str, u8 paletteNum, u8 left, u8 top
StringCopy(gStringVar4, str);
}
- MenuPrint(gStringVar4, left, top);
+ Menu_PrintText(gStringVar4, left, top);
}
// unused
@@ -209,7 +209,7 @@ void PrintNumberWithPalette(s32 value, u8 paletteNum, u8 n, u8 mode, u8 left, u8
}
else
{
- MenuPrint(gStringVar1, left, top);
+ Menu_PrintText(gStringVar1, left, top);
}
}
@@ -296,9 +296,6 @@ bool8 sub_80F9344(void)
void sub_80F9368(void)
{
- u8 *addr;
- u32 size;
-
REG_DISPCNT = 0;
REG_BG3CNT = 0;
REG_BG2CNT = 0;
@@ -312,38 +309,24 @@ void sub_80F9368(void)
REG_BG1VOFS = 0;
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
-
- addr = (u8 *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
-
+ DmaFill16Large(3, 0, (u8 *)VRAM, 0x18000, 0x1000);
DmaClear32(3, OAM, OAM_SIZE);
DmaClear16(3, PLTT, PLTT_SIZE);
}
-void sub_80F9438(void)
+void ClearVideoCallbacks(void)
{
SetVBlankCallback(NULL);
SetHBlankCallback(NULL);
}
-void sub_80F944C(void)
+void ClearVerticalScrollIndicatorPalettes(void)
{
u8 i;
for (i = 0; i < 4; i++)
{
- gUnknown_020388C0[i] = 0xFF;
+ gVerticalScrollIndicatorIds[i] = 0xFF;
}
FreeSpritePaletteByTag(SCROLL_INDICATOR_PAL_TAG);
@@ -401,92 +384,92 @@ void CreateVerticalScrollIndicators(u8 id, u16 x, u16 y)
switch (id)
{
- case 0:
- if (gUnknown_020388C0[0] == 0xFF)
+ case TOP_ARROW:
+ if (gVerticalScrollIndicatorIds[TOP_ARROW] == 0xFF)
{
- gUnknown_020388C0[0] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0);
- gSprites[gUnknown_020388C0[0]].data[2] = -1;
- if (gUnknown_020388C0[1] != 0xFF)
+ gVerticalScrollIndicatorIds[TOP_ARROW] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0);
+ gSprites[gVerticalScrollIndicatorIds[TOP_ARROW]].data[2] = -1;
+ if (gVerticalScrollIndicatorIds[BOTTOM_ARROW] != 0xFF)
{
- gSprites[gUnknown_020388C0[0]].pos2.y = gSprites[gUnknown_020388C0[1]].pos2.y * -1;
- gSprites[gUnknown_020388C0[0]].data[3] = gSprites[gUnknown_020388C0[1]].data[3];
+ gSprites[gVerticalScrollIndicatorIds[TOP_ARROW]].pos2.y = gSprites[gVerticalScrollIndicatorIds[BOTTOM_ARROW]].pos2.y * -1;
+ gSprites[gVerticalScrollIndicatorIds[TOP_ARROW]].data[3] = gSprites[gVerticalScrollIndicatorIds[BOTTOM_ARROW]].data[3];
}
else
{
- gSprites[gUnknown_020388C0[0]].data[3] = 0;
+ gSprites[gVerticalScrollIndicatorIds[TOP_ARROW]].data[3] = 0;
}
}
break;
- case 1:
- if (gUnknown_020388C0[1] == 0xFF)
+ case BOTTOM_ARROW:
+ if (gVerticalScrollIndicatorIds[BOTTOM_ARROW] == 0xFF)
{
- gUnknown_020388C0[1] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0);
- gSprites[gUnknown_020388C0[1]].data[2] = 1;
- if (gUnknown_020388C0[0] != 0xFF)
+ gVerticalScrollIndicatorIds[BOTTOM_ARROW] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0);
+ gSprites[gVerticalScrollIndicatorIds[BOTTOM_ARROW]].data[2] = 1;
+ if (gVerticalScrollIndicatorIds[TOP_ARROW] != 0xFF)
{
- gSprites[gUnknown_020388C0[1]].pos2.y = gSprites[gUnknown_020388C0[0]].pos2.y * -1;
- gSprites[gUnknown_020388C0[1]].data[3] = gSprites[gUnknown_020388C0[0]].data[3];
+ gSprites[gVerticalScrollIndicatorIds[BOTTOM_ARROW]].pos2.y = gSprites[gVerticalScrollIndicatorIds[TOP_ARROW]].pos2.y * -1;
+ gSprites[gVerticalScrollIndicatorIds[BOTTOM_ARROW]].data[3] = gSprites[gVerticalScrollIndicatorIds[TOP_ARROW]].data[3];
}
else
{
- gSprites[gUnknown_020388C0[1]].data[3] = 0;
+ gSprites[gVerticalScrollIndicatorIds[BOTTOM_ARROW]].data[3] = 0;
}
}
break;
- case 2:
- if (gUnknown_020388C0[2] == 0xFF)
+ case LEFT_ARROW:
+ if (gVerticalScrollIndicatorIds[LEFT_ARROW] == 0xFF)
{
- gUnknown_020388C0[2] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0);
- gSprites[gUnknown_020388C0[2]].data[0] = -1;
- if (gUnknown_020388C0[3] != 0xFF)
+ gVerticalScrollIndicatorIds[LEFT_ARROW] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0);
+ gSprites[gVerticalScrollIndicatorIds[LEFT_ARROW]].data[0] = -1;
+ if (gVerticalScrollIndicatorIds[RIGHT_ARROW] != 0xFF)
{
- gSprites[gUnknown_020388C0[2]].pos2.x = gSprites[gUnknown_020388C0[3]].pos2.x * -1;
- gSprites[gUnknown_020388C0[2]].data[1] = gSprites[gUnknown_020388C0[3]].data[1];
+ gSprites[gVerticalScrollIndicatorIds[LEFT_ARROW]].pos2.x = gSprites[gVerticalScrollIndicatorIds[RIGHT_ARROW]].pos2.x * -1;
+ gSprites[gVerticalScrollIndicatorIds[LEFT_ARROW]].data[1] = gSprites[gVerticalScrollIndicatorIds[RIGHT_ARROW]].data[1];
}
else
{
- gSprites[gUnknown_020388C0[2]].data[1] = 0;
+ gSprites[gVerticalScrollIndicatorIds[LEFT_ARROW]].data[1] = 0;
}
}
break;
- case 3:
- if (gUnknown_020388C0[3] == 0xFF)
+ case RIGHT_ARROW:
+ if (gVerticalScrollIndicatorIds[RIGHT_ARROW] == 0xFF)
{
- gUnknown_020388C0[3] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0);
- gSprites[gUnknown_020388C0[3]].data[0] = 1;
- if (gUnknown_020388C0[2] != 0xFF)
+ gVerticalScrollIndicatorIds[RIGHT_ARROW] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0);
+ gSprites[gVerticalScrollIndicatorIds[RIGHT_ARROW]].data[0] = 1;
+ if (gVerticalScrollIndicatorIds[LEFT_ARROW] != 0xFF)
{
- gSprites[gUnknown_020388C0[3]].pos2.x = gSprites[gUnknown_020388C0[2]].pos2.x * -1;
- gSprites[gUnknown_020388C0[3]].data[1] = gSprites[gUnknown_020388C0[2]].data[1];
+ gSprites[gVerticalScrollIndicatorIds[RIGHT_ARROW]].pos2.x = gSprites[gVerticalScrollIndicatorIds[LEFT_ARROW]].pos2.x * -1;
+ gSprites[gVerticalScrollIndicatorIds[RIGHT_ARROW]].data[1] = gSprites[gVerticalScrollIndicatorIds[LEFT_ARROW]].data[1];
}
else
{
- gSprites[gUnknown_020388C0[3]].data[1] = 0;
+ gSprites[gVerticalScrollIndicatorIds[RIGHT_ARROW]].data[1] = 0;
}
}
break;
}
- StartSpriteAnim(&gSprites[gUnknown_020388C0[id]], id & 1);
+ StartSpriteAnim(&gSprites[gVerticalScrollIndicatorIds[id]], id & 1);
}
-void sub_80F979C(u8 id, bool8 invisible)
+void SetVerticalScrollIndicators(u8 id, bool8 invisible)
{
- if (id < 4 && gUnknown_020388C0[id] != 0xFF)
+ if (id < 4 && gVerticalScrollIndicatorIds[id] != 0xFF)
{
- gSprites[gUnknown_020388C0[id]].invisible = invisible;
+ gSprites[gVerticalScrollIndicatorIds[id]].invisible = invisible;
}
}
void DestroyVerticalScrollIndicator(u8 id)
{
- if (id < 4 && gUnknown_020388C0[id] != 0xFF)
+ if (id < 4 && gVerticalScrollIndicatorIds[id] != 0xFF)
{
- DestroySprite(&gSprites[gUnknown_020388C0[id]]);
- gUnknown_020388C0[id] = 0xFF;
+ DestroySprite(&gSprites[gVerticalScrollIndicatorIds[id]]);
+ gVerticalScrollIndicatorIds[id] = 0xFF;
}
}
@@ -530,43 +513,43 @@ static void sub_80F9834(struct Sprite *sprite)
}
}
-void sub_80F98A4(u8 id)
+void StopVerticalScrollIndicators(u8 id)
{
- if (gUnknown_020388C0[id] != 0xFF && id < 4)
+ if (gVerticalScrollIndicatorIds[id] != 0xFF && id < 4)
{
- gSprites[gUnknown_020388C0[id]].callback = SpriteCallbackDummy;
+ gSprites[gVerticalScrollIndicatorIds[id]].callback = SpriteCallbackDummy;
}
}
void StartVerticalScrollIndicators(u8 id)
{
- if (gUnknown_020388C0[id] != 0xFF && id < 4)
+ if (gVerticalScrollIndicatorIds[id] != 0xFF && id < 4)
{
- gSprites[gUnknown_020388C0[id]].callback = sub_80F9834;
+ gSprites[gVerticalScrollIndicatorIds[id]].callback = sub_80F9834;
}
}
-static void sub_80F9914(u8 id)
+static void ResetVerticalScrollIndicators(u8 id)
{
- if (gUnknown_020388C0[id] != 0xFF && id < 4)
+ if (gVerticalScrollIndicatorIds[id] != 0xFF && id < 4)
{
- gSprites[gUnknown_020388C0[id]].pos2.x = 0;
- gSprites[gUnknown_020388C0[id]].pos2.y = 0;
- gSprites[gUnknown_020388C0[id]].data[1] = 0;
- gSprites[gUnknown_020388C0[id]].data[3] = 0;
+ gSprites[gVerticalScrollIndicatorIds[id]].pos2.x = 0;
+ gSprites[gVerticalScrollIndicatorIds[id]].pos2.y = 0;
+ gSprites[gVerticalScrollIndicatorIds[id]].data[1] = 0;
+ gSprites[gVerticalScrollIndicatorIds[id]].data[3] = 0;
}
}
void PauseVerticalScrollIndicator(u8 id)
{
- sub_80F98A4(id);
- sub_80F9914(id);
+ StopVerticalScrollIndicators(id);
+ ResetVerticalScrollIndicators(id);
}
-void sub_80F9988(u8 id, u8 priority)
+void SetVerticalScrollIndicatorPriority(u8 id, u8 priority)
{
- if (gUnknown_020388C0[id] != 0xFF && id < 4)
+ if (gVerticalScrollIndicatorIds[id] != 0xFF && id < 4)
{
- gSprites[gUnknown_020388C0[id]].oam.priority = priority;
+ gSprites[gVerticalScrollIndicatorIds[id]].oam.priority = priority;
}
}
diff --git a/src/field/money.c b/src/field/money.c
index d0f0ab1f6..3b7268dbc 100644
--- a/src/field/money.c
+++ b/src/field/money.c
@@ -100,6 +100,8 @@ void GetMoneyAmountText(u8 *buffer, u32 amount, u8 arg2)
width = 7;
else if (amount > 99999)
width = 6;
+ // A special sprite is used for 10000 in the decoration
+ // shop, so be sure to account for this.
else if (amount > 10000)
width = 5;
else if (amount > 999)
@@ -143,12 +145,12 @@ void PrintMoneyAmount(u32 amount, u8 size, u8 x, u8 y)
if (stringWidth >= (size + 1) * 8)
{
- MenuPrint(buffer, x, y);
+ Menu_PrintText(buffer, x, y);
}
else
{
int xPlusOne = x + 1;
- MenuPrint_PixelCoords(buffer, (xPlusOne + size) * 8 - stringWidth, y * 8, 1);
+ Menu_PrintTextPixelCoords(buffer, (xPlusOne + size) * 8 - stringWidth, y * 8, 1);
}
}
@@ -175,7 +177,7 @@ void sub_80B7AEC(u32 arg0, u8 left, u8 top)
}
__attribute__((naked))
-void sub_80B7B34(u8 var1, u8 var2, int var3)
+void Draw10000Sprite(u8 var1, u8 var2, int var3)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -275,7 +277,7 @@ void UpdateMoneyWindow(u32 amount, u8 x, u8 y)
void OpenMoneyWindow(u32 amount, u8 x, u8 y)
{
- MenuDrawTextWindow(x, y, x + 13, y + 3);
+ Menu_DrawStdWindowFrame(x, y, x + 13, y + 3);
UpdateMoneyWindow(amount, x, y);
LoadCompressedObjectPic(gUnknown_083CF584);
@@ -288,7 +290,7 @@ void CloseMoneyWindow(u8 x, u8 y)
{
DestroySpriteAndFreeResources(&gSprites[gUnknown_02038734]);
FreeSpritePaletteByTag(SPRITE_TAG_MONEY);
- MenuZeroFillWindowRect(x, y, x + 13, y + 3);
+ Menu_EraseWindowRect(x, y, x + 13, y + 3);
}
bool8 HasEnoughMoneyFor(void)
diff --git a/src/field/overworld.c b/src/field/overworld.c
index e239daec7..07135080e 100644
--- a/src/field/overworld.c
+++ b/src/field/overworld.c
@@ -25,6 +25,7 @@
#include "link.h"
#include "load_save.h"
#include "main.h"
+#include "m4a.h"
#include "constants/maps.h"
#include "map_name_popup.h"
#include "menu.h"
@@ -47,7 +48,7 @@
#include "tileset_anim.h"
#include "time_events.h"
#include "tv.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "wild_encounter.h"
#ifdef SAPPHIRE
@@ -62,6 +63,7 @@ struct UnkTVStruct
u32 tv_field_4;
};
+extern u8 gUnknown_020297ED;
extern u16 gUnknown_03004898;
extern u16 gUnknown_0300489C;
@@ -142,7 +144,7 @@ const struct UCoords32 gUnknown_0821664C[] =
{ 1, -1},
};
-const struct UnknownTaskStruct gUnknown_08216694 =
+const struct ScanlineEffectParams gUnknown_08216694 =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -590,7 +592,7 @@ bool8 sub_80538D0(u16 x, u16 y)
void sub_80538F0(u8 mapGroup, u8 mapNum)
{
- s32 i;
+ s32 paletteIndex;
Overworld_SetWarpDestination(mapGroup, mapNum, -1, -1, -1);
sub_8053F0C();
@@ -611,8 +613,8 @@ void sub_80538F0(u8 mapGroup, u8 mapNum)
sub_8056D38(gMapHeader.mapData);
apply_map_tileset2_palette(gMapHeader.mapData);
- for (i = 6; i < 12; i++)
- sub_807D874(i);
+ for (paletteIndex = 6; paletteIndex < 12; paletteIndex++)
+ ApplyWeatherGammaShiftToPal(paletteIndex);
sub_8072ED0();
UpdateLocationHistoryForRoamer();
@@ -1106,6 +1108,68 @@ u8 sav1_map_get_battletype(void)
return Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum)->battleType;
}
+#if DEBUG
+
+void debug_sub_8076B68(void);
+
+void debug_sub_80589D8(void);
+
+void debug_sub_8058A50(void);
+
+void CB2_InitTestMenu(void)
+{
+ m4aSoundVSyncOff();
+ SetVBlankCallback(NULL);
+ DmaFill32(3, 0, (void *) VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *) PLTT, PLTT_SIZE);
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ ScanlineEffect_Stop();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ debug_sub_8076B68();
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ REG_IE |= 1;
+ REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP;
+ m4aSoundVSyncOn();
+ SetVBlankCallback(debug_sub_8058A50);
+ m4aSongNumStart(0x19D);
+ SetMainCallback2(debug_sub_80589D8);
+}
+
+void debug_sub_80589D8(void)
+{
+ if (UpdatePaletteFade())
+ return;
+
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void debug_sub_80589F4(void)
+{
+ if (UpdatePaletteFade())
+ return;
+
+ SetVBlankCallback(NULL);
+
+ DmaFill32(3, 0, (void *) VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *) PLTT, PLTT_SIZE);
+
+ SetMainCallback2(gMain.savedCallback);
+}
+
+void debug_sub_8058A50(void)
+{
+ ProcessSpriteCopyRequests();
+ LoadOam();
+ TransferPlttBuffer();
+}
+
+#endif
+
void ResetSafariZoneFlag_(void)
{
ResetSafariZoneFlag();
@@ -1210,6 +1274,33 @@ void CB2_NewGame(void)
SetMainCallback2(c2_overworld);
}
+#if DEBUG
+
+extern void (*gFieldCallback)(void);
+
+void debug_sub_8058C00(void)
+{
+ FieldClearVBlankHBlankCallbacks();
+ StopMapMusic();
+ ResetSafariZoneFlag_();
+ player_avatar_init_params_reset();
+ PlayTimeCounter_Start();
+ ScriptContext1_Init();
+ ScriptContext2_Disable();
+
+ if (gMain.heldKeys & R_BUTTON)
+ gFieldCallback = ExecuteTruckSequence;
+ else
+ gFieldCallback = sub_8080B60;
+
+ do_load_map_stuff_loop(&gMain.state);
+ SetFieldVBlankCallback();
+ set_callback1(c1_overworld);
+ SetMainCallback2(c2_overworld);
+}
+
+#endif
+
void CB2_WhiteOut(void)
{
u8 val;
@@ -1365,6 +1456,10 @@ void CB2_ContinueSavedGame(void)
{
FieldClearVBlankHBlankCallbacks();
StopMapMusic();
+#if DEBUG
+ if (gMain.heldKeys & R_BUTTON)
+ gUnknown_020297ED = TRUE;
+#endif
ResetSafariZoneFlag_();
LoadSaveblockMapHeader();
LoadSaveblockMapObjScripts();
@@ -1410,7 +1505,7 @@ void VBlankCB_Field(void)
{
LoadOam();
ProcessSpriteCopyRequests();
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
sub_8057A58();
TransferPlttBuffer();
sub_8072E74();
@@ -1422,7 +1517,7 @@ void sub_8054814(void)
if (val)
{
sub_80815E0(val);
- sub_80895F8(gUnknown_08216694);
+ ScanlineEffect_SetParams(gUnknown_08216694);
}
}
@@ -1456,8 +1551,8 @@ bool32 sub_805483C(u8 *a1)
case 4:
sub_8054814();
sub_8054C54();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
(*a1)++;
break;
case 5:
@@ -1522,8 +1617,8 @@ bool32 sub_805493C(u8 *a1, u32 a2)
case 4:
sub_8054814();
sub_8054C54();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
(*a1)++;
break;
case 5:
@@ -1612,8 +1707,8 @@ bool32 sub_8054A9C(u8 *a1)
case 3:
sub_8054814();
sub_8054C54();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
(*a1)++;
break;
case 4:
@@ -1664,29 +1759,12 @@ void do_load_map_stuff_loop(u8 *a1)
void sub_8054BA8(void)
{
- u8 *addr;
- u32 size;
-
REG_DISPCNT = 0;
- remove_some_task();
+ ScanlineEffect_Stop();
DmaClear16(3, PLTT + 2, PLTT_SIZE - 2);
-
- addr = (void *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
-
+ DmaFill16Large(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000);
ResetOamRange(0, 128);
LoadOam();
}
@@ -1695,8 +1773,8 @@ void sub_8054C2C(void)
{
sub_8054814();
sub_8054C54();
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
mapdata_load_assets_to_gpu_and_full_redraw();
}
@@ -1731,7 +1809,7 @@ void sub_8054D4C(u32 a1)
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetCameraUpdateInfo();
InstallCameraPanAheadCallback();
sub_805C7C4(0);
diff --git a/src/field/party_menu.c b/src/field/party_menu.c
index 9c1150515..66e7e2319 100644
--- a/src/field/party_menu.c
+++ b/src/field/party_menu.c
@@ -32,7 +32,7 @@
#include "string_util.h"
#include "strings.h"
#include "task.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "util.h"
#include "script_pokemon_80F9.h"
#include "ewram.h"
@@ -94,14 +94,21 @@ static void SpriteCB_UpdateHeldItemIconPosition(struct Sprite *sprite);
static void ItemUseMoveMenu_HandleMoveSelection(u8 taskId);
static void ItemUseMoveMenu_HandleCancel(u8 taskId);
static bool8 SetupDefaultPartyMenu(void);
-static void sub_806B4A8(void);
-static void VBlankCB_PartyMenu(void);
-static bool8 LoadPartyMenuGraphics(u8 a);
+/*static*/ void sub_806B4A8(void);
+/*static*/ void VBlankCB_PartyMenu(void);
+/*static*/ bool8 LoadPartyMenuGraphics(u8 a);
static void sub_806BF24(const u8 *a, u8 monIndex, u8 c, u8 d);
static void sub_806BB9C(u8 a);
static void sub_806BBEC(u8 a);
-const u16 TMHMMoves[] = {
+EWRAM_DATA u8 gUnknown_0202E8F4 = 0;
+EWRAM_DATA u8 gUnknown_0202E8F5 = 0;
+EWRAM_DATA u8 gUnknown_0202E8F6 = 0;
+EWRAM_DATA u16 gUnknown_0202E8F8 = 0;
+EWRAM_DATA u8 gPartyMenuType = 0;
+
+const u16 TMHMMoves[] =
+{
MOVE_FOCUS_PUNCH,
MOVE_DRAGON_CLAW,
MOVE_WATER_PULSE,
@@ -458,10 +465,6 @@ struct Unk201FE00
extern u16 gBattleTypeFlags;
extern u8 gTileBuffer[];
-extern u8 gUnknown_0202E8F4;
-extern u8 gUnknown_0202E8F6;
-extern u16 gUnknown_0202E8F8;
-extern u8 gPartyMenuType;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gPlayerPartyCount;
extern s32 gBattleMoveDamage;
@@ -490,9 +493,71 @@ extern const u8 gStatusPal_Icons[];
#define WINDOW_RIGHT (29)
#endif
-
-#ifdef NONMATCHING
-// Main handler for the party menu.
+#if DEBUG
+__attribute__((naked))
+void CB2_PartyMenuMain(void)
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ bl AnimateSprites\n\
+ bl BuildOamBuffer\n\
+ ldr r0, ._3 @ gPartyMenuType\n\
+ ldrb r1, [r0]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x4\n\
+ ldr r1, ._3 + 4 @ PartyMonTextSettings\n\
+ add r5, r0, r1\n\
+ mov r6, #0x0\n\
+._1:\n\
+ ldrb r0, [r5]\n\
+ lsl r0, r0, #0x3\n\
+ ldrb r1, [r5, #0x1]\n\
+ lsl r1, r1, #0x3\n\
+ ldr r2, [r5, #0x4]\n\
+ lsl r3, r6, #0x5\n\
+ mov r4, #0x80\n\
+ lsl r4, r4, #0x2\n\
+ orr r3, r3, r4\n\
+ str r3, [sp]\n\
+ mov r3, #0x0\n\
+ bl DrawPartyMenuMonText\n\
+ add r5, r5, #0x8\n\
+ add r6, r6, #0x1\n\
+ cmp r6, #0x5\n\
+ ble ._1 @cond_branch\n\
+ bl RunTasks\n\
+ bl UpdatePaletteFade\n\
+ ldr r0, ._3 + 8 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._2 @cond_branch\n\
+ ldr r0, ._3 + 12 @ gLink\n\
+ ldr r1, ._3 + 16 @ 0xfbd\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x2\n\
+ str r1, [sp]\n\
+ mov r1, #0x1\n\
+ mov r2, #0x1\n\
+ mov r3, #0x2\n\
+ bl debug_sub_8008264\n\
+._2:\n\
+ add sp, sp, #0x4\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._4:\n\
+ .align 2, 0\n\
+._3:\n\
+ .word gPartyMenuType\n\
+ .word PartyMonTextSettings\n\
+ .word gLinkOpen\n\
+ .word gLink\n\
+ .word 0xfbd");
+}
+#else
void CB2_PartyMenuMain(void)
{
const struct PartyMonTextSettingsStruct *textSettings;
@@ -506,62 +571,18 @@ void CB2_PartyMenuMain(void)
{
// Draw mon name, level, and hp sprites
DrawPartyMenuMonText(
- textSettings[i].xOffset * 8,
- textSettings[i].yOffset * 8,
- textSettings[i].oamSettings,
+ textSettings->xOffset * 8,
+ textSettings->yOffset * 8,
+ textSettings->oamSettings,
0,
(i << 5) | 0x200);
+ textSettings++;
}
RunTasks();
UpdatePaletteFade();
}
-#else
-__attribute__((naked))
-void CB2_PartyMenuMain(void)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0x4\n\
- bl AnimateSprites\n\
- bl BuildOamBuffer\n\
- ldr r0, _0806AF2C @ =gPartyMenuType\n\
- ldrb r1, [r0]\n\
- lsls r0, r1, 1\n\
- adds r0, r1\n\
- lsls r0, 4\n\
- ldr r1, _0806AF30 @ =PartyMonTextSettings\n\
- adds r5, r0, r1\n\
- movs r6, 0\n\
-_0806AEF8:\n\
- ldrb r0, [r5]\n\
- lsls r0, 3\n\
- ldrb r1, [r5, 0x1]\n\
- lsls r1, 3\n\
- ldr r2, [r5, 0x4]\n\
- lsls r3, r6, 5\n\
- movs r4, 0x80\n\
- lsls r4, 2\n\
- orrs r3, r4\n\
- str r3, [sp]\n\
- movs r3, 0\n\
- bl DrawPartyMenuMonText\n\
- adds r5, 0x8\n\
- adds r6, 0x1\n\
- cmp r6, 0x5\n\
- ble _0806AEF8\n\
- bl RunTasks\n\
- bl UpdatePaletteFade\n\
- add sp, 0x4\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0806AF2C: .4byte gPartyMenuType\n\
-_0806AF30: .4byte PartyMonTextSettings\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
+#endif
void VBlankCB_PartyMenu(void)
{
@@ -666,29 +687,432 @@ bool8 SetupDefaultPartyMenu(void)
return FALSE;
}
+#if DEBUG
+__attribute__((naked))
+bool8 InitPartyMenu(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ add sp, sp, #0xfffffff4\n\
+ ldr r0, ._55 @ gMain\n\
+ ldr r1, ._55 + 4 @ 0x43c\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x11\n\
+ bls ._53 @cond_branch\n\
+ b ._125\n\
+._53:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._55 + 8 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._56:\n\
+ .align 2, 0\n\
+._55:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+ .word ._57\n\
+._57:\n\
+ .word ._58\n\
+ .word ._59\n\
+ .word ._60\n\
+ .word ._61\n\
+ .word ._62\n\
+ .word ._63\n\
+ .word ._64\n\
+ .word ._65\n\
+ .word ._66\n\
+ .word ._67\n\
+ .word ._68\n\
+ .word ._69\n\
+ .word ._70\n\
+ .word ._71\n\
+ .word ._72\n\
+ .word ._73\n\
+ .word ._74\n\
+ .word ._75\n\
+._58:\n\
+ mov r0, #0x0\n\
+ bl SetVBlankCallback\n\
+ mov r3, #0xc0\n\
+ lsl r3, r3, #0x13\n\
+ mov r4, #0xc0\n\
+ lsl r4, r4, #0x9\n\
+ add r2, sp, #0x8\n\
+ mov r8, r2\n\
+ add r2, sp, #0x4\n\
+ mov r6, #0x0\n\
+ ldr r1, ._78 @ 0x40000d4\n\
+ mov r5, #0x80\n\
+ lsl r5, r5, #0x5\n\
+ ldr r7, ._78 + 4 @ 0x81000800\n\
+ mov r0, #0x81\n\
+ lsl r0, r0, #0x18\n\
+ mov ip, r0\n\
+._76:\n\
+ strh r6, [r2]\n\
+ add r0, sp, #0x4\n\
+ str r0, [r1]\n\
+ str r3, [r1, #0x4]\n\
+ str r7, [r1, #0x8]\n\
+ ldr r0, [r1, #0x8]\n\
+ add r3, r3, r5\n\
+ sub r4, r4, r5\n\
+ cmp r4, r5\n\
+ bhi ._76 @cond_branch\n\
+ strh r6, [r2]\n\
+ add r2, sp, #0x4\n\
+ str r2, [r1]\n\
+ str r3, [r1, #0x4]\n\
+ lsr r0, r4, #0x1\n\
+ mov r3, ip\n\
+ orr r0, r0, r3\n\
+ str r0, [r1, #0x8]\n\
+ ldr r0, [r1, #0x8]\n\
+ mov r0, #0xe0\n\
+ lsl r0, r0, #0x13\n\
+ mov r3, #0x80\n\
+ lsl r3, r3, #0x3\n\
+ mov r4, #0x0\n\
+ str r4, [sp, #0x8]\n\
+ ldr r2, ._78 @ 0x40000d4\n\
+ mov r1, r8\n\
+ str r1, [r2]\n\
+ str r0, [r2, #0x4]\n\
+ lsr r0, r3, #0x2\n\
+ mov r1, #0x85\n\
+ lsl r1, r1, #0x18\n\
+ orr r0, r0, r1\n\
+ str r0, [r2, #0x8]\n\
+ ldr r0, [r2, #0x8]\n\
+ mov r1, #0xa0\n\
+ lsl r1, r1, #0x13\n\
+ add r0, sp, #0x4\n\
+ strh r4, [r0]\n\
+ str r0, [r2]\n\
+ str r1, [r2, #0x4]\n\
+ lsr r3, r3, #0x1\n\
+ mov r0, #0x81\n\
+ lsl r0, r0, #0x18\n\
+ orr r3, r3, r0\n\
+ str r3, [r2, #0x8]\n\
+ ldr r0, [r2, #0x8]\n\
+ ldr r2, ._78 + 8 @ gPaletteFade\n\
+ ldrb r0, [r2, #0x8]\n\
+ mov r1, #0x80\n\
+ orr r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+ ldr r1, ._78 + 12 @ gMain\n\
+ ldr r2, ._78 + 16 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._79:\n\
+ .align 2, 0\n\
+._78:\n\
+ .word 0x40000d4\n\
+ .word 0x81000800\n\
+ .word gPaletteFade\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._59:\n\
+ bl ScanlineEffect_Stop\n\
+ b ._115\n\
+._60:\n\
+ bl sub_806B4A8\n\
+ ldr r1, ._82 @ \n\
+ mov r2, #0x99\n\
+ lsl r2, r2, #0x2\n\
+ add r0, r1, r2\n\
+ mov r2, #0x0\n\
+ strh r2, [r0]\n\
+ ldr r3, ._82 + 4 @ \n\
+ add r0, r1, r3\n\
+ strh r2, [r0]\n\
+ mov r0, #0x9a\n\
+ lsl r0, r0, #0x2\n\
+ add r1, r1, r0\n\
+ strh r2, [r1]\n\
+ ldr r1, ._82 + 8 @ \n\
+ ldr r2, ._82 + 12 @ \n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._83:\n\
+ .align 2, 0\n\
+._82:\n\
+ .word +0x201b000\n\
+ .word 0x266\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._61:\n\
+ bl ResetSpriteData\n\
+ b ._115\n\
+._62:\n\
+ ldr r0, ._88 @ \n\
+ mov r1, #0x96\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ beq ._86 @cond_branch\n\
+ cmp r0, #0x5\n\
+ beq ._86 @cond_branch\n\
+ bl ResetTasks\n\
+._86:\n\
+ ldr r1, ._88 + 4 @ \n\
+ ldr r2, ._88 + 8 @ \n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._89:\n\
+ .align 2, 0\n\
+._88:\n\
+ .word +0x201b000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._63:\n\
+ bl FreeAllSpritePalettes\n\
+ b ._115\n\
+._64:\n\
+ ldr r4, ._92 @ \n\
+ mov r1, #0x97\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r4, r1\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x0\n\
+ bl CreateTask\n\
+ mov r2, #0x98\n\
+ lsl r2, r2, #0x2\n\
+ add r1, r4, r2\n\
+ strb r0, [r1]\n\
+ b ._115\n\
+._93:\n\
+ .align 2, 0\n\
+._92:\n\
+ .word +0x201b000\n\
+._65:\n\
+ ldr r0, ._95 @ gWindowTemplate_81E6C90\n\
+ bl Text_LoadWindowTemplate\n\
+ ldr r1, ._95 + 4 @ gMain\n\
+ ldr r0, ._95 + 8 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._122\n\
+._96:\n\
+ .align 2, 0\n\
+._95:\n\
+ .word gWindowTemplate_81E6C90\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._66:\n\
+ ldr r4, ._98 @ gUnknown_03004210\n\
+ ldr r1, ._98 + 4 @ gWindowTemplate_81E6C90\n\
+ add r0, r4, #0\n\
+ bl Text_InitWindowWithTemplate\n\
+ add r0, r4, #0\n\
+ mov r1, #0x1\n\
+ bl MultistepInitWindowTileData\n\
+ ldr r1, ._98 + 8 @ gMain\n\
+ ldr r2, ._98 + 12 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._99:\n\
+ .align 2, 0\n\
+._98:\n\
+ .word gUnknown_03004210\n\
+ .word gWindowTemplate_81E6C90\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._67:\n\
+ bl MultistepLoadFont\n\
+ cmp r0, #0\n\
+ bne ._100 @cond_branch\n\
+ b ._125\n\
+._100:\n\
+ ldr r0, ._103 @ \n\
+ mov r3, #0x99\n\
+ lsl r3, r3, #0x2\n\
+ add r0, r0, r3\n\
+ mov r1, #0x1\n\
+ strh r1, [r0]\n\
+ ldr r1, ._103 + 4 @ \n\
+ ldr r0, ._103 + 8 @ \n\
+ add r1, r1, r0\n\
+ b ._122\n\
+._104:\n\
+ .align 2, 0\n\
+._103:\n\
+ .word +0x201b000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._68:\n\
+ ldr r0, ._107 @ \n\
+ mov r1, #0x99\n\
+ lsl r1, r1, #0x2\n\
+ add r4, r0, r1\n\
+ ldrb r0, [r4]\n\
+ bl LoadPartyMenuGraphics\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bne ._105 @cond_branch\n\
+ mov r0, #0x0\n\
+ strh r0, [r4]\n\
+ ldr r1, ._107 + 4 @ \n\
+ ldr r2, ._107 + 8 @ \n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._108:\n\
+ .align 2, 0\n\
+._107:\n\
+ .word +0x201b000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._105:\n\
+ ldrh r0, [r4]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4]\n\
+ b ._125\n\
+._69:\n\
+ bl sub_809D51C\n\
+ b ._115\n\
+._70:\n\
+ ldr r2, ._113 @ PartyMenuHandlers\n\
+ ldr r0, ._113 + 4 @ \n\
+ mov r1, #0x96\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0]\n\
+ lsl r0, r1, #0x1\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x2\n\
+ add r2, r2, #0x4\n\
+ add r0, r0, r2\n\
+ ldr r0, [r0]\n\
+ bl _call_via_r0\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x1\n\
+ bne ._125 @cond_branch\n\
+ ldr r1, ._113 + 8 @ \n\
+ ldr r2, ._113 + 12 @ \n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._114:\n\
+ .align 2, 0\n\
+._113:\n\
+ .word PartyMenuHandlers\n\
+ .word +0x201b000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._71:\n\
+ ldr r0, ._116 @ gWindowTemplate_81E6CC8\n\
+ bl MultistepInitMenuWindowBegin\n\
+ b ._115\n\
+._117:\n\
+ .align 2, 0\n\
+._116:\n\
+ .word gWindowTemplate_81E6CC8\n\
+._72:\n\
+ bl MultistepInitMenuWindowContinue\n\
+ cmp r0, #0\n\
+ beq ._125 @cond_branch\n\
+ ldr r1, ._120 @ gMain\n\
+ ldr r0, ._120 + 4 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._122\n\
+._121:\n\
+ .align 2, 0\n\
+._120:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._73:\n\
+ ldr r0, ._123 @ \n\
+ ldr r1, ._123 + 4 @ \n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x0\n\
+ bl PrintPartyMenuPromptText\n\
+ ldr r1, ._123 + 8 @ \n\
+ ldr r2, ._123 + 12 @ \n\
+ add r1, r1, r2\n\
+ b ._122\n\
+._124:\n\
+ .align 2, 0\n\
+._123:\n\
+ .word +0x201b000\n\
+ .word 0x259\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._74:\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r2, ._126 @ gPaletteFade\n\
+ ldrb r1, [r2, #0x8]\n\
+ mov r0, #0x7f\n\
+ and r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+._115:\n\
+ ldr r1, ._126 + 4 @ gMain\n\
+ ldr r3, ._126 + 8 @ 0x43c\n\
+ add r1, r1, r3\n\
+._122:\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ b ._125\n\
+._127:\n\
+ .align 2, 0\n\
+._126:\n\
+ .word gPaletteFade\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._75:\n\
+ ldr r0, ._130 @ VBlankCB_PartyMenu\n\
+ bl SetVBlankCallback\n\
+ ldr r0, ._130 + 4 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._128 @cond_branch\n\
+ ldr r0, ._130 + 8 @ 0x600e5e0\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x8\n\
+ ldr r2, ._130 + 12 @ 0x6007800\n\
+ mov r3, #0x2\n\
+ bl debug_sub_8008218\n\
+._128:\n\
+ mov r0, #0x1\n\
+ b ._129\n\
+._131:\n\
+ .align 2, 0\n\
+._130:\n\
+ .word VBlankCB_PartyMenu+1\n\
+ .word gLinkOpen\n\
+ .word 0x600e5e0\n\
+ .word 0x6007800\n\
+._125:\n\
+ mov r0, #0x0\n\
+._129:\n\
+ add sp, sp, #0xc\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r1}\n\
+ bx r1");
+}
+#else
bool8 InitPartyMenu(void)
{
- u8 *addr;
- u32 size;
-
switch (gMain.state)
{
case 0:
SetVBlankCallback(NULL);
- addr = (u8 *)VRAM;
- size = VRAM_SIZE;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
-
+ DmaFill16Large(3, 0, (void *)(VRAM + 0x0), VRAM_SIZE, 0x1000);
DmaClear32(3, OAM, OAM_SIZE);
DmaClear16(3, PLTT, PLTT_SIZE);
@@ -696,7 +1120,7 @@ bool8 InitPartyMenu(void)
gMain.state++;
break;
case 1:
- remove_some_task();
+ ScanlineEffect_Stop();
gMain.state++;
break;
case 2:
@@ -727,11 +1151,11 @@ bool8 InitPartyMenu(void)
gMain.state++;
break;
case 7:
- SetUpWindowConfig(&gWindowConfig_81E6C90);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C90);
gMain.state++;
break;
case 8:
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C90);
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C90);
MultistepInitWindowTileData(&gUnknown_03004210, 1);
gMain.state++;
break;
@@ -764,7 +1188,7 @@ bool8 InitPartyMenu(void)
}
break;
case 13:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6CC8);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6CC8);
gMain.state++;
break;
case 14:
@@ -789,6 +1213,7 @@ bool8 InitPartyMenu(void)
return FALSE;
}
+#endif
void CB2_InitPartyMenu(void)
{
@@ -841,9 +1266,7 @@ void ReDrawPartyMonBackgrounds(void)
{
if (ewram1B000.unk261)
{
- const void *src = gBGTilemapBuffers[2];
- void *dest = (void *)(BG_VRAM + 0x3000);
- DmaCopy16(3, src, dest, 0x800);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(BG_VRAM + 0x3000), 0x800);
if (ewram1B000.unk261 == 2)
{
@@ -1226,8 +1649,6 @@ void sub_806BBEC(u8 a)
}
}
-#ifdef NONMATCHING
-// The original THUMB is preserving r8 for seemingly no reason. Unsure how to match.
void sub_806BC3C(u8 monIndex, u8 b)
{
u16 *vramPtr = gUnknown_08376918[IsDoubleBattle()][monIndex];
@@ -1240,74 +1661,10 @@ void sub_806BC3C(u8 monIndex, u8 b)
vramPtr[i] = gUnknown_08E9A300[offset] + 0x10C;
vramPtr[i + 0x20] = gUnknown_08E9A300[offset + 0x20] + 0x10C;
}
+
+ // Some dead code was likely optimized out, but the compiler still think r8 was used.
+ asm("":::"r8");
}
-#else
-__attribute__((naked))
-void sub_806BC3C(u8 monIndex, u8 b)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- adds r4, r0, 0\n\
- adds r5, r1, 0\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- ldr r6, _0806BCB0 @ =gUnknown_08376918\n\
- bl IsDoubleBattle\n\
- lsls r4, 2\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- lsls r1, r0, 1\n\
- adds r1, r0\n\
- lsls r1, 3\n\
- adds r4, r1\n\
- adds r4, r6\n\
- ldr r7, [r4]\n\
- movs r6, 0\n\
- adds r0, r5, 0\n\
- movs r1, 0x7\n\
- bl __udivsi3\n\
- lsls r0, 24\n\
- lsrs r4, r0, 19\n\
- ldr r5, _0806BCB4 @ =gUnknown_08E9A300\n\
- movs r0, 0x86\n\
- lsls r0, 1\n\
- adds r3, r0, 0\n\
-_0806BC7C:\n\
- adds r1, r6, r4\n\
- lsls r2, r6, 1\n\
- adds r2, r7\n\
- lsls r0, r1, 1\n\
- adds r0, r5\n\
- ldrh r0, [r0]\n\
- adds r0, r3, r0\n\
- strh r0, [r2]\n\
- adds r2, 0x40\n\
- adds r1, 0x20\n\
- lsls r1, 1\n\
- adds r1, r5\n\
- ldrh r1, [r1]\n\
- adds r0, r3, r1\n\
- strh r0, [r2]\n\
- adds r0, r6, 0x1\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- cmp r6, 0x6\n\
- bls _0806BC7C\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0806BCB0: .4byte gUnknown_08376918\n\
-_0806BCB4: .4byte gUnknown_08E9A300\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
void unref_sub_806BCB8(u8 a)
{
@@ -2790,26 +3147,26 @@ void PrintPartyMenuPromptText(u8 textId, u8 b)
switch (b)
{
case 0:
- MenuDrawTextWindow(0, 16, 23, 19);
+ Menu_DrawStdWindowFrame(0, 16, 23, 19);
break;
case 1:
- MenuDrawTextWindow(0, 16, 19, 19);
+ Menu_DrawStdWindowFrame(0, 16, 19, 19);
break;
case 2:
- MenuDrawTextWindow(0, 16, 22, 19);
+ Menu_DrawStdWindowFrame(0, 16, 22, 19);
break;
case 3:
- MenuDrawTextWindow(0, 16, 18, 19);
+ Menu_DrawStdWindowFrame(0, 16, 18, 19);
break;
}
- MenuPrint(PartyMenuPromptTexts[textId], 1, 17);
+ Menu_PrintText(PartyMenuPromptTexts[textId], 1, 17);
}
}
void sub_806D5A4(void)
{
- MenuZeroFillWindowRect(0, 16, 29, 19);
+ Menu_EraseWindowRect(0, 16, 29, 19);
}
void sub_806D5B8(u8 monIndex)
@@ -2820,7 +3177,7 @@ void sub_806D5B8(u8 monIndex)
u8 right = gUnknown_08376948[IsDoubleBattle()][monIndex].right;
u8 bottom = gUnknown_08376948[IsDoubleBattle()][monIndex].bottom;
- ZeroFillWindowRect(&gUnknown_03004210, left, top, right, bottom);
+ Text_EraseWindowRect(&gUnknown_03004210, left, top, right, bottom);
var1 = 0;
CpuFastSet(&var1, OBJ_VRAM1 + monIndex * 0x400, 0x1000100);
@@ -2834,7 +3191,7 @@ void sub_806D668(u8 monIndex)
u8 right = gUnknown_08376978[IsDoubleBattle()][monIndex].right;
u8 bottom = gUnknown_08376978[IsDoubleBattle()][monIndex].bottom;
- ZeroFillWindowRect(&gUnknown_03004210, left, top, right, bottom);
+ Text_EraseWindowRect(&gUnknown_03004210, left, top, right, bottom);
var1 = 0;
CpuFastSet(&var1, OBJ_VRAM1 + 0x300 + monIndex * 0x400, 0x1000040);
@@ -3427,7 +3784,7 @@ void PartyMenuDoPrintMonNickname(u8 monIndex, int b, const u8 *nameBuffer)
{
u32 var1 = 0;
CpuFastSet(&var1, gTileBuffer, 0x1000100);
- sub_8004E3C((struct WindowConfig *)&gWindowConfig_81E6CAC, gTileBuffer, nameBuffer);
+ Text_InitWindow8004E3C((struct WindowTemplate *)&gWindowTemplate_81E6CAC, gTileBuffer, nameBuffer);
CpuFastSet(gTileBuffer, OBJ_VRAM1 + (monIndex * 0x400), 128);
}
@@ -3537,7 +3894,7 @@ void PartyMenuDoPrintLevel(u8 monIndex, u8 menuLayout, u8 level)
var1 = 0;
CpuFastSet(&var1, gUnknown_02039460, 0x1000020);
- sub_8004E3C((struct WindowConfig *)&gWindowConfig_81E6CAC, gUnknown_02039460 - 0x100 /*gTileBuffer*/, gStringVar1);
+ Text_InitWindow8004E3C((struct WindowTemplate *)&gWindowTemplate_81E6CAC, gUnknown_02039460 - 0x100 /*gTileBuffer*/, gStringVar1);
CpuFastSet(gUnknown_02039460, OBJ_VRAM1 + 0x200 + (monIndex * 0x400), 32);
}
@@ -3631,7 +3988,7 @@ void PartyMenuDoPrintHP(u8 monIndex, u8 b, u16 currentHP, u16 maxHP)
var = 0;
CpuFastSet(&var, gUnknown_02039460, 0x1000040);
- sub_8004E3C((struct WindowConfig *)&gWindowConfig_81E6CAC, gUnknown_02039460 - 0x100 /*gTileBuffer*/, gStringVar1);
+ Text_InitWindow8004E3C((struct WindowTemplate *)&gWindowTemplate_81E6CAC, gUnknown_02039460 - 0x100 /*gTileBuffer*/, gStringVar1);
CpuFastSet(gUnknown_02039460, OBJ_VRAM1 + 0x300 + (monIndex * 0x400), 64);
}
@@ -3781,8 +4138,8 @@ void ClosePartyPopupMenu(u8 index, const struct PartyPopupMenu *menu)
SetPartyPopupMenuOffsets(index, &left, &top, menu);
- MenuZeroFillWindowRect(left, top, left + menu[index].width, menu[index].numChoices * 2 + top + 1);
- HandleDestroyMenuCursors();
+ Menu_EraseWindowRect(left, top, left + menu[index].width, menu[index].numChoices * 2 + top + 1);
+ Menu_DestroyCursor();
}
TaskFunc PartyMenuGetPopupMenuFunc(u8 menuIndex, const struct PartyPopupMenu *menus, const struct MenuAction2 *menuActions, u8 itemIndex)
@@ -3797,7 +4154,7 @@ u8 sub_806E834(const u8 *message, u8 arg1)
gUnknown_0202E8F6 = 1;
- MenuDrawTextWindow(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
+ Menu_DrawStdWindowFrame(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
MenuPrintMessage(message, WINDOW_LEFT + 1, 15);
taskId = CreateTask(sub_806E884, 1);
@@ -3808,11 +4165,11 @@ u8 sub_806E834(const u8 *message, u8 arg1)
static void sub_806E884(u8 taskId)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
gUnknown_0202E8F6 = 0;
if (gTasks[taskId].data[0] == 0)
- MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
+ Menu_EraseWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
DestroyTask(taskId);
}
}
@@ -3902,13 +4259,13 @@ void party_menu_link_mon_held_item_object(u8 taskId)
void PartyMenuTryGiveMonHeldItem_806EACC(u8 taskId)
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
u16 currentItem;
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
currentItem = GetMonData(ewram1C000.pokemon, MON_DATA_HELD_ITEM);
RemoveBagItem(ewram1C000.unk6, 1);
if (AddBagItem(currentItem, 1) == TRUE)
@@ -3937,7 +4294,7 @@ void PartyMenuTryGiveMonHeldItem_806EACC(u8 taskId)
return;
if (selection == -1)
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
}
gTasks[taskId].func = party_menu_link_mon_held_item_object;
}
@@ -4039,7 +4396,7 @@ void DoTakeMail(u8 taskId, TaskFunc func)
void Task_LoseMailMessage(u8 taskId)
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
@@ -4052,7 +4409,7 @@ void Task_LoseMailMessage(u8 taskId)
{
sub_806E834(gOtherText_BagFullCannotRemoveItem, 0);
}
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
gTasks[taskId].func = party_menu_link_mon_held_item_object;
}
else
@@ -4061,8 +4418,8 @@ void Task_LoseMailMessage(u8 taskId)
return;
if (selection == -1)
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskId].func = party_menu_link_mon_held_item_object;
}
}
@@ -4078,11 +4435,11 @@ void Task_ConfirmLoseMailMessage(u8 taskId)
void Task_TakeHeldMail(u8 taskId)
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
if (TakeMailFromMon2(ewram1C000.pokemon) != 0xFF)
sub_806E834(gOtherText_MailWasSent, 0);
else
@@ -4095,7 +4452,7 @@ void Task_TakeHeldMail(u8 taskId)
return;
if (selection == -1)
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
sub_806E834(gOtherText_MailRemovedMessageLost, 1);
gTasks[taskId].func = Task_ConfirmLoseMailMessage;
}
@@ -4112,7 +4469,7 @@ void Task_ConfirmTakeHeldMail(u8 taskId)
u16 ItemIdToBattleMoveId(u16 item)
{
- u16 machineNumber = item - ITEM_TM01;
+ u16 machineNumber = item - ITEM_TM01_FOCUS_PUNCH;
return TMHMMoves[machineNumber];
}
@@ -4136,6 +4493,10 @@ void TeachMonTMMove(u8 taskId, u16 move, TaskFunc func)
CreateTask(Task_TeamMonTMMove, 5);
}
+#if DEBUG
+extern u8 gUnknown_020297ED;
+#endif
+
void Task_TeamMonTMMove(u8 taskId)
{
GetMonNickname(ewram1C000.pokemon, gStringVar1);
@@ -4150,7 +4511,11 @@ void Task_TeamMonTMMove(u8 taskId)
}
else
{
- if (!CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33))
+ if (
+#if DEBUG
+ !gUnknown_020297ED &&
+#endif
+ !CanMonLearnTMHM(ewram1C000.pokemon, ewram1C000.unk6 - 33))
{
StringExpandPlaceholders(gStringVar4, gOtherText_NotCompatible);
sub_806E834(gStringVar4, 1);
@@ -4240,11 +4605,11 @@ void sub_806F358(u8 taskId)
void sub_806F390(u8 taskId)
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
sub_806E834(gOtherText_WhichMoveToForget2, 1);
gTasks[taskId].func = sub_806F44C;
}
@@ -4320,7 +4685,7 @@ void StopTryingToTeachMove_806F588(u8 taskId)
void StopTryingToTeachMove_806F614(u8 taskId)
{
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
StringExpandPlaceholders(gStringVar4, gOtherText_StopTryingTo);
sub_806E834(gStringVar4, 1);
@@ -4338,11 +4703,11 @@ void StopTryingToTeachMove_806F67C(u8 taskId)
void StopTryingToTeachMove_806F6B4(u8 taskId)
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
GetMonNickname(ewram1C000.pokemon, gStringVar1);
StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
StringExpandPlaceholders(gStringVar4, gOtherText_DidNotLearnMove2);
@@ -4355,7 +4720,7 @@ void StopTryingToTeachMove_806F6B4(u8 taskId)
return;
if (selection == -1)
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(23, 8, 29, 13);
GetMonNickname(ewram1C000.pokemon, gStringVar1);
StringCopy(gStringVar2, gMoveNames[ewram1C000.unk8]);
StringExpandPlaceholders(gStringVar4, gOtherText_WantsToLearn);
@@ -4706,7 +5071,7 @@ void sub_8070088(u8 taskId)
else
{
gUnknown_0202E8F4 = 1;
- MenuZeroFillWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
+ Menu_EraseWindowRect(WINDOW_LEFT, 14, WINDOW_RIGHT, 19);
PlaySE(SE_KAIFUKU);
PartyMenuUpdateLevelOrStatus(ewram1C000.pokemon, ewram1C000.unk5);
task_pc_turn_off(&gUnknown_083769A8[IsDoubleBattle() * 12 + ewram1C000.unk5 * 2], 9);
@@ -4763,12 +5128,12 @@ void CreateItemUseMoveMenu(u8 partyMonIndex)
u8 i;
r6 = 0;
- MenuDrawTextWindow(19, 10, 29, 19);
+ Menu_DrawStdWindowFrame(19, 10, 29, 19);
for (i = 0; i < 4; i++)
{
u16 move = GetMonData(&gPlayerParty[partyMonIndex], MON_DATA_MOVE1 + i);
- MenuPrint(gMoveNames[move], 20, i * 2 + 11);
+ Menu_PrintText(gMoveNames[move], 20, i * 2 + 11);
if (move != 0)
r6++;
}
@@ -4780,12 +5145,12 @@ void Task_HandleItemUseMoveMenuInput(u8 taskId)
if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
else if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
else if (gMain.newKeys & A_BUTTON)
{
@@ -4827,17 +5192,17 @@ void DoPPRecoveryItemEffect(u8 taskId, u16 item, TaskFunc c)
void ItemUseMoveMenu_HandleMoveSelection(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(19, 10, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(19, 10, 29, 19);
sub_806D5A4();
- gTasks[taskId].data[11] = GetMenuCursorPos();
+ gTasks[taskId].data[11] = Menu_GetCursorPos();
DoRecoverPP(taskId);
}
void ItemUseMoveMenu_HandleCancel(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(19, 10, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(19, 10, 29, 19);
if (gMain.inBattle)
gTasks[ewram1C000.unk4].func = HandleBattlePartyMenu;
else
@@ -4880,7 +5245,8 @@ void DoPPUpItemEffect(u8 taskId, u16 b, TaskFunc c)
gMain.newKeys = 0;
}
-static const u8 *const StatNames[] = {
+static const u8 *const StatNames[] =
+{
gOtherText_HP,
gOtherText_Attack,
gOtherText_Defense,
@@ -4889,7 +5255,8 @@ static const u8 *const StatNames[] = {
gOtherText_Speed,
};
-static const u8 StatDataTypes[] = {
+static const u8 StatDataTypes[] =
+{
MON_DATA_MAX_HP,
MON_DATA_ATK,
MON_DATA_DEF,
@@ -4897,6 +5264,17 @@ static const u8 StatDataTypes[] = {
MON_DATA_SPDEF,
MON_DATA_SPEED,
};
+
+#if DEBUG
+
+const u8 gUnknown_Debug_839B6CE[] = {0x40, 0, 0, 0, 0x44, 0, 0xFF, 0, 0, 0};
+
+const u8 gUnknown_Debug_839B6D8[] = _(
+ "{STR_VAR_1}かい じっこう\n"
+ "{STR_VAR_2}たんいじかん しょうひ");
+
+#endif
+
void DoRareCandyItemEffect(u8 taskId, u16 b, TaskFunc c)
{
u8 i;
@@ -4966,7 +5344,7 @@ void PrintStatGrowthsInLevelUpWindow(u8 taskId)
{
u8 i;
- MenuDrawTextWindow(11, 0, 29, 7);
+ Menu_DrawStdWindowFrame(11, 0, 29, 7);
for (i = 0; i < NUM_STATS; i++)
{
@@ -4982,12 +5360,12 @@ void PrintStatGrowthsInLevelUpWindow(u8 taskId)
x = (i / 3) * 9 + 11;
y = ((i % 3) << 1) + 1;
- MenuPrint_PixelCoords(StatNames[i], (x + 1) * 8, y * 8, 1);
+ Menu_PrintTextPixelCoords(StatNames[i], (x + 1) * 8, y * 8, 1);
if (i == 2)
- MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 0);
+ Menu_PrintTextPixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 0);
else
- MenuPrint_PixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 1);
+ Menu_PrintTextPixelCoords(gOtherText_TallPlusAndRightArrow, (x + 6) * 8 + 6, y * 8, 1);
gStringVar1[0] = EXT_CTRL_CODE_BEGIN;
gStringVar1[1] = 0x14;
@@ -4995,7 +5373,7 @@ void PrintStatGrowthsInLevelUpWindow(u8 taskId)
ConvertIntToDecimalStringN(gStringVar1 + 3, ewram1B000.statGrowths[i], 1, 2);
- MenuPrint_PixelCoords(gStringVar1, (x + 6) * 8 + 12, y * 8, 0);
+ Menu_PrintTextPixelCoords(gStringVar1, (x + 6) * 8 + 12, y * 8, 0);
}
}
#elif GERMAN
@@ -5011,7 +5389,7 @@ void PrintStatGrowthsInLevelUpWindow(u8 taskId) {
movs r1, 0\n\
movs r2, 0x1D\n\
movs r3, 0x7\n\
- bl MenuDrawTextWindow\n\
+ bl Menu_DrawStdWindowFrame\n\
movs r7, 0\n\
ldr r0, _0807092C @ =gStringVar1\n\
mov r10, r0\n\
@@ -5095,7 +5473,7 @@ _0807086C:\n\
mov r0, r10\n\
adds r1, r4, 0\n\
adds r2, r5, 0\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
adds r0, r7, 0x1\n\
lsls r0, 24\n\
lsrs r7, r0, 24\n\
@@ -5142,7 +5520,7 @@ void PrintNewStatsInLevelUpWindow(u8 taskId)
gStringVar1[2] = 0x06;
ConvertIntToDecimalStringN(gStringVar1 + 3, ewram1B000.statGrowths[newStatIndex], 1, 3);
- MenuPrint_PixelCoords(gStringVar1, (x + 6) * 8 + 6, y * 8, 0);
+ Menu_PrintTextPixelCoords(gStringVar1, (x + 6) * 8 + 6, y * 8, 0);
}
}
@@ -5184,7 +5562,7 @@ void Task_RareCandy3(u8 taskId)
u16 learnedMove;
u16 evolutionSpecies;
- MenuZeroFillWindowRect(11, 0, 29, 7);
+ Menu_EraseWindowRect(11, 0, 29, 7);
learnedMove = MonTryLearningNewMove(ewram1C000.pokemon, TRUE);
ewram1B000.unk282 = 1;
@@ -5628,9 +6006,13 @@ _08070F8A:\n\
}
#endif // NONMATCHING
+
+// Maybe this goes in start_menu.c
+#if !DEBUG
void unref_sub_8070F90(void)
{
FlagSet(FLAG_SYS_POKEDEX_GET);
FlagSet(FLAG_SYS_POKEMON_GET);
FlagSet(FLAG_SYS_POKENAV_GET);
}
+#endif
diff --git a/src/field/pc_screen_effect.c b/src/field/pc_screen_effect.c
index 364fca0aa..dcc3bc9c9 100644
--- a/src/field/pc_screen_effect.c
+++ b/src/field/pc_screen_effect.c
@@ -2,18 +2,7 @@
#include "main.h"
#include "palette.h"
#include "sprite.h"
-
-struct UnkStruct
-{
- /*0x00*/ u16 tileTag;
- /*0x02*/ u16 paletteTag;
- /*0x04*/ u16 unk04;
- /*0x06*/ u16 unk06;
- /*0x08*/ u16 unk08;
- /*0x0A*/ u16 unk0A;
- /*0x0C*/ s16 unk0C;
- /*0x10*/ u32 selectedPalettes;
-};
+#include "pc_screen_effect.h"
void sub_80C603C(void);
void sub_80C6078(void);
@@ -30,7 +19,7 @@ extern const u16 gUnknownPal_083D18EC[16];
extern const u8 gUnknownGfx_083D190C[128];
-extern struct UnkStruct *gUnknown_020387EC;
+EWRAM_DATA struct PCScreenEffectStruct *gUnknown_020387EC = NULL;
const struct SpriteSheet gUnknown_083D1898 = { gUnknownGfx_083D190C, sizeof(gUnknownGfx_083D190C), 0 };
@@ -58,7 +47,7 @@ const struct SpriteTemplate gSpriteTemplate_83D18C0 =
sub_80C6130,
};
-void sub_80C5CD4(struct UnkStruct *unkStruct)
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct)
{
u16 i;
diff --git a/src/field/player_pc.c b/src/field/player_pc.c
index 4fef09386..27427ecaa 100644
--- a/src/field/player_pc.c
+++ b/src/field/player_pc.c
@@ -29,9 +29,9 @@ extern void DestroyVerticalScrollIndicator(u8);
extern void PauseVerticalScrollIndicator(u8);
extern void LoadScrollIndicatorPalette(void);
extern void ClearMailStruct(struct MailStruct *);
-extern u8 sub_807D770(void);
+extern u8 IsWeatherNotFadingIn(void);
extern void sub_808B020(void);
-extern void sub_80F944C(void);
+extern void ClearVerticalScrollIndicatorPalettes(void);
static EWRAM_DATA const u8 *gPcItemMenuOptionOrder = NULL;
@@ -217,8 +217,8 @@ void PlayerPC(void)
static void InitPlayerPCMenu(u8 taskId)
{
- MenuDrawTextWindow(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1);
- PrintMenuItemsReordered(1, 1, gPcItemMenuOptionsNum, sPlayerPCMenuActions, gPcItemMenuOptionOrder);
+ Menu_DrawStdWindowFrame(0, 0, 10, gPcItemMenuOptionsNum * 2 + 1);
+ Menu_PrintItemsReordered(1, 1, gPcItemMenuOptionsNum, sPlayerPCMenuActions, gPcItemMenuOptionOrder);
InitMenu(0, 1, 1, gPcItemMenuOptionsNum, 0, 9);
TASK.FUNC = PlayerPCProcessMenuInput;
}
@@ -228,22 +228,22 @@ static void PlayerPCProcessMenuInput(u8 taskId)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
else if (gMain.newKeys & A_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
- sPlayerPCMenuActions[gPcItemMenuOptionOrder[GetMenuCursorPos()]].func(taskId);
+ sPlayerPCMenuActions[gPcItemMenuOptionOrder[Menu_GetCursorPos()]].func(taskId);
}
else if (gMain.newKeys & B_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
sPlayerPCMenuActions[gPcItemMenuOptionsNum[gPcItemMenuOptionOrder - 1]].func(taskId); // run EXIT.
}
@@ -262,7 +262,7 @@ static void PlayerPC_ItemStorage(u8 taskId)
static void PlayerPC_Mailbox(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 10, 9);
+ Menu_EraseWindowRect(0, 0, 10, 9);
eMailboxInfo.count = GetMailboxMailCount();
if (eMailboxInfo.count == 0)
@@ -280,7 +280,7 @@ static void PlayerPC_Mailbox(u8 taskId)
static void PlayerPC_Decoration(u8 var)
{
- MenuZeroFillWindowRect(0, 0, 10, 9);
+ Menu_EraseWindowRect(0, 0, 10, 9);
DoPlayerPCDecoration(var);
}
@@ -288,7 +288,7 @@ static void PlayerPC_TurnOff(u8 taskId)
{
if (gPcItemMenuOptionsNum == 4) // if the option count is 4, we are at the bedroom PC and not player PC, so do gender specific handling.
{
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ Menu_EraseWindowRect(0, 0, 0x1D, 0x13);
if (gSaveBlock2.playerGender == MALE)
ScriptContext1_SetupScript(gBrendanHouse_TurnPCOff);
@@ -297,7 +297,7 @@ static void PlayerPC_TurnOff(u8 taskId)
}
else
{
- MenuZeroFillWindowRect(0, 0, 10, 9);
+ Menu_EraseWindowRect(0, 0, 10, 9);
EnableBothScriptContexts();
}
DestroyTask(taskId);
@@ -305,17 +305,17 @@ static void PlayerPC_TurnOff(u8 taskId)
static void InitItemStorageMenu(u8 var)
{
- MenuZeroFillWindowRect(0, 0, 10, 9);
- MenuDrawTextWindow(0, 0, 11, 9);
- PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText);
+ Menu_EraseWindowRect(0, 0, 10, 9);
+ Menu_DrawStdWindowFrame(0, 0, 11, 9);
+ Menu_PrintItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText);
InitMenu(0, 1, 1, 4, var, 10);
ItemStorageMenuPrint(gPCText_OptionDescList[var]);
}
static void ItemStorageMenuPrint(const u8 *textPtr)
{
- MenuFillWindowRectWithBlankTile(2, 15, 27, 18);
- MenuPrint(textPtr, 2, 15);
+ Menu_BlankWindowRect(2, 15, 27, 18);
+ Menu_PrintText(textPtr, 2, 15);
}
static void ItemStorageMenuProcessInput(u8 var)
@@ -323,23 +323,23 @@ static void ItemStorageMenuProcessInput(u8 var)
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
- ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()]);
+ Menu_MoveCursor(-1);
+ ItemStorageMenuPrint(gPCText_OptionDescList[Menu_GetCursorPos()]);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
- ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()]);
+ Menu_MoveCursor(1);
+ ItemStorageMenuPrint(gPCText_OptionDescList[Menu_GetCursorPos()]);
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- gPCText_ItemPCOptionsText[GetMenuCursorPos()].func(var);
+ gPCText_ItemPCOptionsText[Menu_GetCursorPos()].func(var);
}
else if (gMain.newKeys & B_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
gPCText_ItemPCOptionsText[ITEMPC_MENU_EXIT].func(var);
}
@@ -357,18 +357,18 @@ static void Task_ItemStorage_Deposit(u8 taskId)
static void ItemStorage_Deposit(u8 taskId)
{
TASK.FUNC = Task_ItemStorage_Deposit;
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
static void ItemStorage_HandleReturnToProcessInput(u8 taskId)
{
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
TASK.FUNC = ItemStorageMenuProcessInput;
}
void ItemStorage_ReturnToMenuAfterDeposit(void)
{
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
InitItemStorageMenu(ITEMPC_MENU_DEPOSIT);
CreateTask(ItemStorage_HandleReturnToProcessInput, 0);
pal_fill_black();
@@ -378,13 +378,13 @@ static void ItemStorage_Withdraw(u8 taskId)
{
s16 *data = TASK.data;
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 11, 9);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 11, 9);
NUM_ITEMS = CountUsedPCItemSlots();
if (NUM_ITEMS != 0)
{
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
CURRENT_ITEM_STORAGE_MENU = ITEMPC_MENU_WITHDRAW;
PAGE_INDEX = 0;
ITEMS_ABOVE_TOP = 0;
@@ -400,13 +400,13 @@ static void ItemStorage_Toss(u8 taskId)
{
s16 *data = TASK.data;
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 11, 9);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 11, 9);
NUM_ITEMS = CountUsedPCItemSlots();
if (NUM_ITEMS)
{
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
CURRENT_ITEM_STORAGE_MENU = ITEMPC_MENU_TOSS;
PAGE_INDEX = 0;
ITEMS_ABOVE_TOP = 0;
@@ -420,8 +420,8 @@ static void ItemStorage_Toss(u8 taskId)
static void ItemStorage_Exit(u8 var)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 11, 9);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 11, 9);
ReshowPlayerPC(var);
}
@@ -450,7 +450,7 @@ static void ItemStorage_ProcessInput(u8 taskId)
if(PAGE_INDEX != 0) // did the cursor move physically upwards?
{
PlaySE(SE_SELECT);
- PAGE_INDEX = MoveMenuCursor(-1);
+ PAGE_INDEX = Menu_MoveCursor(-1);
trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
if (SWITCH_MODE_ACTIVE == FALSE) // are we not currently switching items?
{
@@ -474,7 +474,7 @@ static void ItemStorage_ProcessInput(u8 taskId)
ItemStorage_DrawBothListAndDescription(taskId);
if (SWITCH_MODE_ACTIVE != FALSE)
- MoveMenuCursor(0); // don't move the cursor. it's at the top of the page index, but not the true index.
+ Menu_MoveCursor(0); // don't move the cursor. it's at the top of the page index, but not the true index.
}
}
else if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _0813A306
@@ -482,7 +482,7 @@ static void ItemStorage_ProcessInput(u8 taskId)
if(PAGE_INDEX != NUM_PAGE_ITEMS - 1)
{
PlaySE(SE_SELECT);
- PAGE_INDEX = MoveMenuCursor(1);
+ PAGE_INDEX = Menu_MoveCursor(1);
trueIndex = ITEMS_ABOVE_TOP + PAGE_INDEX;
if(SWITCH_MODE_ACTIVE != FALSE)
@@ -500,7 +500,7 @@ static void ItemStorage_ProcessInput(u8 taskId)
ItemStorage_DrawBothListAndDescription(taskId);
if (SWITCH_MODE_ACTIVE != FALSE)
- MoveMenuCursor(0);
+ Menu_MoveCursor(0);
}
}
else if(gMain.newKeys & SELECT_BUTTON) // _0813A3A0
@@ -549,7 +549,7 @@ static void ItemStorage_ProcessInput(u8 taskId)
PlaySE(SE_SELECT);
if(SWITCH_MODE_ACTIVE == FALSE)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
ItemStorage_GoBackToPlayerPCMenu(taskId);
}
else
@@ -563,10 +563,10 @@ static void ItemStorage_ProcessInput(u8 taskId)
static void ItemStorage_GoBackToPlayerPCMenu(u8 taskId)
{
BuyMenuFreeMemory();
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
- MenuZeroFillWindowRect(0, 0, 29, 19);
- MenuDisplayMessageBox();
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
+ Menu_EraseWindowRect(0, 0, 29, 19);
+ Menu_DisplayDialogueFrame();
InitItemStorageMenu(TASK.CURRENT_ITEM_STORAGE_MENU);
TASK.FUNC = ItemStorageMenuProcessInput;
}
@@ -576,8 +576,8 @@ static void ItemStorage_DoItemAction(u8 taskId)
s16 *data = TASK.data;
u8 trueIndex = PAGE_INDEX + ITEMS_ABOVE_TOP;
- PauseVerticalScrollIndicator(0);
- PauseVerticalScrollIndicator(1); // PauseVerticalScrollIndicator
+ PauseVerticalScrollIndicator(TOP_ARROW);
+ PauseVerticalScrollIndicator(BOTTOM_ARROW);
if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW)
{
@@ -603,7 +603,7 @@ static void ItemStorage_DoItemAction(u8 taskId)
ItemStorage_PrintItemPcResponse(ITEMPC_HOW_MANY_TO_TOSS);
}
NUM_QUANTITY_ROLLER = 1;
- MenuDrawTextWindow(6, 8, 13, 11);
+ Menu_DrawStdWindowFrame(6, 8, 13, 11);
sub_80A418C(NUM_QUANTITY_ROLLER, STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
TASK.FUNC = ItemStorage_HandleQuantityRolling;
}
@@ -652,7 +652,7 @@ static void ItemStorage_HandleQuantityRolling(u8 taskId)
else if(gMain.newKeys & A_BUTTON) // confirm quantity.
{
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
+ Menu_EraseWindowRect(6, 6, 0xD, 0xB);
if(CURRENT_ITEM_STORAGE_MENU == ITEMPC_MENU_WITHDRAW)
ItemStorage_DoItemWithdraw(taskId);
@@ -662,9 +662,9 @@ static void ItemStorage_HandleQuantityRolling(u8 taskId)
else if(gMain.newKeys & B_BUTTON) // cancel quantity.
{
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
+ Menu_EraseWindowRect(6, 6, 0xD, 0xB);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId); // why not use trueIndex?
TASK.FUNC = ItemStorage_ProcessInput;
}
@@ -713,7 +713,7 @@ static void ItemStorage_DoItemToss(u8 taskId)
static void ItemStorage_ResumeInputFromYesToss(u8 taskId)
{
- MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
+ Menu_EraseWindowRect(0x6, 0x6, 0xD, 0xB);
ItemStorage_PrintItemPcResponse(ITEMPC_THREW_AWAY_ITEM);
TASK.FUNC = ItemStorage_HandleRemoveItem;
}
@@ -722,10 +722,10 @@ static void ItemStorage_ResumeInputFromNoToss(u8 taskId)
{
s16 *data = TASK.data;
- MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
+ Menu_EraseWindowRect(0x6, 0x6, 0xD, 0xB);
InitMenu(0, 16, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId);
TASK.FUNC = ItemStorage_ProcessInput;
}
@@ -757,17 +757,17 @@ static void ItemStorage_WaitPressHandleResumeProcessInput(u8 taskId)
if(gMain.newKeys & A_BUTTON || gMain.newKeys == B_BUTTON)
{
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[ITEMS_ABOVE_TOP + PAGE_INDEX].itemId);
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
TASK.FUNC = ItemStorage_ProcessInput;
}
}
static void ItemStorage_HandleResumeProcessInput(u8 taskId)
{
- MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
+ Menu_EraseWindowRect(0x6, 0x6, 0xD, 0xB);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
ItemStorage_DrawBothListAndDescription(taskId);
TASK.FUNC = ItemStorage_ProcessInput;
}
@@ -817,14 +817,14 @@ static void ItemStorage_DrawItemQuantity(u16 arg1, enum StringConvertMode arg2,
sub_80A4164(gStringVar1, arg1, arg2, arg4);
if(isSwapSelected != FALSE)
- MenuPrint(gSelectedItemQuantityFormatText, 0x1A, arg3);
+ Menu_PrintText(gSelectedItemQuantityFormatText, 0x1A, arg3);
else
- MenuPrint(gNonSelectedItemQuantityFormatText, 0x1A, arg3);
+ Menu_PrintText(gNonSelectedItemQuantityFormatText, 0x1A, arg3);
}
static void ItemStorage_DrawItemVoidQuantity(u8 var)
{
- MenuPrint(gUnknown_08406330, 0x19, var);
+ Menu_PrintText(gUnknown_08406330, 0x19, var);
}
static void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSwapSelected)
@@ -832,9 +832,9 @@ static void ItemStorage_DrawItemName(struct ItemSlot *itemSlot, u8 var, int isSw
CopyItemName(itemSlot->itemId, gStringVar1);
if(isSwapSelected != FALSE)
- MenuPrint(gSelectedItemFormattedText, 16, var);
+ Menu_PrintText(gSelectedItemFormattedText, 16, var);
else
- MenuPrint(gNonSelectedItemFormattedText, 16, var);
+ Menu_PrintText(gNonSelectedItemFormattedText, 16, var);
}
static void ItemStorage_DrawNormalItemEntry(struct ItemSlot *itemSlot, u8 var, int var2)
@@ -853,7 +853,7 @@ static void ItemStorage_DrawTMHMEntry(struct ItemSlot *itemSlot, u8 var, int var
{
ItemStorage_DrawItemName(itemSlot, var, var2);
- if(itemSlot->itemId < ITEM_HM01)
+ if(itemSlot->itemId < ITEM_HM01_CUT)
ItemStorage_DrawItemQuantity(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2);
else
ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity.
@@ -866,61 +866,51 @@ static void ItemStorage_DrawItemList(u8 taskId)
u16 i;
u16 yCoord = 0;
- // r5 is i and is unsigned 16-bit.
-
- for(i = ITEMS_ABOVE_TOP; i < ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS; i++)
+ for (i = ITEMS_ABOVE_TOP; i < ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS; i++)
{
yCoord = (i - ITEMS_ABOVE_TOP) * 2;
- if(i != NUM_ITEMS)
+ if (i == NUM_ITEMS)
+ {
+ sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (yCoord + 2) * 8, 0x68, 1);
+ break;
+ }
+ else
{
tempArg = 0;
- if(SWITCH_MODE_ACTIVE != FALSE && i == SWAP_ITEM_INDEX)
+ if (SWITCH_MODE_ACTIVE != FALSE && i == SWAP_ITEM_INDEX)
tempArg = 1;
- switch(GetPocketByItemId(gSaveBlock1.pcItems[i].itemId) - 1)
+ switch (GetPocketByItemId(gSaveBlock1.pcItems[i].itemId) - 1)
{
- case 0:
- case 1:
- case 3:
- ItemStorage_DrawNormalItemEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg);
- break;
- case 4:
- ItemStorage_DrawKeyItemEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg);
- break;
- case 2:
- ItemStorage_DrawTMHMEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg);
- break;
+ case 0:
+ case 1:
+ case 3:
+ ItemStorage_DrawNormalItemEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg);
+ break;
+ case 4:
+ ItemStorage_DrawKeyItemEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg);
+ break;
+ case 2:
+ ItemStorage_DrawTMHMEntry((struct ItemSlot *)&gSaveBlock1.pcItems[i], yCoord + 2, tempArg);
+ break;
}
}
- else
- {
- goto weirdCase; // what???
- }
}
-beforeLabel:
- if(i - ITEMS_ABOVE_TOP < 8)
- MenuFillWindowRectWithBlankTile(16, yCoord + 4, 0x1C, 0x12);
+ if (i - ITEMS_ABOVE_TOP < 8)
+ Menu_BlankWindowRect(16, yCoord + 4, 0x1C, 0x12);
- switch(ITEMS_ABOVE_TOP)
- {
- default:
- CreateVerticalScrollIndicators(0, 0xB8, 8);
- break;
-weirdCase:
- sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (yCoord + 2) * 8, 0x68, 1);
- goto beforeLabel;
- case 0:
- DestroyVerticalScrollIndicator(0);
- break;
- }
+ if (ITEMS_ABOVE_TOP != 0)
+ CreateVerticalScrollIndicators(TOP_ARROW, 0xB8, 8);
+ else
+ DestroyVerticalScrollIndicator(TOP_ARROW);
- if(ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS <= NUM_ITEMS)
- CreateVerticalScrollIndicators(1, 0xB8, 0x98);
+ if (ITEMS_ABOVE_TOP + NUM_PAGE_ITEMS <= NUM_ITEMS)
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0xB8, 0x98);
else
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
static void ItemStorage_PrintItemPcResponse(u16 itemId)
@@ -984,14 +974,14 @@ static void ItemStorage_GoBackToItemPCMenu(u8 taskId, u8 var)
{
s16 *data = TASK.data;
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
ItemStorage_LoadPalette();
- MenuDrawTextWindow(0xF, 0, 0x1D, 0x13);
- MenuDrawTextWindow(0, 0xC, 0xE, 0x13);
- MenuDrawTextWindow(0, 0, 0xB, 3);
+ Menu_DrawStdWindowFrame(0xF, 0, 0x1D, 0x13);
+ Menu_DrawStdWindowFrame(0, 0xC, 0xE, 0x13);
+ Menu_DrawStdWindowFrame(0, 0, 0xB, 3);
ItemStorage_PrintItemPcResponse(gSaveBlock1.pcItems[0].itemId);
- MenuPrint(gPCText_ItemPCOptionsText[var].text, 1, 1);
+ Menu_PrintText(gPCText_ItemPCOptionsText[var].text, 1, 1);
ItemStorage_DrawItemList(taskId);
InitMenu(0, 0x10, 2, NUM_PAGE_ITEMS, PAGE_INDEX, 0xD);
}
@@ -1039,68 +1029,50 @@ static void Mailbox_UpdateMailList(void)
}
}
-// WWHHHHHYYYYYYYY SOMEBODY PLEASE FIX THIS
static void Mailbox_DrawMailList(u8 taskId) // taskId is unused
{
u16 yCoord = 0;
- u16 i = eMailboxInfo.itemsAbove;
- register struct MailboxStruct *tempMailbox asm("r1") = &eMailboxInfo;
- register struct MailboxStruct *mailbox asm("r6");
+ u16 i;
- if(i < i + tempMailbox->pageItems)
+ for (i = eMailboxInfo.itemsAbove; i < eMailboxInfo.itemsAbove + eMailboxInfo.pageItems; i++)
{
- mailbox = tempMailbox;
- goto forJump;
- for(; i < mailbox->itemsAbove + mailbox->pageItems; i++)
- {
- forJump:
- yCoord = (i - mailbox->itemsAbove) * 2;
- MenuFillWindowRectWithBlankTile(0x15, yCoord + 2, 0x1C, yCoord + 3);
-
- if(i != mailbox->count)
+ yCoord = (i - eMailboxInfo.itemsAbove) * 2;
+ Menu_BlankWindowRect(0x15, yCoord + 2, 0x1C, yCoord + 3);
+ if (i == eMailboxInfo.count)
{
- StringCopy(gStringVar1, gSaveBlock1.mail[i + 6].playerName);
- SanitizeNameString(gStringVar1);
- MenuPrint(gStringVar1, 0x15, yCoord + 2);
+ Menu_PrintText(gOtherText_CancelNoTerminator, 0x15, yCoord + 2);
+ break;
}
else
{
- goto weirdCase; // again, what???
+ StringCopy(gStringVar1, gSaveBlock1.mail[i + 6].playerName);
+ SanitizeNameString(gStringVar1);
+ Menu_PrintText(gStringVar1, 0x15, yCoord + 2);
}
}
- }
-beforeLabel:
- if(i - eMailboxInfo.itemsAbove != 8)
- MenuFillWindowRectWithBlankTile(0x15, yCoord + 4, 0x1C, 0x12);
+ if (i - eMailboxInfo.itemsAbove != 8)
+ Menu_BlankWindowRect(0x15, yCoord + 4, 0x1C, 0x12);
- switch(eMailboxInfo.itemsAbove)
- {
- default:
- CreateVerticalScrollIndicators(0, 0xC8, 8);
- break;
-weirdCase:
- MenuPrint(gOtherText_CancelNoTerminator, 0x15, yCoord + 2);
- goto beforeLabel;
- case 0:
- DestroyVerticalScrollIndicator(0);
- break;
- }
+ if (eMailboxInfo.itemsAbove != 0)
+ CreateVerticalScrollIndicators(TOP_ARROW, 0xC8, 8);
+ else
+ DestroyVerticalScrollIndicator(TOP_ARROW);
- if(eMailboxInfo.itemsAbove + eMailboxInfo.pageItems <= eMailboxInfo.count)
- CreateVerticalScrollIndicators(1, 0xC8, 0x98);
+ if (eMailboxInfo.itemsAbove + eMailboxInfo.pageItems <= eMailboxInfo.count)
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0xC8, 0x98);
else
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
static void Mailbox_DrawMailboxMenu(u8 taskId)
{
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
- MenuDrawTextWindow(0, 0, 0x8, 0x3);
- MenuPrint(gPCText_Mailbox, 1, 1);
- MenuDrawTextWindow(0x14, 0, 0x1D, 0x13);
+ Menu_EraseWindowRect(0, 0, 0x1D, 0x13);
+ Menu_DrawStdWindowFrame(0, 0, 0x8, 0x3);
+ Menu_PrintText(gPCText_Mailbox, 1, 1);
+ Menu_DrawStdWindowFrame(0x14, 0, 0x1D, 0x13);
Mailbox_DrawMailList(taskId);
InitMenu(0, 0x15, 2, eMailboxInfo.pageItems, eMailboxInfo.cursorPos, 8);
}
@@ -1115,7 +1087,7 @@ static void Mailbox_ProcessInput(u8 taskId)
if(eMailboxInfo.cursorPos != 0)
{
PlaySE(SE_SELECT);
- eMailboxInfo.cursorPos = MoveMenuCursor(-1);
+ eMailboxInfo.cursorPos = Menu_MoveCursor(-1);
}
else if(eMailboxInfo.itemsAbove != 0)
{
@@ -1129,7 +1101,7 @@ static void Mailbox_ProcessInput(u8 taskId)
if(eMailboxInfo.cursorPos != eMailboxInfo.pageItems - 1)
{
PlaySE(SE_SELECT);
- eMailboxInfo.cursorPos = MoveMenuCursor(1);
+ eMailboxInfo.cursorPos = Menu_MoveCursor(1);
}
else if(eMailboxInfo.itemsAbove + eMailboxInfo.cursorPos != eMailboxInfo.count)
{
@@ -1140,7 +1112,7 @@ static void Mailbox_ProcessInput(u8 taskId)
}
else if(gMain.newKeys & A_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
if(eMailboxInfo.itemsAbove + eMailboxInfo.cursorPos == eMailboxInfo.count)
@@ -1155,7 +1127,7 @@ static void Mailbox_ProcessInput(u8 taskId)
}
else if(gMain.newKeys & B_BUTTON)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
Mailbox_TurnOff(taskId);
}
@@ -1165,13 +1137,13 @@ static void Mailbox_ProcessInput(u8 taskId)
static void Mailbox_CloseScrollIndicators(void)
{
BuyMenuFreeMemory();
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
}
static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ Menu_EraseWindowRect(0, 0, 0x1D, 0x13);
StringCopy(gStringVar1, gSaveBlock1.mail[eMailboxInfo.itemsAbove + 6 + eMailboxInfo.cursorPos].playerName);
SanitizeNameString(gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_WhatWillYouDoMail);
@@ -1180,7 +1152,7 @@ static void Mailbox_PrintWhatToDoWithPlayerMailText(u8 taskId)
static void Mailbox_ReturnToPlayerPC(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 0x1D, 0x13);
+ Menu_EraseWindowRect(0, 0, 0x1D, 0x13);
ReshowPlayerPC(taskId);
}
@@ -1192,8 +1164,8 @@ static void Mailbox_TurnOff(u8 taskId)
static void Mailbox_PrintMailOptions(u8 taskId) // Mailbox_PrintMailOptions
{
- MenuDrawTextWindow(0, 0, 0xC, 0x9);
- PrintMenuItems(1, 1, 4, (struct MenuAction *)gMailboxMailOptions);
+ Menu_DrawStdWindowFrame(0, 0, 0xC, 0x9);
+ Menu_PrintItems(1, 1, 4, (struct MenuAction *)gMailboxMailOptions);
InitMenu(0, 1, 1, 4, 0, 0xB);
TASK.FUNC = Mailbox_MailOptionsProcessInput;
}
@@ -1203,17 +1175,17 @@ static void Mailbox_MailOptionsProcessInput(u8 taskId)
if(gMain.newAndRepeatedKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
else if(gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
else if(gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- gMailboxMailOptions[GetMenuCursorPos()].func(taskId);
+ gMailboxMailOptions[Menu_GetCursorPos()].func(taskId);
}
else if(gMain.newKeys & B_BUTTON)
{
@@ -1224,7 +1196,7 @@ static void Mailbox_MailOptionsProcessInput(u8 taskId)
static void Mailbox_DoMailRead(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
TASK.FUNC = Mailbox_FadeAndReadMail;
}
@@ -1239,7 +1211,7 @@ static void Mailbox_FadeAndReadMail(u8 taskId)
static void Mailbox_HandleReturnToProcessInput(u8 taskId) // Mailbox_HandleReturnToProcessInput
{
- if(sub_807D770() == TRUE) // is black fade finished? why not gPaletteFade.active?
+ if (IsWeatherNotFadingIn() == TRUE) // is black fade finished? why not gPaletteFade.active?
TASK.FUNC = Mailbox_ProcessInput;
}
@@ -1259,9 +1231,9 @@ static const u8 gHighlightedMoveToBagFormatText[] = _("{COLOR RED}{STR_VAR_1}");
static void Mailbox_MoveToBag(u8 taskId)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
StringCopy(gStringVar1, gOtherText_MoveToBag);
- MenuPrint(gHighlightedMoveToBagFormatText, 1, 3); // gHighlightedMoveToBagFormatText
+ Menu_PrintText(gHighlightedMoveToBagFormatText, 1, 3); // gHighlightedMoveToBagFormatText
DisplayItemMessageOnField(taskId, gOtherText_MessageWillBeLost, Mailbox_DrawYesNoBeforeMove, 0);
}
@@ -1275,7 +1247,7 @@ static void Mailbox_DoMailMoveToBag(u8 taskId)
{
struct MailStruct *mail = &gSaveBlock1.mail[eMailboxInfo.itemsAbove + 6 + eMailboxInfo.cursorPos];
- MenuZeroFillWindowRect(0x14, 8, 0x1A, 0xD);
+ Menu_EraseWindowRect(0x14, 8, 0x1A, 0xD);
if(AddBagItem(mail->itemId, 1) == FALSE)
{
@@ -1298,7 +1270,7 @@ static void Mailbox_DoMailMoveToBag(u8 taskId)
static void Mailbox_ReturnToInputAfterNo(u8 taskId) // Mailbox_ReturnToInputAfterNo
{
- MenuZeroFillWindowRect(0x14, 0x8, 0x1A, 0xD);
+ Menu_EraseWindowRect(0x14, 0x8, 0x1A, 0xD);
Mailbox_DrawMailMenuAndDoProcessInput(taskId);
}
@@ -1308,7 +1280,7 @@ static void Mailbox_Give(u8 taskId)
Mailbox_NoPokemonForMail(taskId); // cannot be reached normally
else
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
TASK.FUNC = Mailbox_DoGiveMailPokeMenu;
}
}
@@ -1353,8 +1325,8 @@ static void Mailbox_NoPokemonForMail(u8 taskId)
static void Mailbox_Cancel(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 0xC, 0x9);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 0xC, 0x9);
Mailbox_DrawMailMenuAndDoProcessInput(taskId);
}
diff --git a/src/field/pokeblock.c b/src/field/pokeblock.c
index 640d4731f..b4be44aa2 100644
--- a/src/field/pokeblock.c
+++ b/src/field/pokeblock.c
@@ -1,14 +1,10 @@
-//
-
-//
-
#include "global.h"
#include "overworld.h"
#include "sprite.h"
#include "script.h"
#include "strings.h"
#include "task.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "text.h"
#include "main.h"
#include "menu.h"
@@ -95,7 +91,8 @@ static const u8 *gUnknown_03000758;
#define GFX_TAG_POKEBLOCK_CASE 14800
-const s8 gPokeblockFlavorCompatibilityTable[] = {
+const s8 gPokeblockFlavorCompatibilityTable[] =
+{
// Cool, Beauty, Cute, Smart, Tough
0, 0, 0, 0, 0, // Hardy
1, 0, 0, 0, -1, // Lonely
@@ -124,14 +121,16 @@ const s8 gPokeblockFlavorCompatibilityTable[] = {
0, 0, 0, 0, 0 // Quirky
};
-void (*const gUnknown_083F7EA8[])(void) = {
+void (*const gUnknown_083F7EA8[])(void) =
+{
sub_80A5B40,
c2_exit_to_overworld_2_switch,
sub_802E424,
c2_exit_to_overworld_2_switch
};
-const u8 *const gPokeblockNames[] = {
+const u8 *const gPokeblockNames[] =
+{
NULL,
ContestStatsText_RedPokeBlock,
ContestStatsText_BluePokeBlock,
@@ -149,7 +148,8 @@ const u8 *const gPokeblockNames[] = {
ContestStatsText_GoldPokeBlock
};
-const struct MenuAction2 gUnknown_083F7EF4[] = {
+const struct MenuAction2 gUnknown_083F7EF4[] =
+{
{OtherText_Use, sub_810C508},
{OtherText_Toss, sub_810C5C0},
{gOtherText_CancelNoTerminator, sub_810C748},
@@ -165,21 +165,25 @@ const struct YesNoFuncTable gUnknown_083F7F24 = {sub_810C610, sub_810C668};
const u8 UnreferencedData_083F7F2C[] = {0x16, 0x17, 0x18, 0x21, 0x2f};
-const struct OamData gOamData_83F7F34 = {
+const struct OamData gOamData_83F7F34 =
+{
.size = 3,
.priority = 2
};
-const union AnimCmd gSpriteAnim_83F7F3C[] = {
+const union AnimCmd gSpriteAnim_83F7F3C[] =
+{
ANIMCMD_FRAME(.imageValue = 0, .duration = 0),
ANIMCMD_END
};
-const union AnimCmd *const gSpriteAnimTable_83F7F44[] = {
+const union AnimCmd *const gSpriteAnimTable_83F7F44[] =
+{
gSpriteAnim_83F7F3C
};
-const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = {
+const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] =
+{
AFFINEANIMCMD_FRAME(0, 0, -2, 2),
AFFINEANIMCMD_FRAME(0, 0, 2, 4),
AFFINEANIMCMD_FRAME(0, 0, -2, 4),
@@ -187,22 +191,26 @@ const union AffineAnimCmd gSpriteAffineAnim_83F7F48[] = {
AFFINEANIMCMD_END
};
-const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] = {
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83F7F70[] =
+{
gSpriteAffineAnim_83F7F48
};
-const struct CompressedSpriteSheet gUnknown_083F7F74 = {
+const struct CompressedSpriteSheet gUnknown_083F7F74 =
+{
gMenuPokeblockDevice_Gfx,
0x800,
GFX_TAG_POKEBLOCK_CASE
};
-const struct CompressedSpritePalette gUnknown_083F7F7C = {
+const struct CompressedSpritePalette gUnknown_083F7F7C =
+{
gMenuPokeblockDevice_Pal,
GFX_TAG_POKEBLOCK_CASE
};
-const struct SpriteTemplate gSpriteTemplate_83F7F84 = {
+const struct SpriteTemplate gSpriteTemplate_83F7F84 =
+{
GFX_TAG_POKEBLOCK_CASE,
GFX_TAG_POKEBLOCK_CASE,
&gOamData_83F7F34,
@@ -212,12 +220,25 @@ const struct SpriteTemplate gSpriteTemplate_83F7F84 = {
SpriteCallbackDummy
};
-const struct Pokeblock gUnknown_083F7F9C[] = {
- { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20},
- { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20},
- { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20},
- { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20},
- { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20}
+const struct Pokeblock gUnknown_083F7F9C[] =
+{
+ { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20 },
+ { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20 },
+ { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20 },
+ { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20 },
+ { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20 },
+#if DEBUG
+ { PBLOCK_CLR_PURPLE, 20, 0, 20, 0, 0, 20 },
+ { PBLOCK_CLR_INDIGO, 0, 20, 0, 20, 0, 20 },
+ { PBLOCK_CLR_BROWN, 0, 0, 20, 0, 20, 20 },
+ { PBLOCK_CLR_LITEBLUE, 20, 0, 0, 20, 0, 20 },
+ { PBLOCK_CLR_OLIVE, 0, 20, 0, 0, 20, 20 },
+ { PBLOCK_CLR_GRAY, 0, 2, 0, 2, 2, 0 },
+ { PBLOCK_CLR_BLACK, 3, 3, 3, 4, 3, 0 },
+ { PBLOCK_CLR_WHITE, 1, 1, 1, 1, 1, 1 },
+ { PBLOCK_CLR_GOLD, 20, 0, 0, 0, 0, 20 },
+ { 0 },
+#endif
};
// text
@@ -232,14 +253,10 @@ static void sub_810B674(void)
static void sub_810B68C(void)
{
- u16 *src;
- vu16 *dest;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- src = gBGTilemapBuffers[2];
- dest = (vu16 *)(VRAM + 0x7800);
- DmaCopy16(3, src, dest, sizeof gBGTilemapBuffers[2]);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(VRAM + 0x7800), sizeof gBGTilemapBuffers[2]);
}
static bool8 sub_810B6C0(void)
@@ -248,14 +265,14 @@ static bool8 sub_810B6C0(void)
switch (gMain.state)
{
case 0:
- sub_80F9438();
+ ClearVideoCallbacks();
sub_80F9368();
REG_BG2CNT = BGCNT_SCREENBASE(15) | BGCNT_CHARBASE(2) | BGCNT_PRIORITY(2);
REG_BLDCNT = 0;
gMain.state++;
break;
case 1:
- remove_some_task();
+ ScanlineEffect_Stop();
gMain.state++;
break;
case 2:
@@ -275,15 +292,15 @@ static bool8 sub_810B6C0(void)
gMain.state++;
break;
case 5:
- SetUpWindowConfig(&gWindowConfig_81E6E34);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6E34);
gMain.state++;
break;
case 6:
- SetUpWindowConfig(&gWindowConfig_81E6E50);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6E50);
gMain.state++;
break;
case 7:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E34);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6E34);
gMain.state++;
break;
case 8:
@@ -293,7 +310,7 @@ static bool8 sub_810B6C0(void)
}
break;
case 9:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E50);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6E50);
gMain.state++;
break;
case 10:
@@ -310,10 +327,10 @@ static bool8 sub_810B6C0(void)
}
break;
case 12:
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
- CreateVerticalScrollIndicators(0, 0xb0, 0x08);
- CreateVerticalScrollIndicators(1, 0xb0, 0x98);
+ CreateVerticalScrollIndicators(TOP_ARROW, 0xb0, 0x08);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0xb0, 0x98);
gMain.state++;
break;
case 13:
@@ -432,31 +449,30 @@ void OpenPokeblockCaseOnFeeder(void)
SetMainCallback2(sub_810B96C);
}
-#ifdef DEBUG
+#if DEBUG
void debug_sub_8120F98(void)
{
u8 i;
- for (i=0; i<40 && gUnknown_083F7F9C[i].color != 0; i++)
- {
+
+ for (i = 0; i < 40 && gUnknown_083F7F9C[i].color != 0; i++)
gSaveBlock1.pokeblocks[i] = gUnknown_083F7F9C[i];
- }
}
#endif
static void sub_810BB0C(void)
{
- BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E34);
sub_8072BD8(ItemId_GetItem(ITEM_POKEBLOCK_CASE)->name, 2, 1, 0x48);
}
static void sub_810BB30(void)
{
- BasicInitMenuWindow(&gWindowConfig_81E6E34);
- MenuPrint(gContestStatsText_Spicy, 2, 13);
- MenuPrint(gContestStatsText_Dry, 2, 15);
- MenuPrint(gContestStatsText_Sweet, 2, 17);
- MenuPrint(gContestStatsText_Bitter, 8, 13);
- MenuPrint(gContestStatsText_Sour, 8, 15);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E34);
+ Menu_PrintText(gContestStatsText_Spicy, 2, 13);
+ Menu_PrintText(gContestStatsText_Dry, 2, 15);
+ Menu_PrintText(gContestStatsText_Sweet, 2, 17);
+ Menu_PrintText(gContestStatsText_Bitter, 8, 13);
+ Menu_PrintText(gContestStatsText_Sour, 8, 15);
}
static void sub_810BB88(u8 a0)
@@ -464,17 +480,17 @@ static void sub_810BB88(u8 a0)
u8 i;
u8 y;
u8 *buf;
- BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E34);
for (i=a0; i<=a0+8; i++)
{
y = (i - a0) << 1;
if (i == gUnknown_02039248.unk2)
{
buf = sub_8072C74(gStringVar1, gContestStatsText_StowCase, 0x78, 0);
- MenuPrint(gStringVar1, 15, y + 1);
+ Menu_PrintText(gStringVar1, 15, y + 1);
if (i != a0 + 8)
{
- MenuZeroFillWindowRect(15, y + 3, 29, 18);
+ Menu_EraseWindowRect(15, y + 3, 29, 18);
}
break;
}
@@ -484,7 +500,7 @@ static void sub_810BB88(u8 a0)
buf[2] = 0x06;
buf += 3;
ConvertIntToDecimalStringN(buf, sub_810C9B0(&gSaveBlock1.pokeblocks[i]), STR_CONV_MODE_RIGHT_ALIGN, 3);
- MenuPrint(gStringVar1, 15, y + 1);
+ Menu_PrintText(gStringVar1, 15, y + 1);
}
}
@@ -560,19 +576,19 @@ static void sub_810BDAC(bool8 flag)
}
if (gUnknown_02039248.unk1)
{
- sub_80F979C(0, 0);
+ SetVerticalScrollIndicators(TOP_ARROW, VISIBLE);
}
else
{
- sub_80F979C(0, 1);
+ SetVerticalScrollIndicators(TOP_ARROW, INVISIBLE);
}
if (gUnknown_02039248.unk2 > gUnknown_02039248.unk3 && gUnknown_02039248.unk1 + gUnknown_02039248.unk3 != gUnknown_02039248.unk2)
{
- sub_80F979C(1, 0);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, VISIBLE);
}
else
{
- sub_80F979C(1, 1);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
}
for (i=0; i<5; i++)
{
@@ -596,15 +612,15 @@ static void sub_810BDAC(bool8 flag)
gBGTilemapBuffers[2][v0 + 32] = 15;
}
}
- BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E34);
if (gUnknown_02039248.unk0 + gUnknown_02039248.unk1 != gUnknown_02039248.unk2)
{
sub_8072C14(gStringVar1, sub_810C9E8(&gSaveBlock1.pokeblocks[gUnknown_02039248.unk0 + gUnknown_02039248.unk1]), 16, 1);
- MenuPrint(gStringVar1, 11, 17);
+ Menu_PrintText(gStringVar1, 11, 17);
}
else
{
- MenuZeroFillWindowRect(11, 17, 12, 18);
+ Menu_EraseWindowRect(11, 17, 12, 18);
}
}
@@ -776,8 +792,8 @@ static void sub_810C23C(u8 taskId)
static void sub_810C2B0(void)
{
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
BuyMenuFreeMemory();
}
@@ -810,11 +826,11 @@ static void sub_810C368(u8 taskId)
int v0 = 0;
if (gUnknown_02039244 > 1)
v0 = 2;
- sub_80F98A4(0);
- sub_80F98A4(1);
- BasicInitMenuWindow(&gWindowConfig_81E6E50);
- MenuDrawTextWindow(7, v0 + 4, 13, 11);
- PrintMenuItemsReordered(8, v0 + 5, gUnknown_0203924C, gUnknown_083F7EF4, gUnknown_03000758);
+ StopVerticalScrollIndicators(TOP_ARROW);
+ StopVerticalScrollIndicators(BOTTOM_ARROW);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E50);
+ Menu_DrawStdWindowFrame(7, v0 + 4, 13, 11);
+ Menu_PrintItemsReordered(8, v0 + 5, gUnknown_0203924C, gUnknown_083F7EF4, gUnknown_03000758);
InitMenu(0, 8, v0 + 5, gUnknown_0203924C, 0, 5);
gSpecialVar_ItemId = gUnknown_02039248.unk0 + gUnknown_02039248.unk1;
gTasks[taskId].func = sub_810C40C;
@@ -824,24 +840,24 @@ static void sub_810C40C(u8 taskId)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
- if (GetMenuCursorPos())
+ if (Menu_GetCursorPos())
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- if (GetMenuCursorPos() != gUnknown_0203924C - 1)
+ if (Menu_GetCursorPos() != gUnknown_0203924C - 1)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(+1);
+ Menu_MoveCursor(+1);
}
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- gUnknown_083F7EF4[gUnknown_03000758[GetMenuCursorPos()]].func(taskId);
+ gUnknown_083F7EF4[gUnknown_03000758[Menu_GetCursorPos()]].func(taskId);
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -868,9 +884,9 @@ static void sub_810C508(u8 taskId)
static void sub_810C540(u8 taskId)
{
- BasicInitMenuWindow(&gWindowConfig_81E6E50);
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(7, 4, 13, 11);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E50);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(7, 4, 13, 11);
StringCopy(gStringVar1, gPokeblockNames[gSaveBlock1.pokeblocks[gUnknown_02039248.unk0 + gUnknown_02039248.unk1].color]);
StringExpandPlaceholders(gStringVar4, gContestStatsText_ThrowAwayPrompt);
DisplayItemMessageOnField(taskId, gStringVar4, sub_810C5EC, 0);
@@ -878,7 +894,7 @@ static void sub_810C540(u8 taskId)
static void sub_810C5C0(u8 taskId)
{
- sub_80F979C(1, 1);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
gTasks[taskId].func = sub_810C540;
}
@@ -890,7 +906,7 @@ static void sub_810C5EC(u8 taskId)
static void sub_810C610(u8 taskId)
{
- MenuZeroFillWindowRect(7, 6, 13, 11);
+ Menu_EraseWindowRect(7, 6, 13, 11);
PokeblockClearIfExists((gUnknown_02039248.unk0 + gUnknown_02039248.unk1));
StringExpandPlaceholders(gStringVar4, gContestStatsText_WasThrownAway);
DisplayItemMessageOnField(taskId, gStringVar4, sub_810C704, 0);
@@ -900,15 +916,15 @@ static void sub_810C610(u8 taskId)
static void sub_810C668(u8 taskId)
{
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
if (gUnknown_02039248.unk2 > gUnknown_02039248.unk3 && gUnknown_02039248.unk1 + gUnknown_02039248.unk3 != gUnknown_02039248.unk2)
{
- sub_80F979C(1, 0);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, VISIBLE);
}
- BasicInitMenuWindow(&gWindowConfig_81E6E50);
- MenuZeroFillWindowRect(7, 6, 13, 11);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E50);
+ Menu_EraseWindowRect(7, 6, 13, 11);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskId].func = sub_810BF7C;
}
@@ -922,18 +938,18 @@ static void sub_810C6DC(u8 taskId)
static void sub_810C704(u8 taskId)
{
- BasicInitMenuWindow(&gWindowConfig_81E6E34);
+ BasicInitMenuWindow(&gWindowTemplate_81E6E34);
sub_810BC84(gUnknown_02039248.unk1);
- sub_80F979C(1, 1);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
gTasks[taskId].func = sub_810C6DC;
}
static void sub_810C748(u8 taskId)
{
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(7, 4, 13, 11);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(7, 4, 13, 11);
gTasks[taskId].func = sub_810BF7C;
}
diff --git a/src/field/pokedex_area_screen.c b/src/field/pokedex_area_screen.c
new file mode 100644
index 000000000..67ca276c4
--- /dev/null
+++ b/src/field/pokedex_area_screen.c
@@ -0,0 +1,20 @@
+
+// Includes
+#include "global.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+EWRAM_DATA u16 gUnknown_02039260 = 0;
+EWRAM_DATA u16 gUnknown_02039262 = 0;
+EWRAM_DATA u16 gUnknown_02039264 = 0;
+EWRAM_DATA u16 gUnknown_02039266 = 0;
+EWRAM_DATA u16 gUnknown_02039268 = 0;
+EWRAM_DATA u16 gUnknown_0203926A = 0;
+
+// Static ROM declarations
+
+// .rodata
+
+// .text
diff --git a/src/field/pokenav.c b/src/field/pokenav.c
new file mode 100644
index 000000000..f57a98df6
--- /dev/null
+++ b/src/field/pokenav.c
@@ -0,0 +1,16 @@
+
+// Includes
+#include "global.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+EWRAM_DATA u8 gUnknown_020388B0[4] = {};
+EWRAM_DATA u16 gUnknown_020388B4 = 0;
+
+// Static ROM declarations
+
+// .rodata
+
+// .text
diff --git a/src/field/region_map.c b/src/field/region_map.c
index 07e77e389..7bfda1a81 100644
--- a/src/field/region_map.c
+++ b/src/field/region_map.c
@@ -280,7 +280,7 @@ static u16 sub_80FB9C0(u16);
static void sub_80FBA18(void);
static bool8 sub_80FBAA0(u16);
void CreateRegionMapCursor(u16, u16);
-static void sub_80FBCA0(void);
+void sub_80FBCA0(void);
static void sub_80FBDF8(void);
static void sub_80FBE24(void);
static void SpriteCB_PlayerIconZoomedOut(struct Sprite *);
@@ -288,8 +288,8 @@ static void UpdateIconBlink(struct Sprite *);
static void SpriteCB_PlayerIconZoomedIn(struct Sprite *);
const u8 *GetMapSectionName(u8 *, u16, u16);
static void VBlankCB_FlyRegionMap(void);
-static void CB2_FlyRegionMap(void);
-static void sub_80FC244(void (*func)(void));
+void CB2_FlyRegionMap(void);
+void sub_80FC244(void (*func)(void));
static void PrintFlyTargetName(void);
static void CreateFlyTargetGraphics(void);
static void CreateCityTownFlyTargetIcons(void);
@@ -297,7 +297,7 @@ static void CreateSpecialAreaFlyTargetIcons(void);
static void SpriteCB_FlyTargetIcons(struct Sprite *);
static void sub_80FC5B4(void);
static void sub_80FC600(void);
-static void sub_80FC69C(void);
+void sub_80FC69C(void);
void InitRegionMap(struct RegionMap *regionMap, bool8 zoomed)
{
@@ -1127,7 +1127,7 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag)
}
}
-static void sub_80FBCA0(void)
+void sub_80FBCA0(void)
{
if (gRegionMap->cursorSprite != NULL)
{
@@ -1420,7 +1420,7 @@ struct UnknownStruct4
static const u8 *const sEverGrandeCityAreaNames[] = {OtherText_PokeLeague, OtherText_PokeCenter};
-static const struct UnknownStruct4 sUnknown_083E79C0[1] =
+const struct UnknownStruct4 gUnknown_083E79C0[1] =
{
{sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, FLAG_SYS_POKEMON_LEAGUE_FLY},
};
@@ -1540,11 +1540,11 @@ void CB2_InitFlyRegionMap(void)
FreeAllSpritePalettes();
break;
case 1:
- SetUpWindowConfig(&gWindowConfig_81E7224);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7224);
break;
case 2:
- InitMenuWindow(&gWindowConfig_81E7224);
- MenuZeroFillScreen();
+ InitMenuWindow(&gWindowTemplate_81E7224);
+ Menu_EraseScreen();
break;
case 3:
InitRegionMap(&ewram0_3.regionMap, 0);
@@ -1562,7 +1562,7 @@ void CB2_InitFlyRegionMap(void)
break;
case 6:
LoadPalette(sFlyRegionMapFrame_Pal, 16, 32);
- MenuPrint_PixelCoords(gOtherText_FlyToWhere, 1, 0x90, 1);
+ Menu_PrintTextPixelCoords(gOtherText_FlyToWhere, 1, 0x90, 1);
break;
case 7:
CreateFlyTargetGraphics();
@@ -1591,14 +1591,14 @@ static void VBlankCB_FlyRegionMap(void)
TransferPlttBuffer();
}
-static void CB2_FlyRegionMap(void)
+void CB2_FlyRegionMap(void)
{
ewram0_3.unk0();
AnimateSprites();
BuildOamBuffer();
}
-static void sub_80FC244(void (*func)(void))
+void sub_80FC244(void (*func)(void))
{
ewram0_3.unk0 = func;
ewram0_3.unk4 = 0;
@@ -1608,39 +1608,38 @@ static void PrintFlyTargetName(void)
{
if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4)
{
- u16 i = 0;
- int zero;
+ u16 i;
+ bool32 drawFrameDisabled = FALSE;
- for (i = 0; i < ARRAY_COUNT(sUnknown_083E79C0); i++)
+ for (i = 0; i < ARRAY_COUNT(gUnknown_083E79C0); i++)
{
- const struct UnknownStruct4 *r4 = &sUnknown_083E79C0[i];
+ const struct UnknownStruct4 *r4 = &gUnknown_083E79C0[i];
if (ewram0_3.regionMap.mapSectionId == r4->mapSectionId)
{
if (FlagGet(r4->flag))
{
- MenuDrawTextWindow(16, 14, 29, 19);
- MenuPrint(ewram0_3.regionMap.mapSectionName, 17, 15);
+ Menu_DrawStdWindowFrame(16, 14, 29, 19);
+ Menu_PrintText(ewram0_3.regionMap.mapSectionName, 17, 15);
MenuPrint_RightAligned(r4->unk0[ewram0_3.regionMap.everGrandeCityArea], 29, 17);
return;
}
break;
}
}
- // This check is always true, but somehow the compiler still performed it.
- asm("mov %0, #0\n":"=r"(zero)); // zero = 0
- if (zero == 0)
+
+ if (!drawFrameDisabled)
{
- MenuDrawTextWindow(16, 16, 29, 19);
- MenuPrint(ewram0_3.regionMap.mapSectionName, 17, 17);
- MenuZeroFillWindowRect(16, 14, 29, 15);
+ Menu_DrawStdWindowFrame(16, 16, 29, 19);
+ Menu_PrintText(ewram0_3.regionMap.mapSectionName, 17, 17);
+ Menu_EraseWindowRect(16, 14, 29, 15);
}
}
else
{
- MenuDrawTextWindow(16, 16, 29, 19);
- MenuPrint(ewramBlankMapName, 17, 17);
- MenuZeroFillWindowRect(16, 14, 29, 15);
+ Menu_DrawStdWindowFrame(16, 16, 29, 19);
+ Menu_PrintText(ewramBlankMapName, 17, 17);
+ Menu_EraseWindowRect(16, 14, 29, 15);
}
}
@@ -1796,7 +1795,7 @@ static void sub_80FC600(void)
}
}
-static void sub_80FC69C(void)
+void sub_80FC69C(void)
{
switch (ewram0_3.unk4)
{
diff --git a/src/field/roamer.c b/src/field/roamer.c
index 2eb26ef9d..6ed5b6c89 100644
--- a/src/field/roamer.c
+++ b/src/field/roamer.c
@@ -1,7 +1,9 @@
#include "global.h"
+#include "debug.h"
#include "roamer.h"
#include "pokemon.h"
#include "random.h"
+#include "region_map.h"
#include "constants/species.h"
#ifdef SAPPHIRE
@@ -224,3 +226,20 @@ void GetRoamerLocation(u8 *mapGroup, u8 *mapNum)
*mapGroup = sRoamerLocation[MAP_GRP];
*mapNum = sRoamerLocation[MAP_NUM];
}
+
+#if DEBUG
+void debug_sub_814A714(void)
+{
+ if (gSaveBlock1.location.mapGroup == 0)
+ {
+ CreateInitialRoamerMon();
+ sRoamerLocation[0] = 0;
+ sRoamerLocation[1] = gSaveBlock1.location.mapNum;
+ }
+}
+
+void debug_sub_814A73C(u8* str)
+{
+ GetMapSectionName(str, sRoamerLocation[1], 0);
+}
+#endif
diff --git a/src/field/safari_zone.c b/src/field/safari_zone.c
index e9ca3a9f9..f371b08b3 100644
--- a/src/field/safari_zone.c
+++ b/src/field/safari_zone.c
@@ -26,7 +26,7 @@ static void DecrementFeederStepCounters(void);
extern u8 gBattleOutcome;
EWRAM_DATA u8 gNumSafariBalls = 0;
-EWRAM_DATA static u16 gSafariZoneStepCounter = 0;
+EWRAM_DATA u16 gSafariZoneStepCounter = 0;
EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0};
extern void (*gFieldCallback)(void);
@@ -56,7 +56,7 @@ void ResetSafariZoneFlag(void)
void EnterSafariMode(void)
{
- IncrementGameStat(0x11);
+ IncrementGameStat(GAME_STAT_ENTERED_SAFARI_ZONE);
SetSafariZoneFlag();
ClearAllPokeblockFeeders();
gNumSafariBalls = 30;
diff --git a/src/field/scrcmd.c b/src/field/scrcmd.c
index 05a909e81..bc5cd0b1d 100644
--- a/src/field/scrcmd.c
+++ b/src/field/scrcmd.c
@@ -626,7 +626,7 @@ bool8 IsPaletteNotActive(void)
bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
{
- fade_screen(ScriptReadByte(ctx), 0);
+ FadeScreen(ScriptReadByte(ctx), 0);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@@ -636,7 +636,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
u8 duration = ScriptReadByte(ctx);
u8 delay = ScriptReadByte(ctx);
- fade_screen(duration, delay);
+ FadeScreen(duration, delay);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@@ -1333,7 +1333,7 @@ bool8 ScrCmd_drawbox(struct ScriptContext *ctx)
u8 right = ScriptReadByte(ctx);
u8 bottom = ScriptReadByte(ctx);
- MenuDrawTextWindow(left, top, right, bottom);
+ Menu_DrawStdWindowFrame(left, top, right, bottom);
return FALSE;
}
@@ -1363,7 +1363,7 @@ bool8 ScrCmd_erasebox(struct ScriptContext *ctx)
u8 right = ScriptReadByte(ctx);
u8 bottom = ScriptReadByte(ctx);
- MenuZeroFillWindowRect(left, top, right, bottom);
+ Menu_EraseWindowRect(left, top, right, bottom);
return FALSE;
}
@@ -1428,8 +1428,8 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
u8 v6 = ptr[4];
u8 v7 = ptr[5];
StringBraille(gStringVar4, ptr + 6);
- MenuDrawTextWindow(v2, v3, v4, v5);
- MenuPrint(gStringVar4, v6, v7);
+ Menu_DrawStdWindowFrame(v2, v3, v4, v5);
+ Menu_PrintText(gStringVar4, v6, v7);
return FALSE;
}
@@ -1755,7 +1755,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
- CreatePokemartMenu(ptr);
+ Shop_CreatePokemartMenu(ptr);
ScriptContext1_Stop();
return TRUE;
}
@@ -1764,7 +1764,7 @@ bool8 ScrCmd_pokemartdecoration(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
- CreateDecorationShop1Menu(ptr);
+ Shop_CreateDecorationShop1Menu(ptr);
ScriptContext1_Stop();
return TRUE;
}
@@ -1773,7 +1773,7 @@ bool8 ScrCmd_pokemartdecoration2(struct ScriptContext *ctx)
{
void *ptr = (void *)ScriptReadWord(ctx);
- CreateDecorationShop2Menu(ptr);
+ Shop_CreateDecorationShop2Menu(ptr);
ScriptContext1_Stop();
return TRUE;
}
diff --git a/src/field/script_menu.c b/src/field/script_menu.c
index 9f3ab75cc..9d901a03c 100644
--- a/src/field/script_menu.c
+++ b/src/field/script_menu.c
@@ -622,7 +622,7 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, u8 ig
static u16 GetStringWidthInTilesForScriptMenu(const u8 *str)
{
// each tile on screen is 8x8, so it needs the number of tiles and not pixels, hence the division by 8.
- return (GetStringWidthGivenWindowConfig((struct WindowConfig *)&gWindowConfig_81E6CE4, str) + 7) / 8;
+ return (Text_GetStringWidthFromWindowTemplate((struct WindowTemplate *)&gWindowTemplate_81E6CE4, str) + 7) / 8;
}
static void DrawMultichoiceMenu(u8 left, u8 top, u8 count, const struct MenuAction *list, u8 ignoreBPress, u8 cursorPos)
@@ -651,8 +651,8 @@ static void DrawMultichoiceMenu(u8 left, u8 top, u8 count, const struct MenuActi
bottom = top + (2 * count + 1);
- MenuDrawTextWindow(left, top, right, bottom);
- PrintMenuItems(left + 1, top + 1, count, list);
+ Menu_DrawStdWindowFrame(left, top, right, bottom);
+ Menu_PrintItems(left + 1, top + 1, count, list);
InitMenu(0, left + 1, top + 1, count, cursorPos, right - left - 1);
StartScriptMenuTask(left, top, right, bottom, ignoreBPress, count);
}
@@ -687,9 +687,9 @@ static void Task_HandleMultichoiceInput(u8 taskId)
if (!gPaletteFade.active)
{
if (!gTasks[taskId].tDoWrap)
- selection = ProcessMenuInputNoWrap();
+ selection = Menu_ProcessInputNoWrap();
else
- selection = ProcessMenuInput();
+ selection = Menu_ProcessInput();
if (selection != -2)
{
@@ -704,8 +704,8 @@ static void Task_HandleMultichoiceInput(u8 taskId)
{
gSpecialVar_Result = selection;
}
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(gTasks[taskId].tLeft, gTasks[taskId].tTop, gTasks[taskId].tRight, gTasks[taskId].tBottom);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(gTasks[taskId].tLeft, gTasks[taskId].tTop, gTasks[taskId].tRight, gTasks[taskId].tBottom);
DestroyTask(taskId);
EnableBothScriptContexts();
}
@@ -745,7 +745,7 @@ static void sub_80B53B4(u8 left, u8 top, u8 count, const struct MenuAction *list
right = (right + left) + 2;
bottom = top + (2 * count + 1);
- PrintMenuItems(left, top, count, list);
+ Menu_PrintItems(left, top, count, list);
InitMenu(0, left, top, count, 0, right - left - 1);
StartScriptMenuTask(left, top, right, bottom, ignoreBPress, count);
}
@@ -788,7 +788,7 @@ static void Task_HandleYesNoInput(u8 taskId)
return;
}
- switch (ProcessMenuInputNoWrap())
+ switch (Menu_ProcessInputNoWrap())
{
case -2:
return;
@@ -805,7 +805,7 @@ static void Task_HandleYesNoInput(u8 taskId)
left = gTasks[taskId].tLeft;
top = gTasks[taskId].tTop;
- MenuZeroFillWindowRect(left, top, left + 6, top + 5);
+ Menu_EraseWindowRect(left, top, left + 6, top + 5);
DestroyTask(taskId);
EnableBothScriptContexts();
}
@@ -839,7 +839,7 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPr
bottom = (2 * (gMultichoiceLists[multichoiceId].count / columnCount)) + 3 + top;
}
- width = sub_807288C(columnCount);
+ width = Menu_GetColumnXCoord(columnCount);
gTasks[taskId].tLeft = left;
gTasks[taskId].tTop = top;
gTasks[taskId].tRight = width + left + 2;
@@ -851,7 +851,7 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPr
static void Task_HandleMultichoiceGridInput(u8 taskId)
{
- s8 selection = sub_80727CC();
+ s8 selection = Menu_ProcessInputGridLayout();
if (selection != -2)
{
@@ -866,8 +866,8 @@ static void Task_HandleMultichoiceGridInput(u8 taskId)
{
gSpecialVar_Result = selection;
}
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(gTasks[taskId].tLeft, gTasks[taskId].tTop, gTasks[taskId].tRight, gTasks[taskId].tBottom);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(gTasks[taskId].tLeft, gTasks[taskId].tTop, gTasks[taskId].tRight, gTasks[taskId].tBottom);
DestroyTask(taskId);
EnableBothScriptContexts();
}
@@ -909,23 +909,23 @@ void ScriptMenu_CreatePCMenu(void)
if (FlagGet(FLAG_SYS_GAME_CLEAR)) // player has cleared game?
{
numChoices = 4;
- MenuDrawTextWindow(0, 0, width + 2, 9);
- MenuPrint(gPCText_HallOfFame, 1, 5);
- MenuPrint(gPCText_LogOff, 1, 7);
+ Menu_DrawStdWindowFrame(0, 0, width + 2, 9);
+ Menu_PrintText(gPCText_HallOfFame, 1, 5);
+ Menu_PrintText(gPCText_LogOff, 1, 7);
}
else
{
numChoices = 3;
- MenuDrawTextWindow(0, 0, width + 2, 7);
- MenuPrint(gPCText_LogOff, 1, 5);
+ Menu_DrawStdWindowFrame(0, 0, width + 2, 7);
+ Menu_PrintText(gPCText_LogOff, 1, 5);
}
if (FlagGet(FLAG_SYS_PC_LANETTE)) // player met lanette?
- MenuPrint(gPCText_LanettesPC, 1, 1);
+ Menu_PrintText(gPCText_LanettesPC, 1, 1);
else
- MenuPrint(gPCText_SomeonesPC, 1, 1);
+ Menu_PrintText(gPCText_SomeonesPC, 1, 1);
- MenuPrint(gPCText_PlayersPC, 1, 3);
+ Menu_PrintText(gPCText_PlayersPC, 1, 3);
InitMenu(0, 1, 1, numChoices, 0, width + 1);
StartScriptMenuTask(0, 0, width + 2, 2 * numChoices + 1, 0, numChoices);
}
@@ -1008,15 +1008,15 @@ _080B57B4:\n\
movs r0, 0\n\
movs r1, 0\n\
movs r3, 0x9\n\
- bl MenuDrawTextWindow\n\
+ bl Menu_DrawStdWindowFrame\n\
ldr r0, _080B57F8 @ =gPCText_HallOfFame\n\
movs r1, 0x1\n\
movs r2, 0x5\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
ldr r0, _080B57F0 @ =gPCText_LogOff\n\
movs r1, 0x1\n\
movs r2, 0x7\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
b _080B5818\n\
.align 2, 0\n\
_080B57E8: .4byte gPCText_SomeonesPC\n\
@@ -1032,11 +1032,11 @@ _080B57FC:\n\
movs r0, 0\n\
movs r1, 0\n\
movs r3, 0x7\n\
- bl MenuDrawTextWindow\n\
+ bl Menu_DrawStdWindowFrame\n\
ldr r0, _080B5834 @ =gPCText_LogOff\n\
movs r1, 0x1\n\
movs r2, 0x5\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
_080B5818:\n\
adds r6, r4, 0\n\
ldr r0, _080B5838 @ =0x0000084b\n\
@@ -1047,7 +1047,7 @@ _080B5818:\n\
ldr r0, _080B583C @ =gPCText_LanettesPC\n\
movs r1, 0x1\n\
movs r2, 0x1\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
b _080B584A\n\
.align 2, 0\n\
_080B5834: .4byte gPCText_LogOff\n\
@@ -1057,12 +1057,12 @@ _080B5840:\n\
ldr r0, _080B5888 @ =gPCText_SomeonesPC\n\
movs r1, 0x1\n\
movs r2, 0x1\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
_080B584A:\n\
ldr r0, _080B588C @ =gPCText_PlayersPC\n\
movs r1, 0x1\n\
movs r2, 0x3\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
movs r4, 0\n\
str r4, [sp]\n\
adds r0, r5, 0x1\n\
@@ -1096,8 +1096,8 @@ _080B588C: .4byte gPCText_PlayersPC\n\
void ScriptMenu_DisplayPCStartupPrompt(void)
{
- MenuDisplayMessageBox();
- MenuPrint(gPCText_WhichPCShouldBeAccessed, 2, 15);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gPCText_WhichPCShouldBeAccessed, 2, 15);
}
#define tState data[0]
@@ -1122,7 +1122,7 @@ static void Task_PokemonPicWindow(u8 taskId)
task->tState++;
break;
case 3:
- MenuZeroFillWindowRect(task->tWindowX, task->tWindowY, task->tWindowX + 9, task->tWindowY + 10);
+ Menu_EraseWindowRect(task->tWindowX, task->tWindowY, task->tWindowX + 9, task->tWindowY + 10);
DestroyTask(taskId);
break;
}
@@ -1139,7 +1139,7 @@ bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y)
}
else
{
- MenuDrawTextWindow(x, y, x + 9, y + 10);
+ Menu_DrawStdWindowFrame(x, y, x + 9, y + 10);
taskId = CreateTask(Task_PokemonPicWindow, 0x50);
gTasks[taskId].tState = 0;
gTasks[taskId].tMonSpecies = species;
diff --git a/src/field/secret_base.c b/src/field/secret_base.c
index 2e4138a3b..8b67a2cd9 100644
--- a/src/field/secret_base.c
+++ b/src/field/secret_base.c
@@ -51,7 +51,7 @@ static void Task_SecretBasePC_Registry(u8 taskId);
extern u8 gUnknown_0815F399[];
extern u8 gUnknown_0815F49A[];
-extern u8 gUnknown_020387DC;
+EWRAM_DATA u8 gUnknown_020387DC = 0;
const struct
{
@@ -348,7 +348,7 @@ void sub_80BBA48(u8 taskid)
void sub_80BBAF0(void)
{
CreateTask(sub_80BBA48, 0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
saved_warp2_set(0, gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1);
}
@@ -362,7 +362,7 @@ bool8 sub_80BBB24(void)
void sub_80BBB50(u8 taskid)
{
FieldObjectTurn(&(gMapObjects[gPlayerAvatar.mapObjectId]), 2);
- if (sub_807D770() == 1) {
+ if (IsWeatherNotFadingIn() == 1) {
EnableBothScriptContexts();
DestroyTask(taskid);
}
@@ -397,7 +397,7 @@ void sub_80BBC78(void)
{
u8 taskid = CreateTask(sub_80BBBEC, 0);
gTasks[taskid].data[0] = 0;
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
bool8 CurrentMapIsSecretBase(void)
@@ -534,7 +534,7 @@ void sub_80BC074(u8 taskid)
void sub_80BC0F8(void) {
CreateTask(sub_80BC074, 0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
void sub_80BC114(void) {
@@ -895,7 +895,7 @@ void Task_SecretBasePC_Registry(u8 taskId)
s16 *taskData;
ScriptContext2_Enable();
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
LoadScrollIndicatorPalette();
taskData = gTasks[taskId].data;
@@ -913,7 +913,7 @@ void Task_SecretBasePC_Registry(u8 taskId)
taskData[1] = 0;
taskData[2] = 0;
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80BC7D8(taskId);
gTasks[taskId].func = sub_80BC824;
@@ -948,8 +948,8 @@ void sub_80BC6B0(u8 taskId)
if (sub_80BC268(i) == TRUE)
{
sub_80BC190(gStringVar1, i);
- MenuFillWindowRectWithBlankTile(18, 2 * n + 2, 28, 2 * n + 3);
- MenuPrint(gStringVar1, 18, 2 * n + 2);
+ Menu_BlankWindowRect(18, 2 * n + 2, 28, 2 * n + 3);
+ Menu_PrintText(gStringVar1, 18, 2 * n + 2);
if (++n == 8)
break;
}
@@ -957,25 +957,25 @@ void sub_80BC6B0(u8 taskId)
if (n < 8)
{
- MenuFillWindowRectWithBlankTile(18, 2 * n + 2, 28, 2 * n + 3);
- MenuPrint(gUnknownText_Exit, 18, 2 * n + 2);
- DestroyVerticalScrollIndicator(1);
+ Menu_BlankWindowRect(18, 2 * n + 2, 28, 2 * n + 3);
+ Menu_PrintText(gUnknownText_Exit, 18, 2 * n + 2);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
if (n != 7)
- MenuFillWindowRectWithBlankTile(18, ((n << 25) + (1 << 26)) >> 24, 28, 18); // the shifts are needed to match
+ Menu_BlankWindowRect(18, ((n << 25) + (1 << 26)) >> 24, 28, 18); // the shifts are needed to match
}
else
- CreateVerticalScrollIndicators(1, 0xbc, 0x98);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 0xbc, 0x98);
if (taskData[2] == 0)
- DestroyVerticalScrollIndicator(0);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
else
- CreateVerticalScrollIndicators(0, 0xbc, 0x08);
+ CreateVerticalScrollIndicators(TOP_ARROW, 0xbc, 0x08);
}
void sub_80BC7D8(u8 taskId)
{
u16 *taskData = gTasks[taskId].data;
- MenuDrawTextWindow(17, 0, 29, 19);
+ Menu_DrawStdWindowFrame(17, 0, 29, 19);
InitMenu(0, 18, 2, taskData[3] + 1, taskData[1], 11);
sub_80BC6B0(taskId);
@@ -990,7 +990,7 @@ void sub_80BC824(u8 taskId)
if (taskData[1])
{
PlaySE(5);
- taskData[1] = MoveMenuCursor(-1);
+ taskData[1] = Menu_MoveCursor(-1);
}
else if (taskData[2])
{
@@ -1013,7 +1013,7 @@ void sub_80BC824(u8 taskId)
else
{
PlaySE(5);
- taskData[1] = MoveMenuCursor(1);
+ taskData[1] = Menu_MoveCursor(1);
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -1021,13 +1021,13 @@ void sub_80BC824(u8 taskId)
PlaySE(5);
if (taskData[1] + taskData[2] == taskData[0])
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80BCC54(taskId);
}
else
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
taskData[4] = sub_80BC948(taskData[1] + taskData[2]);
sub_80BC980(taskId);
}
@@ -1035,8 +1035,8 @@ void sub_80BC824(u8 taskId)
else if (gMain.newKeys & B_BUTTON)
{
PlaySE(5);
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80BCC54(taskId);
}
}
@@ -1064,10 +1064,10 @@ u8 sub_80BC948(u8 a)
void sub_80BC980(u8 taskId)
{
- PauseVerticalScrollIndicator(0);
- PauseVerticalScrollIndicator(1);
- MenuDrawTextWindow(1, 0, 12, 5);
- PrintMenuItems(2, 1, 2, (const struct MenuAction *)gUnknown_083D13D4);
+ PauseVerticalScrollIndicator(TOP_ARROW);
+ PauseVerticalScrollIndicator(BOTTOM_ARROW);
+ Menu_DrawStdWindowFrame(1, 0, 12, 5);
+ Menu_PrintItems(2, 1, 2, (const struct MenuAction *)gUnknown_083D13D4);
InitMenu(0, 2, 1, 2, 0, 10);
gTasks[taskId].func = sub_80BC9E4;
}
@@ -1076,24 +1076,24 @@ void sub_80BC9E4(u8 taskId)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
- if (GetMenuCursorPos())
+ if (Menu_GetCursorPos())
{
PlaySE(5);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
- if (GetMenuCursorPos() != 1)
+ if (Menu_GetCursorPos() != 1)
{
PlaySE(5);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(5);
- gUnknown_083D13D4[GetMenuCursorPos()].func(taskId);
+ gUnknown_083D13D4[Menu_GetCursorPos()].func(taskId);
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1106,10 +1106,10 @@ void sub_80BCA84(u8 taskId)
{
s16 *taskData = gTasks[taskId].data;
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80BC190(gStringVar1, taskData[4]);
StringExpandPlaceholders(gStringVar4, gOtherText_OkayToDeleteFromRegistry);
@@ -1126,7 +1126,7 @@ void sub_80BCB10(u8 taskId)
{
s16 *taskData = gTasks[taskId].data;
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
gSaveBlock1.secretBases[taskData[4]].sbr_field_1_6 = 0;
taskData[0]--;
@@ -1147,13 +1147,13 @@ void sub_80BCB10(u8 taskId)
void sub_80BCB90(u8 taskId)
{
- MenuZeroFillWindowRect(20, 8, 26, 13);
+ Menu_EraseWindowRect(20, 8, 26, 13);
DisplayItemMessageOnField(taskId, gOtherText_RegisteredDataDeleted, sub_80BCB10, 0);
}
void sub_80BCBC0(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
sub_80BC7D8(taskId);
gTasks[taskId].func = sub_80BC824;
@@ -1164,9 +1164,9 @@ void sub_80BCBF8(u8 taskId)
s16 *taskData = gTasks[taskId].data;
InitMenu(0, 18, 2, taskData[3] + 1, taskData[1], 11);
- MenuZeroFillWindowRect(1, 0, 12, 5);
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
+ Menu_EraseWindowRect(1, 0, 12, 5);
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
gTasks[taskId].func = sub_80BC824;
}
@@ -1176,8 +1176,8 @@ void sub_80BCC54(u8 taskId)
u16 curBaseIndex = VarGet(VAR_CURRENT_SECRET_BASE);
BuyMenuFreeMemory();
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
if (curBaseIndex == 0)
{
@@ -1648,6 +1648,178 @@ void sub_80BD610(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases
sub_80BD328(basesC, 0);
}
+#if DEBUG
+__attribute__((naked))
+void sub_80BD674(void *playerRecords, u32 size, u8 c)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ add r6, r0, #0\n\
+ add r5, r1, #0\n\
+ lsl r2, r2, #0x18\n\
+ lsr r7, r2, #0x18\n\
+ ldr r0, ._503 @ gUnknown_020297ED\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._498 @cond_branch\n\
+ mov r0, #0x60\n\
+ bl FlagGet\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._498 @cond_branch\n\
+ b ._520\n\
+._498:\n\
+ bl GetLinkPlayerCount\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x2\n\
+ beq ._500 @cond_branch\n\
+ cmp r0, #0x3\n\
+ beq ._501 @cond_branch\n\
+ b ._505\n\
+._504:\n\
+ .align 2, 0\n\
+._503:\n\
+ .word gUnknown_020297ED\n\
+._500:\n\
+ lsl r4, r5, #0x1\n\
+ add r0, r6, r4\n\
+ mov r1, #0x0\n\
+ add r2, r5, #0\n\
+ bl memset\n\
+ add r4, r4, r5\n\
+ add r4, r6, r4\n\
+ add r0, r4, #0\n\
+ mov r1, #0x0\n\
+ add r2, r5, #0\n\
+ bl memset\n\
+ b ._505\n\
+._501:\n\
+ lsl r0, r5, #0x1\n\
+ add r0, r0, r5\n\
+ add r0, r6, r0\n\
+ mov r1, #0x0\n\
+ add r2, r5, #0\n\
+ bl memset\n\
+._505:\n\
+ cmp r7, #0x1\n\
+ beq ._506 @cond_branch\n\
+ cmp r7, #0x1\n\
+ bgt ._507 @cond_branch\n\
+ cmp r7, #0\n\
+ beq ._508 @cond_branch\n\
+ b ._515\n\
+._507:\n\
+ cmp r7, #0x2\n\
+ beq ._510 @cond_branch\n\
+ cmp r7, #0x3\n\
+ beq ._511 @cond_branch\n\
+ b ._515\n\
+._508:\n\
+ add r0, r6, r5\n\
+ lsl r2, r5, #0x1\n\
+ add r1, r6, r2\n\
+ add r2, r2, r5\n\
+ add r2, r6, r2\n\
+ bl sub_80BD610\n\
+ b ._515\n\
+._506:\n\
+ lsl r1, r5, #0x1\n\
+ add r0, r6, r1\n\
+ add r1, r1, r5\n\
+ add r1, r6, r1\n\
+ add r2, r6, #0\n\
+ bl sub_80BD610\n\
+ b ._515\n\
+._510:\n\
+ lsl r0, r5, #0x1\n\
+ add r0, r0, r5\n\
+ add r0, r6, r0\n\
+ add r2, r6, r5\n\
+ add r1, r6, #0\n\
+ bl sub_80BD610\n\
+ b ._515\n\
+._511:\n\
+ add r1, r6, r5\n\
+ lsl r2, r5, #0x1\n\
+ add r2, r6, r2\n\
+ add r0, r6, #0\n\
+ bl sub_80BD610\n\
+._515:\n\
+ mov r3, #0x1\n\
+ ldr r6, ._521 @ gSaveBlock1\n\
+ mov r5, #0x10\n\
+ neg r5, r5\n\
+ ldr r4, ._521 + 4 @ 0x1a09\n\
+._517:\n\
+ lsl r0, r3, #0x2\n\
+ add r0, r0, r3\n\
+ lsl r0, r0, #0x5\n\
+ add r0, r0, r6\n\
+ add r2, r0, r4\n\
+ ldrb r1, [r2]\n\
+ lsl r0, r1, #0x1c\n\
+ lsr r0, r0, #0x1c\n\
+ cmp r0, #0x1\n\
+ bne ._516 @cond_branch\n\
+ mov r0, #0x3f\n\
+ and r0, r0, r1\n\
+ mov r1, #0x40\n\
+ orr r0, r0, r1\n\
+ and r0, r0, r5\n\
+ strb r0, [r2]\n\
+._516:\n\
+ add r0, r3, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r3, r0, #0x10\n\
+ cmp r3, #0x13\n\
+ bls ._517 @cond_branch\n\
+ bl sub_80BD280\n\
+ mov r3, #0x1\n\
+ ldr r4, ._521 @ gSaveBlock1\n\
+ ldr r6, ._521 + 4 @ 0x1a09\n\
+ add r7, r4, #0\n\
+ mov r5, #0x3f\n\
+._519:\n\
+ lsl r0, r3, #0x2\n\
+ add r0, r0, r3\n\
+ lsl r0, r0, #0x5\n\
+ add r0, r0, r4\n\
+ add r2, r0, r6\n\
+ ldrb r1, [r2]\n\
+ lsr r0, r1, #0x6\n\
+ cmp r0, #0x2\n\
+ bne ._518 @cond_branch\n\
+ add r0, r5, #0\n\
+ and r0, r0, r1\n\
+ strb r0, [r2]\n\
+._518:\n\
+ add r0, r3, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r3, r0, #0x10\n\
+ cmp r3, #0x13\n\
+ bls ._519 @cond_branch\n\
+ ldr r0, ._521 + 8 @ 0x1a16\n\
+ add r2, r7, r0\n\
+ ldrh r1, [r2]\n\
+ ldr r0, ._521 + 12 @ 0xffff\n\
+ cmp r1, r0\n\
+ beq ._520 @cond_branch\n\
+ add r0, r1, #1\n\
+ strh r0, [r2]\n\
+._520:\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._522:\n\
+ .align 2, 0\n\
+._521:\n\
+ .word gSaveBlock1\n\
+ .word 0x1a09\n\
+ .word 0x1a16\n\
+ .word 0xffff");
+}
+#else
void sub_80BD674(void *playerRecords, u32 size, u8 c)
{
if (FlagGet(FLAG_RECEIVED_SECRET_POWER))
@@ -1706,3 +1878,4 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c)
}
}
}
+#endif
diff --git a/src/field/shop.c b/src/field/shop.c
index 23d668fc7..fdee31178 100644
--- a/src/field/shop.c
+++ b/src/field/shop.c
@@ -15,7 +15,7 @@
#include "strings.h"
#include "task.h"
#include "tv.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "field_map_obj.h"
#include "field_player_avatar.h"
#include "fieldmap.h"
@@ -28,54 +28,66 @@
#include "field_camera.h"
#include "ewram.h"
-extern bool8 sub_80A52C4(u8, u8);
+extern bool8 SellMenu_QuantityRoller(u8, u8);
extern u8 gBuyMenuFrame_Gfx[];
extern u16 gBuyMenuFrame_Tilemap[];
extern u16 gMenuMoneyPal[16];
-void sub_80B39D0(int var1, int var2, bool32 hasControlCode);
-void sub_80B3A70(void);
-void sub_80B4378(u8);
-void sub_80B43F0(u8);
-void Task_ExitBuyMenu(u8);
-void sub_80B4470(u8);
-void sub_80B2EFC(u8 taskId);
-void sub_80B2F30(u8 taskId);
-void HandleShopMenuQuit(u8 taskId);
-void sub_80B3BF4(u8 taskId);
-void sub_80B3D7C(u8 taskId);
+static void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlCode);
+static void Shop_PrintItemDescText(void);
+static void Task_ReturnToBuyMenu(u8);
+static void Task_ExitBuyMenu(u8);
+static void Task_ExitBuyMenuDoFade(u8);
+static void Task_UpdatePurchaseHistory(u8);
+static void Task_HandleShopMenuBuy(u8 taskId);
+static void Task_HandleShopMenuSell(u8 taskId);
+static void Task_HandleShopMenuQuit(u8 taskId);
+static void Task_DoItemPurchase(u8 taskId);
+static void Task_CancelItemPurchase(u8 taskId);
+static void Task_DoBuySellMenu(u8);
+static void Shop_FadeAndRunBuySellCallback(u8);
+static void BuyMenuDrawGraphics(void);
+static void sub_80B3240(void);
+static void DrawFirstMartScrollIndicators(void);
+static void Shop_DrawViewport(void);
+static void Shop_InitMenus(int, int);
+static void Shop_PrintItemDesc(void);
+static void Shop_DoCursorAction(u8);
+static void Shop_LoadViewportObjects(void);
+static void Shop_AnimViewportObjects(void);
// iwram
static struct MartInfo gMartInfo;
// ewram
EWRAM_DATA u32 gMartTotalCost = 0;
-EWRAM_DATA s16 gUnknown_020386A4[16][4] = {0};
-EWRAM_DATA struct ItemSlot gUnknown_02038724[3] = {0}; // tv.c uses this, so it cant be static
-EWRAM_DATA u8 gUnknown_02038730 = 0;
-EWRAM_DATA u8 gUnknown_02038731 = 0;
+EWRAM_DATA s16 gMartViewportObjects[16][4] = {0};
+EWRAM_DATA struct ItemSlot gMartPurchaseHistory[3] = {0};
+EWRAM_DATA u8 gMartPurchaseHistoryId = 0;
+
+EWRAM_DATA u8 gUnknown_02038731 = 0; // This really should be in fldeff_escalator, but being in a new file aligns the ewram, which doesnt match the ROM.
// rodata
static const struct MenuAction2 sBuySellQuitMenuActions[] =
{
- { MartText_Buy, sub_80B2EFC },
- { MartText_Sell, sub_80B2F30 },
- { MartText_Quit2, HandleShopMenuQuit },
+ { MartText_Buy, Task_HandleShopMenuBuy },
+ { MartText_Sell, Task_HandleShopMenuSell },
+ { MartText_Quit2, Task_HandleShopMenuQuit },
};
-static const u8 gUnknown_083CC6E8[] = {0, 1, 2}; // BUY SELL EXIT
-static const u8 gUnknown_083CC6EB[] = {0, 2}; // BUY EXIT
+static const u8 gMartBuySellOptionList[] = {SHOP_BUY, SHOP_SELL, SHOP_EXIT};
+static const u8 gMartBuyNoSellOptionList[] = {SHOP_BUY, SHOP_EXIT};
static const u16 gUnusedMartArray[] = {0x2, 0x3, 0x4, 0xD, 0x121, 0xE, 0xE, 0xE, 0xE, 0xE, 0xE, 0x0, 0x0};
-static const struct YesNoFuncTable gUnknown_083CC708[] =
+static const struct YesNoFuncTable sShopPurchaseYesNoFuncs[] =
{
- sub_80B3BF4,
- sub_80B3D7C
+ Task_DoItemPurchase,
+ Task_CancelItemPurchase
};
-u8 CreateShopMenu(u8 martType)
+static u8 CreateShopMenu(u8 martType)
{
ScriptContext2_Enable();
gMartInfo.martType = martType;
@@ -84,26 +96,26 @@ u8 CreateShopMenu(u8 martType)
if (martType == MART_TYPE_0)
{
gMartInfo.numChoices = 2;
- MenuDrawTextWindow(0, 0, 10, 7);
- PrintMenuItemsReordered(1, 1, 3, sBuySellQuitMenuActions, gUnknown_083CC6E8);
+ Menu_DrawStdWindowFrame(0, 0, 10, 7);
+ Menu_PrintItemsReordered(1, 1, 3, sBuySellQuitMenuActions, gMartBuySellOptionList);
}
else
{
gMartInfo.numChoices = 1;
- MenuDrawTextWindow(0, 0, 10, 5);
- PrintMenuItemsReordered(1, 1, 2, sBuySellQuitMenuActions, gUnknown_083CC6EB);
+ Menu_DrawStdWindowFrame(0, 0, 10, 5);
+ Menu_PrintItemsReordered(1, 1, 2, sBuySellQuitMenuActions, gMartBuyNoSellOptionList);
}
InitMenu(0, 1, 1, gMartInfo.numChoices + 1, 0, 9); // add 1 for cancel
- return CreateTask(sub_80B2E38, 8);
+ return CreateTask(Task_DoBuySellMenu, 8);
}
-void SetShopMenuCallback(void *callbackPtr)
+static void SetShopMenuCallback(void *callbackPtr)
{
gMartInfo.callback = callbackPtr;
}
-void SetShopItemsForSale(u16 *items)
+static void SetShopItemsForSale(u16 *items)
{
u16 i = 0;
@@ -117,16 +129,16 @@ void SetShopItemsForSale(u16 *items)
}
}
-void sub_80B2E38(u8 var)
+static void Task_DoBuySellMenu(u8 taskId)
{
- const u8 local = var;
+ const u8 taskIdConst = taskId; // why is a local const needed to match?
if (gMain.newAndRepeatedKeys & DPAD_UP)
{
if (gMartInfo.cursor) // can move cursor up?
{
PlaySE(SE_SELECT);
- gMartInfo.cursor = MoveMenuCursor(-1);
+ gMartInfo.cursor = Menu_MoveCursor(-1);
}
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
@@ -134,7 +146,7 @@ void sub_80B2E38(u8 var)
if (gMartInfo.cursor != gMartInfo.numChoices) // can move cursor down?
{
PlaySE(SE_SELECT);
- gMartInfo.cursor = MoveMenuCursor(1);
+ gMartInfo.cursor = Menu_MoveCursor(1);
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -142,40 +154,40 @@ void sub_80B2E38(u8 var)
PlaySE(SE_SELECT);
if (gMartInfo.martType == MART_TYPE_0)
{
- sBuySellQuitMenuActions[gUnknown_083CC6E8[gMartInfo.cursor]].func(local);
+ sBuySellQuitMenuActions[gMartBuySellOptionList[gMartInfo.cursor]].func(taskIdConst);
}
else
{
- sBuySellQuitMenuActions[gUnknown_083CC6EB[gMartInfo.cursor]].func(local);
+ sBuySellQuitMenuActions[gMartBuyNoSellOptionList[gMartInfo.cursor]].func(taskIdConst);
}
}
else if (gMain.newKeys & B_BUTTON)
{
PlaySE(SE_SELECT);
- HandleShopMenuQuit(local);
+ Task_HandleShopMenuQuit(taskIdConst);
}
}
-void sub_80B2EFC(u8 taskId)
+static void Task_HandleShopMenuBuy(u8 taskId)
{
gTasks[taskId].data[8] = (u32)BuyMenuDrawGraphics >> 16;
gTasks[taskId].data[9] = (u32)BuyMenuDrawGraphics;
- gTasks[taskId].func = sub_80B2FA0;
- fade_screen(1, 0);
+ gTasks[taskId].func = Shop_FadeAndRunBuySellCallback;
+ FadeScreen(1, 0);
}
-void sub_80B2F30(u8 taskId)
+static void Task_HandleShopMenuSell(u8 taskId)
{
- gTasks[taskId].data[8] = (u32)sub_80A6300 >> 16;
- gTasks[taskId].data[9] = (u32)sub_80A6300;
- gTasks[taskId].func = sub_80B2FA0;
- fade_screen(1, 0);
+ gTasks[taskId].data[8] = (u32)ItemMenu_LoadSellMenu >> 16;
+ gTasks[taskId].data[9] = (u32)ItemMenu_LoadSellMenu;
+ gTasks[taskId].func = Shop_FadeAndRunBuySellCallback;
+ FadeScreen(1, 0);
}
-void HandleShopMenuQuit(u8 taskId)
+static void Task_HandleShopMenuQuit(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 11, 8);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 11, 8);
sub_80BE3BC();
ScriptContext2_Disable();
DestroyTask(taskId);
@@ -184,7 +196,7 @@ void HandleShopMenuQuit(u8 taskId)
gMartInfo.callback(); // run the callback if it exists.
}
-void sub_80B2FA0(u8 taskId)
+static void Shop_FadeAndRunBuySellCallback(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -193,15 +205,15 @@ void sub_80B2FA0(u8 taskId)
}
}
-void ReturnToShopMenuAfterExitingSellMenu(u8 taskId)
+static void ReturnToShopMenuAfterExitingSellMenu(u8 taskId)
{
CreateShopMenu(gMartInfo.martType);
DestroyTask(taskId);
}
-void Task_ExitSellMenu(u8 taskId)
+static void Task_ReturnToMartMenu(u8 taskId)
{
- if (sub_807D770() == 1)
+ if (IsWeatherNotFadingIn() == 1)
{
if (gMartInfo.martType == MART_TYPE_2)
DisplayItemMessageOnField(taskId, gOtherText_CanIHelpYou, ReturnToShopMenuAfterExitingSellMenu, 0);
@@ -210,23 +222,24 @@ void Task_ExitSellMenu(u8 taskId)
}
}
-void sub_80B3050(void)
+void Shop_FadeReturnToMartMenu(void)
{
pal_fill_black();
- CreateTask(Task_ExitSellMenu, 0x8);
+ CreateTask(Task_ReturnToMartMenu, 0x8);
}
-void sub_80B3068(u8 taskId)
+void Shop_RunExitSellMenuTask(u8 taskId)
{
- Task_ExitSellMenu(taskId);
+ Task_ReturnToMartMenu(taskId);
}
-void unref_sub_80B3078(u8 taskId)
+// unused
+void Shop_LoadExitSellMenuTask(u8 taskId)
{
- gTasks[taskId].func = Task_ExitSellMenu;
+ gTasks[taskId].func = Task_ReturnToMartMenu;
}
-void sub_80B3094(void)
+static void MainCB2(void)
{
AnimateSprites();
BuildOamBuffer();
@@ -234,50 +247,43 @@ void sub_80B3094(void)
UpdatePaletteFade();
}
-void sub_80B30AC(void)
+static void VBlankCB(void)
{
- void *addr;
- void *addr2;
- void *addr3;
- u16 *tempArr;
- u16 *tempArr2;
- u16 *tempArr3;
-
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
-
- // temp vars needed to match for some dumb reason
- tempArr = gBGTilemapBuffers[1];
- addr = (void *)(VRAM + 0xE800);
- DmaCopy16(3, tempArr, addr, 0x800);
- tempArr2 = gBGTilemapBuffers[2];
- addr2 = (void *)(VRAM + 0xE000);
- DmaCopy16(3, tempArr2, addr2, 0x800);
- tempArr3 = gBGTilemapBuffers[3];
- addr3 = (void *)(VRAM + 0xF000);
- DmaCopy16(3, tempArr3, addr3, 0x800);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[1], (void *)(VRAM + 0xE800), 0x800);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[2], (void *)(VRAM + 0xE000), 0x800);
+ DmaCopy16Defvars(3, gBGTilemapBuffers[3], (void *)(VRAM + 0xF000), 0x800);
}
-// this function is fugly. pls fix
-void BuyMenuDrawGraphics(void)
+static void BuyMenuDrawGraphics(void)
{
- void *addr;
- register u16 zero2 asm("r5");
-
- sub_80F9438();
- remove_some_task();
- REG_BG1HOFS = (zero2 = 0);
- REG_BG1VOFS = zero2;
- REG_BG2HOFS = zero2;
- REG_BG2VOFS = zero2;
- REG_BG3HOFS = zero2;
- REG_BG3VOFS = zero2;
+ ClearVideoCallbacks();
+ ScanlineEffect_Stop();
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
gPaletteFade.bufferTransferDisabled = 1;
- addr = (void*)OAM;
- {
- register const u32 zero asm("r6") = 0;
- DmaFill32(3, zero, addr, OAM_SIZE);
+
+ /*
+ THEORY: This seemingly useless loop is required in order to match this
+ function without hacks. The reason is because it alters the 0 optimization
+ of a later assignment into using 2 different 0s instead of the same register.
+ It is speculated that at some point Game Freak insert an artificial
+ breakpoint here in order to look at the contents of OAM before it is cleared,
+ possibly because a programmer made a mistake in shop.c which corrupted its
+ contents. There may have been a macro here which at one point idled on the
+ while(1) but was changed to 0 for release due to a define somewhere. A
+ while(0) also matches, but it is more correct to use do {} while(0) as it
+ was a fix to prevent compiler warnings on older compilers.
+ */
+ do {} while(0);
+
+ DmaFill32Defvars(3, 0, (void*)OAM, OAM_SIZE);
LZDecompressVram(gBuyMenuFrame_Gfx, (void*)(VRAM + 0x7C00));
LZDecompressWram(gBuyMenuFrame_Tilemap, ewram18000_2);
LoadCompressedPalette(gMenuMoneyPal, 0xC0, sizeof(gMenuMoneyPal));
@@ -285,74 +291,74 @@ void BuyMenuDrawGraphics(void)
ResetPaletteFade();
ResetSpriteData();
ResetTasks();
- SetUpWindowConfig(&gWindowConfig_81E6DFC);
- InitMenuWindow(&gWindowConfig_81E6DFC);
- BuyMenuDrawMapGraphics();
- gMartInfo.cursor = zero;
- gMartInfo.choicesAbove = zero2;
- MenuZeroFillWindowRect(0, 0, 0x20, 0x20);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6DFC);
+ InitMenuWindow(&gWindowTemplate_81E6DFC);
+ Shop_DrawViewport();
+ gMartInfo.cursor = 0;
+ gMartInfo.choicesAbove = 0;
+ Menu_EraseWindowRect(0, 0, 0x20, 0x20);
OpenMoneyWindow(gSaveBlock1.money, 0, 0);
- sub_80B3764(0, 7);
- sub_80B37EC();
- sub_80B3270();
- CreateTask(sub_80B40E8, 0x8);
+ Shop_InitMenus(0, 7);
+ Shop_PrintItemDesc();
+ DrawFirstMartScrollIndicators();
+ CreateTask(Shop_DoCursorAction, 0x8);
sub_80B3240();
- asm("":::"r4"); // what??
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, zero);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
gPaletteFade.bufferTransferDisabled = 0;
- SetVBlankCallback(sub_80B30AC);
- SetMainCallback2(sub_80B3094);
- }
+ SetVBlankCallback(VBlankCB);
+ SetMainCallback2(MainCB2);
}
-void sub_80B3240(void)
+static void sub_80B3240(void)
{
- u16 tempArr[2] = {0x41EE, 0x7FFF};
+ u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE};
- LoadPalette(&tempArr[1], 0xD1, 2);
- LoadPalette(&tempArr[0], 0xD8, 2);
+ LoadPalette(&colors[1], 0xD1, sizeof colors[1]);
+ LoadPalette(&colors[0], 0xD8, sizeof colors[0]);
}
-void sub_80B3270(void)
+static void DrawFirstMartScrollIndicators(void)
{
- sub_80F944C();
+ ClearVerticalScrollIndicatorPalettes();
if (gMartInfo.itemCount > 7)
{
- CreateVerticalScrollIndicators(0, 172, 12);
- CreateVerticalScrollIndicators(1, 172, 148);
- sub_80F979C(0, 1);
+ CreateVerticalScrollIndicators(TOP_ARROW, 172, 12);
+ CreateVerticalScrollIndicators(BOTTOM_ARROW, 172, 148);
+ SetVerticalScrollIndicators(TOP_ARROW, INVISIBLE);
}
}
-void sub_80B32A4(void)
+static void Shop_TryDrawVerticalScrollIndicators(void)
{
if (gMartInfo.choicesAbove == 0)
- sub_80F979C(0, 1);
+ SetVerticalScrollIndicators(TOP_ARROW, INVISIBLE);
else
- sub_80F979C(0, 0);
+ SetVerticalScrollIndicators(TOP_ARROW, VISIBLE);
if (gMartInfo.choicesAbove + 7 >= gMartInfo.itemCount)
- sub_80F979C(1, 1);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
else
- sub_80F979C(1, 0);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, VISIBLE);
}
-void sub_80B32EC(u16 *array, s16 offset1, s16 offset2)
+// what is the point of this function? the tiles always get overwritten by BuyMenuDrawTextboxBG.
+static void BuyMenuDrawTextboxBG_Old(u16 *array, s16 offset1, s16 offset2)
{
array[offset1 + offset2] = 0xC3E1;
array[offset1 + offset2 + 1] = 0xC3E1;
}
-void BuyMenuDrawMapMetatileLayer(u16 *array, s16 offset1, s16 offset2, u16 *array2)
+static void BuyMenuDrawMapMetatileLayer(u16 *array, s16 offset1, s16 offset2, u16 *array2)
{
- array[offset1 + offset2] = array2[0];
- array[offset1 + offset2 + 1] = array2[1];
- array[offset1 + offset2 + 32] = array2[2];
- array[offset1 + offset2 + 33] = array2[3];
+ // This function draws a whole 2x2 metatile.
+ array[offset1 + offset2] = array2[0]; // top left
+ array[offset1 + offset2 + 1] = array2[1]; // top right
+ array[offset1 + offset2 + 32] = array2[2]; // bottom left
+ array[offset1 + offset2 + 33] = array2[3]; // bottom right
}
-void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s32 var4)
+static void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s32 var4)
{
u8 tempVar4 = var4;
s16 offset1 = var1 * 2;
@@ -375,7 +381,8 @@ void BuyMenuDrawMapMetatile(int var1, int var2, u16 *var3, s32 var4)
}
}
-void sub_80B33D0(s16 var1, int var2, u16 *var3)
+// used to draw the border tiles around the viewport.
+static void BuyMenuDrawMapPartialMetatile(s16 var1, int var2, u16 *var3)
{
s16 offset1 = var1 * 2;
s16 offset2 = (var2 * 0x40) + 0x40;
@@ -384,7 +391,7 @@ void sub_80B33D0(s16 var1, int var2, u16 *var3)
BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3 + 4);
}
-void sub_80B3420(void)
+static void Shop_DrawViewportTiles(void)
{
s16 facingX;
s16 facingY;
@@ -413,26 +420,26 @@ void sub_80B3420(void)
else
{
if (metatileId < 512)
- sub_80B33D0(x, y, (u16 *)gMapHeader.mapData->primaryTileset->metatiles + metatileId * 8);
+ BuyMenuDrawMapPartialMetatile(x, y, (u16 *)gMapHeader.mapData->primaryTileset->metatiles + metatileId * 8);
else
- sub_80B33D0(x, y, (u16 *)gMapHeader.mapData->secondaryTileset->metatiles + (metatileId - 512) * 8);
+ BuyMenuDrawMapPartialMetatile(x, y, (u16 *)gMapHeader.mapData->secondaryTileset->metatiles + (metatileId - 512) * 8);
}
if (y == 0 && x != 0 && x != 6)
- sub_80B32EC(gBGTilemapBuffers[1], x * 2, 64);
+ BuyMenuDrawTextboxBG_Old(gBGTilemapBuffers[1], x * 2, 64);
}
}
}
-void BuyMenuDrawMapGraphics(void)
+static void Shop_DrawViewport(void)
{
- sub_80F9020();
- sub_80B356C();
- sub_80B368C();
- sub_80B3420();
+ ClearBGTilemapBuffers();
+ Shop_LoadViewportObjects();
+ Shop_AnimViewportObjects();
+ Shop_DrawViewportTiles();
}
-void sub_80B356C(void)
+static void Shop_LoadViewportObjects(void)
{
s16 facingX;
s16 facingY;
@@ -444,7 +451,7 @@ void sub_80B356C(void)
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
playerHeight = PlayerGetZCoord();
for (y = 0; y < 16; y++)
- gUnknown_020386A4[y][MAP_OBJ_ID] = 16;
+ gMartViewportObjects[y][MAP_OBJ_ID] = 16;
for (y = 0; y < 5; y++)
{
for (x = 0; x < 7; x++)
@@ -453,43 +460,43 @@ void sub_80B356C(void)
if (mapObjId != 16)
{
- gUnknown_020386A4[r8][MAP_OBJ_ID] = mapObjId;
- gUnknown_020386A4[r8][X_COORD] = x;
- gUnknown_020386A4[r8][Y_COORD] = y;
+ gMartViewportObjects[r8][MAP_OBJ_ID] = mapObjId;
+ gMartViewportObjects[r8][X_COORD] = x;
+ gMartViewportObjects[r8][Y_COORD] = y;
if (gMapObjects[mapObjId].mapobj_unk_18 == 1)
- gUnknown_020386A4[r8][ANIM_NUM] = 0;
+ gMartViewportObjects[r8][ANIM_NUM] = 0;
if (gMapObjects[mapObjId].mapobj_unk_18 == 2)
- gUnknown_020386A4[r8][ANIM_NUM] = 1;
+ gMartViewportObjects[r8][ANIM_NUM] = 1;
if (gMapObjects[mapObjId].mapobj_unk_18 == 3)
- gUnknown_020386A4[r8][ANIM_NUM] = 2;
+ gMartViewportObjects[r8][ANIM_NUM] = 2;
if (gMapObjects[mapObjId].mapobj_unk_18 == 4)
- gUnknown_020386A4[r8][ANIM_NUM] = 3;
+ gMartViewportObjects[r8][ANIM_NUM] = 3;
r8++;
}
}
}
}
-void sub_80B368C(void)
+static void Shop_AnimViewportObjects(void)
{
u8 i;
for (i = 0; i < 16; i++) // max objects?
{
- if (gUnknown_020386A4[i][MAP_OBJ_ID] == 16)
+ if (gMartViewportObjects[i][MAP_OBJ_ID] == 16)
continue;
StartSpriteAnim(&gSprites[AddPseudoFieldObject(
- gMapObjects[gUnknown_020386A4[i][MAP_OBJ_ID]].graphicsId,
+ gMapObjects[gMartViewportObjects[i][MAP_OBJ_ID]].graphicsId,
SpriteCallbackDummy,
- (u16)gUnknown_020386A4[i][X_COORD] * 16 + 8,
- (u16)gUnknown_020386A4[i][Y_COORD] * 16 + 32,
+ (u16)gMartViewportObjects[i][X_COORD] * 16 + 8,
+ (u16)gMartViewportObjects[i][Y_COORD] * 16 + 32,
2)],
- gUnknown_020386A4[i][ANIM_NUM]);
+ gMartViewportObjects[i][ANIM_NUM]);
}
}
-void sub_80B3720(void)
+static void BuyMenuDrawTextboxBG(void)
{
s16 i;
@@ -500,14 +507,15 @@ void sub_80B3720(void)
}
}
-void sub_80B3764(int var1, int var2)
+static void Shop_InitMenus(int firstItemId, int lastItemId)
{
- sub_80B3720();
- sub_80B39D0(var1, var2, 0);
+ BuyMenuDrawTextboxBG();
+ Shop_DisplayPriceInList(firstItemId, lastItemId, 0);
InitMenu(0, 0xE, 0x2, 0x8, gMartInfo.cursor, 0xF);
}
-void sub_80B379C(void)
+// after printing the item quantity and price, restore the textbox tiles before the Yes/No prompt.
+static void BuyMenuDrawTextboxBG_Restore(void)
{
u16 i, j;
@@ -516,27 +524,29 @@ void sub_80B379C(void)
gBGTilemapBuffers[1][32 * (i + 12) + j] = ewram18300[32 * i + j] + 0xC3E0;
}
-void sub_80B37EC(void)
+static void Shop_PrintItemDesc(void)
{
- sub_80B3A70();
+ Shop_PrintItemDescText();
}
-void sub_80B37F8(u8 taskId)
+#define tItemCount data[1]
+
+static void Shop_DisplayPriceInCheckoutWindow(u8 taskId)
{
u16 itemListIndex = gMartInfo.choicesAbove + gMartInfo.cursor;
u16 itemId = gMartInfo.itemList[itemListIndex];
u32 price = (ItemId_GetPrice(itemId) >> GetPriceReduction(1));
- PrintMoneyAmount(gTasks[taskId].data[1] * price, 6, 6, 11);
+ PrintMoneyAmount(gTasks[taskId].tItemCount * price, 6, 6, 11);
gStringVar1[0] = EXT_CTRL_CODE_BEGIN;
gStringVar1[1] = 0x14;
gStringVar1[2] = 0x6;
- ConvertIntToDecimalStringN(&gStringVar1[3], gTasks[taskId].data[1], 1, 2);
- MenuPrint(gOtherText_xString1, 1, 11);
+ ConvertIntToDecimalStringN(&gStringVar1[3], gTasks[taskId].tItemCount, 1, 2);
+ Menu_PrintText(gOtherText_xString1, 1, 11);
sub_80A3FA0(gBGTilemapBuffers[1], 1, 11, 12, 2, 0xC3E1);
}
-void sub_80B389C(u16 itemId, u8 var2, bool32 hasControlCode)
+static void Shop_DisplayNormalPriceInList(u16 itemId, u8 var2, bool32 hasControlCode)
{
u8 *stringPtr = gStringVar1;
@@ -557,10 +567,10 @@ void sub_80B389C(u16 itemId, u8 var2, bool32 hasControlCode)
stringPtr = &gStringVar1[3];
GetMoneyAmountText(stringPtr, (ItemId_GetPrice(itemId) >> GetPriceReduction(1)), 0x4);
- MenuPrint_PixelCoords(&gStringVar1[0], 0xCA, var2 << 3, 1);
+ Menu_PrintTextPixelCoords(&gStringVar1[0], 0xCA, var2 << 3, 1);
}
-void sub_80B3930(u16 itemId, u8 var2, bool32 hasControlCode)
+static void Shop_DisplayDecorationPriceInList(u16 itemId, u8 var2, bool32 hasControlCode)
{
u8 *stringPtr = gStringVar1;
@@ -579,37 +589,40 @@ void sub_80B3930(u16 itemId, u8 var2, bool32 hasControlCode)
if (hasControlCode != FALSE)
stringPtr = &gStringVar1[3];
+ // some names are the maximum string length for a shop item. Because there is no room for
+ // a 6 character price (including the currency), a sprite is instead used for anything that
+ // is the maximum decoration price in order to fit it on screen.
if (gDecorations[itemId].price == 10000)
{
- sub_80B7B34(0x19, var2, hasControlCode); // huh???
+ Draw10000Sprite(0x19, var2, hasControlCode);
}
else
{
GetMoneyAmountText(stringPtr, gDecorations[itemId].price, 0x4);
- MenuPrint_PixelCoords(&gStringVar1[0], 0xCA, var2 << 3, 0x1);
+ Menu_PrintTextPixelCoords(&gStringVar1[0], 0xCA, var2 << 3, 0x1);
}
}
-void sub_80B39D0(int var1, int var2, bool32 hasControlCode)
+static void Shop_DisplayPriceInList(int firstItemId, int lastItemId, bool32 hasControlCode)
{
u8 i;
- for (i = var1; i <= var2 && gMartInfo.choicesAbove + i < gMartInfo.itemCount; i++)
+ for (i = firstItemId; i <= lastItemId && gMartInfo.choicesAbove + i < gMartInfo.itemCount; i++)
{
if (gMartInfo.martType == MART_TYPE_0)
- sub_80B389C(gMartInfo.itemList[gMartInfo.choicesAbove + i], (i << 1) + 2, hasControlCode);
+ Shop_DisplayNormalPriceInList(gMartInfo.itemList[gMartInfo.choicesAbove + i], (i << 1) + 2, hasControlCode);
else
- sub_80B3930(gMartInfo.itemList[gMartInfo.choicesAbove + i], (i << 1) + 2, hasControlCode);
+ Shop_DisplayDecorationPriceInList(gMartInfo.itemList[gMartInfo.choicesAbove + i], (i << 1) + 2, hasControlCode);
}
if (i != 8 && gMartInfo.choicesAbove + i == gMartInfo.itemCount)
{
- MenuFillWindowRectWithBlankTile(0xE, (i << 1) + 2, 0x1C, (i << 1) + 3);
- MenuPrint(gOtherText_CancelNoTerminator, 0xE, (i << 1) + 2);
+ Menu_BlankWindowRect(0xE, (i << 1) + 2, 0x1C, (i << 1) + 3);
+ Menu_PrintText(gOtherText_CancelNoTerminator, 0xE, (i << 1) + 2);
}
}
-void sub_80B3A70(void)
+static void Shop_PrintItemDescText(void)
{
if (gMartInfo.choicesAbove + gMartInfo.cursor != gMartInfo.itemCount)
{
@@ -628,121 +641,122 @@ void sub_80B3A70(void)
}
}
-void sub_80B3AEC(u8 taskId)
+static void Shop_DoPremierBallCheck(u8 taskId)
{
if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
{
- sub_80B39D0(gMartInfo.cursor, gMartInfo.cursor, 0); // huh???
+ Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 0);
PlaySE(SE_SELECT);
- if (gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor] == ITEM_POKE_BALL && gTasks[taskId].data[1] >= 10 && AddBagItem(ITEM_PREMIER_BALL, 1) == TRUE)
- DisplayItemMessageOnField(taskId, gOtherText_FreePremierBall, sub_80B4378, 0xC3E1);
+ if (gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor] == ITEM_POKE_BALL && gTasks[taskId].tItemCount >= 10 && AddBagItem(ITEM_PREMIER_BALL, 1) == TRUE)
+ DisplayItemMessageOnField(taskId, gOtherText_FreePremierBall, Task_ReturnToBuyMenu, 0xC3E1);
else
- sub_80B4378(taskId);
+ Task_ReturnToBuyMenu(taskId);
}
}
-void sub_80B3B80(u8 taskId)
+static void Shop_DoItemTransaction(u8 taskId)
{
- IncrementGameStat(0x26);
+ IncrementGameStat(GAME_STAT_SHOPPED);
RemoveMoney(&gSaveBlock1.money, gMartTotalCost);
PlaySE(SE_REGI);
UpdateMoneyWindow(gSaveBlock1.money, 0, 0);
- gTasks[taskId].func = sub_80B3AEC;
+ gTasks[taskId].func = Shop_DoPremierBallCheck;
}
-void sub_80B3BD0(u8 taskId)
+static void Shop_DoPricePrintAndReturnToBuyMenu(u8 taskId)
{
- sub_80B39D0(gMartInfo.cursor, gMartInfo.cursor, 0); // same thing as above?
- sub_80B4378(taskId);
+ Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 0);
+ Task_ReturnToBuyMenu(taskId);
}
-void sub_80B3BF4(u8 taskId)
+static void Task_DoItemPurchase(u8 taskId)
{
- MenuZeroFillWindowRect(0x7, 0x8, 0xD, 0xD);
+ Menu_EraseWindowRect(0x7, 0x8, 0xD, 0xD);
sub_80A3FA0(gBGTilemapBuffers[1], 8, 9, 4, 4, 0);
- sub_80B379C();
- sub_80B3420();
+ BuyMenuDrawTextboxBG_Restore();
+ Shop_DrawViewportTiles();
if (IsEnoughMoney(gSaveBlock1.money, gMartTotalCost))
{
if (gMartInfo.martType == MART_TYPE_0)
{
- if (AddBagItem(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor], gTasks[taskId].data[1]))
+ if (AddBagItem(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor], gTasks[taskId].tItemCount))
{
- DisplayItemMessageOnField(taskId, gOtherText_HereYouGo, sub_80B3B80, 0xC3E1);
- sub_80B4470(taskId);
+ DisplayItemMessageOnField(taskId, gOtherText_HereYouGo, Shop_DoItemTransaction, 0xC3E1);
+ Task_UpdatePurchaseHistory(taskId);
}
else
- DisplayItemMessageOnField(taskId, gOtherText_NoRoomFor, sub_80B3BD0, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gOtherText_NoRoomFor, Shop_DoPricePrintAndReturnToBuyMenu, 0xC3E1);
}
else // a normal mart is only type 0, so types 1 and 2 are decoration marts.
{
if (IsThereStorageSpaceForDecoration(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]))
{
if (gMartInfo.martType == MART_TYPE_1)
- DisplayItemMessageOnField(taskId, gOtherText_HereYouGo2, sub_80B3B80, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gOtherText_HereYouGo2, Shop_DoItemTransaction, 0xC3E1);
else
- DisplayItemMessageOnField(taskId, gOtherText_HereYouGo3, sub_80B3B80, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gOtherText_HereYouGo3, Shop_DoItemTransaction, 0xC3E1);
}
else
{
StringExpandPlaceholders(gStringVar4, gOtherText_SpaceForIsFull);
- DisplayItemMessageOnField(taskId, gStringVar4, sub_80B3BD0, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gStringVar4, Shop_DoPricePrintAndReturnToBuyMenu, 0xC3E1);
}
}
}
else
- DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, sub_80B3BD0, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, Shop_DoPricePrintAndReturnToBuyMenu, 0xC3E1);
}
-void sub_80B3D38(u8 taskId)
+static void Shop_DoYesNoPurchase(u8 taskId)
{
DisplayYesNoMenu(7, 8, 1);
sub_80A3FA0(gBGTilemapBuffers[1], 8, 9, 4, 4, 0xC3E1);
- DoYesNoFuncWithChoice(taskId, gUnknown_083CC708);
+ DoYesNoFuncWithChoice(taskId, sShopPurchaseYesNoFuncs);
}
-void sub_80B3D7C(u8 taskId)
+static void Task_CancelItemPurchase(u8 taskId)
{
- sub_80B39D0(gMartInfo.cursor, gMartInfo.cursor, 0);
- MenuZeroFillWindowRect(0x7, 0x8, 0xD, 0xD);
+ Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 0);
+ Menu_EraseWindowRect(0x7, 0x8, 0xD, 0xD);
sub_80A3FA0(gBGTilemapBuffers[1], 0x8, 0x9, 0x4, 0x4, 0);
- sub_80B4378(taskId);
+ Task_ReturnToBuyMenu(taskId);
}
-void sub_80B3DC8(u8 taskId)
+static void Shop_PrintPrice(u8 taskId)
{
- if (sub_80A52C4(taskId, gMartInfo.curItemCount) == TRUE)
- sub_80B37F8(taskId);
+ if (SellMenu_QuantityRoller(taskId, gMartInfo.curItemCount) == TRUE)
+ Shop_DisplayPriceInCheckoutWindow(taskId);
if (gMain.newKeys & A_BUTTON)
{
- gMartTotalCost = (ItemId_GetPrice(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]) >> GetPriceReduction(1)) * gTasks[taskId].data[1]; // set total cost of your purchase.
- MenuZeroFillWindowRect(0, 0xA, 0xD, 0xD);
+ gMartTotalCost = (ItemId_GetPrice(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]) >> GetPriceReduction(1)) * gTasks[taskId].tItemCount; // set total cost of your purchase.
+ Menu_EraseWindowRect(0, 0xA, 0xD, 0xD);
sub_80A3FA0(gBGTilemapBuffers[1], 0x1, 0xB, 0xC, 0x2, 0);
- sub_80B379C();
- sub_80B3420();
+ BuyMenuDrawTextboxBG_Restore();
+ Shop_DrawViewportTiles();
CopyItemName(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor], gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, gTasks[taskId].data[1], 0, 0x2);
+ ConvertIntToDecimalStringN(gStringVar2, gTasks[taskId].tItemCount, 0, 0x2);
ConvertIntToDecimalStringN(gStringVar3, gMartTotalCost, 0, 0x8);
StringExpandPlaceholders(gStringVar4, gOtherText_ThatWillBe);
- DisplayItemMessageOnField(taskId, gStringVar4, sub_80B3D38, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gStringVar4, Shop_DoYesNoPurchase, 0xC3E1);
}
else if (gMain.newKeys & B_BUTTON)
{
- sub_80B39D0(gMartInfo.cursor, gMartInfo.cursor, 0);
- sub_80B4378(taskId);
+ Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 0);
+ Task_ReturnToBuyMenu(taskId);
}
}
-void sub_80B3EFC(u8 taskId)
+// set the item count in the mart info to the maximum allowed by the player's budget.
+static void Shop_UpdateCurItemCountToMax(u8 taskId)
{
u16 var;
- gTasks[taskId].data[1] = 1;
- MenuDrawTextWindow(0, 0xA, 0xD, 0xD);
- sub_80B37F8(taskId);
+ gTasks[taskId].tItemCount = 1;
+ Menu_DrawStdWindowFrame(0, 0xA, 0xD, 0xD);
+ Shop_DisplayPriceInCheckoutWindow(taskId);
var = gSaveBlock1.money / (ItemId_GetPrice(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]) >> GetPriceReduction(1));
if (var > 99)
@@ -750,11 +764,11 @@ void sub_80B3EFC(u8 taskId)
else
gMartInfo.curItemCount = var;
- gTasks[taskId].func = sub_80B3DC8;
+ gTasks[taskId].func = Shop_PrintPrice;
}
#ifdef NONMATCHING
-void sub_80B3F88(void)
+static void Shop_MoveItemListUp(void)
{
u16 *r1;
u16 *r2;
@@ -796,7 +810,7 @@ void sub_80B3F88(void)
}
#else
__attribute__((naked))
-void sub_80B3F88(void)
+static void Shop_MoveItemListUp(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -891,7 +905,7 @@ _080B4038: .4byte 0xfffffc40\n\
#endif
#ifdef NONMATCHING
-void sub_80B403C(void)
+static void Shop_MoveItemListDown(void)
{
u16 *r1;
u16 *r2;
@@ -935,7 +949,7 @@ void sub_80B403C(void)
}
#else
__attribute__((naked))
-void sub_80B403C(void)
+static void Shop_MoveItemListDown(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
@@ -1028,7 +1042,7 @@ _080B40E4: .4byte 0x800000f0\n\
}
#endif
-void sub_80B40E8(u8 taskId) // Mart_DoCursorAction
+static void Shop_DoCursorAction(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -1041,16 +1055,16 @@ void sub_80B40E8(u8 taskId) // Mart_DoCursorAction
PlaySE(SE_SELECT);
gMartInfo.choicesAbove--; // since cursor is at the top and there are choices above the top, scroll the menu up by updating choicesAbove.
- sub_80B3F88();
- sub_80B39D0(0, 0, 0);
- sub_80B3A70();
- sub_80B32A4();
+ Shop_MoveItemListUp();
+ Shop_DisplayPriceInList(0, 0, 0);
+ Shop_PrintItemDescText();
+ Shop_TryDrawVerticalScrollIndicators();
}
else // if the cursor is not 0, choicesAbove cannot be updated yet since the cursor is at the top of the menu, so update cursor.
{
PlaySE(SE_SELECT);
- gMartInfo.cursor = MoveMenuCursor(-1); // move cursor up
- sub_80B3A70();
+ gMartInfo.cursor = Menu_MoveCursor(-1); // move cursor up
+ Shop_PrintItemDescText();
}
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) // only down can be pressed
@@ -1062,16 +1076,16 @@ void sub_80B40E8(u8 taskId) // Mart_DoCursorAction
PlaySE(SE_SELECT);
gMartInfo.choicesAbove++;
- sub_80B403C();
- sub_80B39D0(7, 7, 0);
- sub_80B3A70();
- sub_80B32A4();
+ Shop_MoveItemListDown();
+ Shop_DisplayPriceInList(7, 7, 0);
+ Shop_PrintItemDescText();
+ Shop_TryDrawVerticalScrollIndicators();
}
else if (gMartInfo.cursor != gMartInfo.itemCount)
{
PlaySE(SE_SELECT);
- gMartInfo.cursor = MoveMenuCursor(1);
- sub_80B3A70();
+ gMartInfo.cursor = Menu_MoveCursor(1);
+ Shop_PrintItemDescText();
}
}
else if (gMain.newKeys & A_BUTTON)
@@ -1080,25 +1094,25 @@ void sub_80B40E8(u8 taskId) // Mart_DoCursorAction
if (gMartInfo.choicesAbove + gMartInfo.cursor != gMartInfo.itemCount) // did you not hit CANCEL?
{
- PauseVerticalScrollIndicator(0);
- PauseVerticalScrollIndicator(1);
- sub_80F979C(1, 1);
- sub_80B39D0(gMartInfo.cursor, gMartInfo.cursor, 1);
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0xC, 0xD, 0x13);
+ PauseVerticalScrollIndicator(TOP_ARROW);
+ PauseVerticalScrollIndicator(BOTTOM_ARROW);
+ SetVerticalScrollIndicators(BOTTOM_ARROW, INVISIBLE);
+ Shop_DisplayPriceInList(gMartInfo.cursor, gMartInfo.cursor, 1);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0xC, 0xD, 0x13);
if (gMartInfo.martType == MART_TYPE_0)
{
gMartTotalCost = (ItemId_GetPrice(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]) >> GetPriceReduction(1)); // set 1x price
if (!IsEnoughMoney(gSaveBlock1.money, gMartTotalCost))
{
- DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, sub_80B3BD0, 0xC3E1); // tail merge
+ DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, Shop_DoPricePrintAndReturnToBuyMenu, 0xC3E1); // tail merge
}
else // _080B42BA
{
CopyItemName(gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor], gStringVar1);
StringExpandPlaceholders(gStringVar4, gOtherText_HowManyYouWant);
- DisplayItemMessageOnField(taskId, gStringVar4, sub_80B3EFC, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gStringVar4, Shop_UpdateCurItemCountToMax, 0xC3E1);
}
}
else // _080B428C
@@ -1107,7 +1121,7 @@ void sub_80B40E8(u8 taskId) // Mart_DoCursorAction
if (!IsEnoughMoney(gSaveBlock1.money, gMartTotalCost))
{
- DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, sub_80B3BD0, 0xC3E1); // tail merge
+ DisplayItemMessageOnField(taskId, gOtherText_NotEnoughMoney, Shop_DoPricePrintAndReturnToBuyMenu, 0xC3E1); // tail merge
}
else
{
@@ -1122,43 +1136,43 @@ void sub_80B40E8(u8 taskId) // Mart_DoCursorAction
{
StringExpandPlaceholders(gStringVar4, gOtherText_ThatWillBe3);
}
- DisplayItemMessageOnField(taskId, gStringVar4, sub_80B3D38, 0xC3E1);
+ DisplayItemMessageOnField(taskId, gStringVar4, Shop_DoYesNoPurchase, 0xC3E1);
}
}
}
else
- sub_80B43F0(taskId);
+ Task_ExitBuyMenu(taskId);
}
else if (gMain.newKeys & B_BUTTON) // go back to buy/sell/exit menu
{
PlaySE(SE_SELECT);
- sub_80B43F0(taskId);
+ Task_ExitBuyMenu(taskId);
}
}
}
-void sub_80B4378(u8 taskId)
+static void Task_ReturnToBuyMenu(u8 taskId)
{
- MenuZeroFillWindowRect(0, 0xE, 0x1D, 0x13);
- MenuZeroFillWindowRect(0, 0xA, 0xD, 0xD);
+ Menu_EraseWindowRect(0, 0xE, 0x1D, 0x13);
+ Menu_EraseWindowRect(0, 0xA, 0xD, 0xD);
sub_80A3FA0(gBGTilemapBuffers[1], 0x1, 0xB, 0xC, 0x2, 0);
- sub_80B3420();
- sub_80B3764(6, 7);
- sub_80B37EC();
- StartVerticalScrollIndicators(0);
- StartVerticalScrollIndicators(1);
- sub_80B32A4();
- gTasks[taskId].func = sub_80B40E8;
+ Shop_DrawViewportTiles();
+ Shop_InitMenus(6, 7);
+ Shop_PrintItemDesc();
+ StartVerticalScrollIndicators(TOP_ARROW);
+ StartVerticalScrollIndicators(BOTTOM_ARROW);
+ Shop_TryDrawVerticalScrollIndicators();
+ gTasks[taskId].func = Shop_DoCursorAction;
}
-void sub_80B43F0(u8 taskId)
+static void Task_ExitBuyMenu(u8 taskId)
{
- gFieldCallback = sub_80B3050;
+ gFieldCallback = Shop_FadeReturnToMartMenu;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gTasks[taskId].func = Task_ExitBuyMenu;
+ gTasks[taskId].func = Task_ExitBuyMenuDoFade;
}
-void Task_ExitBuyMenu(u8 taskId)
+static void Task_ExitBuyMenuDoFade(u8 taskId)
{
if (!gPaletteFade.active)
{
@@ -1169,38 +1183,41 @@ void Task_ExitBuyMenu(u8 taskId)
}
}
-void sub_80B4470(u8 taskId)
+// Task_UpdatePurchaseHistory
+static void Task_UpdatePurchaseHistory(u8 taskId)
{
u16 i;
for (i = 0; i < 3; i++)
{
- if (gUnknown_02038724[i].itemId == gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]
- && gUnknown_02038724[i].quantity != 0)
+ if (gMartPurchaseHistory[i].itemId == gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor]
+ && gMartPurchaseHistory[i].quantity != 0)
{
- if (gUnknown_02038724[i].quantity + gTasks[taskId].data[1] > 255)
- gUnknown_02038724[i].quantity = 255;
+ if (gMartPurchaseHistory[i].quantity + gTasks[taskId].tItemCount > 255)
+ gMartPurchaseHistory[i].quantity = 255;
else
- gUnknown_02038724[i].quantity += gTasks[taskId].data[1];
+ gMartPurchaseHistory[i].quantity += gTasks[taskId].tItemCount;
return;
}
}
- if (gUnknown_02038730 < 3)
+ if (gMartPurchaseHistoryId < 3)
{
- gUnknown_02038724[gUnknown_02038730].itemId = gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor];
- gUnknown_02038724[gUnknown_02038730].quantity = gTasks[taskId].data[1];
- gUnknown_02038730++;
+ gMartPurchaseHistory[gMartPurchaseHistoryId].itemId = gMartInfo.itemList[gMartInfo.choicesAbove + gMartInfo.cursor];
+ gMartPurchaseHistory[gMartPurchaseHistoryId].quantity = gTasks[taskId].tItemCount;
+ gMartPurchaseHistoryId++;
}
}
-void ClearItemPurchases(void)
+#undef tItemCount
+
+static void ClearItemPurchases(void)
{
- gUnknown_02038730 = 0;
- ClearItemSlots(gUnknown_02038724, 3);
+ gMartPurchaseHistoryId = 0;
+ ClearItemSlots(gMartPurchaseHistory, 3);
}
-void CreatePokemartMenu(u16 *itemList)
+void Shop_CreatePokemartMenu(u16 *itemList)
{
CreateShopMenu(MART_TYPE_0);
SetShopItemsForSale(itemList);
@@ -1208,141 +1225,37 @@ void CreatePokemartMenu(u16 *itemList)
SetShopMenuCallback(EnableBothScriptContexts);
}
-void CreateDecorationShop1Menu(u16 *itemList)
+void Shop_CreateDecorationShop1Menu(u16 *itemList)
{
CreateShopMenu(MART_TYPE_1);
SetShopItemsForSale(itemList);
SetShopMenuCallback(EnableBothScriptContexts);
}
-void CreateDecorationShop2Menu(u16 *itemList)
+void Shop_CreateDecorationShop2Menu(u16 *itemList)
{
CreateShopMenu(MART_TYPE_2);
SetShopItemsForSale(itemList);
SetShopMenuCallback(EnableBothScriptContexts);
}
-void sub_80B45B4(u8 taskId, const s16 *list, u16 c)
-{
- s16 r5 = gTasks[taskId].data[4] - 1;
- s16 r3 = gTasks[taskId].data[5] - 1;
- s16 r4 = gTasks[taskId].data[1];
- s16 y;
- s16 x;
-
- if (gTasks[taskId].data[2] == 0)
- {
- for (y = 0; y < 3; y++)
- {
- for (x = 0; x < 3; x++)
- {
- s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
-
- if (list[r4] == metatileId)
- {
- if (r4 != 2)
- MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[r4 + 1]);
- else
- MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[0]);
- }
- }
- }
- }
- else
- {
- for (y = 0; y < 3; y++)
- {
- for (x = 0; x < 3; x++)
- {
- s16 metatileId = MapGridGetMetatileIdAt(r5 + x, r3 + y);
-
- if (list[2 - r4] == metatileId)
- {
- if (r4 != 2)
- MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[1 - r4]);
- else
- MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[2]);
- }
- }
- }
- }
-}
-
-static const u16 gUnknown_083CC714[] = {0x284, 0x282, 0x280};
-static const u16 gUnknown_083CC71A[] = {0x285, 0x283, 0x281};
-static const u16 gUnknown_083CC720[] = {0x28C, 0x28A, 0x288};
-static const u16 gUnknown_083CC726[] = {0x28D, 0x28B, 0x289};
-static const u16 gUnknown_083CC72C[] = {0x2A0, 0x2A2, 0x2A4};
-static const u16 gUnknown_083CC732[] = {0x2A1, 0x2A3, 0x2A5};
-static const u16 gUnknown_083CC738[] = {0x2A8, 0x2AA, 0x2AC};
-
-void sub_80B4710(u8 taskId)
-{
- s16 *data = gTasks[taskId].data;
-
- data[3] = 1;
-
- switch (data[0])
- {
- case 0:
- sub_80B45B4(taskId, gUnknown_083CC714, 0);
- break;
- case 1:
- sub_80B45B4(taskId, gUnknown_083CC71A, 0);
- break;
- case 2:
- sub_80B45B4(taskId, gUnknown_083CC720, 0xC00);
- break;
- case 3:
- sub_80B45B4(taskId, gUnknown_083CC726, 0);
- break;
- case 4:
- sub_80B45B4(taskId, gUnknown_083CC72C, 0xC00);
- break;
- case 5:
- sub_80B45B4(taskId, gUnknown_083CC732, 0);
- break;
- case 6:
- sub_80B45B4(taskId, gUnknown_083CC738, 0);
- break;
- }
-
- data[0] = (data[0] + 1) & 7;
- if (!data[0])
- {
- DrawWholeMapView();
- data[1] = (data[1] + 1) % 3;
- data[3] = 0;
- }
-}
-
-u8 sub_80B47D8(u16 var)
-{
- u8 taskId = CreateTask(sub_80B4710, 0);
- s16 *data = gTasks[taskId].data;
-
- PlayerGetDestCoords(&data[4], &data[5]);
- data[0] = 0;
- data[1] = 0;
- data[2] = var;
- sub_80B4710(taskId);
- return taskId;
-}
-
-void sub_80B4824(u8 var)
-{
- gUnknown_02038731 = sub_80B47D8(var);
-}
-
-void sub_80B483C(void)
-{
- DestroyTask(gUnknown_02038731);
-}
-
-bool8 sub_80B4850(void)
-{
- if (gTasks[gUnknown_02038731].data[3] == 0 && gTasks[gUnknown_02038731].data[1] == 2)
- return FALSE;
- else
- return TRUE;
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80C2818(void)
+{
+ asm("\
+ push {lr}\n\
+ mov r0, #0x0\n\
+ bl CreateShopMenu\n\
+ ldr r0, ._290 @ gMartBuyNoSellOptionList\n\
+ bl SetShopItemsForSale\n\
+ mov r0, #0x0\n\
+ bl SetShopMenuCallback\n\
+ pop {r0}\n\
+ bx r0\n\
+._291:\n\
+ .align 2, 0\n\
+._290:\n\
+ .word gMartBuyNoSellOptionList+0x3");
}
+#endif
diff --git a/src/field/slot_machine.c b/src/field/slot_machine.c
index 89ec68b0a..2c97c146d 100644
--- a/src/field/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -1,49 +1,4036 @@
#include "global.h"
+#include "constants/songs.h"
+#include "strings2.h"
+#include "overworld.h"
+#include "menu_cursor.h"
+#include "field_effect.h"
+#include "random.h"
+#include "sound.h"
+#include "main.h"
#include "slot_machine.h"
#include "decompress.h"
+#include "trig.h"
+#include "graphics.h"
#include "palette.h"
-#include "task.h"
+#include "util.h"
+#include "text.h"
+#include "menu.h"
#include "ewram.h"
-struct UnkStruct2000000 {
- /*0x00*/ u8 filler00[61];
- /*0x3D*/ u8 unk3D;
-};
-
-struct UnkStruct1 {
+struct UnkStruct1
+{
/*0x00*/ u8 unk00;
/*0x01*/ u8 unk01;
/*0x02*/ s16 unk02;
};
-extern struct UnkStruct1 *gUnknown_083ED048[];
-extern const u16 gPalette_83EDE24[];
-
-extern const u8 gSlotMachine_Gfx[];
#if ENGLISH
#define SLOTMACHINE_GFX_TILES 233
#elif GERMAN
#define SLOTMACHINE_GFX_TILES 236
#endif
-extern const u16 gUnknown_08E95A18[];
+// TODO: figure out which functions are static and which are not.
+#define static
+
+static void CB2_SlotMachineSetup(void);
+static void CB2_SlotMachineLoop(void);
+static void PlaySlotMachine_Internal(u8 arg0, MainCallback cb);
+static void SlotMachineDummyTask(u8 taskId);
+static void SlotMachineSetup_0_0(void);
+static void SlotMachineSetup_6_2(void);
+static void SlotMachineSetup_1_0(void);
+static void SlotMachineSetup_2_0(void);
+static void SlotMachineSetup_2_1(void);
+static void SlotMachineSetup_0_1(void);
+static void SlotMachineSetup_3_0(void);
+static void SlotMachineSetup_4_0(void);
+static void SlotMachineSetup_5_0(void);
+static void SlotMachineSetup_6_0(void);
+static void SlotMachineSetup_6_1(void);
+static void sub_8101D04(void);
+static void sub_8101D24(u8 taskId);
+static bool8 sub_8101D5C(struct Task *task);
+static bool8 sub_8101D8C(struct Task *task);
+static bool8 sub_8101DB0(struct Task *task);
+static bool8 sub_8101DF4(struct Task *task);
+static bool8 sub_8101E10(struct Task *task);
+static bool8 sub_8101E3C(struct Task *task);
+static bool8 sub_8101F44(struct Task *task);
+static bool8 sub_8101F60(struct Task *task);
+static bool8 sub_8101F88(struct Task *task);
+static bool8 sub_8101FA4(struct Task *task);
+static bool8 sub_8102008(struct Task *task);
+static bool8 sub_8102034(struct Task *task);
+static bool8 sub_8102058(struct Task *task);
+static bool8 sub_8102090(struct Task *task);
+bool8 sub_81020C8(struct Task *task);
+static bool8 sub_81021E0(struct Task *task);
+static bool8 sub_81021FC(struct Task *task);
+static bool8 sub_8102264(struct Task *task);
+static bool8 sub_81022A0(struct Task *task);
+static bool8 sub_81022CC(struct Task *task);
+static bool8 sub_81022F0(struct Task *task);
+static bool8 sub_8102318(struct Task *task);
+static bool8 sub_8102344(struct Task *task);
+static bool8 sub_810239C(struct Task *task);
+static bool8 sub_81023B8(struct Task *task);
+static bool8 sub_81023E0(struct Task *task);
+static bool8 sub_81023FC(struct Task *task);
+static bool8 sub_8102424(struct Task *task);
+static bool8 sub_8102460(struct Task *task);
+static bool8 debug_sub_8116E74(struct Task *);
+static void sub_8102484(void);
+static void sub_81024F0(void);
+static bool8 sub_8102540(void);
+static u8 sub_8102578(void);
+static u16 dp15_jump_random_unknown(void);
+static u8 sub_81025BC(void);
+static void CheckMatch(void);
+static void CheckMatch_CenterRow(void);
+static void CheckMatch_TopAndBottom(void);
+static void CheckMatch_Diagonals(void);
+static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3);
+static void sub_8102A24(void);
+static void sub_8102A64(u8 taskId);
+static bool8 sub_8102A44(void);
+static bool8 sub_8102A9C(struct Task *task);
+static bool8 sub_8102AD0(struct Task *task);
+static bool8 sub_8102B80(struct Task *task);
+static u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y);
+static void sub_8102DA8(void);
+static void sub_8102DEC(u8 a0);
+static void sub_8102E1C(u8 a0);
+static bool8 sub_8102E40(u8 a0);
+static void sub_8102E68(u8 taskId);
+static bool8 sub_8102EA0(struct Task *task);
+static bool8 sub_8102EA4(struct Task *task);
+static bool8 sub_8102EC0(struct Task *task);
+static bool8 sub_8102F4C(struct Task *task);
+static bool8 sub_8103008(struct Task *task);
+static bool8 sub_810305C(void);
+static bool8 sub_8103154(u8 a0, u8 a1);
+static bool8 sub_81031B4(u8 a0, u8 a1);
+static bool8 sub_81032C0(void);
+static bool8 sub_81032E8(void);
+static bool8 sub_810333C(void);
+static bool8 sub_81033DC(void);
+static bool8 sub_810341C(u8 a0);
+static bool8 sub_810347C(u8 a0);
+static void sub_81034F4(void);
+static void sub_8103540(void);
+static void sub_8103564(void);
+static void j5_08111E84(void);
+static void sub_8103668(void);
+static void sub_810380C(void);
+static void sub_8103830(void);
+static void sub_8103910(void);
+static void sub_8103A78(void);
+static void sub_8103C14(u8 a0);
+static void sub_8103C48(u8 taskId);
+static void sub_8103D50(u8 a0);
+static void sub_8103C78(struct Task *task, u8 taskId);
+static void sub_8103CAC(struct Task *task, u8 taskId);
+static void sub_8103CC8(struct Task *task, u8 taskId);
+static void sub_8103D8C(u8 a0);
+static void sub_8103DC8(void);
+static void sub_8103E04(u8 a0);
+static bool8 sub_8103E38(void);
+static bool8 sub_8103E7C(void);
+static bool8 sub_8103EAC(u8 spriteId);
+static void sub_8103EE4(struct Sprite *sprite);
+static void sub_8103F70(void);
+static bool8 sub_8103FA0(void);
+static void sub_8103FE8(u8 taskId);
+static void sub_8104048(void);
+static void sub_8104064(u8 pikaPower);
+static bool8 sub_81040C8(void);
+static void sub_81040E8(u8 taskId);
+static void nullsub_68(struct Task *task);
+static void sub_810411C(struct Task *task);
+static void sub_8104144(struct Task *task);
+static void sub_81041AC(struct Task *task);
+static void sub_810421C(struct Task *task);
+static void sub_810423C(u8 pikaPower);
+static void sub_810430C(void);
+static bool8 sub_810432C(void);
+static void sub_810434C(u8 taskId);
+static void sub_810437C(struct Task *task);
+static void sub_81043EC(struct Task *task);
+static void sub_8104468(struct Task *task);
+static void sub_8104498(struct Task *task);
+static void sub_8104548(struct Task *task);
+static void sub_8104598(struct Task *task);
+static void sub_81045CC(struct Task *task);
+static void sub_810463C(struct Task *task);
+static void sub_81046C0(struct Task *task);
+static void sub_8104764(struct Task *task);
+static void sub_8104794(struct Task *task);
+static void sub_81047EC(struct Task *task);
+static void sub_8104860(struct Task *task);
+static void sub_81048A8(struct Task *task);
+static void sub_81048CC(struct Task *task);
+static void sub_8104940(struct Task *task);
+static void sub_81049C8(struct Task *task);
+static void sub_81049F8(struct Task *task);
+static void sub_8104A40(s16 a0, s16 a1);
+static void sub_8104A88(s16 a0);
+static void sub_8104AB8(u8 a0);
+static bool8 sub_8104AEC(void);
+static void sub_8104B0C(u8 taskId);
+static void sub_8104B3C(struct Task *task);
+static void sub_8104B60(struct Task *task);
+static void sub_8104B80(struct Task *task);
+static void sub_8104BC8(struct Task *task);
+static void sub_8104BFC(struct Task *task);
+static void sub_8104C44(struct Task *task);
+static void sub_8104C5C(void);
+static void sub_8104CAC(u8 arg0);
+static bool8 sub_8104E18(void);
+static void nullsub_69(struct Task *task);
+static void sub_8104E74(u8 taskId);
+static void sub_8104EA8(void);
+static void sub_8104F8C(void);
+static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3);
+static void sub_81050C4(void);
+static void sub_8105100(void);
+static void sub_810514C(void);
+static void sub_81051C0(void);
+static void sub_8105284(void);
+static void sub_81052EC(void);
+static void sub_81053A0(void);
+static void sub_810545C(void);
+static void sub_81054B8(void);
+static void sub_8105524(void);
+static void sub_8105554(void);
+static void sub_8105578(void);
+static void sub_8105688(s16 a0);
+static void sub_81056C0(void);
+static void sub_81056F0(void);
+static void sub_81057E8(s16 a0);
+static void sub_8105804(void);
+static void sub_8105854(void);
+static void sub_81058A0(void);
+static void sub_81058C4(void);
+static void sub_81059B8(void);
+static void sub_81059E8(void);
+static bool8 sub_8105ACC(void);
+static void sub_8105AEC(void);
+static u8 sub_8105B1C(s16 x, s16 y);
+static void sub_8105B88(u8 spriteId);
+static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4);
+static void sub_81063C0(void);
+static void sub_8106404(void);
+static void sub_8106448(void);
+static void sub_81064B8(void);
+static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4);
+static void sub_81065DC(void);
+
+#if DEBUG
+__attribute__((section(".bss"))) u8 unk_debug_bss_1_0 = 0;
+__attribute__((section(".bss"))) u8 unk_debug_bss_1_1 = 0;
+__attribute__((section(".bss"))) u8 unk_debug_bss_1_2 = 0;
+__attribute__((section(".bss"))) u8 unk_debug_bss_1_3 = 0;
+__attribute__((section(".bss"))) u8 unk_debug_bss_1_4 = 0;
+__attribute__((section(".bss"))) u32 unk_debug_bss_1_8 = 0;
+#endif
+
+static const struct UnkStruct1 *const gUnknown_083ED048[];
+static const u16 gPalette_83EDE24[];
+static const u8 gUnknown_083ECD04[][3];
+static const u8 gUnknown_083ECE3A[];
+static const u16 gUnknown_083ECE42[];
+static const u16 gUnknown_083ECE48[];
+
+void PlaySlotMachine(u8 arg0, MainCallback cb)
+{
+#if DEBUG
+ unk_debug_bss_1_1 = 0;
+#endif
+ PlaySlotMachine_Internal(arg0, cb);
+ SetMainCallback2(CB2_SlotMachineSetup);
+}
+
+#if DEBUG
+void debug_sub_811609C(u8 a, void (*func)(void))
+{
+ unk_debug_bss_1_1 = 1;
+ PlaySlotMachine_Internal(a, func);
+ SetMainCallback2(CB2_SlotMachineSetup);
+}
+#endif
+
+static void CB2_SlotMachineSetup(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SlotMachineSetup_0_0();
+ SlotMachineSetup_0_1();
+ gMain.state++;
+ break;
+ case 1:
+ SlotMachineSetup_1_0();
+ gMain.state++;
+ break;
+ case 2:
+ SlotMachineSetup_2_0();
+ SlotMachineSetup_2_1();
+ gMain.state++;
+ break;
+ case 3:
+ SlotMachineSetup_3_0();
+ gMain.state++;
+ break;
+ case 4:
+ SlotMachineSetup_4_0();
+ gMain.state++;
+ break;
+ case 5:
+ SlotMachineSetup_5_0();
+ gMain.state++;
+ break;
+ case 6:
+ SlotMachineSetup_6_0();
+ SlotMachineSetup_6_1();
+ SlotMachineSetup_6_2();
+ SetMainCallback2(CB2_SlotMachineLoop);
+ break;
+ }
+}
+
+static void CB2_SlotMachineLoop(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+static void SlotMachine_VBlankCallback(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ REG_WIN0H = eSlotMachine->win0h;
+ REG_WIN0V = eSlotMachine->win0v;
+ REG_WININ = eSlotMachine->winIn;
+ REG_WINOUT = eSlotMachine->winOut;
+}
+
+static void PlaySlotMachine_Internal(u8 arg0, MainCallback cb)
+{
+ struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF);
+ task->data[0] = arg0;
+ StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb);
+}
+
+static void sub_81019EC(void)
+{
+ struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask);
+ eSlotMachine->unk01 = task->data[0];
+ LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&eSlotMachine->prevMainCb);
+}
+
+static void SlotMachineDummyTask(u8 taskId)
+{
+}
+
+static void SlotMachineSetup_0_0(void)
+{
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+ REG_DISPCNT = 0;
+}
+
+static void SlotMachineSetup_6_2(void)
+{
+ u16 imeBak;
+ SetVBlankCallback(SlotMachine_VBlankCallback);
+ imeBak = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = imeBak;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON;
+}
+
+static void SlotMachineSetup_1_0(void)
+{
+ DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000);
+}
+
+static void SlotMachineSetup_2_0(void)
+{
+ DmaClear16(3, (u16 *)OAM, OAM_SIZE);
+}
+
+static void SlotMachineSetup_2_1(void)
+{
+ REG_BG0CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG3CNT = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_SCREENBASE(31) | BGCNT_CHARBASE(2);
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28);
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(29);
+ REG_BG3CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(30);
+ REG_WININ = 0x3f;
+ REG_WINOUT = 0x3f;
+ REG_BLDCNT = BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_OBJ;
+ REG_BLDALPHA = 0x809;
+}
+
+static const s16 gUnknown_083ECCF8[][2];
+
+#if DEBUG
+__attribute__((naked))
+static void SlotMachineSetup_0_1(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ bl sub_81019EC\n\
+ ldr r5, ._43 @ \n\
+ mov r4, #0x0\n\
+ strb r4, [r5]\n\
+ strb r4, [r5, #0x2]\n\
+ bl Random\n\
+ mov r1, #0x1\n\
+ and r1, r1, r0\n\
+ strb r1, [r5, #0x3]\n\
+ strb r4, [r5, #0x4]\n\
+ mov r0, #0x0\n\
+ strh r4, [r5, #0x8]\n\
+ strb r0, [r5, #0xa]\n\
+ strb r0, [r5, #0xb]\n\
+ ldr r0, ._43 + 4 @ \n\
+ ldr r1, ._43 + 8 @ \n\
+ add r0, r0, r1\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r5, #0xc]\n\
+ strh r4, [r5, #0xe]\n\
+ strh r4, [r5, #0x10]\n\
+ strh r4, [r5, #0x12]\n\
+ strh r4, [r5, #0x18]\n\
+ mov r0, #0x8\n\
+ strh r0, [r5, #0x1a]\n\
+ add r1, r5, #0\n\
+ add r1, r1, #0x58\n\
+ mov r0, #0xf0\n\
+ strh r0, [r1]\n\
+ add r1, r1, #0x2\n\
+ mov r0, #0xa0\n\
+ strh r0, [r1]\n\
+ add r0, r5, #0\n\
+ add r0, r0, #0x5c\n\
+ mov r1, #0x3f\n\
+ strh r1, [r0]\n\
+ add r0, r0, #0x2\n\
+ strh r1, [r0]\n\
+ bl GetCurrentMapMusic\n\
+ add r1, r5, #0\n\
+ add r1, r1, #0x60\n\
+ strh r0, [r1]\n\
+ mov r7, #0x0\n\
+ add r6, r5, #0\n\
+ ldr r2, ._43 + 12 @ \n\
+ mov sl, r2\n\
+ mov r0, #0x1c\n\
+ add r0, r0, r6\n\
+ mov r9, r0\n\
+._41:\n\
+ lsl r5, r7, #0x1\n\
+ mov r1, #0x22\n\
+ add r1, r1, r6\n\
+ mov r8, r1\n\
+ add r1, r5, r1\n\
+ mov r0, #0x0\n\
+ strh r0, [r1]\n\
+ add r4, r6, #0\n\
+ add r4, r4, #0x28\n\
+ add r4, r5, r4\n\
+ ldrb r0, [r6, #0x3]\n\
+ lsl r0, r0, #0x1\n\
+ lsl r1, r7, #0x2\n\
+ add r0, r0, r1\n\
+ add r0, r0, sl\n\
+ mov r2, #0x0\n\
+ ldsh r0, [r0, r2]\n\
+ mov r1, #0x15\n\
+ bl __modsi3\n\
+ strh r0, [r4]\n\
+ add r5, r5, r9\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r4, r1]\n\
+ lsl r1, r0, #0x1\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ mov r2, #0xfc\n\
+ lsl r2, r2, #0x1\n\
+ add r0, r2, #0\n\
+ sub r0, r0, r1\n\
+ strh r0, [r5]\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r5, r1]\n\
+ add r1, r2, #0\n\
+ bl __modsi3\n\
+ strh r0, [r5]\n\
+ add r0, r7, #1\n\
+ lsl r0, r0, #0x18\n\
+ lsr r7, r0, #0x18\n\
+ cmp r7, #0x2\n\
+ bls ._41 @cond_branch\n\
+ bl debug_sub_811B5D0\n\
+ ldr r0, ._43 + 16 @ \n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._42 @cond_branch\n\
+ mov r1, r8\n\
+ sub r1, r1, #0x22\n\
+ mov r0, #0xfa\n\
+ lsl r0, r0, #0x2\n\
+ strh r0, [r1, #0xc]\n\
+._42:\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._44:\n\
+ .align 2, 0\n\
+._43:\n\
+ .word +0x2000000\n\
+ .word gSaveBlock1\n\
+ .word 0x494\n\
+ .word gUnknown_083ECCF8\n\
+ .word unk_debug_bss_1_1");
+}
+#else
+static void SlotMachineSetup_0_1(void)
+{
+ u8 i;
+
+ sub_81019EC();
+ eSlotMachine->state = 0;
+ eSlotMachine->pikaPower = 0;
+ eSlotMachine->unk03 = Random() & 1;
+ eSlotMachine->unk04 = 0;
+ eSlotMachine->matchedSymbols = 0;
+ eSlotMachine->unk0A = 0;
+ eSlotMachine->unk0B = 0;
+ eSlotMachine->coins = gSaveBlock1.coins;
+ eSlotMachine->payout = 0;
+ eSlotMachine->unk10 = 0;
+ eSlotMachine->bet = 0;
+ eSlotMachine->unk18 = 0;
+ eSlotMachine->unk1A = 8;
+ eSlotMachine->win0h = 0xf0;
+ eSlotMachine->win0v = 0xa0;
+ eSlotMachine->winIn = 0x3f;
+ eSlotMachine->winOut = 0x3f;
+ eSlotMachine->backupMapMusic = GetCurrentMapMusic();
+ for (i = 0; i < 3; i++)
+ {
+ eSlotMachine->unk22[i] = 0;
+ eSlotMachine->reelPositions[i] = gUnknown_083ECCF8[i][eSlotMachine->unk03] % 21;
+ eSlotMachine->unk1C[i] = 0x1f8 - eSlotMachine->reelPositions[i] * 24;
+ eSlotMachine->unk1C[i] %= 0x1f8;
+ }
+}
+#endif
+
+static void SlotMachineSetup_3_0(void)
+{
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7128);
+ InitMenuWindow(&gWindowTemplate_81E7128);
+}
+
+static void SlotMachineSetup_4_0(void)
+{
+ ResetPaletteFade();
+ ResetSpriteData();
+ gOamLimit = 128;
+ FreeAllSpritePalettes();
+ ResetTasks();
+}
+
+static void SlotMachineSetup_5_0(void)
+{
+ sub_8106448();
+ sub_81064B8();
+ sub_81063C0();
+}
+
+static void SlotMachineSetup_6_0(void)
+{
+ sub_8104EA8();
+ sub_8104F8C();
+ sub_8103DC8();
+ sub_81050C4();
+}
+
+static void SlotMachineSetup_6_1(void)
+{
+ sub_8104048();
+ sub_8102DA8();
+ sub_8104C5C();
+ sub_8101D04();
+}
+
+static void sub_8101D04(void)
+{
+ sub_8101D24(CreateTask(sub_8101D24, 0));
+}
+
+static bool8 (*const gUnknown_083ECAAC[])(struct Task *task) =
+{
+ sub_8101D5C,
+ sub_8101D8C,
+ sub_8101DB0,
+ sub_8101DF4,
+ sub_8101E10,
+ sub_8101E3C,
+ sub_8101F44,
+ sub_8101F60,
+ sub_8101F88,
+ sub_8101FA4,
+ sub_8102008,
+ sub_8102034,
+ sub_8102058,
+ sub_8102090,
+ sub_81020C8,
+ sub_81021E0,
+ sub_81021FC,
+ sub_8102264,
+ sub_81022A0,
+ sub_81022CC,
+ sub_81022F0,
+ sub_8102318,
+ sub_8102344,
+ sub_810239C,
+ sub_81023B8,
+ sub_81023E0,
+ sub_81023FC,
+ sub_8102424,
+ sub_8102460,
+#if DEBUG
+ debug_sub_8116E74,
+#endif
+};
+
+static void sub_8101D24(u8 taskId)
+{
+ while (gUnknown_083ECAAC[eSlotMachine->state](gTasks + taskId));
+}
+
+static bool8 sub_8101D5C(struct Task *task)
+{
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ sub_810423C(eSlotMachine->pikaPower);
+ eSlotMachine->state++;
+ return FALSE;
+}
+
+static bool8 sub_8101D8C(struct Task *task)
+{
+ if (!gPaletteFade.active)
+ {
+ eSlotMachine->state++;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8101DB0(struct Task *task)
+{
+ eSlotMachine->payout = 0;
+ eSlotMachine->bet = 0;
+ eSlotMachine->unk18 = 0;
+ eSlotMachine->unk04 &= 0xc0;
+ eSlotMachine->state = 4;
+ if (eSlotMachine->coins <= 0)
+ {
+ eSlotMachine->state = 25;
+ }
+ else if (eSlotMachine->unk0A)
+ {
+ eSlotMachine->state = 3;
+ sub_8104CAC(4);
+ }
+ return TRUE;
+}
+
+static bool8 sub_8101DF4(struct Task *task)
+{
+ if (sub_8104E18())
+ {
+ eSlotMachine->state = 4;
+ }
+ return FALSE;
+}
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8101E10(struct Task *task)
+{
+ asm("\
+ push {lr}\n\
+ mov r0, #0x0\n\
+ bl sub_8104CAC\n\
+ ldr r2, ._70 @ \n\
+ mov r0, #0x5\n\
+ strb r0, [r2]\n\
+ ldr r0, ._70 + 4 @ \n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._67 @cond_branch\n\
+ ldr r0, ._70 + 8 @ \n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._69 @cond_branch\n\
+._67:\n\
+ mov r0, #0xc\n\
+ ldsh r1, [r2, r0]\n\
+ ldr r0, ._70 + 12 @ \n\
+ cmp r1, r0\n\
+ ble ._69 @cond_branch\n\
+ mov r0, #0x17\n\
+ strb r0, [r2]\n\
+._69:\n\
+ mov r0, #0x1\n\
+ pop {r1}\n\
+ bx r1\n\
+._71:\n\
+ .align 2, 0\n\
+._70:\n\
+ .word +0x2000000\n\
+ .word unk_debug_bss_1_1\n\
+ .word unk_debug_bss_1_4\n\
+ .word 0x270e");
+}
+#else
+static bool8 sub_8101E10(struct Task *task)
+{
+ sub_8104CAC(0);
+ eSlotMachine->state = 5;
+ if (eSlotMachine->coins >= 9999)
+ {
+ eSlotMachine->state = 23;
+ }
+ return TRUE;
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8101E3C(struct Task *task)
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ ldr r0, ._77 @ unk_debug_bss_1_1\n\
+ ldrb r1, [r0]\n\
+ add r3, r0, #0\n\
+ ldr r5, ._77 + 4 @ gMain\n\
+ cmp r1, #0\n\
+ beq ._76 @cond_branch\n\
+ ldr r2, ._77 + 8 @ unk_debug_bss_1_4\n\
+ ldrb r0, [r2]\n\
+ cmp r0, #0\n\
+ beq ._76 @cond_branch\n\
+ ldr r4, ._77 + 12 @ \n\
+ mov r1, #0xc\n\
+ ldsh r0, [r4, r1]\n\
+ cmp r0, #0x3\n\
+ ble ._74 @cond_branch\n\
+ ldrh r1, [r5, #0x2c]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._75 @cond_branch\n\
+._74:\n\
+ mov r0, #0x0\n\
+ strb r0, [r2]\n\
+ b ._76\n\
+._78:\n\
+ .align 2, 0\n\
+._77:\n\
+ .word unk_debug_bss_1_1\n\
+ .word gMain\n\
+ .word unk_debug_bss_1_4\n\
+ .word +0x2000000\n\
+._75:\n\
+ mov r0, #0x0\n\
+ bl sub_8103D50\n\
+ mov r0, #0x1\n\
+ bl sub_8103D50\n\
+ mov r0, #0x2\n\
+ bl sub_8103D50\n\
+ ldrh r0, [r4, #0xc]\n\
+ sub r0, r0, #0x3\n\
+ strh r0, [r4, #0xc]\n\
+ mov r0, #0x3\n\
+ strh r0, [r4, #0x12]\n\
+ mov r0, #0x9\n\
+ strb r0, [r4]\n\
+ b ._102\n\
+._76:\n\
+ ldrb r0, [r3]\n\
+ cmp r0, #0\n\
+ beq ._81 @cond_branch\n\
+ ldrh r1, [r5, #0x2e]\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._81 @cond_branch\n\
+ bl debug_sub_811B620\n\
+ ldr r1, ._83 @ \n\
+ mov r0, #0x1d\n\
+ strb r0, [r1]\n\
+ b ._102\n\
+._84:\n\
+ .align 2, 0\n\
+._83:\n\
+ .word +0x2000000\n\
+._81:\n\
+ ldrh r1, [r5, #0x2e]\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._85 @cond_branch\n\
+ mov r0, #0x0\n\
+ bl sub_8104AB8\n\
+ ldr r1, ._87 @ \n\
+ mov r0, #0x8\n\
+ strb r0, [r1]\n\
+ b ._102\n\
+._88:\n\
+ .align 2, 0\n\
+._87:\n\
+ .word +0x2000000\n\
+._85:\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._89 @cond_branch\n\
+ ldr r2, ._94 @ \n\
+ mov r3, #0xc\n\
+ ldsh r0, [r2, r3]\n\
+ sub r0, r0, #0x3\n\
+ mov r3, #0x12\n\
+ ldsh r1, [r2, r3]\n\
+ add r0, r0, r1\n\
+ cmp r0, #0\n\
+ blt ._90 @cond_branch\n\
+ ldrh r4, [r2, #0x12]\n\
+ add r0, r1, #0\n\
+ cmp r0, #0x2\n\
+ bgt ._91 @cond_branch\n\
+._92:\n\
+ lsl r0, r4, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ bl sub_8103D50\n\
+ lsl r0, r4, #0x10\n\
+ mov r2, #0x80\n\
+ lsl r2, r2, #0x9\n\
+ add r0, r0, r2\n\
+ lsr r4, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0x2\n\
+ ble ._92 @cond_branch\n\
+._91:\n\
+ ldr r1, ._94 @ \n\
+ ldrh r0, [r1, #0xc]\n\
+ sub r0, r0, #0x3\n\
+ ldrh r3, [r1, #0x12]\n\
+ add r0, r0, r3\n\
+ strh r0, [r1, #0xc]\n\
+ mov r0, #0x3\n\
+ strh r0, [r1, #0x12]\n\
+ mov r0, #0x9\n\
+ strb r0, [r1]\n\
+ mov r0, #0x5f\n\
+ bl PlaySE\n\
+ b ._102\n\
+._95:\n\
+ .align 2, 0\n\
+._94:\n\
+ .word +0x2000000\n\
+._90:\n\
+ mov r0, #0x6\n\
+ b ._96\n\
+._89:\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._98 @cond_branch\n\
+ ldr r4, ._103 @ \n\
+ mov r1, #0xc\n\
+ ldsh r0, [r4, r1]\n\
+ cmp r0, #0\n\
+ beq ._98 @cond_branch\n\
+ mov r0, #0x5f\n\
+ bl PlaySE\n\
+ ldrb r0, [r4, #0x12]\n\
+ bl sub_8103D50\n\
+ ldrh r0, [r4, #0xc]\n\
+ sub r0, r0, #0x1\n\
+ strh r0, [r4, #0xc]\n\
+ ldrh r0, [r4, #0x12]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4, #0x12]\n\
+._98:\n\
+ ldr r0, ._103 @ \n\
+ mov r2, #0x12\n\
+ ldsh r1, [r0, r2]\n\
+ add r2, r0, #0\n\
+ ldr r5, ._103 + 4 @ \n\
+ cmp r1, #0x2\n\
+ bgt ._99 @cond_branch\n\
+ cmp r1, #0\n\
+ beq ._101 @cond_branch\n\
+ ldrh r1, [r5, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._101 @cond_branch\n\
+._99:\n\
+ mov r0, #0x9\n\
+ strb r0, [r2]\n\
+._101:\n\
+ ldrh r1, [r5, #0x2e]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._102 @cond_branch\n\
+ mov r0, #0x15\n\
+._96:\n\
+ strb r0, [r2]\n\
+._102:\n\
+ mov r0, #0x0\n\
+ pop {r4, r5}\n\
+ pop {r1}\n\
+ bx r1\n\
+._104:\n\
+ .align 2, 0\n\
+._103:\n\
+ .word +0x2000000\n\
+ .word gMain");
+}
+#else
+static bool8 sub_8101E3C(struct Task *task)
+{
+ s16 i;
+
+ if (gMain.newKeys & SELECT_BUTTON)
+ {
+ sub_8104AB8(0);
+ eSlotMachine->state = 8;
+ }
+ else if (gMain.newKeys & R_BUTTON)
+ {
+ if (eSlotMachine->coins - (3 - eSlotMachine->bet) >= 0)
+ {
+ for (i = eSlotMachine->bet; i < 3; i++)
+ {
+ sub_8103D50(i);
+ }
+ eSlotMachine->coins -= (3 - eSlotMachine->bet);
+ eSlotMachine->bet = 3;
+ eSlotMachine->state = 9;
+ PlaySE(SE_REGI);
+ }
+ else
+ {
+ eSlotMachine->state = 6;
+ }
+ }
+ else
+ {
+ if (gMain.newKeys & DPAD_DOWN && eSlotMachine->coins != 0)
+ {
+ PlaySE(SE_REGI);
+ sub_8103D50(eSlotMachine->bet);
+ eSlotMachine->coins--;
+ eSlotMachine->bet++;
+ }
+ if (eSlotMachine->bet >= 3 || (eSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON))
+ {
+ eSlotMachine->state = 9;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ eSlotMachine->state = 21;
+ }
+ }
+ return FALSE;
+}
+#endif
+
+static void sub_8101F2C(const u8 *str)
+{
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(str, 2, 15);
+}
+
+static bool8 sub_8101F44(struct Task *task)
+{
+ sub_8101F2C(gOtherText_DontHaveThreeCoins);
+ eSlotMachine->state = 7;
+ return FALSE;
+}
+
+static bool8 sub_8101F60(struct Task *task)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ Menu_EraseScreen();
+ eSlotMachine->state = 5;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8101F88(struct Task *task)
+{
+ if (sub_8104AEC())
+ {
+ eSlotMachine->state = 5;
+ }
+ return FALSE;
+}
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8101FA4(struct Task *task)
+{
+ asm("\
+ push {r4, lr}\n\
+ add r4, r0, #0\n\
+ bl sub_8102484\n\
+ bl sub_8104DA4\n\
+ mov r0, #0x0\n\
+ bl sub_8102DEC\n\
+ mov r0, #0x1\n\
+ bl sub_8102DEC\n\
+ mov r0, #0x2\n\
+ bl sub_8102DEC\n\
+ mov r0, #0x0\n\
+ strh r0, [r4, #0x8]\n\
+ ldr r4, ._115 @ \n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x20\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._113 @cond_branch\n\
+ bl sub_810430C\n\
+ mov r0, #0xa\n\
+ b ._114\n\
+._116:\n\
+ .align 2, 0\n\
+._115:\n\
+ .word +0x2000000\n\
+._113:\n\
+ mov r0, #0x1\n\
+ bl sub_8104CAC\n\
+ mov r0, #0xb\n\
+._114:\n\
+ strb r0, [r4]\n\
+ ldr r4, ._119 @ \n\
+ mov r0, #0x8\n\
+ strh r0, [r4, #0x1a]\n\
+ ldrb r0, [r4, #0xa]\n\
+ cmp r0, #0\n\
+ beq ._117 @cond_branch\n\
+ bl dp15_jump_random_unknown\n\
+ strh r0, [r4, #0x1a]\n\
+._117:\n\
+ ldr r0, ._119 + 4 @ \n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._118 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x68\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._118:\n\
+ mov r0, #0x0\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+._120:\n\
+ .align 2, 0\n\
+._119:\n\
+ .word +0x2000000\n\
+ .word unk_debug_bss_1_1");
+}
+#else
+static bool8 sub_8101FA4(struct Task *task)
+{
+ sub_8102484();
+ sub_8104DA4();
+ sub_8102DEC(0);
+ sub_8102DEC(1);
+ sub_8102DEC(2);
+ task->data[0] = 0;
+ if (eSlotMachine->unk04 & 0x20)
+ {
+ sub_810430C();
+ eSlotMachine->state = 10;
+ }
+ else
+ {
+ sub_8104CAC(1);
+ eSlotMachine->state = 11;
+ }
+ eSlotMachine->unk1A = 8;
+ if (eSlotMachine->unk0A)
+ {
+ eSlotMachine->unk1A = dp15_jump_random_unknown();
+ }
+ return FALSE;
+}
+#endif
+
+static bool8 sub_8102008(struct Task *task)
+{
+ if (sub_810432C())
+ {
+ sub_8104CAC(1);
+ eSlotMachine->unk04 &= 0xDF;
+ eSlotMachine->state = 11;
+ }
+ return FALSE;
+}
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8102034(struct Task *task)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldrh r1, [r0, #0x8]\n\
+ add r1, r1, #0x1\n\
+ strh r1, [r0, #0x8]\n\
+ lsl r1, r1, #0x10\n\
+ asr r1, r1, #0x10\n\
+ cmp r1, #0x1d\n\
+ ble ._124 @cond_branch\n\
+ ldr r0, ._127 @ unk_debug_bss_1_1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._126 @cond_branch\n\
+ ldr r0, ._127 + 4 @ unk_debug_bss_1_4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._126 @cond_branch\n\
+ ldr r4, ._127 + 8 @ unk_debug_bss_1_8\n\
+ bl Random\n\
+ mov r1, #0x1f\n\
+ and r1, r1, r0\n\
+ add r1, r1, #0x1\n\
+ str r1, [r4]\n\
+._126:\n\
+ bl sub_81024F0\n\
+ ldr r1, ._127 + 12 @ \n\
+ mov r0, #0xc\n\
+ strb r0, [r1]\n\
+._124:\n\
+ mov r0, #0x0\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+._128:\n\
+ .align 2, 0\n\
+._127:\n\
+ .word unk_debug_bss_1_1\n\
+ .word unk_debug_bss_1_4\n\
+ .word unk_debug_bss_1_8\n\
+ .word +0x2000000");
+}
+#else
+static bool8 sub_8102034(struct Task *task)
+{
+ if (++task->data[0] >= 30)
+ {
+ sub_81024F0();
+ eSlotMachine->state = 12;
+ }
+ return FALSE;
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8102058(struct Task *task)
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ ldr r0, ._133 @ unk_debug_bss_1_1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._130 @cond_branch\n\
+ ldr r0, ._133 + 4 @ unk_debug_bss_1_4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._130 @cond_branch\n\
+ ldr r5, ._133 + 8 @ unk_debug_bss_1_8\n\
+ ldr r0, [r5]\n\
+ sub r0, r0, #0x1\n\
+ str r0, [r5]\n\
+ cmp r0, #0\n\
+ bne ._135 @cond_branch\n\
+ mov r0, #0x18\n\
+ bl PlaySE\n\
+ ldr r4, ._133 + 12 @ \n\
+ ldrb r0, [r4, #0x18]\n\
+ bl sub_8102E1C\n\
+ ldrb r0, [r4, #0x18]\n\
+ bl sub_8103C14\n\
+ bl Random\n\
+ mov r1, #0x1f\n\
+ and r1, r1, r0\n\
+ add r1, r1, #0x1\n\
+ str r1, [r5]\n\
+ b ._132\n\
+._134:\n\
+ .align 2, 0\n\
+._133:\n\
+ .word unk_debug_bss_1_1\n\
+ .word unk_debug_bss_1_4\n\
+ .word unk_debug_bss_1_8\n\
+ .word +0x2000000\n\
+._130:\n\
+ ldr r0, ._136 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._135 @cond_branch\n\
+ mov r0, #0x18\n\
+ bl PlaySE\n\
+ ldr r4, ._136 + 4 @ \n\
+ ldrb r0, [r4, #0x18]\n\
+ bl sub_8102E1C\n\
+ ldrb r0, [r4, #0x18]\n\
+ bl sub_8103C14\n\
+._132:\n\
+ mov r0, #0xd\n\
+ strb r0, [r4]\n\
+._135:\n\
+ mov r0, #0x0\n\
+ pop {r4, r5}\n\
+ pop {r1}\n\
+ bx r1\n\
+._137:\n\
+ .align 2, 0\n\
+._136:\n\
+ .word gMain\n\
+ .word +0x2000000");
+}
+#else
+static bool8 sub_8102058(struct Task *task)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_JYUNI);
+ sub_8102E1C(eSlotMachine->unk18);
+ sub_8103C14(eSlotMachine->unk18);
+ eSlotMachine->state = 13;
+ }
+ return FALSE;
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8102090(struct Task *task)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r4, ._146 @ \n\
+ ldrb r0, [r4, #0x18]\n\
+ bl sub_8102E40\n\
+ lsl r0, r0, #0x18\n\
+ lsr r2, r0, #0x18\n\
+ cmp r2, #0\n\
+ bne ._138 @cond_branch\n\
+ ldrh r0, [r4, #0x18]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r4, #0x18]\n\
+ mov r1, #0xc\n\
+ strb r1, [r4]\n\
+ lsl r0, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0x2\n\
+ ble ._161 @cond_branch\n\
+ mov r0, #0xe\n\
+ strb r0, [r4]\n\
+ ldr r0, ._146 + 4 @ \n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x8\n\
+ beq ._140 @cond_branch\n\
+ cmp r0, #0x8\n\
+ bgt ._141 @cond_branch\n\
+ cmp r0, #0x2\n\
+ beq ._142 @cond_branch\n\
+ cmp r0, #0x2\n\
+ bgt ._143 @cond_branch\n\
+ cmp r0, #0x1\n\
+ beq ._144 @cond_branch\n\
+ b ._161\n\
+._147:\n\
+ .align 2, 0\n\
+._146:\n\
+ .word +0x2000000\n\
+ .word unk_debug_bss_1_0\n\
+._143:\n\
+ cmp r0, #0x4\n\
+ beq ._148 @cond_branch\n\
+ b ._161\n\
+._141:\n\
+ cmp r0, #0x40\n\
+ beq ._150 @cond_branch\n\
+ cmp r0, #0x40\n\
+ bgt ._151 @cond_branch\n\
+ cmp r0, #0x10\n\
+ beq ._152 @cond_branch\n\
+ b ._161\n\
+._151:\n\
+ cmp r0, #0x80\n\
+ beq ._154 @cond_branch\n\
+ b ._161\n\
+._142:\n\
+ mov r0, #0x14\n\
+ strh r0, [r4, #0x28]\n\
+ strh r0, [r4, #0x2a]\n\
+ mov r0, #0x12\n\
+ b ._160\n\
+._144:\n\
+ mov r0, #0x14\n\
+ strh r0, [r4, #0x28]\n\
+ strh r0, [r4, #0x2a]\n\
+ mov r0, #0x12\n\
+ b ._160\n\
+._148:\n\
+ mov r0, #0x3\n\
+ strh r0, [r4, #0x28]\n\
+ mov r0, #0x1\n\
+ strh r0, [r4, #0x2a]\n\
+ mov r0, #0x2\n\
+ b ._160\n\
+._140:\n\
+ strh r2, [r4, #0x28]\n\
+ mov r0, #0x2\n\
+ strh r0, [r4, #0x2a]\n\
+ mov r0, #0x3\n\
+ b ._160\n\
+._152:\n\
+ mov r0, #0x2\n\
+ strh r0, [r4, #0x28]\n\
+ mov r0, #0x5\n\
+ strh r0, [r4, #0x2a]\n\
+ mov r0, #0x14\n\
+ b ._160\n\
+._150:\n\
+ mov r0, #0x13\n\
+ strh r0, [r4, #0x28]\n\
+ strh r0, [r4, #0x2a]\n\
+ strh r2, [r4, #0x2c]\n\
+ b ._161\n\
+._154:\n\
+ mov r0, #0x13\n\
+ strh r0, [r4, #0x28]\n\
+ strh r0, [r4, #0x2a]\n\
+._160:\n\
+ strh r0, [r4, #0x2c]\n\
+._161:\n\
+ mov r0, #0x1\n\
+ b ._162\n\
+._138:\n\
+ mov r0, #0x0\n\
+._162:\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1");
+}
+#else
+static bool8 sub_8102090(struct Task *task)
+{
+ if (!sub_8102E40(eSlotMachine->unk18))
+ {
+ eSlotMachine->unk18++;
+ eSlotMachine->state = 12;
+ if (eSlotMachine->unk18 > 2)
+ {
+ eSlotMachine->state = 14;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+bool8 sub_81020C8(struct Task *task)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r4, ._165 @ \n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0xc0\n\
+ and r0, r0, r1\n\
+ strb r0, [r4, #0x4]\n\
+ bl CheckMatch\n\
+ ldrb r0, [r4, #0xa]\n\
+ cmp r0, #0\n\
+ beq ._163 @cond_branch\n\
+ sub r0, r0, #0x1\n\
+ strb r0, [r4, #0xa]\n\
+ ldrb r0, [r4, #0xb]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r4, #0xb]\n\
+ b ._164\n\
+._166:\n\
+ .align 2, 0\n\
+._165:\n\
+ .word +0x2000000\n\
+._163:\n\
+ bl debug_sub_811B894\n\
+._164:\n\
+ ldr r4, ._171 @ \n\
+ ldrh r0, [r4, #0x8]\n\
+ cmp r0, #0\n\
+ beq ._167 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x6c\n\
+ mov r2, #0xe\n\
+ ldsh r1, [r4, r2]\n\
+ bl debug_sub_811B5B4\n\
+ mov r0, #0xf\n\
+ strb r0, [r4]\n\
+ bl sub_8102A24\n\
+ bl sub_8103F70\n\
+ ldrh r0, [r4, #0x10]\n\
+ ldrh r1, [r4, #0xe]\n\
+ sub r0, r0, r1\n\
+ strh r0, [r4, #0x10]\n\
+ lsl r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bge ._168 @cond_branch\n\
+ mov r0, #0x0\n\
+ strh r0, [r4, #0x10]\n\
+._168:\n\
+ ldrh r1, [r4, #0x8]\n\
+ mov r0, #0xc0\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._169 @cond_branch\n\
+ ldr r0, ._171 + 4 @ \n\
+ bl PlayFanfare\n\
+ mov r0, #0x6\n\
+ bl sub_8104CAC\n\
+ b ._174\n\
+._172:\n\
+ .align 2, 0\n\
+._171:\n\
+ .word +0x2000000\n\
+ .word 0x185\n\
+._169:\n\
+ mov r0, #0x40\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._173 @cond_branch\n\
+ ldr r0, ._175 @ 0x185\n\
+ bl PlayFanfare\n\
+ mov r0, #0x5\n\
+ bl sub_8104CAC\n\
+ b ._174\n\
+._176:\n\
+ .align 2, 0\n\
+._175:\n\
+ .word 0x185\n\
+._173:\n\
+ mov r0, #0xc3\n\
+ lsl r0, r0, #0x1\n\
+ bl PlayFanfare\n\
+ mov r0, #0x2\n\
+ bl sub_8104CAC\n\
+._174:\n\
+ ldr r1, ._183 @ \n\
+ ldrh r3, [r1, #0x8]\n\
+ mov r0, #0xe0\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r3\n\
+ add r2, r1, #0\n\
+ cmp r0, #0\n\
+ beq ._179 @cond_branch\n\
+ ldrb r1, [r2, #0x4]\n\
+ mov r0, #0x3f\n\
+ and r0, r0, r1\n\
+ mov r1, #0x0\n\
+ strb r0, [r2, #0x4]\n\
+ mov r0, #0xc0\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r3\n\
+ cmp r0, #0\n\
+ beq ._179 @cond_branch\n\
+ strb r1, [r2, #0xa]\n\
+ strb r1, [r2, #0xb]\n\
+ strb r1, [r2, #0x3]\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r3\n\
+ cmp r0, #0\n\
+ beq ._179 @cond_branch\n\
+ mov r0, #0x1\n\
+ strb r0, [r2, #0x3]\n\
+._179:\n\
+ ldrh r1, [r2, #0x8]\n\
+ mov r0, #0x20\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._185 @cond_branch\n\
+ ldrb r0, [r2, #0x2]\n\
+ cmp r0, #0xf\n\
+ bhi ._185 @cond_branch\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r2, #0x2]\n\
+ ldrb r0, [r2, #0x2]\n\
+ bl sub_8104064\n\
+ b ._185\n\
+._184:\n\
+ .align 2, 0\n\
+._183:\n\
+ .word +0x2000000\n\
+._167:\n\
+ mov r0, #0x3\n\
+ bl sub_8104CAC\n\
+ mov r0, #0x14\n\
+ strb r0, [r4]\n\
+ ldrh r0, [r4, #0x12]\n\
+ ldrh r1, [r4, #0x10]\n\
+ add r0, r0, r1\n\
+ strh r0, [r4, #0x10]\n\
+ lsl r0, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ ldr r1, ._186 @ 0x270f\n\
+ cmp r0, r1\n\
+ ble ._185 @cond_branch\n\
+ strh r1, [r4, #0x10]\n\
+._185:\n\
+ mov r0, #0x0\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+._187:\n\
+ .align 2, 0\n\
+._186:\n\
+ .word 0x270f");
+}
+#else
+bool8 sub_81020C8(struct Task *task)
+{
+ eSlotMachine->unk04 &= 0xc0;
+ CheckMatch();
+ if (eSlotMachine->unk0A)
+ {
+ eSlotMachine->unk0A--;
+ eSlotMachine->unk0B++;
+ }
+ if (eSlotMachine->matchedSymbols)
+ {
+ eSlotMachine->state = 15;
+ sub_8102A24();
+ sub_8103F70();
+ if ((eSlotMachine->unk10 -= eSlotMachine->payout) < 0)
+ {
+ eSlotMachine->unk10 = 0;
+ }
+ if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED)))
+ {
+ PlayFanfare(BGM_ME_B_BIG);
+ sub_8104CAC(6);
+ }
+ else if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED))
+ {
+ PlayFanfare(BGM_ME_B_BIG);
+ sub_8104CAC(5);
+ }
+ else
+ {
+ PlayFanfare(BGM_ME_B_SMALL);
+ sub_8104CAC(2);
+ }
+ if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED)))
+ {
+ eSlotMachine->unk04 &= 0x3f;
+ if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED)))
+ {
+ eSlotMachine->unk0A = 0;
+ eSlotMachine->unk0B = 0;
+ eSlotMachine->unk03 = 0;
+ if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE))
+ {
+ eSlotMachine->unk03 = 1;
+ }
+ }
+ }
+ if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && eSlotMachine->pikaPower < 16)
+ {
+ eSlotMachine->pikaPower++;
+ sub_8104064(eSlotMachine->pikaPower);
+ }
+ }
+ else
+ {
+ sub_8104CAC(3);
+ eSlotMachine->state = 20;
+ if ((eSlotMachine->unk10 += eSlotMachine->bet) > 9999)
+ {
+ eSlotMachine->unk10 = 9999;
+ }
+ }
+ return FALSE;
+}
+#endif
+
+static bool8 sub_81021E0(struct Task *task)
+{
+ if (sub_8102A44())
+ {
+ eSlotMachine->state = 16;
+ }
+ return FALSE;
+}
+
+static bool8 sub_81021FC(struct Task *task)
+{
+ if (sub_8103FA0())
+ {
+ eSlotMachine->state = 19;
+ if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE)))
+ {
+ IncrementGameStat(GAME_STAT_SLOT_JACKPOTS);
+ }
+ if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY))
+ {
+ eSlotMachine->unk18 = 0;
+ eSlotMachine->state = 9;
+ }
+ if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER))
+ {
+ eSlotMachine->state = 17;
+ }
+ if (eSlotMachine->unk0A && eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY))
+ {
+ sub_8104CAC(4);
+ eSlotMachine->state = 18;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_8102264(struct Task *task)
+{
+ if (!sub_81040C8())
+ {
+ eSlotMachine->state = 19;
+ if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY))
+ {
+ eSlotMachine->state = 9;
+ if (eSlotMachine->unk0A)
+ {
+ sub_8104CAC(4);
+ eSlotMachine->state = 18;
+ }
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_81022A0(struct Task *task)
+{
+ if (sub_8104E18())
+ {
+ eSlotMachine->state = 19;
+ if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY))
+ {
+ eSlotMachine->state = 9;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_81022CC(struct Task *task)
+{
+ sub_8103D8C(0);
+ sub_8103D8C(1);
+ sub_8103D8C(2);
+ eSlotMachine->state = 2;
+ return FALSE;
+}
+
+static bool8 sub_81022F0(struct Task *task)
+{
+ if (++task->data[1] > 64)
+ {
+ task->data[1] = 0;
+ eSlotMachine->state = 19;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8102318(struct Task *task)
+{
+ sub_8101F2C(gOtherText_QuitGamePrompt);
+ DisplayYesNoMenu(21, 7, 1);
+ sub_814AB84();
+ eSlotMachine->state = 22;
+ return FALSE;
+}
+
+static bool8 sub_8102344(struct Task *task)
+{
+ s8 input = Menu_ProcessInputNoWrap_();
+ if (input == 0)
+ {
+ Menu_EraseScreen();
+ sub_8103D8C(0);
+ sub_8103D8C(1);
+ sub_8103D8C(2);
+ eSlotMachine->coins += eSlotMachine->bet;
+ eSlotMachine->state = 27;
+ }
+ else if (input == 1 || input == -1)
+ {
+ Menu_EraseScreen();
+ eSlotMachine->state = 5;
+ }
+ return FALSE;
+}
+
+static bool8 sub_810239C(struct Task *task)
+{
+ sub_8101F2C(gOtherText_MaxCoins);
+ eSlotMachine->state = 24;
+ return FALSE;
+}
+
+static bool8 sub_81023B8(struct Task *task)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ Menu_EraseScreen();
+ eSlotMachine->state = 5;
+ }
+ return FALSE;
+}
+
+static bool8 sub_81023E0(struct Task *task)
+{
+ sub_8101F2C(gOtherText_OutOfCoins);
+ eSlotMachine->state = 26;
+ return FALSE;
+}
+
+static bool8 sub_81023FC(struct Task *task)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ Menu_EraseScreen();
+ eSlotMachine->state = 27;
+ }
+ return FALSE;
+}
+
+#if DEBUG
+__attribute__((naked))
+static bool8 sub_8102424(struct Task *task)
+{
+ asm("\
+ push {lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r0, ._234 @ unk_debug_bss_1_1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._233 @cond_branch\n\
+ ldr r0, ._234 + 4 @ gSaveBlock1\n\
+ ldr r1, ._234 + 8 @ \n\
+ ldrh r1, [r1, #0xc]\n\
+ ldr r2, ._234 + 12 @ \n\
+ add r0, r0, r2\n\
+ strh r1, [r0]\n\
+._233:\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x0\n\
+ mov r3, #0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, ._234 + 8 @ \n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ mov r0, #0x0\n\
+ add sp, sp, #0x4\n\
+ pop {r1}\n\
+ bx r1\n\
+._235:\n\
+ .align 2, 0\n\
+._234:\n\
+ .word unk_debug_bss_1_1\n\
+ .word gSaveBlock1\n\
+ .word +0x2000000\n\
+ .word 0x494");
+}
+#else
+static bool8 sub_8102424(struct Task *task)
+{
+ gSaveBlock1.coins = eSlotMachine->coins;
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ eSlotMachine->state++;
+ return FALSE;
+}
+#endif
+
+static bool8 sub_8102460(struct Task *task)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(eSlotMachine->prevMainCb);
+ }
+ return FALSE;
+}
+
+#if DEBUG
+__attribute__((naked))
+static bool8 debug_sub_8116E74(struct Task *task)
+{
+ asm("\
+ push {lr}\n\
+ bl debug_sub_811B634\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._239 @cond_branch\n\
+ ldr r1, ._240 @ \n\
+ mov r0, #0x5\n\
+ strb r0, [r1]\n\
+._239:\n\
+ mov r0, #0x0\n\
+ pop {r1}\n\
+ bx r1\n\
+._241:\n\
+ .align 2, 0\n\
+._240:\n\
+ .word +0x2000000");
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+static void sub_8102484(void)
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ ldr r0, ._256 @ \n\
+ ldrb r2, [r0, #0xa]\n\
+ add r4, r0, #0\n\
+ cmp r2, #0\n\
+ beq ._242 @cond_branch\n\
+ b ._270\n\
+._242:\n\
+ ldr r0, ._256 + 4 @ \n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._245 @cond_branch\n\
+ ldr r3, ._256 + 8 @ \n\
+ ldrb r0, [r3]\n\
+ cmp r0, #0\n\
+ beq ._245 @cond_branch\n\
+ ldr r0, ._256 + 12 @ \n\
+ ldrb r1, [r0]\n\
+ strb r1, [r4, #0x4]\n\
+ strb r2, [r3]\n\
+ strb r2, [r0]\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._246 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x88\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._246:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x40\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._247 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x84\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._247:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x20\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._248 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x8c\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._248:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x10\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._249 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x80\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._249:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._250 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x7c\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._250:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._251 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x78\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._251:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._252 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x74\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._252:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._253 @cond_branch\n\
+ b ._270\n\
+._253:\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x70\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+ b ._270\n\
+._257:\n\
+ .align 2, 0\n\
+._256:\n\
+ .word +0x2000000\n\
+ .word unk_debug_bss_1_1\n\
+ .word unk_debug_bss_1_2\n\
+ .word unk_debug_bss_1_3\n\
+._245:\n\
+ add r5, r4, #0\n\
+ ldrb r1, [r5, #0x4]\n\
+ mov r0, #0xc0\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._270 @cond_branch\n\
+ bl sub_8102540\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._260 @cond_branch\n\
+ bl sub_8102578\n\
+ lsl r0, r0, #0x18\n\
+ lsr r6, r0, #0x18\n\
+ cmp r6, #0x3\n\
+ beq ._260 @cond_branch\n\
+ ldr r1, ._271 @ gUnknown_083ECE42\n\
+ lsl r0, r6, #0x1\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0]\n\
+ ldrb r0, [r5, #0x4]\n\
+ orr r0, r0, r1\n\
+ strb r0, [r5, #0x4]\n\
+ mov r1, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._261 @cond_branch\n\
+ add r0, r5, #0\n\
+ add r0, r0, #0x88\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._261:\n\
+ ldrb r1, [r5, #0x4]\n\
+ mov r0, #0x40\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._262 @cond_branch\n\
+ add r0, r5, #0\n\
+ add r0, r0, #0x84\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._262:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x20\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._263 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x8c\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._263:\n\
+ cmp r6, #0x1\n\
+ bne ._270 @cond_branch\n\
+._260:\n\
+ bl sub_81025BC\n\
+ lsl r0, r0, #0x18\n\
+ lsr r6, r0, #0x18\n\
+ cmp r6, #0x5\n\
+ beq ._270 @cond_branch\n\
+ ldr r4, ._271 + 4 @ \n\
+ ldr r1, ._271 + 8 @ \n\
+ lsl r0, r6, #0x1\n\
+ add r0, r0, r1\n\
+ ldrb r1, [r0]\n\
+ ldrb r0, [r4, #0x4]\n\
+ orr r0, r0, r1\n\
+ strb r0, [r4, #0x4]\n\
+ mov r1, #0x10\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._266 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x80\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._266:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._267 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x7c\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._267:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._268 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x78\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._268:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._269 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x74\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._269:\n\
+ ldrb r1, [r4, #0x4]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._270 @cond_branch\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x70\n\
+ mov r1, #0x1\n\
+ bl debug_sub_811B5B4\n\
+._270:\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._272:\n\
+ .align 2, 0\n\
+._271:\n\
+ .word gUnknown_083ECE42\n\
+ .word +0x2000000\n\
+ .word gUnknown_083ECE48");
+}
+#else
+static void sub_8102484(void)
+{
+ u8 r3;
+
+ if (eSlotMachine->unk0A == 0 && !(eSlotMachine->unk04 & 0xc0))
+ {
+ if (sub_8102540())
+ {
+ r3 = sub_8102578();
+ if (r3 != 3)
+ {
+ eSlotMachine->unk04 |= gUnknown_083ECE42[r3];
+ if (r3 != 1)
+ {
+ return;
+ }
+ }
+ }
+ r3 = sub_81025BC();
+ if (r3 != 5)
+ {
+ eSlotMachine->unk04 |= gUnknown_083ECE48[r3];
+ }
+ }
+}
+#endif
+
+static void sub_81024F0(void)
+{
+ eSlotMachine->unk06 = 0;
+ if (eSlotMachine->unk04)
+ {
+ eSlotMachine->unk06 = 1;
+ }
+}
+
+static u8 sub_810250C(u8 a0)
+{
+ u8 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (a0 & 1)
+ {
+ return gUnknown_083ECE3A[i];
+ }
+ a0 >>= 1;
+ }
+ return 0;
+}
+
+static bool8 sub_8102540(void)
+{
+ u8 rval = Random();
+ if (gUnknown_083ECD04[eSlotMachine->unk01][eSlotMachine->bet - 1] > rval)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static const u8 gUnknown_083ECD16[][6];
+
+static u8 sub_8102578(void)
+{
+ s16 i;
+
+ for (i = 0; i < 3; i++)
+ {
+ s16 rval = Random() & 0xff;
+ s16 value = gUnknown_083ECD16[i][eSlotMachine->unk01];
+ if (value > rval)
+ {
+ break;
+ }
+ }
+ return i;
+}
+
+static const u8 gUnknown_083ECD28[][6];
+
+static u8 sub_81025BC(void)
+{
+ s16 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ s16 rval = Random() & 0xff;
+ s16 r3 = gUnknown_083ECD28[i][eSlotMachine->unk01];
+ if (i == 0 && eSlotMachine->unk03 == 1)
+ {
+ r3 += 10;
+ if (r3 > 0x100)
+ {
+ r3 = 0x100;
+ }
+ }
+ else if (i == 4 && eSlotMachine->unk03 == 1)
+ {
+ r3 -= 10;
+ if (r3 < 0)
+ {
+ r3 = 0;
+ }
+ }
+ if (r3 > rval)
+ {
+ break;
+ }
+ }
+ return i;
+}
+
+static const u8 gUnknown_083ECD46[][17];
+static const u8 gUnknown_083ECDAC[][17];
+
+static u8 sub_810264C(u8 a0)
+{
+ if (eSlotMachine->unk03 == 0)
+ {
+ return gUnknown_083ECD46[a0][eSlotMachine->pikaPower];
+ }
+ return gUnknown_083ECDAC[a0][eSlotMachine->pikaPower];
+}
+
+static void sub_8102680(void)
+{
+ u8 rval;
+ s16 i;
+
+ eSlotMachine->unk05 = 0;
+ rval = Random();
+ if (rval < sub_810264C(0))
+ {
+ return;
+ }
+ for (i = 5; i > 0; i--)
+ {
+ rval = Random();
+ if (rval < sub_810264C(i))
+ {
+ break;
+ }
+ }
+ eSlotMachine->unk05 = i;
+}
+
+static const u16 gUnknown_083ECE12[];
+
+static bool8 sub_81026DC(u16 a0)
+{
+ u16 rval = Random() & 0xff;
+ if (rval < gUnknown_083ECE12[a0])
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static const u16 gUnknown_083ECE1C[][2];
+static const u16 gUnknown_083ECE30[];
+
+static u16 dp15_jump_random_unknown(void)
+{
+ u8 r4 = 0;
+ u8 rval;
+ u8 value;
+ if (eSlotMachine->unk10 >= 300)
+ {
+ r4 = 4;
+ }
+ else if (eSlotMachine->unk10 >= 250)
+ {
+ r4 = 3;
+ }
+ else if (eSlotMachine->unk10 >= 200)
+ {
+ r4 = 2;
+ }
+ else if (eSlotMachine->unk10 >= 150)
+ {
+ r4 = 1;
+ }
+ rval = Random() % 100;
+ value = gUnknown_083ECE1C[r4][0];
+ if (rval < value)
+ {
+ return 4;
+ }
+ rval = Random() % 100;
+ value = gUnknown_083ECE1C[r4][1] + gUnknown_083ECE30[eSlotMachine->unk0B];
+ if (rval < value)
+ {
+ return 2;
+ }
+ return 8;
+}
+
+static void CheckMatch(void)
+{
+ eSlotMachine->matchedSymbols = 0;
+ CheckMatch_CenterRow();
+ if (eSlotMachine->bet > 1)
+ {
+ CheckMatch_TopAndBottom();
+ }
+ if (eSlotMachine->bet > 2)
+ {
+ CheckMatch_Diagonals();
+ }
+}
+
+static const u16 sSlotMatchFlags[];
+static const u16 sSlotPayouts[];
+
+static void CheckMatch_CenterRow(void)
+{
+ u8 c1, c2, c3, match;
+
+ c1 = GetTagOfReelSymbolOnScreenAtPos(0, 2);
+ c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2);
+ c3 = GetTagOfReelSymbolOnScreenAtPos(2, 2);
+ match = GetMatchFromSymbolsInRow(c1, c2, c3);
+ if (match != SLOT_MACHINE_MATCHED_NONE)
+ {
+ eSlotMachine->payout += sSlotPayouts[match];
+ eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
+ sub_8103E04(0);
+ }
+}
+
+static void CheckMatch_TopAndBottom(void)
+{
+ u8 c1, c2, c3, match;
+
+ c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1);
+ c2 = GetTagOfReelSymbolOnScreenAtPos(1, 1);
+ c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1);
+ match = GetMatchFromSymbolsInRow(c1, c2, c3);
+ if (match != SLOT_MACHINE_MATCHED_NONE)
+ {
+ if (match == SLOT_MACHINE_MATCHED_1CHERRY)
+ {
+ match = SLOT_MACHINE_MATCHED_2CHERRY;
+ }
+ eSlotMachine->payout += sSlotPayouts[match];
+ eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
+ sub_8103E04(1);
+ }
+ c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3);
+ c2 = GetTagOfReelSymbolOnScreenAtPos(1, 3);
+ c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3);
+ match = GetMatchFromSymbolsInRow(c1, c2, c3);
+ if (match != SLOT_MACHINE_MATCHED_NONE)
+ {
+ if (match == SLOT_MACHINE_MATCHED_1CHERRY)
+ {
+ match = SLOT_MACHINE_MATCHED_2CHERRY;
+ }
+ eSlotMachine->payout += sSlotPayouts[match];
+ eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
+ sub_8103E04(2);
+ }
+}
+
+static void CheckMatch_Diagonals(void)
+{
+ u8 c1, c2, c3, match;
+
+ c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1);
+ c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2);
+ c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3);
+ match = GetMatchFromSymbolsInRow(c1, c2, c3);
+ if (match != SLOT_MACHINE_MATCHED_NONE)
+ {
+ if (match != SLOT_MACHINE_MATCHED_1CHERRY)
+ {
+ eSlotMachine->payout += sSlotPayouts[match];
+ eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
+ }
+ sub_8103E04(3);
+ }
+ c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3);
+ c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2);
+ c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1);
+ match = GetMatchFromSymbolsInRow(c1, c2, c3);
+ if (match != SLOT_MACHINE_MATCHED_NONE)
+ {
+ if (match != SLOT_MACHINE_MATCHED_1CHERRY)
+ {
+ eSlotMachine->payout += sSlotPayouts[match];
+ eSlotMachine->matchedSymbols |= sSlotMatchFlags[match];
+ }
+ sub_8103E04(4);
+ }
+}
+
+static const u8 sSym2Match[];
+
+static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3)
+{
+ if (c1 == c2 && c1 == c3)
+ {
+ return sSym2Match[c1];
+ }
+ if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE)
+ {
+ return SLOT_MACHINE_MATCHED_777_MIXED;
+ }
+ if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED)
+ {
+ return SLOT_MACHINE_MATCHED_777_MIXED;
+ }
+ if (c1 == SLOT_MACHINE_TAG_CHERRY)
+ {
+ return SLOT_MACHINE_MATCHED_1CHERRY;
+ }
+ return SLOT_MACHINE_MATCHED_NONE;
+}
+
+static void sub_8102A24(void)
+{
+ sub_8102A64(CreateTask(sub_8102A64, 4));
+}
+
+static bool8 sub_8102A44(void)
+{
+ if (FindTaskIdByFunc(sub_8102A64) == 0xff)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 (*const gUnknown_083ECB20[])(struct Task *task) = {
+ sub_8102A9C,
+ sub_8102AD0,
+ sub_8102B80
+};
+
+static void sub_8102A64(u8 taskId)
+{
+ while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId));
+}
+
+static bool8 sub_8102A9C(struct Task *task)
+{
+ if (sub_8103E38())
+ {
+ task->data[0]++;
+ if (eSlotMachine->payout == 0)
+ {
+ task->data[0] = 2;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_8102AD0(struct Task *task)
+{
+ if (!task->data[1]--)
+ {
+ if (IsFanfareTaskInactive())
+ {
+ PlaySE(SE_PIN);
+ }
+ eSlotMachine->payout--;
+ if (eSlotMachine->coins < 9999)
+ {
+ eSlotMachine->coins++;
+ }
+ task->data[1] = 8;
+ if (gMain.heldKeys & A_BUTTON)
+ {
+ task->data[1] = 4;
+ }
+ }
+ if (IsFanfareTaskInactive() && gMain.newKeys & START_BUTTON)
+ {
+ PlaySE(SE_PIN);
+ eSlotMachine->coins += eSlotMachine->payout;
+ if (eSlotMachine->coins > 9999)
+ {
+ eSlotMachine->coins = 9999;
+ }
+ eSlotMachine->payout = 0;
+ }
+ if (eSlotMachine->payout == 0)
+ {
+ task->data[0]++;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8102B80(struct Task *task)
+{
+ if (sub_8103E7C())
+ {
+ DestroyTask(FindTaskIdByFunc(sub_8102A64));
+ }
+ return FALSE;
+}
+
+static const u8 sReelSymbols[][21];
+
+static u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y)
+{
+ s16 offset = (eSlotMachine->reelPositions[x] + y) % 21;
+ if (offset < 0)
+ {
+ offset += 21;
+ }
+ return sReelSymbols[x][offset];
+}
+
+static u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y)
+{
+ s16 r6 = 0;
+ if ((eSlotMachine->unk1C[x]) % 24)
+ r6 = -1;
+ return GetTagOfReelSymbolOnScreenAtPos(x, y + r6);
+}
+
+static const u8 gUnknown_083ECCF1[];
+
+static u8 sub_8102C48(s16 a0)
+{
+ s16 r1 = (eSlotMachine->unk16 + a0) % 6;
+ if (r1 < 0)
+ r1 += 6;
+ return gUnknown_083ECCF1[r1];
+}
+
+static void sub_8102C84(u8 a0, s16 a1)
+{
+ eSlotMachine->unk1C[a0] += a1;
+ eSlotMachine->unk1C[a0] %= 504;
+ eSlotMachine->reelPositions[a0] = 21 - eSlotMachine->unk1C[a0] / 24;
+}
+
+static s16 sub_8102CCC(u8 a0, s16 a1)
+{
+ s16 r1 = eSlotMachine->unk1C[a0] % 24;
+ if (r1 != 0)
+ {
+ if (r1 < a1)
+ a1 = r1;
+ sub_8102C84(a0, a1);
+ r1 = eSlotMachine->unk1C[a0] % 24;
+ }
+ return r1;
+}
+
+static void sub_8102D28(s16 a0)
+{
+ eSlotMachine->unk14 += a0;
+ eSlotMachine->unk14 %= 120;
+ eSlotMachine->unk16 = 6 - eSlotMachine->unk14 / 20;
+}
+
+static s16 sub_8102D5C(s16 a0)
+{
+ s16 r1 = eSlotMachine->unk14 % 20;
+ if (r1 != 0)
+ {
+ if (r1 < a0)
+ a0 = r1;
+ sub_8102D28(a0);
+ r1 = eSlotMachine->unk14 % 20;
+ }
+ return r1;
+}
+
+static void sub_8102DA8(void)
+{
+ u8 i;
+ for (i = 0; i < 3; i++)
+ {
+ u8 taskId = CreateTask(sub_8102E68, 2);
+ gTasks[taskId].data[15] = i;
+ eSlotMachine->reelTasks[i] = taskId;
+ sub_8102E68(taskId);
+ }
+}
+
+static void sub_8102DEC(u8 a0)
+{
+ gTasks[eSlotMachine->reelTasks[a0]].data[0] = 1;
+ gTasks[eSlotMachine->reelTasks[a0]].data[14] = 1;
+}
+
+static void sub_8102E1C(u8 a0)
+{
+ gTasks[eSlotMachine->reelTasks[a0]].data[0] = 2;
+}
+
+static bool8 sub_8102E40(u8 a0)
+{
+ return gTasks[eSlotMachine->reelTasks[a0]].data[14];
+}
+
+static bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = {
+ sub_8102EA0,
+ sub_8102EA4,
+ sub_8102EC0,
+ sub_8102F4C,
+ sub_8103008
+};
+
+static void sub_8102E68(u8 taskId)
+{
+ while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId));
+}
+
+static bool8 sub_8102EA0(struct Task *task)
+{
+ return FALSE;
+}
+
+static bool8 sub_8102EA4(struct Task *task)
+{
+ sub_8102C84(task->data[15], eSlotMachine->unk1A);
+ return FALSE;
+}
+
+static bool8 (*const gUnknown_083ECB40[])(void) = {
+ sub_810305C,
+ sub_81032C0,
+ sub_81033DC
+};
+static void (*const gUnknown_083ECB4C[])(void) = {
+ sub_81034F4,
+ sub_8103540,
+ sub_810380C
+};
+
+static bool8 sub_8102EC0(struct Task *task)
+{
+ task->data[0]++;
+ eSlotMachine->unk34[task->data[15]] = 0;
+ eSlotMachine->unk2E[task->data[15]] = 0;
+ if (eSlotMachine->unk0A == 0 && (eSlotMachine->unk04 == 0 || eSlotMachine->unk06 == 0 || !gUnknown_083ECB40[task->data[15]]()))
+ {
+ eSlotMachine->unk06 = 0;
+ gUnknown_083ECB4C[task->data[15]]();
+ }
+ task->data[1] = eSlotMachine->unk2E[task->data[15]];
+ return TRUE;
+}
+
+static bool8 sub_8102F4C(struct Task *task)
+{
+ u16 sp[] = {2, 4, 4, 4, 8};
+ s16 r2 = eSlotMachine->unk1C[task->data[15]] % 24;
+ if (r2 != 0)
+ {
+ r2 = sub_8102CCC(task->data[15], eSlotMachine->unk1A);
+ }
+ else if (eSlotMachine->unk2E[task->data[15]])
+ {
+ eSlotMachine->unk2E[task->data[15]]--;
+ sub_8102C84(task->data[15], eSlotMachine->unk1A);
+ r2 = eSlotMachine->unk1C[task->data[15]] % 24;
+ }
+ if (r2 == 0 && eSlotMachine->unk2E[task->data[15]] == 0)
+ {
+ task->data[0]++;
+ task->data[1] = sp[task->data[1]];
+ task->data[2] = 0;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8103008(struct Task *task)
+{
+ eSlotMachine->unk22[task->data[15]] = task->data[1];
+ task->data[1] = -task->data[1];
+ task->data[2]++;
+ if ((task->data[2] & 0x3) == 0)
+ {
+ task->data[1] >>= 1;
+ }
+ if (task->data[1] == 0)
+ {
+ task->data[0] = 0;
+ task->data[14] = 0;
+ eSlotMachine->unk22[task->data[15]] = 0;
+ }
+ return FALSE;
+}
+
+static bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = {
+ sub_8103154,
+ sub_81031B4,
+ sub_81031B4
+};
+
+static bool8 sub_810305C(void)
+{
+ u8 r3 = sub_810250C(eSlotMachine->unk04);
+ u8 r5 = r3;
+ if (eSlotMachine->unk04 & 0xc0)
+ {
+ r5 = 0;
+ r3 = 1;
+ }
+ return gUnknown_083ECB64[eSlotMachine->bet - 1](r5, r3);
+}
+
+static bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2)
+{
+ u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y);
+ if (tag == tag1 || tag == tag2)
+ {
+ eSlotMachine->unk07 = tag;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 sub_81030E0(s16 y)
+{
+ if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8103134(void)
+{
+ if (eSlotMachine->unk04 & 0xc2)
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 sub_8103154(u8 a0, u8 a1)
+{
+ s16 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (sub_81030A4(2 - i, a0, a1))
+ {
+ eSlotMachine->unk34[0] = 2;
+ eSlotMachine->unk2E[0] = i;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_81031B4(u8 tag1, u8 tag2)
+{
+ s16 i;
+ bool8 r6 = sub_8103134();
+ if (r6 || !sub_81030E0(0))
+ {
+ for (i = 1; i < 4; i++)
+ {
+ if (sub_81030A4(i, tag1, tag2))
+ {
+ eSlotMachine->unk34[0] = i;
+ eSlotMachine->unk2E[0] = 0;
+ return TRUE;
+ }
+ }
+ }
+ for (i = 1; i < 5; i++)
+ {
+ bool8 r7 = r6;
+ if (r7 || !sub_81030E0(i))
+ {
+ if (sub_81030A4(1 - i, tag1, tag2))
+ {
+ if (i == 1 && (r7 || !sub_81030E0(3)))
+ {
+ eSlotMachine->unk34[0] = 3;
+ eSlotMachine->unk2E[0] = 3;
+ return TRUE;
+ }
+ if (i < 4 && (r7 || !sub_81030E0(i + 1)))
+ {
+ eSlotMachine->unk34[0] = 2;
+ eSlotMachine->unk2E[0] = i + 1;
+ return TRUE;
+ }
+ eSlotMachine->unk34[0] = 1;
+ eSlotMachine->unk2E[0] = i;
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+static bool8 (*const gUnknown_083ECB70[])(void) = {
+ sub_81032E8,
+ sub_81032E8,
+ sub_810333C
+};
+
+static bool8 sub_81032C0(void)
+{
+ return gUnknown_083ECB70[eSlotMachine->bet - 1]();
+}
+
+static bool8 sub_81032E8(void)
+{
+ s16 i;
+ s16 unk34_0 = eSlotMachine->unk34[0];
+
+ for (i = 0; i < 5; i++)
+ {
+ if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, unk34_0 - i) == eSlotMachine->unk07)
+ {
+ eSlotMachine->unk34[1] = unk34_0;
+ eSlotMachine->unk2E[1] = i;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_810333C(void)
+{
+ s16 i;
+ if (sub_81032E8())
+ {
+ if (eSlotMachine->unk34[0] != 2 && eSlotMachine->unk2E[1] > 1 && eSlotMachine->unk2E[1] != 4)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == eSlotMachine->unk07)
+ {
+ eSlotMachine->unk34[1] = 2;
+ eSlotMachine->unk2E[1] = i;
+ break;
+ }
+ }
+ }
+ return TRUE;
+ }
+ if (eSlotMachine->unk34[0] != 2)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == eSlotMachine->unk07)
+ {
+ eSlotMachine->unk34[1] = 2;
+ eSlotMachine->unk2E[1] = i;
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+static bool8 (*const gUnknown_083ECB7C[])(u8 a0) = {
+ sub_810341C,
+ sub_810341C,
+ sub_810347C
+};
+
+static bool8 sub_81033DC(void)
+{
+ u8 r3 = eSlotMachine->unk07;
+ if (eSlotMachine->unk04 & 0x40)
+ {
+ r3 = 0;
+ if (eSlotMachine->unk07 == 0)
+ {
+ r3 = 1;
+ }
+ }
+ return gUnknown_083ECB7C[eSlotMachine->bet - 1](r3);
+}
+
+static bool8 sub_810341C(u8 a0)
+{
+ s16 i;
+ s16 unk34_1 = eSlotMachine->unk34[1];
+
+ for (i = 0; i < 5; i++)
+ {
+ if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, unk34_1 - i) == a0)
+ {
+ eSlotMachine->unk34[2] = unk34_1;
+ eSlotMachine->unk2E[2] = i;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static bool8 sub_810347C(u8 a0)
+{
+ s16 i;
+ s16 r8;
+ if (eSlotMachine->unk34[0] == eSlotMachine->unk34[1])
+ {
+ return sub_810341C(a0);
+ }
+ r8 = 1;
+ if (eSlotMachine->unk34[0] == 1)
+ {
+ r8 = 3;
+ }
+ for (i = 0; i < 5; i++)
+ {
+ if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0)
+ {
+ eSlotMachine->unk2E[2] = i;
+ eSlotMachine->unk34[2] = r8;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void sub_81034F4(void)
+{
+ s16 i;
+ for (i = 0; sub_81030E0(i); i++);
+ eSlotMachine->unk2E[0] = i;
+}
+
+static bool8 sub_8103520(u8 *a0)
+{
+ if (*a0 == 0)
+ {
+ *a0 = 1;
+ return TRUE;
+ }
+ if (*a0 == 1)
+ {
+ *a0 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void (*const gUnknown_083ECB88[])(void) = {
+ sub_8103564,
+ j5_08111E84,
+ sub_8103668
+};
+
+static void sub_8103540(void)
+{
+ gUnknown_083ECB88[eSlotMachine->bet - 1]();
+}
+
+static void sub_8103564(void)
+{
+ if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80)
+ {
+ u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - eSlotMachine->unk2E[0]);
+ if (sub_8103520(&sp0))
+ {
+ s16 i;
+ for (i = 0; i < 5; i++)
+ {
+ if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i))
+ {
+ eSlotMachine->unk34[1] = 2;
+ eSlotMachine->unk2E[1] = i;
+ break;
+ }
+ }
+ }
+ }
+}
+
+static void j5_08111E84(void)
+{
+ if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80)
+ {
+ u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]);
+ if (sub_8103520(&sp0))
+ {
+ s16 i;
+ for (i = 0; i < 5; i++)
+ {
+ if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[0] - i))
+ {
+ eSlotMachine->unk34[1] = eSlotMachine->unk34[0];
+ eSlotMachine->unk2E[1] = i;
+ break;
+ }
+ }
+ }
+ }
+}
+
+static void sub_8103668(void)
+{
+ s16 i;
+ s16 j;
+ if (eSlotMachine->unk34[0] != 0 && eSlotMachine->unk04 & 0x80)
+ {
+ if (eSlotMachine->unk34[0] == 2)
+ {
+ j5_08111E84();
+ }
+ else
+ {
+ u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]);
+ if (sub_8103520(&sp0))
+ {
+ j = 2;
+ if (eSlotMachine->unk34[0] == 3)
+ j = 3;
+ for (i = 0; i < 2; i++, j--)
+ {
+ if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, j))
+ {
+ eSlotMachine->unk34[1] = j;
+ eSlotMachine->unk2E[1] = 0;
+ return;
+ }
+ }
+ for (j = 1; j < 5; j++)
+ {
+ if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[0] - j))
+ {
+ if (eSlotMachine->unk34[0] == 1)
+ {
+ if (j < 3)
+ {
+ eSlotMachine->unk34[1] = 2;
+ eSlotMachine->unk2E[1] = j + 1;
+ }
+ else
+ {
+ eSlotMachine->unk34[1] = 1;
+ eSlotMachine->unk2E[1] = j;
+ }
+ }
+ else
+ {
+ if (j < 3)
+ {
+ eSlotMachine->unk34[1] = 3;
+ eSlotMachine->unk2E[1] = j;
+ }
+ else
+ {
+ eSlotMachine->unk34[1] = 2;
+ eSlotMachine->unk2E[1] = j - 1;
+ }
+ }
+ return;
+ }
+ }
+ }
+ }
+ }
+}
+
+static bool8 sub_8103764(u8 a0, u8 a1)
+{
+ if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0))
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 sub_810378C(u8 a0, u8 a1, u8 a2)
+{
+ if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1))
+ {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 sub_81037BC(u8 a0, u8 a1, u8 a2)
+{
+ if ((a0 == 0 && a1 == 1 && a2 == 0) ||
+ (a0 == 1 && a1 == 0 && a2 == 1) ||
+ (a0 == 0 && a1 == 0 && a2 == 1) ||
+ (a0 == 1 && a1 == 1 && a2 == 0) ||
+ (a0 == a1 && a0 == a2))
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void (*const gUnknown_083ECB94[])(void) = {
+ sub_8103830,
+ sub_8103910,
+ sub_8103A78
+};
+
+static void sub_810380C(void)
+{
+ gUnknown_083ECB94[eSlotMachine->bet - 1]();
+}
+
+static void sub_8103830(void)
+{
+ s16 i = 0;
+ u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - eSlotMachine->unk2E[0]);
+ u8 r1 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - eSlotMachine->unk2E[1]);
+ if (r5 == r1)
+ {
+ while (1)
+ {
+ u8 r0;
+ if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0)))
+ {
+ break;
+ }
+ i++;
+ }
+ }
+ else if (sub_8103764(r5, r1))
+ {
+ if (eSlotMachine->unk04 & 0x80)
+ {
+ for (i = 0; i < 5; i++)
+ {
+ if (r5 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i))
+ {
+ eSlotMachine->unk2E[2] = i;
+ return;
+ }
+ }
+ }
+ i = 0;
+ while (1)
+ {
+ if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i))
+ {
+ break;
+ }
+ i++;
+ }
+ }
+ eSlotMachine->unk2E[2] = i;
+}
-extern u16 gUnknown_08E95AB8[];
-extern u16 gUnknown_08E95FB8[];
+static void sub_8103910(void)
+{
+ s16 sp0 = 0;
+ s16 i;
+ u8 r7;
+ u8 r6;
+ u8 r4;
+
+ if (eSlotMachine->unk34[1] != 0 && eSlotMachine->unk34[0] == eSlotMachine->unk34[1] && eSlotMachine->unk04 & 0x80)
+ {
+ r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]);
+ r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]);
+ if (sub_8103764(r7, r6))
+ {
+ for (i = 0; i < 5; i++)
+ {
+ r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, eSlotMachine->unk34[1] - i);
+ if (r7 == r4)
+ {
+ sp0 = i;
+ break;
+ }
+ }
+ }
+ }
+ while (1)
+ {
+ s16 r8;
+ for (i = 1, r8 = 0; i < 4; i++)
+ {
+ r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, i - eSlotMachine->unk2E[0]);
+ r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, i - eSlotMachine->unk2E[1]);
+ r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, i - sp0);
+ if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(eSlotMachine->unk04 & 0x80)))
+ {
+ r8++;
+ break;
+ }
+ }
+ if (r8 == 0)
+ {
+ break;
+ }
+ sp0++;
+ }
+ eSlotMachine->unk2E[2] = sp0;
+}
+
+static void sub_8103A78(void)
+{
+ u8 r6;
+ u8 r5;
+ u8 r4;
+ s16 r8;
+ s16 i;
+
+ sub_8103910();
+ if (eSlotMachine->unk34[1] != 0 && eSlotMachine->unk34[0] != eSlotMachine->unk34[1] && eSlotMachine->unk04 & 0x80)
+ {
+ r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, eSlotMachine->unk34[0] - eSlotMachine->unk2E[0]);
+ r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, eSlotMachine->unk34[1] - eSlotMachine->unk2E[1]);
+ if (sub_8103764(r6, r5))
+ {
+ r8 = 1;
+ if (eSlotMachine->unk34[0] == 1)
+ r8 = 3;
+ for (i = 0; i < 5; i++)
+ {
+ r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - (eSlotMachine->unk2E[2] + i));
+ if (r6 == r4)
+ {
+ eSlotMachine->unk2E[2] += i;
+ break;
+ }
+ }
+ }
+ }
+ while (1)
+ {
+ r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - eSlotMachine->unk2E[0]);
+ r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - eSlotMachine->unk2E[1]);
+ r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 3 - eSlotMachine->unk2E[2]);
+ if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && eSlotMachine->unk04 & 0x80))
+ break;
+ eSlotMachine->unk2E[2]++;
+ }
+ while (1)
+ {
+ r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - eSlotMachine->unk2E[0]);
+ r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - eSlotMachine->unk2E[1]);
+ r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 1 - eSlotMachine->unk2E[2]);
+ if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && eSlotMachine->unk04 & 0x80))
+ break;
+ eSlotMachine->unk2E[2]++;
+ }
+}
+
+static void sub_8103C14(u8 a0)
+{
+ u8 taskId = CreateTask(sub_8103C48, 5);
+ gTasks[taskId].data[15] = a0;
+ sub_8103C48(taskId);
+}
+
+static void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = {
+ sub_8103C78,
+ sub_8103CAC,
+ sub_8103CC8
+};
+
+static void sub_8103C48(u8 taskId)
+{
+ gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId);
+}
+
+static const s16 gUnknown_083ECBAC[] = {5, 10, 15};
+
+static void sub_8103C78(struct Task *task, u8 taskId)
+{
+ sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73);
+ task->data[0]++;
+}
+
+static void sub_8103CAC(struct Task *task, u8 taskId)
+{
+ if (++task->data[1] > 11)
+ task->data[0]++;
+}
+
+static void sub_8103CC8(struct Task *task, u8 taskId)
+{
+ sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53);
+ DestroyTask(taskId);
+}
+
+static const u16 *const gUnknown_083EDD08[];
+static const u16 *const gUnknown_083EDD1C[];
+static const u8 gUnknown_083EDD30[];
+
+static void sub_8103D00(u8 a0)
+{
+ LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2);
+}
+
+static void sub_8103D28(u8 a0)
+{
+ LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2);
+}
+
+static const u8 gUnknown_083EDD35[][2];
+static const u8 gUnknown_083EDD3B[];
+
+static void sub_8103D50(u8 a0)
+{
+ u8 i;
+ for (i = 0; i < gUnknown_083EDD3B[a0]; i++)
+ {
+ sub_8103D00(gUnknown_083EDD35[a0][i]);
+ }
+}
+
+static void sub_8103D8C(u8 a0)
+{
+ u8 i;
+ for (i = 0; i < gUnknown_083EDD3B[a0]; i++)
+ {
+ sub_8103D28(gUnknown_083EDD35[a0][i]);
+ }
+}
+
+static void sub_8103DC8(void)
+{
+ u8 i;
+ for (i = 0; i < 5; i++)
+ {
+ u8 spriteId = CreateInvisibleSprite(sub_8103EE4);
+ gSprites[spriteId].data[0] = i;
+ eSlotMachine->unk44[i] = spriteId;
+ }
+}
+
+static void sub_8103E04(u8 a0)
+{
+ struct Sprite *sprite = gSprites + eSlotMachine->unk44[a0];
+ sprite->data[1] = 1;
+ sprite->data[2] = 4;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ sprite->data[5] = 2;
+ sprite->data[7] = 0;
+}
+
+static bool8 sub_8103E38(void)
+{
+ u8 i;
+ for (i = 0; i < 5; i++)
+ {
+ struct Sprite *sprite = gSprites + eSlotMachine->unk44[i];
+ if (sprite->data[1] && sprite->data[2])
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static bool8 sub_8103E7C(void)
+{
+ u8 i;
+ for (i = 0; i < 5; i++)
+ {
+ if (!sub_8103EAC(eSlotMachine->unk44[i]))
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static bool8 sub_8103EAC(u8 spriteId)
+{
+ struct Sprite *sprite = gSprites + spriteId;
+ if (!sprite->data[1])
+ return TRUE;
+ if (sprite->data[7])
+ sprite->data[1] = 0;
+ return sprite->data[7];
+}
+
+static void sub_8103EE4(struct Sprite *sprite)
+{
+ s16 r4;
+ if (sprite->data[1])
+ {
+ if (!sprite->data[3]--)
+ {
+ sprite->data[7] = 0;
+ sprite->data[3] = 1;
+ sprite->data[4] += sprite->data[5];
+ r4 = 4;
+ if (sprite->data[2])
+ r4 = 8;
+ if (sprite->data[4] <= 0)
+ {
+ sprite->data[7] = 1;
+ sprite->data[5] = -sprite->data[5];
+ if (sprite->data[2])
+ sprite->data[2]--;
+ }
+ else if (sprite->data[4] >= r4)
+ sprite->data[5] = -sprite->data[5];
+ if (sprite->data[2])
+ sprite->data[3] <<= 1;
+ }
+ MultiplyPaletteRGBComponents(gUnknown_083EDD30[sprite->data[0]], sprite->data[4], sprite->data[4], sprite->data[4]);
+ }
+}
+
+static void sub_8103F70(void)
+{
+ u8 taskId = CreateTask(sub_8103FE8, 6);
+ gTasks[taskId].data[3] = 1;
+ sub_8103FE8(taskId);
+}
+
+static const u16 *const gUnknown_083EDDA0[];
+static const u16 *const gUnknown_083EDDAC;
+
+static bool8 sub_8103FA0(void)
+{
+ u8 taskId = FindTaskIdByFunc(sub_8103FE8);
+ if (!gTasks[taskId].data[2])
+ {
+ DestroyTask(taskId);
+ LoadPalette(gUnknown_083EDDAC, 0x10, 0x20);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_8103FE8(u8 taskId)
+{
+ struct Task *task = gTasks + taskId;
+ if (!task->data[1]--)
+ {
+ task->data[1] = 4;
+ task->data[2] += task->data[3];
+ if (task->data[2] == 0 || task->data[2] == 2)
+ {
+ task->data[3] = -task->data[3];
+ }
+ }
+ LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20);
+}
+
+static void sub_8104048(void)
+{
+ eSlotMachine->unk3E = CreateTask(sub_81040E8, 8);
+}
+
+static void sub_8104064(u8 pikaPower)
+{
+ struct Task *task = gTasks + eSlotMachine->unk3E;
+ sub_810421C(task);
+ task->data[0] = 1;
+ task->data[1]++;
+ task->data[15] = 1;
+}
+
+static void sub_8104098(void)
+{
+ struct Task *task = gTasks + eSlotMachine->unk3E;
+ sub_810421C(task);
+ task->data[0] = 3;
+ task->data[15] = 1;
+}
+
+static bool8 sub_81040C8(void)
+{
+ return gTasks[eSlotMachine->unk3E].data[15];
+}
+
+static void (*const gUnknown_083ECBB4[])(struct Task *task) = {
+ nullsub_68,
+ sub_810411C,
+ sub_8104144,
+ sub_81041AC
+};
+
+static void sub_81040E8(u8 taskId)
+{
+ gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId);
+}
+
+static void nullsub_68(struct Task *task)
+{
+
+}
+
+static void sub_810411C(struct Task *task)
+{
+ task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20);
+ task->data[0]++;
+}
+
+static const u16 gUnknown_083ECBC4[][2] = {
+ {0x9e, 0x6e},
+ {0x9f, 0x6f},
+ {0xaf, 0x7f}
+};
+
+static void sub_8104144(struct Task *task)
+{
+ u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29);
+ if (gSprites[task->data[2]].data[7])
+ {
+ s16 r2 = task->data[1] + 2;
+ u8 r0 = 0;
+ if (task->data[1] == 1)
+ r0 = 1;
+ else if (task->data[1] == 16)
+ r0 = 2;
+ vaddr[r2 + 0x40] = gUnknown_083ECBC4[r0][0];
+ sub_8105B88(task->data[2]);
+ task->data[0] = 0;
+ task->data[15] = 0;
+ }
+}
+
+static void sub_81041AC(struct Task *task)
+{
+ u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29);
+ s16 r4 = task->data[1] + 2;
+ u8 r2 = 0;
+ if (task->data[1] == 1)
+ r2 = 1;
+ else if (task->data[1] == 16)
+ r2 = 2;
+ if (task->data[2] == 0)
+ {
+ vaddr[r4 + 0x40] = gUnknown_083ECBC4[r2][1];
+ task->data[1]--;
+ }
+ if (++task->data[2] >= 20)
+ task->data[2] = 0;
+ if (task->data[1] == 0)
+ {
+ task->data[0] = 0;
+ task->data[15] = 0;
+ }
+}
+
+static void sub_810421C(struct Task *task)
+{
+ u8 i;
+
+ for (i = 2; i < 16; i++)
+ task->data[i] = 0;
+}
+
+static void sub_810423C(u8 pikaPower)
+{
+ s16 i;
+ u8 r3;
+ s16 r2 = 3;
+ u16 *vaddr = (u16 *)BG_SCREEN_ADDR(29);
+ for (i = 0; i < pikaPower; i++, r2++)
+ {
+ r3 = 0;
+ if (i == 0)
+ r3 = 1;
+ else if (i == 15)
+ r3 = 2;
+ vaddr[r2 + 0x40] = gUnknown_083ECBC4[r3][0];
+ }
+ for (; i < 16; i++, r2++)
+ {
+ r3 = 0;
+ if (i == 0)
+ r3 = 1;
+ else if (i == 15)
+ r3 = 2;
+ vaddr[r2 + 0x40] = gUnknown_083ECBC4[r3][1];
+ }
+ gTasks[eSlotMachine->unk3E].data[1] = pikaPower;
+}
+
+static void sub_810430C(void)
+{
+ u8 taskId = CreateTask(sub_810434C, 7);
+ sub_810434C(taskId);
+}
+
+static bool8 sub_810432C(void)
+{
+ if (FindTaskIdByFunc(sub_810434C) == 0xFF)
+ return TRUE;
+ return FALSE;
+}
+
+static void (*const gUnknown_083ECBD0[])(struct Task *task) = {
+ sub_810437C,
+ sub_81043EC,
+ sub_8104468,
+ sub_8104498,
+ sub_8104548,
+ sub_8104598,
+ sub_81045CC,
+ sub_810463C,
+ sub_81046C0,
+ sub_8104764,
+ sub_8104794,
+ sub_81047EC,
+ sub_8104860,
+ sub_81048A8,
+ sub_81048CC,
+ sub_8104940,
+ sub_81049C8,
+ sub_8104794,
+ sub_81049F8
+};
+
+static void sub_810434C(u8 taskId)
+{
+ gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId);
+}
+
+static void sub_810437C(struct Task *task)
+{
+ eSlotMachine->unk0A = 0;
+ eSlotMachine->unk14 = 0;
+ eSlotMachine->unk16 = 0;
+ task->data[0]++;
+ task->data[1] = 0;
+ task->data[2] = 30;
+ task->data[4] = 1280;
+ gSpriteCoordOffsetX = 0;
+ gSpriteCoordOffsetY = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ sub_8104A40(30, 0);
+ sub_81051C0();
+ sub_8105100();
+ sub_81052EC();
+ sub_81053A0();
+ sub_810545C();
+ sub_8102680();
+ StopMapMusic();
+ PlayNewMapMusic(BGM_BD_TIME);
+}
+
+static void sub_81043EC(struct Task *task)
+{
+ s16 r3;
+ gSpriteCoordOffsetX -= 8;
+ task->data[1] += 8;
+ r3 = ((task->data[1] + 240) & 0xff) >> 3;
+ REG_BG1HOFS = task->data[1] & 0x1ff;
+ if (r3 != task->data[2] && task->data[3] <= 18)
+ {
+ task->data[2] = r3;
+ task->data[3] = task->data[1] >> 3;
+ sub_8104A40(r3, task->data[3]);
+ }
+ if (task->data[1] >= 200)
+ {
+ task->data[0]++;
+ task->data[3] = 0;
+ }
+ sub_8102D28(task->data[4] >> 8);
+}
+
+static void sub_8104468(struct Task *task)
+{
+ sub_8102D28(task->data[4] >> 8);
+ if (++task->data[5] >= 60)
+ {
+ task->data[0]++;
+ sub_8105578();
+ sub_81056F0();
+ }
+}
+
+static void sub_8104498(struct Task *task)
+{
+ int r5;
+ u8 sp0[] = {1, 1, 2, 2};
+ s16 sp4[] = {0x40, 0x30, 0x18, 0x08};
+ s16 spC[] = {10, 8, 6, 4};
+
+ sub_8102D28(task->data[4] >> 8);
+ task->data[4] -= 4;
+ r5 = 4 - (task->data[4] >> 8);
+ sub_8105688(sp4[r5]);
+ sub_81057E8(spC[r5]);
+ StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, sp0[r5]);
+ if (task->data[4] <= 0x100)
+ {
+ task->data[0]++;
+ task->data[4] = 0x100;
+ task->data[5] = 0;
+ }
+}
+
+static void sub_8104548(struct Task *task)
+{
+ sub_8102D28(task->data[4] >> 8);
+ if (++task->data[5] >= 80)
+ {
+ task->data[0]++;
+ task->data[5] = 0;
+ sub_81057E8(2);
+ StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 3);
+ }
+}
+
+static void sub_8104598(struct Task *task)
+{
+ sub_8102D28(task->data[4] >> 8);
+ task->data[4] = (u8)task->data[4] + 0x80;
+ if (++task->data[5] >= 80)
+ {
+ task->data[0]++;
+ task->data[5] = 0;
+ }
+}
+
+static void sub_81045CC(struct Task *task)
+{
+ sub_8102D28(task->data[4] >> 8);
+ task->data[4] = (u8)task->data[4] + 0x40;
+ if (++task->data[5] >= 40)
+ {
+ task->data[5] = 0;
+ if (eSlotMachine->unk05)
+ {
+ if (eSlotMachine->unk0A <= task->data[6])
+ {
+ task->data[0]++;
+ }
+ }
+ else if (task->data[6] > 3)
+ {
+ task->data[0]++;
+ }
+ else if (sub_81026DC(task->data[6]))
+ {
+ task->data[0] = 14;
+ }
+ task->data[6]++;
+ }
+}
+
+static void sub_810463C(struct Task *task)
+{
+ s16 r5 = eSlotMachine->unk14 % 20;
+ if (r5)
+ {
+ r5 = sub_8102D5C(task->data[4] >> 8);
+ task->data[4] = (u8)task->data[4] + 0x40;
+ }
+ else if (sub_8102C48(1) != eSlotMachine->unk05)
+ {
+ sub_8102D28(task->data[4] >> 8);
+ r5 = eSlotMachine->unk14 % 20;
+ task->data[4] = (u8)task->data[4] + 0x40;
+ }
+ if (r5 == 0 && sub_8102C48(1) == eSlotMachine->unk05)
+ {
+ task->data[4] = 0;
+ task->data[0]++;
+ }
+}
+
+static void sub_81046C0(struct Task *task)
+{
+ if (++task->data[4] >= 60)
+ {
+ StopMapMusic();
+ sub_81056C0();
+ sub_8105804();
+ task->data[0]++;
+ if(eSlotMachine->unk05 == 0)
+ {
+ task->data[4] = 0xa0;
+ StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 5);
+ PlayFanfare(BGM_ME_ZANNEN);
+ }
+ else
+ {
+ task->data[4] = 0xc0;
+ StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 4);
+ gSprites[eSlotMachine->unk3F].animCmdIndex = 0;
+ if (eSlotMachine->pikaPower)
+ {
+ sub_8104098();
+ eSlotMachine->pikaPower = 0;
+ }
+ PlayFanfare(BGM_ME_B_SMALL);
+ }
+ }
+}
+
+static void sub_8104764(struct Task *task)
+{
+ if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8())
+ {
+ task->data[0]++;
+ }
+}
+
+static void sub_8104794(struct Task *task)
+{
+ s16 r4;
+ gSpriteCoordOffsetX -= 8;
+ task->data[1] += 8;
+ task->data[3] += 8;
+ r4 = ((task->data[1] - 8) & 0xff) >> 3;
+ REG_BG1HOFS = task->data[1] & 0x1ff;
+ if (task->data[3] >> 3 <= 25)
+ {
+ sub_8104A88(r4);
+ }
+ else
+ {
+ task->data[0]++;
+ }
+}
+
+static void sub_81047EC(struct Task *task)
+{
+ eSlotMachine->unk0B = 0;
+ eSlotMachine->unk0A = eSlotMachine->unk05;
+ gSpriteCoordOffsetX = 0;
+ REG_BG1HOFS = 0;
+ eSlotMachine->unk1A = 8;
+ sub_810514C();
+ sub_81054B8();
+ sub_8105524();
+ PlayNewMapMusic(eSlotMachine->backupMapMusic);
+ if (eSlotMachine->unk0A == 0)
+ {
+ DestroyTask(FindTaskIdByFunc(sub_810434C));
+ }
+ else
+ {
+ sub_8104CAC(4);
+ task->data[1] = dp15_jump_random_unknown();
+ task->data[2] = 0;
+ task->data[3] = 0;
+ task->data[0]++;
+ }
+}
+
+static void sub_8104860(struct Task *task)
+{
+ if (eSlotMachine->unk1A == task->data[1])
+ {
+ task->data[0]++;
+ }
+ else if (eSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0)
+ {
+ eSlotMachine->unk1A >>= 1;
+ }
+}
+
+static void sub_81048A8(struct Task *task)
+{
+ if (sub_8104E18())
+ {
+ DestroyTask(FindTaskIdByFunc(sub_810434C));
+ }
+}
+
+static void sub_81048CC(struct Task *task)
+{
+ sub_81054B8();
+ sub_81056C0();
+ sub_8105804();
+ sub_8105854();
+ gSprites[eSlotMachine->unk4E[0]].invisible = TRUE;
+ StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 5);
+ task->data[0]++;
+ task->data[4] = 4;
+ task->data[5] = 0;
+ StopMapMusic();
+ PlayFanfare(BGM_ME_ZANNEN);
+ PlaySE(SE_W153);
+}
+
+static void sub_8104940(struct Task *task)
+{
+ gSpriteCoordOffsetY = task->data[4];
+ REG_BG1VOFS = task->data[4];
+ if (task->data[5] & 0x01)
+ task->data[4] = -task->data[4];
+ if ((++task->data[5] & 0x1f) == 0)
+ task->data[4] >>= 1;
+ if (task->data[4] == 0)
+ {
+ sub_81058A0();
+ sub_81058C4();
+ sub_8105284();
+ sub_81059E8();
+ gSprites[eSlotMachine->unk4E[0]].invisible = FALSE;
+ task->data[0]++;
+ task->data[5] = 0;
+ }
+}
+
+static void sub_81049C8(struct Task *task)
+{
+ gSpriteCoordOffsetY = 0;
+ REG_BG1VOFS = 0;
+ if (sub_8105ACC())
+ {
+ task->data[0]++;
+ sub_8105AEC();
+ }
+}
+
+static void sub_81049F8(struct Task *task)
+{
+ gSpriteCoordOffsetX = 0;
+ REG_BG1HOFS = 0;
+ PlayNewMapMusic(eSlotMachine->backupMapMusic);
+ sub_810514C();
+ sub_8105554();
+ sub_8105524();
+ sub_81059B8();
+ DestroyTask(FindTaskIdByFunc(sub_810434C));
+}
+
+static const u16 sReelTimeWindowTilemap[];
+
+static void sub_8104A40(s16 a0, s16 a1)
+{
+ s16 i;
+
+ for (i = 4; i < 15; i++)
+ {
+ u16 tile = sReelTimeWindowTilemap[a1 + (i - 4) * 20];
+ ((u16 *)BG_SCREEN_ADDR(28))[32 * i + a0] = tile;
+ }
+}
+
+static void sub_8104A88(s16 a0)
+{
+ s16 i;
+
+ for (i = 4; i < 15; i++)
+ {
+ ((u16 *)BG_SCREEN_ADDR(28))[32 * i + a0] = 0;
+ }
+}
+
+static void sub_8104AB8(u8 a0)
+{
+ u8 taskId = CreateTask(sub_8104B0C, 1);
+ gTasks[taskId].data[1] = a0;
+ sub_8104B0C(taskId);
+}
+
+static bool8 sub_8104AEC(void)
+{
+ if (FindTaskIdByFunc(sub_8104B0C) == 0xFF)
+ return TRUE;
+ return FALSE;
+}
+
+static void (*const gUnknown_083ECC30[])(struct Task *task) = {
+ sub_8104B3C,
+ sub_8104B60,
+ sub_8104B80,
+ sub_8104B60,
+ sub_8104BC8,
+ sub_8104B60,
+ sub_8104BFC,
+ sub_8104B60,
+ sub_8104C44
+};
+
+static void sub_8104B0C(u8 taskId)
+{
+ gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId);
+}
+
+static void sub_8104B3C(struct Task *task)
+{
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ task->data[0]++;
+}
+
+static void sub_8104B60(struct Task *task)
+{
+ if (!gPaletteFade.active)
+ {
+ task->data[0]++;
+ }
+}
+
+static void sub_8104B80(struct Task *task)
+{
+ sub_8104DA4();
+ sub_81065DC();
+ BasicInitMenuWindow(&gWindowTemplate_81E7144);
+ Menu_PrintTextPixelCoords(gOtherText_ReelTime, 10, 32, 1);
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ task->data[0]++;
+}
+
+static void sub_8104BC8(struct Task *task)
+{
+ if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON))
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ task->data[0]++;
+ }
+}
+
+static void sub_8104BFC(struct Task *task)
+{
+ Menu_EraseScreen();
+ BasicInitMenuWindow(&gWindowTemplate_81E7128);
+ sub_81064B8();
+ sub_8104CAC(task->data[1]);
+ sub_810423C(eSlotMachine->pikaPower);
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ task->data[0]++;
+}
+
+static void sub_8104C44(struct Task *task)
+{
+ DestroyTask(FindTaskIdByFunc(sub_8104B0C));
+}
+
+static void sub_8104C5C(void)
+{
+ u8 i;
+ struct Task *task;
+ i = CreateTask(sub_8104E74, 3);
+ eSlotMachine->unk3D = i;
+ task = gTasks + i;
+ task->data[1] = -1;
+ for (i = 4; i < 16; i++)
+ {
+ task->data[i] = MAX_SPRITES;
+ }
+}
static void LoadSlotMachineWheelOverlay(void);
-void sub_8104CAC(u8 arg0) {
+static void sub_8104CAC(u8 arg0)
+{
u8 i;
struct Task *task;
sub_8104DA4();
- task = &gTasks[ewram0_8->unk3D];
+ task = gTasks + eSlotMachine->unk3D;
task->data[1] = arg0;
- i = 0;
- while (gUnknown_083ED048[arg0][i].unk00 != 0xFF)
+ for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++)
{
u8 spriteId;
spriteId = sub_8105BB4(
@@ -55,44 +4042,1039 @@ void sub_8104CAC(u8 arg0) {
#ifdef GERMAN
if (arg0 == 5 && i <= 2)
- {
gSprites[spriteId].invisible = TRUE;
- }
#endif
+ }
+}
+
+static void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4)
+{
+ u8 i;
+ struct Task *task = gTasks + eSlotMachine->unk3D;
+ for (i = 4; i < 16; i++)
+ {
+ if (task->data[i] == MAX_SPRITES)
+ {
+ task->data[i] = sub_8105BF8(a0, a1, a2, a3, a4);
+ break;
+ }
+ }
+}
+
+static void (*const gUnknown_083ED064[])(void);
+
+void sub_8104DA4(void)
+{
+ u8 i;
+ struct Task *task = gTasks + eSlotMachine->unk3D;
+ if ((u16)task->data[1] != 0xFFFF)
+ gUnknown_083ED064[task->data[1]]();
+ for (i = 4; i < 16; i++)
+ {
+ if (task->data[i] != MAX_SPRITES)
+ {
+ DestroySprite(gSprites + task->data[i]);
+ task->data[i] = MAX_SPRITES;
+ }
+ }
+}
+
+static bool8 sub_8104E18(void)
+{
+ u8 i;
+ struct Task *task = gTasks + eSlotMachine->unk3D;
+ for (i = 4; i < 16; i++)
+ {
+ if (task->data[i] != MAX_SPRITES)
+ {
+ if (gSprites[task->data[i]].data[7])
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+static void (*const gUnknown_083ECC54[])(struct Task *task) = {
+ nullsub_69
+};
+
+static void sub_8104E74(u8 taskId)
+{
+ gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId);
+}
+
+static void nullsub_69(struct Task *task)
+{
+
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED414;
+
+static void sub_8104EA8(void)
+{
+ s16 i;
+ s16 j;
+ s16 x;
+ for (i = 0, x = 0x30; i < 3; i++, x += 0x28)
+ {
+ for (j = 0; j < 120; j += 24)
+ {
+ struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED414, x, 0, 14);
+ sprite->oam.priority = 3;
+ sprite->data[0] = i;
+ sprite->data[1] = j;
+ sprite->data[3] = -1;
+ }
+ }
+}
+
+static void sub_8104F18(struct Sprite *sprite)
+{
+ sprite->data[2] = eSlotMachine->unk1C[sprite->data[0]] + sprite->data[1];
+ sprite->data[2] %= 120;
+ sprite->pos1.y = eSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2];
+ sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagOfReelSymbolOnScreenAtPos(sprite->data[0], sprite->data[2] / 24));
+ SetSpriteSheetFrameTileNum(sprite);
+}
+
+static void sub_8104F8C(void)
+{
+ s16 i;
+ s16 x;
+ for (x = 203, i = 1; i < 10000; i *= 10, x -= 7)
+ {
+ sub_8104FF4(x, 23, 0, i);
+ }
+ for (x = 235, i = 1; i < 10000; i *= 10, x -= 7)
+ {
+ sub_8104FF4(x, 23, 1, i);
+ }
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED42C;
- i += 1;
+static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3)
+{
+ struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13);
+ sprite->oam.priority = 2;
+ sprite->data[0] = a2;
+ sprite->data[1] = a3;
+ sprite->data[2] = a3 * 10;
+ sprite->data[3] = -1;
+}
+
+static void sub_810506C(struct Sprite *sprite)
+{
+ u16 tag = eSlotMachine->coins;
+ if (sprite->data[0])
+ tag = eSlotMachine->payout;
+ if (sprite->data[3] != tag)
+ {
+ sprite->data[3] = tag;
+ tag %= (u16)sprite->data[2];
+ tag /= (u16)sprite->data[1];
+ tag += 7;
+ sprite->sheetTileStart = GetSpriteTileStartByTag(tag);
+ SetSpriteSheetFrameTileNum(sprite);
}
}
-asm(".section .text_b");
+static const struct SpriteTemplate gSpriteTemplate_83ED444;
+static const struct SubspriteTable gSubspriteTables_83ED704[];
-void sub_8106448(void) {
- u32 offsetRead, offsetWrite;
- u32 size;
+static void sub_81050C4(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15);
+ gSprites[spriteId].oam.priority = 3;
+ SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704);
+}
- LZDecompressWram(gSlotMachine_Gfx, ewram10000_2);
+static const struct SpriteTemplate gSpriteTemplate_83ED45C;
- offsetRead = (u32)ewram10000_2;
- offsetWrite = BG_VRAM;
- size = SLOTMACHINE_GFX_TILES * 32;
- while (TRUE)
+static void sub_8105100(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED45C, 0x118, 0x50, 1);
+ gSprites[spriteId].oam.priority = 1;
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ eSlotMachine->unk3F = spriteId;
+}
+
+static void sub_810514C(void)
+{
+ DestroySprite(gSprites + eSlotMachine->unk3F);
+}
+
+static void sub_8105170(struct Sprite *sprite)
+{
+ sprite->pos2.y = sprite->pos2.x = 0;
+ if (sprite->animNum == 4)
{
- DmaCopy16(3, offsetRead, (void *) (offsetWrite), 0x1000);
- offsetRead += 0x1000;
- offsetWrite += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
+ sprite->pos2.y = sprite->pos2.x = 8;
+ if ((sprite->animCmdIndex != 0 && sprite->animDelayCounter != 0) || (sprite->animCmdIndex == 0 && sprite->animDelayCounter == 0))
{
- DmaCopy16(3, offsetRead, (void *) (offsetWrite), size);
+ sprite->pos2.y = -8;
+ }
+ }
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED474;
+static const struct SpriteTemplate gSpriteTemplate_83ED48C;
+static const struct SubspriteTable gSubspriteTables_83ED73C[];
+static const struct SubspriteTable gSubspriteTables_83ED75C[];
+
+static void sub_81051C0(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED474, 0x170, 0x34, 7);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ SetSubspriteTables(sprite, gSubspriteTables_83ED73C);
+ eSlotMachine->unk49[0] = spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83ED48C, 0x170, 0x54, 7);
+ sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ SetSubspriteTables(sprite, gSubspriteTables_83ED75C);
+ eSlotMachine->unk49[1] = spriteId;
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4A4;
+static const struct SubspriteTable gSubspriteTables_83ED78C[];
+
+static void sub_8105284(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4A4, 0xa8 - gSpriteCoordOffsetX, 0x50, 7);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ SetSubspriteTables(sprite, gSubspriteTables_83ED78C);
+ eSlotMachine->unk42 = spriteId;
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4BC;
+
+static void sub_81052EC(void)
+{
+ u8 i;
+ s16 r5;
+ for (i = 0, r5 = 0; i < 3; i++, r5 += 20)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4BC, 0x170, 0x00, 10);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->data[7] = r5;
+ eSlotMachine->unk4B[i] = spriteId;
+ }
+}
+
+static void sub_810535C(struct Sprite *sprite)
+{
+ s16 r0 = (u16)(eSlotMachine->unk14 + sprite->data[7]);
+ r0 %= 40;
+ sprite->pos1.y = r0 + 59;
+ StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20));
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4D4;
+static const struct SubspriteTable gSubspriteTables_83ED7B4[];
+
+static void sub_81053A0(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = 1;
+ SetSubspriteTables(sprite, gSubspriteTables_83ED7B4);
+ eSlotMachine->unk4E[0] = spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x120, 0x68, 4);
+ sprite = gSprites + spriteId;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = 1;
+ SetSubspriteTables(sprite, gSubspriteTables_83ED7B4);
+ eSlotMachine->unk4E[1] = spriteId;
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4EC;
+static const struct SubspriteTable gSubspriteTables_83ED7D4[];
+
+static void sub_810545C(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = 1;
+ SetSubspriteTables(sprite, gSubspriteTables_83ED7D4);
+ eSlotMachine->unk40 = spriteId;
+}
+
+static void sub_81054B8(void)
+{
+ u8 i;
+
+ DestroySprite(gSprites + eSlotMachine->unk40);
+ for (i = 0; i < 2; i++)
+ {
+ DestroySprite(gSprites + eSlotMachine->unk49[i]);
+ }
+ for (i = 0; i < 3; i++)
+ {
+ DestroySprite(gSprites + eSlotMachine->unk4B[i]);
+ }
+}
+
+static void sub_8105524(void)
+{
+ u8 i;
+ for (i = 0; i < 2; i++)
+ {
+ DestroySprite(gSprites + eSlotMachine->unk4E[i]);
+ }
+}
+
+static void sub_8105554(void)
+{
+ DestroySprite(gSprites + eSlotMachine->unk42);
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED504;
+
+static void sub_8105578(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->hFlip = TRUE;
+ eSlotMachine->unk50[0] = spriteId;
+ sprite->data[0] = 8;
+ sprite->data[1] = -1;
+ sprite->data[2] = -1;
+ sprite->data[7] = 0x20;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5);
+ sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ eSlotMachine->unk50[1] = spriteId;
+ sprite->data[1] = 1;
+ sprite->data[2] = -1;
+ sprite->data[7] = 0x20;
+}
+
+static void sub_810562C(struct Sprite *sprite)
+{
+ if (sprite->data[0] != 0)
+ {
+ sprite->data[0]--;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->invisible = TRUE;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ sprite->pos2.x += sprite->data[1];
+ sprite->pos2.y += sprite->data[2];
+ if (++sprite->data[3] >= 8)
+ {
+ sprite->data[0] = sprite->data[7];
+ sprite->data[3] = 0;
+ }
+ }
+}
+
+static void sub_8105688(s16 a0)
+{
+ gSprites[eSlotMachine->unk50[0]].data[7] = a0;
+ gSprites[eSlotMachine->unk50[1]].data[7] = a0;
+}
+
+static void sub_81056C0(void)
+{
+ u8 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ DestroySprite(gSprites + eSlotMachine->unk50[i]);
+ }
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED51C;
+
+static void sub_81056F0(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3);
+ gSprites[spriteId].oam.priority = 1;
+ gSprites[spriteId].data[0] = 1;
+ gSprites[spriteId].data[5] = 0;
+ gSprites[spriteId].data[6] = 16;
+ gSprites[spriteId].data[7] = 8;
+ eSlotMachine->unk52[0] = spriteId;
+
+ spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3);
+ gSprites[spriteId].oam.priority = 1;
+ gSprites[spriteId].hFlip = TRUE;
+ eSlotMachine->unk52[1] = spriteId;
+}
+
+static const u8 gUnknown_083ECC58[2]; // don't remove this until decompiled through gUnknown_083ECCF8
+
+static void sub_8105784(struct Sprite *sprite)
+{
+ u8 sp[] = {16, 0};
+ if (sprite->data[0] && --sprite->data[6] <= 0)
+ {
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, sp[sprite->data[5]], sp[sprite->data[5]], sp[sprite->data[5]]);
+ ++sprite->data[5];
+ sprite->data[5] &= 1;
+ sprite->data[6] = sprite->data[7];
+ }
+}
+
+static void sub_81057E8(s16 a0)
+{
+ gSprites[eSlotMachine->unk52[0]].data[7] = a0;
+}
+
+static void sub_8105804(void)
+{
+ u8 i;
+ MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0);
+ for (i = 0; i < 2; i++)
+ {
+ DestroySprite(gSprites + eSlotMachine->unk52[i]);
+ }
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED534;
+
+static void sub_8105854(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6);
+ gSprites[spriteId].oam.priority = 1;
+ eSlotMachine->unk41 = spriteId;
+}
+
+static void sub_8105894(struct Sprite *sprite)
+{
+ sprite->pos2.y = gSpriteCoordOffsetY;
+}
+
+static void sub_81058A0(void)
+{
+ DestroySprite(gSprites + eSlotMachine->unk41);
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED54C;
+
+static void sub_81058C4(void)
+{
+ u8 i;
+ u16 sp[] = {0x0, 0x40, 0x80, 0xC0};
+ for (i = 0; i < 4; i++)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED54C, 0x50 - gSpriteCoordOffsetX, 0x44, 0);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->data[0] = sp[i];
+ eSlotMachine->unk54[i] = spriteId;
+ }
+}
+
+static void sub_810594C(struct Sprite *sprite)
+{
+ sprite->data[0] -= 2;
+ sprite->data[0] &= 0xff;
+ sprite->pos2.x = Cos(sprite->data[0], 20);
+ sprite->pos2.y = Sin(sprite->data[0], 6);
+ sprite->subpriority = 0;
+ if (sprite->data[0] >= 0x80)
+ {
+ sprite->subpriority = 2;
+ }
+ if (++sprite->data[1] >= 16)
+ {
+ sprite->hFlip ^= 1;
+ sprite->data[1] = 0;
+ }
+}
+
+static void sub_81059B8(void)
+{
+ u8 i;
+ for (i = 0; i < 4; i++)
+ {
+ DestroySprite(gSprites + eSlotMachine->unk54[i]);
+ }
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED564;
+
+static void sub_81059E8(void)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 1;
+ sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
+ InitSpriteAffineAnim(sprite);
+ eSlotMachine->unk43 = spriteId;
+}
+
+static void sub_8105A38(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ if (sprite->affineAnimEnded)
+ sprite->data[0]++;
+ }
+ else if (sprite->data[0] == 1)
+ {
+ sprite->invisible ^= 1;
+ if (++sprite->data[2] >= 24)
+ {
+ sprite->data[0]++;
+ sprite->data[2] = 0;
+ }
+ }
+ else
+ {
+ sprite->invisible = TRUE;
+ if (++sprite->data[2] >= 16)
+ sprite->data[7] = 1;
+ }
+ sprite->data[1] &= 0xff;
+ sprite->data[1] += 16;
+ sprite->pos2.y -= (sprite->data[1] >> 8);
+}
+
+u8 sub_8105ACC(void)
+{
+ return gSprites[eSlotMachine->unk43].data[7];
+}
+
+static void sub_8105AEC(void)
+{
+ struct Sprite *sprite = gSprites + eSlotMachine->unk43;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ DestroySprite(sprite);
+}
+
+static const struct SpriteTemplate gSpriteTemplate_83ED6CC;
+
+static u8 sub_8105B1C(s16 x, s16 y)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 2;
+ sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
+ InitSpriteAffineAnim(sprite);
+ return spriteId;
+}
+
+static void sub_8105B70(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
+ sprite->data[7] = 1;
+}
+
+static void sub_8105B88(u8 spriteId)
+{
+ struct Sprite *sprite = gSprites + spriteId;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ DestroySprite(sprite);
+}
+
+static const s16 gUnknown_083ECE7E[][2];
+static const SpriteCallback gUnknown_083ECF0C[];
+
+u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2)
+{
+ return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2);
+}
+
+static const struct SpriteTemplate *const gUnknown_083EDB5C[];
+static const struct SubspriteTable *const gUnknown_083EDBC4[];
+
+static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4)
+{
+ u8 spriteId = CreateSprite(gUnknown_083EDB5C[templateIdx], x, y, 16);
+ struct Sprite *sprite = gSprites + spriteId;
+ sprite->oam.priority = 3;
+ sprite->callback = callback;
+ sprite->data[6] = a4;
+ sprite->data[7] = 1;
+ if (gUnknown_083EDBC4[templateIdx])
+ SetSubspriteTables(sprite, gUnknown_083EDBC4[templateIdx]);
+ return spriteId;
+}
+
+static void sub_8105C64(struct Sprite *sprite)
+{
+ sprite->data[7] = 0;
+}
+
+static void sub_8105C6C(struct Sprite *sprite)
+{
+ s16 sp0[] = {4, -4, 4, -4};
+ s16 sp8[] = {4, 4, -4, -4};
+
+ if (sprite->data[1]++ >= 16)
+ {
+ sprite->subspriteTableNum ^= 1;
+ sprite->data[1] = 0;
+ }
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ if (sprite->subspriteTableNum != 0)
+ {
+ sprite->pos2.x = sp0[sprite->data[6]];
+ sprite->pos2.y = sp8[sprite->data[6]];
+ }
+}
+
+static void sub_8105CF0(struct Sprite *sprite)
+{
+ sprite->hFlip = TRUE;
+ sub_8105C6C(sprite);
+}
+
+static void sub_8105D08(struct Sprite *sprite)
+{
+ sprite->vFlip = TRUE;
+ sub_8105C6C(sprite);
+}
+
+static void sub_8105D20(struct Sprite *sprite)
+{
+ sprite->hFlip = TRUE;
+ sprite->vFlip = TRUE;
+ sub_8105C6C(sprite);
+}
+
+static void sub_8105D3C(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0xd0)
+ {
+ sprite->pos1.x = 0xd0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] > 90)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0x110)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ sprite->data[7] = 0;
+ break;
+ }
+}
+
+static void sub_8105DA4(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos1.x -= 4;
+ if (sprite->pos1.x <= 0xd0)
+ {
+ sprite->pos1.x = 0xd0;
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ if (++sprite->data[1] > 90)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ sprite->pos1.x -= 4;
+ if (sprite->pos1.x <= 0x90)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ sprite->data[7] = 0;
+ break;
+ }
+}
+
+static void sub_8105E08(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ StartSpriteAnim(sprite, eSlotMachine->unk0A - 1);
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ if (++sprite->data[1] >= 4)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 0;
+ }
+ break;
+ case 2:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0xd0)
+ {
+ sprite->pos1.x = 0xd0;
+ sprite->data[0]++;
+ }
+ break;
+ case 3:
+ if (++sprite->data[1] > 90)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 4:
+ sprite->pos1.x += 4;
+ if (sprite->pos1.x >= 0xf8)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 5:
+ sprite->data[7] = 0;
+ break;
+ }
+}
+
+static void sub_8105EB4(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->animPaused = TRUE;
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ sprite->pos1.y += 8;
+ if (sprite->pos1.y >= 0x70)
+ {
+ sprite->pos1.y = 0x70;
+ sprite->data[1] = 16;
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (sprite->data[2] == 0)
+ {
+ sprite->pos1.y -= sprite->data[1];
+ sprite->data[1] = -sprite->data[1];
+ if (++sprite->data[3] >= 2)
+ {
+ sprite->data[1] >>= 2;
+ sprite->data[3] = 0;
+ if (sprite->data[1] == 0)
+ {
+ sprite->data[0]++;
+ sprite->data[7] = 0;
+ sprite->animPaused = FALSE;
+ }
+ }
+ }
+ sprite->data[2]++;
+ sprite->data[2] &= 0x07;
+ break;
+ }
+}
+
+static void sub_8105F54(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ if (++sprite->data[1] > 8)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 1:
+ sprite->pos1.y += 2;
+ if (sprite->pos1.y >= 0x30)
+ {
+ sprite->pos1.y = 0x30;
+ sprite->data[0]++;
+ sprite->data[7] = 0;
+ }
+ break;
+ }
+}
+
+static void sub_8105F9C(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->invisible = TRUE;
+ if (++sprite->data[1] > 0x20)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 5;
+ sprite->oam.mosaic = TRUE;
+ sprite->invisible = FALSE;
+ StartSpriteAnim(sprite, 1);
+ REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8;
+ }
+ break;
+ case 1:
+ sprite->data[1] -= (sprite->data[2] >> 8);
+ if (sprite->data[1] < 0)
+ {
+ sprite->data[1] = 0;
+ }
+ REG_MOSAIC = ((sprite->data[1] << 4) | sprite->data[1]) << 8;
+ sprite->data[2] &= 0xff;
+ sprite->data[2] += 0x80;
+ if (sprite->data[1] == 0)
+ {
+ sprite->data[0]++;
+ sprite->data[7] = 0;
+ sprite->oam.mosaic = FALSE;
+ StartSpriteAnim(sprite, 0);
+ }
break;
+ }
+}
+
+static const u16 *const gUnknown_083EDE10[];
+
+static void sub_8106058(struct Sprite *sprite)
+{
+ if (sprite->data[1] < 3)
+ {
+ LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20);
+ if (++sprite->data[2] >= 4)
+ {
+ sprite->data[1]++;
+ sprite->data[2] = 0;
}
}
+ else
+ {
+ LoadPalette(gUnknown_083EDE10[sprite->data[1]], (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20);
+ if (++sprite->data[2] >= 25)
+ {
+ sprite->data[1] = 0;
+ sprite->data[2] = 0;
+ }
+ }
+ StartSpriteAnimIfDifferent(sprite, 1);
+ sprite->data[7] = 0;
+}
+
+static void sub_81060FC(struct Sprite *sprite)
+{
+ s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0};
+ s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48};
+ s16 sp20[] = {16, 12, 16, 0, 0, 4, 8, 8};
+
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos2.x = sp00[sprite->data[6]];
+ sprite->pos2.y = sp10[sprite->data[6]];
+ sprite->data[1] = sp20[sprite->data[6]];
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ if (sprite->data[1]-- == 0)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ case 2:
+ if (sprite->pos2.x > 0)
+ {
+ sprite->pos2.x -= 4;
+ }
+ else if (sprite->pos2.x < 0)
+ {
+ sprite->pos2.x += 4;
+ }
+ if (sprite->pos2.y > 0)
+ {
+ sprite->pos2.y -= 4;
+ }
+ else if (sprite->pos2.y < 0)
+ {
+ sprite->pos2.y += 4;
+ }
+ if (sprite->pos2.x == 0 && sprite->pos2.y == 0)
+ {
+ sprite->data[0]++;
+ }
+ break;
+ }
+}
+
+static void sub_81061C8(struct Sprite *sprite)
+{
+ s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24};
+
+ if (sprite->data[0] == 0)
+ {
+ sprite->data[0]++;
+ sprite->data[1] = 12;
+ }
+ sprite->pos2.x = Cos(sp0[sprite->data[6]], sprite->data[1]);
+ sprite->pos2.y = Sin(sp0[sprite->data[6]], sprite->data[1]);
+ if (sprite->data[1])
+ {
+ sprite->data[1]--;
+ }
+}
+
+static void sub_8106230(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ eSlotMachine->winIn = 0x2f;
+ eSlotMachine->winOut = 0x3f;
+ eSlotMachine->win0v = 0x2088;
+ sprite->invisible = TRUE;
+ sprite->data[0]++;
+ // fallthrough
+ case 1:
+ sprite->data[1] += 2;
+ sprite->data[2] = sprite->data[1] + 0xb0;
+ sprite->data[3] = 0xf0 - sprite->data[1];
+ if (sprite->data[2] > 0xd0)
+ {
+ sprite->data[2] = 0xd0;
+ }
+ if (sprite->data[3] < 0xd0)
+ {
+ sprite->data[3] = 0xd0;
+ }
+ eSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3];
+ if (sprite->data[1] > 0x33)
+ {
+ sprite->data[0]++;
+ eSlotMachine->winIn = 0x3f;
+ }
+ break;
+ case 2:
+ if (eSlotMachine->bet == 0)
+ {
+ break;
+ }
+ sub_8104D30(5, SpriteCallbackDummy, 0xd0, 0x74, 0);
+ eSlotMachine->win0h = 0xc0e0;
+ eSlotMachine->win0v = 0x6880;
+ eSlotMachine->winIn = 0x2f;
+ sprite->data[0]++;
+ sprite->data[1] = 0;
+ // fallthrough
+ case 3:
+ sprite->data[1] += 2;
+ sprite->data[2] = sprite->data[1] + 0xc0;
+ sprite->data[3] = 0xe0 - sprite->data[1];
+ if (sprite->data[2] > 0xd0)
+ {
+ sprite->data[2] = 0xd0;
+ }
+ if (sprite->data[3] < 0xd0)
+ {
+ sprite->data[3] = 0xd0;
+ }
+ eSlotMachine->win0h = (sprite->data[2] << 8) | sprite->data[3];
+ if (sprite->data[1] > 0x0f)
+ {
+ sprite->data[0]++;
+ eSlotMachine->winIn = 0x3f;
+ }
+ break;
+ }
+}
+
+static void nullsub_70(void)
+{
+
+}
+
+static void sub_8106364(void)
+{
+ REG_MOSAIC = 0;
+}
+
+static const u16 *const gUnknown_083EDE20;
+
+static void sub_8106370(void)
+{
+ LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20);
+}
+
+static void sub_810639C(void)
+{
+ eSlotMachine->win0h = 0xf0;
+ eSlotMachine->win0v = 0xa0;
+ eSlotMachine->winIn = 0x3f;
+ eSlotMachine->winOut = 0x3f;
+}
+
+static const u8 sReelTimeGfx[];
+static const struct SpriteSheet sSlotMachineSpriteSheets[];
+static const struct SpritePalette gSlotMachineSpritePalettes[];
+
+static void sub_81063C0(void)
+{
+ sub_8106404();
+ LZDecompressWram(gSlotMachineReelTimeLights_Gfx, eSlotMachineGfxBuffer);
+ LZDecompressWram(sReelTimeGfx, eSlotMachineReelTimeGfxBuffer);
+ LoadSpriteSheets(sSlotMachineSpriteSheets);
+ LoadSpritePalettes(gSlotMachineSpritePalettes);
+}
+
+static const u8 *const gUnknown_083EDCE4;
+static const struct SpriteSheet gUnknown_083EDCDC;
+
+static void sub_8106404(void)
+{
+ u8 *dest = eSlotMachineGfxBuffer;
+ u8 i = 0;
+ const struct SpriteSheet *sheet = &gUnknown_083EDCDC;
+ const u8 *src = gUnknown_083EDCE4;
+ for (i = 0; i < 0x40; i++)
+ {
+ u8 j;
+ for (j = 0; j < 0x20; j++, dest++)
+ {
+ *dest = src[j];
+ }
+ }
+ LoadSpriteSheet(sheet);
+}
+
+static void sub_8106448(void) {
+ LZDecompressWram(gSlotMachine_Gfx, eSlotMachineGfxBuffer);
+
+ DmaCopyLarge16(3, eSlotMachineGfxBuffer, BG_VRAM, SLOTMACHINE_GFX_TILES * 32, 0x1000);
LoadPalette(gUnknown_08E95A18, 0, 160);
LoadPalette(gPalette_83EDE24, 208, 32);
}
-void sub_81064B8(void) {
+static void sub_81064B8(void) {
CpuCopy16(gUnknown_08E95AB8, BG_SCREEN_ADDR(29), 20 * 32 * 2);
LoadSlotMachineWheelOverlay();
}
@@ -123,7 +5105,7 @@ static void LoadSlotMachineWheelOverlay(void) {
}
}
-void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
+static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
u16 *vram = BG_SCREEN_ADDR(29);
vram[15 * 32 + arg0] = arg1;
@@ -132,7 +5114,8 @@ void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
vram[16 * 32 + 1 + arg0] = arg4;
}
-void sub_81065DC(void) {
+static void sub_81065DC(void)
+{
s16 y, x;
u16 *screen;
@@ -147,3 +5130,2699 @@ void sub_81065DC(void) {
}
}
}
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_811B1C4()
+{
+ asm(
+ " ldr r1, .__1_\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x2\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, .__1_ + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x2\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__2_:\n"
+ " .align 2, 0\n"
+ ".__1_:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B1EC()
+{
+ asm(
+ " ldr r2, .__3\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x1\n"
+ " orr r0, r0, r1\n"
+ " strb r0, [r2]\n"
+ " ldr r2, .__3 + 4\n"
+ " ldrb r0, [r2]\n"
+ " mov r1, #0x1\n"
+ " eor r0, r0, r1\n"
+ " neg r0, r0\n"
+ " lsr r0, r0, #0x1f\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__4:\n"
+ " .align 2, 0\n"
+ ".__3:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B210()
+{
+ asm(
+ " ldr r1, .__5\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x4\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, .__5 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x4\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__6:\n"
+ " .align 2, 0\n"
+ ".__5:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B238()
+{
+ asm(
+ " ldr r1, .__7\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x8\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, .__7 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x8\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__8:\n"
+ " .align 2, 0\n"
+ ".__7:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B260()
+{
+ asm(
+ " ldr r1, .__9\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x10\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, .__9 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x10\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__10:\n"
+ " .align 2, 0\n"
+ ".__9:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B288()
+{
+ asm(
+ " ldr r1, .__11\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x40\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, .__11 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x40\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__12:\n"
+ " .align 2, 0\n"
+ ".__11:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B2B0()
+{
+ asm(
+ " ldr r1, .__13\n"
+ " ldrb r0, [r1]\n"
+ " mov r3, #0x80\n"
+ " orr r0, r0, r3\n"
+ " strb r0, [r1]\n"
+ " ldr r2, .__13 + 4\n"
+ " ldrb r1, [r2]\n"
+ " mov r0, #0x80\n"
+ " eor r1, r1, r0\n"
+ " neg r0, r1\n"
+ " orr r0, r0, r1\n"
+ " asr r0, r0, #0x1f\n"
+ " and r0, r0, r3\n"
+ " strb r0, [r2]\n"
+ " bx lr\n"
+ ".__14:\n"
+ " .align 2, 0\n"
+ ".__13:\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B2D8()
+{
+ asm(
+ " ldr r0, .__15\n"
+ " ldrb r1, [r0]\n"
+ " mov r2, #0x20\n"
+ " orr r1, r1, r2\n"
+ " strb r1, [r0]\n"
+ " bx lr\n"
+ ".__16:\n"
+ " .align 2, 0\n"
+ ".__15:\n"
+ " .word unk_debug_bss_1_3\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B2E8()
+{
+ asm(
+ " push {lr}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r0, .__17\n"
+ " ldrb r1, [r0, #0x1]\n"
+ " add r1, r1, #0x1\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x1\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x6\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " add sp, sp, #0x4\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ ".__18:\n"
+ " .align 2, 0\n"
+ ".__17:\n"
+ " .word +0x2000000\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B310()
+{
+ asm(
+ " push {r4, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " ldr r0, .__21\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 4\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 8\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x5\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 12\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x7\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 16\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x9\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 20\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 24\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xd\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 28\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 32\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 36\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 40\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x3\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 44\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x5\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 48\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x7\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 52\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x9\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 56\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 60\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0xd\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 64\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 68\n"
+ " mov r1, #0xf\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__21 + 72\n"
+ " ldrb r0, [r0, #0x3]\n"
+ " cmp r0, #0\n"
+ " bne .__19 @cond_branch\n"
+ " ldr r0, .__21 + 76\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " bl Menu_PrintText\n"
+ " b .__20\n"
+ ".__22:\n"
+ " .align 2, 0\n"
+ ".__21:\n"
+ " .word Str_841B1C4\n"
+ " .word Str_841B1CB\n"
+ " .word Str_841B1D4\n"
+ " .word Str_841B1DB\n"
+ " .word Str_841B1E2\n"
+ " .word Str_841B1E8\n"
+ " .word Str_841B1F3\n"
+ " .word Str_841B202\n"
+ " .word Str_841B24C\n"
+ " .word Str_841B211\n"
+ " .word Str_841B219\n"
+ " .word Str_841B220\n"
+ " .word Str_841B227\n"
+ " .word Str_841B22E\n"
+ " .word Str_841B235\n"
+ " .word Str_841B23B\n"
+ " .word Str_841B23F\n"
+ " .word Str_841B243\n"
+ " .word +0x2000000\n"
+ " .word Str_841B246\n"
+ ".__19:\n"
+ " ldr r0, .__30\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x9\n"
+ " bl Menu_PrintText\n"
+ ".__20:\n"
+ " ldr r4, .__30 + 4\n"
+ " ldr r1, [r4, #0x68]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x3\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, [r4, #0x6c]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x5\n"
+ " bl Menu_PrintText\n"
+ " mov r0, #0x10\n"
+ " ldsh r1, [r4, r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0xa\n"
+ " mov r2, #0x7\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, [r4, #0x70]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x3\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, [r4, #0x74]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x5\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, [r4, #0x78]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x7\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, [r4, #0x7c]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x9\n"
+ " bl Menu_PrintText\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x80\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xb\n"
+ " bl Menu_PrintText\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x84\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xd\n"
+ " bl Menu_PrintText\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x88\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x8c\n"
+ " ldr r1, [r0]\n"
+ " mov r0, sp\n"
+ " mov r2, #0x2\n"
+ " mov r3, #0x4\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " mov r0, sp\n"
+ " mov r1, #0x14\n"
+ " mov r2, #0x11\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, .__30 + 8\n"
+ " ldrb r0, [r1]\n"
+ " cmp r0, #0\n"
+ " beq .__23 @cond_branch\n"
+ " mov r2, #0x0\n"
+ " cmp r0, #0x8\n"
+ " beq .__24 @cond_branch\n"
+ " cmp r0, #0x8\n"
+ " bgt .__25 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " beq .__26 @cond_branch\n"
+ " cmp r0, #0x2\n"
+ " bgt .__27 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq .__28 @cond_branch\n"
+ " b .__45\n"
+ ".__31:\n"
+ " .align 2, 0\n"
+ ".__30:\n"
+ " .word Str_841B249\n"
+ " .word +0x2000000\n"
+ " .word unk_debug_bss_1_0\n"
+ ".__27:\n"
+ " cmp r0, #0x4\n"
+ " beq .__32 @cond_branch\n"
+ " b .__45\n"
+ ".__25:\n"
+ " cmp r0, #0x40\n"
+ " beq .__34 @cond_branch\n"
+ " cmp r0, #0x40\n"
+ " bgt .__35 @cond_branch\n"
+ " cmp r0, #0x10\n"
+ " beq .__36 @cond_branch\n"
+ " b .__45\n"
+ ".__35:\n"
+ " cmp r0, #0x80\n"
+ " beq .__38 @cond_branch\n"
+ " b .__45\n"
+ ".__26:\n"
+ " mov r2, #0x3\n"
+ " b .__45\n"
+ ".__28:\n"
+ " mov r2, #0x5\n"
+ " b .__45\n"
+ ".__32:\n"
+ " mov r2, #0x7\n"
+ " b .__45\n"
+ ".__24:\n"
+ " mov r2, #0x9\n"
+ " b .__45\n"
+ ".__36:\n"
+ " mov r2, #0xb\n"
+ " b .__45\n"
+ ".__34:\n"
+ " mov r2, #0xd\n"
+ " b .__45\n"
+ ".__38:\n"
+ " mov r2, #0xf\n"
+ ".__45:\n"
+ " ldr r0, .__46\n"
+ " mov r1, #0x17\n"
+ " bl Menu_PrintText\n"
+ ".__23:\n"
+ " bl debug_sub_811B2E8\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ ".__47:\n"
+ " .align 2, 0\n"
+ ".__46:\n"
+ " .word Str_841B26D\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B5B4()
+{
+ asm(
+ " push {lr}\n"
+ " add r2, r0, #0\n"
+ " ldr r0, [r2]\n"
+ " add r0, r0, r1\n"
+ " str r0, [r2]\n"
+ " ldr r1, .__49\n"
+ " cmp r0, r1\n"
+ " ble .__48 @cond_branch\n"
+ " str r1, [r2]\n"
+ ".__48:\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ ".__50:\n"
+ " .align 2, 0\n"
+ ".__49:\n"
+ " .word 0x270f\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B5D0()
+{
+ asm(
+ " ldr r0, .__51\n"
+ " mov r1, #0x0\n"
+ " strb r1, [r0]\n"
+ " ldr r0, .__51 + 4\n"
+ " strb r1, [r0]\n"
+ " ldr r0, .__51 + 8\n"
+ " strb r1, [r0]\n"
+ " ldr r0, .__51 + 12\n"
+ " strb r1, [r0]\n"
+ " ldr r2, .__51 + 16\n"
+ " mov r0, #0x0\n"
+ " str r0, [r2, #0x68]\n"
+ " str r0, [r2, #0x6c]\n"
+ " str r0, [r2, #0x70]\n"
+ " str r0, [r2, #0x74]\n"
+ " str r0, [r2, #0x78]\n"
+ " str r0, [r2, #0x7c]\n"
+ " add r1, r2, #0\n"
+ " add r1, r1, #0x80\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " add r1, r1, #0x4\n"
+ " str r0, [r1]\n"
+ " bx lr\n"
+ ".__52:\n"
+ " .align 2, 0\n"
+ ".__51:\n"
+ " .word unk_debug_bss_1_0\n"
+ " .word unk_debug_bss_1_2\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word unk_debug_bss_1_4\n"
+ " .word +0x2000000\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B620()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, .__53\n"
+ " mov r1, #0x0\n"
+ " bl CreateTask\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ ".__54:\n"
+ " .align 2, 0\n"
+ ".__53:\n"
+ " .word debug_sub_811B654+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B634()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, .__57\n"
+ " bl FindTaskIdByFunc\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0xff\n"
+ " beq .__55 @cond_branch\n"
+ " mov r0, #0x0\n"
+ " b .__56\n"
+ ".__58:\n"
+ " .align 2, 0\n"
+ ".__57:\n"
+ " .word debug_sub_811B654+1\n"
+ ".__55:\n"
+ " mov r0, #0x1\n"
+ ".__56:\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B654()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " add sp, sp, #0xfffffff8\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " lsl r0, r6, #0x2\n"
+ " add r0, r0, r6\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, .__63\n"
+ " add r5, r0, r1\n"
+ " mov r0, #0x8\n"
+ " ldsh r1, [r5, r0]\n"
+ " cmp r1, #0x1\n"
+ " beq .__59 @cond_branch\n"
+ " cmp r1, #0x1\n"
+ " bgt .__60 @cond_branch\n"
+ " cmp r1, #0\n"
+ " beq .__61 @cond_branch\n"
+ " b .__116\n"
+ ".__64:\n"
+ " .align 2, 0\n"
+ ".__63:\n"
+ " .word gTasks\n"
+ ".__60:\n"
+ " cmp r1, #0x2\n"
+ " bne .__65 @cond_branch\n"
+ " b .__66\n"
+ ".__65:\n"
+ " cmp r1, #0x3\n"
+ " bne .__67 @cond_branch\n"
+ " b .__68\n"
+ ".__67:\n"
+ " b .__116\n"
+ ".__61:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x18\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " bl debug_sub_811B310\n"
+ " ldrh r0, [r5, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r5, #0x8]\n"
+ " b .__116\n"
+ ".__59:\n"
+ " ldr r7, .__76\n"
+ " ldrh r2, [r7, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq .__71 @cond_branch\n"
+ " b .__94\n"
+ ".__71:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r2\n"
+ " lsl r0, r0, #0x10\n"
+ " lsr r3, r0, #0x10\n"
+ " cmp r3, #0\n"
+ " beq .__73 @cond_branch\n"
+ " ldr r1, .__76 + 4\n"
+ " ldrb r0, [r1, #0x1]\n"
+ " sub r0, r0, #0x1\n"
+ " strb r0, [r1, #0x1]\n"
+ " lsl r0, r0, #0x18\n"
+ " cmp r0, #0\n"
+ " bge .__79 @cond_branch\n"
+ " mov r0, #0x5\n"
+ " strb r0, [r1, #0x1]\n"
+ " b .__79\n"
+ ".__77:\n"
+ " .align 2, 0\n"
+ ".__76:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ ".__73:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq .__78 @cond_branch\n"
+ " ldr r1, .__81\n"
+ " ldrb r0, [r1, #0x1]\n"
+ " add r0, r0, #0x1\n"
+ " strb r0, [r1, #0x1]\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r0, #0x5\n"
+ " bls .__79 @cond_branch\n"
+ " strb r3, [r1, #0x1]\n"
+ ".__79:\n"
+ " bl debug_sub_811B2E8\n"
+ " b .__116\n"
+ ".__82:\n"
+ " .align 2, 0\n"
+ ".__81:\n"
+ " .word +0x2000000\n"
+ ".__78:\n"
+ " and r1, r1, r2\n"
+ " lsl r0, r1, #0x10\n"
+ " lsr r4, r0, #0x10\n"
+ " cmp r4, #0\n"
+ " beq .__83 @cond_branch\n"
+ " mov r0, #0x3\n"
+ " strh r0, [r5, #0x8]\n"
+ " bl Menu_EraseScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0x9\n"
+ " mov r3, #0x5\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, .__85\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__85 + 4\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " bl Menu_PrintText\n"
+ " b .__116\n"
+ ".__86:\n"
+ " .align 2, 0\n"
+ ".__85:\n"
+ " .word Str_841B25C\n"
+ " .word Str_841B264\n"
+ ".__83:\n"
+ " mov r0, #0x4\n"
+ " and r0, r0, r2\n"
+ " cmp r0, #0\n"
+ " beq .__87 @cond_branch\n"
+ " ldr r0, .__91\n"
+ " strb r4, [r0]\n"
+ " ldr r0, .__91 + 4\n"
+ " strb r4, [r0]\n"
+ " bl Menu_EraseScreen\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x0\n"
+ " mov r2, #0xa\n"
+ " mov r3, #0x13\n"
+ " bl Menu_DrawStdWindowFrame\n"
+ " ldr r0, .__91 + 8\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x1\n"
+ " bl Menu_PrintText\n"
+ " ldr r3, .__91 + 12\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x3\n"
+ " mov r2, #0x8\n"
+ " bl Menu_PrintItems\n"
+ " str r4, [sp]\n"
+ " mov r0, #0x9\n"
+ " str r0, [sp, #0x4]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " mov r2, #0x3\n"
+ " mov r3, #0x8\n"
+ " bl InitMenu\n"
+ " ldrh r0, [r5, #0x8]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r5, #0x8]\n"
+ ".__87:\n"
+ " ldrh r1, [r7, #0x2e]\n"
+ " mov r0, #0x8\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " bne .__88 @cond_branch\n"
+ " b .__116\n"
+ ".__88:\n"
+ " ldr r1, .__91 + 16\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " b .__94\n"
+ ".__92:\n"
+ " .align 2, 0\n"
+ ".__91:\n"
+ " .word unk_debug_bss_1_2\n"
+ " .word unk_debug_bss_1_3\n"
+ " .word Str_841B254\n"
+ " .word _841B270\n"
+ " .word unk_debug_bss_1_4\n"
+ ".__66:\n"
+ " bl Menu_ProcessInput\n"
+ " lsl r0, r0, #0x18\n"
+ " asr r2, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " neg r0, r0\n"
+ " cmp r2, r0\n"
+ " beq .__116 @cond_branch\n"
+ " add r0, r0, #0x1\n"
+ " cmp r2, r0\n"
+ " beq .__94 @cond_branch\n"
+ " ldr r1, .__96\n"
+ " mov r0, #0x1\n"
+ " strb r0, [r1]\n"
+ " ldr r0, .__96 + 4\n"
+ " lsl r1, r2, #0x3\n"
+ " add r0, r0, #0x4\n"
+ " add r1, r1, r0\n"
+ " ldr r0, [r1]\n"
+ " bl _call_via_r0\n"
+ ".__94:\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r6, #0\n"
+ " bl DestroyTask\n"
+ " b .__116\n"
+ ".__97:\n"
+ " .align 2, 0\n"
+ ".__96:\n"
+ " .word unk_debug_bss_1_2\n"
+ " .word _841B270\n"
+ ".__68:\n"
+ " ldr r2, .__100\n"
+ " ldrh r1, [r2, #0x30]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__98 @cond_branch\n"
+ " ldr r2, .__100 + 4\n"
+ " ldrh r0, [r2, #0xc]\n"
+ " add r0, r0, #0x64\n"
+ " b .__99\n"
+ ".__101:\n"
+ " .align 2, 0\n"
+ ".__100:\n"
+ " .word gMain\n"
+ " .word +0x2000000\n"
+ ".__98:\n"
+ " mov r0, #0x40\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__102 @cond_branch\n"
+ " ldr r1, .__104\n"
+ " ldrh r0, [r1, #0xc]\n"
+ " sub r0, r0, #0x64\n"
+ " b .__103\n"
+ ".__105:\n"
+ " .align 2, 0\n"
+ ".__104:\n"
+ " .word +0x2000000\n"
+ ".__102:\n"
+ " mov r0, #0x20\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__106 @cond_branch\n"
+ " ldr r1, .__109\n"
+ " ldr r2, .__109 + 4\n"
+ " add r0, r2, #0\n"
+ " ldrh r2, [r1, #0xc]\n"
+ " add r0, r0, r2\n"
+ ".__103:\n"
+ " strh r0, [r1, #0xc]\n"
+ " lsl r0, r0, #0x10\n"
+ " cmp r0, #0\n"
+ " bgt .__116 @cond_branch\n"
+ " ldr r0, .__109 + 8\n"
+ " strh r0, [r1, #0xc]\n"
+ " b .__116\n"
+ ".__110:\n"
+ " .align 2, 0\n"
+ ".__109:\n"
+ " .word +0x2000000\n"
+ " .word 0xfffffc18\n"
+ " .word 0x270f\n"
+ ".__106:\n"
+ " mov r0, #0x10\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__111 @cond_branch\n"
+ " ldr r2, .__114\n"
+ " mov r1, #0xfa\n"
+ " lsl r1, r1, #0x2\n"
+ " add r0, r1, #0\n"
+ " ldrh r1, [r2, #0xc]\n"
+ " add r0, r0, r1\n"
+ ".__99:\n"
+ " strh r0, [r2, #0xc]\n"
+ " lsl r0, r0, #0x10\n"
+ " asr r0, r0, #0x10\n"
+ " ldr r1, .__114 + 4\n"
+ " cmp r0, r1\n"
+ " ble .__116 @cond_branch\n"
+ " strh r1, [r2, #0xc]\n"
+ " b .__116\n"
+ ".__115:\n"
+ " .align 2, 0\n"
+ ".__114:\n"
+ " .word +0x2000000\n"
+ " .word 0x270f\n"
+ ".__111:\n"
+ " ldrh r1, [r2, #0x2e]\n"
+ " mov r0, #0x2\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__116 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " add r0, r6, #0\n"
+ " bl DestroyTask\n"
+ ".__116:\n"
+ " add sp, sp, #0x8\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_811B894()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " add sp, sp, #0xfffffffc\n"
+ " ldr r1, .__122\n"
+ " ldrh r2, [r1, #0x8]\n"
+ " mov r0, #0xc0\n"
+ " lsl r0, r0, #0x1\n"
+ " and r0, r0, r2\n"
+ " add r4, r1, #0\n"
+ " cmp r0, #0\n"
+ " beq .__117 @cond_branch\n"
+ " add r1, r1, #0x90\n"
+ " ldr r0, [r1]\n"
+ " add r0, r0, #0x1\n"
+ " str r0, [r1]\n"
+ " ldr r2, .__122 + 4\n"
+ " cmp r0, r2\n"
+ " ble .__118 @cond_branch\n"
+ " str r2, [r1]\n"
+ ".__118:\n"
+ " add r0, r4, #0\n"
+ " add r0, r0, #0x88\n"
+ " ldr r1, [r1]\n"
+ " ldr r0, [r0]\n"
+ " cmp r1, r0\n"
+ " beq .__119 @cond_branch\n"
+ " ldr r0, .__122 + 8\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, .__122 + 12\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ ".__119:\n"
+ " ldrb r1, [r4, #0x4]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " cmp r4, #0\n"
+ " bne .__126 @cond_branch\n"
+ " ldr r0, .__122 + 16\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x11\n"
+ " b .__121\n"
+ ".__123:\n"
+ " .align 2, 0\n"
+ ".__122:\n"
+ " .word +0x2000000\n"
+ " .word 0x270f\n"
+ " .word Str_841B2B0\n"
+ " .word unk_debug_bss_1_4\n"
+ " .word Str_841B2D3\n"
+ ".__117:\n"
+ " lsl r0, r2, #0x10\n"
+ " cmp r0, #0\n"
+ " beq .__127 @cond_branch\n"
+ " ldrb r1, [r4, #0x4]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__126 @cond_branch\n"
+ " mov r4, #0x3\n"
+ " and r4, r4, r2\n"
+ " cmp r4, #0\n"
+ " bne .__126 @cond_branch\n"
+ " ldr r0, .__163\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x2\n"
+ ".__121:\n"
+ " bl Menu_PrintText\n"
+ " ldr r0, .__163 + 4\n"
+ " strb r4, [r0]\n"
+ ".__126:\n"
+ " ldr r0, .__163 + 8\n"
+ " ldrh r1, [r0, #0x8]\n"
+ " add r4, r0, #0\n"
+ " cmp r1, #0\n"
+ " beq .__127 @cond_branch\n"
+ " b .__162\n"
+ ".__127:\n"
+ " mov r1, #0x12\n"
+ " ldsh r0, [r4, r1]\n"
+ " cmp r0, #0x3\n"
+ " beq .__129 @cond_branch\n"
+ " b .__162\n"
+ ".__129:\n"
+ " ldrb r1, [r4, #0x4]\n"
+ " mov r0, #0x80\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq .__131 @cond_branch\n"
+ " b .__162\n"
+ ".__131:\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x1\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r7, r0, #0x18\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x2\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " str r0, [sp]\n"
+ " mov r0, #0x0\n"
+ " mov r1, #0x3\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r6, r0, #0x18\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x1\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r9, r0\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x2\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " mov r0, #0x1\n"
+ " mov r1, #0x3\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov sl, r0\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x1\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r5, r0, #0x18\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x2\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " mov r8, r0\n"
+ " mov r0, #0x2\n"
+ " mov r1, #0x3\n"
+ " bl GetTagOfReelSymbolOnScreenAtPos\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r0, r0, #0x18\n"
+ " cmp r7, #0\n"
+ " bne .__134 @cond_branch\n"
+ " mov r1, r9\n"
+ " cmp r1, #0x1\n"
+ " bne .__134 @cond_branch\n"
+ " cmp r5, #0\n"
+ " beq .__159 @cond_branch\n"
+ ".__134:\n"
+ " ldr r1, [sp]\n"
+ " cmp r1, #0\n"
+ " bne .__137 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne .__137 @cond_branch\n"
+ " mov r1, r8\n"
+ " cmp r1, #0\n"
+ " beq .__159 @cond_branch\n"
+ ".__137:\n"
+ " cmp r6, #0\n"
+ " bne .__140 @cond_branch\n"
+ " mov r1, sl\n"
+ " cmp r1, #0x1\n"
+ " bne .__140 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq .__159 @cond_branch\n"
+ ".__140:\n"
+ " cmp r7, #0\n"
+ " bne .__143 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne .__143 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq .__159 @cond_branch\n"
+ ".__143:\n"
+ " cmp r6, #0\n"
+ " bne .__146 @cond_branch\n"
+ " cmp r4, #0x1\n"
+ " bne .__146 @cond_branch\n"
+ " cmp r5, #0\n"
+ " beq .__159 @cond_branch\n"
+ ".__146:\n"
+ " cmp r7, #0x1\n"
+ " bne .__149 @cond_branch\n"
+ " mov r1, r9\n"
+ " cmp r1, #0\n"
+ " bne .__149 @cond_branch\n"
+ " cmp r5, #0x1\n"
+ " beq .__159 @cond_branch\n"
+ ".__149:\n"
+ " ldr r1, [sp]\n"
+ " cmp r1, #0x1\n"
+ " bne .__152 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne .__152 @cond_branch\n"
+ " mov r1, r8\n"
+ " cmp r1, #0x1\n"
+ " beq .__159 @cond_branch\n"
+ ".__152:\n"
+ " cmp r6, #0x1\n"
+ " bne .__155 @cond_branch\n"
+ " mov r1, sl\n"
+ " cmp r1, #0\n"
+ " bne .__155 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq .__159 @cond_branch\n"
+ ".__155:\n"
+ " cmp r7, #0x1\n"
+ " bne .__158 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne .__158 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " beq .__159 @cond_branch\n"
+ ".__158:\n"
+ " cmp r6, #0x1\n"
+ " bne .__162 @cond_branch\n"
+ " cmp r4, #0\n"
+ " bne .__162 @cond_branch\n"
+ " cmp r5, #0x1\n"
+ " bne .__162 @cond_branch\n"
+ ".__159:\n"
+ " ldr r0, .__163 + 12\n"
+ " mov r1, #0x4\n"
+ " mov r2, #0x0\n"
+ " bl Menu_PrintText\n"
+ " ldr r1, .__163 + 4\n"
+ " mov r0, #0x0\n"
+ " strb r0, [r1]\n"
+ ".__162:\n"
+ " add sp, sp, #0x4\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ ".__164:\n"
+ " .align 2, 0\n"
+ ".__163:\n"
+ " .word Str_841B2E4\n"
+ " .word unk_debug_bss_1_4\n"
+ " .word +0x2000000\n"
+ " .word Str_841B2BF\n"
+ "\n"
+ );
+}
+#endif
+
+static const u8 sReelSymbols[][21] =
+{
+ {
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_REPLAY
+ }, {
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_CHERRY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_CHERRY
+ }, {
+ SLOT_MACHINE_TAG_7_RED,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_7_BLUE,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_AZURILL,
+ SLOT_MACHINE_TAG_POWER,
+ SLOT_MACHINE_TAG_REPLAY,
+ SLOT_MACHINE_TAG_LOTAD,
+ SLOT_MACHINE_TAG_CHERRY
+ }
+};
+
+static const u8 gUnknown_083ECCF1[] = {
+ 1, 0, 5, 4, 3, 2
+};
+
+static const s16 gUnknown_083ECCF8[][2] = {
+ {0, 6},
+ {0, 10},
+ {0, 2}
+};
+
+static const u8 gUnknown_083ECD04[][3] = {
+ {1, 1, 12},
+ {1, 1, 14},
+ {2, 2, 14},
+ {2, 2, 14},
+ {2, 3, 16},
+ {3, 3, 16}
+};
+
+static const u8 gUnknown_083ECD16[][6] = {
+ {25, 25, 30, 40, 40, 50},
+ {25, 25, 30, 30, 35, 35},
+ {25, 25, 30, 25, 25, 30}
+};
+
+static const u8 gUnknown_083ECD28[][6] = {
+ {20, 25, 25, 20, 25, 25},
+ {12, 15, 15, 18, 19, 22},
+ {25, 25, 25, 30, 30, 40},
+ {25, 25, 20, 20, 15, 15},
+ {40, 40, 35, 35, 40, 40}
+};
+
+static const u8 gUnknown_083ECD46[][17] = {
+ {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5},
+ { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5},
+ { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40},
+ { 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 45, 45, 45, 100},
+ { 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 100},
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6}
+};
+
+static const u8 gUnknown_083ECDAC[][17] = {
+ { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5},
+ { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6},
+ { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35},
+ { 2, 2, 2, 3, 3, 3, 3, 30, 30, 30, 30, 30, 30, 100, 100, 100, 50},
+ { 1, 1, 1, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 40, 40, 40, 100},
+ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60}
+};
+
+static const u16 gUnknown_083ECE12[] = {
+ 0x80, 0xaf, 0xc8, 0xe1, 0x100
+};
+
+static const u16 gUnknown_083ECE1C[][2] = {
+ {10, 5},
+ {10, 10},
+ {10, 15},
+ {10, 25},
+ {10, 35}
+};
+
+static const u16 gUnknown_083ECE30[] = {
+ 0, 5, 10, 15, 20
+};
+
+
+static const u8 gUnknown_083ECE3A[] = {
+ 6, 4, 3, 2, 5, 0, 0, 0
+};
+
+static const u16 gUnknown_083ECE42[] = {
+ 0x80, 0x20, 0x40
+};
+
+static const u16 gUnknown_083ECE48[] = {
+ 0x10, 0x08, 0x04, 0x02, 0x01
+};
+
+static const u8 sSym2Match[] = {
+ SLOT_MACHINE_MATCHED_777_RED,
+ SLOT_MACHINE_MATCHED_777_BLUE,
+ SLOT_MACHINE_MATCHED_AZURILL,
+ SLOT_MACHINE_MATCHED_LOTAD,
+ SLOT_MACHINE_MATCHED_1CHERRY,
+ SLOT_MACHINE_MATCHED_POWER,
+ SLOT_MACHINE_MATCHED_REPLAY
+};
+
+static const u16 sSlotMatchFlags[] = {
+ 1 << SLOT_MACHINE_MATCHED_1CHERRY,
+ 1 << SLOT_MACHINE_MATCHED_2CHERRY,
+ 1 << SLOT_MACHINE_MATCHED_REPLAY,
+ 1 << SLOT_MACHINE_MATCHED_LOTAD,
+ 1 << SLOT_MACHINE_MATCHED_AZURILL,
+ 1 << SLOT_MACHINE_MATCHED_POWER,
+ 1 << SLOT_MACHINE_MATCHED_777_MIXED,
+ 1 << SLOT_MACHINE_MATCHED_777_RED,
+ 1 << SLOT_MACHINE_MATCHED_777_BLUE
+};
+
+static const u16 sSlotPayouts[] = {
+ 2, 4, 0, 6, 12, 3, 90, 300, 300
+};
+
+static const s16 gUnknown_083ECE7E[][2] = {
+ { 0xd0, 0x38},
+ { 0xb8, 0x00},
+ { 0xc8, 0x08},
+ { 0xd8, 0x10},
+ { 0xe8, 0x18},
+ { 0xd0, 0x48},
+ { 0xd0, 0x08},
+ { 0xd0, 0x40},
+ { 0xd0, 0x38},
+ { 0xc0, 0x58},
+ { 0xe0, 0x58},
+ { 0xc0, 0x78},
+ { 0xe0, 0x78},
+ { 0x90, 0x38},
+ {0x110, 0x58},
+ { 0xa8, 0x70},
+ { 0xd0, 0x54},
+ { 0xd0, 0x70},
+ { 0xbc, 0x34},
+ { 0xd0, 0x34},
+ { 0xe4, 0x34},
+ { 0xb8, 0x48},
+ { 0xc4, 0x48},
+ { 0xd0, 0x48},
+ { 0xdc, 0x48},
+ { 0xe8, 0x48},
+ { 0xbc, 0x34},
+ { 0xd0, 0x34},
+ { 0xe4, 0x34},
+ { 0xb8, 0x48},
+ { 0xc4, 0x48},
+ { 0xd0, 0x48},
+ { 0xdc, 0x48},
+ { 0xe8, 0x48},
+ { 0x00, 0x00}
+};
+
+static const SpriteCallback gUnknown_083ECF0C[] = {
+ sub_8105C64,
+ sub_8105F54,
+ sub_8105F54,
+ sub_8105F54,
+ sub_8105F54,
+ sub_8105F9C,
+ sub_8105EB4,
+ sub_8105C64,
+ sub_8105C64,
+ sub_8105C6C,
+ sub_8105CF0,
+ sub_8105D08,
+ sub_8105D20,
+ sub_8105D3C,
+ sub_8105DA4,
+ sub_8105E08,
+ sub_8105C64,
+ sub_8106058,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81060FC,
+ sub_81061C8,
+ sub_81061C8,
+ sub_81061C8,
+ sub_81061C8,
+ sub_81061C8,
+ sub_81061C8,
+ sub_81061C8,
+ sub_81061C8,
+ sub_8106230
+};
+
+static const struct UnkStruct1 Unknown_83ECF98[] = {
+ {25, 34, 0},
+ {2, 0, 0},
+ {9, 16, 0},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 Unknown_83ECFA8[] = {
+ {10, 1, 0},
+ {11, 2, 0},
+ {12, 3, 0},
+ {13, 4, 0},
+ {5, 5, 0},
+ {8, 6, 0},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 Unknown_83ECFC4[] = {
+ {3, 7, 0},
+ {8, 17, 0},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 Unknown_83ECFD0[] = {
+ {4, 8, 0},
+ {6, 9, 0},
+ {6, 10, 1},
+ {6, 11, 2},
+ {6, 12, 3},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 Unknown_83ECFE8[] = {
+ {0, 13, 0},
+ {1, 14, 0},
+ {7, 15, 0},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 Unknown_83ECFF8[] = {
+ {19, 26, 0},
+ {20, 27, 1},
+ {21, 28, 2},
+ {14, 29, 3},
+ {15, 30, 4},
+ {16, 31, 5},
+ {17, 32, 6},
+ {18, 33, 7},
+ {8, 17, 0},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 Unknown_83ED020[] = {
+ {22, 18, 0},
+ {23, 19, 1},
+ {24, 20, 2},
+ {14, 21, 3},
+ {15, 22, 4},
+ {16, 23, 5},
+ {17, 24, 6},
+ {18, 25, 7},
+ {8, 17, 0},
+ {255, 0, 0}
+};
+
+static const struct UnkStruct1 *const gUnknown_083ED048[] = {
+ Unknown_83ECF98,
+ Unknown_83ECFA8,
+ Unknown_83ECFC4,
+ Unknown_83ECFD0,
+ Unknown_83ECFE8,
+ Unknown_83ED020,
+ Unknown_83ECFF8
+};
+
+static void (*const gUnknown_083ED064[])(void) = {
+ sub_810639C,
+ sub_8106364,
+ sub_8106370,
+ nullsub_70,
+ nullsub_70,
+ sub_8106370,
+ sub_8106370
+};
+
+
+static const struct OamData gOamData_83ED080 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED088 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_V_RECTANGLE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED090 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED098 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_V_RECTANGLE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED0A0 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED0A8 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_V_RECTANGLE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED0B0 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_H_RECTANGLE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct OamData gOamData_83ED0B8 = {
+ .y = 0x0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .mosaic = FALSE,
+ .bpp = ST_OAM_4BPP,
+ .shape = ST_OAM_SQUARE,
+ .x = 0x0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0x0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED0C0[] = {
+ {eSlotMachineReelTimeGfxBuffer + 0x0000, 0x800},
+ {eSlotMachineReelTimeGfxBuffer + 0x0800, 0x800},
+ {eSlotMachineReelTimeGfxBuffer + 0x1000, 0x800},
+ {eSlotMachineReelTimeGfxBuffer + 0x1800, 0x800},
+ {eSlotMachineReelTimeGfxBuffer + 0x2000, 0x800}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED0E8[] = {
+ {eSlotMachineReelTimeGfxBuffer + 0x2800, 0x300}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED0F0[] = {
+ {eSlotMachineReelTimeGfxBuffer + 0x2B00, 0x500}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED0F8[] = {
+ {eSlotMachineReelTimeGfxBuffer + 0x3000, 0x600}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED100[] = {
+ {gSpriteImage_8E988E8, 0x80},
+ {gSpriteImage_8E98968, 0x80},
+ {gSpriteImage_8E989E8, 0x80},
+ {gSpriteImage_8E98A68, 0x80},
+ {gSpriteImage_8E98AE8, 0x80},
+ {gSpriteImage_8E98B68, 0x80}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED130[] = {
+ {gSpriteImage_8E991E8, 0x200}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED138[] = {
+ {gSpriteImage_8E99808, 0x40}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED140[] = {
+ {gSpriteImage_8E98BE8, 0x100},
+ {gSpriteImage_8E98CE8, 0x100}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED150[] = {
+ {gSpriteImage_8E993E8, 0x400}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED158[] = {
+ {gSpriteImage_8E98DE8, 0x200},
+ {gSpriteImage_8E98FE8, 0x200}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED168[] = {
+ {gSpriteImage_8E98848, 0x20}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED170[] = {
+ {gSpriteImage_8E98868, 0x80}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED178[] = {
+ {eSlotMachineGfxBuffer + 0x0000, 0x600}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED180[] = {
+ {eSlotMachineGfxBuffer + 0x0600, 0x200}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED188[] = {
+ {eSlotMachineGfxBuffer + 0x0800, 0x200}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED190[] = {
+ {eSlotMachineGfxBuffer + 0x0A00, 0x200}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED198[] = {
+ {eSlotMachineGfxBuffer + 0x0C00, 0x300}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1A0[] = {
+ {eSlotMachineGfxBuffer + 0x1000, 0x400}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1A8[] = {
+ {eSlotMachineGfxBuffer + 0x1400, 0x200}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1B0[] = {
+ {eSlotMachineGfxBuffer + 0x1600, 0x300}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1B8[] = {
+ {eSlotMachineGfxBuffer + 0x1900, 0x300}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1C0[] = {
+ {eSlotMachineGfxBuffer + 0x1C00, 0x200},
+ {eSlotMachineGfxBuffer + 0x1E00, 0x200},
+ {eSlotMachineGfxBuffer + 0x1E00, 0x200} // is this a typo?
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1D8[] = {
+ {eSlotMachineGfxBuffer + 0x2000, 0x280}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED1E0[] = {
+ {eSlotMachineGfxBuffer + 0x2280, 0x80},
+ {eSlotMachineGfxBuffer + 0x2300, 0x80},
+ {eSlotMachineGfxBuffer + 0x2380, 0x80},
+ {eSlotMachineGfxBuffer + 0x2400, 0x80},
+ {eSlotMachineGfxBuffer + 0x2480, 0x80}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED208[] = {
+ {eSlotMachineGfxBuffer + 0x2600, 0x480},
+ {eSlotMachineGfxBuffer + 0x2A80, 0x480}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED218[] = {
+ {eSlotMachineGfxBuffer + 0x2F00, 0x180},
+ {eSlotMachineGfxBuffer + 0x3080, 0x180}
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83ED228[] = {
+ {gSpriteImage_8E98828, 0x20}
+};
+
+static const union AnimCmd gSpriteAnim_83ED230[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED238[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED240[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED248[] = {
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED254[] = {
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED260[] = {
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED26C[] = {
+ ANIMCMD_FRAME(2, 32),
+ ANIMCMD_FRAME(3, 32),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED278[] = {
+ ANIMCMD_FRAME(4, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED280[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED288[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED290[] = {
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED298[] = {
+ ANIMCMD_FRAME(3, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED2A0[] = {
+ ANIMCMD_FRAME(4, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED2A8[] = {
+ ANIMCMD_FRAME(5, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED2B0[] = {
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED2BC[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED2C8[] = {
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED2D4[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED2DC[] = {
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED2E8[] = {
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_FRAME(1, 16),
+ ANIMCMD_FRAME(0, 16),
+ ANIMCMD_FRAME(1, 16, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_83ED2FC[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED304[] = {
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED30C[] = {
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED314[] = {
+ ANIMCMD_FRAME(2, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED31C[] = {
+ ANIMCMD_FRAME(3, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_83ED324[] = {
+ ANIMCMD_FRAME(4, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED32C[] = {
+ gSpriteAnim_83ED230
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED330[] = {
+ gSpriteAnim_83ED238
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED334[] = {
+ gSpriteAnim_83ED240,
+ gSpriteAnim_83ED248,
+ gSpriteAnim_83ED254,
+ gSpriteAnim_83ED260,
+ gSpriteAnim_83ED26C,
+ gSpriteAnim_83ED278
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED34C[] = {
+ gSpriteAnim_83ED280,
+ gSpriteAnim_83ED288,
+ gSpriteAnim_83ED290,
+ gSpriteAnim_83ED298,
+ gSpriteAnim_83ED2A0,
+ gSpriteAnim_83ED2A8
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED364[] = {
+ gSpriteAnim_83ED2B0
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED368[] = {
+ gSpriteAnim_83ED2BC
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED36C[] = {
+ gSpriteAnim_83ED2C8,
+ gSpriteAnim_83ED2D4
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED374[] = {
+ gSpriteAnim_83ED2DC
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED378[] = {
+ gSpriteAnim_83ED2E8,
+ gSpriteAnim_83ED2FC
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83ED380[] = {
+ gSpriteAnim_83ED304,
+ gSpriteAnim_83ED30C,
+ gSpriteAnim_83ED314,
+ gSpriteAnim_83ED31C,
+ gSpriteAnim_83ED324
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_83ED394[] = {
+ AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
+ AFFINEANIMCMD_LOOP(0),
+ AFFINEANIMCMD_FRAME(0x1, 0x1, 0, 1),
+ AFFINEANIMCMD_LOOP(255),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED3BC[] = {
+ gSpriteAffineAnim_83ED394
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_83ED3C0[] = {
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 8, 32),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 6, 32),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 4, 16),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -12, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, -12, 4),
+ AFFINEANIMCMD_FRAME(0x0, 0x0, 12, 2),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_83ED410[] = {
+ gSpriteAffineAnim_83ED3C0
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED414 = {
+ 0, 0, &gOamData_83ED0A0, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_8104F18
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED42C = {
+ 7, 4, &gOamData_83ED088, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, sub_810506C
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED444 = {
+ 17, 0, &gOamData_83ED0B8, gSpriteAnimTable_83ED32C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED45C = {
+ 0xFFFF, 1, &gOamData_83ED0B8, gSpriteAnimTable_83ED334, gSpriteImageTable_83ED0C0, gDummySpriteAffineAnimTable, sub_8105170
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED474 = {
+ 0xFFFF, 2, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0E8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED48C = {
+ 0xFFFF, 3, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4A4 = {
+ 0xFFFF, 3, &gOamData_83ED088, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED0F8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4BC = {
+ 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED34C, gSpriteImageTable_83ED100, gDummySpriteAffineAnimTable, sub_810535C
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4D4 = {
+ 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED130, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED4EC = {
+ 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED138, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED504 = {
+ 0xFFFF, 4, &gOamData_83ED098, gSpriteAnimTable_83ED364, gSpriteImageTable_83ED140, gDummySpriteAffineAnimTable, sub_810562C
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED51C = {
+ 0xFFFF, 7, &gOamData_83ED0A8, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED150, gDummySpriteAffineAnimTable, sub_8105784
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED534 = {
+ 0xFFFF, 5, &gOamData_83ED0A0, gSpriteAnimTable_83ED368, gSpriteImageTable_83ED158, gDummySpriteAffineAnimTable, sub_8105894
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED54C = {
+ 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED330, gSpriteImageTable_83ED168, gDummySpriteAffineAnimTable, sub_810594C
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED564 = {
+ 0xFFFF, 4, &gOamData_83ED090, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED170, gSpriteAffineAnimTable_83ED3BC, sub_8105A38
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED57C = {
+ 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED178, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED594 = {
+ 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED180, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED5AC = {
+ 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED188, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED5C4 = {
+ 18, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED190, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED5DC = {
+ 0xFFFF, 6, &gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED198, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED5F4 = {
+ 0xFFFF, 6, &gOamData_83ED0B0, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED60C = {
+ 19, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1A8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED624 = {
+ 20, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED63C = {
+ 21, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1B8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED654 = {
+ 0xFFFF, 6, &gOamData_83ED0A0, gSpriteAnimTable_83ED36C, gSpriteImageTable_83ED1C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED66C = {
+ 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED1D8, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED684 = {
+ 0xFFFF, 6, &gOamData_83ED090, gSpriteAnimTable_83ED380, gSpriteImageTable_83ED1E0, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED69C = {
+ 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED378, gSpriteImageTable_83ED208, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED6B4 = {
+ 0xFFFF, 6, &gOamData_83ED080, gSpriteAnimTable_83ED374, gSpriteImageTable_83ED218, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83ED6CC = {
+ 0xFFFF, 4, &gOamData_83ED080, gSpriteAnimTable_83ED32C, gSpriteImageTable_83ED228, gSpriteAffineAnimTable_83ED410, sub_8105B70
+};
+
+static const struct Subsprite gSubspriteTable_83ED6E4[] = {
+ {-64, -64, ST_OAM_SQUARE, 3, 0x0, 3},
+ {0, -64, ST_OAM_SQUARE, 3, 0x0, 3},
+ {-64, 0, ST_OAM_SQUARE, 3, 0x0, 3},
+ {0, 0, ST_OAM_SQUARE, 3, 0x0, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED704[] = {
+ {4, gSubspriteTable_83ED6E4}
+};
+
+static const struct Subsprite gSubspriteTable_83ED70C[] = {
+ {-32, -12, ST_OAM_H_RECTANGLE, 1, 0x0, 1},
+ {0, -12, ST_OAM_H_RECTANGLE, 1, 0x4, 1},
+ {-32, -4, ST_OAM_H_RECTANGLE, 1, 0x8, 1},
+ {0, -4, ST_OAM_H_RECTANGLE, 1, 0xc, 1},
+ {-32, 4, ST_OAM_H_RECTANGLE, 1, 0x10, 1},
+ {0, 4, ST_OAM_H_RECTANGLE, 1, 0x14, 1}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED73C[] = {
+ {6, gSubspriteTable_83ED70C}
+};
+
+static const struct Subsprite gSubspriteTable_83ED744[] = {
+ {-32, -20, ST_OAM_H_RECTANGLE, 3, 0x0, 1},
+ {-32, 12, ST_OAM_H_RECTANGLE, 1, 0x20, 1},
+ {0, 12, ST_OAM_H_RECTANGLE, 1, 0x24, 1}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED75C[] = {
+ {3, gSubspriteTable_83ED744}
+};
+
+static const struct Subsprite gSubspriteTable_83ED764[] = {
+ {-32, -24, ST_OAM_H_RECTANGLE, 3, 0x0, 1},
+ {-32, 8, ST_OAM_H_RECTANGLE, 1, 0x20, 1},
+ {0, 8, ST_OAM_H_RECTANGLE, 1, 0x24, 1},
+ {-32, 16, ST_OAM_H_RECTANGLE, 1, 0x28, 1},
+ {0, 16, ST_OAM_H_RECTANGLE, 1, 0x2c, 1}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED78C[] = {
+ {5, gSubspriteTable_83ED764}
+};
+
+static const struct Subsprite gSubspriteTable_83ED794[] = {
+ {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 1},
+ {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 1},
+ {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 1},
+ {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 1}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED7B4[] = {
+ {4, gSubspriteTable_83ED794}
+};
+
+static const struct Subsprite gSubspriteTable_83ED7BC[] = {
+ {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 1},
+ {-8, -4, ST_OAM_H_RECTANGLE, 0, 0x0, 1},
+ {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x0, 1}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED7D4[] = {
+ {3, gSubspriteTable_83ED7BC}
+};
+
+static const struct Subsprite gSubspriteTable_83ED7DC[] = {
+ {-32, -24, ST_OAM_H_RECTANGLE, 3, 0x0, 3},
+ {-32, 8, ST_OAM_H_RECTANGLE, 1, 0x20, 3},
+ {0, 8, ST_OAM_H_RECTANGLE, 1, 0x24, 3},
+ {-32, 16, ST_OAM_H_RECTANGLE, 1, 0x28, 3},
+ {0, 16, ST_OAM_H_RECTANGLE, 1, 0x2c, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED804[] = {
+ {5, gSubspriteTable_83ED7DC}
+};
+
+static const struct Subsprite gSubspriteTable_83ED80C[] = {
+ {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3},
+ {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3},
+ {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3},
+ {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED82C[] = {
+ {4, gSubspriteTable_83ED80C}
+};
+
+static const struct Subsprite gSubspriteTable_83ED834[] = {
+ {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3},
+ {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3},
+ {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3},
+ {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED854[] = {
+ {4, gSubspriteTable_83ED834}
+};
+
+static const struct Subsprite gSubspriteTable_83ED85C[] = {
+ {-32, -8, ST_OAM_H_RECTANGLE, 1, 0x0, 3},
+ {0, -8, ST_OAM_H_RECTANGLE, 1, 0x4, 3},
+ {-32, 0, ST_OAM_H_RECTANGLE, 1, 0x8, 3},
+ {0, 0, ST_OAM_H_RECTANGLE, 1, 0xc, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED87C[] = {
+ {4, gSubspriteTable_83ED85C}
+};
+
+static const struct Subsprite gSubspriteTable_83ED884[] = {
+ {-32, -12, ST_OAM_H_RECTANGLE, 1, 0x0, 3},
+ {0, -12, ST_OAM_H_RECTANGLE, 1, 0x4, 3},
+ {-32, -4, ST_OAM_H_RECTANGLE, 1, 0x8, 3},
+ {0, -4, ST_OAM_H_RECTANGLE, 1, 0xc, 3},
+ {-32, 4, ST_OAM_H_RECTANGLE, 1, 0x10, 3},
+ {0, 4, ST_OAM_H_RECTANGLE, 1, 0x14, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED8B4[] = {
+ {6, gSubspriteTable_83ED884}
+};
+
+static const struct Subsprite gSubspriteTable_83ED8BC[] = {
+ {-16, -16, ST_OAM_SQUARE, 2, 0x0, 3}
+};
+
+static const struct Subsprite gSubspriteTable_83ED8C4[] = {
+ {-8, -8, ST_OAM_SQUARE, 1, 0x10, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED8CC[] = {
+ {1, gSubspriteTable_83ED8BC},
+ {1, gSubspriteTable_83ED8C4}
+};
+
+static const struct Subsprite gSubspriteTable_83ED8DC[] = {
+ {-24, -24, ST_OAM_H_RECTANGLE, 1, 0x0, 3},
+ {8, -24, ST_OAM_H_RECTANGLE, 0, 0x4, 3},
+ {-24, -16, ST_OAM_H_RECTANGLE, 1, 0x6, 3},
+ {8, -16, ST_OAM_H_RECTANGLE, 0, 0xa, 3},
+ {-24, -8, ST_OAM_H_RECTANGLE, 1, 0xc, 3},
+ {8, -8, ST_OAM_H_RECTANGLE, 0, 0x10, 3},
+ {-24, 0, ST_OAM_H_RECTANGLE, 1, 0x12, 3},
+ {8, 0, ST_OAM_H_RECTANGLE, 0, 0x16, 3},
+ {-24, 8, ST_OAM_H_RECTANGLE, 1, 0x18, 3},
+ {8, 8, ST_OAM_H_RECTANGLE, 0, 0x1c, 3},
+ {-24, 16, ST_OAM_H_RECTANGLE, 1, 0x1e, 3},
+ {8, 16, ST_OAM_H_RECTANGLE, 0, 0x22, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED93C[] = {
+ 12, gSubspriteTable_83ED8DC
+};
+
+static const struct Subsprite gSubspriteTable_83ED944[] = {
+ {-16, -12, ST_OAM_H_RECTANGLE, 2, 0x0, 3},
+ {-16, 4, ST_OAM_H_RECTANGLE, 0, 0x8, 3},
+ {0, 4, ST_OAM_H_RECTANGLE, 0, 0xa, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED95C[] = {
+ {3, gSubspriteTable_83ED944}
+};
+
+static const struct Subsprite gSubspriteTable_83ED964[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x0, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0x8, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED974[] = {
+ {2, gSubspriteTable_83ED964}
+};
+
+static const struct Subsprite gSubspriteTable_83ED97C[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x2, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xa, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED98C[] = {
+ {2, gSubspriteTable_83ED97C}
+};
+
+static const struct Subsprite gSubspriteTable_83ED994[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x4, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xc, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED9A4[] = {
+ {2, gSubspriteTable_83ED994}
+};
+
+static const struct Subsprite gSubspriteTable_83ED9AC[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x6, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xe, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED9BC[] = {
+ {2, gSubspriteTable_83ED9AC}
+};
+
+static const struct Subsprite gSubspriteTable_83ED9C4[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x0, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0x8, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED9D4[] = {
+ {2, gSubspriteTable_83ED9C4}
+};
+
+static const struct Subsprite gSubspriteTable_83ED9DC[] = {
+ {-4, -8, ST_OAM_SQUARE, 0, 0x2, 3},
+ {-4, 0, ST_OAM_SQUARE, 0, 0xa, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83ED9EC[] = {
+ {2, gSubspriteTable_83ED9DC}
+};
+
+static const struct Subsprite gSubspriteTable_83ED9F4[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x3, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xb, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDA04[] = {
+ {2, gSubspriteTable_83ED9F4}
+};
+
+static const struct Subsprite gSubspriteTable_83EDA0C[] = {
+ {-4, -8, ST_OAM_SQUARE, 0, 0x5, 3},
+ {-4, 0, ST_OAM_SQUARE, 0, 0xd, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDA1C[] = {
+ {2, gSubspriteTable_83EDA0C}
+};
+
+static const struct Subsprite gSubspriteTable_83EDA24[] = {
+ {-8, -8, ST_OAM_H_RECTANGLE, 0, 0x6, 3},
+ {-8, 0, ST_OAM_H_RECTANGLE, 0, 0xe, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDA34[] = {
+ {2, gSubspriteTable_83EDA24}
+};
+
+static const struct Subsprite gSubspriteTable_83EDA3C[] = {
+ {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 3},
+ {4, -12, ST_OAM_SQUARE, 0, 0x2, 3},
+ {-12, -4, ST_OAM_H_RECTANGLE, 0, 0x8, 3},
+ {4, -4, ST_OAM_SQUARE, 0, 0xa, 3},
+ {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x10, 3},
+ {4, 4, ST_OAM_SQUARE, 0, 0x12, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDA6C[] = {
+ {6, gSubspriteTable_83EDA3C}
+};
+
+static const struct Subsprite gSubspriteTable_83EDA74[] = {
+ {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x3, 3},
+ {-8, -4, ST_OAM_H_RECTANGLE, 0, 0xb, 3},
+ {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x13, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDA8C[] = {
+ {3, gSubspriteTable_83EDA74}
+};
+
+static const struct Subsprite gSubspriteTable_83EDA94[] = {
+ {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x5, 3},
+ {4, -12, ST_OAM_SQUARE, 0, 0x7, 3},
+ {-12, -4, ST_OAM_H_RECTANGLE, 0, 0xd, 3},
+ {4, -4, ST_OAM_SQUARE, 0, 0xf, 3},
+ {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x15, 3},
+ {4, 4, ST_OAM_SQUARE, 0, 0x17, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDAC4[] = {
+ {6, gSubspriteTable_83EDA94}
+};
+
+static const struct Subsprite gSubspriteTable_83EDACC[] = {
+ {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x0, 3},
+ {4, -12, ST_OAM_SQUARE, 0, 0x2, 3},
+ {-12, -4, ST_OAM_H_RECTANGLE, 0, 0x8, 3},
+ {4, -4, ST_OAM_SQUARE, 0, 0xa, 3},
+ {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x10, 3},
+ {4, 4, ST_OAM_SQUARE, 0, 0x12, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDAFC[] = {
+ {6, gSubspriteTable_83EDACC}
+};
+
+static const struct Subsprite gSubspriteTable_83EDB04[] = {
+ {-8, -12, ST_OAM_H_RECTANGLE, 0, 0x3, 3},
+ {-8, -4, ST_OAM_H_RECTANGLE, 0, 0xb, 3},
+ {-8, 4, ST_OAM_H_RECTANGLE, 0, 0x13, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDB1C[] = {
+ {3, gSubspriteTable_83EDB04}
+};
+
+static const struct Subsprite gSubspriteTable_83EDB24[] = {
+ {-12, -12, ST_OAM_H_RECTANGLE, 0, 0x5, 3},
+ {4, -12, ST_OAM_SQUARE, 0, 0x7, 3},
+ {-12, -4, ST_OAM_H_RECTANGLE, 0, 0xd, 3},
+ {4, -4, ST_OAM_SQUARE, 0, 0xf, 3},
+ {-12, 4, ST_OAM_H_RECTANGLE, 0, 0x15, 3},
+ {4, 4, ST_OAM_SQUARE, 0, 0x17, 3}
+};
+
+static const struct SubspriteTable gSubspriteTables_83EDB54[] = {
+ {6, gSubspriteTable_83EDB24}
+};
+
+static const struct SpriteTemplate *const gUnknown_083EDB5C[] = {
+ &gSpriteTemplate_83ED57C,
+ &gSpriteTemplate_83ED594,
+ &gSpriteTemplate_83ED5AC,
+ &gSpriteTemplate_83ED5DC,
+ &gSpriteTemplate_83ED5F4,
+ &gSpriteTemplate_83ED654,
+ &gSpriteTemplate_83ED66C,
+ &gSpriteTemplate_83ED684,
+ &gSpriteTemplate_83ED69C,
+ &gSpriteTemplate_83ED6B4,
+ &gSpriteTemplate_83ED5C4,
+ &gSpriteTemplate_83ED5C4,
+ &gSpriteTemplate_83ED5C4,
+ &gSpriteTemplate_83ED5C4,
+ &gSpriteTemplate_83ED60C,
+ &gSpriteTemplate_83ED60C,
+ &gSpriteTemplate_83ED60C,
+ &gSpriteTemplate_83ED60C,
+ &gSpriteTemplate_83ED60C,
+ &gSpriteTemplate_83ED624,
+ &gSpriteTemplate_83ED624,
+ &gSpriteTemplate_83ED624,
+ &gSpriteTemplate_83ED63C,
+ &gSpriteTemplate_83ED63C,
+ &gSpriteTemplate_83ED63C,
+ &gDummySpriteTemplate
+};
+
+static const struct SubspriteTable *const gUnknown_083EDBC4[] = {
+ gSubspriteTables_83ED804,
+ gSubspriteTables_83ED82C,
+ gSubspriteTables_83ED854,
+ gSubspriteTables_83ED8B4,
+ NULL,
+ NULL,
+ gSubspriteTables_83ED8CC,
+ NULL,
+ gSubspriteTables_83ED93C,
+ gSubspriteTables_83ED95C,
+ gSubspriteTables_83ED974,
+ gSubspriteTables_83ED98C,
+ gSubspriteTables_83ED9A4,
+ gSubspriteTables_83ED9BC,
+ gSubspriteTables_83ED9D4,
+ gSubspriteTables_83ED9EC,
+ gSubspriteTables_83EDA04,
+ gSubspriteTables_83EDA1C,
+ gSubspriteTables_83EDA34,
+ gSubspriteTables_83EDA6C,
+ gSubspriteTables_83EDA8C,
+ gSubspriteTables_83EDAC4,
+ gSubspriteTables_83EDAFC,
+ gSubspriteTables_83EDB1C,
+ gSubspriteTables_83EDB54,
+ NULL
+};
+
+static const struct SpriteSheet sSlotMachineSpriteSheets[] = {
+ {gSlotMachineReelSymbol1Tiles, 0x200, 0},
+ {gSlotMachineReelSymbol2Tiles, 0x200, 1},
+ {gSlotMachineReelSymbol3Tiles, 0x200, 2},
+ {gSlotMachineReelSymbol4Tiles, 0x200, 3},
+ {gSlotMachineReelSymbol5Tiles, 0x200, 4},
+ {gSlotMachineReelSymbol6Tiles, 0x200, 5},
+ {gSlotMachineReelSymbol7Tiles, 0x200, 6},
+ {gSlotMachineNumber0Tiles, 0x40, 7},
+ {gSlotMachineNumber1Tiles, 0x40, 8},
+ {gSlotMachineNumber2Tiles, 0x40, 9},
+ {gSlotMachineNumber3Tiles, 0x40, 10},
+ {gSlotMachineNumber4Tiles, 0x40, 11},
+ {gSlotMachineNumber5Tiles, 0x40, 12},
+ {gSlotMachineNumber6Tiles, 0x40, 13},
+ {gSlotMachineNumber7Tiles, 0x40, 14},
+ {gSlotMachineNumber8Tiles, 0x40, 15},
+ {gSlotMachineNumber9Tiles, 0x40, 16},
+ {eSlotMachineGfxBuffer + 0x0A00, 0x200, 18},
+ {eSlotMachineGfxBuffer + 0x1400, 0x200, 19},
+ {eSlotMachineGfxBuffer + 0x1600, 0x300, 20},
+ {eSlotMachineGfxBuffer + 0x1900, 0x300, 21},
+ {}
+};
+
+static const struct SpriteSheet gUnknown_083EDCDC = {
+ eSlotMachineGfxBuffer + 0x0000, 0x800, 17
+};
+
+static const u8 *const gUnknown_083EDCE4 = gUnknownPalette_08E997E8;
+
+#ifdef SAPPHIRE
+static const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/sapphire_83EDD40.gbapal");
+#elif defined(RUBY)
+static const u16 UnknownPalette_83EDCE8[] = INCBIN_U16("graphics/unknown/ruby_83EDCE8.gbapal");
+#endif // RS
+
+static const u16 *const gUnknown_083EDD08[] = {
+ UnknownPalette_83EDCE8 + 10,
+ UnknownPalette_83EDCE8 + 11,
+ UnknownPalette_83EDCE8 + 12,
+ UnknownPalette_83EDCE8 + 13,
+ UnknownPalette_83EDCE8 + 14
+};
+
+static const u16 *const gUnknown_083EDD1C[] = {
+ gUnknown_08E95A18 + 74,
+ gUnknown_08E95A18 + 75,
+ gUnknown_08E95A18 + 76,
+ gUnknown_08E95A18 + 77,
+ gUnknown_08E95A18 + 78
+};
+
+static const u8 gUnknown_083EDD30[] = {
+ 0x4a, 0x4b, 0x4c, 0x4e, 0x4d
+};
+
+static const u8 gUnknown_083EDD35[][2] = {
+ {0, 0},
+ {1, 2},
+ {3, 4}
+};
+static const u8 gUnknown_083EDD3B[] = {1, 2, 2};
+
+#ifdef SAPPHIRE
+static const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/sapphire_83EDD96.gbapal");
+static const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDB6.gbapal");
+static const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/sapphire_83EDDD6.gbapal");
+#elif defined (RUBY)
+static const u16 Unknown_83EDD3E[] = INCBIN_U16("graphics/unknown/ruby_83EDD3E.gbapal");
+static const u16 Unknown_83EDD5E[] = INCBIN_U16("graphics/unknown/ruby_83EDD5E.gbapal");
+static const u16 Unknown_83EDD7E[] = INCBIN_U16("graphics/unknown/ruby_83EDD7E.gbapal");
+#endif // RS
+
+static const u16 *const gUnknown_083EDDA0[] = {
+ Unknown_83EDD3E,
+ Unknown_83EDD5E,
+ Unknown_83EDD7E
+};
+
+static const u16 *const gUnknown_083EDDAC = gUnknown_08E95A18 + 16;
+
+static const u16 Palette_83EDDB0[] = INCBIN_U16("graphics/slot_machine/83EDDB0.gbapal");
+static const u16 Palette_83EDDD0[] = INCBIN_U16("graphics/slot_machine/83EDDD0.gbapal");
+static const u16 Palette_83EDDF0[] = INCBIN_U16("graphics/slot_machine/83EDDF0.gbapal");
+
+static const u16 *const gUnknown_083EDE10[] = {
+ Palette_83EDDB0,
+ Palette_83EDDD0,
+ Palette_83EDDF0,
+ gSlotMachineSpritePalette6
+};
+
+static const u16 *const gUnknown_083EDE20 = gSlotMachineSpritePalette6;
+
+static const u16 gPalette_83EDE24[] = INCBIN_U16("graphics/slot_machine/83EDE24_pal.bin");
+
+static const struct SpritePalette gSlotMachineSpritePalettes[] = {
+ {gSlotMachineSpritePalette0, 0},
+ {gSlotMachineSpritePalette1, 1},
+ {gSlotMachineSpritePalette2, 2},
+ {gSlotMachineSpritePalette3, 3},
+ {gSlotMachineSpritePalette4, 4},
+ {gSlotMachineSpritePalette5, 5},
+ {gSlotMachineSpritePalette6, 6},
+ {gSlotMachineSpritePalette4, 7},
+ {}
+};
+
+static const u8 sReelTimeGfx[] = INCBIN_U8("graphics/slot_machine/reel_time.4bpp.lz");
+
+static const u16 sReelTimeWindowTilemap[] = INCBIN_U16("graphics/slot_machine/reel_time_window_map.bin");
+
+#if DEBUG
+
+const u8 Str_841B1C4[] = _("SETTEI");
+const u8 Str_841B1CB[] = _("MAWASITA");
+const u8 Str_841B1D4[] = _("MODOSI");
+const u8 Str_841B1DB[] = _("NOMARE");
+const u8 Str_841B1E2[] = _("MAE 7");
+const u8 Str_841B1E8[] = _("LR  HENKOU");
+const u8 Str_841B1F3[] = _("START  JIDOUSU");
+const u8 Str_841B202[] = _("SELECT  SETTEI");
+const u8 Str_841B211[] = _("TYUHSEN");
+const u8 Str_841B219[] = _("CHERRY");
+const u8 Str_841B220[] = _("REPLAY");
+const u8 Str_841B227[] = _("HASUBO");
+const u8 Str_841B22E[] = _("RURIRI");
+const u8 Str_841B235[] = _("INAZU");
+const u8 Str_841B23B[] = _("REG");
+const u8 Str_841B23F[] = _("BIG");
+const u8 Str_841B243[] = _("BD");
+const u8 Str_841B246[] = _("R7");
+const u8 Str_841B249[] = _("B7");
+const u8 Str_841B24C[] = _("A  COIN");
+const u8 Str_841B254[] = _("TYUHSEN");
+const u8 Str_841B25C[] = _("UD  100");
+const u8 Str_841B264[] = _("LR  1000");
+const u8 Str_841B26D[] = _("×");
+
+// Is this MenuAction2? I'm not sure.
+const struct {const u8 *text; void (*func)();} _841B270[] =
+{
+ {Str_841B219, debug_sub_811B1C4},
+ {Str_841B220, debug_sub_811B1EC},
+ {Str_841B227, debug_sub_811B210},
+ {Str_841B22E, debug_sub_811B238},
+ {Str_841B235, debug_sub_811B260},
+ {Str_841B23B, debug_sub_811B288},
+ {Str_841B23F, debug_sub_811B2B0},
+ {Str_841B243, debug_sub_811B2D8},
+};
+
+const u8 Str_841B2B0[] = _("·カウントエラーがおきました");
+const u8 Str_841B2BF[] = _("·リールそうさで エラーが おきました");
+const u8 Str_841B2D3[] = _("·フラグオフエラーが おきました");
+const u8 Str_841B2E4[] = _("·ボーナスこやくの エラーが おきました");
+
+#endif
diff --git a/src/field/start_menu.c b/src/field/start_menu.c
index dccf1714e..4904f4a80 100644
--- a/src/field/start_menu.c
+++ b/src/field/start_menu.c
@@ -28,7 +28,7 @@
#include "strings2.h"
#include "task.h"
#include "trainer_card.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
//Menu actions
enum {
@@ -44,6 +44,11 @@ enum {
MENU_ACTION_PLAYER_LINK
};
+#if DEBUG
+static u32 _debugStartMenu_0 __attribute__((unused));
+static u32 _debugStartMenu_1 __attribute__((unused));
+#endif
+
static u8 (*saveDialogCallback)(void);
static u8 saveDialogTimer; //Number of frames to keep the window on screen after save was completed
static bool8 savingComplete;
@@ -54,7 +59,7 @@ extern u16 gSpecialVar_Result;
extern u8 gUnknown_03004860;
-u8 (*gCallback_03004AE8)(void);
+u8 (*gMenuCallback)(void);
EWRAM_DATA static u8 sStartMenuCursorPos = 0;
EWRAM_DATA static u8 sNumStartMenuActions = 0;
@@ -132,6 +137,304 @@ static bool32 sub_80719FC(u8 *ptr);
static void sub_8071B54(void);
static void Task_8071B64(u8 taskId);
+#if DEBUG
+__attribute__((naked))
+void debug_sub_8075C30()
+{
+ asm(
+ " push {lr}\n"
+ " bl CloseMenu\n"
+ " bl debug_sub_8075D9C\n"
+ " mov r0, #0x1\n"
+ " pop {r1}\n"
+ " bx r1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8075C40()
+{
+ asm(
+ " push {r4, r5, r6, r7, lr}\n"
+ " mov r7, sl\n"
+ " mov r6, r9\n"
+ " mov r5, r8\n"
+ " push {r5, r6, r7}\n"
+ " lsl r0, r0, #0x18\n"
+ " lsr r4, r0, #0x18\n"
+ " lsl r0, r4, #0x2\n"
+ " add r0, r0, r4\n"
+ " lsl r0, r0, #0x3\n"
+ " ldr r1, ._5 @ gTasks\n"
+ " add r5, r0, r1\n"
+ " mov r1, #0x0\n"
+ " ldsh r0, [r5, r1]\n"
+ " cmp r0, #0x1\n"
+ " beq ._1 @cond_branch\n"
+ " cmp r0, #0x1\n"
+ " bgt ._2 @cond_branch\n"
+ " cmp r0, #0\n"
+ " beq ._3 @cond_branch\n"
+ " b ._18\n"
+ "._6:\n"
+ " .align 2, 0\n"
+ "._5:\n"
+ " .word gTasks+0x8\n"
+ "._2:\n"
+ " cmp r0, #0x2\n"
+ " beq ._7 @cond_branch\n"
+ " cmp r0, #0x3\n"
+ " beq ._8 @cond_branch\n"
+ " b ._18\n"
+ "._3:\n"
+ " bl m4aSoundVSyncOff\n"
+ " b ._12\n"
+ "._1:\n"
+ " ldr r1, ._13 @ 0x4000208\n"
+ " ldrh r0, [r1]\n"
+ " mov sl, r0\n"
+ " mov r0, #0x0\n"
+ " strh r0, [r1]\n"
+ " ldr r1, ._13 + 4 @ 0x4000108\n"
+ " strh r0, [r1]\n"
+ " mov r0, #0x83\n"
+ " lsl r0, r0, #0x10\n"
+ " str r0, [r1]\n"
+ " ldr r4, ._13 + 8 @ 0xc34f\n"
+ " mov r9, r4\n"
+ " ldr r2, ._13 + 12 @ 0x40000b0\n"
+ " ldr r0, ._13 + 16 @ gScanlineEffectRegBuffers\n"
+ " mov ip, r0\n"
+ " ldr r1, ._13 + 20 @ 0xc5ff\n"
+ " mov r8, r1\n"
+ " ldr r7, ._13 + 24 @ 0x7fff\n"
+ " mov r3, r9\n"
+ " add r3, r3, #0x1\n"
+ " ldr r6, ._13 + 28 @ 0x4000040\n"
+ " ldr r4, ._13 + 32 @ 0xa2600001\n"
+ "._11:\n"
+ " mov r0, ip\n"
+ " str r0, [r2]\n"
+ " str r6, [r2, #0x4]\n"
+ " str r4, [r2, #0x8]\n"
+ " ldr r0, [r2, #0x8]\n"
+ " ldrh r1, [r2, #0xa]\n"
+ " mov r0, r8\n"
+ " and r0, r0, r1\n"
+ " strh r0, [r2, #0xa]\n"
+ " ldrh r1, [r2, #0xa]\n"
+ " add r0, r7, #0\n"
+ " and r0, r0, r1\n"
+ " strh r0, [r2, #0xa]\n"
+ " ldrh r0, [r2, #0xa]\n"
+ " sub r3, r3, #0x1\n"
+ " cmp r3, #0\n"
+ " bne ._11 @cond_branch\n"
+ " mov r3, r9\n"
+ " add r3, r3, #0x1\n"
+ " ldr r0, ._13 + 36 @ 0x400010a\n"
+ " mov r2, #0x0\n"
+ " strh r2, [r0]\n"
+ " ldr r1, ._13 + 4 @ 0x4000108\n"
+ " ldrh r0, [r1]\n"
+ " ldr r4, ._13 + 40 @ _debugStartMenu_0\n"
+ " str r0, [r4]\n"
+ " strh r2, [r1]\n"
+ " ldr r0, ._13 @ 0x4000208\n"
+ " mov r1, sl\n"
+ " strh r1, [r0]\n"
+ " ldr r4, ._13 + 44 @ _debugStartMenu_1\n"
+ " str r3, [r4]\n"
+ " bl m4aSoundVSyncOn\n"
+ " b ._12\n"
+ "._14:\n"
+ " .align 2, 0\n"
+ "._13:\n"
+ " .word 0x4000208\n"
+ " .word 0x4000108\n"
+ " .word 0xc34f\n"
+ " .word 0x40000b0\n"
+ " .word gScanlineEffectRegBuffers\n"
+ " .word 0xc5ff\n"
+ " .word 0x7fff\n"
+ " .word 0x4000040\n"
+ " .word 0xa2600001\n"
+ " .word 0x400010a\n"
+ " .word _debugStartMenu_0\n"
+ " .word _debugStartMenu_1\n"
+ "._7:\n"
+ " mov r0, #0x15\n"
+ " bl PlaySE\n"
+ " ldr r0, ._16 @ gStringVar1\n"
+ " ldr r1, ._16 + 4 @ _debugStartMenu_1\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x8\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " ldr r0, ._16 + 8 @ gStringVar2\n"
+ " ldr r1, ._16 + 12 @ _debugStartMenu_0\n"
+ " ldr r1, [r1]\n"
+ " mov r2, #0x1\n"
+ " mov r3, #0x8\n"
+ " bl ConvertIntToDecimalStringN\n"
+ " bl Menu_DisplayDialogueFrame\n"
+ " ldr r0, ._16 + 16 @ gUnknown_Debug_839B6D8\n"
+ " mov r1, #0x2\n"
+ " mov r2, #0xf\n"
+ " bl Menu_PrintText\n"
+ "._12:\n"
+ " ldrh r0, [r5]\n"
+ " add r0, r0, #0x1\n"
+ " strh r0, [r5]\n"
+ " b ._18\n"
+ "._17:\n"
+ " .align 2, 0\n"
+ "._16:\n"
+ " .word gStringVar1\n"
+ " .word _debugStartMenu_1\n"
+ " .word gStringVar2\n"
+ " .word _debugStartMenu_0\n"
+ " .word gUnknown_Debug_839B6D8\n"
+ "._8:\n"
+ " ldr r0, ._19 @ gMain\n"
+ " ldrh r1, [r0, #0x2e]\n"
+ " mov r0, #0x1\n"
+ " and r0, r0, r1\n"
+ " cmp r0, #0\n"
+ " beq ._18 @cond_branch\n"
+ " bl Menu_EraseScreen\n"
+ " bl ScriptContext2_Disable\n"
+ " add r0, r4, #0\n"
+ " bl DestroyTask\n"
+ "._18:\n"
+ " pop {r3, r4, r5}\n"
+ " mov r8, r3\n"
+ " mov r9, r4\n"
+ " mov sl, r5\n"
+ " pop {r4, r5, r6, r7}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._20:\n"
+ " .align 2, 0\n"
+ "._19:\n"
+ " .word gMain\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8075D9C()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._21 @ debug_sub_8075C40\n"
+ " mov r1, #0xa\n"
+ " bl CreateTask\n"
+ " bl ScriptContext2_Enable\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._22:\n"
+ " .align 2, 0\n"
+ "._21:\n"
+ " .word debug_sub_8075C40+1\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void debug_sub_8075DB4()
+{
+ asm(
+ " push {r4, r5, r6, lr}\n"
+ " add r6, r0, #0\n"
+ " add r5, r1, #0\n"
+ " add r4, r2, #0\n"
+ " add r0, r4, #0\n"
+ " mov r1, #0x4d\n"
+ " bl __umodsi3\n"
+ " strb r0, [r6, #0x1]\n"
+ " add r1, r6, #0\n"
+ " add r1, r1, #0xc\n"
+ " add r0, r4, #0\n"
+ " bl write_word_to_mem\n"
+ " add r0, r6, #4\n"
+ " add r1, r5, #0\n"
+ " bl StringCopy8\n"
+ " mov r3, #0x7\n"
+ " mov r4, #0x0\n"
+ " ldr r0, ._25 @ gSaveBlock1\n"
+ " ldr r1, ._25 + 4 @ 0x2b28\n"
+ " add r5, r0, r1\n"
+ " add r2, r6, #0\n"
+ " add r2, r2, #0x10\n"
+ " add r1, r6, #0\n"
+ " add r1, r1, #0x1c\n"
+ "._23:\n"
+ " ldrh r0, [r5]\n"
+ " strh r0, [r2]\n"
+ " strh r3, [r1]\n"
+ " add r0, r3, #6\n"
+ " strh r0, [r1, #0xc]\n"
+ " add r3, r3, #0x1\n"
+ " add r5, r5, #0x2\n"
+ " add r2, r2, #0x2\n"
+ " add r1, r1, #0x2\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x5\n"
+ " ble ._23 @cond_branch\n"
+ " mov r4, #0x0\n"
+ "._24:\n"
+ " mov r0, #0x64\n"
+ " mul r0, r0, r4\n"
+ " ldr r1, ._25 + 8 @ gPlayerParty\n"
+ " add r0, r0, r1\n"
+ " mov r1, #0x2c\n"
+ " mul r1, r1, r4\n"
+ " add r1, r1, #0x34\n"
+ " add r1, r6, r1\n"
+ " bl sub_803AF78\n"
+ " add r4, r4, #0x1\n"
+ " cmp r4, #0x2\n"
+ " ble ._24 @cond_branch\n"
+ " add r0, r6, #0\n"
+ " bl SetEReaderTrainerChecksum\n"
+ " pop {r4, r5, r6}\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._26:\n"
+ " .align 2, 0\n"
+ "._25:\n"
+ " .word gSaveBlock1\n"
+ " .word 0x2b28\n"
+ " .word gPlayerParty\n"
+ "\n"
+ );
+}
+
+__attribute__((naked))
+void unref_sub_8070F90()
+{
+ asm(
+ " push {lr}\n"
+ " ldr r0, ._27 @ 0x801\n"
+ " bl FlagSet\n"
+ " mov r0, #0x80\n"
+ " lsl r0, r0, #0x4\n"
+ " bl FlagSet\n"
+ " ldr r0, ._27 + 4 @ 0x802\n"
+ " bl FlagSet\n"
+ " pop {r0}\n"
+ " bx r0\n"
+ "._28:\n"
+ " .align 2, 0\n"
+ "._27:\n"
+ " .word 0x801\n"
+ " .word 0x802\n"
+ "\n"
+ );
+}
+#endif
static void BuildStartMenuActions(void)
{
@@ -193,8 +496,8 @@ static void BuildStartMenuActions_Link(void)
static void DisplaySafariBallsWindow(void)
{
sub_8072C44(gStringVar1, gNumSafariBalls, 12, 1);
- MenuDrawTextWindow(0, 0, 10, 5);
- MenuPrint(gOtherText_SafariStock, 1, 1);
+ Menu_DrawStdWindowFrame(0, 0, 10, 5);
+ Menu_PrintText(gOtherText_SafariStock, 1, 1);
}
//Prints n menu items starting at *index
@@ -204,7 +507,7 @@ static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n)
do
{
- MenuPrint(sStartMenuItems[sCurrentStartMenuActions[_index]].text, 23, 2 + _index * 2);
+ Menu_PrintText(sStartMenuItems[sCurrentStartMenuActions[_index]].text, 23, 2 + _index * 2);
_index++;
if (_index >= sNumStartMenuActions)
{
@@ -226,7 +529,7 @@ static bool32 InitStartMenuMultistep(s16 *step, s16 *index)
(*step)++;
break;
case 2:
- MenuDrawTextWindow(22, 0, 29, sNumStartMenuActions * 2 + 3);
+ Menu_DrawStdWindowFrame(22, 0, 29, sNumStartMenuActions * 2 + 3);
*index = 0;
(*step)++;
break;
@@ -271,7 +574,7 @@ void CreateStartMenuTask(void (*func)(u8))
{
u8 taskId;
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
taskId = CreateTask(Task_StartMenu, 0x50);
SetTaskFuncWithFollowupFunc(taskId, Task_StartMenu, func);
}
@@ -283,11 +586,11 @@ void sub_80712B4(u8 taskId)
switch (task->data[0])
{
case 0:
- gCallback_03004AE8 = StartMenu_InputProcessCallback;
+ gMenuCallback = StartMenu_InputProcessCallback;
task->data[0]++;
break;
case 1:
- if (gCallback_03004AE8() == 1)
+ if (gMenuCallback() == 1)
DestroyTask(taskId);
break;
}
@@ -310,12 +613,12 @@ static u8 StartMenu_InputProcessCallback(void)
if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- sStartMenuCursorPos = MoveMenuCursor(-1);
+ sStartMenuCursorPos = Menu_MoveCursor(-1);
}
if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- sStartMenuCursorPos = MoveMenuCursor(1);
+ sStartMenuCursorPos = Menu_MoveCursor(1);
}
if (gMain.newKeys & A_BUTTON)
{
@@ -325,11 +628,11 @@ static u8 StartMenu_InputProcessCallback(void)
if (GetNationalPokedexCount(0) == 0)
return 0;
}
- gCallback_03004AE8 = sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func;
- if (gCallback_03004AE8 != StartMenu_SaveCallback &&
- gCallback_03004AE8 != StartMenu_ExitCallback &&
- gCallback_03004AE8 != StartMenu_RetireCallback)
- fade_screen(1, 0);
+ gMenuCallback = sStartMenuItems[sCurrentStartMenuActions[sStartMenuCursorPos]].func;
+ if (gMenuCallback != StartMenu_SaveCallback &&
+ gMenuCallback != StartMenu_ExitCallback &&
+ gMenuCallback != StartMenu_RetireCallback)
+ FadeScreen(1, 0);
return 0;
}
if (gMain.newKeys & (START_BUTTON | B_BUTTON))
@@ -345,7 +648,7 @@ static u8 StartMenu_PokedexCallback(void)
{
if (!gPaletteFade.active)
{
- IncrementGameStat(0x29);
+ IncrementGameStat(GAME_STAT_CHECKED_POKEDEX);
PlayRainSoundEffect();
SetMainCallback2(CB2_InitPokedex);
return 1;
@@ -395,7 +698,7 @@ static u8 StartMenu_PlayerCallback(void)
if (!gPaletteFade.active)
{
PlayRainSoundEffect();
- sub_8093110(sub_805469C);
+ TrainerCard_ShowPlayerCard(sub_805469C);
return 1;
}
return 0;
@@ -404,8 +707,8 @@ static u8 StartMenu_PlayerCallback(void)
//When player selects SAVE
static u8 StartMenu_SaveCallback(void)
{
- HandleDestroyMenuCursors();
- gCallback_03004AE8 = SaveCallback1;
+ Menu_DestroyCursor();
+ gMenuCallback = SaveCallback1;
return 0;
}
@@ -443,7 +746,7 @@ static u8 StartMenu_PlayerLinkCallback(void)
if (!gPaletteFade.active)
{
PlayRainSoundEffect();
- sub_8093130(gUnknown_03004860, sub_805469C);
+ TrainerCard_ShowLinkCard(gUnknown_03004860, sub_805469C);
return 1;
}
return 0;
@@ -461,7 +764,7 @@ enum
static u8 SaveCallback1(void)
{
sub_807160C();
- gCallback_03004AE8 = SaveCallback2;
+ gMenuCallback = SaveCallback2;
return FALSE;
}
@@ -473,13 +776,13 @@ static u8 SaveCallback2(void)
return FALSE;
case SAVE_CANCELED:
//Go back to start menu
- MenuZeroFillScreen();
+ Menu_EraseScreen();
InitStartMenu();
- gCallback_03004AE8 = StartMenu_InputProcessCallback;
+ gMenuCallback = StartMenu_InputProcessCallback;
return FALSE;
case SAVE_SUCCESS:
case SAVE_ERROR:
- MenuZeroFillScreen();
+ Menu_EraseScreen();
sub_8064E2C();
ScriptContext2_Disable();
return TRUE;
@@ -498,7 +801,7 @@ static u8 RunSaveDialogCallback(void)
{
if (savingComplete)
{
- if (!MenuUpdateWindowText())
+ if (!Menu_UpdateWindowText())
return 0;
}
savingComplete = FALSE;
@@ -514,7 +817,7 @@ void ScrSpecial_DoSaveDialog(void)
static void DisplaySaveMessageWithCallback(const u8 *ptr, u8 (*func)(void))
{
StringExpandPlaceholders(gStringVar4, ptr);
- MenuDisplayMessageBox();
+ Menu_DisplayDialogueFrame();
MenuPrintMessageDefaultCoords(gStringVar4);
savingComplete = TRUE;
saveDialogCallback = func;
@@ -547,7 +850,7 @@ static void sub_8071700(void)
static void HideSaveDialog(void)
{
- MenuZeroFillWindowRect(20, 8, 26, 13);
+ Menu_EraseWindowRect(20, 8, 26, 13);
}
static void SaveDialogStartTimeout(void)
@@ -579,7 +882,7 @@ static bool8 SaveDialogCheckForTimeoutAndKeypress(void)
static u8 SaveDialogCB_DisplayConfirmMessage(void)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
HandleDrawSaveWindowInfo(0, 0);
DisplaySaveMessageWithCallback(gSaveText_WouldYouLikeToSave, SaveDialogCB_DisplayConfirmYesNoMenu);
return SAVE_IN_PROGRESS;
@@ -594,7 +897,7 @@ static u8 SaveDialogCB_DisplayConfirmYesNoMenu(void)
static u8 SaveDialogCB_ProcessConfirmYesNoMenu(void)
{
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0: //YES
HideSaveDialog();
@@ -640,7 +943,7 @@ static u8 SaveDialogCB_DisplayOverwriteYesNoMenu(void)
static u8 SaveDialogCB_ProcessOverwriteYesNoMenu(void)
{
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0: //YES
HideSaveDialog();
@@ -664,20 +967,20 @@ static u8 SaveDialogCB_DisplaySavingMessage(void)
static u8 SaveDialogCB_DoSave(void)
{
- bool8 saveSucceeded;
+ u8 saveStatus;
- IncrementGameStat(0);
+ IncrementGameStat(GAME_STAT_SAVED_GAME);
if (gDifferentSaveFile == TRUE)
{
- saveSucceeded = TrySavingData(DIFFERENT_FILE_SAVE);
+ saveStatus = Save_WriteData(SAVE_OVERWRITE_DIFFERENT_FILE);
gDifferentSaveFile = FALSE;
}
else
{
- saveSucceeded = TrySavingData(NORMAL_SAVE);
+ saveStatus = Save_WriteData(SAVE_NORMAL);
}
- if (saveSucceeded == TRUE)
+ if (saveStatus == SAVE_STATUS_OK)
{
//"(Player) saved the game."
DisplaySaveMessageWithCallback(gSaveText_PlayerSavedTheGame, SaveDialogCB_SaveSuccess);
@@ -694,7 +997,7 @@ static u8 SaveDialogCB_DoSave(void)
static u8 SaveDialogCB_SaveSuccess(void)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
PlaySE(SE_SAVE);
saveDialogCallback = SaveDialogCB_ReturnSuccess;
@@ -715,7 +1018,7 @@ static u8 SaveDialogCB_ReturnSuccess(void)
static u8 SaveDialogCB_SaveError(void)
{
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
PlaySE(SE_BOO);
saveDialogCallback = SaveDialogCB_ReturnError;
@@ -744,38 +1047,21 @@ static bool32 sub_80719FC(u8 *step)
switch (*step)
{
case 0:
- {
- u8 *addr;
- u32 size;
-
REG_DISPCNT = 0;
SetVBlankCallback(NULL);
- remove_some_task();
+ ScanlineEffect_Stop();
DmaClear16(3, PLTT, PLTT_SIZE);
- addr = (void *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
+ DmaFill16Large(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000);
break;
- }
case 1:
ResetSpriteData();
ResetTasks();
ResetPaletteFade();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
break;
case 2:
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON;
break;
case 3:
@@ -821,8 +1107,8 @@ static void Task_8071B64(u8 taskId)
switch (*step)
{
case 0:
- MenuDisplayMessageBox();
- MenuPrint(gSystemText_Saving, 2, 15);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gSystemText_Saving, 2, 15);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
(*step)++;
break;
diff --git a/src/field/starter_choose.c b/src/field/starter_choose.c
index 701d4087a..418488774 100644
--- a/src/field/starter_choose.c
+++ b/src/field/starter_choose.c
@@ -14,7 +14,7 @@
#include "strings.h"
#include "task.h"
#include "trig.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
extern u16 gSpecialVar_Result;
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -285,7 +285,7 @@ void CB2_ChooseStarter(void)
LZ77UnCompVram(&gBirchHelpGfx, (void *)VRAM);
LZ77UnCompVram(&gBirchBagTilemap, (void *)(VRAM + 0x3000));
LZ77UnCompVram(&gBirchGrassTilemap, (void *)(VRAM + 0x3800));
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
@@ -294,8 +294,8 @@ void CB2_ChooseStarter(void)
LoadCompressedObjectPic(&gUnknown_083F7794[0]);
LoadCompressedObjectPic(&gUnknown_083F77A4[0]);
LoadSpritePalettes(gUnknown_083F77B4);
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
savedIme = REG_IME;
@@ -355,8 +355,8 @@ static void MainCallback2(void)
static void Task_StarterChoose1(u8 taskId)
{
CreateStarterPokemonLabel(0xFF, gTasks[taskId].tStarterSelection);
- MenuDrawTextWindow(2, 14, 27, 19);
- MenuPrint(gOtherText_BirchInTrouble, 3, 15);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
+ Menu_PrintText(gOtherText_BirchInTrouble, 3, 15);
gTasks[taskId].func = Task_StarterChoose2;
}
@@ -368,7 +368,7 @@ static void Task_StarterChoose2(u8 taskId)
{
u8 spriteId;
- MenuZeroFillWindowRect(
+ Menu_EraseWindowRect(
gStarterChoose_LabelCoords[selection][0],
gStarterChoose_LabelCoords[selection][1],
gStarterChoose_LabelCoords[selection][0] + 13,
@@ -424,9 +424,9 @@ static void Task_StarterChoose3(u8 taskId)
static void Task_StarterChoose4(u8 taskId)
{
PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0);
- MenuDrawTextWindow(2, 14, 27, 19);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
//"Do you choose this POKEMON?"
- MenuPrint(gOtherText_DoYouChoosePoke, 3, 15);
+ Menu_PrintText(gOtherText_DoYouChoosePoke, 3, 15);
DisplayYesNoMenu(21, 7, 1);
gTasks[taskId].func = Task_StarterChoose5;
}
@@ -435,7 +435,7 @@ static void Task_StarterChoose5(u8 taskId)
{
u8 spriteId;
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0: // YES
//Return the starter choice and exit.
@@ -445,7 +445,7 @@ static void Task_StarterChoose5(u8 taskId)
case 1: // NO
case -1: // B button
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(21, 7, 27, 12);
+ Menu_EraseWindowRect(21, 7, 27, 12);
spriteId = gTasks[taskId].tPkmnSpriteId;
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(gSprites[spriteId].oam.paletteNum));
@@ -498,7 +498,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection)
if (prevSelection != 0xFF)
{
//Remove the old Pokemon label
- MenuZeroFillWindowRect(
+ Menu_EraseWindowRect(
gStarterChoose_LabelCoords[prevSelection][0],
gStarterChoose_LabelCoords[prevSelection][1],
gStarterChoose_LabelCoords[prevSelection][0] + 13,
@@ -527,7 +527,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection)
//Copy POKEMON string to label
StringCopy(labelText + dstIndex, gOtherText_Poke);
- MenuPrint(
+ Menu_PrintText(
labelText,
gStarterChoose_LabelCoords[selection][0],
gStarterChoose_LabelCoords[selection][1]);
@@ -535,7 +535,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection)
//Copy Pokemon name to label
sub_8072C74(labelText + 5, gSpeciesNames[species], 0x6B, 1);
- MenuPrint(
+ Menu_PrintText(
labelText,
gStarterChoose_LabelCoords[selection][0],
gStarterChoose_LabelCoords[selection][1] + 2);
@@ -574,7 +574,7 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection)
adds r3, r1, 0x3\n\
lsls r3, 24\n\
lsrs r3, 24\n\
- bl MenuZeroFillWindowRect\n\
+ bl Menu_EraseWindowRect\n\
ldr r0, _0810A964 @ =0x04000040\n\
movs r1, 0\n\
strh r1, [r0]\n\
@@ -649,7 +649,7 @@ _0810A8CA:\n\
mov r0, sp\n\
adds r1, r4, 0\n\
adds r2, r5, 0\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
mov r0, sp\n\
movs r1, 0\n\
movs r2, 0xF\n\
@@ -669,7 +669,7 @@ _0810A8CA:\n\
lsrs r2, 24\n\
mov r0, sp\n\
adds r1, r4, 0\n\
- bl MenuPrint\n\
+ bl Menu_PrintText\n\
lsls r0, r4, 3\n\
adds r0, 0x4\n\
lsls r0, 24\n\
diff --git a/src/field/trader.c b/src/field/trader.c
index 61cb0b4a2..885557d5a 100644
--- a/src/field/trader.c
+++ b/src/field/trader.c
@@ -100,7 +100,7 @@ void CreateAvailableDecorationsMenu(u8 taskId)
}
}
- MenuDrawTextWindow(0, 1, 12, numChoices * 2 + 2);
+ Menu_DrawStdWindowFrame(0, 1, 12, numChoices * 2 + 2);
for (i = 0; i < 4; i++)
{
@@ -108,18 +108,18 @@ void CreateAvailableDecorationsMenu(u8 taskId)
{
if (trader->unk1[i] > DECOR_REGISTEEL_DOLL)
{
- MenuPrint(gOtherText_FiveQuestionsAndSlash, 1, numDecorations * 2 + 2);
+ Menu_PrintText(gOtherText_FiveQuestions, 1, numDecorations * 2 + 2);
}
else
{
- MenuPrint(gDecorations[trader->unk1[i]].name, 1, numDecorations * 2 + 2);
+ Menu_PrintText(gDecorations[trader->unk1[i]].name, 1, numDecorations * 2 + 2);
}
numDecorations++;
}
}
- MenuPrint(gOtherText_CancelNoTerminator, 1, numDecorations * 2 + 2);
+ Menu_PrintText(gOtherText_CancelNoTerminator, 1, numDecorations * 2 + 2);
InitMenu(0, 1, 2, numChoices, 0, 11);
gTasks[taskId].data[1] = numDecorations;
}
@@ -135,8 +135,8 @@ void sub_8109B34(u8 taskId, u8 decorationId)
gSpecialVar_0x8004 = decorationId;
}
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 1, 12, 12);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 1, 12, 12);
DestroyTask(taskId);
EnableBothScriptContexts();
}
@@ -148,17 +148,17 @@ void Task_HandleGetDecorationMenuInput(u8 taskId)
if (gMain.newKeys & DPAD_UP)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(-1);
+ Menu_MoveCursor(-1);
}
else if (gMain.newKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
- MoveMenuCursor(1);
+ Menu_MoveCursor(1);
}
else if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- gSpecialVar_0x8005 = GetMenuCursorPos();
+ gSpecialVar_0x8005 = Menu_GetCursorPos();
if (gTasks[taskId].data[1] == gSpecialVar_0x8005)
{
sub_8109B34(taskId, 0);
@@ -215,10 +215,10 @@ void ScrSpecial_TraderMenuGiveDecoration(void)
void sub_8109D04(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
- DestroyVerticalScrollIndicator(0);
- DestroyVerticalScrollIndicator(1);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
+ DestroyVerticalScrollIndicator(TOP_ARROW);
+ DestroyVerticalScrollIndicator(BOTTOM_ARROW);
sub_80F9520(gUnknown_020388F7, 8);
BuyMenuFreeMemory();
if (sub_80FEFA4() == TRUE)
@@ -237,8 +237,8 @@ void sub_8109D04(u8 taskId)
void sub_8109DAC(u8 taskId)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 29, 19);
gSpecialVar_0x8006 = 0;
DestroyTask(taskId);
EnableBothScriptContexts();
diff --git a/src/field/tv.c b/src/field/tv.c
index d7a75a709..8bd36bb9c 100644
--- a/src/field/tv.c
+++ b/src/field/tv.c
@@ -47,8 +47,6 @@ struct UnkTvStruct
s8 var0;
};
-extern u8 gUnknown_0300430A[11];
-
struct OutbreakPokemon
{
/*0x00*/ u16 species;
@@ -64,7 +62,7 @@ struct TVSaleItem {
extern u8 gUnknown_02038694;
-extern struct TVSaleItem gUnknown_02038724[3];
+extern struct TVSaleItem gMartPurchaseHistory[3];
struct UnkTvStruct gUnknown_03005D38;
@@ -811,7 +809,7 @@ u8 sub_80BDEAC(u8 *a0)
return lang;
}
-void sub_80BDEC8(void)
+void PutPokemonTodayCaughtOnAir(void)
{
u8 i;
u16 total;
@@ -864,7 +862,7 @@ void sub_80BDEC8(void)
sub_80BE138((TVShow *)pokemonToday);
pokemonToday->language = GAME_LANGUAGE;
pokemonToday->language2 = sub_80BDEAC(pokemonToday->nickname);
- StripExtCtrlCodes(pokemonToday->nickname);
+ Text_StripExtCtrlCodes(pokemonToday->nickname);
}
}
}
@@ -966,7 +964,7 @@ void InterviewAfter_BravoTrainerPokemonProfile(void)
sub_80BE160((TVShow *)bravoTrainerNew);
bravoTrainerNew->language = GAME_LANGUAGE;
bravoTrainerNew->var1f = sub_80BDEAC(bravoTrainerNew->pokemonNickname);
- StripExtCtrlCodes(bravoTrainerNew->pokemonNickname);
+ Text_StripExtCtrlCodes(bravoTrainerNew->pokemonNickname);
}
}
@@ -1032,7 +1030,7 @@ void sub_80BE3BC(void)
if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_SMART_SHOPPER) != 1)
{
sub_80BF20C();
- if (gUnknown_02038724[0].item_amount >= 20)
+ if (gMartPurchaseHistory[0].item_amount >= 20)
{
struct TVShowSmartShopper *smartShopper = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].smartshopperShow;
@@ -1041,8 +1039,8 @@ void sub_80BE3BC(void)
smartShopper->shopLocation = gMapHeader.regionMapSectionId;
for (i=0; i<3; i++)
{
- smartShopper->itemIds[i] = gUnknown_02038724[i].item_id;
- smartShopper->itemAmounts[i] = gUnknown_02038724[i].item_amount;
+ smartShopper->itemIds[i] = gMartPurchaseHistory[i].item_id;
+ smartShopper->itemAmounts[i] = gMartPurchaseHistory[i].item_amount;
}
smartShopper->priceReduced = GetPriceReduction(1);
StringCopy(smartShopper->playerName, gSaveBlock2.playerName);
@@ -1075,7 +1073,7 @@ void sub_80BE478(void)
sub_80BE160((TVShow *)nameRaterShow);
nameRaterShow->language = GAME_LANGUAGE;
nameRaterShow->pokemonNameLanguage = sub_80BDEAC(nameRaterShow->pokemonName);
- StripExtCtrlCodes(nameRaterShow->pokemonName);
+ Text_StripExtCtrlCodes(nameRaterShow->pokemonName);
}
}
@@ -1138,7 +1136,7 @@ void InterviewAfter_PkmnFanClubOpinions(void)
sub_80BE160((TVShow *)fanclubOpinions);
fanclubOpinions->language = GAME_LANGUAGE;
fanclubOpinions->var0E = sub_80BDEAC(fanclubOpinions->var10);
- StripExtCtrlCodes(fanclubOpinions->var10);
+ Text_StripExtCtrlCodes(fanclubOpinions->var10);
}
void InterviewAfter_DummyShow4(void)
@@ -1646,14 +1644,14 @@ void sub_80BF20C(void)
{
for (j = i + 1; j < 3; j++)
{
- if (gUnknown_02038724[i].item_amount < gUnknown_02038724[j].item_amount)
+ if (gMartPurchaseHistory[i].item_amount < gMartPurchaseHistory[j].item_amount)
{
- tmpId = gUnknown_02038724[i].item_id;
- tmpAmount = gUnknown_02038724[i].item_amount;
- gUnknown_02038724[i].item_id = gUnknown_02038724[j].item_id;
- gUnknown_02038724[i].item_amount = gUnknown_02038724[j].item_amount;
- gUnknown_02038724[j].item_id = tmpId;
- gUnknown_02038724[j].item_amount = tmpAmount;
+ tmpId = gMartPurchaseHistory[i].item_id;
+ tmpAmount = gMartPurchaseHistory[i].item_amount;
+ gMartPurchaseHistory[i].item_id = gMartPurchaseHistory[j].item_id;
+ gMartPurchaseHistory[i].item_amount = gMartPurchaseHistory[j].item_amount;
+ gMartPurchaseHistory[j].item_id = tmpId;
+ gMartPurchaseHistory[j].item_amount = tmpAmount;
}
}
}
diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c
index 7253ac901..8ea93aab8 100644
--- a/src/field/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
@@ -104,7 +104,6 @@ static EWRAM_DATA struct Pokeblock *gUnknown_0203930C = NULL;
EWRAM_DATA u8 gPokeblockMonID = 0;
EWRAM_DATA s16 gPokeblockGain = 0;
-extern u16 gKeyRepeatStartDelay;
extern u16 gSpecialVar_ItemId; // FIXME: remove after merge of #349 Pokeblock
static void launch_c3_walk_stairs_and_run_once(void (*const)(void));
@@ -117,7 +116,7 @@ static void sub_81365A0(void);
static void sub_81365C8(void);
static void sub_8136638(void);
static void sub_81368A4(void);
-void sub_8089668(void);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
static void sub_8136B44(void);
static u8 sub_81370E4(u8);
static void sub_8136BB8(void);
@@ -194,7 +193,7 @@ static void sub_8136264(void)
ProcessSpriteCopyRequests();
TransferPlttBuffer();
sub_80F5CDC(6);
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void launch_c3_walk_stairs_and_run_once(void (*const func)(void))
@@ -228,11 +227,11 @@ static void sub_8136294(void)
gUnknown_02039304->unk50++;
break;
case 3:
- SetUpWindowConfig(&gWindowConfig_81E7080);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7080);
gUnknown_02039304->unk50++;
break;
case 4:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7080);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E7080);
gUnknown_02039304->unk50++;
break;
case 5:
@@ -610,28 +609,28 @@ static void sub_8136BB8(void)
GetMonData(&gPlayerParty[sub_81370A4(gUnknown_083DFEC4->unk87DC)], MON_DATA_NICKNAME, gUnknown_02039304->stringBuffer);
StringGetEnd10(gUnknown_02039304->stringBuffer);
StringAppend(gUnknown_02039304->stringBuffer, gOtherText_GetsAPokeBlock);
- BasicInitMenuWindow(&gWindowConfig_81E709C);
- MenuDrawTextWindow(0, 16, 29, 19);
- MenuPrint(gUnknown_02039304->stringBuffer, 1, 17);
+ BasicInitMenuWindow(&gWindowTemplate_81E709C);
+ Menu_DrawStdWindowFrame(0, 16, 29, 19);
+ Menu_PrintText(gUnknown_02039304->stringBuffer, 1, 17);
DisplayYesNoMenu(23, 10, 1);
- MoveMenuCursor(0);
+ Menu_MoveCursor(0);
}
static s8 sub_8136C40(void)
{
- s8 retval = ProcessMenuInputNoWrap();
+ s8 retval = Menu_ProcessInputNoWrap();
if ((u8)(retval + 1) < 3)
{
- MenuZeroFillScreen();
- BasicInitMenuWindow(&gWindowConfig_81E7080);
+ Menu_EraseScreen();
+ BasicInitMenuWindow(&gWindowTemplate_81E7080);
}
return retval;
}
static void sub_8136C6C(void)
{
- BasicInitMenuWindow(&gWindowConfig_81E709C);
- MenuDrawTextWindow(0, 16, 29, 19);
+ BasicInitMenuWindow(&gWindowTemplate_81E709C);
+ Menu_DrawStdWindowFrame(0, 16, 29, 19);
for (gUnknown_02039304->unk53 = 0; gUnknown_02039304->unk53 < 5 && gUnknown_02039304->unk61[gUnknown_02039304->unk53] == 0; gUnknown_02039304->unk53++);
if (gUnknown_02039304->unk53 < 5)
{
@@ -667,21 +666,21 @@ static bool8 sub_8136D00(void)
static void sub_8136D60(void)
{
- BasicInitMenuWindow(&gWindowConfig_81E709C);
- MenuDrawTextWindow(0, 16, 29, 19);
- MenuPrint(gOtherText_WontEat, 1, 17);
+ BasicInitMenuWindow(&gWindowTemplate_81E709C);
+ Menu_DrawStdWindowFrame(0, 16, 29, 19);
+ Menu_PrintText(gOtherText_WontEat, 1, 17);
}
static void sub_8136D8C(void)
{
- MenuZeroFillScreen();
- BasicInitMenuWindow(&gWindowConfig_81E7080);
+ Menu_EraseScreen();
+ BasicInitMenuWindow(&gWindowTemplate_81E7080);
}
static void Pokeblock_MenuWindowTextPrint(const u8 *message)
{
- MenuDrawTextWindow(0, 16, 29, 19);
- MenuPrint(message, 1, 17);
+ Menu_DrawStdWindowFrame(0, 16, 29, 19);
+ Menu_PrintText(message, 1, 17);
}
#ifdef NONMATCHING
diff --git a/src/field/wallclock.c b/src/field/wallclock.c
index 2892d09f9..1f743a61a 100644
--- a/src/field/wallclock.c
+++ b/src/field/wallclock.c
@@ -10,7 +10,7 @@
#include "strings2.h"
#include "task.h"
#include "trig.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
extern u16 gSpecialVar_0x8004;
extern u8 gMiscClock_Gfx[];
@@ -190,10 +190,7 @@ static void WallClockVblankCallback(void)
static void LoadWallClockGraphics(void)
{
- u8 *addr;
- u32 size;
-
- SetVBlankCallback(0);
+ SetVBlankCallback(NULL);
REG_DISPCNT = 0;
REG_BG3CNT = 0;
REG_BG2CNT = 0;
@@ -208,19 +205,7 @@ static void LoadWallClockGraphics(void)
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
- addr = (void *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
+ DmaFill16Large(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000);
DmaClear32(3, OAM, OAM_SIZE);
DmaClear16(3, PLTT, PLTT_SIZE);
@@ -229,15 +214,15 @@ static void LoadWallClockGraphics(void)
LoadPalette(gMiscClockMale_Pal, 0, 32);
else
LoadPalette(gMiscClockFemale_Pal, 0, 32);
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
LoadCompressedObjectPic(&gUnknown_083F7A90[0]);
LoadSpritePalettes(gUnknown_083F7AA0);
- SetUpWindowConfig(&gWindowConfig_81E6C3C);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
}
static void WallClockInit(void)
@@ -414,10 +399,10 @@ static void Task_SetClock2(u8 taskId)
//Ask player "Is this the correct time?"
static void Task_SetClock3(u8 taskId)
{
- MenuDrawTextWindow(2, 16, 27, 19);
- MenuPrint(gOtherText_CorrectTimePrompt, 3, 17);
- MenuDrawTextWindow(23, 8, 29, 13);
- PrintMenuItems(24, 9, 2, gMenuYesNoItems);
+ Menu_DrawStdWindowFrame(2, 16, 27, 19);
+ Menu_PrintText(gOtherText_CorrectTimePrompt, 3, 17);
+ Menu_DrawStdWindowFrame(23, 8, 29, 13);
+ Menu_PrintItems(24, 9, 2, gMenuYesNoItems);
InitMenu(0, 24, 9, 2, 1, 5);
gTasks[taskId].func = Task_SetClock4;
}
@@ -425,7 +410,7 @@ static void Task_SetClock3(u8 taskId)
//Get menu selection
static void Task_SetClock4(u8 taskId)
{
- switch (ProcessMenuInputNoWrap_())
+ switch (Menu_ProcessInputNoWrap_())
{
case 0: //YES
PlaySE(SE_SELECT);
@@ -433,10 +418,10 @@ static void Task_SetClock4(u8 taskId)
return;
case -1: //B button
case 1: //NO
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(23, 8, 29, 13);
- MenuZeroFillWindowRect(2, 16, 27, 19);
+ Menu_EraseWindowRect(23, 8, 29, 13);
+ Menu_EraseWindowRect(2, 16, 27, 19);
gTasks[taskId].func = Task_SetClock2; //Go back and let player adjust clock
}
}
diff --git a/src/field/wild_encounter.c b/src/field/wild_encounter.c
index 4bf83cad8..19778e29b 100644
--- a/src/field/wild_encounter.c
+++ b/src/field/wild_encounter.c
@@ -3698,13 +3698,13 @@ const u16 gRoute119WaterTileData[] =
extern u16 gSpecialVar_Result;
extern u8 S_RepelWoreOff[];
-EWRAM_DATA static u8 sWildEncountersDisabled = 0;
+EWRAM_DATA u8 sWildEncountersDisabled = 0;
EWRAM_DATA static u32 sFeebasRngValue = 0;
#define NUM_FEEBAS_SPOTS 6
-static u16 FeebasRandom(void);
-static void FeebasSeedRng(u16 seed);
+u16 FeebasRandom(void);
+void FeebasSeedRng(u16 seed);
static bool8 IsWildLevelAllowedByRepel(u8 level);
static void ApplyFluteEncounterRateMod(u32 *encRate);
@@ -3791,17 +3791,30 @@ static bool8 CheckFeebas(void)
return FALSE;
}
-static u16 FeebasRandom(void)
+u16 FeebasRandom(void)
{
sFeebasRngValue = 12345 + 0x41C64E6D * sFeebasRngValue;
return sFeebasRngValue >> 16;
}
-static void FeebasSeedRng(u16 seed)
+void FeebasSeedRng(u16 seed)
{
sFeebasRngValue = seed;
}
+#if DEBUG
+u16 debug_sub_8092344(u8 arg0)
+{
+ if (arg0 == 0)
+ return 131;
+ if (arg0 == 1)
+ return 167;
+ if (arg0 == 2)
+ return 149;
+ return 0;
+}
+#endif
+
static u8 ChooseWildMonIndex_Land(void)
{
u8 rand = Random() % 100;
@@ -4042,6 +4055,24 @@ static bool8 DoWildEncounterRateDiceRoll(u16 encounterRate)
return FALSE;
}
+#if DEBUG
+u16 debug_sub_809283C(u16 attempts)
+{
+ u16 retval = 0;
+ u16 i = 0;
+
+ while (i < attempts)
+ {
+ if (DoWildEncounterRateDiceRoll(320) == TRUE)
+ retval++;
+
+ i++;
+ }
+
+ return retval;
+}
+#endif
+
static bool8 DoWildEncounterTest(u32 encounterRate, bool8 ignoreAbility)
{
encounterRate *= 16;
@@ -4254,7 +4285,7 @@ void FishingWildEncounter(u8 rod)
gWildMonHeaders[GetCurrentMapWildMonHeader()].fishingMonsInfo,
rod);
}
- IncrementGameStat(12);
+ IncrementGameStat(GAME_STAT_FISHING_CAPTURES);
sub_80BEA50(species);
BattleSetup_StartWildBattle();
}
diff --git a/asm/libagbsyscall.s b/src/libs/libagbsyscall.s
index de59d4c27..cdf6ca905 100644
--- a/asm/libagbsyscall.s
+++ b/src/libs/libagbsyscall.s
@@ -1,4 +1,4 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.syntax unified
.text
diff --git a/src/libs/libc.c b/src/libs/libc.c
deleted file mode 100644
index 920673e3e..000000000
--- a/src/libs/libc.c
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "global.h"
-#include <stddef.h>
-
-#define LBLOCKSIZE (sizeof(long))
-
-// Nonzero if (long)X contains a NULL byte.
-#define CONTAINSNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-
-// Nonzero if X is not aligned on a "long" boundary.
-#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1))
-
-void *memcpy(void *dst0, const void *src0, size_t len0)
-{
- char *dst = dst0;
- const char *src = src0;
- long *aligned_dst;
- const long *aligned_src;
- unsigned int len = len0;
-
- // If the size is small, or either src or dst is unaligned,
- // then go to the byte copy loop. This should be rare.
- if (len >= 16 && !(UNALIGNED(src) | UNALIGNED(dst)))
- {
- aligned_dst = (long *)dst;
- aligned_src = (long *)src;
-
- // Copy 4X long words at a time if possible.
- while (len >= 16)
- {
- *aligned_dst++ = *aligned_src++;
- *aligned_dst++ = *aligned_src++;
- *aligned_dst++ = *aligned_src++;
- *aligned_dst++ = *aligned_src++;
- len -= 16;
- }
-
- // Copy one long word at a time if possible
- while (len >= 4)
- {
- *aligned_dst++ = *aligned_src++;
- len -= 4;
- }
-
- dst = (char *)aligned_dst;
- src = (char *)aligned_src;
- }
-
- // Pick up any remaining bytes with a byte copier.
- while (len--)
- *dst++ = *src++;
-
- return dst0;
-}
-
-void *memset(void *m, int c, size_t n)
-{
- char *s = (char *)m;
- int count, i;
- unsigned long buffer;
- unsigned long *aligned_addr;
- unsigned char *unaligned_addr;
-
- // If the size is small or m is unaligned,
- // then go to the byte copy loop. This should be rare.
- if (n >= LBLOCKSIZE && !UNALIGNED(m))
- {
- // We know that n is large and m is word-aligned.
- aligned_addr = (unsigned long *)m;
-
- // Store C into each char sized location in buffer so that
- // we can set large blocks quickly.
- c &= 0xFF;
- if (LBLOCKSIZE == 4)
- {
- buffer = (c << 8) | c;
- buffer |= (buffer << 16);
- }
- else
- {
- buffer = 0;
- for (i = 0; i < LBLOCKSIZE; i++)
- buffer = (buffer << 8) | c;
- }
-
- while (n >= LBLOCKSIZE * 4)
- {
- *aligned_addr++ = buffer;
- *aligned_addr++ = buffer;
- *aligned_addr++ = buffer;
- *aligned_addr++ = buffer;
- n -= LBLOCKSIZE * 4;
- }
- while (n >= LBLOCKSIZE)
- {
- *aligned_addr++ = buffer;
- n -= LBLOCKSIZE;
- }
-
- s = (char *)aligned_addr;
- }
-
- // Pick up the remainder with a bytewise loop.
- while (n--)
- *s++ = (char)c;
-
- return m;
-}
-
-int strcmp(const char *s1, const char *s2)
-{
- unsigned long *a1;
- unsigned long *a2;
-
- // If s1 or s2 are unaligned, then skip this and compare bytes.
- if (!(UNALIGNED(s1) | UNALIGNED(s2)))
- {
- // Compare them a word at a time.
- a1 = (unsigned long *)s1;
- a2 = (unsigned long *)s2;
- while (*a1 == *a2)
- {
- // If *a1 == *a2, and we find a null in *a1,
- // then the strings must be equal, so return zero.
- if (CONTAINSNULL(*a1))
- return 0;
-
- a1++;
- a2++;
- }
-
- s1 = (char *)a1;
- s2 = (char *)a2;
- }
-
- // Check the remaining few bytes.
- while (*s1 != '\0' && *s1 == *s2)
- {
- s1++;
- s2++;
- }
-
- return (*(unsigned char *) s1) - (*(unsigned char *) s2);
-}
diff --git a/asm/libgcnmultiboot.s b/src/libs/libgcnmultiboot.s
index 91bc1890c..8c8b94998 100644
--- a/asm/libgcnmultiboot.s
+++ b/src/libs/libgcnmultiboot.s
@@ -1,7 +1,7 @@
@ This library can be used to download and execute a multi-boot image from
@ a GameCube using the JOY Bus protocol over the link cable.
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/constants.inc"
.equiv GCMB_STRUCT_COUNTER1, 0x00
diff --git a/src/libs/libisagbprn.c b/src/libs/libisagbprn.c
new file mode 100644
index 000000000..e0e979e95
--- /dev/null
+++ b/src/libs/libisagbprn.c
@@ -0,0 +1,177 @@
+#include <stdarg.h>
+#include <stdio.h>
+#include "gba/gba.h"
+#include "config.h"
+
+#define AGB_PRINT_FLUSH_ADDR 0x9FE209D
+#define AGB_PRINT_STRUCT_ADDR 0x9FE20F8
+#define AGB_PRINT_PROTECT_ADDR 0x9FE2FFE
+#define WSCNT_DATA (WAITCNT_PHI_OUT_16MHZ | WAITCNT_WS0_S_2 | WAITCNT_WS0_N_4)
+
+// originally for auto no$gba support, the string "no$gba" should be at this address,
+// the user needs to read this string out as the memory viewer won't show it.
+#define NOCASHGBAIDADDR 0x4FFFA00
+#define NOCASHGBAPRINTADDR1 0x4FFFA10 // automatically adds a newline after the string has finished
+#define NOCASHGBAPRINTADDR2 0x4FFFA14 // does not automatically add the newline. by default, NOCASHGBAPRINTADDR2 is used. this is used to keep strings consistent between no$gba and VBA-RR, but a user can choose to forgo this.
+
+struct AGBPrintStruct
+{
+ u16 m_nRequest;
+ u16 m_nBank;
+ u16 m_nGet;
+ u16 m_nPut;
+};
+
+typedef void (*LPFN_PRINT_FLUSH)(void);
+
+#ifndef NDEBUG
+
+void AGBPrintFlush1Block(void);
+
+void AGBPrintInit(void)
+{
+ volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
+ u16 *pWSCNT = (u16 *)REG_ADDR_WAITCNT;
+ u16 *pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR;
+ u16 nOldWSCNT = *pWSCNT;
+ *pWSCNT = WSCNT_DATA;
+ *pProtect = 0x20;
+ pPrint->m_nRequest = pPrint->m_nGet = pPrint->m_nPut = 0;
+ pPrint->m_nBank = 0xFD;
+ *pProtect = 0;
+ *pWSCNT = nOldWSCNT;
+}
+
+static void AGBPutcInternal(const char cChr)
+{
+ volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
+ u16 *pPrintBuf = (u16 *)(0x8000000 + (pPrint->m_nBank << 16));
+ u16 *pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR;
+ u16 nData = pPrintBuf[pPrint->m_nPut / 2];
+ *pProtect = 0x20;
+ nData = (pPrint->m_nPut & 1) ? (nData & 0xFF) | (cChr << 8) : (nData & 0xFF00) | cChr;
+ pPrintBuf[pPrint->m_nPut / 2] = nData;
+ pPrint->m_nPut++;
+ *pProtect = 0;
+}
+
+void AGBPutc(const char cChr)
+{
+ u16 *pWSCNT = (u16 *)REG_ADDR_WAITCNT;
+ u16 nOldWSCNT = *pWSCNT;
+ volatile struct AGBPrintStruct *pPrint;
+ *pWSCNT = WSCNT_DATA;
+ AGBPutcInternal(cChr);
+ *pWSCNT = nOldWSCNT;
+ pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
+ if (pPrint->m_nPut == ((pPrint->m_nGet - 1) & 0xFFFF))
+ AGBPrintFlush1Block();
+}
+
+void AGBPrint(const char *pBuf)
+{
+ volatile struct AGBPrintStruct *pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
+ u16 *pWSCNT = (u16 *)REG_ADDR_WAITCNT;
+ u16 nOldWSCNT = *pWSCNT;
+ *pWSCNT = WSCNT_DATA;
+ while (*pBuf)
+ {
+ AGBPutc(*pBuf);
+ pBuf++;
+ }
+ *pWSCNT = nOldWSCNT;
+}
+
+void AGBPrintf(const char *pBuf, ...)
+{
+ char bufPrint[0x100];
+ va_list vArgv;
+ va_start(vArgv, pBuf);
+ vsprintf(bufPrint, pBuf, vArgv);
+ va_end(vArgv);
+ AGBPrint(bufPrint);
+}
+
+static void AGBPrintTransferDataInternal(u32 bAllData)
+{
+ LPFN_PRINT_FLUSH lpfnFuncFlush;
+ u16 *pIME;
+ u16 nIME;
+ u16 *pWSCNT;
+ u16 nOldWSCNT;
+ u16 *pProtect;
+ volatile struct AGBPrintStruct *pPrint;
+
+ pProtect = (u16 *)AGB_PRINT_PROTECT_ADDR;
+ pPrint = (struct AGBPrintStruct *)AGB_PRINT_STRUCT_ADDR;
+ lpfnFuncFlush = (LPFN_PRINT_FLUSH)AGB_PRINT_FLUSH_ADDR;
+ pIME = (u16 *)REG_ADDR_IME;
+ nIME = *pIME;
+ pWSCNT = (u16 *)REG_ADDR_WAITCNT;
+ nOldWSCNT = *pWSCNT;
+ *pIME = nIME & ~1;
+ *pWSCNT = WSCNT_DATA;
+
+ if (bAllData)
+ {
+ while (pPrint->m_nPut != pPrint->m_nGet)
+ {
+ *pProtect = 0x20;
+ lpfnFuncFlush();
+ *pProtect = 0;
+ }
+ }
+ else if (pPrint->m_nPut != pPrint->m_nGet)
+ {
+ *pProtect = 0x20;
+ lpfnFuncFlush();
+ *pProtect = 0;
+ }
+
+ *pWSCNT = nOldWSCNT;
+ *pIME = nIME;
+}
+
+void AGBPrintFlush1Block(void)
+{
+ AGBPrintTransferDataInternal(FALSE);
+}
+
+void AGBPrintFlush(void)
+{
+ AGBPrintTransferDataInternal(TRUE);
+}
+
+void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram)
+{
+ if (nStopProgram)
+ {
+ AGBPrintf("ASSERTION FAILED FILE=[%s] LINE=[%d] EXP=[%s] \n", pFile, nLine, pExpression);
+ AGBPrintFlush();
+ asm(".hword 0xEFFF");
+ }
+ else
+ {
+ AGBPrintf("WARING FILE=[%s] LINE=[%d] EXP=[%s] \n", pFile, nLine, pExpression);
+ }
+}
+
+// no$gba print functions, uncomment to use
+/*
+void NoCashGBAPrint(const char *pBuf)
+{
+ *(volatile u32*)NOCASHGBAPRINTADDR2 = (u32)pBuf;
+}
+
+void NoCashGBAPrintf(const char *pBuf, ...)
+{
+ char bufPrint[0x100];
+ va_list vArgv;
+ va_start(vArgv, pBuf);
+ vsprintf(bufPrint, pBuf, vArgv);
+ va_end(vArgv);
+ NoCashGBAPrint(bufPrint);
+}
+*/
+
+#endif
diff --git a/asm/m4a_1.s b/src/libs/m4a_1.s
index 849cf5c2d..8dbcf7efd 100644
--- a/asm/m4a_1.s
+++ b/src/libs/m4a_1.s
@@ -1,10 +1,14 @@
- .include "asm/macros.inc"
+ .include "include/macros.inc"
.include "constants/gba_constants.inc"
.include "constants/m4a_constants.inc"
.syntax unified
- .lcomm gUnknown_030007B8, 0x770
+ .bss
+
+ .global gUnknown_030007B8
+gUnknown_030007B8:
+ .space 0x770
.text
diff --git a/src/pokemon/learn_move.c b/src/pokemon/learn_move.c
index ef1d66349..356a31b00 100644
--- a/src/pokemon/learn_move.c
+++ b/src/pokemon/learn_move.c
@@ -25,8 +25,8 @@ extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u8 gTileBuffer[];
-extern const struct WindowConfig gWindowConfig_81E6CE4;
-extern const struct WindowConfig gWindowConfig_81E7240;
+extern const struct WindowTemplate gWindowTemplate_81E6CE4;
+extern const struct WindowTemplate gWindowTemplate_81E7240;
extern const u8 *const gContestEffectStrings[];
extern const u8 *const gMoveDescriptions[];
extern const u8 gTypeNames[][7];
@@ -268,13 +268,13 @@ void CB2_InitLearnMove(void)
sub_8133558();
SetVBlankCallback(VBlankCB_LearnMove);
- SetUpWindowConfig(&gWindowConfig_81E7240);
- InitMenuWindow(&gWindowConfig_81E7240);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7240);
+ InitMenuWindow(&gWindowTemplate_81E7240);
+ Menu_EraseScreen();
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Menu_EraseScreen();
REG_BG0VOFS = 0;
REG_BG0VOFS = 0; // huh?
@@ -302,13 +302,13 @@ void sub_81327A4(void)
sLearnMoveStruct->unk2C6 = gSpecialVar_0x8005;
SetVBlankCallback(VBlankCB_LearnMove);
- SetUpWindowConfig(&gWindowConfig_81E7240);
- InitMenuWindow(&gWindowConfig_81E7240);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7240);
+ InitMenuWindow(&gWindowTemplate_81E7240);
+ Menu_EraseScreen();
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
- MenuZeroFillScreen();
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Menu_EraseScreen();
REG_DISPCNT = 0x1340;
REG_BG0VOFS = 0;
@@ -333,7 +333,7 @@ void CB2_LearnMove(void)
if (sLearnMoveStruct->unk1D)
{
sLearnMoveStruct->unk1D = FALSE;
- sub_814AD7C(0x58, (sLearnMoveStruct->unk18 * 2 + 1) * 8);
+ MenuCursor_SetPos814AD7C(0x58, (sLearnMoveStruct->unk18 * 2 + 1) * 8);
}
if (sLearnMoveStruct->unk1E != 0)
{
@@ -401,7 +401,7 @@ void LearnMoveMain(void)
sub_813362C();
break;
case 8:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
DisplayYesNoMenu(21, 7, 1);
sLearnMoveStruct->state++;
@@ -409,7 +409,7 @@ void LearnMoveMain(void)
break;
case 9:
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
@@ -436,7 +436,7 @@ void LearnMoveMain(void)
}
break;
case 12:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
DisplayYesNoMenu(21, 7, 1);
sLearnMoveStruct->state++;
@@ -444,7 +444,7 @@ void LearnMoveMain(void)
break;
case 13:
{
- s8 selection = ProcessMenuInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrap_();
if (selection == 0)
{
@@ -467,7 +467,7 @@ void LearnMoveMain(void)
sLearnMoveStruct->state++;
break;
case 17:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
DisplayYesNoMenu(21, 7, 1);
sLearnMoveStruct->state = 18;
@@ -475,7 +475,7 @@ void LearnMoveMain(void)
break;
case 18:
{
- s8 var = ProcessMenuInputNoWrap_();
+ s8 var = Menu_ProcessInputNoWrap_();
if (var == 0)
{
@@ -495,7 +495,7 @@ void LearnMoveMain(void)
sLearnMoveStruct->state++;
break;
case 25:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
sLearnMoveStruct->state = 26;
DisplayYesNoMenu(21, 7, 1);
@@ -503,7 +503,7 @@ void LearnMoveMain(void)
break;
case 26:
{
- s8 var = ProcessMenuInputNoWrap_();
+ s8 var = Menu_ProcessInputNoWrap_();
if (var == 0)
{
@@ -524,7 +524,7 @@ void LearnMoveMain(void)
}
break;
case 27:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
if (sLearnMoveStruct->showContestInfo == FALSE)
sLearnMoveStruct->state = 3;
@@ -533,7 +533,7 @@ void LearnMoveMain(void)
}
break;
case 19:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
sLearnMoveStruct->state = 20;
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
@@ -547,7 +547,7 @@ void LearnMoveMain(void)
}
break;
case 21:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
sLearnMoveStruct->state = 14;
break;
case 22:
@@ -597,7 +597,7 @@ void LearnMoveMain(void)
}
break;
case 30:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
#ifdef ENGLISH
sub_81328E8(gOtherText_ForgotOrDidNotLearnMove);
@@ -609,7 +609,7 @@ void LearnMoveMain(void)
}
break;
case 31:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
PlayFanfare(BGM_FANFA1);
sLearnMoveStruct->state = 32;
@@ -633,16 +633,16 @@ void DrawLearnMoveMenuWindow(void)
{
u32 i;
- BasicInitMenuWindow(&gWindowConfig_81E7240);
+ BasicInitMenuWindow(&gWindowTemplate_81E7240);
for (i = 0; i < 4; i++)
{
- MenuDrawTextWindow(
+ Menu_DrawStdWindowFrame(
gUnknown_08402CF8[i][0],
gUnknown_08402CF8[i][1],
gUnknown_08402CF8[i][2],
gUnknown_08402CF8[i][3]);
}
- BasicInitMenuWindow(&gWindowConfig_81E6CE4);
+ BasicInitMenuWindow(&gWindowTemplate_81E6CE4);
}
void sub_8133030(bool8 a)
@@ -658,7 +658,7 @@ void sub_8133030(bool8 a)
for (i = 0; gUnknown_08402D08[0][i].unk0 != NULL; i++)
{
sub_8072C74(gTileBuffer, gUnknown_08402D08[0][i].unk0, 64, 2);
- MenuPrint(gTileBuffer, gUnknown_08402D08[0][i].unk4, gUnknown_08402D08[0][i].unk5);
+ Menu_PrintText(gTileBuffer, gUnknown_08402D08[0][i].unk4, gUnknown_08402D08[0][i].unk5);
}
if (!a)
@@ -696,10 +696,10 @@ void sub_8133140(bool8 a)
for (i = 0; gUnknown_08402D08[0][i].unk0 != NULL; i++)
{
sub_8072C74(gTileBuffer, gUnknown_08402D08[1][i].unk0, 64, 2);
- MenuPrint(gTileBuffer, gUnknown_08402D08[1][i].unk4, gUnknown_08402D08[1][i].unk5);
+ Menu_PrintText(gTileBuffer, gUnknown_08402D08[1][i].unk4, gUnknown_08402D08[1][i].unk5);
if (i != 0)
{
- MenuZeroFillWindowRect(
+ Menu_EraseWindowRect(
gUnknown_08402D08[1][i].unk4,
gUnknown_08402D08[1][i].unk5 + 2,
gUnknown_08402D08[1][i].unk4 + 7,
@@ -938,7 +938,7 @@ void sub_8133800(void)
r6++;
}
*str = EOS;
- MenuPrint(gTileBuffer, 11, 1);
+ Menu_PrintText(gTileBuffer, 11, 1);
sub_813360C(0);
}
@@ -972,17 +972,17 @@ void PrintMoveInfo(u16 moveId, const u8 *b)
sub_8072C74(str, gOtherText_ThreeDashes2, 32, 2);
else
sub_8072C14(str, gBattleMoves[moveId].power, 32, 2);
- MenuPrint(str, b[0], b[1]);
+ Menu_PrintText(str, b[0], b[1]);
break;
case 4:
if (gBattleMoves[moveId].accuracy == 0)
sub_8072C74(str, gOtherText_ThreeDashes2, 32, 2);
else
sub_8072C14(str, gBattleMoves[moveId].accuracy, 32, 2);
- MenuPrint(str, b[0], b[1]);
+ Menu_PrintText(str, b[0], b[1]);
break;
case 6:
- MenuZeroFillWindowRect(b[0], b[1], b[0], b[1] + 1);
+ Menu_EraseWindowRect(b[0], b[1], b[0], b[1] + 1);
numHearts = gContestEffects[gContestMoves[moveId].effect].appeal / 10;
if (numHearts == 255)
numHearts = 0;
@@ -995,7 +995,7 @@ void PrintMoveInfo(u16 moveId, const u8 *b)
}
break;
case 7:
- MenuZeroFillWindowRect(b[0], b[1], b[0], b[1] + 1);
+ Menu_EraseWindowRect(b[0], b[1], b[0], b[1] + 1);
numHearts = gContestEffects[gContestMoves[moveId].effect].jam / 10;
if (numHearts == 255)
numHearts = 0;
@@ -1037,7 +1037,7 @@ void sub_8133AEC(bool8 contestInfo, int unused)
{
u8 r1 = var * 2 + 9;
- MenuFillWindowRectWithBlankTile(11, r1, 28, 12);
+ Menu_BlankWindowRect(11, r1, 28, 12);
}
}
}
@@ -1045,22 +1045,22 @@ void sub_8133AEC(bool8 contestInfo, int unused)
{
if (contestInfo)
{
- MenuZeroFillWindowRect(gUnknown_08402E24[5][0], gUnknown_08402E24[5][1], gUnknown_08402E24[5][0], gUnknown_08402E24[5][1] + 1);
- MenuZeroFillWindowRect(gUnknown_08402E24[6][0], gUnknown_08402E24[6][1], gUnknown_08402E24[6][0], gUnknown_08402E24[6][1] + 1);
+ Menu_EraseWindowRect(gUnknown_08402E24[5][0], gUnknown_08402E24[5][1], gUnknown_08402E24[5][0], gUnknown_08402E24[5][1] + 1);
+ Menu_EraseWindowRect(gUnknown_08402E24[6][0], gUnknown_08402E24[6][1], gUnknown_08402E24[6][0], gUnknown_08402E24[6][1] + 1);
for (i = 0; i < 16; i++)
gSprites[sLearnMoveStruct->spriteIDs[i + 4]].invisible = TRUE;
}
else
{
- MenuZeroFillWindowRect(gUnknown_08402E24[1][0], gUnknown_08402E24[1][1], gUnknown_08402E24[1][0] + 3, gUnknown_08402E24[1][1] + 1);
- MenuZeroFillWindowRect(gUnknown_08402E24[3][0], gUnknown_08402E24[3][1], gUnknown_08402E24[3][0] + 3, gUnknown_08402E24[3][1] + 1);
+ Menu_EraseWindowRect(gUnknown_08402E24[1][0], gUnknown_08402E24[1][1], gUnknown_08402E24[1][0] + 3, gUnknown_08402E24[1][1] + 1);
+ Menu_EraseWindowRect(gUnknown_08402E24[3][0], gUnknown_08402E24[3][1], gUnknown_08402E24[3][0] + 3, gUnknown_08402E24[3][1] + 1);
}
- MenuZeroFillWindowRect(11, 9, 28, 12);
+ Menu_EraseWindowRect(11, 9, 28, 12);
}
}
void sub_8133CA4(void)
{
- MenuZeroFillWindowRect(21, 7, 27, 12);
+ Menu_EraseWindowRect(21, 7, 27, 12);
sub_8133AEC(sLearnMoveStruct->showContestInfo, 0);
}
diff --git a/src/pokemon/mail.c b/src/pokemon/mail.c
index 2ab05ca2b..4497c98fb 100644
--- a/src/pokemon/mail.c
+++ b/src/pokemon/mail.c
@@ -1,7 +1,10 @@
#include "global.h"
#include "mail.h"
+#include "data2.h"
#include "easy_chat.h"
#include "constants/items.h"
+#include "constants/species.h"
+#include "field_fadetransition.h"
#include "graphics.h"
#include "mail_data.h"
#include "menu.h"
@@ -10,14 +13,17 @@
#include "palette.h"
#include "pokemon_icon.h"
#include "overworld.h"
+#include "script.h"
#include "sprite.h"
#include "string_util.h"
#include "strings2.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "ewram.h"
+extern u8 (*gMenuCallback)(void);
+
struct UnkMailStruct
{
u8 unk_0_0:2;
@@ -234,6 +240,56 @@ const struct MailLayout gUnknown_083E57A4[] =
{5, 15, 15, 4, 3, Unknown_3E5790},
};
+#if DEBUG
+
+const u8 Str_8411540[] = _("レイアウトを にほんごで ひょうじ?"); // Display using Japanese layout?
+const u8 Str_8411553[] = _("にほんご "); // Japanese
+const u8 Str_8411559[] = _("かいがい "); // Overseas
+
+const u8 *const _8411560[] =
+{
+ Str_8411553,
+ Str_8411559,
+};
+
+const u8 Str_8411568[] = _("イメージ タイプを えらんでね"); // Choose an image type
+const u8 Str_8411578[] = _("{STR_VAR_1}");
+const u8 Str_841157B[] = _("オレンジ "); // Orange
+const u8 Str_8411581[] = _("ハーバー "); // Harbor
+const u8 Str_8411587[] = _("キラキラ "); // Glitter
+const u8 Str_841158D[] = _("メカニカル"); // Mech
+const u8 Str_8411593[] = _("ウッディー"); // Wood
+const u8 Str_8411599[] = _("クロス  "); // Wave
+const u8 Str_841159F[] = _("トレジャー"); // Bead
+const u8 Str_84115A5[] = _("シャドウ "); // Shadow
+const u8 Str_84115AB[] = _("トロピカル"); // Tropic
+const u8 Str_84115B1[] = _("ドリーム "); // Dream
+const u8 Str_84115B7[] = _("ミラクル "); // Fab
+const u8 Str_84115BD[] = _("レトロ  "); // Retro
+
+const u8 *const _84115C4[] =
+{
+ Str_841157B,
+ Str_8411581,
+ Str_8411587,
+ Str_841158D,
+ Str_8411593,
+ Str_8411599,
+ Str_841159F,
+ Str_84115A5,
+ Str_84115AB,
+ Str_84115B1,
+ Str_84115B7,
+ Str_84115BD,
+};
+
+const u8 Str_84115F4[] = _("メールをみる"); // View Mail
+const u8 Str_84115FB[] = _("メールとうろく"); // Register Mail
+const u8 Str_8411603[] = _("もたせる"); // Give to Pokémon
+const u8 Str_8411608[] = _("メールをけす"); // Delete Mail
+
+#endif
+
// XXX: what is this?
static u8 *const sSharedMemPtr = gSharedMem;
@@ -247,26 +303,44 @@ static void sub_80F8F58(void);
static void sub_80F8F78(void);
static void sub_80F8FB4(void);
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+extern u16 gSpecialVar_0x8006;
+
+#if DEBUG
+static u8 gUnknown_Debug_0300079C;
+#endif
+
void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
{
- u16 mailDesign;
u16 buffer[2];
+ u16 species;
- ewram0_4.varFF = GAME_LANGUAGE;
- ewram0_4.var100 = 1;
- ewram0_4.var104 = (MainCallback)EasyChat_GetWordText;
- ewram0_4.var108 = (MainCallback)ConvertEasyChatWordsToString;
-
- mailDesign = arg0->itemId - ITEM_ORANGE_MAIL;
-
- if (mailDesign <= 11)
+#if DEBUG
+ if (gUnknown_Debug_0300079C != 0)
{
- ewram0_4.varFA = arg0->itemId - ITEM_ORANGE_MAIL;
+ ewram0_4.varFF = GAME_LANGUAGE;
+ ewram0_4.var100 = gSpecialVar_0x8004;
+ ewram0_4.var104 = (MainCallback)EasyChat_GetWordText;
+ ewram0_4.var108 = (MainCallback)ConvertEasyChatWordsToString;
+ ewram0_4.varFA = gSpecialVar_0x8006;
}
else
+#endif
{
- ewram0_4.varFA = 0;
- arg2 = FALSE;
+ ewram0_4.varFF = GAME_LANGUAGE;
+ ewram0_4.var100 = 1;
+ ewram0_4.var104 = (MainCallback)EasyChat_GetWordText;
+ ewram0_4.var108 = (MainCallback)ConvertEasyChatWordsToString;
+ if (IS_ITEM_MAIL(arg0->itemId))
+ {
+ ewram0_4.varFA = arg0->itemId - 0x79;
+ }
+ else
+ {
+ ewram0_4.varFA = 0;
+ arg2 = FALSE;
+ }
}
switch (ewram0_4.var100)
@@ -275,24 +349,22 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
default:
ewram0_4.var10C = &gUnknown_083E5730[ewram0_4.varFA];
break;
-
case 1:
ewram0_4.var10C = &gUnknown_083E57A4[ewram0_4.varFA];
break;
}
- if (((MailSpeciesToSpecies(arg0->species, buffer) << 16) + 0xFFFF0000) <= (410 << 16))
+ species = MailSpeciesToSpecies(arg0->species, buffer);
+ if (species >= 1 && species <= 411)
{
switch (ewram0_4.varFA)
{
case 6:
ewram0_4.varFB = 1;
break;
-
case 9:
ewram0_4.varFB = 2;
break;
-
default:
ewram0_4.varFB = 0;
break;
@@ -303,7 +375,6 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
ewram0_4.varFB = 0;
}
-
ewram0_4.varF4 = arg0;
ewram0_4.varEC = arg1;
ewram0_4.varF8 = arg2;
@@ -320,7 +391,7 @@ static u8 sub_80F8A28(void)
{
case 0:
SetVBlankCallback(NULL);
- remove_some_task();
+ ScanlineEffect_Stop();
REG_DISPCNT = 0;
RETURN_UP_STATE;
@@ -354,11 +425,11 @@ static u8 sub_80F8A28(void)
RETURN_UP_STATE;
case 6:
- SetUpWindowConfig(&gWindowConfig_81E6DFC);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6DFC);
RETURN_UP_STATE;
case 7:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6DFC);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6DFC);
RETURN_UP_STATE;
case 8:
@@ -369,7 +440,7 @@ static u8 sub_80F8A28(void)
RETURN_UP_STATE;
case 9:
- MenuZeroFillScreen();
+ Menu_EraseScreen();
RETURN_UP_STATE;
case 10: CpuFill16(1, (void *)(VRAM + 0x4800), 0x800);
@@ -528,11 +599,11 @@ static void sub_80F8E80(void)
x = ewram0_4.var10C->var4[pos].unk_0_4;
y += ewram0_4.var10C->var4[pos].unk_0_0;
- MenuPrint(ewram0_4.words[pos], ewram0_4.var10C->var3_4 + x, ewram0_4.var10C->var3_0 + y);
+ Menu_PrintText(ewram0_4.words[pos], ewram0_4.var10C->var3_4 + x, ewram0_4.var10C->var3_0 + y);
y += 2;
}
- MenuPrint(ewram0_4.varD8, ewram0_4.varF9, ewram0_4.var10C->var1);
+ Menu_PrintText(ewram0_4.varD8, ewram0_4.varF9, ewram0_4.var10C->var1);
}
static void sub_80F8F18(void)
@@ -575,25 +646,514 @@ static void sub_80F8F78(void)
static void sub_80F8FB4(void)
{
- u16 local1;
+ if (!UpdatePaletteFade())
+ {
+ SetMainCallback2(ewram0_4.varEC);
+ switch (ewram0_4.varFB)
+ {
+ case 2:
+ case 1:
+ sub_809D608(sub_809D4A8(ewram0_4.varF4->species));
+ sub_809D510(&gSprites[ewram0_4.varFC]);
+ break;
+ }
+#if !DEBUG
+ memset(&ewram0_4, 0, 0x110);
+#endif
+ ResetPaletteFade();
+ }
+}
+
+#if DEBUG
+
+void debug_sub_810CA7C(u8);
+void debug_sub_810CE1C(u8);
+void debug_sub_810D388(void);
+void debug_sub_810D340(void);
+
+void debug_sub_810C910(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ gUnknown_Debug_0300079C = 1;
+ Menu_EraseScreen();
+ DestroyTask(taskId);
+ if (gSaveBlock1.mail[gSpecialVar_0x8005].itemId == 0)
+ HandleReadMail(&gSaveBlock1.mail[gSpecialVar_0x8005], debug_sub_810D388, 0);
+ else
+ HandleReadMail(&gSaveBlock1.mail[gSpecialVar_0x8005], debug_sub_810D388, 1);
+ }
+}
+
+void debug_sub_810C990(u8 taskId)
+{
+ if (gMain.newKeys & (DPAD_LEFT | DPAD_DOWN))
+ {
+ gSpecialVar_0x8006 = (gSpecialVar_0x8006 + 11) % 12;
+ Menu_DrawStdWindowFrame(1, 1, 10, 4);
+ Menu_PrintText(_84115C4[gSpecialVar_0x8006], 2, 2);
+ }
+ else if (gMain.newKeys & (DPAD_UP | DPAD_RIGHT))
+ {
+ gSpecialVar_0x8006 = (gSpecialVar_0x8006 + 1) % 12;
+ Menu_DrawStdWindowFrame(1, 1, 10, 4);
+ Menu_PrintText(_84115C4[gSpecialVar_0x8006], 2, 2);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = debug_sub_810C910;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(Str_8411540, 4, 15);
+ Menu_PrintText(_8411560[gSpecialVar_0x8004], 2, 2);
+ gTasks[taskId].func = debug_sub_810CA7C;
+ }
+}
- if (UpdatePaletteFade())
+void debug_sub_810CA7C(u8 taskId)
+{
+ if (gMain.newKeys & 0xF0)
+ {
+ gSpecialVar_0x8004 ^= 1;
+ Menu_PrintText(_8411560[gSpecialVar_0x8004], 2, 2);
+ }
+ else if (gMain.newKeys & A_BUTTON)
{
+ if (gMain.watchedKeysPressed)
+ {
+ gMain.watchedKeysPressed = FALSE;
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(Str_8411540, 4, 15);
+ Menu_DrawStdWindowFrame(1, 1, 10, 4);
+ Menu_PrintText(_8411560[gSpecialVar_0x8004], 2, 2);
+ }
+ else
+ {
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(Str_8411568, 4, 15);
+ Menu_DrawStdWindowFrame(1, 1, 10, 4);
+ Menu_PrintText(_84115C4[gSpecialVar_0x8006], 2, 2);
+ gTasks[taskId].func = debug_sub_810C990;
+ }
+ }
+}
+
+void debug_sub_810CB50(u8 taskId)
+{
+ u8 sp0[] = _("{STR_VAR_1} {STR_VAR_2}");
+ u8 sp8[] = _("メール{STR_VAR_1} {STR_VAR_2}");
+ bool8 r2 = FALSE;
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_0x8005, 2, 1);
+ StringCopy(gStringVar2, gSpeciesNames[gTasks[taskId].data[0]]);
+ gSaveBlock1.mail[gSpecialVar_0x8005].species = gTasks[taskId].data[0];
+ StringExpandPlaceholders(gStringVar4, sp8);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gStringVar4, 4, 15);
+ DestroyTask(taskId);
+ CreateTask(debug_sub_810CE1C, 0);
+ debug_sub_810D340();
return;
}
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ DestroyTask(taskId);
+ Menu_EraseScreen();
+ CreateTask(debug_sub_810CE1C, 0);
+ debug_sub_810D340();
+ return;
+ }
+ else if (gMain.newKeys & (DPAD_LEFT | DPAD_DOWN))
+ {
+ gTasks[taskId].data[0] = (gTasks[taskId].data[0] + 0x19B) % 0x19C;
+ r2 = TRUE;
+ }
+ else if (gMain.newKeys & (DPAD_UP | DPAD_RIGHT))
+ {
+ gTasks[taskId].data[0] = (gTasks[taskId].data[0] + 1) % 0x19C;
+ r2 = TRUE;
+ }
+
+ if (r2)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[0], 2, 3);
+ StringCopy(gStringVar2, gSpeciesNames[gTasks[taskId].data[0]]);
+ StringExpandPlaceholders(gStringVar4, sp0);
+ Menu_DrawStdWindowFrame(0, 0, 12, 3);
+ Menu_PrintText(gStringVar4, 1, 1);
+ }
+}
+
+void debug_sub_810CCEC(u8 taskId)
+{
+ u8 string1[] = _("メール{STR_VAR_1}を だれに もたせる?");
+ u8 string2[] = _("000 {STR_VAR_1}");
+
+ ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_0x8005, 1, 1);
+ StringExpandPlaceholders(gStringVar4, string1);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gStringVar4, 4, 15);
+
+ StringCopy(gStringVar1, gSpeciesNames[0]);
+ StringExpandPlaceholders(gStringVar4, string2);
+ Menu_DrawStdWindowFrame(0, 0, 12, 3);
+ Menu_PrintText(string2, 1, 1); // This probably should have been gStringVar4
+
+ gTasks[taskId].func = debug_sub_810CB50;
+}
+
+u8 debug_sub_810CD9C(void)
+{
+ CloseMenu();
+ ScriptContext1_Stop();
+ ScriptContext2_Enable();
+ gUnknown_Debug_0300079C = 0;
+ gSpecialVar_0x8004 = gSpecialVar_0x8005 = gSpecialVar_0x8006 = 0;
+ SetMainCallback2(debug_sub_810D388);
+ return 1;
+}
+
+void debug_sub_810CDE0(void)
+{
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+void debug_sub_810CDF0(void)
+{
+ gMain.watchedKeysPressed = 0;
+ gMain.watchedKeysMask = 0;
+ gFieldCallback = mapldr_default;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+}
+
+void debug_sub_810CE1C(u8 taskId)
+{
+ if (gMenuCallback() == TRUE)
+ {
+ CloseMenu();
+ DestroyTask(taskId);
+ }
+}
+
+u8 debug_sub_810CE48(void)
+{
+ s8 input = Menu_ProcessInput();
+
+ switch (input)
+ {
+ case -1:
+ Menu_EraseScreen();
+ debug_sub_810D340();
+ return 0;
+ case -2:
+ return 0;
+ default:
+ gSpecialVar_0x8005 = input;
+ gSpecialVar_0x8006 %= 12;
+ CreateTask(debug_sub_810CA7C, 0);
+ gMain.watchedKeysPressed = TRUE; // huh?
+ gMain.watchedKeysMask = 0;
+ return 1;
+ }
+}
+
+u8 debug_sub_810CEA4(void)
+{
+ if (!gPaletteFade.active)
+ {
+ gSpecialVar_0x8004 = 4;
+ sub_80E60D8();
+ return 1;
+ }
+ return 0;
+}
+
+u8 debug_sub_810CED0(void)
+{
+ u8 text[] = _("せいきの データが とうろくずみ です\n"
+ "しんき とうろく できません");
+ s8 input = Menu_ProcessInput();
+
+ switch (input)
+ {
+ case -1:
+ Menu_EraseScreen();
+ break;
+ case -2:
+ return 0;
+ default:
+ gSpecialVar_0x8005 = input;
+ if (IS_ITEM_MAIL(gSaveBlock1.mail[input].itemId))
+ {
+ Menu_EraseScreen();
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(text, 4, 15);
+ }
+ else
+ {
+ gSaveBlock1.mail[gSpecialVar_0x8005].itemId = 0xFFFF;
+ StringCopy(gSaveBlock1.mail[gSpecialVar_0x8005].playerName, gSaveBlock2.playerName);
+ *(u32 *)gSaveBlock1.mail[gSpecialVar_0x8005].trainerId = *(u32 *)gSaveBlock2.playerTrainerId;
+ gMenuCallback = debug_sub_810CEA4;
+ return 0;
+ }
+ break;
+ }
+ debug_sub_810D340();
+ return 0;
+}
- SetMainCallback2(ewram0_4.varEC);
- switch (ewram0_4.varFB)
+u8 debug_sub_810CFA4(void)
+{
+ u8 text[] = _("せいきに とうろくされたメールデータは\n"
+ "へんこう できません");
+ s8 input = Menu_ProcessInput();
+
+ switch (input)
{
+ case -1:
+ Menu_EraseScreen();
+ debug_sub_810D340();
+ return 0;
+ case -2:
+ return 0;
+ default:
+ gSpecialVar_0x8005 = input;
+ if (IS_ITEM_MAIL(gSaveBlock1.mail[input].itemId))
+ {
+ Menu_EraseScreen();
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(text, 4, 15);
+ debug_sub_810D340();
+ return 0;
+ }
+ else
+ {
+ CreateTask(debug_sub_810CCEC, 0);
+ return 1;
+ }
+ }
+}
+
+u8 debug_sub_810D030(void)
+{
+ const u8 text1[] = _("メール{STR_VAR_1} とうろく かいじょ");
+ const u8 text2[] = _("デバッグメニューから とうろくした\n"
+ "メール いがいは けせません");
+ s8 input = Menu_ProcessInput();
+
+ switch (input)
+ {
+ case -1:
+ Menu_EraseScreen();
+ debug_sub_810D340();
+ return 0;
+ case -2:
+ return 0;
+ default:
+ gSpecialVar_0x8005 = input;
+ if (gSaveBlock1.mail[gSpecialVar_0x8005].itemId != 0xFFFF
+ && gSaveBlock1.mail[gSpecialVar_0x8005].itemId != 0)
+ {
+ Menu_EraseScreen();
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(text2, 4, 15);
+ debug_sub_810D340();
+ return 0;
+ }
+ else
+ {
+ s8 i;
+
+ gSaveBlock1.mail[gSpecialVar_0x8005].itemId = 0;
+ gSaveBlock1.mail[gSpecialVar_0x8005].species = 0;
+ gSaveBlock1.mail[gSpecialVar_0x8005].playerName[0] = EOS;
+ *(u32 *)gSaveBlock1.mail[gSpecialVar_0x8005].trainerId = 0;
+ for (i = 0; i < 9; i++)
+ gSaveBlock1.mail[gSpecialVar_0x8005].words[i] = 0xFFFF;
+ ConvertIntToDecimalStringN(gStringVar1, gSpecialVar_0x8005, 1, 1);
+ StringExpandPlaceholders(gStringVar4, text1);
+ Menu_EraseScreen();
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gStringVar4, 4, 15);
+ debug_sub_810D340();
+ return 0;
+ }
+ }
+}
+
+void debug_sub_810D174(u8 a)
+{
+ u8 string[] = _("メール{STR_VAR_1} {STR_VAR_2} {STR_VAR_3}");
+ u8 buffer[9][20];
+ struct MenuAction menuActions[9];
+ u8 i;
+
+ for (i = 0; i < 9; i++)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, i, 1, 1);
+ if (gSaveBlock1.mail[i].itemId == 0xFFFF)
+ {
+ ConvertIntToDecimalStringN(gStringVar2, 1, 1, 1);
+ }
+ else if (IS_ITEM_MAIL(gSaveBlock1.mail[i].itemId))
+ {
+ ConvertIntToDecimalStringN(gStringVar2, 2, 1, 1);
+ }
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar2, 0, 1, 1);
+ gSaveBlock1.mail[i].itemId = 0;
+ }
+ StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1.mail[i].species]);
+ StringExpandPlaceholders(buffer[i], string);
+ menuActions[i].text = buffer[i];
+ menuActions[i].func = NULL;
+ }
+ Menu_DrawStdWindowFrame(0, 0, 16, 19);
+ Menu_PrintItems(2, 1, 9, menuActions);
+ InitMenu(0, 1, 1, 9, 0, 15);
+ switch (a)
+ {
+ case 0:
+ gMenuCallback = debug_sub_810CE48;
+ break;
+ case 1:
+ gMenuCallback = debug_sub_810CED0;
+ break;
case 2:
+ gMenuCallback = debug_sub_810CFA4;
+ break;
+ case 3:
+ gMenuCallback = debug_sub_810D030;
+ break;
+ }
+}
+
+u8 debug_sub_810D2F4(void)
+{
+ s8 input = Menu_ProcessInput();
+
+ switch (input)
+ {
+ case -1:
+ SetMainCallback2(debug_sub_810CDF0);
+ return 1;
+ case -2:
+ return 0;
+ }
+
+ switch (input)
+ {
+ case 0:
+ debug_sub_810D174(input);
+ return 0;
case 1:
- local1 = sub_809D4A8(ewram0_4.varF4->species);
- sub_809D608(local1);
+ debug_sub_810D174(input);
+ return 0;
+ case 2:
+ debug_sub_810D174(input);
+ return 0;
+ case 3:
+ debug_sub_810D174(input);
+ return 0;
+ }
+
+ return 1;
+}
+
+const struct MenuAction _84116BC[] =
+{
+ {Str_84115F4, NULL},
+ {Str_84115FB, NULL},
+ {Str_8411603, NULL},
+ {Str_8411608, NULL},
+};
+
+void debug_sub_810D340(void)
+{
+ Menu_DrawStdWindowFrame(0, 0, 9, 9);
+ Menu_PrintItems(2, 1, 4, _84116BC);
+ InitMenu(0, 1, 1, 4, 0, 8);
+ gMenuCallback = debug_sub_810D2F4;
+}
- sub_809D510(&gSprites[ewram0_4.varFC]);
+void debug_sub_810D388(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ if (gUnknown_Debug_0300079C != 0)
+ {
+ gMain.state = 2;
+ gUnknown_Debug_0300079C = 0;
+ return;
+ }
+ else
+ {
+ ScanlineEffect_Stop();
+ ResetPaletteFade();
+ SetVBlankCallback(sub_80F8F18);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ }
+ break;
+ case 1:
+ if (UpdatePaletteFade())
+ return;
+ break;
+ case 2:
+ SetVBlankCallback(NULL);
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ break;
+ case 3:
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ break;
+ case 4:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ Menu_EraseScreen();
+ break;
+ case 5:
+ LoadPalette(gMailGraphicsTable[0].palette, 0, 32);
+ LZ77UnCompVram(gMailGraphicsTable[0].tiles, (void *)VRAM);
+ DmaFill16(3, 1, (void *)(VRAM + 0x4000), 0x500);
+ break;
+ case 6:
+ REG_BG0CNT = 0x9F08;
+ REG_BG1CNT = 0x0801;
+ REG_BLDCNT = 0;
+ REG_DISPCNT = 0x0340;
+ debug_sub_810D340();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ SetVBlankCallback(sub_80F8F18);
+ break;
+ case 7:
+ if (!UpdatePaletteFade())
+ return;
+ break;
+ case 8:
+ CreateTask(debug_sub_810CE1C, 0);
+ SetMainCallback2(debug_sub_810CDE0);
break;
+ default:
+ return;
}
-
- memset(&ewram0_4, 0, 0x110);
- ResetPaletteFade();
+ gMain.state++;
}
+
+#endif
diff --git a/src/pokemon/mon_markings.c b/src/pokemon/mon_markings.c
index b4144ea34..dcdc54434 100644
--- a/src/pokemon/mon_markings.c
+++ b/src/pokemon/mon_markings.c
@@ -5,6 +5,7 @@
#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
+#include "mon_markings.h"
#ifdef GERMAN
#define MENU_TEXT_SPRITE_X_OFFSET 24
@@ -12,25 +13,6 @@
#define MENU_TEXT_SPRITE_X_OFFSET 32
#endif
-struct PokemonMarkMenu
-{
- /*0x0000*/ u16 baseTileTag;
- /*0x0002*/ u16 basePaletteTag;
- /*0x0004*/ u8 markings; // bit flags
- /*0x0005*/ s8 cursorPos;
- /*0x0006*/ bool8 markingsArray[4];
- /*0x000A*/ u8 cursorBaseY;
- /*0x000B*/ bool8 spriteSheetLoadRequired;
- /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
- /*0x0014*/ struct Sprite *menuMarkingSprites[4];
- /*0x0024*/ struct Sprite *menuTextSprite;
- /*0x0028*/ const u8 *frameTiles;
- /*0x002C*/ const u16 *framePalette;
- /*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
- /*0x1030*/ u8 filler1030[0x80];
- /*0x10B0*/ u8 tileLoadState;
-};
-
extern u8 gPokenavConditionMenuMisc_Gfx[];
extern u16 gUnknown_08E966B8[];
@@ -312,7 +294,7 @@ void sub_80F727C(struct PokemonMarkMenu *ptr)
void sub_80F728C(void)
{
- const struct FrameGraphics *frame = GetTextWindowFrameGraphics(gSaveBlock2.optionsWindowFrameType);
+ const struct FrameGraphics *frame = TextWindow_GetFrameGraphics(gSaveBlock2.optionsWindowFrameType);
sMenu->frameTiles = frame->tiles;
sMenu->framePalette = frame->palette;
sMenu->tileLoadState = 0;
@@ -566,8 +548,8 @@ void sub_80F761C(s16 x, s16 y, u16 baseTileTag, u16 basePaletteTag)
}
sMenu->cursorBaseY = y + 8;
- sub_814A5C0(0, basePaletteTag + 1, 15, 0, 0x30);
- sub_814A880(x + 8, sMenu->cursorBaseY);
+ MenuCursor_Create814A5C0(0, basePaletteTag + 1, 15, 0, 0x30);
+ MenuCursor_SetPos814A880(x + 8, sMenu->cursorBaseY);
sub_814AABC(sub_80F7908);
}
@@ -631,6 +613,5 @@ struct Sprite *sub_80F7960(u16 tileTag, u16 paletteTag, const u16 *palette, u16
void sub_80F7A10(u8 markings, void *dest)
{
- const void *src = gUnknown_083E4A14 + markings * 0x80;
- DmaCopy16(3, src, dest, 0x80);
+ DmaCopy16Defvars(3, gUnknown_083E4A14 + markings * 0x80, dest, 0x80);
}
diff --git a/src/pokemon/pokeblock_feed.c b/src/pokemon/pokeblock_feed.c
index 8e3adda12..2f2ce2f8f 100644
--- a/src/pokemon/pokeblock_feed.c
+++ b/src/pokemon/pokeblock_feed.c
@@ -511,7 +511,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
switch (gMain.state)
{
case 0:
- sub_80F9438();
+ ClearVideoCallbacks();
sub_80F9368();
sub_8147B04();
gMain.state++;
@@ -530,11 +530,11 @@ static bool8 TransitionToPokeblockFeedScene(void)
gMain.state++;
break;
case 4:
- SetUpWindowConfig(&gWindowConfig_81E6E50);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6E50);
gMain.state++;
break;
case 5:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E50);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6E50);
gMain.state++;
break;
case 6:
@@ -559,7 +559,7 @@ static bool8 TransitionToPokeblockFeedScene(void)
gMain.state++;
break;
case 10:
- MenuDrawTextWindow(0, 14, 29, 19);
+ Menu_DrawStdWindowFrame(0, 14, 29, 19);
gMain.state++;
break;
case 11:
@@ -715,7 +715,7 @@ static void LaunchPokeblockFeedTask(u8 a0)
static void Task_WaitForAtePokeblockText(u8 taskID)
{
- if (MenuUpdateWindowText() == 1)
+ if (Menu_UpdateWindowText() == 1)
gTasks[taskID].func = Task_PaletteFadeToReturn;
}
diff --git a/src/pokemon/pokedex.c b/src/pokemon/pokedex.c
index 1c1c71454..090873f9d 100644
--- a/src/pokemon/pokedex.c
+++ b/src/pokemon/pokedex.c
@@ -23,7 +23,7 @@
#include "strings.h"
#include "task.h"
#include "trig.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "ewram.h"
#define NATIONAL_DEX_COUNT 386
@@ -1273,7 +1273,7 @@ static u8 sub_8091260(u16 num, u8, u8, u8);
static void sub_8091304(const u8 *name, u8, u8);
static void sub_8091458(u16 height, u8 i, u8 i1);
static void sub_8091564(u16 weight, u8 i, u8 i1);
-static void sub_8091738(u16, u16, u16);
+void sub_8091738(u16, u16, u16);
static void sub_80917CC(u16 i, u16 i1);
static u16 sub_8091818(u8, u16, u16, u16);
u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d);
@@ -1394,39 +1394,22 @@ void CB2_InitPokedex(void)
{
case 0:
default:
- {
- u8 *addr;
- u32 size;
-
- SetVBlankCallback(NULL);
- sub_8091060(0);
- addr = (u8 *)VRAM;
- size = VRAM_SIZE;
- while (1)
- {
- DmaFill16(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, addr, size);
- break;
- }
- }
- DmaClear32(3, OAM, OAM_SIZE);
- DmaClear16(3, PLTT, PLTT_SIZE);
- gMain.state = 1;
- }
+ SetVBlankCallback(NULL);
+ sub_8091060(0);
+ DmaFill16Large(3, 0, (void *)(VRAM + 0x0), VRAM_SIZE, 0x1000);
+ DmaClear32(3, OAM, OAM_SIZE);
+ DmaClear16(3, PLTT, PLTT_SIZE);
+ gMain.state = 1;
break;
case 1:
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
- SetUpWindowConfig(&gWindowConfig_81E7048);
- InitMenuWindow(&gWindowConfig_81E7048);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7048);
+ InitMenuWindow(&gWindowTemplate_81E7048);
gMain.state++;
break;
case 2:
@@ -1494,7 +1477,7 @@ u8 unref_sub_808C540(void (*func)(u8))
SetVBlankCallback(NULL);
sub_8091060(0x200);
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetPaletteFade();
savedIme = REG_IME;
@@ -1937,8 +1920,8 @@ static bool8 sub_808D344(u8 a)
gMain.state++;
break;
case 2:
- SetUpWindowConfig(&gWindowConfig_81E7048);
- InitMenuWindow(&gWindowConfig_81E7048);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7048);
+ InitMenuWindow(&gWindowTemplate_81E7048);
LZ77UnCompVram(gUnknown_0839FA7C, (void *)(VRAM + 0xFF80));
gMain.state++;
break;
@@ -2241,7 +2224,7 @@ static void sub_808DEB0(u16 a, u8 b, u8 c, u16 d)
text[3] = EOS;
*(u16 *)(VRAM + d * 0x800 + c * 0x40 + b * 2) = unk[0];
*(u16 *)(VRAM + d * 0x800 + (c + 1) * 0x40 + b * 2) = unk[1];
- MenuPrint(text, b - 15, c);
+ Menu_PrintText(text, b - 15, c);
}
static void sub_808DF88(u16 a, u8 b, u8 c, u16 d)
@@ -2283,7 +2266,7 @@ static u8 sub_808DFE4(u16 num, u8 b, u8 c)
text[i] = CHAR_HYPHEN;
break;
}
- MenuPrint_PixelCoords(text, (b - 0x11) * 8 + 0xFC, c * 8, 0);
+ Menu_PrintTextPixelCoords(text, (b - 0x11) * 8 + 0xFC, c * 8, 0);
return i;
}
@@ -2951,8 +2934,8 @@ static void Task_InitPageScreenMultistep(u8 taskId)
gMain.state++;
break;
case 3:
- SetUpWindowConfig(&gWindowConfig_81E7064);
- InitMenuWindow(&gWindowConfig_81E7064);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7064);
+ InitMenuWindow(&gWindowTemplate_81E7064);
gMain.state++;
break;
case 4:
@@ -2961,20 +2944,20 @@ static void Task_InitPageScreenMultistep(u8 taskId)
else
sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3);
sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3);
- MenuPrint(gDexText_UnknownPoke, CATEGORY_LEFT, 5);
- MenuPrint(gDexText_UnknownHeight, 16, 7);
- MenuPrint(gDexText_UnknownWeight, 16, 9);
+ Menu_PrintText(gDexText_UnknownPoke, CATEGORY_LEFT, 5);
+ Menu_PrintText(gDexText_UnknownHeight, 16, 7);
+ Menu_PrintText(gDexText_UnknownWeight, 16, 9);
if (gUnknown_0202FFBC->owned)
{
sub_8091304(gPokedexEntries[gUnknown_0202FFBC->dexNum].categoryName, CATEGORY_LEFT, 5);
sub_8091458(gPokedexEntries[gUnknown_0202FFBC->dexNum].height, 16, 7);
sub_8091564(gPokedexEntries[gUnknown_0202FFBC->dexNum].weight, 16, 9);
- MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
+ Menu_PrintText(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
sub_80917CC(14, 0x3FC);
}
else
{
- MenuPrint(gUnknown_083A05F8, 2, 13);
+ Menu_PrintText(gUnknown_083A05F8, 2, 13);
LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E);
}
gMain.state++;
@@ -3205,13 +3188,13 @@ static void Task_InitCryScreenMultistep(u8 taskId)
gMain.state++;
break;
case 3:
- SetUpWindowConfig(&gWindowConfig_81E702C);
- InitMenuWindow(&gWindowConfig_81E702C);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E702C);
+ InitMenuWindow(&gWindowTemplate_81E702C);
ResetPaletteFade();
gMain.state++;
break;
case 4:
- MenuPrint(gDexText_CryOf, 10, 4);
+ Menu_PrintText(gDexText_CryOf, 10, 4);
sub_8091260(gUnknown_0202FFBC->dexNum, 10, 6, 2);
gMain.state++;
break;
@@ -3394,8 +3377,8 @@ static void Task_InitSizeScreenMultistep(u8 taskId)
{
u8 string[40]; //I hope this is the correct size
- SetUpWindowConfig(&gWindowConfig_81E702C);
- InitMenuWindow(&gWindowConfig_81E702C);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E702C);
+ InitMenuWindow(&gWindowTemplate_81E702C);
string[0] = EOS;
StringAppend(string, gDexText_SizeComparedTo);
StringAppend(string, gSaveBlock2.playerName);
@@ -3841,8 +3824,8 @@ static void sub_8090750(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 2:
- SetUpWindowConfig(&gWindowConfig_81E7064);
- InitMenuWindow(&gWindowConfig_81E7064);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7064);
+ InitMenuWindow(&gWindowTemplate_81E7064);
DmaClear16(3, (void *)(VRAM + 0xC000), 0x200);
gTasks[taskId].data[0]++;
break;
@@ -3853,13 +3836,13 @@ static void sub_8090750(u8 taskId)
else
sub_8091154(dexNum, 13, 3);
sub_80911C8(dexNum, 16, 3);
- MenuPrint(gDexText_UnknownPoke, CATEGORY_LEFT, 5);
- MenuPrint(gDexText_UnknownHeight, 16, 7);
- MenuPrint(gDexText_UnknownWeight, 16, 9);
+ Menu_PrintText(gDexText_UnknownPoke, CATEGORY_LEFT, 5);
+ Menu_PrintText(gDexText_UnknownHeight, 16, 7);
+ Menu_PrintText(gDexText_UnknownWeight, 16, 9);
sub_8091304(gPokedexEntries[dexNum].categoryName, CATEGORY_LEFT, 5);
sub_8091458(gPokedexEntries[dexNum].height, 16, 7);
sub_8091564(gPokedexEntries[dexNum].weight, 16, 9);
- MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13);
+ Menu_PrintText(gPokedexEntries[dexNum].descriptionPage1, 2, 13);
sub_80917CC(14, 0x3FC);
gTasks[taskId].data[0]++;
break;
@@ -3906,8 +3889,8 @@ static void sub_8090A3C(u8 taskId)
{
u16 r4 = gTasks[taskId].data[1];
- MenuZeroFillWindowRect(2, 13, 27, 19);
- MenuPrint(gPokedexEntries[r4].descriptionPage2, 2, 13);
+ Menu_EraseWindowRect(2, 13, 27, 19);
+ Menu_PrintText(gPokedexEntries[r4].descriptionPage2, 2, 13);
(*(u16 *)(VRAM + 0x7ACA))++;
(*(u16 *)(VRAM + 0x7B0A))++;
gTasks[taskId].data[4] = 1;
@@ -3970,8 +3953,8 @@ static void sub_8090C68(void)
{
if (gPokedexView->descriptionPageNum == 0)
{
- MenuZeroFillWindowRect(2, 13, 27, 19);
- MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage2, 2, 13);
+ Menu_EraseWindowRect(2, 13, 27, 19);
+ Menu_PrintText(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage2, 2, 13);
gPokedexView->descriptionPageNum = 1;
(*(u16 *)(VRAM + 0x7ACA))++;
(*(u16 *)(VRAM + 0x7B0A))++;
@@ -3979,8 +3962,8 @@ static void sub_8090C68(void)
}
else
{
- MenuZeroFillWindowRect(2, 13, 27, 19);
- MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
+ Menu_EraseWindowRect(2, 13, 27, 19);
+ Menu_PrintText(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
gPokedexView->descriptionPageNum = 0;
(*(u16 *)(VRAM + 0x7ACA))--;
(*(u16 *)(VRAM + 0x7B0A))--;
@@ -4121,26 +4104,35 @@ bool8 CompletedHoennPokedex(void)
return TRUE;
}
-u16 sub_8090FF4(void)
+bool16 CompletedNationalPokedex(void)
{
u16 i;
+ // BUG: This function indexes pokemon checks by 0, but adds
+ // 1 before passing to GetSetPokedexFlag. Normally, this is
+ // fine, because GetSetPokedexFlag subtracts by 1 to get the
+ // array index value, but since the array is 0 indexed
+ // starting with Bulbasaur, values passed actually means that
+ // dex entries 152 (Chikorita) and 252 (Treecko) are skipped.
+ // Because an earlier Hoenn Dex check prevented Treecko from
+ // being skippable, it means that Chikorita is not required
+ // to obtain the National Diploma. This was fixed in Emerald.
for (i = 0; i < 150; i++)
{
if (GetSetPokedexFlag(i + 1, 1) == 0)
- return 0;
+ return FALSE;
}
for (i = 152; i < 250; i++)
{
if (GetSetPokedexFlag(i + 1, 1) == 0)
- return 0;
+ return FALSE;
}
for (i = 252; i < 384; i++)
{
if (GetSetPokedexFlag(i + 1, 1) == 0)
- return 0;
+ return FALSE;
}
- return 1;
+ return TRUE;
}
static void sub_8091060(u16 a)
@@ -4190,7 +4182,7 @@ static void sub_8091154(u16 order, u8 b, u8 c)
str[1] = CHAR_0 + (order % 100) / 10;
str[2] = CHAR_0 + (order % 100) % 10;
str[3] = EOS;
- MenuPrint(str, b, c);
+ Menu_PrintText(str, b, c);
}
static u8 sub_80911C8(u16 num, u8 b, u8 c)
@@ -4212,7 +4204,7 @@ static u8 sub_80911C8(u16 num, u8 b, u8 c)
str[i] = 0xAE;
break;
}
- MenuPrint(str, b, c);
+ Menu_PrintText(str, b, c);
return i;
}
@@ -4237,7 +4229,7 @@ static u8 sub_8091260(u16 num, u8 b, u8 c, u8 d)
break;
}
end[i] = EOS;
- MenuPrint(str, b, c);
+ Menu_PrintText(str, b, c);
return i;
}
@@ -4297,7 +4289,7 @@ void unref_sub_80913A4(u16 a, u8 left, u8 top)
str[3] = CHAR_PERIOD;
str[4] = CHAR_0 + ((a % 1000) % 100) % 10;
str[5] = EOS;
- MenuPrint(str, left, top);
+ Menu_PrintText(str, left, top);
}
#elif GERMAN
void unref_sub_80913A4(u16 arg0, u8 left, u8 top) {
@@ -4341,7 +4333,7 @@ void unref_sub_80913A4(u16 arg0, u8 left, u8 top) {
buffer[r6++] = EOS;
buffer[2] = offset;
- MenuPrint(buffer, left, top);
+ Menu_PrintText(buffer, left, top);
}
#endif
@@ -4378,7 +4370,7 @@ static void sub_8091458(u16 height, u8 left, u8 top)
buffer[i++] = (inches % 10) + CHAR_0;
buffer[i++] = CHAR_DOUBLE_PRIME;
buffer[i++] = EOS;
- MenuPrint(buffer, left, top);
+ Menu_PrintText(buffer, left, top);
}
#else
static void sub_8091458(u16 height, u8 left, u8 top)
@@ -4448,7 +4440,7 @@ static void sub_8091564(u16 weight, u8 left, u8 top)
buffer[i++] = CHAR_s;
buffer[i++] = CHAR_PERIOD;
buffer[i++] = EOS;
- MenuPrint(buffer, left, top);
+ Menu_PrintText(buffer, left, top);
}
#else
static void sub_8091564(u16 arg0, u8 left, u8 top)
@@ -4457,7 +4449,7 @@ static void sub_8091564(u16 arg0, u8 left, u8 top)
}
#endif
-static void sub_8091738(u16 num, u16 b, u16 c)
+void sub_8091738(u16 num, u16 b, u16 c)
{
u8 arr[0x80];
u16 i;
@@ -4770,8 +4762,8 @@ static void sub_8091E54(u8 taskId)
}
break;
case 1:
- SetUpWindowConfig(&gWindowConfig_81E7064);
- InitMenuWindow(&gWindowConfig_81E7064);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7064);
+ InitMenuWindow(&gWindowTemplate_81E7064);
LoadCompressedObjectPic(&gUnknown_083A05CC[0]);
LoadSpritePalettes(gUnknown_083A05DC);
sub_809308C(taskId);
@@ -4997,7 +4989,7 @@ static void sub_8092508(u8 taskId)
static void sub_80925B4(u16 a, int unused)
{
- sub_814AD7C(0x90, (a * 2 + 1) * 8);
+ MenuCursor_SetPos814AD7C(0x90, (a * 2 + 1) * 8);
}
static void sub_80925CC(u8 taskId)
@@ -5036,7 +5028,7 @@ static void sub_8092644(u8 taskId)
{
sub_814ADC8();
PlaySE(SE_PIN);
- MenuZeroFillWindowRect(18, 1, 28, 12);
+ Menu_EraseWindowRect(18, 1, 28, 12);
sub_8092C8C(1);
gTasks[taskId].func = sub_809217C;
return;
@@ -5045,7 +5037,7 @@ static void sub_8092644(u8 taskId)
{
sub_814ADC8();
PlaySE(SE_BOWA);
- MenuZeroFillWindowRect(18, 1, 28, 12);
+ Menu_EraseWindowRect(18, 1, 28, 12);
sub_8092C8C(1);
*p1 = gTasks[taskId].data[14];
*p2 = gTasks[taskId].data[15];
@@ -5305,29 +5297,29 @@ static void sub_8092B68(u8 taskId)
var = gTasks[taskId].data[6] + gTasks[taskId].data[7];
StringCopy(gStringVar1, gUnknown_083B5910[var].text2);
- MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 16, 1);
+ Menu_PrintTextPixelCoords(gUnknown_083B5AB2, 45, 16, 1);
var = gTasks[taskId].data[8] + gTasks[taskId].data[9];
StringCopy(gStringVar1, gUnknown_083B5968[var].text2);
- MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 32, 1);
+ Menu_PrintTextPixelCoords(gUnknown_083B5AB2, 45, 32, 1);
var = gTasks[taskId].data[10] + gTasks[taskId].data[11];
StringCopy(gStringVar1, gUnknown_083B59C8[var].text2);
- MenuPrint_PixelCoords(gUnknown_083B5AAC, 45, 48, 1);
+ Menu_PrintTextPixelCoords(gUnknown_083B5AAC, 45, 48, 1);
var = gTasks[taskId].data[12] + gTasks[taskId].data[13];
StringCopy(gStringVar1, gUnknown_083B59C8[var].text2);
- MenuPrint_PixelCoords(gUnknown_083B5AAC, 93, 48, 1);
+ Menu_PrintTextPixelCoords(gUnknown_083B5AAC, 93, 48, 1);
var = gTasks[taskId].data[4] + gTasks[taskId].data[5];
StringCopy(gStringVar1, gUnknown_083B58D8[var].text2);
- MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 64, 1);
+ Menu_PrintTextPixelCoords(gUnknown_083B5AB2, 45, 64, 1);
if (IsNationalPokedexEnabled())
{
var = gTasks[taskId].data[2] + gTasks[taskId].data[3];
StringCopy(gStringVar1, gUnknown_083B58C0[var].text2);
- MenuPrint_PixelCoords(gUnknown_083B5AB2, 45, 80, 1);
+ Menu_PrintTextPixelCoords(gUnknown_083B5AB2, 45, 80, 1);
}
}
@@ -5374,13 +5366,13 @@ static void sub_8092D78(u8 taskId)
u16 i;
u16 j;
- MenuZeroFillWindowRect(18, 1, 28, 12);
+ Menu_EraseWindowRect(18, 1, 28, 12);
for (i = 0, j = *r7; i < 6 && r6[j].text2 != NULL; i++, j++)
{
#ifndef NONMATCHING
j += 0; // Useless statement needed to match
#endif
- MenuPrint(r6[j].text2, 18, i * 2 + 1);
+ Menu_PrintText(r6[j].text2, 18, i * 2 + 1);
}
sub_8091E20(r6[*r8 + *r7].text1);
}
diff --git a/src/pokemon/pokemon_1.c b/src/pokemon/pokemon_1.c
index f4d227f7f..80d245b52 100644
--- a/src/pokemon/pokemon_1.c
+++ b/src/pokemon/pokemon_1.c
@@ -1,13 +1,16 @@
#include "global.h"
#include "data2.h"
+#include "constants/abilities.h"
#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/species.h"
#include "main.h"
#include "pokemon.h"
#include "random.h"
#include "overworld.h"
-#include "constants/species.h"
#include "sprite.h"
#include "string_util.h"
+#include "trainer.h"
#include "text.h"
#include "ewram.h"
@@ -26,6 +29,59 @@ struct Pokemon gPlayerParty[6];
u8 gEnemyPartyCount;
struct Pokemon gEnemyParty[6];
+const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151};
+const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358};
+const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411};
+
+const struct SpindaSpot gSpindaSpotGraphics[] =
+{
+ {16, 14, INCBIN_U16("graphics/spinda_spots/spot_0.bin")},
+ {40, 15, INCBIN_U16("graphics/spinda_spots/spot_1.bin")},
+ {22, 32, INCBIN_U16("graphics/spinda_spots/spot_2.bin")},
+ {34, 33, INCBIN_U16("graphics/spinda_spots/spot_3.bin")}
+};
+
+#include "../data/pokemon/item_effects.h"
+
+const s8 gNatureStatTable[][5] =
+{
+ // Atk Def Spd Sp.Atk Sp.Def
+ { 0, 0, 0, 0, 0}, // Hardy
+ { +1, -1, 0, 0, 0}, // Lonely
+ { +1, 0, -1, 0, 0}, // Brave
+ { +1, 0, 0, -1, 0}, // Adamant
+ { +1, 0, 0, 0, -1}, // Naughty
+ { -1, +1, 0, 0, 0}, // Bold
+ { 0, 0, 0, 0, 0}, // Docile
+ { 0, +1, -1, 0, 0}, // Relaxed
+ { 0, +1, 0, -1, 0}, // Impish
+ { 0, +1, 0, 0, -1}, // Lax
+ { -1, 0, +1, 0, 0}, // Timid
+ { 0, -1, +1, 0, 0}, // Hasty
+ { 0, 0, 0, 0, 0}, // Serious
+ { 0, 0, +1, -1, 0}, // Jolly
+ { 0, 0, +1, 0, -1}, // Naive
+ { -1, 0, 0, +1, 0}, // Modest
+ { 0, -1, 0, +1, 0}, // Mild
+ { 0, 0, -1, +1, 0}, // Quiet
+ { 0, 0, 0, 0, 0}, // Bashful
+ { 0, 0, 0, +1, -1}, // Rash
+ { -1, 0, 0, 0, +1}, // Calm
+ { 0, -1, 0, 0, +1}, // Gentle
+ { 0, 0, -1, 0, +1}, // Sassy
+ { 0, 0, 0, -1, +1}, // Careful
+ { 0, 0, 0, 0, 0} // Quirky
+};
+
+#include "../data/pokemon/tmhm_learnsets.h"
+#include "../data/pokemon/trainer_class_lookups.h"
+#include "../data/pokemon/cry_ids.h"
+#include "../data/pokemon/experience_tables.h"
+#include "../data/pokemon/base_stats.h"
+#include "../data/pokemon/level_up_learnsets.h"
+#include "../data/pokemon/evolution.h"
+#include "../data/pokemon/level_up_learnset_pointers.h"
+
void ZeroBoxMonData(struct BoxPokemon *boxMon)
{
u8 *raw = (u8 *)boxMon;
@@ -308,7 +364,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src)
language = GAME_LANGUAGE;
SetMonData(mon, MON_DATA_LANGUAGE, &language);
- StripExtCtrlCodes(nickname);
+ Text_StripExtCtrlCodes(nickname);
SetMonData(mon, MON_DATA_NICKNAME, nickname);
SetMonData(mon, MON_DATA_FRIENDSHIP, &src->friendship);
SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
@@ -401,7 +457,7 @@ u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon)
s32 n = (((2 * baseStat + iv + ev / 4) * level) / 100) + 5; \
u8 nature = GetNature(mon); \
n = nature_stat_mod(nature, n, statIndex); \
- SetMonData(mon, field, &n); \
+ SetMonData(mon, field, &n); \
}
void CalculateMonStats(struct Pokemon *mon)
@@ -468,7 +524,54 @@ void CalculateMonStats(struct Pokemon *mon)
SetMonData(mon, MON_DATA_HP, &currentHP);
}
-void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest)
+#if DEBUG
+void debug_sub_803F55C(struct Pokemon *mon)
+{
+ s32 currentHP = GetMonData(mon, MON_DATA_HP, NULL);
+ s32 hpIV = GetMonData(mon, MON_DATA_HP_IV, NULL);
+ s32 hpEV = GetMonData(mon, MON_DATA_HP_EV, NULL);
+ s32 attackIV = GetMonData(mon, MON_DATA_ATK_IV, NULL);
+ s32 attackEV = GetMonData(mon, MON_DATA_ATK_EV, NULL);
+ s32 defenseIV = GetMonData(mon, MON_DATA_DEF_IV, NULL);
+ s32 defenseEV = GetMonData(mon, MON_DATA_DEF_EV, NULL);
+ s32 speedIV = GetMonData(mon, MON_DATA_SPEED_IV, NULL);
+ s32 speedEV = GetMonData(mon, MON_DATA_SPEED_EV, NULL);
+ s32 spAttackIV = GetMonData(mon, MON_DATA_SPATK_IV, NULL);
+ s32 spAttackEV = GetMonData(mon, MON_DATA_SPATK_EV, NULL);
+ s32 spDefenseIV = GetMonData(mon, MON_DATA_SPDEF_IV, NULL);
+ s32 spDefenseEV = GetMonData(mon, MON_DATA_SPDEF_EV, NULL);
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ s32 level = GetLevelFromMonExp(mon);
+ s32 newMaxHP;
+
+ SetMonData(mon, MON_DATA_LEVEL, &level);
+
+ if (species == SPECIES_SHEDINJA)
+ {
+ newMaxHP = 1;
+ }
+ else
+ {
+ s32 n = 2 * gBaseStats[species].baseHP + hpIV;
+ newMaxHP = (((n + hpEV / 4) * level) / 100) + level + 10;
+ }
+
+ SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP);
+
+ CALC_STAT(baseAttack, attackIV, attackEV, 1, MON_DATA_ATK)
+ CALC_STAT(baseDefense, defenseIV, defenseEV, 2, MON_DATA_DEF)
+ CALC_STAT(baseSpeed, speedIV, speedEV, 3, MON_DATA_SPEED)
+ CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, 4, MON_DATA_SPATK)
+ CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, 5, MON_DATA_SPDEF)
+
+ if (newMaxHP < currentHP)
+ currentHP = newMaxHP;
+
+ SetMonData(mon, MON_DATA_HP, &currentHP);
+}
+#endif
+
+void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest)
{
u32 value = 0;
dest->box = *src;
diff --git a/src/pokemon/pokemon_2.c b/src/pokemon/pokemon_2.c
index 37bc2e0ad..7fd1aa7b2 100644
--- a/src/pokemon/pokemon_2.c
+++ b/src/pokemon/pokemon_2.c
@@ -1,5 +1,8 @@
#include "global.h"
+#include "constants/hold_effects.h"
+#include "constants/moves.h"
#include "battle.h"
+#include "battle_util.h"
#include "data2.h"
#include "event_data.h"
#include "main.h"
@@ -11,6 +14,7 @@
#include "string_util.h"
#include "strings2.h"
#include "text.h"
+#include "trainer.h"
#include "util.h"
#include "ewram.h"
@@ -39,11 +43,12 @@ extern const struct SpriteTemplate gSpriteTemplate_8208288[];
//array of pointers to arrays of pointers to union AnimCmd (We probably need to typedef this.)
extern u8 gTrainerClassToPicIndex[];
extern u8 gTrainerClassToNameIndex[];
-extern u8 gSecretBaseTrainerClasses[][5];
-extern u8 gUnknown_08208238[];
-extern u8 gUnknown_0820823C[];
-extern u8 gStatStageRatios[][2];
-extern u8 gHoldEffectToType[][2];
+
+extern const u8 gUnknown_08208238[];
+extern const u8 gUnknown_0820823C[];
+
+extern void sub_80105A0(struct Sprite *);
+extern void oac_poke_opponent(struct Sprite *);
u8 CountAliveMons(u8 a1)
{
@@ -84,7 +89,7 @@ u8 sub_803C434(u8 a1)
status ^= 1;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
- return GetBankByPlayerAI(status);
+ return GetBankByIdentity(status);
if (CountAliveMons(0) > 1)
{
u8 val;
@@ -93,14 +98,14 @@ u8 sub_803C434(u8 a1)
val = status ^ 2;
else
val = status;
- return GetBankByPlayerAI(val);
+ return GetBankByIdentity(val);
}
else
{
if ((gAbsentBankFlags & gBitTable[status]))
- return GetBankByPlayerAI(status ^ 2);
+ return GetBankByIdentity(status ^ 2);
else
- return GetBankByPlayerAI(status);
+ return GetBankByIdentity(status);
}
}
@@ -144,6 +149,14 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality)
return MON_MALE;
}
+const struct SpriteTemplate gSpriteTemplate_8208288[] =
+{
+ {0xFFFF, 0, &gOamData_81F96F0, NULL, gSpriteImageTable_81E7A10, gSpriteAffineAnimTable_81E7B70, sub_80105A0},
+ {0xFFFF, 0, &gOamData_81F96E8, NULL, gSpriteImageTable_81E7A30, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent},
+ {0xFFFF, 0, &gOamData_81F96F0, NULL, gSpriteImageTable_81E7A50, gSpriteAffineAnimTable_81E7B70, sub_80105A0},
+ {0xFFFF, 0, &gOamData_81F96E8, NULL, gSpriteImageTable_81E7A70, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent},
+};
+
void GetMonSpriteTemplate_803C56C(u16 species, u8 a2)
{
gUnknown_02024E8C = gSpriteTemplate_8208288[a2];
@@ -557,7 +570,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
u16 *moves = (u16 *)data;
s32 i = 0;
- while (moves[i] != 355)
+ while (moves[i] != NUM_MOVES)
{
u16 move = moves[i];
if (substruct1->moves[0] == move
@@ -1093,6 +1106,13 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
gTrainerBattleOpponent = 1024;
}
+const u8 gSecretBaseTrainerClasses[][5] = {
+ // male
+ {FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_CAMPER, FACILITY_CLASS_COOL_TRAINER_M},
+ // female
+ {FACILITY_CLASS_LASS, FACILITY_CLASS_SCHOOL_KID_F, FACILITY_CLASS_LADY, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_COOL_TRAINER_F}
+};
+
u8 GetSecretBaseTrainerPicIndex(void)
{
u8 trainerClass = gSecretBaseTrainerClasses[eSecretBaseRecord->gender][eSecretBaseRecord->trainerId[0] % 5];
diff --git a/src/pokemon/pokemon_3.c b/src/pokemon/pokemon_3.c
index d659ed680..9346031a6 100644
--- a/src/pokemon/pokemon_3.c
+++ b/src/pokemon/pokemon_3.c
@@ -1,11 +1,12 @@
#include "global.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/moves.h"
#include "battle.h"
#include "battle_message.h"
#include "data2.h"
#include "event_data.h"
-#include "constants/hold_effects.h"
#include "item.h"
-#include "constants/items.h"
#include "link.h"
#include "m4a.h"
#include "main.h"
@@ -42,20 +43,16 @@ extern u8 gStringBank;
extern u8 gBankInMenu;
extern struct SpindaSpot gSpindaSpotGraphics[];
extern s8 gNatureStatTable[][5];
-extern s8 gUnknown_082082FE[][3];
extern u16 gTrainerBattleOpponent;
extern u16 gBattleTypeFlags;
extern u32 gTMHMLearnsets[][2];
extern u8 gBattleMonForms[];
extern const u8 BattleText_Wally[];
-extern const u16 gHMMoves[];
extern s8 gPokeblockFlavorCompatibilityTable[];
extern u8 gLastUsedAbility;
extern const u8 BattleText_PreventedSwitch[];
extern u16 gBattlePartyID[];
-extern u8 gJapaneseNidoranNames[][11];
-extern u8 gUnknown_082082F8[];
extern u8 BattleText_Rose[];
extern u8 BattleText_UnknownString3[];
extern u8 BattleText_MistShroud[];
@@ -193,6 +190,8 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
return offset;
}
+const u8 gUnknown_082082F8[] = {1, 1, 3, 2, 4, 6};
+
void sub_803F324(int stat)
{
gBankTarget = gBankInMenu;
@@ -290,56 +289,56 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
for (i = 0; i < 5; i++)
{
- switch (gEvolutionTable[species].evolutions[i].method)
+ switch (gEvolutionTable[species][i].method)
{
case EVO_FRIENDSHIP:
if (friendship >= 220)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_FRIENDSHIP_DAY:
RtcCalcLocalTime();
if (gLocalTime.hours >= 12 && gLocalTime.hours < 24 && friendship >= 220)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_FRIENDSHIP_NIGHT:
RtcCalcLocalTime();
if (gLocalTime.hours >= 0 && gLocalTime.hours < 12 && friendship >= 220)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL:
- if (gEvolutionTable[species].evolutions[i].param <= level)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ if (gEvolutionTable[species][i].param <= level)
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_ATK_GT_DEF:
- if (gEvolutionTable[species].evolutions[i].param <= level)
+ if (gEvolutionTable[species][i].param <= level)
if (GetMonData(mon, MON_DATA_ATK, 0) > GetMonData(mon, MON_DATA_DEF, 0))
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_ATK_EQ_DEF:
- if (gEvolutionTable[species].evolutions[i].param <= level)
+ if (gEvolutionTable[species][i].param <= level)
if (GetMonData(mon, MON_DATA_ATK, 0) == GetMonData(mon, MON_DATA_DEF, 0))
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_ATK_LT_DEF:
- if (gEvolutionTable[species].evolutions[i].param <= level)
+ if (gEvolutionTable[species][i].param <= level)
if (GetMonData(mon, MON_DATA_ATK, 0) < GetMonData(mon, MON_DATA_DEF, 0))
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_SILCOON:
- if (gEvolutionTable[species].evolutions[i].param <= level && (upperPersonality % 10) <= 4)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ if (gEvolutionTable[species][i].param <= level && (upperPersonality % 10) <= 4)
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_CASCOON:
- if (gEvolutionTable[species].evolutions[i].param <= level && (upperPersonality % 10) > 4)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ if (gEvolutionTable[species][i].param <= level && (upperPersonality % 10) > 4)
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_NINJASK:
- if (gEvolutionTable[species].evolutions[i].param <= level)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ if (gEvolutionTable[species][i].param <= level)
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_BEAUTY:
- if (gEvolutionTable[species].evolutions[i].param <= beauty)
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ if (gEvolutionTable[species][i].param <= beauty)
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
}
}
@@ -347,17 +346,17 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
case 1:
for (i = 0; i < 5; i++)
{
- switch (gEvolutionTable[species].evolutions[i].method)
+ switch (gEvolutionTable[species][i].method)
{
case EVO_TRADE:
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_TRADE_ITEM:
- if (gEvolutionTable[species].evolutions[i].param == heldItem)
+ if (gEvolutionTable[species][i].param == heldItem)
{
heldItem = 0;
SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem);
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
}
break;
}
@@ -367,10 +366,10 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
case 3:
for (i = 0; i < 5; i++)
{
- if (gEvolutionTable[species].evolutions[i].method == EVO_ITEM
- && gEvolutionTable[species].evolutions[i].param == evolutionItem)
+ if (gEvolutionTable[species][i].method == EVO_ITEM
+ && gEvolutionTable[species][i].param == evolutionItem)
{
- targetSpecies = gEvolutionTable[species].evolutions[i].targetSpecies;
+ targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
}
}
@@ -644,6 +643,20 @@ u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex)
return n;
}
+const s8 gUnknown_082082FE[][3] =
+{
+ // Happiness deltas
+ { 5, 3, 2},
+ { 5, 3, 2},
+ { 1, 1, 0},
+ { 3, 2, 1},
+ { 1, 1, 0},
+ { 1, 1, 1},
+ {-1, -1, -1},
+ {-5, -5, -10},
+ {-5, -5, -10}
+};
+
void AdjustFriendship(struct Pokemon *mon, u8 event)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
@@ -653,13 +666,9 @@ void AdjustFriendship(struct Pokemon *mon, u8 event)
if (heldItem == ITEM_ENIGMA_BERRY)
{
if (gMain.inBattle)
- {
holdEffect = gEnigmaBerries[0].holdEffect;
- }
else
- {
holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
- }
}
else
{
@@ -758,13 +767,9 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies)
if (heldItem == ITEM_ENIGMA_BERRY)
{
if (gMain.inBattle)
- {
holdEffect = gEnigmaBerries[0].holdEffect;
- }
else
- {
holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
- }
}
else
{
@@ -1198,6 +1203,19 @@ const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u
return &gMonPaletteTable[species];
}
+const u16 gHMMoves[] =
+{
+ MOVE_CUT,
+ MOVE_FLY,
+ MOVE_SURF,
+ MOVE_STRENGTH,
+ MOVE_FLASH,
+ MOVE_ROCK_SMASH,
+ MOVE_WATERFALL,
+ MOVE_DIVE,
+ 0xffff
+};
+
bool32 IsHMMove2(u16 move)
{
int i = 0;
@@ -1275,15 +1293,15 @@ void BoxMonRestorePP(struct BoxPokemon *boxMon)
void sub_8040B8C(void)
{
- gLastUsedAbility = BATTLE_STRUCT->unk160C0;;
+ gLastUsedAbility = gBattleStruct->unk160C0;;
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 4;
- gBattleTextBuff1[2] = BATTLE_STRUCT->unk16054;
+ gBattleTextBuff1[2] = gBattleStruct->unk16054;
gBattleTextBuff1[4] = EOS;
- if (!GetBankSide(BATTLE_STRUCT->unk16054))
- gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[BATTLE_STRUCT->unk16054]);
+ if (!GetBankSide(gBattleStruct->unk16054))
+ gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->unk16054]);
else
- gBattleTextBuff1[3] = gBattlePartyID[BATTLE_STRUCT->unk16054];
+ gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->unk16054];
gBattleTextBuff2[0] = 0xFD;
gBattleTextBuff2[1] = 4;
gBattleTextBuff2[2] = gBankInMenu;
@@ -1338,12 +1356,14 @@ u8 *sub_8040D08(void)
return gLinkPlayers[sub_803FC34(gLinkPlayers[id].lp_field_18 ^ 2)].name;
}
+const u8 gJapaneseNidoranNames[][11] = {_("ニドラン♂"), _("ニドラン♀")};
+
bool32 ShouldHideGenderIconForLanguage(u16 species, u8 *name, u8 language)
{
bool32 retVal = FALSE;
if (species == SPECIES_NIDORAN_M || species == SPECIES_NIDORAN_F)
{
- u8 *speciesName;
+ const u8 *speciesName;
if (language == GAME_LANGUAGE)
{
speciesName = gSpeciesNames[species];
diff --git a/src/pokemon/pokemon_data.c b/src/pokemon/pokemon_data.c
deleted file mode 100644
index 82e452158..000000000
--- a/src/pokemon/pokemon_data.c
+++ /dev/null
@@ -1,128 +0,0 @@
-#include "global.h"
-#include "pokemon.h"
-#include "constants/species.h"
-#include "trainer.h"
-#include "constants/abilities.h"
-#include "constants/moves.h"
-#include "constants/hold_effects.h"
-#include "constants/items.h"
-#include "sprite.h"
-#include "data2.h"
-
-#include "../data/pokemon/dex_order.h"
-#include "../data/pokemon/spinda_spots.h"
-#include "../data/pokemon/item_effects.h"
-#include "../data/pokemon/nature_stats.h"
-#include "../data/pokemon/tmhm_learnsets.h"
-#include "../data/pokemon/trainer_class_lookups.h"
-#include "../data/pokemon/cry_ids.h"
-#include "../data/pokemon/experience_tables.h"
-#include "../data/pokemon/base_stats.h"
-#include "../data/pokemon/level_up_learnsets.h"
-#include "../data/pokemon/evolution.h"
-#include "../data/pokemon/level_up_learnset_pointers.h"
-
-const u8 gUnknown_08208238[] = { // Masks for getting PP Up count, also PP Max values
- 0x03, 0x0c, 0x30, 0xc0
-};
-
-const u8 gUnknown_0820823C[] = { // Masks for setting PP Up count
- 0xFC, 0xF3, 0xCF, 0x3F
-};
-
-const u8 gUnknown_08208240[] = { // Values added to PP Up count
- 0x01, 0x04, 0x10, 0x40
-};
-
-const u8 gStatStageRatios[][2] = {
- {10, 40}, // -6
- {10, 35}, // -5
- {10, 30}, // -4
- {10, 25}, // -3
- {10, 20}, // -2
- {10, 15}, // -1
- {10, 10}, // 0
- {15, 10}, // 1
- {20, 10}, // 2
- {25, 10}, // 3
- {30, 10}, // 4
- {35, 10}, // 5
- {40, 10} // 6
-};
-
-const u8 unknownGameFreakAbbrev_820825E[] = _("ゲーフリ");
-
-const u8 gHoldEffectToType[][2] = {
- {HOLD_EFFECT_BUG_POWER, TYPE_BUG},
- {HOLD_EFFECT_STEEL_POWER, TYPE_STEEL},
- {HOLD_EFFECT_GROUND_POWER, TYPE_GROUND},
- {HOLD_EFFECT_ROCK_POWER, TYPE_ROCK},
- {HOLD_EFFECT_GRASS_POWER, TYPE_GRASS},
- {HOLD_EFFECT_DARK_POWER, TYPE_DARK},
- {HOLD_EFFECT_FIGHTING_POWER, TYPE_FIGHTING},
- {HOLD_EFFECT_ELECTRIC_POWER, TYPE_ELECTRIC},
- {HOLD_EFFECT_WATER_POWER, TYPE_WATER},
- {HOLD_EFFECT_FLYING_POWER, TYPE_FLYING},
- {HOLD_EFFECT_POISON_POWER, TYPE_POISON},
- {HOLD_EFFECT_ICE_POWER, TYPE_ICE},
- {HOLD_EFFECT_GHOST_POWER, TYPE_GHOST},
- {HOLD_EFFECT_PSYCHIC_POWER, TYPE_PSYCHIC},
- {HOLD_EFFECT_FIRE_POWER, TYPE_FIRE},
- {HOLD_EFFECT_DRAGON_POWER, TYPE_DRAGON},
- {HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL}
-};
-
-extern void sub_80105A0(struct Sprite *);
-extern void oac_poke_opponent(struct Sprite *);
-
-const struct SpriteTemplate gSpriteTemplate_8208288[] = {
- {0xFFFF, 0, &gOamData_81F96F0, NULL, gSpriteImageTable_81E7A10, gSpriteAffineAnimTable_81E7B70, sub_80105A0},
- {0xFFFF, 0, &gOamData_81F96E8, NULL, gSpriteImageTable_81E7A30, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent},
- {0xFFFF, 0, &gOamData_81F96F0, NULL, gSpriteImageTable_81E7A50, gSpriteAffineAnimTable_81E7B70, sub_80105A0},
- {0xFFFF, 0, &gOamData_81F96E8, NULL, gSpriteImageTable_81E7A70, gSpriteAffineAnimTable_81E7BEC, oac_poke_opponent},
-};
-
-const u8 gSecretBaseTrainerClasses[][5] = {
- // male
- {TRAINER_CLASS_YOUNGSTER, TRAINER_CLASS_BUG_CATCHER, TRAINER_CLASS_RICH_BOY, TRAINER_CLASS_CAMPER, TRAINER_CLASS_COOL_TRAINER_M},
- // female
- {TRAINER_CLASS_LASS, TRAINER_CLASS_SCHOOL_KID_F, TRAINER_CLASS_LADY, TRAINER_CLASS_PICNICKER, TRAINER_CLASS_COOL_TRAINER_F}
-};
-
-const u8 gUnknown_082082F2[] = {
- MON_DATA_HP_EV,
- MON_DATA_ATK_EV,
- MON_DATA_DEF_EV,
- MON_DATA_SPEED_EV,
- MON_DATA_SPDEF_EV,
- MON_DATA_SPATK_EV
-};
-
-const u8 gUnknown_082082F8[] = {1, 1, 3, 2, 4, 6};
-
-const s8 gUnknown_082082FE[][3] = {
- // Happiness deltas
- { 5, 3, 2},
- { 5, 3, 2},
- { 1, 1, 0},
- { 3, 2, 1},
- { 1, 1, 0},
- { 1, 1, 1},
- {-1, -1, -1},
- {-5, -5, -10},
- {-5, -5, -10}
-};
-
-const u16 gHMMoves[] = {
- MOVE_CUT,
- MOVE_FLY,
- MOVE_SURF,
- MOVE_STRENGTH,
- MOVE_FLASH,
- MOVE_ROCK_SMASH,
- MOVE_WATERFALL,
- MOVE_DIVE,
- 0xffff
-};
-
-const u8 gJapaneseNidoranNames[][11] = {_("ニドラン♂"), _("ニドラン♀")};
diff --git a/src/pokemon/pokemon_item_effect.c b/src/pokemon/pokemon_item_effect.c
new file mode 100644
index 000000000..4ebece3b3
--- /dev/null
+++ b/src/pokemon/pokemon_item_effect.c
@@ -0,0 +1,550 @@
+#include "global.h"
+#include "constants/battle_constants.h"
+#include "constants/hold_effects.h"
+#include "constants/items.h"
+#include "constants/species.h"
+#include "battle.h"
+#include "evolution_scene.h"
+#include "ewram.h"
+#include "item.h"
+#include "main.h"
+#include "overworld.h"
+#include "pokemon.h"
+#include "pokemon_item_effect.h"
+#include "rom_8077ABC.h"
+#include "rom_8094928.h"
+#include "util.h"
+
+extern s32 gBattleMoveDamage;
+extern u8 gAbsentBankFlags;
+extern u8 gBankInMenu;
+extern u8 gNoOfAllBanks;
+extern u16 gBattlePartyID[];
+extern u8 gActiveBank;
+extern u8 gStringBank;
+extern struct BattlePokemon gBattleMons[];
+extern struct BattleEnigmaBerry gEnigmaBerries[];
+
+static const u8 sGetMonDataEVConstants[] =
+{
+ MON_DATA_HP_EV,
+ MON_DATA_ATK_EV,
+ MON_DATA_DEF_EV,
+ MON_DATA_SPEED_EV,
+ MON_DATA_SPDEF_EV,
+ MON_DATA_SPATK_EV
+};
+
+extern u8 gUnknown_08208238[];
+extern u8 gUnknown_0820823C[];
+extern u8 gUnknown_08208240[];
+
+bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
+
+bool8 ExecuteTableBasedItemEffect_(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 moveIndex)
+{
+ return PokemonUseItemEffects(pkmn, item, partyIndex, moveIndex, 0);
+}
+
+bool8 PokemonUseItemEffects(struct Pokemon *pkmn, u16 item, u8 partyIndex, u8 moveIndex, u8 e)
+{
+ u32 data;
+ s32 friendship;
+ s32 cmdIndex;
+ bool8 retVal = TRUE;
+ const u8 *itemEffect;
+ u8 sp24 = 6;
+ u32 sp28;
+ s8 sp2C = 0;
+ u8 holdEffect;
+ u8 sp34 = 4;
+ u16 heldItem;
+ u8 r10;
+ u32 r4;
+
+ heldItem = GetMonData(pkmn, MON_DATA_HELD_ITEM, NULL);
+ if (heldItem == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ holdEffect = gEnigmaBerries[gBankInMenu].holdEffect;
+ else
+ holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
+ }
+ else
+ {
+ holdEffect = ItemId_GetHoldEffect(heldItem);
+ }
+
+ gStringBank = gBankInMenu;
+ if (gMain.inBattle)
+ {
+ gActiveBank = gBankInMenu;
+ cmdIndex = (GetBankSide(gActiveBank) != 0);
+ while (cmdIndex < gNoOfAllBanks)
+ {
+ if (gBattlePartyID[cmdIndex] == partyIndex)
+ {
+ sp34 = cmdIndex;
+ break;
+ }
+ cmdIndex += 2;
+ }
+ }
+ else
+ {
+ gActiveBank = 0;
+ sp34 = 4;
+ }
+
+ if (!IS_POKEMON_ITEM(item))
+ return TRUE;
+ if (gItemEffectTable[item - 13] == NULL && item != ITEM_ENIGMA_BERRY)
+ return TRUE;
+
+ if (item == ITEM_ENIGMA_BERRY)
+ {
+ if (gMain.inBattle)
+ itemEffect = gEnigmaBerries[gActiveBank].itemEffect;
+ else
+ itemEffect = gSaveBlock1.enigmaBerry.itemEffect;
+ }
+ else
+ {
+ itemEffect = gItemEffectTable[item - 13];
+ }
+
+ for (cmdIndex = 0; cmdIndex < 6; cmdIndex++)
+ {
+ switch (cmdIndex)
+ {
+ // status healing effects
+ case 0:
+ if ((itemEffect[cmdIndex] & 0x80)
+ && gMain.inBattle && sp34 != 4 && (gBattleMons[sp34].status2 & STATUS2_INFATUATION))
+ {
+ gBattleMons[sp34].status2 &= ~STATUS2_INFATUATION;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x30)
+ && !(gBattleMons[gActiveBank].status2 & STATUS2_FOCUS_ENERGY))
+ {
+ gBattleMons[gActiveBank].status2 |= STATUS2_FOCUS_ENERGY;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0xF)
+ && gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] < 12)
+ {
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] > 12)
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_ATK] = 12;
+ retVal = FALSE;
+ }
+ break;
+ // in-battle stat boosting effects?
+ case 1:
+ if ((itemEffect[cmdIndex] & 0xF0)
+ && gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] < 12)
+ {
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] += (itemEffect[cmdIndex] & 0xF0) >> 4;
+ if (gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] > 12)
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_DEF] = 12;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0xF)
+ && gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] < 12)
+ {
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] > 12)
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_SPEED] = 12;
+ retVal = FALSE;
+ }
+ break;
+ // more stat boosting effects?
+ case 2:
+ if ((itemEffect[cmdIndex] & 0xF0)
+ && gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] < 12)
+ {
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] += (itemEffect[cmdIndex] & 0xF0) >> 4;
+ if (gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] > 12)
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_ACC] = 12;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0xF)
+ && gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] < 12)
+ {
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] += itemEffect[cmdIndex] & 0xF;
+ if (gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] > 12)
+ gBattleMons[gActiveBank].statStages[STAT_STAGE_SPATK] = 12;
+ retVal = FALSE;
+ }
+ break;
+ case 3:
+ if ((itemEffect[cmdIndex] & 0x80)
+ && gSideTimers[GetBankSide(gActiveBank)].mistTimer == 0)
+ {
+ gSideTimers[GetBankSide(gActiveBank)].mistTimer = 5;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x40) // raise level
+ && GetMonData(pkmn, MON_DATA_LEVEL, NULL) != 100)
+ {
+ data = gExperienceTables[gBaseStats[GetMonData(pkmn, MON_DATA_SPECIES, NULL)].growthRate][GetMonData(pkmn, MON_DATA_LEVEL, NULL) + 1];
+ SetMonData(pkmn, MON_DATA_EXP, &data);
+ CalculateMonStats(pkmn);
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x20)
+ && HealStatusConditions(pkmn, partyIndex, 7, sp34) == 0)
+ {
+ if (sp34 != 4)
+ gBattleMons[sp34].status2 &= ~STATUS2_NIGHTMARE;
+ retVal = FALSE;
+ }
+ if ((itemEffect[cmdIndex] & 0x10) && HealStatusConditions(pkmn, partyIndex, 0xF88, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 8) && HealStatusConditions(pkmn, partyIndex, 16, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 4) && HealStatusConditions(pkmn, partyIndex, 32, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 2) && HealStatusConditions(pkmn, partyIndex, 64, sp34) == 0)
+ retVal = FALSE;
+ if ((itemEffect[cmdIndex] & 1) // heal confusion
+ && gMain.inBattle && sp34 != 4 && (gBattleMons[sp34].status2 & STATUS2_CONFUSION))
+ {
+ gBattleMons[sp34].status2 &= ~STATUS2_CONFUSION;
+ retVal = FALSE;
+ }
+ break;
+ // EV, HP, and PP raising effects
+ case 4:
+ r10 = itemEffect[cmdIndex];
+ if (r10 & 0x20)
+ {
+ r10 &= ~0x20;
+ data = (GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL) & gUnknown_08208238[moveIndex]) >> (moveIndex * 2);
+ sp28 = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex);
+ if (data <= 2 && sp28 > 4)
+ {
+ data = GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL) + gUnknown_08208240[moveIndex];
+ SetMonData(pkmn, MON_DATA_PP_BONUSES, &data);
+
+ data = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), data, moveIndex) - sp28;
+ data = GetMonData(pkmn, MON_DATA_PP1 + moveIndex, NULL) + data;
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
+ retVal = FALSE;
+ }
+ }
+ sp28 = 0;
+ while (r10 != 0)
+ {
+ if (r10 & 1)
+ {
+ u16 evCount;
+ s32 r5;
+
+ switch (sp28)
+ {
+ case 0:
+ case 1:
+ evCount = GetMonEVCount(pkmn);
+ if (evCount >= 510)
+ return TRUE;
+ data = GetMonData(pkmn, sGetMonDataEVConstants[sp28], NULL);
+ if (data < 100)
+ {
+ if (data + itemEffect[sp24] > 100)
+ r4 = 100 - (data + itemEffect[sp24]) + itemEffect[sp24];
+ else
+ r4 = itemEffect[sp24];
+ if (evCount + r4 > 510)
+ r4 += 510 - (evCount + r4);
+ data += r4;
+ SetMonData(pkmn, sGetMonDataEVConstants[sp28], &data);
+ CalculateMonStats(pkmn);
+ sp24++;
+ retVal = FALSE;
+ }
+ break;
+ case 2:
+ // revive?
+ if (r10 & 0x10)
+ {
+ if (GetMonData(pkmn, MON_DATA_HP, NULL) != 0)
+ {
+ sp24++;
+ break;
+ }
+ if (gMain.inBattle)
+ {
+ if (sp34 != 4)
+ {
+ gAbsentBankFlags &= ~gBitTable[sp34];
+ CopyPlayerPartyMonToBattleData(sp34, pokemon_order_func(gBattlePartyID[sp34]));
+ if (GetBankSide(gActiveBank) == 0 && gBattleResults.unk4 < 255)
+ gBattleResults.unk4++;
+ }
+ else
+ {
+ gAbsentBankFlags &= ~gBitTable[gActiveBank ^ 2];
+ if (GetBankSide(gActiveBank) == 0 && gBattleResults.unk4 < 255)
+ gBattleResults.unk4++;
+ }
+ }
+ }
+ else
+ {
+ if (GetMonData(pkmn, MON_DATA_HP, NULL) == 0)
+ {
+ sp24++;
+ break;
+ }
+ }
+ data = itemEffect[sp24++];
+ switch (data)
+ {
+ case 0xFF:
+ data = GetMonData(pkmn, MON_DATA_MAX_HP, NULL) - GetMonData(pkmn, MON_DATA_HP, NULL);
+ break;
+ case 0xFE:
+ data = GetMonData(pkmn, MON_DATA_MAX_HP, NULL) / 2;
+ if (data == 0)
+ data = 1;
+ break;
+ case 0xFD:
+ data = eStatHp;
+ break;
+ }
+ if (GetMonData(pkmn, MON_DATA_MAX_HP, NULL) != GetMonData(pkmn, MON_DATA_HP, NULL))
+ {
+ if (e == 0)
+ {
+ data = GetMonData(pkmn, MON_DATA_HP, NULL) + data;
+ if (data > GetMonData(pkmn, MON_DATA_MAX_HP, NULL))
+ data = GetMonData(pkmn, MON_DATA_MAX_HP, NULL);
+ SetMonData(pkmn, MON_DATA_HP, &data);
+ if (gMain.inBattle && sp34 != 4)
+ {
+ gBattleMons[sp34].hp = data;
+ if (!(r10 & 0x10) && GetBankSide(gActiveBank) == 0)
+ {
+ if (gBattleResults.unk3 < 255)
+ gBattleResults.unk3++;
+ // I have to re-use this variable to match.
+ r5 = gActiveBank;
+ gActiveBank = sp34;
+ EmitGetAttributes(0, 0, 0);
+ MarkBufferBankForExecution(gActiveBank);
+ gActiveBank = r5;
+ }
+ }
+ }
+ else
+ {
+ gBattleMoveDamage = -data;
+ }
+ retVal = FALSE;
+ }
+ r10 &= 0xEF;
+ break;
+ case 3:
+ if (!(r10 & 2))
+ {
+ for (r5 = 0; r5 < 4; r5++)
+ {
+ u16 r4;
+
+ data = GetMonData(pkmn, MON_DATA_PP1 + r5, NULL);
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + r5, NULL);
+ if (data != CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), r5))
+ {
+ data += itemEffect[sp24];
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + r5, NULL);
+ if (data > CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), r5))
+ {
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + r5, NULL);
+ data = CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), r5);
+ }
+ SetMonData(pkmn, MON_DATA_PP1 + r5, &data);
+ if (gMain.inBattle
+ && sp34 != 4 && !(gBattleMons[sp34].status2 & 0x200000)
+ && !(gDisableStructs[sp34].unk18_b & gBitTable[r5]))
+ gBattleMons[sp34].pp[r5] = data;
+ retVal = FALSE;
+ }
+ }
+ sp24++;
+ }
+ else
+ {
+ u16 r4;
+
+ data = GetMonData(pkmn, MON_DATA_PP1 + moveIndex, NULL);
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL);
+ if (data != CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex))
+ {
+ data += itemEffect[sp24++];
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL);
+ if (data > CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex))
+ {
+ r4 = GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL);
+ data = CalculatePPWithBonus(r4, GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex);
+ }
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
+ if (gMain.inBattle
+ && sp34 != 4 && !(gBattleMons[sp34].status2 & 0x200000)
+ && !(gDisableStructs[sp34].unk18_b & gBitTable[moveIndex]))
+ gBattleMons[sp34].pp[moveIndex] = data;
+ retVal = FALSE;
+ }
+ }
+ break;
+ case 7:
+ {
+ u16 targetSpecies = GetEvolutionTargetSpecies(pkmn, 2, item);
+
+ if (targetSpecies != SPECIES_NONE)
+ {
+ BeginEvolutionScene(pkmn, targetSpecies, 0, partyIndex);
+ return FALSE;
+ }
+ }
+ break;
+ }
+ }
+ sp28++;
+ r10 >>= 1;
+ }
+ break;
+ case 5:
+ r10 = itemEffect[cmdIndex];
+ sp28 = 0;
+ while (r10 != 0)
+ {
+ if (r10 & 1)
+ {
+ u16 evCount;
+
+ switch (sp28)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ evCount = GetMonEVCount(pkmn);
+ if (evCount >= 510)
+ return TRUE;
+ data = GetMonData(pkmn, sGetMonDataEVConstants[sp28 + 2], NULL);
+ if (data < 100)
+ {
+ if (data + itemEffect[sp24] > 100)
+ r4 = 100 - (data + itemEffect[sp24]) + itemEffect[sp24];
+ else
+ r4 = itemEffect[sp24];
+ if (evCount + r4 > 510)
+ r4 += 510 - (evCount + r4);
+ data += r4;
+ SetMonData(pkmn, sGetMonDataEVConstants[sp28 + 2], &data);
+ CalculateMonStats(pkmn);
+ retVal = FALSE;
+ sp24++;
+ }
+ break;
+ case 4:
+ data = (GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL) & gUnknown_08208238[moveIndex]) >> (moveIndex * 2);
+ if (data < 3)
+ {
+ r4 = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL), moveIndex);
+ data = GetMonData(pkmn, MON_DATA_PP_BONUSES, NULL);
+ data &= gUnknown_0820823C[moveIndex];
+ data += gUnknown_08208240[moveIndex] * 3;
+
+ SetMonData(pkmn, MON_DATA_PP_BONUSES, &data);
+ data = CalculatePPWithBonus(GetMonData(pkmn, MON_DATA_MOVE1 + moveIndex, NULL), data, moveIndex) - r4;
+ data = GetMonData(pkmn, MON_DATA_PP1 + moveIndex, NULL) + data;
+ SetMonData(pkmn, MON_DATA_PP1 + moveIndex, &data);
+ retVal = FALSE;
+ }
+ break;
+ case 5:
+ if (GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) < 100 && retVal == 0 && sp2C == 0)
+ {
+ sp2C = itemEffect[sp24];
+ friendship = GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL);
+ if (sp2C > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ friendship += 150 * sp2C / 100;
+ else
+ friendship += sp2C;
+ if (sp2C > 0)
+ {
+ if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11)
+ friendship++;
+ if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name())
+ friendship++;
+ }
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pkmn, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ sp24++;
+ break;
+ case 6:
+ if (GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) >= 100 && GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) < 200
+ && retVal == 0 && sp2C == 0)
+ {
+ sp2C = itemEffect[sp24];
+ friendship = GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL);
+ if (sp2C > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ friendship += 150 * sp2C / 100;
+ else
+ friendship += sp2C;
+ if (sp2C > 0)
+ {
+ if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11)
+ friendship++;
+ if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name())
+ friendship++;
+ }
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pkmn, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ sp24++;
+ break;
+ case 7:
+ if (GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL) >= 200 && retVal == 0 && sp2C == 0)
+ {
+ sp2C = itemEffect[sp24];
+ friendship = GetMonData(pkmn, MON_DATA_FRIENDSHIP, NULL);
+ if (sp2C > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP)
+ friendship += 150 * sp2C / 100;
+ else
+ friendship += sp2C;
+ if (sp2C > 0)
+ {
+ if (GetMonData(pkmn, MON_DATA_POKEBALL, NULL) == 11)
+ friendship++;
+ if (GetMonData(pkmn, MON_DATA_MET_LOCATION, NULL) == sav1_map_get_name())
+ friendship++;
+ }
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pkmn, MON_DATA_FRIENDSHIP, &friendship);
+ }
+ sp24++;
+ break;
+ }
+ }
+ sp28++;
+ r10 >>= 1;
+ }
+ break;
+ }
+ }
+ return retVal;
+}
diff --git a/src/pokemon/pokemon_menu.c b/src/pokemon/pokemon_menu.c
index d2a5197a0..532340ce4 100644
--- a/src/pokemon/pokemon_menu.c
+++ b/src/pokemon/pokemon_menu.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "easy_chat.h"
#include "pokemon.h"
#include "pokemon_menu.h"
#include "party_menu.h"
@@ -30,6 +31,7 @@
#include "item_menu.h"
#include "player_pc.h"
#include "ewram.h"
+#include "script.h"
/*
Pokemon menu:
@@ -44,16 +46,16 @@ struct PokeMenuFieldMoveFunc
u8 field_1;
};
+extern u8 gUnknown_020297ED;
extern u8 gUnknown_020384F0;
extern u8 gUnknown_0202E8F4;
extern u8 gUnknown_0202E8F5;
extern u8 gUnknown_0202E8F6;
extern u8 gUnknown_02038561;
extern u16 gUnknown_0202E8F8;
-extern void (*gUnknown_03004AE4)(u8 taskID, u16 itemID, TaskFunc func);
+extern void (*gPokemonItemUseCallback)(u8 taskID, u16 itemID, TaskFunc func);
extern TaskFunc gUnknown_03005CF0;
-void sub_80E62A0(u8 arg0, struct MailStruct* arg1, void* arg2, u8 arg3);
void sub_808A520(void);
void sub_80A61D0(void);
void CB2_InitFlyRegionMap(void);
@@ -229,8 +231,8 @@ static void sub_8089A8C(void)
static void sub_8089BDC(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order, u8 arg6)
{
PrintPartyMenuPromptText(5, arg6);
- MenuDrawTextWindow(arg0, arg1, arg0 + arg2, (noOfOptions * 2) + arg1 + 1);
- PrintMenuItemsReordered(arg0 + 1, arg1 + 1, noOfOptions, menuActions, order);
+ Menu_DrawStdWindowFrame(arg0, arg1, arg0 + arg2, (noOfOptions * 2) + arg1 + 1);
+ Menu_PrintItemsReordered(arg0 + 1, arg1 + 1, noOfOptions, menuActions, order);
}
void sub_8089C50(u8 arg0, u8 arg1, u8 arg2, u8 noOfOptions, const struct MenuAction2 *menuActions, const u8 *order)
@@ -279,13 +281,13 @@ static void sub_8089D94(u8 taskID)
if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
{
PlaySE(SE_SELECT);
- sPokeMenuCursorPos = MoveMenuCursor(-1);
+ sPokeMenuCursorPos = Menu_MoveCursor(-1);
sub_808B5B4(taskID);
}
else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
- sPokeMenuCursorPos = MoveMenuCursor(1);
+ sPokeMenuCursorPos = Menu_MoveCursor(1);
sub_808B5B4(taskID);
}
else if (gMain.newKeys & A_BUTTON)
@@ -363,12 +365,12 @@ static void PokemonMenu_Summary(u8 taskID)
void DoPokemonMenu_Switch(u8 taskID)
{
SetTaskFuncWithFollowupFunc(taskID, SetupDefaultPartyMenuSwitchPokemon, HandleDefaultPartyMenu);
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
}
static void PokemonMenu_Switch(u8 taskID)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
ewram01000.unkC = sub_806CD5C;
ewram01000.array[53553] = 1;
DoPokemonMenu_Switch(taskID);
@@ -378,12 +380,12 @@ static void sub_808A060(u8 taskID)
{
if (gMain.newKeys == DPAD_UP && sPokeMenuCursorPos != 0)
{
- sPokeMenuCursorPos = MoveMenuCursor(-1);
+ sPokeMenuCursorPos = Menu_MoveCursor(-1);
PlaySE(SE_SELECT);
}
if (gMain.newKeys == DPAD_DOWN && sPokeMenuCursorPos != 2)
{
- sPokeMenuCursorPos = MoveMenuCursor(1);
+ sPokeMenuCursorPos = Menu_MoveCursor(1);
PlaySE(SE_SELECT);
}
if (gMain.newKeys & A_BUTTON)
@@ -407,9 +409,9 @@ static void sub_808A100(u8 taskID)
static void PokemonMenu_Item(u8 taskID)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
sPokeMenuCursorPos = 0;
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
gTasks[taskID].func = sub_808A100;
}
@@ -419,7 +421,7 @@ static void sub_808A180(u8 taskID)
{
u8 mailID = GetMonData(&gPlayerParty[sub_806CA38(taskID)], MON_DATA_MAIL);
DestroyTask(taskID);
- sub_80E62A0(4, &gSaveBlock1.mail[mailID], sub_808A520, 3);
+ sub_80E62A0(4, gSaveBlock1.mail[mailID].words, sub_808A520, 3);
}
}
@@ -442,7 +444,7 @@ static void sub_808A228(u8 taskID)
}
else
{
- MenuZeroFillWindowRect(0, 0, 29, 19);
+ Menu_EraseWindowRect(0, 0, 29, 19);
PrintPartyMenuPromptText(0, 0);
gTasks[taskID].func = HandleDefaultPartyMenu;
}
@@ -458,7 +460,7 @@ static void sub_808A2DC(u8 taskID)
{
u8 mailID = GetMonData(&gPlayerParty[sub_806CA38(taskID)], MON_DATA_MAIL);
DestroyTask(taskID);
- sub_80E62A0(4, &gSaveBlock1.mail[mailID], sub_808A520, 3);
+ sub_80E62A0(4, gSaveBlock1.mail[mailID].words, sub_808A520, 3);
}
static void sub_808A330(u8 taskID)
@@ -600,25 +602,25 @@ static void sub_808A678(u8 taskID)
static void PokemonMenu_TakeItem(u8 taskID)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(19, 0, 29, 19);
sub_806D5A4();
PartyMenuTryGiveMonHeldItem_806ECE8(taskID, sub_808A678);
}
static void PokemonMenu_TakeMail(u8 taskID)
{
- HandleDestroyMenuCursors();
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(19, 0, 29, 19);
sub_806D5A4();
DoTakeMail(taskID, sub_808A678);
}
static void PokemonMenu_Mail(u8 taskID)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
sPokeMenuCursorPos = 0;
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
ShowPartyPopupMenu(0, &sUnknown_0839F584, (void*) sPokemonMenuActions, 0);
gTasks[taskID].func = sub_808A73C;
}
@@ -629,17 +631,17 @@ static void sub_808A73C(u8 taskID)
{
PlaySE(SE_SELECT);
if (sPokeMenuCursorPos == 0)
- sPokeMenuCursorPos = MoveMenuCursor(sUnknown_0839F584.numChoices - 1);
+ sPokeMenuCursorPos = Menu_MoveCursor(sUnknown_0839F584.numChoices - 1);
else
- sPokeMenuCursorPos = MoveMenuCursor(-1);
+ sPokeMenuCursorPos = Menu_MoveCursor(-1);
}
if (gMain.newAndRepeatedKeys == DPAD_DOWN)
{
PlaySE(SE_SELECT);
if (sPokeMenuCursorPos == sUnknown_0839F584.numChoices - 1)
- sPokeMenuCursorPos = MoveMenuCursor(1 - sUnknown_0839F584.numChoices);
+ sPokeMenuCursorPos = Menu_MoveCursor(1 - sUnknown_0839F584.numChoices);
else
- sPokeMenuCursorPos = MoveMenuCursor(1);
+ sPokeMenuCursorPos = Menu_MoveCursor(1);
}
if (gMain.newKeys & A_BUTTON)
{
@@ -679,23 +681,23 @@ static void sub_808A8A8(void)
static void sub_808A8D4(u8 taskID)
{
sPokeMenuCursorPos = 0;
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
PrintPartyMenuPromptText(0, 0);
gTasks[taskID].func = HandleDefaultPartyMenu;
}
static void PokemonMenu_Cancel(u8 taskID)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
sub_808A8D4(taskID);
}
static void PokemonMenu_CancelSubmenu(u8 taskID)
{
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
PlaySE(SE_SELECT);
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
sub_806D5A4();
sub_8089C7C(sPokeMenuCursorPos);
gTasks[taskID].func = sub_8089D94;
@@ -711,11 +713,11 @@ static void PokemonMenu_FieldMove(u8 taskID)
{
s16* data = gTasks[taskID].data;
- HandleDestroyMenuCursors();
+ Menu_DestroyCursor();
tFieldMoveId = sPokeMenuOptionsOrder[sPokeMenuCursorPos] - POKEMENU_FIRST_FIELD_MOVE_ID;
if (sub_80F9344() == TRUE)
{
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
if (IS_SOFTBOILED_MILKDRINK(tFieldMoveId))
PrintPartyMenuPromptText(9, 0);
else
@@ -725,7 +727,7 @@ static void PokemonMenu_FieldMove(u8 taskID)
else if (tFieldMoveId <= 7 && FlagGet(FLAG_BADGE01_GET + tFieldMoveId) != TRUE)
{
// can't use a field HM move without a proper badge
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
sub_806D5A4();
sub_806E834(gOtherText_CantBeUsedBadge, 1);
gTasks[taskID].func = sub_808AAF0;
@@ -745,7 +747,7 @@ static void PokemonMenu_FieldMove(u8 taskID)
}
else
{
- MenuZeroFillWindowRect(19, 0, 29, 19);
+ Menu_EraseWindowRect(19, 0, 29, 19);
if (IS_SURF(tFieldMoveId) && TestPlayerAvatarFlags(8))
PrintPartyMenuPromptText(8, 0);
else
@@ -759,7 +761,7 @@ static void sub_808AAF0(u8 taskID)
{
if (gUnknown_0202E8F6 != 1 && (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON))
{
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
PokemonMenu_Cancel(taskID);
}
}
@@ -786,7 +788,7 @@ void FieldCallback_Teleport(void)
static void sub_808ABA8(u8 taskID)
{
- if (sub_807D770() == TRUE)
+ if (IsWeatherNotFadingIn() == TRUE)
{
gFieldEffectArguments[0] = GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_SPECIES);
gUnknown_03005CE4();
@@ -798,7 +800,7 @@ static void sub_808ABF4(u8 taskID)
{
if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
{
- MenuZeroFillWindowRect(1, 17, 28, 18);
+ Menu_EraseWindowRect(1, 17, 28, 18);
PokemonMenu_Cancel(taskID);
}
}
@@ -900,9 +902,10 @@ static void sub_808AE08(void)
static bool8 SetUpFieldMove_Waterfall(void)
{
s16 x, y;
+
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
if (MetatileBehavior_IsWaterfall(MapGridGetMetatileBehaviorAt(x, y)) == TRUE
- && IsPlayerSurfingNorth() == TRUE)
+ && IsPlayerSurfingNorth() == TRUE)
{
gFieldCallback = FieldCallback_Teleport;
gUnknown_03005CE4 = sub_808AE08;
@@ -912,6 +915,20 @@ static bool8 SetUpFieldMove_Waterfall(void)
return FALSE;
}
+#if DEBUG
+void debug_sub_80986AC(void)
+{
+ s16 x, y;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ if (MetatileBehavior_IsWaterfall(MapGridGetMetatileBehaviorAt(x, y)) == TRUE
+ && IsPlayerSurfingNorth() == TRUE)
+ sub_808AE08();
+ else
+ ScriptContext2_Disable();
+}
+#endif
+
static void sub_808AE8C(void)
{
u8 i;
@@ -921,7 +938,11 @@ static void sub_808AE8C(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
{
sub_806D668(i);
- if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) || !CanMonLearnTMHM(&gPlayerParty[i], arg))
+ if (
+#if DEBUG
+ gUnknown_020297ED == 0 &&
+#endif
+ (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) || !CanMonLearnTMHM(&gPlayerParty[i], arg)))
sub_806BC3C(i, 0x9A);
else if (pokemon_has_move(&gPlayerParty[i], ItemIdToBattleMoveId(gSpecialVar_ItemId)))
sub_806BC3C(i, 0xA8);
@@ -1013,7 +1034,7 @@ void sub_808B0C0(u8 taskID)
{
sub_806D5A4();
if (gUnknown_02038561 == 0)
- gUnknown_03004AE4(taskID, gSpecialVar_ItemId, sub_808B224);
+ gPokemonItemUseCallback(taskID, gSpecialVar_ItemId, sub_808B224);
if (gUnknown_02038561 == 1)
{
PlaySE(SE_SELECT);
@@ -1042,7 +1063,7 @@ void sub_808B0C0(u8 taskID)
static void sub_808B1EC(u8 taskID)
{
if (!gPaletteFade.active)
- gUnknown_03004AE4(taskID, gSpecialVar_ItemId, sub_808B224);
+ gPokemonItemUseCallback(taskID, gSpecialVar_ItemId, sub_808B224);
}
static void sub_808B224(u8 taskID)
@@ -1095,7 +1116,7 @@ static void sub_808B338(u8 taskID)
gLastFieldPokeMenuOpened = sub_806CA38(taskID);
mailID = GetMonData(&gPlayerParty[gLastFieldPokeMenuOpened], MON_DATA_MAIL);
DestroyTask(taskID);
- sub_80E62A0(4, &gSaveBlock1.mail[mailID], sub_808B3EC, 3);
+ sub_80E62A0(4, gSaveBlock1.mail[mailID].words, sub_808B3EC, 3);
}
}
diff --git a/src/pokemon/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 4a68b846a..1ea8bc205 100644
--- a/src/pokemon/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
@@ -1,93 +1,784 @@
#include "global.h"
-#include "pokemon_storage_system.h"
+#include "palette.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "field_weather.h"
+#include "overworld.h"
+#include "field_fadetransition.h"
#include "menu.h"
+#include "main.h"
+#include "strings.h"
#include "string_util.h"
-#include "ewram.h"
+#include "event_data.h"
+#include "script.h"
+#include "pokemon_storage_system.h"
+
+void StorageSystemCreatePrimaryMenu(u8 whichMenu);
+void sub_80963D0(u8 curBox);
+void sub_809658C(void);
+void sub_80965F8(void);
+void sub_809662C(void);
+void sub_809665C(void);
+void sub_80966F4(const u8 *sourceString, u16 x, u16 y);
+void sub_8096784(struct Sprite *sprite);
+
+EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
+EWRAM_DATA u8 gUnknown_02038470[3] = {};
+EWRAM_DATA u8 gUnknown_02038473 = 0;
+EWRAM_DATA u8 gUnknown_02038474 = 0;
+EWRAM_DATA struct UnkPSSStruct_2002370 *gUnknown_02038478 = NULL;
-struct StorageAction {
- u8 *text;
- u8 format;
+const struct PSS_MenuStringPtrs gUnknown_083B600C[] = {
+ {PCText_WithdrawPoke, PCText_MovePokeToParty},
+ {PCText_DepositPoke, PCText_StorePokeInBox},
+ {PCText_MovePoke, PCText_OrganizeBoxesParty},
+ {PCText_SeeYa, PCText_ReturnToPrevMenu}
};
-extern const struct StorageAction gUnknown_083B6DF4[];
+#if DEBUG
+const u16 gUnknown_Debug_083E05F0[2] = {0};
+#endif
-EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
+const union AnimCmd gSpriteAnim_83B602C[] = {
+ ANIMCMD_FRAME( 0, 5),
+ ANIMCMD_END
+};
-void sub_8098898(u8 index) {
- u8 *ptr;
+const union AnimCmd gSpriteAnim_83B6034[] = {
+ ANIMCMD_FRAME( 4, 5),
+ ANIMCMD_END
+};
- MenuDrawTextWindow(10, 16, 29, 19);
+const union AnimCmd gSpriteAnim_83B603C[] = {
+ ANIMCMD_FRAME( 6, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83B6044[] = {
+ ANIMCMD_FRAME(10, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83B604C[] = {
+ gSpriteAnim_83B602C,
+ gSpriteAnim_83B6034,
+ gSpriteAnim_83B603C,
+ gSpriteAnim_83B6044
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83B605C[] = {
+ AFFINEANIMCMD_FRAME(0xe0, 0xe0, 0, 0),
+ AFFINEANIMCMD_END
+};
- switch (gUnknown_083B6DF4[index].format)
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83B606C[] = {
+ gSpriteAffineAnim_83B605C
+};
+
+const u16 gBoxSelectionPopupPalette[] = INCBIN_U16("graphics/pokemon_storage/box_selection_popup.gbapal");
+
+const u8 gBoxSelectionPopupCenterTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_center.4bpp");
+
+const u8 gBoxSelectionPopupSidesTiles[] = INCBIN_U8("graphics/pokemon_storage/box_selection_popup_sides.4bpp");
+
+u8 CountPokemonInBoxN(u8 boxId)
+{
+ u16 i;
+ u16 count;
+
+ for (i = 0, count = 0; i < 30; i++)
{
+ if (GetBoxMonData(gPokemonStorage.boxes[boxId] + i, MON_DATA_SPECIES) != 0)
+ count++;
+ }
+ return count;
+}
+
+s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId)
+{
+ u16 i;
- case 2:
- ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
- ptr = StringCopy(ptr, gUnk20011fa);
- break;
+ for (i = 0; i < 30; i++)
+ {
+ if (GetBoxMonData(gPokemonStorage.boxes[boxId] + i, MON_DATA_SPECIES) == 0)
+ return i;
+ }
+ return -1;
+}
- case 5:
- ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
- ptr = StringCopy(ptr, gUnk20026e4);
- break;
+u8 GetNumValidDaycarePartyMons(void)
+{
+ u16 i;
+ u16 count;
- case 1:
- // {var} + " is selected."
- ptr = StringCopy(gUnk2002694, gUnk20011fa);
- ptr = StringCopy(ptr, gUnknown_083B6DF4[index].text);
- break;
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
+ {
+ struct Pokemon *pokemon = gPlayerParty + i;
+ if (GetMonData(pokemon, MON_DATA_SPECIES) != 0 && !GetMonData(pokemon, MON_DATA_IS_EGG))
+ count++;
+ }
+ return count;
+}
- case 4:
- // {var} + " was released."
- ptr = StringCopy(gUnk2002694, gUnk20026e4);
-#if ENGLISH
- ptr = StringCopy(ptr, gUnknown_083B6DF4[index].text);
-#elif GERMAN
- ptr = de_sub_8073174(gUnk2002694, gUnknown_083B6DF4[index].text);
-#endif
- break;
+u8 CountAlivePartyMonsExceptOne(u8 toSkip)
+{
+ u16 i;
+ u16 count;
- case 3:
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
{
- u8 *stringLength;
- u8 *text;
+ if (i != toSkip)
+ {
+ struct Pokemon *pokemon = gPlayerParty + i;
+ if (GetMonData(pokemon, MON_DATA_SPECIES) != 0 && !GetMonData(pokemon, MON_DATA_IS_EGG) && GetMonData(pokemon, MON_DATA_HP) != 0)
+ count++;
+ }
+ }
+ return count;
+}
+
+u8 CountAlivePartyMonsExceptSelectedOne(void)
+{
+ return CountAlivePartyMonsExceptOne(gSpecialVar_0x8004);
+}
+
+u8 StorageSystemGetPartySize(void)
+{
+ u16 i;
+ u16 count;
+
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
+ {
+ if (GetMonData(gPlayerParty + i, MON_DATA_SPECIES) != 0)
+ count++;
+ }
+ return count;
+}
+
+u8 *unref_sub_8095C60(u8 *dest, const u8 *src, u16 pad)
+{
+ u8 *_dest = StringCopy(dest, src);
+ while (_dest < dest + pad)
+ {
+ *_dest++ = CHAR_SPACE;
+ }
+ *_dest = EOS;
+ return _dest;
+}
+
+void sub_8095C8C(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width)
+{
+ u16 i;
+
+ dest_width *= 2;
+ dest += dest_top * 0x20 + dest_left;
+ src += src_top * src_width + src_left;
+ for (i = 0; i < dest_height; i++)
+ {
+ CpuCopy16(src, dest, dest_width);
+ dest += 0x20;
+ src += src_width;
+ }
+}
+
+#define MAX_DMA_BLOCK_SIZE 0x1000
+#define Dma3FillLarge_(value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaFill##bit(3, value, _dest, _size); \
+ break; \
+ } \
+ DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
+#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
+
+void unref_sub_8095D08(u16 *dest, u16 dest_left, u16 dest_top, u16 width, u16 height)
+{
+ u16 i;
+
+ dest += dest_top * 0x20 + dest_left;
+ width *= 2;
+ for (i = 0; i < height; dest += 0x20, i++)
+ Dma3FillLarge16_(0, dest, width);
+}
+
+s16 StorageSystemGetNextMonIndex(struct BoxPokemon *box, s8 startIdx, u8 stopIdx, u8 mode)
+{
+ s16 i;
+ s16 direction;
+ if (mode == 0 || mode == 2)
+ {
+ direction = 1;
+ }
+ else
+ {
+ direction = -1;
+ }
+ if (mode == 2 || mode == 3)
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0)
+ return i;
+ }
+ }
+ else
+ {
+ for (i = startIdx + direction; i >= 0 && i <= stopIdx; i += direction)
+ {
+ if (GetBoxMonData(box + i, MON_DATA_SPECIES) != 0 && !GetBoxMonData(box + i, MON_DATA_IS_EGG))
+ return i;
+ }
+ }
+ return -1;
+}
- text = gUnknown_083B6DF4[index].text;
- stringLength = &text[StringLength(text)] + 1;
+void StorageSystemClearMessageWindow(void)
+{
+ Menu_BlankWindowRect(2, 15, 27, 18);
+}
- ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
- ptr = StringCopy(ptr, gUnk20011fa);
- ptr = StringCopy(ptr, stringLength);
+void Task_PokemonStorageSystem(u8 taskId)
+{
+ struct Task *task = gTasks + taskId;
+ switch (task->data[0])
+ {
+ case 0:
+ StorageSystemCreatePrimaryMenu(task->data[1]);
+ Menu_DisplayDialogueFrame();
+ Menu_PrintText(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0]++;
+ break;
+ case 1:
+ if (IsWeatherNotFadingIn())
+ {
+ task->data[0]++;
+ }
+ break;
+ case 2:
+ task->data[2] = Menu_ProcessInput();
+ switch(task->data[2])
+ {
+ case -2:
+ task->data[3] = task->data[1];
+ if (gMain.newKeys & DPAD_UP && --task->data[3] < 0)
+ task->data[3] = 3;
+
+ if (gMain.newKeys & DPAD_DOWN && ++task->data[3] > 3)
+ task->data[3] = 0;
+ if (task->data[1] != task->data[3])
+ {
+ task->data[1] = task->data[3];
+ StorageSystemClearMessageWindow();
+ Menu_PrintText(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ }
+ break;
+ case -1:
+ case 3:
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(0, 0, 13, 9);
+ ScriptContext2_Disable();
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ default:
+ if (task->data[2] == 0 && StorageSystemGetPartySize() == PARTY_SIZE)
+ {
+ StorageSystemClearMessageWindow();
+ Menu_PrintText(gPCText_PartyFull2, 2, 15);
+ task->data[0] = 3;
+ }
+ else if (task->data[2] == 1 && StorageSystemGetPartySize() == 1)
+ {
+ StorageSystemClearMessageWindow();
+ Menu_PrintText(gPCText_OnlyOne, 2, 15);
+ task->data[0] = 3;
+ }
+ else
+ {
+ FadeScreen(1, 0);
+ task->data[0] = 4;
+ }
+ break;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ StorageSystemClearMessageWindow();
+ Menu_PrintText(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_UP)
+ {
+ if (--task->data[1] < 0)
+ task->data[1] = 3;
+ Menu_MoveCursor(-1);
+ task->data[1] = Menu_GetCursorPos();
+ StorageSystemClearMessageWindow();
+ Menu_PrintText(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0] = 2;
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (++task->data[1] > 3)
+ task->data[1] = 0;
+ Menu_MoveCursor(1);
+ task->data[1] = Menu_GetCursorPos();
+ StorageSystemClearMessageWindow();
+ Menu_PrintText(gUnknown_083B600C[task->data[1]].desc, 2, 15);
+ task->data[0] = 2;
+ }
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ task_intro_29(task->data[2]);
+ DestroyTask(taskId);
+ }
+ break;
}
- break;
+}
+
+void ShowPokemonStorageSystem(void)
+{
+ u8 taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ ScriptContext2_Enable();
+}
+
+void FieldCB_ReturnToOverworld(void)
+{
+ u8 taskId = CreateTask(Task_PokemonStorageSystem, 80);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = gUnknown_02038474;
+ pal_fill_black();
+}
- case 6:
- // "Bye-bye, ".substr(0, -1) + {var} + "Bye-bye, !".substr(-1, 1)
+void StorageSystemCreatePrimaryMenu(u8 whichMenu)
+{
+ Menu_DrawStdWindowFrame(0, 0, 13, 9);
+ Menu_PrintItems(1, 1, 4, (const struct MenuAction *)gUnknown_083B600C);
+ InitMenu(0, 1, 1, 4, whichMenu, 12);
+}
+
+void sub_80961A8(void)
+{
+ gUnknown_02038474 = gPokemonStorageSystemPtr->unk_0005;
+ gFieldCallback = FieldCB_ReturnToOverworld;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+}
+
+void ResetPokemonStorageSystem(void)
+{
+ u16 boxId;
+ u16 boxMon;
+
+ gPokemonStorage.currentBox = 0;
+ for (boxId = 0; boxId < 14; boxId++)
+ {
+ for (boxMon = 0; boxMon < 30; boxMon++)
+ {
+ ZeroBoxMonData(gPokemonStorage.boxes[boxId] + boxMon);
+ }
+ }
+ for (boxId = 0; boxId < 14; boxId++)
{
- u8 *stringLength;
- u8 *text;
+ u8 *dest = StringCopy(gPokemonStorage.boxNames[boxId], gPCText_BOX);
+ ConvertIntToDecimalStringN(dest, boxId + 1, STR_CONV_MODE_LEFT_ALIGN, 2);
+ }
+ for (boxId = 0; boxId < 14; boxId++)
+ {
+ gPokemonStorage.wallpaper[boxId] = boxId & 0x03;
+ }
+}
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80A3904(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, sl\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5, r6, r7}\n\
+ add sp, sp, #0xffffffe4\n\
+ mov r0, #0x0\n\
+ mov r8, r0\n\
+ mov r7, r8\n\
+ mov r1, #0x14\n\
+ str r1, [sp, #0x18]\n\
+ mov r2, #0xff\n\
+ mov r9, r2\n\
+._162:\n\
+ mov r5, #0x0\n\
+ cmp r7, #0\n\
+ beq ._160 @cond_branch\n\
+ mov r0, #0xe\n\
+ mov r8, r0\n\
+ b ._158\n\
+._160:\n\
+ bl Random\n\
+ lsl r0, r0, #0x10\n\
+ lsr r0, r0, #0x10\n\
+ str r0, [sp, #0x14]\n\
+ mov r2, r8\n\
+ lsl r1, r2, #0x2\n\
+ add r1, r1, r8\n\
+ lsl r3, r1, #0x4\n\
+ sub r3, r3, r1\n\
+ lsl r3, r3, #0x5\n\
+ lsl r1, r5, #0x2\n\
+ add r1, r1, r5\n\
+ lsl r1, r1, #0x4\n\
+ ldr r2, ._163 @ gPokemonStorage\n\
+ add r1, r1, r2\n\
+ add r6, r3, r1\n\
+ ldr r2, ._163 + 4 @ gUnknown_Debug_083E05F0\n\
+ lsl r1, r7, #0x1\n\
+ add r1, r1, r2\n\
+ ldrh r4, [r1]\n\
+ add r5, r5, #0x1\n\
+ lsl r2, r5, #0x18\n\
+ lsr r2, r2, #0x18\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ str r1, [sp, #0x4]\n\
+ mov r1, #0x1\n\
+ mov sl, r1\n\
+ str r1, [sp, #0x8]\n\
+ str r0, [sp, #0xc]\n\
+ add r0, r6, #0\n\
+ add r1, r4, #0\n\
+ mov r3, #0x20\n\
+ bl CreateBoxMon\n\
+ cmp r4, #0\n\
+ beq ._157 @cond_branch\n\
+ cmp r4, #0xac\n\
+ bne ._156 @cond_branch\n\
+ add r0, sp, #0x10\n\
+ mov r2, sl\n\
+ strb r2, [r0]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x2d\n\
+ add r2, sp, #0x10\n\
+ bl SetBoxMonData\n\
+._156:\n\
+ bl Random\n\
+ mov r1, r9\n\
+ and r1, r1, r0\n\
+ str r1, [sp, #0x14]\n\
+ add r4, sp, #0x14\n\
+ add r0, r6, #0\n\
+ mov r1, #0x16\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+ bl Random\n\
+ mov r1, r9\n\
+ and r1, r1, r0\n\
+ str r1, [sp, #0x14]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x17\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+ bl Random\n\
+ mov r1, r9\n\
+ and r1, r1, r0\n\
+ str r1, [sp, #0x14]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x18\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+ bl Random\n\
+ mov r1, r9\n\
+ and r1, r1, r0\n\
+ str r1, [sp, #0x14]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x21\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+ bl Random\n\
+ mov r1, r9\n\
+ and r1, r1, r0\n\
+ str r1, [sp, #0x14]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x2f\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+ bl Random\n\
+ mov r1, r9\n\
+ and r1, r1, r0\n\
+ str r1, [sp, #0x14]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x30\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+ ldr r0, [sp, #0x18]\n\
+ cmp r0, #0\n\
+ beq ._157 @cond_branch\n\
+ sub r0, r0, #0x1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r0, r0, #0x10\n\
+ str r0, [sp, #0x18]\n\
+ mov r1, sl\n\
+ str r1, [sp, #0x14]\n\
+ add r0, r6, #0\n\
+ mov r1, #0x32\n\
+ add r2, r4, #0\n\
+ bl SetBoxMonData\n\
+._157:\n\
+ add r0, r7, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r7, r0, #0x10\n\
+ lsl r0, r5, #0x10\n\
+ lsr r5, r0, #0x10\n\
+ cmp r5, #0x1d\n\
+ bhi ._158 @cond_branch\n\
+ cmp r7, #0\n\
+ bne ._159 @cond_branch\n\
+ b ._160\n\
+._159:\n\
+ mov r2, #0xe\n\
+ mov r8, r2\n\
+._158:\n\
+ mov r0, r8\n\
+ add r0, r0, #0x1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r0, r0, #0x10\n\
+ mov r8, r0\n\
+ cmp r0, #0xd\n\
+ bhi ._161 @cond_branch\n\
+ b ._162\n\
+._161:\n\
+ add sp, sp, #0x1c\n\
+ pop {r3, r4, r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov sl, r5\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._164:\n\
+ .align 2, 0\n\
+._163:\n\
+ .word gPokemonStorage+0x4\n\
+ .word gUnknown_Debug_083E05F0");
+}
+#endif
+
+void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3)
+{
+ struct SpritePalette palette = {
+ gBoxSelectionPopupPalette, palTag
+ };
+ struct SpriteSheet sheets[] = {
+ {gBoxSelectionPopupCenterTiles, 0x800, tileTag},
+ {gBoxSelectionPopupSidesTiles, 0x180, tileTag + 1},
+ {}
+ };
+ LoadSpritePalette(&palette);
+ LoadSpriteSheets(sheets);
+ gUnknown_02038478 = a0;
+ a0->unk_0240 = tileTag;
+ a0->unk_0242 = palTag;
+ a0->unk_023e = a3;
+}
- text = gUnknown_083B6DF4[index].text;
- stringLength = &text[StringLength(text)] - 1;
+void sub_8096310(void)
+{
+ FreeSpritePaletteByTag(gUnknown_02038478->unk_0242);
+ FreeSpriteTilesByTag(gUnknown_02038478->unk_0240);
+ FreeSpriteTilesByTag(gUnknown_02038478->unk_0240 + 1);
+}
+
+void sub_809634C(u8 curBox)
+{
+ sub_80963D0(curBox);
+}
+
+void sub_809635C(void)
+{
+ sub_809658C();
+}
- ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
- ptr = StringCopy(ptr - 1, gUnk20026e4);
- ptr = StringCopy(ptr, stringLength);
+u8 sub_8096368(void)
+{
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return 201;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ return gUnknown_02038478->curBox;
}
- break;
+ if (gMain.newKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ sub_809662C();
+ }
+ else if (gMain.newKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ sub_80965F8();
+ }
+ return 200;
+}
+
+void sub_80963D0(u8 curBox)
+{
+ u16 i;
+ u8 spriteId;
+ struct SpriteTemplate template;
+ struct OamData oamData = {};
+ oamData.size = 3;
+ oamData.paletteNum = 1;
+ template = (struct SpriteTemplate){
+ 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ };
+
+ gUnknown_02038478->curBox = curBox;
+ template.tileTag = gUnknown_02038478->unk_0240;
+ template.paletteTag = gUnknown_02038478->unk_0242;
+
+ spriteId = CreateSprite(&template, 0xA0, 0x60, 0);
+ gUnknown_02038478->unk_0000 = gSprites + spriteId;
- case 0:
- default:
- ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
- break;
+ oamData.shape = ST_OAM_V_RECTANGLE;
+ oamData.size = 1;
+ template.tileTag = gUnknown_02038478->unk_0240 + 1;
+ template.anims = gSpriteAnimTable_83B604C;
+ for (i = 0; i < 4; i++)
+ {
+ u16 r5;
+ spriteId = CreateSprite(&template, 0x7c, 0x50, gUnknown_02038478->unk_023e);
+ gUnknown_02038478->unk_0004[i] = gSprites + spriteId;
+ r5 = 0;
+ if (i & 2)
+ {
+ gUnknown_02038478->unk_0004[i]->pos1.x = 0xc4;
+ r5 = 2;
+ }
+ if (i & 1)
+ {
+ gUnknown_02038478->unk_0004[i]->pos1.y = 0x70;
+ gUnknown_02038478->unk_0004[i]->oam.size = 0;
+ r5++;
+ }
+ StartSpriteAnim(gUnknown_02038478->unk_0004[i], r5);
+ }
+ for (i = 0; i < 2; i++)
+ {
+ gUnknown_02038478->unk_0020[i] = sub_809A9A0(72 * i + 0x7c, 0x58, i, 0, gUnknown_02038478->unk_023e);
+ if (gUnknown_02038478->unk_0020[i])
+ {
+ gUnknown_02038478->unk_0020[i]->data[0] = (i == 0 ? -1 : 1);
+ gUnknown_02038478->unk_0020[i]->callback = sub_8096784;
+ }
}
+ sub_809665C();
+}
- while (ptr < gUnk20026A6)
+void sub_809658C(void)
+{
+ u16 i;
+ if (gUnknown_02038478->unk_0000)
+ {
+ DestroySprite(gUnknown_02038478->unk_0000);
+ gUnknown_02038478->unk_0000 = NULL;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_02038478->unk_0004[i])
+ {
+ DestroySprite(gUnknown_02038478->unk_0004[i]);
+ gUnknown_02038478->unk_0004[i] = NULL;
+ }
+ }
+ for (i = 0; i < 2; i++)
{
- ptr[0] = CHAR_SPACE;
- ptr++;
+ if (gUnknown_02038478->unk_0020[i])
+ DestroySprite(gUnknown_02038478->unk_0020[i]);
}
+}
+
+void sub_80965F8(void)
+{
+ if (++gUnknown_02038478->curBox > 13)
+ gUnknown_02038478->curBox = 0;
+ sub_809665C();
+}
+
+void sub_809662C(void)
+{
+ gUnknown_02038478->curBox = (gUnknown_02038478->curBox == 0 ? 13 : gUnknown_02038478->curBox - 1);
+ sub_809665C();
+}
+
+void sub_809665C(void)
+{
+ u8 nPokemonInBox = CountPokemonInBoxN(gUnknown_02038478->curBox);
+ u8 *stringVar = gStringVar1;
+
+ stringVar[0] = EXT_CTRL_CODE_BEGIN;
+ stringVar[1] = 0x04; // EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW
+ stringVar[2] = 0x0F; // TEXT_COLOR_WHITE2
+ stringVar[3] = 0x01; // TEXT_COLOR_DARK_GREY
+ stringVar[4] = 0x0E; // TEXT_COLOR_LIGHT_BLUE
+ stringVar += 5;
+
+ stringVar = StringCopy(stringVar, gPokemonStorage.boxNames[gUnknown_02038478->curBox]);
- ptr[0] = EOS;
- MenuPrint(gUnk2002694, 11, 17);
+ stringVar[0] = CHAR_NEWLINE;
+ stringVar[1] = EXT_CTRL_CODE_BEGIN;
+ stringVar[2] = 0x11; // EXT_CTRL_CODE_CLEAR
+ if (nPokemonInBox < 10)
+ stringVar[3] = 0x28;
+ else
+ stringVar[3] = 0x22;
+ stringVar += 4;
+
+ stringVar = ConvertIntToDecimalString(stringVar, nPokemonInBox);
+
+ stringVar[0] = CHAR_SLASH;
+ stringVar[1] = CHAR_0 + 3;
+ stringVar[2] = CHAR_0 + 0;
+ stringVar[3] = EOS;
+ sub_80966F4(gStringVar1, 0, 1);
+}
+
+void sub_80966F4(const u8 *sourceString, u16 x, u16 y)
+{
+ u16 *vdest = (u16 *)(BG_CHAR_ADDR(4) + (GetSpriteTileStartByTag(gUnknown_02038478->unk_0240) * 32) + y * 256 + x * 32);
+ u8 *tileBuff = gUnknown_083B6DB8;
+ DmaFill16(3, 0x1111, tileBuff, 0x400);
+ Text_InitWindow8004E3C(&gWindowTemplate_81E6D38, tileBuff, sourceString);
+ DmaCopy16(3, tileBuff, vdest, 0x400);
+}
+
+void sub_8096784(struct Sprite *sprite)
+{
+ if (++sprite->data[1] > 3)
+ {
+ sprite->data[1] = 0;
+ sprite->pos2.x += sprite->data[0];
+ if (++sprite->data[2] > 5)
+ {
+ sprite->data[2] = 0;
+ sprite->pos2.x = 0;
+ }
+ }
}
diff --git a/src/pokemon/pokemon_storage_system_2.c b/src/pokemon/pokemon_storage_system_2.c
new file mode 100644
index 000000000..2f12b6bfa
--- /dev/null
+++ b/src/pokemon/pokemon_storage_system_2.c
@@ -0,0 +1,3058 @@
+
+// Includes
+#include "global.h"
+#include "decompress.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "data2.h"
+#include "sound.h"
+#include "ewram.h"
+#include "task.h"
+#include "main.h"
+#include "palette.h"
+#include "menu.h"
+#include "graphics.h"
+#include "strings.h"
+#include "string_util.h"
+#include "pokemon_summary_screen.h"
+#include "mail_data.h"
+#include "naming_screen.h"
+#include "pokemon_storage_system.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+EWRAM_DATA u8 gUnknown_0203847C = 0;
+EWRAM_DATA u8 gUnknown_0203847D = 0;
+EWRAM_DATA u8 gUnknown_0203847E = 0;
+EWRAM_DATA u8 gUnknown_0203847F = 0;
+
+// Static ROM declarations
+
+void sub_8096884(void);
+void sub_8096AFC(void);
+void sub_8096B38(void);
+void SetPSSCallback(void (*func)(void));
+void sub_8096BF0(void);
+void sub_8096C68(void);
+void sub_8096C84(void);
+void sub_8096FC8(void);
+void sub_8097004(void);
+void sub_8097078(void);
+void sub_80972A8(void);
+void sub_80972FC(void);
+void c3_0808DC50(void);
+void sub_8097390(void);
+void sub_809746C(void);
+void sub_8097594(void);
+void sub_8097788(void);
+void sub_80977E4(void);
+void sub_8097858(void);
+void sub_809789C(void);
+void sub_8097974(void);
+void sub_8097A64(void);
+void sub_8097B44(void);
+void sub_8097BA0(void);
+void sub_8097CC0(void);
+void sub_8097DE0(void);
+void sub_8097E44(void);
+void sub_8097E70(void);
+void sub_8097F58(void);
+void sub_8097FB8(void);
+void sub_809801C(void);
+void BoxSetMosaic(void);
+void sub_8098090(struct Sprite *sprite);
+void sub_80980D4(void);
+void sub_80981F0(u16 species, u32 pid);
+void sub_80982B4(void);
+void sub_8098350(void);
+void sub_8098400(void);
+void add_to_c3_somehow(void);
+void sub_8098780(void);
+void sub_8098690(bool8 flag);
+bool8 sub_80985CC(void);
+void sub_80986E8(void);
+void sub_8098710(void);
+void sub_8098734(void);
+void sub_80987DC(void);
+void sub_809880C(void);
+bool8 sub_8098830(void);
+void PrintStorageActionText(u8 index);
+void sub_8098A38(s8);
+void sub_8098A5C(void);
+void sub_8098A80(void);
+void sub_8098AA8(u8 a0);
+
+// .rodata
+
+const u16 gPokemonStorageScrollingBGPalette[] = INCBIN_U16("graphics/pokemon_storage/scrolling_bg.gbapal");
+
+const u16 gPokemonStorageScrollingBGTile[] = INCBIN_U16("graphics/pokemon_storage/scrolling_bg.4bpp");
+
+const u8 gPokemonStorageScrollingBGTilemap[] = INCBIN_U8("graphics/pokemon_storage/scrolling_bg_map.bin.lz");
+
+const u16 sUnknownTilemap[] = {
+ 0x1281,
+ 0x1282,
+ 0x1283,
+ 0x1284,
+ 0x1285,
+ 0x1286,
+ 0x1287,
+ 0x1288,
+ 0x128C,
+ 0x128D,
+ 0x128E,
+ 0x128F,
+ 0x1290,
+ 0x1291,
+ 0x1292,
+ 0x1293,
+ 0x0281,
+ 0x0282,
+ 0x0283,
+ 0x0284,
+ 0x0285,
+ 0x0286,
+ 0x0287,
+ 0x0288,
+ 0x028C,
+ 0x028D,
+ 0x028E,
+ 0x028F,
+ 0x0290,
+ 0x0291,
+ 0x0292,
+ 0x0293,
+ 0x12AD,
+ 0x12AE,
+ 0x12A8,
+ 0x12A8
+};
+
+const u16 WaveformPalette[] = INCBIN_U16("graphics/pokemon_storage/waveform.gbapal");
+
+const u8 WaveformTiles[] = INCBIN_U8("graphics/pokemon_storage/waveform.4bpp");
+
+const u16 gUnknown_083B6D74[] = INCBIN_U16("graphics/pokemon_storage/83B6D74.gbapal");
+
+const u16 gUnknown_083B6D94[] = INCBIN_U16("graphics/pokemon_storage/83B6D94.gbapal");
+
+struct PokemonStorageSystemData *const gPokemonStorageSystemPtr = &ePokemonStorageSystem;
+
+u8 *const gUnknown_083B6DB8 = gTileBuffer;
+
+const struct SpritePalette gWaveformSpritePalette = {
+ WaveformPalette, 0xdacd
+};
+
+// .text
+
+void task_intro_29(u8 whichMenu)
+{
+ gUnknown_0203847D = whichMenu;
+ gPokemonStorageSystemPtr->unk_0005 = whichMenu;
+ SetMainCallback2(sub_8096884);
+}
+
+void sub_80967DC(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+}
+
+void sub_8096804(void)
+{
+ ResetPaletteFade();
+ ResetSpriteData();
+ FreeSpriteTileRanges();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ gReservedSpriteTileCount = 0x280;
+ sub_809CFDC(&gPokemonStorageSystemPtr->unk_0020, gPokemonStorageSystemPtr->unk_0028, 8);
+ gKeyRepeatStartDelay = 20;
+}
+
+void sub_8096848(void)
+{
+ sub_809B0D4();
+ gUnknown_0203847C = (gPokemonStorageSystemPtr->unk_0005 == 1 ? 1 : 0);
+ gUnknown_0203847E = 0;
+}
+
+void sub_8096874(void)
+{
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+}
+
+#if DEBUG
+__attribute__((naked))
+void sub_8096884(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r0, ._223 @ gMain\n\
+ ldr r1, ._223 + 4 @ 0x43c\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x9\n\
+ bls ._221 @cond_branch\n\
+ b ._222\n\
+._221:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._223 + 8 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._224:\n\
+ .align 2, 0\n\
+._223:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+ .word ._225\n\
+._225:\n\
+ .word ._226\n\
+ .word ._227\n\
+ .word ._228\n\
+ .word ._229\n\
+ .word ._230\n\
+ .word ._231\n\
+ .word ._232\n\
+ .word ._233\n\
+ .word ._234\n\
+ .word ._235\n\
+._226:\n\
+ mov r0, #0x0\n\
+ bl SetVBlankCallback\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x13\n\
+ mov r4, #0x0\n\
+ strh r4, [r0]\n\
+ bl sub_8096804\n\
+ ldr r0, ._237 @ unk_2038790\n\
+ strb r4, [r0]\n\
+ b ._250\n\
+._238:\n\
+ .align 2, 0\n\
+._237:\n\
+ .word unk_2038790\n\
+._227:\n\
+ ldr r0, ._240 @ gWindowTemplate_81E6D00\n\
+ bl Text_LoadWindowTemplate\n\
+ b ._250\n\
+._241:\n\
+ .align 2, 0\n\
+._240:\n\
+ .word gWindowTemplate_81E6D00\n\
+._228:\n\
+ ldr r0, ._243 @ gWindowTemplate_81E6D00\n\
+ bl InitMenuWindow\n\
+ bl Menu_EraseScreen\n\
+ b ._250\n\
+._244:\n\
+ .align 2, 0\n\
+._243:\n\
+ .word gWindowTemplate_81E6D00\n\
+._229:\n\
+ bl sub_80967DC\n\
+ bl sub_8096848\n\
+ b ._250\n\
+._230:\n\
+ bl ResetPSSMonIconSprites\n\
+ bl sub_809AA24\n\
+ b ._250\n\
+._231:\n\
+ bl sub_8097DE0\n\
+ b ._250\n\
+._232:\n\
+ bl sub_8097E70\n\
+ b ._250\n\
+._233:\n\
+ bl sub_8098400\n\
+ b ._250\n\
+._234:\n\
+ ldr r0, ._251 @ gPokemonStorage\n\
+ ldrb r0, [r0]\n\
+ bl sub_8099BF8\n\
+ ldr r2, ._251 + 4 @ 0x2000000\n\
+ ldr r1, ._251 + 8 @ 0x12bc\n\
+ add r0, r2, r1\n\
+ mov r1, #0xa\n\
+ strh r1, [r0]\n\
+ ldr r1, ._251 + 12 @ 0x12be\n\
+ add r2, r2, r1\n\
+ ldr r1, ._251 + 16 @ 0xdacb\n\
+ strh r1, [r2]\n\
+ bl sub_80F727C\n\
+ bl sub_80F7404\n\
+ b ._250\n\
+._252:\n\
+ .align 2, 0\n\
+._251:\n\
+ .word gPokemonStorage\n\
+ .word 0x2000000\n\
+ .word 0x12bc\n\
+ .word 0x12be\n\
+ .word 0xdacb\n\
+._235:\n\
+ bl sub_8096874\n\
+ ldr r0, ._253 @ sub_8096BF0\n\
+ bl SetPSSCallback\n\
+ ldr r0, ._253 + 4 @ sub_8096B38\n\
+ bl SetMainCallback2\n\
+ ldr r0, ._253 + 8 @ sub_8096AFC\n\
+ bl SetVBlankCallback\n\
+._250:\n\
+ ldr r1, ._253 + 12 @ gMain\n\
+ ldr r0, ._253 + 16 @ 0x43c\n\
+ add r1, r1, r0\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+._222:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._254:\n\
+ .align 2, 0\n\
+._253:\n\
+ .word sub_8096BF0+1\n\
+ .word sub_8096B38+1\n\
+ .word sub_8096AFC+1\n\
+ .word gMain\n\
+ .word 0x43c");
+}
+#else
+void sub_8096884(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ sub_8096804();
+ gMain.state++;
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6D00);
+ gMain.state++;
+ break;
+ case 2:
+ InitMenuWindow(&gWindowTemplate_81E6D00);
+ Menu_EraseScreen();
+ gMain.state++;
+ break;
+ case 3:
+ sub_80967DC();
+ sub_8096848();
+ gMain.state++;
+ break;
+ case 4:
+ ResetPSSMonIconSprites();
+ sub_809AA24();
+ gMain.state++;
+ break;
+ case 5:
+ sub_8097DE0();
+ gMain.state++;
+ break;
+ case 6:
+ sub_8097E70();
+ gMain.state++;
+ break;
+ case 7:
+ sub_8098400();
+ gMain.state++;
+ break;
+ case 8:
+ sub_8099BF8(gPokemonStorage.currentBox);
+ gPokemonStorageSystemPtr->unk_12bc.baseTileTag = 0x000a;
+ gPokemonStorageSystemPtr->unk_12bc.basePaletteTag = 0xdacb;
+ sub_80F727C(&gPokemonStorageSystemPtr->unk_12bc);
+ sub_80F7404();
+ gMain.state++;
+ break;
+ case 9:
+ sub_8096874();
+ SetPSSCallback(sub_8096BF0);
+ SetMainCallback2(sub_8096B38);
+ SetVBlankCallback(sub_8096AFC);
+ gMain.state++;
+ break;
+ }
+}
+#endif
+
+void sub_80969A0(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0x0000;
+ gPokemonStorageSystemPtr->unk_0005 = gUnknown_0203847D;
+ sub_8096804();
+ if (gUnknown_0203847F == 1)
+ sub_809BBC0();
+ if (gUnknown_0203847F == 0)
+ sub_809BD14();
+ gMain.state++;
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6D00);
+ gMain.state++;
+ break;
+ case 2:
+ InitMenuWindow(&gWindowTemplate_81E6D00);
+ Menu_EraseScreen();
+ gMain.state++;
+ break;
+ case 3:
+ sub_80967DC();
+ gMain.state++;
+ break;
+ case 4:
+ ResetPSSMonIconSprites();
+ sub_809AA98();
+ gMain.state++;
+ break;
+ case 5:
+ sub_8097DE0();
+ gMain.state++;
+ break;
+ case 6:
+ sub_8097E70();
+ gMain.state++;
+ break;
+ case 7:
+ sub_8098400();
+ gMain.state++;
+ break;
+ case 8:
+ sub_8099BF8(gPokemonStorage.currentBox);
+ gPokemonStorageSystemPtr->unk_12bc.baseTileTag = 0x000a;
+ gPokemonStorageSystemPtr->unk_12bc.basePaletteTag = 0xdacb;
+ sub_80F727C(&gPokemonStorageSystemPtr->unk_12bc);
+ sub_80F7404();
+ gMain.state++;
+ break;
+ case 9:
+ BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
+ SetVBlankCallback(sub_8096AFC);
+ gMain.state++;
+ break;
+ case 10:
+ sub_8096874();
+ SetPSSCallback(sub_8096C68);
+ SetMainCallback2(sub_8096B38);
+ gMain.state++;
+ break;
+ }
+}
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_80A4300()
+{
+ asm("\
+ push {lr}\n\
+ ldr r1, ._296 @ gUnknown_0203847D\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ ldr r1, ._296 + 4 @ 0x2000000\n\
+ mov r0, #0x0\n\
+ strb r0, [r1, #0x5]\n\
+ bl sub_8096884\n\
+ ldr r0, ._296 + 8 @ gMain\n\
+ ldr r1, [r0, #0x4]\n\
+ ldr r0, ._296 + 12 @ sub_8096B38\n\
+ cmp r1, r0\n\
+ bne ._295 @cond_branch\n\
+ ldr r1, ._296 + 16 @ unk_2038790\n\
+ mov r0, #0x1\n\
+ strb r0, [r1]\n\
+._295:\n\
+ pop {r0}\n\
+ bx r0\n\
+._297:\n\
+ .align 2, 0\n\
+._296:\n\
+ .word gUnknown_0203847D\n\
+ .word 0x2000000\n\
+ .word gMain\n\
+ .word sub_8096B38+1\n\
+ .word unk_2038790");
+}
+
+__attribute__((naked))
+void debug_sub_80A433C()
+{
+ asm("\
+ push {lr}\n\
+ ldr r2, ._298 @ unk_2038794\n\
+ str r1, [r2]\n\
+ ldr r1, ._298 + 4 @ unk_2038798\n\
+ str r0, [r1]\n\
+ ldr r0, ._298 + 8 @ debug_sub_80A4300\n\
+ bl SetMainCallback2\n\
+ pop {r0}\n\
+ bx r0\n\
+._299:\n\
+ .align 2, 0\n\
+._298:\n\
+ .word unk_2038794\n\
+ .word unk_2038798\n\
+ .word debug_sub_80A4300+1");
+}
+
+__attribute__((naked))
+void debug_sub_80A435C()
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r5, ._303 @ 0x2000000\n\
+ ldrb r4, [r5, #0x4]\n\
+ cmp r4, #0\n\
+ beq ._300 @cond_branch\n\
+ cmp r4, #0x1\n\
+ beq ._301 @cond_branch\n\
+ b ._308\n\
+._304:\n\
+ .align 2, 0\n\
+._303:\n\
+ .word 0x2000000\n\
+._300:\n\
+ ldr r0, ._306 @ unk_2038798\n\
+ ldr r0, [r0]\n\
+ bl unref_sub_809CB94\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ str r4, [sp]\n\
+ mov r1, #0x0\n\
+ mov r2, #0x0\n\
+ mov r3, #0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldrb r0, [r5, #0x4]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r5, #0x4]\n\
+ b ._308\n\
+._307:\n\
+ .align 2, 0\n\
+._306:\n\
+ .word unk_2038798\n\
+._301:\n\
+ bl UpdatePaletteFade\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._308 @cond_branch\n\
+ ldr r0, ._309 @ unk_2038794\n\
+ ldr r0, [r0]\n\
+ bl _call_via_r0\n\
+._308:\n\
+ add sp, sp, #0x4\n\
+ pop {r4, r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+._310:\n\
+ .align 2, 0\n\
+._309:\n\
+ .word unk_2038794");
+}
+#endif
+
+void sub_8096AFC(void)
+{
+ REG_BG2HOFS = gPokemonStorageSystemPtr->unk_08b4;
+ REG_BG3HOFS = gPokemonStorageSystemPtr->unk_000a;
+ REG_BG3VOFS = gPokemonStorageSystemPtr->unk_0008;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ sub_809CFF0();
+ TransferPlttBuffer();
+}
+
+void sub_8096B38(void)
+{
+ gPokemonStorageSystemPtr->unk_0000();
+ sub_8097E44();
+ sub_8098734();
+ AnimateSprites();
+ BuildOamBuffer();
+}
+
+void sub_8096B5C(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0006)
+ {
+ case 0:
+ ShowPokemonSummaryScreen(gPokemonStorageSystemPtr->unk_2690.pokemon, gPokemonStorageSystemPtr->unk_268d, gPokemonStorageSystemPtr->unk_268c, sub_80969A0, gPokemonStorageSystemPtr->unk_268e);
+ break;
+ case 1:
+ DoNamingScreen(1, gPokemonStorage.boxNames[gPokemonStorage.currentBox], 0, 0, 0, sub_80969A0);
+ break;
+ }
+}
+
+void SetPSSCallback(void (*func)(void))
+{
+ gPokemonStorageSystemPtr->unk_0000 = func;
+ gPokemonStorageSystemPtr->unk_0004 = 0;
+}
+
+void sub_8096BF0(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ BlendPalettes(0xffffffff, 16, 0);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ PlaySE(SE_PC_LOGON);
+ gPokemonStorageSystemPtr->unk_000c.tileTag = 14;
+ gPokemonStorageSystemPtr->unk_000c.paletteTag = 0xdad0;
+ gPokemonStorageSystemPtr->unk_000c.unk04 = 0;
+ gPokemonStorageSystemPtr->unk_000c.unk06 = 0;
+ sub_80C5CD4(&gPokemonStorageSystemPtr->unk_000c);
+ BlendPalettes(0xffffffff, 0, 0);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 2:
+ if (sub_80C5DCC())
+ SetPSSCallback(sub_8096C84);
+ break;
+ }
+}
+
+void sub_8096C68(void)
+{
+ if (!UpdatePaletteFade())
+ SetPSSCallback(sub_8096C84);
+}
+
+#if DEBUG
+__attribute__((naked))
+void sub_8096C84(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r0, ._347 @ 0x2000000\n\
+ ldrb r0, [r0, #0x4]\n\
+ cmp r0, #0x6\n\
+ bls ._345 @cond_branch\n\
+ b ._466\n\
+._345:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._347 + 4 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._348:\n\
+ .align 2, 0\n\
+._347:\n\
+ .word 0x2000000\n\
+ .word ._349\n\
+._349:\n\
+ .word ._350\n\
+ .word ._351\n\
+ .word ._352\n\
+ .word ._353\n\
+ .word ._354\n\
+ .word ._355\n\
+ .word ._356\n\
+._350:\n\
+ bl sub_809CA40\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ sub r0, r0, #0x1\n\
+ cmp r0, #0xf\n\
+ bls ._357 @cond_branch\n\
+ b ._466\n\
+._357:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._360 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._361:\n\
+ .align 2, 0\n\
+._360:\n\
+ .word ._359\n\
+._359:\n\
+ .word ._362\n\
+ .word ._466\n\
+ .word ._466\n\
+ .word ._365\n\
+ .word ._366\n\
+ .word ._367\n\
+ .word ._368\n\
+ .word ._369\n\
+ .word ._370\n\
+ .word ._371\n\
+ .word ._372\n\
+ .word ._373\n\
+ .word ._374\n\
+ .word ._375\n\
+ .word ._376\n\
+ .word ._377\n\
+._362:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r1, ._379 @ 0x2000000\n\
+ mov r0, #0x1\n\
+ strb r0, [r1, #0x4]\n\
+ b ._466\n\
+._380:\n\
+ .align 2, 0\n\
+._379:\n\
+ .word 0x2000000\n\
+._366:\n\
+ ldr r4, ._383 @ 0x2000000\n\
+ ldrb r0, [r4, #0x5]\n\
+ cmp r0, #0x2\n\
+ beq ._381 @cond_branch\n\
+ mov r0, #0x10\n\
+ bl PrintStorageActionText\n\
+ mov r0, #0x3\n\
+ strb r0, [r4, #0x4]\n\
+ b ._466\n\
+._384:\n\
+ .align 2, 0\n\
+._383:\n\
+ .word 0x2000000\n\
+._381:\n\
+ bl sub_809B0D4\n\
+ ldr r0, ._386 @ sub_8096FC8\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._387:\n\
+ .align 2, 0\n\
+._386:\n\
+ .word sub_8096FC8+1\n\
+._367:\n\
+ ldr r4, ._394 @ 0x2000000\n\
+ ldrb r0, [r4, #0x5]\n\
+ cmp r0, #0x2\n\
+ beq ._388 @cond_branch\n\
+ b ._466\n\
+._388:\n\
+ bl sub_809BF20\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._391 @cond_branch\n\
+ ldr r1, ._394 + 4 @ 0x11f2\n\
+ add r0, r4, r1\n\
+ ldrh r0, [r0]\n\
+ bl ItemIsMail\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._391 @cond_branch\n\
+ b ._392\n\
+._391:\n\
+ ldr r0, ._394 + 8 @ sub_8097004\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._395:\n\
+ .align 2, 0\n\
+._394:\n\
+ .word 0x2000000\n\
+ .word 0x11f2\n\
+ .word sub_8097004+1\n\
+._365:\n\
+ ldr r0, ._399 @ unk_2038790\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._396 @cond_branch\n\
+ b ._466\n\
+._396:\n\
+ ldr r0, ._399 + 4 @ sub_8097BA0\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._400:\n\
+ .align 2, 0\n\
+._399:\n\
+ .word unk_2038790\n\
+ .word sub_8097BA0+1\n\
+._377:\n\
+ ldr r0, ._404 @ unk_2038790\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._401 @cond_branch\n\
+ b ._466\n\
+._401:\n\
+ ldr r0, ._404 + 4 @ sub_8097CC0\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._405:\n\
+ .align 2, 0\n\
+._404:\n\
+ .word unk_2038790\n\
+ .word sub_8097CC0+1\n\
+._368:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._407 @ sub_809789C\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._408:\n\
+ .align 2, 0\n\
+._407:\n\
+ .word sub_809789C+1\n\
+._369:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._410 @ sub_8097078\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._411:\n\
+ .align 2, 0\n\
+._410:\n\
+ .word sub_8097078+1\n\
+._370:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r4, ._414 @ 0x2000000\n\
+ ldr r0, ._414 + 4 @ gPokemonStorage\n\
+ ldrb r0, [r0]\n\
+ add r0, r0, #0x1\n\
+ ldr r2, ._414 + 8 @ 0x8b2\n\
+ add r1, r4, r2\n\
+ strh r0, [r1]\n\
+ cmp r0, #0xd\n\
+ ble ._416 @cond_branch\n\
+ mov r0, #0x0\n\
+ b ._413\n\
+._415:\n\
+ .align 2, 0\n\
+._414:\n\
+ .word 0x2000000\n\
+ .word gPokemonStorage\n\
+ .word 0x8b2\n\
+._371:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r4, ._418 @ 0x2000000\n\
+ ldr r0, ._418 + 4 @ gPokemonStorage\n\
+ ldrb r0, [r0]\n\
+ sub r0, r0, #0x1\n\
+ ldr r2, ._418 + 8 @ 0x8b2\n\
+ add r1, r4, r2\n\
+ strh r0, [r1]\n\
+ cmp r0, #0\n\
+ bge ._416 @cond_branch\n\
+ mov r0, #0xd\n\
+._413:\n\
+ strh r0, [r1]\n\
+._416:\n\
+ ldrb r0, [r1]\n\
+ bl sub_8099C70\n\
+ mov r0, #0x2\n\
+ strb r0, [r4, #0x4]\n\
+ b ._466\n\
+._419:\n\
+ .align 2, 0\n\
+._418:\n\
+ .word 0x2000000\n\
+ .word gPokemonStorage\n\
+ .word 0x8b2\n\
+._372:\n\
+ bl sub_809BE80\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._428 @cond_branch\n\
+ ldr r4, ._423 @ 0x2000000\n\
+ ldr r1, ._423 + 4 @ 0x11f2\n\
+ add r0, r4, r1\n\
+ ldrh r0, [r0]\n\
+ bl ItemIsMail\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._421 @cond_branch\n\
+._392:\n\
+ mov r0, #0x5\n\
+ strb r0, [r4, #0x4]\n\
+ b ._466\n\
+._424:\n\
+ .align 2, 0\n\
+._423:\n\
+ .word 0x2000000\n\
+ .word 0x11f2\n\
+._421:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._426 @ sub_809746C\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._427:\n\
+ .align 2, 0\n\
+._426:\n\
+ .word sub_809746C+1\n\
+._374:\n\
+ bl sub_809BE80\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._428 @cond_branch\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._430 @ sub_80972A8\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._431:\n\
+ .align 2, 0\n\
+._430:\n\
+ .word sub_80972A8+1\n\
+._375:\n\
+ bl sub_809BEBC\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._432 @cond_branch\n\
+._428:\n\
+ ldr r1, ._434 @ 0x2000000\n\
+ mov r0, #0x4\n\
+ strb r0, [r1, #0x4]\n\
+ b ._466\n\
+._435:\n\
+ .align 2, 0\n\
+._434:\n\
+ .word 0x2000000\n\
+._432:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._437 @ c3_0808DC50\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._438:\n\
+ .align 2, 0\n\
+._437:\n\
+ .word c3_0808DC50+1\n\
+._373:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._440 @ sub_8097390\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._441:\n\
+ .align 2, 0\n\
+._440:\n\
+ .word sub_8097390+1\n\
+._376:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._443 @ sub_80972FC\n\
+ bl SetPSSCallback\n\
+ b ._466\n\
+._444:\n\
+ .align 2, 0\n\
+._443:\n\
+ .word sub_80972FC+1\n\
+._351:\n\
+ bl sub_809AC00\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._466 @cond_branch\n\
+ bl sub_809BF48\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._446 @cond_branch\n\
+ bl sub_80986E8\n\
+ b ._447\n\
+._446:\n\
+ bl sub_8098710\n\
+._447:\n\
+ ldr r4, ._450 @ 0x2000000\n\
+ ldr r2, ._450 + 4 @ 0x11f6\n\
+ add r0, r4, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._448 @cond_branch\n\
+ bl BoxSetMosaic\n\
+._448:\n\
+ mov r0, #0x0\n\
+ strb r0, [r4, #0x4]\n\
+ b ._466\n\
+._451:\n\
+ .align 2, 0\n\
+._450:\n\
+ .word 0x2000000\n\
+ .word 0x11f6\n\
+._352:\n\
+ bl sub_8099D34\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._466 @cond_branch\n\
+ ldr r1, ._456 @ gPokemonStorage\n\
+ ldr r0, ._456 + 4 @ 0x2000000\n\
+ ldr r2, ._456 + 8 @ 0x8b2\n\
+ add r0, r0, r2\n\
+ ldrh r0, [r0]\n\
+ strb r0, [r1]\n\
+ ldr r0, ._456 + 12 @ gUnknown_0203847C\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._455 @cond_branch\n\
+ bl sub_809BF20\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._455 @cond_branch\n\
+ bl sub_809B440\n\
+ bl BoxSetMosaic\n\
+ b ._455\n\
+._457:\n\
+ .align 2, 0\n\
+._456:\n\
+ .word gPokemonStorage\n\
+ .word 0x2000000\n\
+ .word 0x8b2\n\
+ .word gUnknown_0203847C\n\
+._353:\n\
+ ldr r0, ._460 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0xf3\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._466 @cond_branch\n\
+ bl sub_8098A5C\n\
+._455:\n\
+ ldr r1, ._460 + 4 @ 0x2000000\n\
+ mov r0, #0x0\n\
+ strb r0, [r1, #0x4]\n\
+ b ._466\n\
+._461:\n\
+ .align 2, 0\n\
+._460:\n\
+ .word gMain\n\
+ .word 0x2000000\n\
+._354:\n\
+ mov r0, #0x20\n\
+ bl PlaySE\n\
+ mov r0, #0xd\n\
+ b ._462\n\
+._355:\n\
+ mov r0, #0x20\n\
+ bl PlaySE\n\
+ mov r0, #0x16\n\
+._462:\n\
+ bl PrintStorageActionText\n\
+ ldr r1, ._464 @ 0x2000000\n\
+ mov r0, #0x6\n\
+ strb r0, [r1, #0x4]\n\
+ b ._466\n\
+._465:\n\
+ .align 2, 0\n\
+._464:\n\
+ .word 0x2000000\n\
+._356:\n\
+ ldr r0, ._467 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0xf3\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._466 @cond_branch\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._467 + 4 @ sub_8096C84\n\
+ bl SetPSSCallback\n\
+._466:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._468:\n\
+ .align 2, 0\n\
+._467:\n\
+ .word gMain\n\
+ .word sub_8096C84+1");
+}
+#else
+void sub_8096C84(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ switch (sub_809CA40())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ gPokemonStorageSystemPtr->unk_0004 = 1;
+ break;
+ case 5:
+ if (gPokemonStorageSystemPtr->unk_0005 != 2)
+ {
+ PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE);
+ gPokemonStorageSystemPtr->unk_0004 = 3;
+ }
+ else
+ {
+ sub_809B0D4();
+ SetPSSCallback(sub_8096FC8);
+ }
+ break;
+ case 6:
+ if (gPokemonStorageSystemPtr->unk_0005 == 2)
+ {
+ if (sub_809BF20() && ItemIsMail(gPokemonStorageSystemPtr->unk_11f2))
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 5;
+ }
+ else
+ {
+ SetPSSCallback(sub_8097004);
+ }
+ }
+ break;
+ case 4:
+ SetPSSCallback(sub_8097BA0);
+ break;
+ case 16:
+ SetPSSCallback(sub_8097CC0);
+ break;
+ case 7:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_809789C);
+ break;
+ case 8:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097078);
+ break;
+ case 9:
+ PlaySE(SE_SELECT);
+ gPokemonStorageSystemPtr->unk_08b2 = gPokemonStorage.currentBox + 1;
+ if (gPokemonStorageSystemPtr->unk_08b2 > 13)
+ gPokemonStorageSystemPtr->unk_08b2 = 0;
+ sub_8099C70(gPokemonStorageSystemPtr->unk_08b2);
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ break;
+ case 10:
+ PlaySE(SE_SELECT);
+ gPokemonStorageSystemPtr->unk_08b2 = gPokemonStorage.currentBox - 1;
+ if (gPokemonStorageSystemPtr->unk_08b2 < 0)
+ gPokemonStorageSystemPtr->unk_08b2 = 13;
+ sub_8099C70(gPokemonStorageSystemPtr->unk_08b2);
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ break;
+ case 11:
+ if (!sub_809BE80())
+ {
+ if (ItemIsMail(gPokemonStorageSystemPtr->unk_11f2))
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 5;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_809746C);
+ }
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 4;
+ }
+ break;
+ case 13:
+ if (sub_809BE80())
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 4;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_80972A8);
+ }
+ break;
+ case 14:
+ if (!sub_809BEBC())
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 4;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(c3_0808DC50);
+ }
+ break;
+ case 12:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097390);
+ break;
+ case 15:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_80972FC);
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_809AC00())
+ {
+ if (sub_809BF48())
+ sub_80986E8();
+ else
+ sub_8098710();
+ if (gPokemonStorageSystemPtr->unk_11f6)
+ BoxSetMosaic();
+ gPokemonStorageSystemPtr->unk_0004 = 0;
+ }
+ break;
+ case 2:
+ if (!sub_8099D34())
+ {
+ gPokemonStorage.currentBox = gPokemonStorageSystemPtr->unk_08b2;
+ if (!gUnknown_0203847C && !sub_809BF20())
+ {
+ sub_809B440();
+ BoxSetMosaic();
+ }
+ gPokemonStorageSystemPtr->unk_0004 = 0;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ gPokemonStorageSystemPtr->unk_0004 = 0;
+ }
+ break;
+ case 4:
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_LAST_POKE);
+ gPokemonStorageSystemPtr->unk_0004 = 6;
+ break;
+ case 5:
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL);
+ gPokemonStorageSystemPtr->unk_0004 = 6;
+ break;
+ case 6:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+#endif
+
+void sub_8096FC8(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_809880C();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!sub_8098830())
+ SetPSSCallback(sub_8096C84);
+ break;
+ }
+}
+
+void sub_8097004(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PlaySE(SE_SELECT);
+ add_to_c3_somehow();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!sub_80985CC())
+ {
+ sub_809B0C0(sub_809B0F4());
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 2:
+ if (!sub_809AC00())
+ {
+ if (gPokemonStorageSystemPtr->unk_11f6)
+ BoxSetMosaic();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+#if DEBUG
+__attribute__((naked))
+void sub_8097078(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ ldr r0, ._495 @ 0x2000000\n\
+ ldrb r0, [r0, #0x4]\n\
+ cmp r0, #0x5\n\
+ bls ._493 @cond_branch\n\
+ b ._597\n\
+._493:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._495 + 4 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._496:\n\
+ .align 2, 0\n\
+._495:\n\
+ .word 0x2000000\n\
+ .word ._497\n\
+._497:\n\
+ .word ._498\n\
+ .word ._499\n\
+ .word ._500\n\
+ .word ._501\n\
+ .word ._502\n\
+ .word ._503\n\
+._498:\n\
+ mov r0, #0x4\n\
+ bl PrintStorageActionText\n\
+ bl sub_809CE84\n\
+ ldr r1, ._505 @ 0x2000000\n\
+ mov r0, #0x1\n\
+ strb r0, [r1, #0x4]\n\
+ b ._597\n\
+._506:\n\
+ .align 2, 0\n\
+._505:\n\
+ .word 0x2000000\n\
+._499:\n\
+ bl sub_809CF30\n\
+ add r0, r0, #0x1\n\
+ lsl r0, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0x21\n\
+ bls ._507 @cond_branch\n\
+ b ._597\n\
+._507:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._510 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._511:\n\
+ .align 2, 0\n\
+._510:\n\
+ .word ._509\n\
+._509:\n\
+ .word ._513\n\
+ .word ._513\n\
+ .word ._514\n\
+ .word ._515\n\
+ .word ._516\n\
+ .word ._517\n\
+ .word ._518\n\
+ .word ._519\n\
+ .word ._520\n\
+ .word ._521\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._597\n\
+ .word ._545\n\
+._513:\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._547 @ sub_8096C84\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._548:\n\
+ .align 2, 0\n\
+._547:\n\
+ .word sub_8096C84+1\n\
+._516:\n\
+ bl sub_809BE80\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._563 @cond_branch\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._551 @ sub_80972A8\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._552:\n\
+ .align 2, 0\n\
+._551:\n\
+ .word sub_80972A8+1\n\
+._518:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._554 @ sub_80972FC\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._555:\n\
+ .align 2, 0\n\
+._554:\n\
+ .word sub_80972FC+1\n\
+._517:\n\
+ bl sub_809BEBC\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._563 @cond_branch\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._558 @ c3_0808DC50\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._559:\n\
+ .align 2, 0\n\
+._558:\n\
+ .word c3_0808DC50+1\n\
+._515:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._561 @ sub_8097390\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._562:\n\
+ .align 2, 0\n\
+._561:\n\
+ .word sub_8097390+1\n\
+._514:\n\
+ bl sub_809BE80\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._563 @cond_branch\n\
+ ldr r4, ._566 @ 0x2000000\n\
+ ldr r1, ._566 + 4 @ 0x11f2\n\
+ add r0, r4, r1\n\
+ ldrh r0, [r0]\n\
+ bl ItemIsMail\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._564 @cond_branch\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._566 + 8 @ sub_809746C\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._567:\n\
+ .align 2, 0\n\
+._566:\n\
+ .word 0x2000000\n\
+ .word 0x11f2\n\
+ .word sub_809746C+1\n\
+._520:\n\
+ bl sub_809BE80\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._568 @cond_branch\n\
+._563:\n\
+ ldr r1, ._570 @ 0x2000000\n\
+ mov r0, #0x2\n\
+ strb r0, [r1, #0x4]\n\
+ b ._597\n\
+._571:\n\
+ .align 2, 0\n\
+._570:\n\
+ .word 0x2000000\n\
+._568:\n\
+ ldr r4, ._574 @ 0x2000000\n\
+ ldr r1, ._574 + 4 @ 0x11f9\n\
+ add r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._572 @cond_branch\n\
+ mov r0, #0x4\n\
+ strb r0, [r4, #0x4]\n\
+ b ._597\n\
+._575:\n\
+ .align 2, 0\n\
+._574:\n\
+ .word 0x2000000\n\
+ .word 0x11f9\n\
+._572:\n\
+ ldr r1, ._578 @ 0x11f2\n\
+ add r0, r4, r1\n\
+ ldrh r0, [r0]\n\
+ bl ItemIsMail\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._576 @cond_branch\n\
+._564:\n\
+ mov r0, #0x3\n\
+ strb r0, [r4, #0x4]\n\
+ b ._597\n\
+._579:\n\
+ .align 2, 0\n\
+._578:\n\
+ .word 0x11f2\n\
+._576:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._581 @ sub_8097594\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._582:\n\
+ .align 2, 0\n\
+._581:\n\
+ .word sub_8097594+1\n\
+._519:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._584 @ sub_8097788\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._585:\n\
+ .align 2, 0\n\
+._584:\n\
+ .word sub_8097788+1\n\
+._521:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ ldr r0, ._587 @ sub_80977E4\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._588:\n\
+ .align 2, 0\n\
+._587:\n\
+ .word sub_80977E4+1\n\
+._545:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._590 @ debug_sub_80A435C\n\
+ bl SetPSSCallback\n\
+ b ._597\n\
+._591:\n\
+ .align 2, 0\n\
+._590:\n\
+ .word debug_sub_80A435C+1\n\
+._500:\n\
+ mov r0, #0x20\n\
+ bl PlaySE\n\
+ mov r0, #0xd\n\
+ b ._593\n\
+._502:\n\
+ mov r0, #0x20\n\
+ bl PlaySE\n\
+ mov r0, #0x11\n\
+ b ._593\n\
+._501:\n\
+ mov r0, #0x20\n\
+ bl PlaySE\n\
+ mov r0, #0x16\n\
+._593:\n\
+ bl PrintStorageActionText\n\
+ ldr r1, ._595 @ 0x2000000\n\
+ mov r0, #0x5\n\
+ strb r0, [r1, #0x4]\n\
+ b ._597\n\
+._596:\n\
+ .align 2, 0\n\
+._595:\n\
+ .word 0x2000000\n\
+._503:\n\
+ ldr r0, ._598 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0xf3\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._597 @cond_branch\n\
+ bl sub_8098A5C\n\
+ ldr r0, ._598 + 4 @ sub_8096C84\n\
+ bl SetPSSCallback\n\
+._597:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._599:\n\
+ .align 2, 0\n\
+._598:\n\
+ .word gMain\n\
+ .word sub_8096C84+1");
+}
+#else
+void sub_8097078(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_IS_SELECTED);
+ sub_809CE84();
+ gPokemonStorageSystemPtr->unk_0004 = 1;
+ break;
+ case 1:
+ switch (sub_809CF30())
+ {
+ case -1:
+ case 0:
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 3:
+ if (sub_809BE80())
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(sub_80972A8);
+ }
+ break;
+ case 5:
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(sub_80972FC);
+ break;
+ case 4:
+ if (!sub_809BEBC())
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(c3_0808DC50);
+ }
+ break;
+ case 2:
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(sub_8097390);
+ break;
+ case 1:
+ if (sub_809BE80())
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ else if (ItemIsMail(gPokemonStorageSystemPtr->unk_11f2))
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 3;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(sub_809746C);
+ }
+ break;
+ case 7:
+ if (sub_809BE80())
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ else if (gPokemonStorageSystemPtr->unk_11f9)
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 4;
+ }
+ else if (ItemIsMail(gPokemonStorageSystemPtr->unk_11f2))
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 3;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097594);
+ }
+ break;
+ case 6:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097788);
+ break;
+ case 8:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_80977E4);
+ break;
+ }
+ break;
+ case 2:
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_LAST_POKE);
+ gPokemonStorageSystemPtr->unk_0004 = 5;
+ break;
+ case 4:
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG);
+ gPokemonStorageSystemPtr->unk_0004 = 5;
+ break;
+ case 3:
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL);
+ gPokemonStorageSystemPtr->unk_0004 = 5;
+ break;
+ case 5:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+#endif
+
+void sub_80972A8(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_809B100(0);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!sub_809B130())
+ {
+ if (gUnknown_0203847C)
+ SetPSSCallback(sub_8097858);
+ else
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_80972FC(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_809B100(1);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!sub_809B130())
+ {
+ if (gUnknown_0203847C)
+ SetPSSCallback(sub_8097858);
+ else
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void c3_0808DC50(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_809B100(2);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!sub_809B130())
+ {
+ BoxSetMosaic();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_8097390(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ if (CalculatePlayerPartyCount() == 6)
+ {
+ PrintStorageActionText(PC_TEXT_PARTY_FULL);
+ gPokemonStorageSystemPtr->unk_0004 = 1;
+ }
+ else
+ {
+ sub_809B0E0();
+ sub_809B100(0);
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ case 2:
+ if (!sub_809B130())
+ {
+ sub_809880C();
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 3:
+ if (!sub_8098830())
+ {
+ sub_809B100(1);
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 4:
+ if (!sub_809B130())
+ {
+ sub_80987DC();
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 5:
+ SetPSSCallback(sub_8097004);
+ break;
+ }
+}
+
+void sub_809746C(void)
+{
+ u8 r4;
+
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX);
+ sub_8096264(&gPokemonStorageSystemPtr->unk_2370, 0x0007, 0xdaca, 3);
+ sub_809634C(gUnknown_0203847E);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ r4 = sub_8096368();
+ if (r4 == 200);
+ else if (r4 == 201)
+ {
+ sub_8098A5C();
+ sub_809635C();
+ sub_8096310();
+ SetPSSCallback(sub_8096C84);
+ }
+ else
+ {
+ if (sub_809B62C(r4))
+ {
+ sub_8098A5C();
+ sub_809635C();
+ sub_8096310();
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ else
+ {
+ PrintStorageActionText(PC_TEXT_BOX_IS_FULL);
+ gPokemonStorageSystemPtr->unk_0004 = 4;
+ }
+ gUnknown_0203847E = r4;
+ }
+ break;
+ case 2:
+ party_compaction();
+ sub_8099310();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 3:
+ if (sub_8099374() == 0)
+ {
+ sub_809B6BC();
+ BoxSetMosaic();
+ sub_80987DC();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ case 4:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX);
+ gPokemonStorageSystemPtr->unk_0004 = 1;
+ }
+ break;
+ }
+}
+
+void sub_8097594(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_RELEASE_POKE);
+ sub_8098A38(1);
+ gPokemonStorageSystemPtr->unk_0004++;
+ // fallthrough
+ case 1:
+ switch (Menu_ProcessInputNoWrap())
+ {
+ case -1:
+ case 1:
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 0:
+ sub_8098A5C();
+ sub_809B7D4();
+ sub_809B6DC();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ }
+ break;
+ case 2:
+ sub_809B960();
+ if (!sub_809B734())
+ {
+ while (1)
+ {
+ s8 r0 = sub_809B960();
+ if (r0 == 1)
+ {
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ }
+ if (r0 == 0)
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 8;
+ break;
+ }
+ }
+ }
+ break;
+ case 3:
+ sub_809B760();
+ sub_809801C();
+ PrintStorageActionText(PC_TEXT_WAS_RELEASED);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 4:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_BYE_BYE);
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 5:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8098A5C();
+ if (gUnknown_0203847C)
+ {
+ party_compaction();
+ sub_8099310();
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_0004 = 7;
+ }
+ }
+ break;
+ case 6:
+ if (sub_8099374() == 0)
+ {
+ sub_809B440();
+ BoxSetMosaic();
+ sub_80987DC();
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 7:
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 8:
+ PrintStorageActionText(PC_TEXT_WAS_RELEASED);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 9:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_SURPRISE);
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 10:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8098A5C();
+ sub_8099958();
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 11:
+ if (!sub_8099990())
+ {
+ sub_809B7AC();
+ PrintStorageActionText(PC_TEXT_CAME_BACK);
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 12:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ PrintStorageActionText(PC_TEXT_WORRIED);
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ case 13:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_8097788(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_809BC18();
+ BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ gUnknown_0203847F = 0;
+ gPokemonStorageSystemPtr->unk_0006 = 0;
+ SetMainCallback2(sub_8096B5C);
+ }
+ break;
+ }
+}
+
+void sub_80977E4(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_MARK_POKE);
+ gPokemonStorageSystemPtr->unk_12bc.markings = gPokemonStorageSystemPtr->unk_11f7;
+ sub_80F7418(gPokemonStorageSystemPtr->unk_11f7, 0xb0, 0x10);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!sub_80F7500())
+ {
+ sub_80F7470();
+ sub_8098A5C();
+ sub_809BDD8(gPokemonStorageSystemPtr->unk_12bc.markings);
+ sub_809801C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_8097858(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ party_compaction();
+ sub_8099310();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (sub_8099374() == 0)
+ {
+ sub_80987DC();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_809789C(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_WHAT_YOU_DO);
+ sub_809CE84();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ switch (sub_809CF30())
+ {
+ case -1:
+ case 0:
+ sub_809A860(TRUE);
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 11:
+ PlaySE(SE_SELECT);
+ SetPSSCallback(sub_8097B44);
+ break;
+ case 10:
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(sub_8097974);
+ break;
+ case 9:
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ SetPSSCallback(sub_8097A64);
+ break;
+ }
+ break;
+ }
+}
+
+void sub_8097974(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_8098A80();
+ PrintStorageActionText(PC_TEXT_PICK_A_THEME);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ gPokemonStorageSystemPtr->unk_0d5e = sub_809CF30();
+ switch (gPokemonStorageSystemPtr->unk_0d5e)
+ {
+ case -1:
+ sub_809A860(TRUE);
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 12 ... 15:
+ PlaySE(SE_SELECT);
+ gPokemonStorageSystemPtr->unk_0d5e -= 12;
+ sub_8098AA8(gPokemonStorageSystemPtr->unk_0d5e);
+ PrintStorageActionText(PC_TEXT_PICK_A_WALLPAPER);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ }
+ break;
+ case 2:
+ gPokemonStorageSystemPtr->unk_0d60 = sub_809CF30();
+ switch (gPokemonStorageSystemPtr->unk_0d60)
+ {
+ case -1:
+ sub_8098A5C();
+ gPokemonStorageSystemPtr->unk_0004 = 0;
+ break;
+ case -2:
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sub_8098A5C();
+ gPokemonStorageSystemPtr->unk_0d60 -= 16;
+ sub_8099DCC(gPokemonStorageSystemPtr->unk_0d60);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ }
+ break;
+ case 3:
+ if (!sub_8099E08())
+ {
+ sub_809A860(TRUE);
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_8097A64(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ PrintStorageActionText(PC_TEXT_JUMP_TO_WHICH_BOX);
+ sub_8096264(&gPokemonStorageSystemPtr->unk_2370, 0x0007, 0xdaca, 3);
+ sub_809634C(gPokemonStorage.currentBox);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ gPokemonStorageSystemPtr->unk_08b2 = sub_8096368();
+ switch (gPokemonStorageSystemPtr->unk_08b2)
+ {
+ case 200:
+ break;
+ default:
+ sub_8098A5C();
+ sub_809635C();
+ sub_8096310();
+ if (gPokemonStorageSystemPtr->unk_08b2 == 201 || gPokemonStorageSystemPtr->unk_08b2 == gPokemonStorage.currentBox)
+ {
+ sub_809A860(TRUE);
+ SetPSSCallback(sub_8096C84);
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_0004++;
+ }
+ break;
+ }
+ break;
+ case 2:
+ sub_8099C70(gPokemonStorageSystemPtr->unk_08b2);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 3:
+ if (!sub_8099D34())
+ {
+ gPokemonStorage.currentBox = gPokemonStorageSystemPtr->unk_08b2;
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ }
+}
+
+void sub_8097B44(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ sub_809BB90();
+ BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ gUnknown_0203847F = 1;
+ gPokemonStorageSystemPtr->unk_0006 = 1;
+ SetMainCallback2(sub_8096B5C);
+ }
+ break;
+ }
+}
+
+void sub_8097BA0(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_0004)
+ {
+ case 0:
+ if (sub_809BF20())
+ {
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_HOLDING_POKE);
+ gPokemonStorageSystemPtr->unk_0004 = 1;
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ PrintStorageActionText(PC_TEXT_EXIT_BOX);
+ sub_8098A38(0);
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY))
+ {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ case 2:
+ switch (Menu_ProcessInputNoWrap())
+ {
+ case 1:
+ case -1:
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case 0:
+ PlaySE(SE_PC_OFF);
+ sub_8098A5C();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ }
+ break;
+ case 3:
+ gPokemonStorageSystemPtr->unk_000c.tileTag = 0x000e;
+ gPokemonStorageSystemPtr->unk_000c.paletteTag = 0xdad0;
+ gPokemonStorageSystemPtr->unk_000c.unk04 = 20;
+ gPokemonStorageSystemPtr->unk_000c.unk06 = 0;
+ sub_80C5E38(&gPokemonStorageSystemPtr->unk_000c);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 4:
+ if (sub_80C5F98())
+ {
+ gPlayerPartyCount = CalculatePlayerPartyCount();
+ SetMainCallback2(sub_80961A8);
+ }
+ break;
+ }
+}
+
+void sub_8097CC0(void) {
+ switch (gPokemonStorageSystemPtr->unk_0004) {
+ case 0:
+ if (sub_809BF20()) {
+ PlaySE(SE_HAZURE);
+ PrintStorageActionText(PC_TEXT_HOLDING_POKE);
+ gPokemonStorageSystemPtr->unk_0004 = 1;
+ }
+ else {
+ PlaySE(SE_SELECT);
+ PrintStorageActionText(PC_TEXT_CONTINUE_BOX);
+ sub_8098A38(0);
+ gPokemonStorageSystemPtr->unk_0004 = 2;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON | DPAD_ANY)) {
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ }
+ break;
+ case 2:
+ switch (Menu_ProcessInputNoWrap()) {
+ case 0:
+ sub_8098A5C();
+ SetPSSCallback(sub_8096C84);
+ break;
+ case -1:
+ case 1:
+ PlaySE(SE_PC_OFF);
+ sub_8098A5C();
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ }
+ break;
+ case 3:
+ gPokemonStorageSystemPtr->unk_000c.tileTag = 0x000e;
+ gPokemonStorageSystemPtr->unk_000c.paletteTag = 0xdad0;
+ gPokemonStorageSystemPtr->unk_000c.unk04 = 20;
+ gPokemonStorageSystemPtr->unk_000c.unk06 = 0;
+ sub_80C5E38(&gPokemonStorageSystemPtr->unk_000c);
+ gPokemonStorageSystemPtr->unk_0004++;
+ break;
+ case 4:
+ if (sub_80C5F98()) {
+ gPlayerPartyCount = CalculatePlayerPartyCount();
+ SetMainCallback2(sub_80961A8);
+ }
+ break;
+ }
+}
+
+void sub_8097DE0(void)
+{
+ gPokemonStorageSystemPtr->unk_0007 = 0;
+ gPokemonStorageSystemPtr->unk_0008 = 0;
+ gPokemonStorageSystemPtr->unk_000a = 0;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(30);
+ DmaCopy16Defvars(3, gPokemonStorageScrollingBGTile, BG_SCREEN_ADDR(28), sizeof gPokemonStorageScrollingBGTile);
+ LZ77UnCompVram(gPokemonStorageScrollingBGTilemap, BG_SCREEN_ADDR(30));
+ LoadPalette(gPokemonStorageScrollingBGPalette, 0xd0, 0x10);
+}
+
+void sub_8097E44(void)
+{
+ if (++gPokemonStorageSystemPtr->unk_0007 >= 2)
+ {
+ gPokemonStorageSystemPtr->unk_0007 = 0;
+ gPokemonStorageSystemPtr->unk_0008--;
+ gPokemonStorageSystemPtr->unk_000a++;
+ }
+}
+
+void sub_8097E70(void)
+{
+ LZ77UnCompVram(gPSSMenuHeader_Gfx, BG_SCREEN_ADDR(10));
+ LZ77UnCompWram(gPSSMenuHeader_Tilemap, gUnknown_02039760);
+ sub_809D034(BG_SCREEN_ADDR(15), 0, 0, gUnknown_02039760, 0, 0, 10, 20);
+ LoadPalette(gPSSMenu1_Pal, 0x10, 0x20);
+ LoadPalette(gPSSMenu2_Pal, 0x00, 0x20);
+ LoadPalette(gUnknown_083B6D74, 0xB0, 0x20);
+ LoadPalette(gUnknown_083B6D94, 0xC0, 0x20);
+ LoadPalette(gUnknownPalette_81E6692 + 1, 0xF1, 0x02);
+ LoadPalette(gUnknownPalette_81E6692 + 1, 0xF2, 0x02);
+ LoadPalette(gUnknownPalette_81E6692 + 5, 0xF3, 0x02);
+ LoadPalette(gUnknownPalette_81E6692 + 12, 0xF4, 0x04);
+ LoadPalette(gUnknownPalette_81E6692 + 10, 0xF6, 0x04);
+ LoadPalette(gUnknownPalette_81E6692 + 2, 0xFF, 0x02);
+ LoadSpritePalette(&gWaveformSpritePalette);
+ sub_80980D4();
+ sub_8097F58();
+ sub_8097FB8();
+ sub_809801C();
+}
+
+void sub_8097F58(void)
+{
+ gPokemonStorageSystemPtr->unk_12ac = sub_80F7940(0x000d, 0xdace, 0);
+ gPokemonStorageSystemPtr->unk_12ac->oam.priority = 0;
+ gPokemonStorageSystemPtr->unk_12ac->subpriority = 1;
+ gPokemonStorageSystemPtr->unk_12ac->pos1.x = 0x28;
+ gPokemonStorageSystemPtr->unk_12ac->pos1.y = 0x95;
+ gPokemonStorageSystemPtr->unk_12b8 = BG_CHAR_ADDR(4) + 32 * GetSpriteTileStartByTag(0x000d);
+}
+
+const struct SpriteTemplate gSpriteTemplate_83B6EFC;
+
+void sub_8097FB8(void)
+{
+ u16 i;
+ struct SpriteSheet sheet = {WaveformTiles, 0x1c0, 0x0005};
+
+ LoadSpriteSheet(&sheet);
+ for (i = 0; i < 2; i++)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83B6EFC, i * 63 + 8, 9, 2);
+ gPokemonStorageSystemPtr->unk_12b0[i] = gSprites + spriteId;
+ }
+}
+
+void sub_809801C(void)
+{
+ sub_80981F0(gPokemonStorageSystemPtr->unk_11f0, gPokemonStorageSystemPtr->unk_11ec);
+ sub_80982B4();
+ sub_8098350();
+}
+
+void BoxSetMosaic(void)
+{
+ sub_809801C();
+ if (gPokemonStorageSystemPtr->unk_2700)
+ {
+ gPokemonStorageSystemPtr->unk_2700->oam.mosaic = TRUE;
+ gPokemonStorageSystemPtr->unk_2700->data[0] = 10;
+ gPokemonStorageSystemPtr->unk_2700->data[1] = 1;
+ gPokemonStorageSystemPtr->unk_2700->callback = sub_8098090;
+ REG_MOSAIC = (gPokemonStorageSystemPtr->unk_2700->data[0] << 12) | (gPokemonStorageSystemPtr->unk_2700->data[0] << 8);
+ }
+}
+
+void sub_8098090(struct Sprite *sprite)
+{
+ sprite->data[0] -= sprite->data[1];
+ if (sprite->data[0] < 0)
+ sprite->data[0] = 0;
+ REG_MOSAIC = (sprite->data[0] << 12) | (sprite->data[0] << 8);
+ if (sprite->data[0] == 0)
+ {
+ sprite->oam.mosaic = FALSE;
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+// sub_80980D4
+
+const struct OamData gOamData_83B6EAC;
+
+#ifdef NONMATCHING
+void sub_80980D4(void)
+{
+ u16 i;
+ u16 tileStart;
+ u8 palSlot;
+ u8 spriteId;
+ struct SpriteSheet sheet = {gPokemonStorageSystemPtr->unk_2784, 0x800, 0x0002};
+ struct SpritePalette palette = {gPokemonStorageSystemPtr->unk_2704, 0xdac7};
+ struct SpriteTemplate template = {
+ 0x0002, 0xdac7, &gOamData_83B6EAC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ };
+
+ for (i = 0; i < 0x800; i++)
+ gPokemonStorageSystemPtr->unk_2784[i] = 0;
+ for (i = 0; i < 0x10; i++)
+ gPokemonStorageSystemPtr->unk_2704[i] = 0;
+
+ gPokemonStorageSystemPtr->unk_2700 = NULL;
+ if ((tileStart = LoadSpriteSheet(&sheet)) != 0
+ && (palSlot = LoadSpritePalette(&palette)) != 0xff
+ && (spriteId = CreateSprite(&template, 0x28, 0x30, 0)) != MAX_SPRITES)
+ {
+ // FIXME this gets compiled as a separate block between the palSlot check and the spriteId check
+ gPokemonStorageSystemPtr->unk_2700 = gSprites + spriteId;
+ gPokemonStorageSystemPtr->unk_26fa = palSlot * 16 + 0x100;
+ gPokemonStorageSystemPtr->unk_26fc = BG_CHAR_ADDR(4) + tileStart * 32;
+ }
+
+ if (gPokemonStorageSystemPtr->unk_2700 == NULL)
+ {
+ FreeSpriteTilesByTag(0x0002);
+ FreeSpritePaletteByTag(0xdac7);
+ }
+}
+#else
+
+const struct SpriteSheet gUnknown_083B6DCC = {ePokemonStorageSystem.unk_2784, 0x800, 0x0002};
+const struct SpritePalette gUnknown_083B6DD4 = {ePokemonStorageSystem.unk_2704, 0xdac7};
+const struct SpriteTemplate gSpriteTemplate_83B6DDC = {
+ 0x0002, 0xdac7, &gOamData_83B6EAC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+};
+
+__attribute__((naked)) void sub_80980D4(void)
+{
+ asm_unified("\tpush {r4,r5,lr}\n"
+ "\tsub sp, 0x28\n"
+ "\tldr r0, _08098150 @ =gUnknown_083B6DCC\n"
+ "\tldr r1, [r0, 0x4]\n"
+ "\tldr r0, [r0]\n"
+ "\tstr r0, [sp, 0x18]\n"
+ "\tstr r1, [sp, 0x1C]\n"
+ "\tldr r0, _08098154 @ =gUnknown_083B6DD4\n"
+ "\tldr r1, [r0, 0x4]\n"
+ "\tldr r0, [r0]\n"
+ "\tstr r0, [sp, 0x20]\n"
+ "\tstr r1, [sp, 0x24]\n"
+ "\tmov r1, sp\n"
+ "\tldr r0, _08098158 @ =gSpriteTemplate_83B6DDC\n"
+ "\tldm r0!, {r2-r4}\n"
+ "\tstm r1!, {r2-r4}\n"
+ "\tldm r0!, {r2-r4}\n"
+ "\tstm r1!, {r2-r4}\n"
+ "\tmovs r1, 0\n"
+ "\tadd r5, sp, 0x18\n"
+ "\tldr r4, _0809815C @ =gSharedMem + 0x2784\n"
+ "\tmovs r3, 0\n"
+ "\tldr r2, _08098160 @ =0x000007ff\n"
+ "_08098102:\n"
+ "\tadds r0, r1, r4\n"
+ "\tstrb r3, [r0]\n"
+ "\tadds r0, r1, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r1, r0, 16\n"
+ "\tcmp r1, r2\n"
+ "\tbls _08098102\n"
+ "\tmovs r1, 0\n"
+ "\tldr r3, _08098164 @ =gSharedMem + 0x2704\n"
+ "\tmovs r2, 0\n"
+ "_08098116:\n"
+ "\tlsls r0, r1, 1\n"
+ "\tadds r0, r3\n"
+ "\tstrh r2, [r0]\n"
+ "\tadds r0, r1, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r1, r0, 16\n"
+ "\tcmp r1, 0xF\n"
+ "\tbls _08098116\n"
+ "\tldr r0, _08098168 @ =gSharedMem\n"
+ "\tmovs r1, 0x9C\n"
+ "\tlsls r1, 6\n"
+ "\tadds r0, r1\n"
+ "\tmovs r1, 0\n"
+ "\tstr r1, [r0]\n"
+ "\tadds r0, r5, 0\n"
+ "\tbl LoadSpriteSheet\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r5, r0, 16\n"
+ "\tcmp r5, 0\n"
+ "\tbeq _080981C4\n"
+ "\tadd r0, sp, 0x20\n"
+ "\tbl LoadSpritePalette\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tcmp r4, 0xFF\n"
+ "\tbeq _080981C4\n"
+ "\tb _080981B0\n"
+ "\t.align 2, 0\n"
+ "_08098150: .4byte gUnknown_083B6DCC\n"
+ "_08098154: .4byte gUnknown_083B6DD4\n"
+ "_08098158: .4byte gSpriteTemplate_83B6DDC\n"
+ "_0809815C: .4byte gSharedMem + 0x2784\n"
+ "_08098160: .4byte 0x000007ff\n"
+ "_08098164: .4byte gSharedMem + 0x2704\n"
+ "_08098168: .4byte gSharedMem\n"
+ "_0809816C:\n"
+ "\tldr r2, _0809819C @ =gSharedMem\n"
+ "\tmovs r0, 0x9C\n"
+ "\tlsls r0, 6\n"
+ "\tadds r3, r2, r0\n"
+ "\tlsls r0, r1, 4\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _080981A0 @ =gSprites\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r3]\n"
+ "\tlsls r0, r4, 4\n"
+ "\tmovs r1, 0x80\n"
+ "\tlsls r1, 1\n"
+ "\tadds r0, r1\n"
+ "\tldr r3, _080981A4 @ =0x000026fa\n"
+ "\tadds r1, r2, r3\n"
+ "\tstrh r0, [r1]\n"
+ "\tldr r4, _080981A8 @ =0x000026fc\n"
+ "\tadds r2, r4\n"
+ "\tlsls r0, r5, 5\n"
+ "\tldr r1, _080981AC @ =0x06010000\n"
+ "\tadds r0, r1\n"
+ "\tstr r0, [r2]\n"
+ "\tb _080981C4\n"
+ "\t.align 2, 0\n"
+ "_0809819C: .4byte gSharedMem\n"
+ "_080981A0: .4byte gSprites\n"
+ "_080981A4: .4byte 0x000026fa\n"
+ "_080981A8: .4byte 0x000026fc\n"
+ "_080981AC: .4byte 0x06010000\n"
+ "_080981B0:\n"
+ "\tmov r0, sp\n"
+ "\tmovs r1, 0x28\n"
+ "\tmovs r2, 0x30\n"
+ "\tmovs r3, 0\n"
+ "\tbl CreateSprite\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r1, r0, 24\n"
+ "\tcmp r1, 0x40\n"
+ "\tbne _0809816C\n"
+ "_080981C4:\n"
+ "\tldr r0, _080981E8 @ =gSharedMem\n"
+ "\tmovs r2, 0x9C\n"
+ "\tlsls r2, 6\n"
+ "\tadds r0, r2\n"
+ "\tldr r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080981DE\n"
+ "\tmovs r0, 0x2\n"
+ "\tbl FreeSpriteTilesByTag\n"
+ "\tldr r0, _080981EC @ =0x0000dac7\n"
+ "\tbl FreeSpritePaletteByTag\n"
+ "_080981DE:\n"
+ "\tadd sp, 0x28\n"
+ "\tpop {r4,r5}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_080981E8: .4byte gSharedMem\n"
+ "_080981EC: .4byte 0x0000dac7");
+}
+#endif
+
+void sub_80981F0(u16 species, u32 pid)
+{
+ if (gPokemonStorageSystemPtr->unk_2700)
+ {
+ if (species != SPECIES_NONE)
+ {
+ HandleLoadSpecialPokePic(gMonFrontPicTable + species, gMonFrontPicCoords[species].coords, 1, (intptr_t)gPokemonStorageSystemPtr->unk_4784, gPokemonStorageSystemPtr->unk_2784, species, pid);
+ LZ77UnCompWram(gPokemonStorageSystemPtr->unk_11e8, gPokemonStorageSystemPtr->unk_2704);
+ CpuCopy32(gPokemonStorageSystemPtr->unk_2784, gPokemonStorageSystemPtr->unk_26fc, 0x800);
+ LoadPalette(gPokemonStorageSystemPtr->unk_2704, gPokemonStorageSystemPtr->unk_26fa, 0x20);
+ gPokemonStorageSystemPtr->unk_2700->invisible = FALSE;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_2700->invisible = TRUE;
+ }
+ }
+}
+
+void sub_80982B4(void)
+{
+ if (gPokemonStorageSystemPtr->unk_11f0)
+ {
+ sub_80F7A10(gPokemonStorageSystemPtr->unk_11f7, gPokemonStorageSystemPtr->unk_12b8);
+ gPokemonStorageSystemPtr->unk_12ac->invisible = FALSE;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_12ac->invisible = TRUE;
+ }
+ Menu_EraseWindowRect(0, 11, 9, 17);
+ Menu_PrintText(gPokemonStorageSystemPtr->unk_127a, 1, 16);
+ Menu_PrintText(gPokemonStorageSystemPtr->unk_120f, 1, 11);
+ Menu_PrintText(gPokemonStorageSystemPtr->unk_1234, 0, 13);
+ Menu_PrintText(gPokemonStorageSystemPtr->unk_1259, 1, 15);
+}
+
+void sub_8098350(void)
+{
+ u16 i;
+
+ if (gPokemonStorageSystemPtr->unk_11f0)
+ {
+ sub_809D034(BG_SCREEN_ADDR(15), 1, 0, gUnknown_02039760, 1, 0, 8, 2);
+ for (i = 0; i < 2; i++)
+ StartSpriteAnimIfDifferent(gPokemonStorageSystemPtr->unk_12b0[i], i * 2 + 1);
+ }
+ else
+ {
+ sub_809D034(BG_SCREEN_ADDR(15), 1, 0, gUnknown_02039760, 10, 0, 8, 2);
+ for (i = 0; i < 2; i++)
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_12b0[i], i * 2);
+ }
+}
+
+void sub_8098400(void)
+{
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(15);
+ LZ77UnCompVram(gPSSMenuMisc_Gfx, BG_SCREEN_ADDR(13));
+ LZ77UnCompWram(gPSSMenuMisc_Tilemap, gPokemonStorageSystemPtr->unk_00a8);
+ LoadPalette(gPSSMenu3_Pal, 0x20, 0x20);
+ LoadPalette(gPSSMenu4_Pal, 0x30, 0x20);
+ DmaClear16(3, BG_SCREEN_ADDR(15), 0x800);
+ sub_8098780();
+ if (gUnknown_0203847C)
+ {
+ sub_8098690(TRUE);
+ sub_8099200(TRUE);
+ sub_809D034(BG_SCREEN_ADDR(15), 10, 0, gPokemonStorageSystemPtr->unk_00a8, 0, 0, 12, 22);
+ }
+ else
+ {
+ sub_809D034(BG_SCREEN_ADDR(15), 10, 0, gPokemonStorageSystemPtr->unk_00a8, 0, 20, 12, 2);
+ sub_8098690(TRUE);
+ }
+ gPokemonStorageSystemPtr->unk_08af = 0;
+}
+
+void sub_80984E8(void)
+{
+ gPokemonStorageSystemPtr->unk_08a8 = 20;
+ gPokemonStorageSystemPtr->unk_08aa = 2;
+ gPokemonStorageSystemPtr->unk_08ad = 0;
+ sub_8099200(FALSE);
+}
+
+bool8 sub_8098520(void)
+{
+ if (gPokemonStorageSystemPtr->unk_08ad == 20)
+ return FALSE;
+ gPokemonStorageSystemPtr->unk_08a8--;
+ gPokemonStorageSystemPtr->unk_08aa++;
+ sub_809D034(BG_SCREEN_ADDR(15), 10, 0, gPokemonStorageSystemPtr->unk_00a8, 0, gPokemonStorageSystemPtr->unk_08a8, 12, gPokemonStorageSystemPtr->unk_08aa);
+ sub_80994A8(8);
+ if (++gPokemonStorageSystemPtr->unk_08ad == 20)
+ {
+ gUnknown_0203847C = 1;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void add_to_c3_somehow(void)
+{
+ gPokemonStorageSystemPtr->unk_08a8 = 0;
+ gPokemonStorageSystemPtr->unk_08aa = 22;
+ gPokemonStorageSystemPtr->unk_08ad = 0;
+}
+
+bool8 sub_80985CC(void)
+{
+ if (gPokemonStorageSystemPtr->unk_08ad == 20)
+ return FALSE;
+ gPokemonStorageSystemPtr->unk_08a8++;
+ gPokemonStorageSystemPtr->unk_08aa--;
+ sub_809D034(BG_SCREEN_ADDR(15), 10, 0, gPokemonStorageSystemPtr->unk_00a8, 0, gPokemonStorageSystemPtr->unk_08a8, 12, gPokemonStorageSystemPtr->unk_08aa);
+ sub_809D16C(BG_SCREEN_ADDR(15), 10, gPokemonStorageSystemPtr->unk_08aa, 12, 1);
+ sub_80994A8(-8);
+ if (++gPokemonStorageSystemPtr->unk_08ad == 20)
+ {
+ gUnknown_0203847C = 0;
+ sub_809954C();
+ party_compaction();
+ sub_809D034(BG_SCREEN_ADDR(15), 21, 0, gPokemonStorageSystemPtr->unk_00a8, 12, 0, 1, 2);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_8098690(bool8 flag)
+{
+ if (flag)
+ sub_809D034(BG_SCREEN_ADDR(15), 21, 0, gPokemonStorageSystemPtr->unk_00a8, 12, 0, 9, 2);
+ else
+ sub_809D034(BG_SCREEN_ADDR(15), 21, 0, gPokemonStorageSystemPtr->unk_00a8, 12, 2, 9, 2);
+}
+
+void sub_80986E8(void)
+{
+ gPokemonStorageSystemPtr->unk_08af = 1;
+ gPokemonStorageSystemPtr->unk_08b0 = 30;
+ gPokemonStorageSystemPtr->unk_08b1 = 1;
+}
+
+void sub_8098710(void)
+{
+ if (gPokemonStorageSystemPtr->unk_08af)
+ {
+ gPokemonStorageSystemPtr->unk_08af = 0;
+ sub_8098690(TRUE);
+ }
+}
+
+void sub_8098734(void)
+{
+ if (gPokemonStorageSystemPtr->unk_08af && ++gPokemonStorageSystemPtr->unk_08b0 > 30)
+ {
+ gPokemonStorageSystemPtr->unk_08b0 = 0;
+ gPokemonStorageSystemPtr->unk_08b1 = gPokemonStorageSystemPtr->unk_08b1 ? FALSE : TRUE;
+ sub_8098690(gPokemonStorageSystemPtr->unk_08b1);
+ }
+}
+
+void sub_8098780(void)
+{
+ int i;
+
+ for (i = 1; i < PARTY_SIZE; i++)
+ {
+ u16 r1;
+ bool32 r0 = GetMonData(gPlayerParty + i, MON_DATA_SPECIES);
+ if (r0)
+ r0 = TRUE;
+ r1 = r0 ? 12 : 16;
+ sub_809D104(gPokemonStorageSystemPtr->unk_00a8, 7, (i - 1) * 3 + 1, gPokemonStorageSystemPtr->unk_00a8, r1, 4, 4, 3);
+ }
+}
+
+void sub_80987DC(void)
+{
+ sub_8098780();
+ sub_809D034(BG_SCREEN_ADDR(15), 10, 0, gPokemonStorageSystemPtr->unk_00a8, 0, 0, 12, 22);
+}
+
+void sub_809880C(void)
+{
+ gPokemonStorageSystemPtr->unk_08ae = 0;
+ PlaySE(SE_WIN_OPEN);
+ sub_80984E8();
+}
+
+bool8 sub_8098830(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_08ae)
+ {
+ case 0:
+ if (!sub_8098520())
+ {
+ sub_809B068();
+ gPokemonStorageSystemPtr->unk_08ae++;
+ }
+ break;
+ case 1:
+ if (!sub_809AC00())
+ {
+ if (gPokemonStorageSystemPtr->unk_11f6)
+ BoxSetMosaic();
+ gPokemonStorageSystemPtr->unk_08ae++;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+const struct StorageAction gPCStorageActionTexts[] = {
+ {PCText_ExitBox, 0},
+ {PCText_WhatYouDo, 0},
+ {PCText_PickATheme, 0},
+ {PCText_PickAWallpaper, 0},
+ {PCText_IsSelected, 1},
+ {PCText_JumpToWhichBox, 0},
+ {PCText_DepositInWhichBox, 0},
+ {PCText_WasDeposited, 1},
+ {PCText_BoxIsFull, 0},
+ {PCText_ReleasePoke, 0},
+ {PCText_WasReleased, 4},
+ {PCText_ByeBye, 6},
+ {PCText_MarkPoke, 0},
+ {PCText_LastPoke, 0},
+ {PCText_PartyFull, 0},
+ {PCText_HoldingPoke, 0},
+ {PCText_WhichOneWillTake, 0},
+ {PCText_CantReleaseEgg, 0},
+ {PCText_ContinueBox, 0},
+ {PCText_CameBack, 1},
+ {PCText_Worried, 0},
+ {PCText_Surprise, 0},
+ {PCText_PleaseRemoveMail, 0}
+};
+
+void PrintStorageActionText(u8 index) {
+ u8 *ptr;
+
+ Menu_DrawStdWindowFrame(10, 16, 29, 19);
+
+ switch (gPCStorageActionTexts[index].format)
+ {
+
+ case PC_TEXT_FMT_UNK_02:
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPCStorageActionTexts[index].text);
+ ptr = StringCopy(ptr, gPokemonStorageSystemPtr->unk_11fa);
+ break;
+
+ case PC_TEXT_FMT_UNK_05:
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPCStorageActionTexts[index].text);
+ ptr = StringCopy(ptr, gPokemonStorageSystemPtr->unk_26e4);
+ break;
+
+ case PC_TEXT_FMT_MON_NAME:
+ // {var} + " is selected."
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPokemonStorageSystemPtr->unk_11fa);
+ ptr = StringCopy(ptr, gPCStorageActionTexts[index].text);
+ break;
+
+ case PC_TEXT_FMT_MON_NAME_2:
+ // {var} + " was released."
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPokemonStorageSystemPtr->unk_26e4);
+#if ENGLISH
+ ptr = StringCopy(ptr, gPCStorageActionTexts[index].text);
+#elif GERMAN
+ ptr = de_sub_8073174(gPokemonStorageSystemPtr->unk_2694, gPCStorageActionTexts[index].text);
+#endif
+ break;
+
+ case PC_TEXT_FMT_UNK_03:
+ {
+ const u8 *stringLength;
+ const u8 *text;
+
+ text = gPCStorageActionTexts[index].text;
+ stringLength = &text[StringLength(text)] + 1;
+
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPCStorageActionTexts[index].text);
+ ptr = StringCopy(ptr, gPokemonStorageSystemPtr->unk_11fa);
+ ptr = StringCopy(ptr, stringLength);
+ }
+ break;
+
+ case PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK:
+ // "Bye-bye, ".substr(0, -1) + {var} + "Bye-bye, !".substr(-1, 1)
+ {
+ const u8 *stringLength;
+ const u8 *text;
+
+ text = gPCStorageActionTexts[index].text;
+ stringLength = &text[StringLength(text)] - 1;
+
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPCStorageActionTexts[index].text);
+ ptr = StringCopy(ptr - 1, gPokemonStorageSystemPtr->unk_26e4);
+ ptr = StringCopy(ptr, stringLength);
+ }
+ break;
+
+ case PC_TEXT_FMT_NORMAL:
+ default:
+ ptr = StringCopy(gPokemonStorageSystemPtr->unk_2694, gPCStorageActionTexts[index].text);
+ break;
+ }
+
+ while (ptr < gPokemonStorageSystemPtr->unk_26a6)
+ {
+ ptr[0] = CHAR_SPACE;
+ ptr++;
+ }
+
+ ptr[0] = EOS;
+ Menu_PrintText(gPokemonStorageSystemPtr->unk_2694, 11, 17);
+}
+
+const struct OamData gOamData_83B6EAC = {
+ .size = 3
+};
+
+const struct OamData gOamData_83B6EB4 = {
+ .shape = ST_OAM_H_RECTANGLE
+};
+
+const union AnimCmd gSpriteAnim_83B6EBC[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83B6EC4[] = {
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(6, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd gSpriteAnim_83B6ED4[] = {
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83B6EDC[] = {
+ ANIMCMD_FRAME(10, 8),
+ ANIMCMD_FRAME( 4, 8),
+ ANIMCMD_FRAME(12, 8),
+ ANIMCMD_JUMP(0)
+};
+
+const union AnimCmd *const gSpriteAnimTable_83B6EEC[] = {
+ gSpriteAnim_83B6EBC,
+ gSpriteAnim_83B6EC4,
+ gSpriteAnim_83B6ED4,
+ gSpriteAnim_83B6EDC
+};
+
+const struct SpriteTemplate gSpriteTemplate_83B6EFC = {
+ 0x0005,
+ 0xdacd,
+ &gOamData_83B6EB4,
+ gSpriteAnimTable_83B6EEC,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+void sub_8098A38(s8 a0)
+{
+ DisplayYesNoMenu(23, 10, 0);
+ Menu_MoveCursor(a0);
+}
+
+void sub_8098A5C(void)
+{
+ Menu_DestroyCursor();
+ Menu_EraseWindowRect(10, 16, 29, 19);
+ Menu_EraseWindowRect(23, 10, 29, 15);
+}
+
+void sub_8098A80(void)
+{
+ sub_809CDCC();
+ sub_809CDEC(12);
+ sub_809CDEC(13);
+ sub_809CDEC(14);
+ sub_809CDEC(15);
+ sub_809CE84();
+}
+
+void sub_8098AA8(u8 a0)
+{
+ sub_809CDCC();
+ switch (a0)
+ {
+ case 0:
+ sub_809CDEC(16);
+ sub_809CDEC(17);
+ sub_809CDEC(18);
+ sub_809CDEC(19);
+ break;
+ case 1:
+ sub_809CDEC(20);
+ sub_809CDEC(21);
+ sub_809CDEC(22);
+ sub_809CDEC(23);
+ break;
+ case 2:
+ sub_809CDEC(24);
+ sub_809CDEC(25);
+ sub_809CDEC(26);
+ sub_809CDEC(27);
+ break;
+ case 3:
+ sub_809CDEC(28);
+ sub_809CDEC(29);
+ sub_809CDEC(30);
+ sub_809CDEC(31);
+ break;
+ }
+ sub_809CE84();
+}
diff --git a/src/pokemon/pokemon_storage_system_3.c b/src/pokemon/pokemon_storage_system_3.c
new file mode 100644
index 000000000..da26c6fc5
--- /dev/null
+++ b/src/pokemon/pokemon_storage_system_3.c
@@ -0,0 +1,655 @@
+
+// Includes
+#include "global.h"
+#include "constants/species.h"
+#include "sprite.h"
+#include "trig.h"
+#include "pokemon_icon.h"
+#include "pokemon_storage_system.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+// Static ROM declarations
+
+static void sub_8098E68(struct Sprite *sprite);
+static void sub_8099388(struct Sprite *sprite, u16 a1);
+static void sub_80993F4(struct Sprite *sprite);
+static void sub_80999C4(struct Sprite *sprite);
+static struct Sprite *PSS_SpawnMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 priority, u8 subpriority);
+static void PSS_DestroyMonIconSprite(struct Sprite *sprite);
+
+// .rodata
+
+const struct OamData gOamData_83B6F2C;
+
+// .text
+
+u8 get_preferred_box(void)
+{
+ return gPokemonStorage.currentBox;
+}
+
+void ResetPSSMonIconSprites(void)
+{
+ u16 i;
+
+ sub_809D51C();
+ for (i = 0; i < 40; i++)
+ gPokemonStorageSystemPtr->unk_10d0[i] = 0;
+ for (i = 0; i < 40; i++)
+ gPokemonStorageSystemPtr->unk_1120[i] = 0;
+ for (i = 0; i < 6; i++)
+ gPokemonStorageSystemPtr->unk_1038[i] = NULL;
+ for (i = 0; i < 30; i++)
+ gPokemonStorageSystemPtr->unk_1050[i] = NULL;
+ gPokemonStorageSystemPtr->unk_1034 = NULL;
+ gPokemonStorageSystemPtr->unk_0d5c = 0;
+}
+
+void sub_8098BF0(void)
+{
+ u32 personality = GetMonData(&gPokemonStorageSystemPtr->unk_25b4, MON_DATA_PERSONALITY);
+ gPokemonStorageSystemPtr->unk_1034 = PSS_SpawnMonIconSprite(GetMonData(&gPokemonStorageSystemPtr->unk_25b4, MON_DATA_SPECIES2), personality, 0, 0, 1, 7);
+ gPokemonStorageSystemPtr->unk_1034->callback = sub_80999C4;
+}
+
+void SpawnBoxIconSprites(u8 boxId)
+{
+ struct BoxPokemon *box = gPokemonStorage.boxes[boxId];
+ u16 i;
+ u16 k = 0;
+ for (i = 0; i < 5; i++)
+ {
+ u16 j;
+ for (j = 0; j < 6; j++)
+ {
+ u16 species = GetBoxMonData(box, MON_DATA_SPECIES2);
+ if (species != SPECIES_NONE)
+ gPokemonStorageSystemPtr->unk_1050[k] = PSS_SpawnMonIconSprite(species, GetBoxMonData(box, MON_DATA_PERSONALITY), 24 * j + 0x64, 24 * i + 0x2c, 2, 18 - j);
+ else
+ gPokemonStorageSystemPtr->unk_1050[k] = NULL;
+ box++;
+ k++;
+ }
+ }
+}
+
+void sub_8098D20(u8 monId)
+{
+ struct BoxPokemon *mon = gPokemonStorage.boxes[get_preferred_box()] + monId;
+ u16 species = GetBoxMonData(mon, MON_DATA_SPECIES2);
+ if (species != SPECIES_NONE)
+ {
+ s16 x = 24 * (monId % 6) + 0x64;
+ s16 y = 24 * (monId / 6) + 0x2c;
+ gPokemonStorageSystemPtr->unk_1050[monId] = PSS_SpawnMonIconSprite(species, GetBoxMonData(mon, MON_DATA_PERSONALITY), x, y, 2, 18 - (monId % 6));
+ }
+}
+
+static void sub_8098DE0(s16 a0)
+{
+ u16 monId;
+ for (monId = 0; monId < 30; monId++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1050[monId])
+ {
+ gPokemonStorageSystemPtr->unk_1050[monId]->data[2] = a0;
+ gPokemonStorageSystemPtr->unk_1050[monId]->data[4] = 1;
+ gPokemonStorageSystemPtr->unk_1050[monId]->callback = sub_8098E68;
+ }
+ }
+}
+
+static void sub_8098E24(struct Sprite *sprite)
+{
+ if (sprite->data[1] != 0)
+ {
+ sprite->data[1]--;
+ sprite->pos1.x += sprite->data[2];
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_1178--;
+ sprite->pos1.x = sprite->data[3];
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+static void sub_8098E68(struct Sprite *sprite)
+{
+ if (sprite->data[4] != 0)
+ {
+ sprite->data[4]--;
+ }
+ else
+ {
+ sprite->pos1.x += sprite->data[2];
+ sprite->data[5] = sprite->pos1.x + sprite->pos2.x;
+ if (sprite->data[5] < 0x45 || sprite->data[5] > 0xfb)
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+static void sub_8098EA0(u8 col)
+{
+ u16 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1050[col])
+ {
+ PSS_DestroyMonIconSprite(gPokemonStorageSystemPtr->unk_1050[col]);
+ gPokemonStorageSystemPtr->unk_1050[col] = NULL;
+ }
+ col += 6;
+ }
+}
+
+static u8 sub_8098EE0(u8 col, u16 a1, s16 a2)
+{
+ u16 i;
+ u16 x;
+ u16 y;
+ u8 count;
+ u8 x1;
+ u16 curX;
+
+ y = 0x2c;
+ x = 24 * col + 0x64;
+ curX = x - (a1 + 1) * a2;
+ x1 = 18 - col;
+ count = 0;
+
+ for (i = 0; i < 5; i++)
+ {
+ u16 species = GetBoxMonData(gPokemonStorage.boxes[gPokemonStorageSystemPtr->unk_117d] + col, MON_DATA_SPECIES2);
+ if (species != SPECIES_NONE)
+ {
+ gPokemonStorageSystemPtr->unk_1050[col] = PSS_SpawnMonIconSprite(species, GetBoxMonData(gPokemonStorage.boxes[gPokemonStorageSystemPtr->unk_117d] + col, MON_DATA_PERSONALITY), curX, y, 2, x1);
+ if (gPokemonStorageSystemPtr->unk_1050[col])
+ {
+ gPokemonStorageSystemPtr->unk_1050[col]->data[1] = a1;
+ gPokemonStorageSystemPtr->unk_1050[col]->data[2] = a2;
+ gPokemonStorageSystemPtr->unk_1050[col]->data[3] = x;
+ gPokemonStorageSystemPtr->unk_1050[col]->callback = sub_8098E24;
+ count++;
+ }
+ }
+ col += 6;
+ y += 24;
+ }
+ return count;
+}
+
+void sub_809900C(u8 a0, s8 a1)
+{
+ gPokemonStorageSystemPtr->unk_117c = 0;
+ gPokemonStorageSystemPtr->unk_117d = a0;
+ gPokemonStorageSystemPtr->unk_117b = a1;
+ gPokemonStorageSystemPtr->unk_1172 = 32;
+ gPokemonStorageSystemPtr->unk_1176 = -6 * a1;
+ gPokemonStorageSystemPtr->unk_1178 = 0;
+ if (a1 > 0)
+ gPokemonStorageSystemPtr->unk_117a = 0;
+ else
+ gPokemonStorageSystemPtr->unk_117a = 5;
+ gPokemonStorageSystemPtr->unk_1174 = 24 * gPokemonStorageSystemPtr->unk_117a + 0x64;
+ sub_8098DE0(gPokemonStorageSystemPtr->unk_1176);
+}
+
+bool8 sub_80990AC(void)
+{
+ if (gPokemonStorageSystemPtr->unk_1172)
+ gPokemonStorageSystemPtr->unk_1172--;
+ switch (gPokemonStorageSystemPtr->unk_117c)
+ {
+ case 0:
+ gPokemonStorageSystemPtr->unk_1174 += gPokemonStorageSystemPtr->unk_1176;
+ if (gPokemonStorageSystemPtr->unk_1174 < 0x41 || gPokemonStorageSystemPtr->unk_1174 > 0xfb)
+ {
+ sub_8098EA0(gPokemonStorageSystemPtr->unk_117a);
+ gPokemonStorageSystemPtr->unk_1174 += 24 * gPokemonStorageSystemPtr->unk_117b;
+ gPokemonStorageSystemPtr->unk_117c++;
+ }
+ break;
+ case 1:
+ gPokemonStorageSystemPtr->unk_1174 += gPokemonStorageSystemPtr->unk_1176;
+ gPokemonStorageSystemPtr->unk_1178 += sub_8098EE0(gPokemonStorageSystemPtr->unk_117a, gPokemonStorageSystemPtr->unk_1172, gPokemonStorageSystemPtr->unk_1176);
+ if ((gPokemonStorageSystemPtr->unk_117b > 0 && gPokemonStorageSystemPtr->unk_117a == 5) || (gPokemonStorageSystemPtr->unk_117b < 0 && gPokemonStorageSystemPtr->unk_117a == 0))
+ {
+ gPokemonStorageSystemPtr->unk_117c++;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_117a += gPokemonStorageSystemPtr->unk_117b;
+ gPokemonStorageSystemPtr->unk_117c = 0;
+ }
+ break;
+ case 2:
+ if (gPokemonStorageSystemPtr->unk_1178 == 0)
+ {
+ gPokemonStorageSystemPtr->unk_1172++;
+ return FALSE;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_8099200(bool8 a0)
+{
+ u16 count;
+ u16 i;
+ u16 species = GetMonData(gPlayerParty + 0, MON_DATA_SPECIES2);
+ u32 personality = GetMonData(gPlayerParty + 0, MON_DATA_PERSONALITY);
+ gPokemonStorageSystemPtr->unk_1038[0] = PSS_SpawnMonIconSprite(species, personality, 0x68, 0x40, 1, 11);
+ count = 1;
+ for (i = 1; i < PARTY_SIZE; i++)
+ {
+ species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES2);
+ if (species != SPECIES_NONE)
+ {
+ personality = GetMonData(gPlayerParty + i, MON_DATA_PERSONALITY);
+ gPokemonStorageSystemPtr->unk_1038[i] = PSS_SpawnMonIconSprite(species, personality, 0x98, (i - 1) * 24 + 0x10, 1, 11);
+ count++;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_1038[i] = NULL;
+ }
+ }
+ if (!a0)
+ {
+ for (i = 0; i < count; i++)
+ {
+ // this routine assumes party_compaction has been called
+ gPokemonStorageSystemPtr->unk_1038[i]->pos1.y -= 0xa0;
+ gPokemonStorageSystemPtr->unk_1038[i]->invisible = TRUE;
+ }
+ }
+}
+
+void sub_8099310(void)
+{
+ u16 i;
+ u16 count;
+
+ gPokemonStorageSystemPtr->unk_1171 = 0;
+ for (i = 0, count = 0; i < PARTY_SIZE; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1038[i])
+ {
+ if (i != count)
+ {
+ sub_8099388(gPokemonStorageSystemPtr->unk_1038[i], count);
+ gPokemonStorageSystemPtr->unk_1038[i] = NULL;
+ gPokemonStorageSystemPtr->unk_1171++;
+ }
+ count++;
+ }
+ }
+}
+
+u8 sub_8099374(void)
+{
+ return gPokemonStorageSystemPtr->unk_1171;
+}
+
+static void sub_8099388(struct Sprite *sprite, u16 a1)
+{
+ s16 r3;
+ s16 r4;
+
+ sprite->data[1] = a1;
+ if (a1 == 0)
+ {
+ r3 = 0x68;
+ r4 = 0x40;
+ }
+ else
+ {
+ r3 = 0x98;
+ r4 = 24 * (a1 - 1) + 0x10;
+ }
+ sprite->data[2] = sprite->pos1.x << 3;
+ sprite->data[3] = sprite->pos1.y << 3;
+ sprite->data[4] = (r3 * 8 - sprite->data[2]) / 8;
+ sprite->data[5] = (r4 * 8 - sprite->data[3]) / 8;
+ sprite->data[6] = 8;
+ sprite->callback = sub_80993F4;
+}
+
+static void sub_80993F4(struct Sprite *sprite)
+{
+ if (sprite->data[6])
+ {
+ sprite->data[2] += sprite->data[4];
+ sprite->data[3] += sprite->data[5];
+ sprite->pos1.x = sprite->data[2] >> 3;
+ sprite->pos1.y = sprite->data[3] >> 3;
+ sprite->data[6]--;
+ }
+ else
+ {
+ if (sprite->data[1] == 0)
+ {
+ sprite->pos1.x = 0x68;
+ sprite->pos1.y = 0x40;
+ }
+ else
+ {
+ sprite->pos1.x = 0x98;
+ sprite->pos1.y = (sprite->data[1] - 1) * 24 + 0x10;
+ }
+ sprite->callback = SpriteCallbackDummy;
+ gPokemonStorageSystemPtr->unk_1038[sprite->data[1]] = sprite;
+ gPokemonStorageSystemPtr->unk_1171--;
+ }
+}
+
+void sub_8099480(void)
+{
+ if (gPokemonStorageSystemPtr->unk_1034)
+ {
+ PSS_DestroyMonIconSprite(gPokemonStorageSystemPtr->unk_1034);
+ gPokemonStorageSystemPtr->unk_1034 = NULL;
+ }
+}
+
+void sub_80994A8(s16 y)
+{
+ u16 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1038[i])
+ {
+ s16 yy;
+ gPokemonStorageSystemPtr->unk_1038[i]->pos1.y += y;
+ yy = gPokemonStorageSystemPtr->unk_1038[i]->pos1.y + gPokemonStorageSystemPtr->unk_1038[i]->pos2.y + gPokemonStorageSystemPtr->unk_1038[i]->centerToCornerVecY;
+ if (yy < -0x10 || yy > 0xb0)
+ gPokemonStorageSystemPtr->unk_1038[i]->invisible = TRUE;
+ else
+ gPokemonStorageSystemPtr->unk_1038[i]->invisible = FALSE;
+ }
+ }
+}
+
+void sub_8099520(u8 a0)
+{
+ if (gPokemonStorageSystemPtr->unk_1038[a0])
+ {
+ PSS_DestroyMonIconSprite(gPokemonStorageSystemPtr->unk_1038[a0]);
+ gPokemonStorageSystemPtr->unk_1038[a0] = NULL;
+ }
+}
+
+void sub_809954C(void)
+{
+ u16 i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1038[i])
+ {
+ PSS_DestroyMonIconSprite(gPokemonStorageSystemPtr->unk_1038[i]);
+ gPokemonStorageSystemPtr->unk_1038[i] = NULL;
+ }
+ }
+}
+
+void sub_8099584(u8 a0, u8 a1)
+{
+ if (a0 == 0)
+ {
+ gPokemonStorageSystemPtr->unk_1034 = gPokemonStorageSystemPtr->unk_1038[a1];
+ gPokemonStorageSystemPtr->unk_1038[a1] = NULL;
+ }
+ else if (a0 == 1)
+ {
+ gPokemonStorageSystemPtr->unk_1034 = gPokemonStorageSystemPtr->unk_1050[a1];
+ gPokemonStorageSystemPtr->unk_1050[a1] = NULL;
+ }
+ else
+ {
+ return;
+ }
+ gPokemonStorageSystemPtr->unk_1034->callback = sub_80999C4;
+ gPokemonStorageSystemPtr->unk_1034->oam.priority = 1;
+ gPokemonStorageSystemPtr->unk_1034->subpriority = 7;
+}
+
+void sub_809960C(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ {
+ gPokemonStorageSystemPtr->unk_1038[a1] = gPokemonStorageSystemPtr->unk_1034;
+ gPokemonStorageSystemPtr->unk_1038[a1]->oam.priority = 1;
+ gPokemonStorageSystemPtr->unk_1038[a1]->subpriority = 11;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_1050[a1] = gPokemonStorageSystemPtr->unk_1034;
+ gPokemonStorageSystemPtr->unk_1050[a1]->oam.priority = 2;
+ gPokemonStorageSystemPtr->unk_1050[a1]->subpriority = 18 - (a1 % 6);
+ }
+ gPokemonStorageSystemPtr->unk_1034->callback = SpriteCallbackDummy;
+ gPokemonStorageSystemPtr->unk_1034 = NULL;
+}
+
+void sub_80996B0(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ gPokemonStorageSystemPtr->unk_10c8 = gPokemonStorageSystemPtr->unk_1038 + a1;
+ else
+ gPokemonStorageSystemPtr->unk_10c8 = gPokemonStorageSystemPtr->unk_1050 + a1;
+ gPokemonStorageSystemPtr->unk_1034->callback = SpriteCallbackDummy;
+ gPokemonStorageSystemPtr->unk_1170 = 0;
+}
+
+bool8 sub_809971C(void)
+{
+ if (gPokemonStorageSystemPtr->unk_1170 == 16)
+ return FALSE;
+ gPokemonStorageSystemPtr->unk_1170++;
+ if (gPokemonStorageSystemPtr->unk_1170 & 1)
+ {
+ (*gPokemonStorageSystemPtr->unk_10c8)->pos1.y--;
+ gPokemonStorageSystemPtr->unk_1034->pos1.y++;
+ }
+ (*gPokemonStorageSystemPtr->unk_10c8)->pos2.x = gSineTable[gPokemonStorageSystemPtr->unk_1170 * 8] / 16;
+ gPokemonStorageSystemPtr->unk_1034->pos2.x = -(gSineTable[gPokemonStorageSystemPtr->unk_1170 * 8] / 16);
+ if (gPokemonStorageSystemPtr->unk_1170 == 8)
+ {
+ gPokemonStorageSystemPtr->unk_1034->oam.priority = (*gPokemonStorageSystemPtr->unk_10c8)->oam.priority;
+ gPokemonStorageSystemPtr->unk_1034->subpriority = (*gPokemonStorageSystemPtr->unk_10c8)->subpriority;
+ (*gPokemonStorageSystemPtr->unk_10c8)->oam.priority = 1;
+ (*gPokemonStorageSystemPtr->unk_10c8)->subpriority = 7;
+ }
+ if (gPokemonStorageSystemPtr->unk_1170 == 16)
+ {
+ struct Sprite *sprite = gPokemonStorageSystemPtr->unk_1034;
+ gPokemonStorageSystemPtr->unk_1034 = *(gPokemonStorageSystemPtr->unk_10c8);
+ (*gPokemonStorageSystemPtr->unk_10c8) = sprite;
+ gPokemonStorageSystemPtr->unk_1034->callback = sub_80999C4;
+ (*gPokemonStorageSystemPtr->unk_10c8)->callback = SpriteCallbackDummy;
+ }
+ return TRUE;
+}
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83B6F5C[];
+
+void sub_809981C(u8 mode, u8 idx)
+{
+ switch (mode)
+ {
+ case 0:
+ gPokemonStorageSystemPtr->unk_10cc = gPokemonStorageSystemPtr->unk_1038 + idx;
+ break;
+ case 1:
+ gPokemonStorageSystemPtr->unk_10cc = gPokemonStorageSystemPtr->unk_1050 + idx;
+ break;
+ case 2:
+ gPokemonStorageSystemPtr->unk_10cc = &gPokemonStorageSystemPtr->unk_1034;
+ break;
+ default:
+ return;
+ }
+ if (*gPokemonStorageSystemPtr->unk_10cc)
+ {
+ InitSpriteAffineAnim(*gPokemonStorageSystemPtr->unk_10cc);
+ (*gPokemonStorageSystemPtr->unk_10cc)->oam.affineMode = ST_OAM_AFFINE_NORMAL;
+ (*gPokemonStorageSystemPtr->unk_10cc)->affineAnims = gSpriteAffineAnimTable_83B6F5C;
+ StartSpriteAffineAnim(*gPokemonStorageSystemPtr->unk_10cc, 0);
+ }
+}
+
+bool8 sub_80998D8(void)
+{
+ if (*gPokemonStorageSystemPtr->unk_10cc == NULL || (*gPokemonStorageSystemPtr->unk_10cc)->invisible)
+ return FALSE;
+ if ((*gPokemonStorageSystemPtr->unk_10cc)->affineAnimEnded)
+ {
+ (*gPokemonStorageSystemPtr->unk_10cc)->invisible = TRUE;
+ }
+ return TRUE;
+}
+
+void sub_8099920(void)
+{
+ if (*gPokemonStorageSystemPtr->unk_10cc)
+ {
+ FreeOamMatrix((*gPokemonStorageSystemPtr->unk_10cc)->oam.matrixNum);
+ PSS_DestroyMonIconSprite(*gPokemonStorageSystemPtr->unk_10cc);
+ *gPokemonStorageSystemPtr->unk_10cc = NULL;
+ }
+}
+
+void sub_8099958(void)
+{
+ if (*gPokemonStorageSystemPtr->unk_10cc)
+ {
+ (*gPokemonStorageSystemPtr->unk_10cc)->invisible = FALSE;
+ StartSpriteAffineAnim(*gPokemonStorageSystemPtr->unk_10cc, 1);
+ }
+}
+
+bool8 sub_8099990(void)
+{
+ if (gPokemonStorageSystemPtr->unk_10cc == NULL)
+ return FALSE;
+ if ((*gPokemonStorageSystemPtr->unk_10cc)->affineAnimEnded)
+ gPokemonStorageSystemPtr->unk_10cc = NULL;
+ return TRUE;
+}
+
+static void sub_80999C4(struct Sprite *sprite)
+{
+ sprite->pos1.x = gPokemonStorageSystemPtr->unk_11c0->pos1.x;
+ sprite->pos1.y = gPokemonStorageSystemPtr->unk_11c0->pos1.y + gPokemonStorageSystemPtr->unk_11c0->pos2.y + 4;
+}
+
+static u16 PSS_LoadSpeciesIconGfx(u16 a0)
+{
+ u16 i;
+ u16 retval;
+
+ for (i = 0; i < 40; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1120[i] == a0)
+ break;
+ }
+ if (i == 40)
+ {
+ for (i = 0; i < 40; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1120[i] == 0)
+ break;
+ }
+ }
+ if (i != 40)
+ {
+ gPokemonStorageSystemPtr->unk_1120[i] = a0;
+ gPokemonStorageSystemPtr->unk_10d0[i]++;
+ retval = i * 16;
+ CpuCopy32(gMonIconTable[a0], BG_CHAR_ADDR(4) + 32 * retval, 0x200);
+ return retval;
+ }
+ return 0xFFFF;
+}
+
+static void PSS_ForgetSpeciesIcon(u16 a0)
+{
+ u16 i;
+
+ for (i = 0; i < 40; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_1120[i] == a0)
+ {
+ if (--gPokemonStorageSystemPtr->unk_10d0[i] == 0)
+ gPokemonStorageSystemPtr->unk_1120[i] = 0;
+ break;
+ }
+ }
+}
+
+static struct Sprite *PSS_SpawnMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 priority, u8 subpriority)
+{
+ struct SpriteTemplate template = {
+ 0x000f,
+ 0xdac0,
+ &gOamData_83B6F2C,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+ };
+ u16 tileNum;
+ u8 spriteId;
+
+ species = mon_icon_convert_unown_species_id(species, personality);
+ template.paletteTag = 0xdac0 + gMonIconPaletteIndices[species];
+ tileNum = PSS_LoadSpeciesIconGfx(species);
+ if (tileNum == 0xFFFF)
+ return NULL;
+ spriteId = CreateSprite(&template, x, y, subpriority);
+ if (spriteId == MAX_SPRITES)
+ {
+ PSS_ForgetSpeciesIcon(species);
+ return NULL;
+ }
+ gSprites[spriteId].oam.tileNum = tileNum;
+ gSprites[spriteId].oam.priority = priority;
+ gSprites[spriteId].data[0] = species;
+ return gSprites + spriteId;
+}
+
+static void PSS_DestroyMonIconSprite(struct Sprite *sprite)
+{
+ PSS_ForgetSpeciesIcon(sprite->data[0]);
+ DestroySprite(sprite);
+}
+
+const struct OamData gOamData_83B6F2C = {
+ .size = 2
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83B6F34[] = {
+ AFFINEANIMCMD_FRAME(-2, -2, 0, 120),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd gSpriteAffineAnim_83B6F44[] = {
+ AFFINEANIMCMD_FRAME(16, 16, 0, 0),
+ AFFINEANIMCMD_FRAME(16, 16, 0, 15),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const gSpriteAffineAnimTable_83B6F5C[] = {
+ gSpriteAffineAnim_83B6F34,
+ gSpriteAffineAnim_83B6F44
+};
diff --git a/src/pokemon/pokemon_storage_system_4.c b/src/pokemon/pokemon_storage_system_4.c
new file mode 100644
index 000000000..19fddc0f7
--- /dev/null
+++ b/src/pokemon/pokemon_storage_system_4.c
@@ -0,0 +1,2849 @@
+
+// Includes
+#include "global.h"
+#include "ewram.h"
+#include "data2.h"
+#include "constants/moves.h"
+#include "constants/species.h"
+#include "palette.h"
+#include "string_util.h"
+#include "text.h"
+#include "menu.h"
+#include "item.h"
+#include "pokemon_summary_screen.h"
+#include "pokemon_storage_system.h"
+
+// Static type declarations
+
+struct WallpaperTable {
+ const u8 *tiles;
+ u32 size;
+ const u8 *tileMap;
+ const u16 *palettes;
+};
+
+// Static RAM declarations
+
+EWRAM_DATA struct Pokemon gUnknown_02038480 = {};
+#if DEBUG
+EWRAM_DATA u32 unk_2038790 = 0;
+EWRAM_DATA u32 unk_2038794 = 0;
+EWRAM_DATA u32 unk_2038798 = 0;
+#endif
+EWRAM_DATA s8 gUnknown_020384E4 = 0;
+EWRAM_DATA s8 gUnknown_020384E5 = 0;
+EWRAM_DATA bool8 gUnknown_020384E6 = FALSE;
+EWRAM_DATA u8 gUnknown_020384E7 = 0;
+EWRAM_DATA u8 gUnknown_020384E8 = 0;
+EWRAM_DATA u8 gUnknown_020384E9 = 0;
+EWRAM_DATA u8 gUnknown_020384EA = 0;
+
+// Static ROM declarations
+
+void sub_809900C(u8 boxId, s8 a1);
+s8 sub_8099D90(u8 boxId);
+void sub_8099EB0(u8 boxId, s8 a1);
+void sub_8099F58(u16 *vdest, const u16 *src, s8 a2, u8 a3);
+void sub_809A14C(u16 *vdest);
+void sub_809A23C(u8 boxId);
+void sub_809A3D0(u8 boxId, s8 a1);
+void sub_809A598(void);
+void sub_809A5E8(struct Sprite *sprite);
+void sub_809A61C(struct Sprite *sprite);
+void sub_809A654(void);
+s16 sub_809A6D0(u8 width);
+void sub_809A6DC(void);
+void sub_809A774(s8 a0);
+void sub_809A810(void);
+void sub_809AFB8(void);
+void sub_809A8C8(struct Sprite *sprite);
+bool8 sub_809B150(void);
+bool8 sub_809B1D8(void);
+bool8 sub_809B24C(void);
+bool8 sub_809B324(void);
+bool8 sub_809B358(void);
+void sub_809B384(void);
+void sub_809B3E0(void);
+void sub_809B44C(u8 a0, u8 a1);
+void diegohint2(u8 a0, u8 a1);
+void sub_809B548(u8 a0, u8 a1);
+void diegohint1(u8 a0, u8 a1);
+bool8 sub_809BF2C(void);
+void sub_809BF74(void);
+void sub_809C028(void);
+void sub_809C04C(void *pokemon, u8 a1);
+bool8 sub_809CAB0(void);
+void sub_809CC04(void);
+void sub_809CD88(void);
+s8 sub_809CE4C(u8 a0);
+
+// .rodata
+
+const u16 gWallpaperPalettes_Forest[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Forest_2[] = INCBIN_U16("graphics/pokemon_storage/forest_frame.gbapal");
+const u16 gWallpaperPalettes_Forest_2_3[] = INCBIN_U16("graphics/pokemon_storage/forest_bg.gbapal");
+
+const u8 gWallpaperTiles_Forest[] = INCBIN_U8("graphics/pokemon_storage/forest.4bpp.lz");
+
+const u8 gWallpaperTilemap_Forest[] = INCBIN_U8("graphics/pokemon_storage/forest.bin.lz");
+
+const u16 gWallpaperPalettes_City[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_City_2[] = INCBIN_U16("graphics/pokemon_storage/city_frame.gbapal");
+const u16 gWallpaperPalettes_City_2_3[] = INCBIN_U16("graphics/pokemon_storage/city_bg.gbapal");
+
+const u8 gWallpaperTiles_City[] = INCBIN_U8("graphics/pokemon_storage/city.4bpp.lz");
+
+const u8 gWallpaperTilemap_City[] = INCBIN_U8("graphics/pokemon_storage/city.bin.lz");
+
+const u16 gWallpaperPalettes_Desert[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Desert_2[] = INCBIN_U16("graphics/pokemon_storage/desert_frame.gbapal");
+const u16 gWallpaperPalettes_Desert_2_3[] = INCBIN_U16("graphics/pokemon_storage/desert_bg.gbapal");
+
+const u8 gWallpaperTiles_Desert[] = INCBIN_U8("graphics/pokemon_storage/desert.4bpp.lz");
+
+const u8 gWallpaperTilemap_Desert[] = INCBIN_U8("graphics/pokemon_storage/desert.bin.lz");
+
+const u16 gWallpaperPalettes_Savanna[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Savanna_2[] = INCBIN_U16("graphics/pokemon_storage/savanna_frame.gbapal");
+const u16 gWallpaperPalettes_Savanna_2_3[] = INCBIN_U16("graphics/pokemon_storage/savanna_bg.gbapal");
+
+const u8 gWallpaperTiles_Savanna[] = INCBIN_U8("graphics/pokemon_storage/savanna.4bpp.lz");
+
+const u8 gWallpaperTilemap_Savanna[] = INCBIN_U8("graphics/pokemon_storage/savanna.bin.lz");
+
+const u16 gWallpaperPalettes_Crag[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Crag_2[] = INCBIN_U16("graphics/pokemon_storage/crag_frame.gbapal");
+const u16 gWallpaperPalettes_Crag_2_3[] = INCBIN_U16("graphics/pokemon_storage/crag_bg.gbapal");
+
+const u8 gWallpaperTiles_Crag[] = INCBIN_U8("graphics/pokemon_storage/crag.4bpp.lz");
+
+const u8 gWallpaperTilemap_Crag[] = INCBIN_U8("graphics/pokemon_storage/crag.bin.lz");
+
+const u16 gWallpaperPalettes_Volcano[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Volcano_2[] = INCBIN_U16("graphics/pokemon_storage/volcano_frame.gbapal");
+const u16 gWallpaperPalettes_Volcano_2_3[] = INCBIN_U16("graphics/pokemon_storage/volcano_bg.gbapal");
+
+const u8 gWallpaperTiles_Volcano[] = INCBIN_U8("graphics/pokemon_storage/volcano.4bpp.lz");
+const u32 filler_83b871c = 0; // needed to match but otherwise garbage
+
+const u8 gWallpaperTilemap_Volcano[] = INCBIN_U8("graphics/pokemon_storage/volcano.bin.lz");
+
+const u16 gWallpaperPalettes_Snow[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Snow_2[] = INCBIN_U16("graphics/pokemon_storage/snow_frame.gbapal");
+const u16 gWallpaperPalettes_Snow_2_3[] = INCBIN_U16("graphics/pokemon_storage/snow_bg.gbapal");
+
+const u8 gWallpaperTiles_Snow[] = INCBIN_U8("graphics/pokemon_storage/snow.4bpp.lz");
+
+const u8 gWallpaperTilemap_Snow[] = INCBIN_U8("graphics/pokemon_storage/snow.bin.lz");
+
+const u16 gWallpaperPalettes_Cave[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Cave_2[] = INCBIN_U16("graphics/pokemon_storage/cave_frame.gbapal");
+const u16 gWallpaperPalettes_Cave_2_3[] = INCBIN_U16("graphics/pokemon_storage/cave_bg.gbapal");
+
+const u8 gWallpaperTiles_Cave[] = INCBIN_U8("graphics/pokemon_storage/cave.4bpp.lz");
+
+const u8 gWallpaperTilemap_Cave[] = INCBIN_U8("graphics/pokemon_storage/cave.bin.lz");
+
+const u16 gWallpaperPalettes_Beach[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Beach_2[] = INCBIN_U16("graphics/pokemon_storage/beach_frame.gbapal");
+const u16 gWallpaperPalettes_Beach_2_3[] = INCBIN_U16("graphics/pokemon_storage/beach_bg.gbapal");
+
+const u8 gWallpaperTiles_Beach[] = INCBIN_U8("graphics/pokemon_storage/beach.4bpp.lz");
+
+const u8 gWallpaperTilemap_Beach[] = INCBIN_U8("graphics/pokemon_storage/beach.bin.lz");
+
+const u16 gWallpaperPalettes_Seafloor[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Seafloor_2[] = INCBIN_U16("graphics/pokemon_storage/seafloor_frame.gbapal");
+const u16 gWallpaperPalettes_Seafloor_2_3[] = INCBIN_U16("graphics/pokemon_storage/seafloor_bg.gbapal");
+
+const u8 gWallpaperTiles_Seafloor[] = INCBIN_U8("graphics/pokemon_storage/seafloor.4bpp.lz");
+
+const u8 gWallpaperTilemap_Seafloor[] = INCBIN_U8("graphics/pokemon_storage/seafloor.bin.lz");
+
+const u16 gWallpaperPalettes_River[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_River_2[] = INCBIN_U16("graphics/pokemon_storage/river_frame.gbapal");
+const u16 gWallpaperPalettes_River_2_3[] = INCBIN_U16("graphics/pokemon_storage/river_bg.gbapal");
+
+const u8 gWallpaperTiles_River[] = INCBIN_U8("graphics/pokemon_storage/river.4bpp.lz");
+
+const u8 gWallpaperTilemap_River[] = INCBIN_U8("graphics/pokemon_storage/river.bin.lz");
+
+const u16 gWallpaperPalettes_Sky[] = INCBIN_U16("graphics/pokemon_storage/box_bg1.gbapal");
+const u16 gWallpaperPalettes_Sky_2[] = INCBIN_U16("graphics/pokemon_storage/sky_frame.gbapal");
+const u16 gWallpaperPalettes_Sky_2_3[] = INCBIN_U16("graphics/pokemon_storage/sky_bg.gbapal");
+
+const u8 gWallpaperTiles_Sky[] = INCBIN_U8("graphics/pokemon_storage/sky.4bpp.lz");
+
+const u8 gWallpaperTilemap_Sky[] = INCBIN_U8("graphics/pokemon_storage/sky.bin.lz");
+
+const u16 gWallpaperPalettes_Polkadot[] = INCBIN_U16("graphics/pokemon_storage/box_bg2.gbapal");
+const u16 gWallpaperPalettes_Polkadot_2[] = INCBIN_U16("graphics/pokemon_storage/polkadot_frame.gbapal");
+const u16 gWallpaperPalettes_Polkadot_2_3[] = INCBIN_U16("graphics/pokemon_storage/polkadot_bg.gbapal");
+
+const u8 gWallpaperTiles_Polkadot[] = INCBIN_U8("graphics/pokemon_storage/polkadot.4bpp.lz");
+
+const u8 gWallpaperTilemap_Polkadot[] = INCBIN_U8("graphics/pokemon_storage/polkadot.bin.lz");
+
+const u16 gWallpaperPalettes_Pokecenter[] = INCBIN_U16("graphics/pokemon_storage/box_bg2.gbapal");
+const u16 gWallpaperPalettes_Pokecenter_2[] = INCBIN_U16("graphics/pokemon_storage/pokecenter_frame.gbapal");
+const u16 gWallpaperPalettes_Pokecenter_2_3[] = INCBIN_U16("graphics/pokemon_storage/pokecenter_bg.gbapal");
+
+const u8 gWallpaperTiles_Pokecenter[] = INCBIN_U8("graphics/pokemon_storage/pokecenter.4bpp.lz");
+
+const u8 gWallpaperTilemap_Pokecenter[] = INCBIN_U8("graphics/pokemon_storage/pokecenter.bin.lz");
+
+const u16 gWallpaperPalettes_Machine[] = INCBIN_U16("graphics/pokemon_storage/box_bg3.gbapal");
+const u16 gWallpaperPalettes_Machine_2[] = INCBIN_U16("graphics/pokemon_storage/machine_frame.gbapal");
+const u16 gWallpaperPalettes_Machine_2_3[] = INCBIN_U16("graphics/pokemon_storage/machine_bg.gbapal");
+
+const u8 gWallpaperTiles_Machine[] = INCBIN_U8("graphics/pokemon_storage/machine.4bpp.lz");
+
+const u8 gWallpaperTilemap_Machine[] = INCBIN_U8("graphics/pokemon_storage/machine.bin.lz");
+
+const u16 gWallpaperPalettes_Plain[] = INCBIN_U16("graphics/pokemon_storage/box_bg4.gbapal");
+const u16 gWallpaperPalettes_Plain_2[] = INCBIN_U16("graphics/pokemon_storage/plain_frame.gbapal");
+const u16 gWallpaperPalettes_Plain_2_3[] = INCBIN_U16("graphics/pokemon_storage/plain_bg.gbapal");
+
+const u8 gWallpaperTiles_Plain[] = INCBIN_U8("graphics/pokemon_storage/plain.4bpp.lz");
+
+const u8 gWallpaperTilemap_Plain[] = INCBIN_U8("graphics/pokemon_storage/plain.bin.lz");
+
+const u16 gUnknown_083BAEF8[] = INCBIN_U16("graphics/unused/tilemap_3BAEF8.bin");
+
+const u16 gUnknown_083BB0A8[][2] = {
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF},
+ {0x1CE7, 0x7FFF}
+};
+
+const struct WallpaperTable gWallpaperTable[] = {
+ {gWallpaperTiles_Forest, 0x3D0, gWallpaperTilemap_Forest, gWallpaperPalettes_Forest}, // Forest
+ {gWallpaperTiles_City, 0x208, gWallpaperTilemap_City, gWallpaperPalettes_City}, // City
+ {gWallpaperTiles_Desert, 0x2EC, gWallpaperTilemap_Desert, gWallpaperPalettes_Desert}, // Desert
+ {gWallpaperTiles_Savanna, 0x220, gWallpaperTilemap_Savanna, gWallpaperPalettes_Savanna}, // Savanna
+ {gWallpaperTiles_Crag, 0x350, gWallpaperTilemap_Crag, gWallpaperPalettes_Crag}, // Crag
+ {gWallpaperTiles_Volcano, 0x334, gWallpaperTilemap_Volcano, gWallpaperPalettes_Volcano}, // Volcano
+ {gWallpaperTiles_Snow, 0x2B8, gWallpaperTilemap_Snow, gWallpaperPalettes_Snow}, // Snow
+ {gWallpaperTiles_Cave, 0x344, gWallpaperTilemap_Cave, gWallpaperPalettes_Cave}, // Cave
+ {gWallpaperTiles_Beach, 0x384, gWallpaperTilemap_Beach, gWallpaperPalettes_Beach}, // Beach
+ {gWallpaperTiles_Seafloor, 0x2B4, gWallpaperTilemap_Seafloor, gWallpaperPalettes_Seafloor}, // Seafloor
+ {gWallpaperTiles_River, 0x294, gWallpaperTilemap_River, gWallpaperPalettes_River}, // River
+ {gWallpaperTiles_Sky, 0x298, gWallpaperTilemap_Sky, gWallpaperPalettes_Sky}, // Sky
+ {gWallpaperTiles_Polkadot, 0x1FC, gWallpaperTilemap_Polkadot, gWallpaperPalettes_Polkadot}, // Polkadot
+ {gWallpaperTiles_Pokecenter, 0x3A4, gWallpaperTilemap_Pokecenter, gWallpaperPalettes_Pokecenter}, // Pokecenter
+ {gWallpaperTiles_Machine, 0x2F0, gWallpaperTilemap_Machine, gWallpaperPalettes_Machine}, // Machine
+ {gWallpaperTiles_Plain, 0xFC, gWallpaperTilemap_Plain, gWallpaperPalettes_Plain} // Plain
+};
+
+const u16 PCPal_Arrow[] = INCBIN_U16("graphics/pokemon_storage/arrow.gbapal");
+const u8 PCGfx_Arrow[] = INCBIN_U8("graphics/pokemon_storage/arrow.4bpp");
+
+const struct SpriteSheet gUnknown_083BB288 = {PCGfx_Arrow, 0x80, 6};
+const struct SpritePalette gUnknown_083BB290 = {PCPal_Arrow, 0xdacf};
+
+const struct OamData gOamData_83BB298 = {
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 2
+};
+
+const union AnimCmd gSpriteAnim_83BB2A0[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83BB2A8[] = {
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83BB2B0[] = {
+ gSpriteAnim_83BB2A0,
+ gSpriteAnim_83BB2A8
+};
+
+const struct SpriteTemplate gSpriteTemplate_83BB2B8 = {
+ 3,
+ 0xdac8,
+ &gOamData_83BB298,
+ gSpriteAnimTable_83BB2B0,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const struct OamData gOamData_83BB2D0 = {
+ .shape = ST_OAM_V_RECTANGLE,
+ .priority = 2
+};
+
+const union AnimCmd gSpriteAnim_83BB2D8[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd gSpriteAnim_83BB2E0[] = {
+ ANIMCMD_FRAME(2, 5),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const gSpriteAnimTable_83BB2E8[] = {
+ gSpriteAnim_83BB2D8,
+ gSpriteAnim_83BB2E0
+};
+
+const struct SpriteTemplate gSpriteTemplate_83BB2F0 = {
+ 6,
+ 0xdacf,
+ &gOamData_83BB2D0,
+ gSpriteAnimTable_83BB2E8,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_809A8C8
+};
+
+const u16 HandCursorPalette[] = INCBIN_U16("graphics/pokemon_storage/hand_cursor_pal.bin");
+const u16 HandCursorAltPalette[] = INCBIN_U16("graphics/pokemon_storage/hand_cursor_alt_pal.bin");
+const u8 HandCursorTiles[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor.4bpp");
+const u8 HandCursorShadowTiles[] = INCBIN_U8("graphics/pokemon_storage/hand_cursor_shadow.4bpp");
+
+bool8 (*const gUnknown_083BBBC8[])(void) = {
+ sub_809B150,
+ sub_809B1D8,
+ sub_809B24C
+};
+// .text
+
+void sub_8099BF8(u8 boxId)
+{
+ gPokemonStorageSystemPtr->unk_08ba = FALSE;
+ gPokemonStorageSystemPtr->unk_08b4 = 0;
+ DmaFill32(3, 0, BG_SCREEN_ADDR(26), 0x1000);
+ sub_8099EB0(boxId, 0);
+ sub_809A23C(boxId);
+ sub_809A6DC();
+ SpawnBoxIconSprites(boxId);
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_TXT512x256;
+}
+
+void sub_8099C70(u8 whichBox)
+{
+ s8 r4 = sub_8099D90(whichBox);
+ sub_8099EB0(whichBox, r4);
+ gPokemonStorageSystemPtr->unk_08b6 = r4 * 6;
+ gPokemonStorageSystemPtr->unk_08b8 = 0x20;
+ gPokemonStorageSystemPtr->unk_08bb = whichBox;
+ gPokemonStorageSystemPtr->unk_08bc = r4 > 0 ? 0 : 5;
+ gPokemonStorageSystemPtr->unk_08be = r4;
+ gPokemonStorageSystemPtr->unk_08c0 = r4 > 0 ? 0x108 : 0x38;
+ gPokemonStorageSystemPtr->unk_08c2 = r4 > 0 ? 0 : 5;
+ gPokemonStorageSystemPtr->unk_08c4 = r4;
+ gPokemonStorageSystemPtr->unk_08c6 = 0;
+ gPokemonStorageSystemPtr->unk_08c8 = 2;
+ sub_809900C(whichBox, r4);
+ sub_809A3D0(whichBox, r4);
+ sub_809A774(r4);
+}
+
+bool8 sub_8099D34(void)
+{
+ bool8 retVal = sub_80990AC();
+ if (gPokemonStorageSystemPtr->unk_08b8 != 0)
+ {
+ gPokemonStorageSystemPtr->unk_08b4 += gPokemonStorageSystemPtr->unk_08b6;
+ gPokemonStorageSystemPtr->unk_08b4 &= 0x1ff;
+ if (--gPokemonStorageSystemPtr->unk_08b8 == 0)
+ {
+ sub_809A598();
+ sub_809A810();
+ }
+ return TRUE;
+ }
+ return retVal;
+}
+
+s8 sub_8099D90(u8 boxId)
+{
+ u8 curBox = get_preferred_box();
+ u8 i;
+
+ for (i = 0; curBox != boxId; i++)
+ {
+ if (++curBox >= 14)
+ curBox = 0;
+ }
+ return i <= 6 ? 1 : -1;
+}
+
+void sub_8099DCC(u8 wallpaperId)
+{
+ u8 curBox = get_preferred_box();
+ gPokemonStorage.wallpaper[curBox] = wallpaperId;
+ gPokemonStorageSystemPtr->unk_1032 = 0;
+}
+
+bool8 sub_8099E08(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_1032)
+ {
+ case 0:
+ BeginNormalPaletteFade(gPokemonStorageSystemPtr->unk_0d08, 1, 0, 0x10, 0xffff);
+ gPokemonStorageSystemPtr->unk_1032++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ u8 curBox = get_preferred_box();
+ sub_8099EB0(curBox, 0);
+ sub_809A654();
+ BeginNormalPaletteFade(gPokemonStorageSystemPtr->unk_0d08, 1, 0x10, 0, 0xffff);
+ gPokemonStorageSystemPtr->unk_1032++;
+ }
+ break;
+ case 2:
+ if (!UpdatePaletteFade())
+ gPokemonStorageSystemPtr->unk_1032++;
+ break;
+ case 3:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_8099EB0(u8 boxId, s8 a1)
+{
+ const struct WallpaperTable *wallpaperTable;
+
+ if (a1)
+ {
+ gPokemonStorageSystemPtr->unk_08ba = gPokemonStorageSystemPtr->unk_08ba ? FALSE : TRUE;
+ sub_809A14C(BG_SCREEN_ADDR(26));
+ }
+ wallpaperTable = gWallpaperTable +gPokemonStorage.wallpaper[boxId];
+ LoadPalette(wallpaperTable->palettes, gPokemonStorageSystemPtr->unk_08ba * 0x30 + 0x40, 0x60);
+ LZ77UnCompWram(wallpaperTable->tileMap, gPokemonStorageSystemPtr->unk_0d62);
+ sub_8099F58(BG_SCREEN_ADDR(26), gPokemonStorageSystemPtr->unk_0d62, a1, gPokemonStorageSystemPtr->unk_08ba);
+ LZ77UnCompVram(wallpaperTable->tiles, BG_CHAR_ADDR(2) + (gPokemonStorageSystemPtr->unk_08ba << 13));
+}
+
+#ifdef NONMATCHING
+void sub_8099F58(u16 *vdest, const u16 *src, s8 a2, u8 a3)
+{
+ s16 r6;
+ s16 r3;
+ u16 sp0 = a3 << 8;
+ u16 sp4 = (a3 * 3 + 4) << 12;
+ u16 *r4;
+ u16 *r7;
+ u16 i;
+ u16 j;
+ s16 sp8 = ((gPokemonStorageSystemPtr->unk_08b4 >> 3) + 10 + a2 * 24) & 0x3f;
+ if (sp8 < 13)
+ {
+ r6 = 20;
+ r3 = 0;
+ r4 = vdest + sp8 + 0x40;
+ r7 = NULL;
+ }
+ else if (sp8 < 32)
+ {
+ r6 = 32 - sp8;
+ r3 = 20 - r6;
+ r4 = vdest + sp8 + 0x40;
+ r7 = vdest + 0x440;
+ }
+ else if (sp8 < 45)
+ {
+ r6 = 20;
+ r3 = 0;
+ r4 = vdest + sp8 + 0x420;
+ r7 = NULL;
+ }
+ else
+ {
+ r6 = 64 - sp8;
+ r3 = 20 - r6;
+ r4 = vdest + sp8 + 0x420;
+ r7 = vdest + 0x40;
+ }
+ for (i = 0; i < 18; i++)
+ {
+ for (j = 0; j < r6; j++)
+ {
+ u16 tile = ((*src & 0xfff) + sp0) | ((*src & 0xf000) + sp4);
+ r4[j] = tile;
+ src++;
+ }
+ for (j = 0; j < r3; j++)
+ {
+ u16 tile = ((*src & 0xfff) + sp0) | ((*src & 0xf000) + sp4);
+ r7[j] = tile;
+ src++;
+ }
+ r4 += 0x20;
+ r7 += 0x20;
+ }
+ if (a2)
+ {
+ s16 r4_2;
+ u16 *r2;
+ if (a2 > 0)
+ r4_2 = (sp8 + 20) & 0x3f;
+ else
+ r4_2 = (sp8 - 4) & 0x3f;
+ r2 = r4_2 < 0x20 ? vdest + r4_2 + 0x40 : vdest + r4_2 + 0x420;
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 18; j++)
+ {
+ *r2 = 0;
+ r2 += 0x20;
+ }
+ r4_2++;
+ r4_2 &= 0x3f;
+ r2 = r4_2 < 0x20 ? vdest + r4_2 + 0x40 : vdest + r4_2 + 0x420;
+ }
+ }
+}
+#else
+__attribute__((naked)) void sub_8099F58(u16 *vdest, const u16 *src, s8 a2, u8 a3)
+{
+ 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, 0x20\n"
+ "\tmov r9, r0\n"
+ "\tadds r5, r1, 0\n"
+ "\tlsls r2, 24\n"
+ "\tlsls r3, 24\n"
+ "\tlsrs r3, 24\n"
+ "\tlsls r0, r3, 8\n"
+ "\tstr r0, [sp]\n"
+ "\tlsls r0, r3, 1\n"
+ "\tadds r0, r3\n"
+ "\tadds r0, 0x4\n"
+ "\tlsls r0, 28\n"
+ "\tlsrs r0, 16\n"
+ "\tstr r0, [sp, 0x4]\n"
+ "\tldr r0, _08099FB8 @ =gPokemonStorageSystemPtr\n"
+ "\tldr r0, [r0]\n"
+ "\tldr r1, _08099FBC @ =0x000008b4\n"
+ "\tadds r0, r1\n"
+ "\tldrh r1, [r0]\n"
+ "\tlsrs r1, 3\n"
+ "\tadds r1, 0xA\n"
+ "\tlsrs r0, r2, 24\n"
+ "\tmov r8, r0\n"
+ "\tasrs r2, 24\n"
+ "\tlsls r0, r2, 1\n"
+ "\tadds r0, r2\n"
+ "\tlsls r0, 3\n"
+ "\tadds r1, r0\n"
+ "\tmovs r0, 0x3F\n"
+ "\tands r1, r0\n"
+ "\tstr r1, [sp, 0x8]\n"
+ "\tadds r2, r1, 0\n"
+ "\tcmp r2, 0xC\n"
+ "\tbgt _08099FC0\n"
+ "\tmovs r6, 0x14\n"
+ "\tmovs r3, 0\n"
+ "\tlsls r0, r2, 1\n"
+ "\tadds r0, 0x80\n"
+ "\tmov r1, r9\n"
+ "\tadds r4, r1, r0\n"
+ "\tmovs r7, 0\n"
+ "\tb _0809A020\n"
+ "\t.align 2, 0\n"
+ "_08099FB8: .4byte gPokemonStorageSystemPtr\n"
+ "_08099FBC: .4byte 0x000008b4\n"
+ "_08099FC0:\n"
+ "\tcmp r2, 0x1F\n"
+ "\tbgt _08099FE6\n"
+ "\tmovs r0, 0x20\n"
+ "\tsubs r0, r2\n"
+ "\tlsls r0, 16\n"
+ "\tmovs r1, 0x14\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tasrs r0, 16\n"
+ "\tsubs r1, r0\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r3, r1, 16\n"
+ "\tlsls r0, r2, 1\n"
+ "\tadds r0, 0x80\n"
+ "\tmov r2, r9\n"
+ "\tadds r4, r2, r0\n"
+ "\tmovs r7, 0x88\n"
+ "\tlsls r7, 4\n"
+ "\tadd r7, r9\n"
+ "\tb _0809A020\n"
+ "_08099FE6:\n"
+ "\tcmp r2, 0x2C\n"
+ "\tbgt _08099FFE\n"
+ "\tmovs r6, 0x14\n"
+ "\tmovs r3, 0\n"
+ "\tlsls r0, r2, 1\n"
+ "\tmovs r1, 0x84\n"
+ "\tlsls r1, 4\n"
+ "\tadds r0, r1\n"
+ "\tmov r2, r9\n"
+ "\tadds r4, r2, r0\n"
+ "\tmovs r7, 0\n"
+ "\tb _0809A020\n"
+ "_08099FFE:\n"
+ "\tmovs r0, 0x40\n"
+ "\tsubs r0, r2\n"
+ "\tlsls r0, 16\n"
+ "\tmovs r1, 0x14\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tasrs r0, 16\n"
+ "\tsubs r1, r0\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r3, r1, 16\n"
+ "\tlsls r0, r2, 1\n"
+ "\tmovs r1, 0x84\n"
+ "\tlsls r1, 4\n"
+ "\tadds r0, r1\n"
+ "\tmov r2, r9\n"
+ "\tadds r4, r2, r0\n"
+ "\tmov r7, r9\n"
+ "\tadds r7, 0x80\n"
+ "_0809A020:\n"
+ "\tmovs r1, 0\n"
+ "\tmov r0, r8\n"
+ "\tlsls r0, 24\n"
+ "\tstr r0, [sp, 0x14]\n"
+ "\tlsls r0, r6, 16\n"
+ "\tasrs r0, 16\n"
+ "\tmov r8, r0\n"
+ "\tlsls r3, 16\n"
+ "\tstr r3, [sp, 0xC]\n"
+ "\tasrs r2, r3, 16\n"
+ "\tstr r2, [sp, 0x10]\n"
+ "_0809A036:\n"
+ "\tmovs r3, 0\n"
+ "\tadds r0, r4, 0\n"
+ "\tadds r0, 0x40\n"
+ "\tstr r0, [sp, 0x18]\n"
+ "\tadds r2, r7, 0\n"
+ "\tadds r2, 0x40\n"
+ "\tstr r2, [sp, 0x1C]\n"
+ "\tadds r1, 0x1\n"
+ "\tmov r10, r1\n"
+ "\tcmp r3, r8\n"
+ "\tbge _0809A07A\n"
+ "\tldr r0, _0809A0D4 @ =0x00000fff\n"
+ "\tmov r12, r0\n"
+ "\tmovs r6, 0xF0\n"
+ "\tlsls r6, 8\n"
+ "_0809A054:\n"
+ "\tldrh r2, [r5]\n"
+ "\tmov r0, r12\n"
+ "\tands r0, r2\n"
+ "\tldr r1, [sp]\n"
+ "\tadds r0, r1, r0\n"
+ "\tadds r1, r6, 0\n"
+ "\tands r1, r2\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tadds r1, r2, r1\n"
+ "\torrs r1, r0\n"
+ "\tlsls r0, r3, 1\n"
+ "\tadds r0, r4\n"
+ "\tstrh r1, [r0]\n"
+ "\tadds r5, 0x2\n"
+ "\tadds r0, r3, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r3, r0, 16\n"
+ "\tcmp r3, r8\n"
+ "\tblt _0809A054\n"
+ "_0809A07A:\n"
+ "\tmovs r3, 0\n"
+ "\tldr r0, [sp, 0x10]\n"
+ "\tcmp r3, r0\n"
+ "\tbge _0809A0B4\n"
+ "\tldr r1, _0809A0D4 @ =0x00000fff\n"
+ "\tmov r12, r1\n"
+ "\tmovs r6, 0xF0\n"
+ "\tlsls r6, 8\n"
+ "\tldr r2, [sp, 0xC]\n"
+ "\tasrs r4, r2, 16\n"
+ "_0809A08E:\n"
+ "\tldrh r2, [r5]\n"
+ "\tmov r0, r12\n"
+ "\tands r0, r2\n"
+ "\tldr r1, [sp]\n"
+ "\tadds r0, r1, r0\n"
+ "\tadds r1, r6, 0\n"
+ "\tands r1, r2\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tadds r1, r2, r1\n"
+ "\torrs r1, r0\n"
+ "\tlsls r0, r3, 1\n"
+ "\tadds r0, r7\n"
+ "\tstrh r1, [r0]\n"
+ "\tadds r5, 0x2\n"
+ "\tadds r0, r3, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r3, r0, 16\n"
+ "\tcmp r3, r4\n"
+ "\tblt _0809A08E\n"
+ "_0809A0B4:\n"
+ "\tldr r4, [sp, 0x18]\n"
+ "\tldr r7, [sp, 0x1C]\n"
+ "\tmov r1, r10\n"
+ "\tlsls r0, r1, 16\n"
+ "\tlsrs r1, r0, 16\n"
+ "\tcmp r1, 0x11\n"
+ "\tbls _0809A036\n"
+ "\tldr r0, [sp, 0x14]\n"
+ "\tasrs r2, r0, 24\n"
+ "\tcmp r2, 0\n"
+ "\tbeq _0809A13A\n"
+ "\tcmp r2, 0\n"
+ "\tble _0809A0D8\n"
+ "\tldr r1, [sp, 0x8]\n"
+ "\tadds r1, 0x14\n"
+ "\tb _0809A0DC\n"
+ "\t.align 2, 0\n"
+ "_0809A0D4: .4byte 0x00000fff\n"
+ "_0809A0D8:\n"
+ "\tldr r1, [sp, 0x8]\n"
+ "\tsubs r1, 0x4\n"
+ "_0809A0DC:\n"
+ "\tmovs r0, 0x3F\n"
+ "\tands r1, r0\n"
+ "\tadds r4, r1, 0\n"
+ "\tadds r0, r4, 0\n"
+ "\tcmp r0, 0x1F\n"
+ "\tbgt _0809A0EE\n"
+ "\tlsls r0, 1\n"
+ "\tadds r0, 0x80\n"
+ "\tb _0809A0F6\n"
+ "_0809A0EE:\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r2, 0x84\n"
+ "\tlsls r2, 4\n"
+ "\tadds r0, r2\n"
+ "_0809A0F6:\n"
+ "\tmov r1, r9\n"
+ "\tadds r2, r1, r0\n"
+ "\tmovs r3, 0\n"
+ "\tmovs r6, 0\n"
+ "_0809A0FE:\n"
+ "\tmovs r1, 0\n"
+ "\tadds r5, r3, 0x1\n"
+ "\tlsls r3, r4, 16\n"
+ "_0809A104:\n"
+ "\tstrh r6, [r2]\n"
+ "\tadds r2, 0x40\n"
+ "\tadds r0, r1, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r1, r0, 16\n"
+ "\tcmp r1, 0x11\n"
+ "\tbls _0809A104\n"
+ "\tasrs r0, r3, 16\n"
+ "\tadds r4, r0, 0x1\n"
+ "\tmovs r0, 0x3F\n"
+ "\tands r4, r0\n"
+ "\tadds r0, r4, 0\n"
+ "\tcmp r0, 0x1F\n"
+ "\tbgt _0809A126\n"
+ "\tlsls r0, 1\n"
+ "\tadds r0, 0x80\n"
+ "\tb _0809A12E\n"
+ "_0809A126:\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r2, 0x84\n"
+ "\tlsls r2, 4\n"
+ "\tadds r0, r2\n"
+ "_0809A12E:\n"
+ "\tmov r1, r9\n"
+ "\tadds r2, r1, r0\n"
+ "\tlsls r0, r5, 16\n"
+ "\tlsrs r3, r0, 16\n"
+ "\tcmp r3, 0x3\n"
+ "\tbls _0809A0FE\n"
+ "_0809A13A:\n"
+ "\tadd sp, 0x20\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");
+}
+#endif
+
+#ifdef NONMATCHING
+void sub_809A14C(u16 *vdest)
+{
+ u16 *r2;
+ u16 i;
+ int r3 = ((gPokemonStorageSystemPtr->unk_08b4 >> 3) + 30) & 0x3f;
+ r2 = vdest + (r3 < 0x20 ? r3 + 0x260 : r3 + 0x640);
+ for (i = 0; i < 0x2b; i++)
+ {
+ *r2++ = 0;
+ r3++;
+ r3 &= 0x3f;
+ if (r3 == 0)
+ r2 -= 0x420;
+ if (r3 == 0x20)
+ r2 += 0x3e0;
+ }
+}
+#else
+__attribute__((naked)) void sub_809A14C(u16 *vdest)
+{
+ asm_unified("\tpush {r4-r6,lr}\n"
+ "\tadds r2, r0, 0\n"
+ "\tldr r0, _0809A174 @ =gPokemonStorageSystemPtr\n"
+ "\tldr r0, [r0]\n"
+ "\tldr r1, _0809A178 @ =0x000008b4\n"
+ "\tadds r0, r1\n"
+ "\tldrh r0, [r0]\n"
+ "\tlsrs r0, 3\n"
+ "\tadds r3, r0, 0\n"
+ "\tadds r3, 0x1E\n"
+ "\tmovs r0, 0x3F\n"
+ "\tands r3, r0\n"
+ "\tadds r0, r3, 0\n"
+ "\tcmp r0, 0x1F\n"
+ "\tbgt _0809A17C\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r6, 0x98\n"
+ "\tlsls r6, 3\n"
+ "\tadds r0, r6\n"
+ "\tb _0809A184\n"
+ "\t.align 2, 0\n"
+ "_0809A174: .4byte gPokemonStorageSystemPtr\n"
+ "_0809A178: .4byte 0x000008b4\n"
+ "_0809A17C:\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r1, 0xC8\n"
+ "\tlsls r1, 4\n"
+ "\tadds r0, r1\n"
+ "_0809A184:\n"
+ "\tadds r2, r0\n"
+ "\tmovs r0, 0\n"
+ "\tmovs r5, 0\n"
+ "\tmovs r4, 0x3F\n"
+ "_0809A18C:\n"
+ "\tstrh r5, [r2]\n"
+ "\tadds r2, 0x2\n"
+ "\tadds r3, 0x1\n"
+ "\tands r3, r4\n"
+ "\tadds r1, r3, 0\n"
+ "\tcmp r1, 0\n"
+ "\tbne _0809A19E\n"
+ "\tldr r6, _0809A1B8 @ =0xfffff7c0\n"
+ "\tadds r2, r6\n"
+ "_0809A19E:\n"
+ "\tcmp r1, 0x20\n"
+ "\tbne _0809A1A8\n"
+ "\tmovs r1, 0xF8\n"
+ "\tlsls r1, 3\n"
+ "\tadds r2, r1\n"
+ "_0809A1A8:\n"
+ "\tadds r0, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r0, 0x2B\n"
+ "\tbls _0809A18C\n"
+ "\tpop {r4-r6}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_0809A1B8: .4byte 0xfffff7c0");
+}
+#endif
+
+void sub_809A1BC(const u8 *a0, const u8 *text)
+{
+ u8 *r5 = gUnknown_083B6DB8;
+ DmaClear16(3, r5, 0x200);
+ Text_InitWindow8004E3C(&gWindowTemplate_81E6D38, r5, text);
+ DmaCopy16(3, r5 + 0x000, a0 + 0x000, 0x80);
+ DmaCopy16(3, r5 + 0x100, a0 + 0x080, 0x80);
+ DmaCopy16(3, r5 + 0x080, a0 + 0x100, 0x80);
+ DmaCopy16(3, r5 + 0x180, a0 + 0x180, 0x80);
+}
+
+const struct SpriteTemplate gSpriteTemplate_83BB2B8;
+
+void sub_809A23C(u8 boxId)
+{
+ u8 tagIdx;
+ s16 r6;
+ u16 i;
+
+ struct SpriteSheet spriteSheet = {gPokemonStorageSystemPtr->unk_08ca, 0x200, 3};
+ struct SpritePalette palettes[] = {
+ {gPokemonStorageSystemPtr->unk_0ccc, 0xdac8},
+ {gPokemonStorageSystemPtr->unk_0ccc, 0xdac9},
+ {}
+ };
+
+ u16 wallpaper = gPokemonStorage.wallpaper[boxId];
+ gPokemonStorageSystemPtr->unk_0ccc[14] = gUnknown_083BB0A8[wallpaper][0];
+ gPokemonStorageSystemPtr->unk_0ccc[15] = gUnknown_083BB0A8[wallpaper][1];
+ LoadSpritePalettes(palettes);
+ gPokemonStorageSystemPtr->unk_0d08 = 0x3f0;
+ tagIdx = IndexOfSpritePaletteTag(0xdac8);
+ gPokemonStorageSystemPtr->unk_0cec = 0x10e + 16 * tagIdx;
+ gPokemonStorageSystemPtr->unk_0d08 |= 0x10000 << tagIdx;
+ tagIdx = IndexOfSpritePaletteTag(0xdac9);
+ gPokemonStorageSystemPtr->unk_0cee = 0x10e + 16 * tagIdx;
+ gPokemonStorageSystemPtr->unk_0d08 |= 0x10000 << tagIdx;
+ sub_809A1BC(gPokemonStorageSystemPtr->unk_08ca, gPokemonStorage.boxNames[boxId]);
+ LoadSpriteSheet(&spriteSheet);
+ r6 = sub_809A6D0(sub_8072CA4(gPokemonStorage.boxNames[boxId]));
+ for (i = 0; i < 2; i++)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83BB2B8, r6 + i * 32, 0x1c, 23);
+ gPokemonStorageSystemPtr->unk_0cf0[i] = gSprites + spriteId;
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_0cf0[i], i);
+ }
+ gPokemonStorageSystemPtr->unk_0cca = 0;
+}
+
+void sub_809A3D0(u8 boxId, s8 a1)
+{
+ u16 r8;
+ s16 x;
+ s16 x2;
+ u16 i;
+ struct SpriteSheet spriteSheet = {gPokemonStorageSystemPtr->unk_08ca, 0x200, 3};
+ struct SpriteTemplate template = gSpriteTemplate_83BB2B8;
+
+ gPokemonStorageSystemPtr->unk_0cca = gPokemonStorageSystemPtr->unk_0cca ? FALSE : TRUE;
+ if (gPokemonStorageSystemPtr->unk_0cca == 0)
+ {
+ spriteSheet.tag = 3;
+ r8 = gPokemonStorageSystemPtr->unk_0cec;
+ }
+ else
+ {
+ spriteSheet.tag = 4;
+ r8 = gPokemonStorageSystemPtr->unk_0cec;
+ template.tileTag = 4;
+ template.paletteTag = 0xdac9;
+ }
+ sub_809A1BC(gPokemonStorageSystemPtr->unk_08ca, gPokemonStorage.boxNames[boxId]);
+ LoadSpriteSheet(&spriteSheet);
+ LoadPalette(gUnknown_083BB0A8[gPokemonStorage.wallpaper[boxId]], r8, 0x04);
+ x = sub_809A6D0(sub_8072CA4(gPokemonStorage.boxNames[boxId]));
+ x2 = x + a1 * 192;
+ for (i = 0; i < 2; i++)
+ {
+ u8 spriteId = CreateSprite(&template, i * 32 + x2, 0x1c, 23);
+ gPokemonStorageSystemPtr->unk_0cf8[i] = gSprites + spriteId;
+ gPokemonStorageSystemPtr->unk_0cf8[i]->data[0] = (-a1) * 6;
+ gPokemonStorageSystemPtr->unk_0cf8[i]->data[1] = i * 32 + x;
+ gPokemonStorageSystemPtr->unk_0cf8[i]->data[2] = 1;
+ gPokemonStorageSystemPtr->unk_0cf8[i]->callback = sub_809A5E8;
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_0cf8[i], i);
+ gPokemonStorageSystemPtr->unk_0cf0[i]->data[0] = (-a1) * 6;
+ gPokemonStorageSystemPtr->unk_0cf0[i]->data[1] = 1;
+ gPokemonStorageSystemPtr->unk_0cf0[i]->callback = sub_809A61C;
+ }
+}
+
+void sub_809A598(void)
+{
+ if (gPokemonStorageSystemPtr->unk_0cca == 0)
+ FreeSpriteTilesByTag(4);
+ else
+ FreeSpriteTilesByTag(3);
+ gPokemonStorageSystemPtr->unk_0cf0[0] = gPokemonStorageSystemPtr->unk_0cf8[0];
+ gPokemonStorageSystemPtr->unk_0cf0[1] = gPokemonStorageSystemPtr->unk_0cf8[1];
+}
+
+void sub_809A5E8(struct Sprite *sprite)
+{
+ if (sprite->data[2])
+ sprite->data[2]--;
+ else if ((sprite->pos1.x += sprite->data[0]) == sprite->data[1])
+ sprite->callback = SpriteCallbackDummy;
+}
+
+void sub_809A61C(struct Sprite *sprite)
+{
+ if (sprite->data[1])
+ sprite->data[1]--;
+ else
+ {
+ sprite->pos1.x += sprite->data[0];
+ sprite->data[2] = sprite->pos1.x + sprite->pos2.x;
+ if (sprite->data[2] < 0x40 || sprite->data[2] > 0x100)
+ DestroySprite(sprite);
+ }
+}
+
+void sub_809A654(void)
+{
+ u8 boxId = get_preferred_box();
+ u8 wallpaperId = gPokemonStorage.wallpaper[boxId];
+ if (gPokemonStorageSystemPtr->unk_0cca == 0)
+ CpuCopy16(gUnknown_083BB0A8[wallpaperId], gPlttBufferUnfaded + gPokemonStorageSystemPtr->unk_0cec, 4);
+ else
+ CpuCopy16(gUnknown_083BB0A8[wallpaperId], gPlttBufferUnfaded + gPokemonStorageSystemPtr->unk_0cee, 4);
+}
+
+s16 sub_809A6D0(u8 width)
+{
+ return 0xb0 - width / 2;
+}
+
+void sub_809A6DC(void)
+{
+ u16 i;
+
+ LoadSpriteSheet(&gUnknown_083BB288);
+ LoadSpritePalette(&gUnknown_083BB290);
+ for (i = 0; i < 2; i++)
+ {
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83BB2F0, 0x5c + i * 0x88, 0x1c, 21);
+ if (spriteId != MAX_SPRITES)
+ {
+ struct Sprite *sprite = gSprites + spriteId;
+ StartSpriteAnim(sprite, i);
+ sprite->data[3] = (i == 0) ? -1 : 1;
+ gPokemonStorageSystemPtr->unk_0d00[i] = sprite;
+ }
+ }
+ if (sub_809BF2C())
+ sub_809A860(TRUE);
+}
+
+void sub_809A774(s8 a0)
+{
+ u16 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->pos2.x = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[0] = 2;
+ }
+ if (a0 < 0)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[1] = 29;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[1] = 5;
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[2] = 0x48;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[2] = 0x48;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[1] = 5;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[1] = 29;
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[2] = 0xF8;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[2] = 0xF8;
+ }
+ gPokemonStorageSystemPtr->unk_0d00[0]->data[7] = 0;
+ gPokemonStorageSystemPtr->unk_0d00[1]->data[7] = 1;
+}
+
+void sub_809A810(void)
+{
+ u16 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->pos1.x = 0x88 * i + 0x5c;
+ gPokemonStorageSystemPtr->unk_0d00[i]->pos2.x = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->invisible = FALSE;
+ }
+ sub_809A860(TRUE);
+}
+
+void sub_809A860(bool8 a0)
+{
+ u16 i;
+ if (a0)
+ {
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[0] = 1;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[1] = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[2] = 0;
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[4] = 0;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 2; i++)
+ {
+ gPokemonStorageSystemPtr->unk_0d00[i]->data[0] = 0;
+ }
+ }
+}
+
+void sub_809A8C8(struct Sprite *sprite)
+{
+ switch (sprite->data[0])
+ {
+ case 0:
+ sprite->pos2.x = 0;
+ break;
+ case 1:
+ if (++sprite->data[1] > 3)
+ {
+ sprite->data[1] = 0;
+ sprite->pos2.x += sprite->data[3];
+ if (++sprite->data[2] > 5)
+ {
+ sprite->data[2] = 0;
+ sprite->pos2.x = 0;
+ }
+ }
+ break;
+ case 2:
+ sprite->data[0] = 3;
+ break;
+ case 3:
+ sprite->pos1.x -= gPokemonStorageSystemPtr->unk_08b6;
+ if (sprite->pos1.x < 0x49 || sprite->pos1.x > 0xf7)
+ sprite->invisible = TRUE;
+ if (--sprite->data[1] == 0)
+ {
+ sprite->pos1.x = sprite->data[2];
+ sprite->invisible = FALSE;
+ sprite->data[0] = 4;
+ }
+ break;
+ case 4:
+ sprite->pos1.x -= gPokemonStorageSystemPtr->unk_08b6;
+ break;
+ }
+}
+
+struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_83BB2F0, x, y, subpriority);
+ if (spriteId == MAX_SPRITES)
+ return NULL;
+ animId %= 2;
+ StartSpriteAnim(gSprites + spriteId, animId);
+ gSprites[spriteId].oam.priority = priority;
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ return gSprites + spriteId;
+}
+
+void sub_809AA24(void)
+{
+ if (gPokemonStorageSystemPtr->unk_0005 != 1)
+ gUnknown_020384E4 = 0;
+ else
+ gUnknown_020384E4 = 1;
+ gUnknown_020384E5 = 0;
+ gUnknown_020384E6 = FALSE;
+ gUnknown_020384E7 = 0;
+ gUnknown_020384E8 = 0;
+ gUnknown_020384E9 = 0;
+ sub_809B0D4();
+ sub_809CC04();
+ gPokemonStorageSystemPtr->unk_11e2 = 1;
+ sub_809BF74();
+}
+
+void sub_809AA98(void)
+{
+ sub_809CC04();
+ sub_809C028();
+ gPokemonStorageSystemPtr->unk_11e2 = 1;
+ if (gUnknown_020384E6)
+ sub_8098BF0();
+}
+
+void sub_809AACC(u8 a0, u8 a1, u16 *a2, u16 *a3)
+{
+ switch (a0)
+ {
+ case 0:
+ *a2 = (a1 % 6) * 24 + 100;
+ *a3 = (a1 / 6) * 24 + 32;
+ break;
+ case 1:
+ if (a1 == 0)
+ {
+ *a2 = 0x68;
+ *a3 = 0x34;
+ }
+ else if (a1 == 6)
+ {
+ *a2 = 0x98;
+ *a3 = 0x84;
+ }
+ else
+ {
+ *a2 = 0x98;
+ *a3 = (a1 - 1) * 24 + 4;
+ }
+ break;
+ case 2:
+ *a2 = 0xa2;
+ *a3 = 0x0c;
+ break;
+ case 3:
+ *a3 = gUnknown_020384E6 ? 8 : 14;
+ *a2 = a1 * 0x58 + 0x78;
+ break;
+ case 4:
+ *a2 = 0xa0;
+ *a3 = 0x60;
+ break;
+ }
+}
+
+u16 sub_809AB8C(void)
+{
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ return GetMonData(gPlayerParty + gUnknown_020384E5, MON_DATA_SPECIES);
+ case 0:
+ return GetBoxMonData(gPokemonStorage.boxes[get_preferred_box()] + gUnknown_020384E5, MON_DATA_SPECIES);
+ default:
+ return SPECIES_NONE;
+ }
+}
+
+bool8 sub_809AC00(void)
+{
+ s16 tmp;
+ if (gPokemonStorageSystemPtr->unk_11dc == 0)
+ return FALSE;
+ if (--gPokemonStorageSystemPtr->unk_11dc)
+ {
+ gPokemonStorageSystemPtr->unk_11c8 += gPokemonStorageSystemPtr->unk_11d0;
+ gPokemonStorageSystemPtr->unk_11cc += gPokemonStorageSystemPtr->unk_11d4;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.x = gPokemonStorageSystemPtr->unk_11c8 >> 8;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.y = gPokemonStorageSystemPtr->unk_11cc >> 8;
+ if (gPokemonStorageSystemPtr->unk_11c0->pos1.x > 0x100)
+ {
+ tmp = gPokemonStorageSystemPtr->unk_11c0->pos1.x - 0x100;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.x = tmp + 0x40;
+ }
+ if (gPokemonStorageSystemPtr->unk_11c0->pos1.x < 0x40)
+ {
+ tmp = 0x40 - gPokemonStorageSystemPtr->unk_11c0->pos1.x;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.x = 0x100 - tmp;
+ }
+ if (gPokemonStorageSystemPtr->unk_11c0->pos1.y > 0xb0)
+ {
+ tmp = gPokemonStorageSystemPtr->unk_11c0->pos1.y - 0xb0;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.y = tmp - 0x10;
+ }
+ if (gPokemonStorageSystemPtr->unk_11c0->pos1.y < -0x10)
+ {
+ tmp = -0x10 - gPokemonStorageSystemPtr->unk_11c0->pos1.y;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.y = 0xb0 - tmp;
+ }
+ if (gPokemonStorageSystemPtr->unk_11e3 && --gPokemonStorageSystemPtr->unk_11e3 == 0)
+ gPokemonStorageSystemPtr->unk_11c0->vFlip = gPokemonStorageSystemPtr->unk_11c0->vFlip ? FALSE : TRUE;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_11c0->pos1.x = gPokemonStorageSystemPtr->unk_11d8;
+ gPokemonStorageSystemPtr->unk_11c0->pos1.y = gPokemonStorageSystemPtr->unk_11da;
+ sub_809AFB8();
+ }
+ return TRUE;
+}
+
+void sub_809AD3C(u8 a0, u8 a1)
+{
+ u16 x;
+ u16 y;
+
+ sub_809AACC(a0, a1, &x, &y);
+ gPokemonStorageSystemPtr->unk_11e0 = a0;
+ gPokemonStorageSystemPtr->unk_11e1 = a1;
+ gPokemonStorageSystemPtr->unk_11d8 = x;
+ gPokemonStorageSystemPtr->unk_11da = y;
+}
+
+void sub_809AD94(void)
+{
+ int r7;
+ int r0;
+
+ if (gPokemonStorageSystemPtr->unk_11de || gPokemonStorageSystemPtr->unk_11df)
+ gPokemonStorageSystemPtr->unk_11dc = 12;
+ else
+ gPokemonStorageSystemPtr->unk_11dc = 6;
+ if (gPokemonStorageSystemPtr->unk_11e3)
+ gPokemonStorageSystemPtr->unk_11e3 = gPokemonStorageSystemPtr->unk_11dc >> 1;
+ switch (gPokemonStorageSystemPtr->unk_11de)
+ {
+ default:
+ r7 = gPokemonStorageSystemPtr->unk_11da - gPokemonStorageSystemPtr->unk_11c0->pos1.y;
+ break;
+ case -1:
+ r7 = gPokemonStorageSystemPtr->unk_11da - 0xc0 - gPokemonStorageSystemPtr->unk_11c0->pos1.y;
+ break;
+ case 1:
+ r7 = gPokemonStorageSystemPtr->unk_11da + 0xc0 - gPokemonStorageSystemPtr->unk_11c0->pos1.y;
+ break;
+ }
+ switch (gPokemonStorageSystemPtr->unk_11df)
+ {
+ default:
+ r0 = gPokemonStorageSystemPtr->unk_11d8 - gPokemonStorageSystemPtr->unk_11c0->pos1.x;
+ break;
+ case -1:
+ r0 = gPokemonStorageSystemPtr->unk_11d8 - 0xc0 - gPokemonStorageSystemPtr->unk_11c0->pos1.x;
+ break;
+ case 1:
+ r0 = gPokemonStorageSystemPtr->unk_11d8 + 0xc0 - gPokemonStorageSystemPtr->unk_11c0->pos1.x;
+ break;
+ }
+ r7 <<= 8;
+ r0 <<= 8;
+ gPokemonStorageSystemPtr->unk_11d0 = r0 / gPokemonStorageSystemPtr->unk_11dc;
+ gPokemonStorageSystemPtr->unk_11d4 = r7 / gPokemonStorageSystemPtr->unk_11dc;
+ gPokemonStorageSystemPtr->unk_11c8 = gPokemonStorageSystemPtr->unk_11c0->pos1.x << 8;
+ gPokemonStorageSystemPtr->unk_11cc = gPokemonStorageSystemPtr->unk_11c0->pos1.y << 8;
+}
+
+void sub_809AF18(u8 a0, u8 a1)
+{
+ sub_809AD3C(a0, a1);
+ sub_809AD94();
+ if (!gUnknown_020384E6)
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 1);
+ if (a0 == 1 && gUnknown_020384E4 != 1)
+ {
+ gPokemonStorageSystemPtr->unk_11e2 = a0;
+ gPokemonStorageSystemPtr->unk_11c4->invisible = TRUE;
+ }
+ switch (a0)
+ {
+ case 0:
+ break;
+ case 1 ... 3:
+ gPokemonStorageSystemPtr->unk_11c4->invisible = TRUE;
+ gPokemonStorageSystemPtr->unk_11c4->oam.priority = 1;
+ break;
+ }
+}
+
+void sub_809AFB8(void)
+{
+ gUnknown_020384E4 = gPokemonStorageSystemPtr->unk_11e0;
+ gUnknown_020384E5 = gPokemonStorageSystemPtr->unk_11e1;
+ if (!gUnknown_020384E6)
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 0);
+ sub_809BF74();
+ switch (gUnknown_020384E4)
+ {
+ case 2:
+ sub_809A860(TRUE);
+ break;
+ case 1:
+ gPokemonStorageSystemPtr->unk_11c4->subpriority = 12;
+ break;
+ case 0:
+ gPokemonStorageSystemPtr->unk_11c4->oam.priority = 2;
+ gPokemonStorageSystemPtr->unk_11c4->subpriority = 20;
+ gPokemonStorageSystemPtr->unk_11c4->invisible = FALSE;
+ break;
+ }
+}
+
+void sub_809B068(void)
+{
+ u8 partyCount;
+ if (!gUnknown_020384E6)
+ partyCount = 0;
+ else
+ {
+ partyCount = CalculatePlayerPartyCount();
+ if (partyCount > PARTY_SIZE - 1)
+ partyCount = PARTY_SIZE - 1;
+ }
+ if (gPokemonStorageSystemPtr->unk_11c0->vFlip)
+ gPokemonStorageSystemPtr->unk_11e3 = 1;
+ sub_809AF18(1, partyCount);
+}
+
+void sub_809B0C0(u8 a0)
+{
+ sub_809AF18(0, a0);
+}
+
+void sub_809B0D4(void)
+{
+ gUnknown_020384EA = 0;
+}
+
+void sub_809B0E0(void)
+{
+ gUnknown_020384EA = gUnknown_020384E5;
+}
+
+u8 sub_809B0F4(void)
+{
+ return gUnknown_020384EA;
+}
+
+void sub_809B100(u8 a0)
+{
+ gPokemonStorageSystemPtr->unk_12a4 = gUnknown_083BBBC8[a0];
+ gPokemonStorageSystemPtr->unk_12a8 = 0;
+}
+
+bool8 sub_809B130(void)
+{
+ return gPokemonStorageSystemPtr->unk_12a4();
+}
+
+bool8 sub_809B150(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_12a8)
+ {
+ case 0:
+ if (gUnknown_020384E6)
+ return FALSE;
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 2);
+ gPokemonStorageSystemPtr->unk_12a8++;
+ break;
+ case 1:
+ if (!sub_809B324())
+ {
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 3);
+ sub_809B384();
+ gPokemonStorageSystemPtr->unk_12a8++;
+ }
+ break;
+ case 2:
+ if (!sub_809B358())
+ gPokemonStorageSystemPtr->unk_12a8++;
+ break;
+ case 3:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_809B1D8(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_12a8)
+ {
+ case 0:
+ if (!sub_809B324())
+ {
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 2);
+ sub_809B3E0();
+ gPokemonStorageSystemPtr->unk_12a8++;
+ }
+ break;
+ case 1:
+ if (!sub_809B358())
+ {
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 0);
+ gPokemonStorageSystemPtr->unk_12a8++;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_809B24C(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_12a8)
+ {
+ case 0:
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ gPokemonStorageSystemPtr->unk_12a9 = 14;
+ break;
+ case 0:
+ gPokemonStorageSystemPtr->unk_12a9 = get_preferred_box();
+ break;
+ default:
+ return FALSE;
+ }
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 2);
+ sub_80996B0(gPokemonStorageSystemPtr->unk_12a9, gUnknown_020384E5);
+ gPokemonStorageSystemPtr->unk_12a8++;
+ break;
+ case 1:
+ if (!sub_809971C())
+ {
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 3);
+ diegohint1(gPokemonStorageSystemPtr->unk_12a9, gUnknown_020384E5);
+ gPokemonStorageSystemPtr->unk_12a8++;
+ }
+ break;
+ case 2:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_809B324(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_11c0->pos2.y)
+ {
+ default:
+ gPokemonStorageSystemPtr->unk_11c0->pos2.y++;
+ break;
+ case 0:
+ gPokemonStorageSystemPtr->unk_11c0->pos2.y++;
+ break;
+ case 8:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_809B358(void)
+{
+ switch (gPokemonStorageSystemPtr->unk_11c0->pos2.y)
+ {
+ case 0:
+ return FALSE;
+ default:
+ gPokemonStorageSystemPtr->unk_11c0->pos2.y--;
+ break;
+ }
+ return TRUE;
+}
+
+void sub_809B384(void)
+{
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ sub_809B44C(14, gUnknown_020384E5);
+ sub_8099584(0, gUnknown_020384E5);
+ break;
+ case 0:
+ sub_809B44C(get_preferred_box(), gUnknown_020384E5);
+ sub_8099584(1, gUnknown_020384E5);
+ break;
+ default:
+ return;
+ }
+ gUnknown_020384E6 = TRUE;
+}
+
+void sub_809B3E0(void)
+{
+ u8 boxId;
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ diegohint2(14, gUnknown_020384E5);
+ sub_809960C(14, gUnknown_020384E5);
+ break;
+ case 0:
+ boxId = get_preferred_box();
+ diegohint2(boxId, gUnknown_020384E5);
+ sub_809960C(boxId, gUnknown_020384E5);
+ break;
+ default:
+ return;
+ }
+ gUnknown_020384E6 = FALSE;
+}
+
+void sub_809B440(void)
+{
+ sub_809BF74();
+}
+
+void sub_809B44C(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ gPokemonStorageSystemPtr->unk_25b4 = gPlayerParty[gUnknown_020384E5];
+ else
+ ExpandBoxMon(gPokemonStorage.boxes[a0] + a1, &gPokemonStorageSystemPtr->unk_25b4);
+ sub_809B548(a0, a1);
+ gUnknown_020384E7 = a0;
+ gUnknown_020384E8 = a1;
+}
+
+void diegohint2(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ {
+ gPlayerParty[a1] = gPokemonStorageSystemPtr->unk_25b4;
+ }
+ else
+ {
+ BoxMonRestorePP(&gPokemonStorageSystemPtr->unk_25b4.box);
+ gPokemonStorage.boxes[a0][a1] = gPokemonStorageSystemPtr->unk_25b4.box;
+ }
+}
+
+void sub_809B548(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ ZeroMonData(gPlayerParty + a1);
+ else
+ ZeroBoxMonData(gPokemonStorage.boxes[a0] + a1);
+}
+
+void diegohint1(u8 a0, u8 a1)
+{
+ if (a0 == 14)
+ gPokemonStorageSystemPtr->unk_2618 = gPlayerParty[a1];
+ else
+ ExpandBoxMon(gPokemonStorage.boxes[a0] + a1, &gPokemonStorageSystemPtr->unk_2618);
+ diegohint2(a0, a1);
+ gPokemonStorageSystemPtr->unk_25b4 = gPokemonStorageSystemPtr->unk_2618;
+ sub_809C04C(&gPokemonStorageSystemPtr->unk_25b4, 0);
+ gUnknown_020384E7 = a0;
+ gUnknown_020384E8 = a1;
+}
+
+bool8 sub_809B62C(u8 boxId)
+{
+ s16 monIdx = GetIndexOfFirstEmptySpaceInBoxN(boxId);
+ if (monIdx == -1)
+ return FALSE;
+ if (gUnknown_020384E6)
+ {
+ diegohint2(boxId, monIdx);
+ sub_8099480();
+ gUnknown_020384E6 = FALSE;
+ }
+ else
+ {
+ sub_809B44C(14, gUnknown_020384E5);
+ diegohint2(boxId, monIdx);
+ sub_8099520(gUnknown_020384E5);
+ }
+ if (boxId == get_preferred_box())
+ sub_8098D20(monIdx);
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 1);
+ return TRUE;
+}
+
+void sub_809B6BC(void)
+{
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 0);
+ sub_809BF74();
+}
+
+void sub_809B6DC(void)
+{
+ u8 mode;
+
+ if (gUnknown_020384E6)
+ mode = 2;
+ else if (gUnknown_020384E4 == 1)
+ mode = 0;
+ else
+ mode = 1;
+ sub_809981C(mode, gUnknown_020384E5);
+ StringCopy(gPokemonStorageSystemPtr->unk_26e4, gPokemonStorageSystemPtr->unk_11fa);
+}
+
+bool8 sub_809B734(void)
+{
+ if (!sub_80998D8())
+ {
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 0);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_809B760(void)
+{
+ sub_8099920();
+ if (gUnknown_020384E6)
+ gUnknown_020384E6 = FALSE;
+ else
+ {
+ u8 boxId;
+ if (gUnknown_020384E4 == 1)
+ boxId = 14;
+ else
+ boxId = get_preferred_box();
+ sub_809B548(boxId, gUnknown_020384E5);
+ }
+ sub_809BF74();
+}
+
+void sub_809B7AC(void)
+{
+ if (gUnknown_020384E6)
+ StartSpriteAnim(gPokemonStorageSystemPtr->unk_11c0, 3);
+}
+
+void sub_809B7D4(void)
+{
+ u16 knownMoves;
+ if (gUnknown_020384E6)
+ {
+ gPokemonStorageSystemPtr->unk_2618 = gPokemonStorageSystemPtr->unk_25b4;
+ gPokemonStorageSystemPtr->unk_2682 = -1;
+ gPokemonStorageSystemPtr->unk_2683 = -1;
+ }
+ else
+ {
+ if (gUnknown_020384E4 == 1)
+ {
+ gPokemonStorageSystemPtr->unk_2618 = gPlayerParty[gUnknown_020384E5];
+ gPokemonStorageSystemPtr->unk_2682 = 14;
+ }
+ else
+ {
+ ExpandBoxMon(gPokemonStorage.boxes[gPokemonStorage.currentBox] + gUnknown_020384E5, &gPokemonStorageSystemPtr->unk_2618);
+ gPokemonStorageSystemPtr->unk_2682 = gPokemonStorage.currentBox;
+ }
+ gPokemonStorageSystemPtr->unk_2683 = gUnknown_020384E5;
+ }
+ gPokemonStorageSystemPtr->unk_267e = 0;
+ gPokemonStorageSystemPtr->unk_267f = 0;
+ gPokemonStorageSystemPtr->unk_2686[0] = MOVE_SURF;
+ gPokemonStorageSystemPtr->unk_2686[1] = MOVE_DIVE;
+ gPokemonStorageSystemPtr->unk_2686[2] = NUM_MOVES;
+ knownMoves = GetMonData(&gPokemonStorageSystemPtr->unk_2618, MON_DATA_KNOWN_MOVES, gPokemonStorageSystemPtr->unk_2686);
+ gPokemonStorageSystemPtr->unk_267e = knownMoves & 1;
+ gPokemonStorageSystemPtr->unk_267f = (knownMoves >> 1) & 1;
+ if (gPokemonStorageSystemPtr->unk_267e || gPokemonStorageSystemPtr->unk_267f)
+ gPokemonStorageSystemPtr->unk_267d = 0;
+ else
+ {
+ gPokemonStorageSystemPtr->unk_267d = 1;
+ gPokemonStorageSystemPtr->unk_267c = 1;
+ }
+ gPokemonStorageSystemPtr->unk_2684 = 0;
+}
+
+s8 sub_809B960(void)
+{
+ u16 i;
+ u16 knownMoves;
+
+ if (gPokemonStorageSystemPtr->unk_267d)
+ return gPokemonStorageSystemPtr->unk_267c;
+ switch (gPokemonStorageSystemPtr->unk_2684)
+ {
+ case 0:
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ if (gPokemonStorageSystemPtr->unk_2682 != 14 || gPokemonStorageSystemPtr->unk_2683 != i)
+ {
+ knownMoves = GetMonData(gPlayerParty + i, MON_DATA_KNOWN_MOVES, gPokemonStorageSystemPtr->unk_2686);
+ if (knownMoves & 1)
+ gPokemonStorageSystemPtr->unk_267e = 0;
+ if (knownMoves & 2)
+ gPokemonStorageSystemPtr->unk_267f = 0;
+ }
+ }
+ if (gPokemonStorageSystemPtr->unk_267e == 0 && gPokemonStorageSystemPtr->unk_267f == 0)
+ {
+ gPokemonStorageSystemPtr->unk_267d = 1;
+ gPokemonStorageSystemPtr->unk_267c = 1;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_2680 = 0;
+ gPokemonStorageSystemPtr->unk_2681 = 0;
+ gPokemonStorageSystemPtr->unk_2684++;
+ }
+ break;
+ case 1:
+ for (i = 0; i < 5; i++)
+ {
+ knownMoves = GetBoxMonData(gPokemonStorage.boxes[gPokemonStorageSystemPtr->unk_2680] + gPokemonStorageSystemPtr->unk_2681, MON_DATA_KNOWN_MOVES, gPokemonStorageSystemPtr->unk_2686);
+ if (knownMoves && (gPokemonStorageSystemPtr->unk_2682 != gPokemonStorageSystemPtr->unk_2680 || gPokemonStorageSystemPtr->unk_2683 != gPokemonStorageSystemPtr->unk_2681))
+ {
+ if (knownMoves & 1)
+ gPokemonStorageSystemPtr->unk_267e = 0;
+ if (knownMoves & 2)
+ gPokemonStorageSystemPtr->unk_267f = 0;
+ }
+ if (++gPokemonStorageSystemPtr->unk_2681 >= 30)
+ {
+ gPokemonStorageSystemPtr->unk_2681 = 0;
+ if (++gPokemonStorageSystemPtr->unk_2680 >= 14)
+ {
+ gPokemonStorageSystemPtr->unk_267d = 1;
+ gPokemonStorageSystemPtr->unk_267c = 0;
+ break;
+ }
+ }
+ }
+ if (gPokemonStorageSystemPtr->unk_267e == 0 && gPokemonStorageSystemPtr->unk_267f == 0)
+ {
+ gPokemonStorageSystemPtr->unk_267d = 1;
+ gPokemonStorageSystemPtr->unk_267c = 1;
+ }
+ break;
+ }
+ return -1;
+}
+
+void sub_809BB90(void)
+{
+ if (gUnknown_020384E6)
+ gUnknown_02038480 = gPokemonStorageSystemPtr->unk_25b4;
+}
+
+void sub_809BBC0(void)
+{
+ if (gUnknown_020384E6)
+ {
+ if (gUnknown_020384E7 == 14)
+ gPokemonStorageSystemPtr->unk_25b4 = gUnknown_02038480;
+ else
+ gPokemonStorageSystemPtr->unk_25b4.box = gUnknown_02038480.box;
+ }
+}
+
+void sub_809BC18(void)
+{
+ if (gUnknown_020384E6)
+ {
+ sub_809BB90();
+ gPokemonStorageSystemPtr->unk_2690.pokemon = &gUnknown_02038480;
+ gPokemonStorageSystemPtr->unk_268d = 0;
+ gPokemonStorageSystemPtr->unk_268c = 0;
+ gPokemonStorageSystemPtr->unk_268e = 0;
+ }
+ else if (gUnknown_020384E4 == 1)
+ {
+ gPokemonStorageSystemPtr->unk_2690.pokemon = gPlayerParty;
+ gPokemonStorageSystemPtr->unk_268d = gUnknown_020384E5;
+ gPokemonStorageSystemPtr->unk_268c = StorageSystemGetPartySize() - 1;
+ gPokemonStorageSystemPtr->unk_268e = 0;
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_2690.box = gPokemonStorage.boxes[gPokemonStorage.currentBox];
+ gPokemonStorageSystemPtr->unk_268d = gUnknown_020384E5;
+ gPokemonStorageSystemPtr->unk_268c = 30 - 1;
+ gPokemonStorageSystemPtr->unk_268e = 5;
+ }
+}
+
+void sub_809BD14(void)
+{
+ if (gUnknown_020384E6)
+ sub_809BBC0();
+ else
+ gUnknown_020384E5 = pssData.monIndex;
+}
+
+s16 party_compaction(void)
+{
+ s16 retVal = -1;
+ u16 i;
+ u16 last;
+
+ for (i = 0, last = 0; i < PARTY_SIZE; i++)
+ {
+ if ((u16)GetMonData(gPlayerParty + i, MON_DATA_SPECIES) != SPECIES_NONE)
+ {
+ if (i != last)
+ gPlayerParty[last] = gPlayerParty[i];
+ last++;
+ }
+ else if (retVal == -1)
+ retVal = i;
+ }
+ for (; last < PARTY_SIZE; last++)
+ ZeroMonData(gPlayerParty + last);
+ return retVal;
+}
+
+void sub_809BDD8(u8 markings)
+{
+ gPokemonStorageSystemPtr->unk_11f7 = markings;
+ if (gUnknown_020384E6)
+ SetMonData(&gPokemonStorageSystemPtr->unk_25b4, MON_DATA_MARKINGS, &markings);
+ else
+ {
+ if (gUnknown_020384E4 == 1)
+ SetMonData(gPlayerParty + gUnknown_020384E5, MON_DATA_MARKINGS, &markings);
+ if (gUnknown_020384E4 == 0)
+ SetBoxMonData(gPokemonStorage.boxes[get_preferred_box()] + gUnknown_020384E5, MON_DATA_MARKINGS, &markings);
+ }
+}
+
+bool8 sub_809BE80(void)
+{
+ if (gUnknown_020384E4 == 1 && !gUnknown_020384E6 && CountAlivePartyMonsExceptOne(gUnknown_020384E5) == 0)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 sub_809BEBC(void)
+{
+ if (gUnknown_020384E6)
+ {
+ if (gUnknown_020384E4 == 1 && CountAlivePartyMonsExceptOne(gUnknown_020384E5) == 0)
+ {
+ if (gPokemonStorageSystemPtr->unk_11f9 || GetMonData(&gPokemonStorageSystemPtr->unk_25b4, MON_DATA_HP) == 0)
+ return FALSE;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_809BF20(void)
+{
+ return gUnknown_020384E6;
+}
+
+bool8 sub_809BF2C(void)
+{
+ return gUnknown_020384E4 == 2 ? TRUE : FALSE;
+}
+
+bool8 sub_809BF48(void)
+{
+ return (gUnknown_020384E4 == 3 && gUnknown_020384E5 == 1) ? TRUE : FALSE;
+}
+
+void sub_809BF74(void)
+{
+ gPokemonStorageSystemPtr->unk_11f6 = gUnknown_020384E6 ? 0 : 1;
+ if (!gUnknown_020384E6)
+ {
+ switch (gUnknown_020384E4)
+ {
+ case 1:
+ if (gUnknown_020384E5 < PARTY_SIZE)
+ {
+ sub_809C04C(gPlayerParty + gUnknown_020384E5, 0);
+ break;
+ }
+ // fallthrough
+ case 2:
+ case 3:
+ sub_809C04C(NULL, 2);
+ break;
+ case 0:
+ sub_809C04C(gPokemonStorage.boxes[get_preferred_box()] + gUnknown_020384E5, 1);
+ break;
+ }
+ }
+}
+
+void sub_809C028(void)
+{
+ if (gUnknown_020384E6)
+ sub_809C04C(&gUnknown_02038480.box, 0);
+ else
+ sub_809BF74();
+}
+
+void sub_809C04C(void *pokemon, u8 a1)
+{
+ u8 *buf;
+ u16 gender = MON_MALE;
+ gPokemonStorageSystemPtr->unk_11f2 = 0;
+ if (a1 == 0)
+ {
+ struct Pokemon *pkmn = (struct Pokemon *)pokemon;
+ gPokemonStorageSystemPtr->unk_11f0 = GetMonData(pokemon, MON_DATA_SPECIES2);
+ if (gPokemonStorageSystemPtr->unk_11f0 != SPECIES_NONE)
+ {
+ gPokemonStorageSystemPtr->unk_11f9 = GetMonData(pkmn, MON_DATA_IS_EGG);
+ GetMonData(pkmn, MON_DATA_NICKNAME, gPokemonStorageSystemPtr->unk_11fa);
+ StringGetEnd10(gPokemonStorageSystemPtr->unk_11fa);
+ gPokemonStorageSystemPtr->unk_11f8 = GetMonData(pkmn, MON_DATA_LEVEL);
+ gPokemonStorageSystemPtr->unk_11f7 = GetMonData(pkmn, MON_DATA_MARKINGS);
+ gPokemonStorageSystemPtr->unk_11ec = GetMonData(pkmn, MON_DATA_PERSONALITY);
+ gPokemonStorageSystemPtr->unk_11e8 = GetMonSpritePal(pkmn);
+ gender = GetMonGender(pkmn);
+ gPokemonStorageSystemPtr->unk_11f2 = GetMonData(pkmn, MON_DATA_HELD_ITEM);
+ }
+ }
+ else if (a1 == 1)
+ {
+ struct BoxPokemon *boxmon = (struct BoxPokemon *)pokemon;
+ gPokemonStorageSystemPtr->unk_11f0 = GetBoxMonData(pokemon, MON_DATA_SPECIES2);
+ if (gPokemonStorageSystemPtr->unk_11f0 != SPECIES_NONE)
+ {
+ u32 otId = GetBoxMonData(boxmon, MON_DATA_OT_ID);
+ gPokemonStorageSystemPtr->unk_11f9 = GetBoxMonData(boxmon, MON_DATA_IS_EGG);
+ GetBoxMonData(boxmon, MON_DATA_NICKNAME, gPokemonStorageSystemPtr->unk_11fa);
+ StringGetEnd10(gPokemonStorageSystemPtr->unk_11fa);
+ gPokemonStorageSystemPtr->unk_11f8 = GetLevelFromBoxMonExp(boxmon);
+ gPokemonStorageSystemPtr->unk_11f7 = GetBoxMonData(boxmon, MON_DATA_MARKINGS);
+ gPokemonStorageSystemPtr->unk_11ec = GetBoxMonData(boxmon, MON_DATA_PERSONALITY);
+ gPokemonStorageSystemPtr->unk_11e8 = GetMonSpritePalFromOtIdPersonality(gPokemonStorageSystemPtr->unk_11f0, otId, gPokemonStorageSystemPtr->unk_11ec);
+ gender = GetGenderFromSpeciesAndPersonality(gPokemonStorageSystemPtr->unk_11f0, gPokemonStorageSystemPtr->unk_11ec);
+ gPokemonStorageSystemPtr->unk_11f2 = GetBoxMonData(boxmon, MON_DATA_HELD_ITEM);
+ }
+ }
+ else
+ {
+ gPokemonStorageSystemPtr->unk_11f0 = SPECIES_NONE;
+ }
+ if (gPokemonStorageSystemPtr->unk_11f0 == SPECIES_NONE)
+ {
+ gPokemonStorageSystemPtr->unk_11fa[0] = EOS;
+ gPokemonStorageSystemPtr->unk_120f[0] = EOS;
+ gPokemonStorageSystemPtr->unk_1234[0] = EOS;
+ gPokemonStorageSystemPtr->unk_1259[0] = EOS;
+ gPokemonStorageSystemPtr->unk_127a[0] = EOS;
+ }
+ else if (gPokemonStorageSystemPtr->unk_11f9)
+ {
+ buf = gPokemonStorageSystemPtr->unk_120f;
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x0F; // WHITE2
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x01; // DARK_GREY
+ buf = gPokemonStorageSystemPtr->unk_120f + 5;
+ buf = StringCopy(buf, gPokemonStorageSystemPtr->unk_11fa);
+ gPokemonStorageSystemPtr->unk_1234[0] = EOS;
+ gPokemonStorageSystemPtr->unk_1259[0] = EOS;
+ gPokemonStorageSystemPtr->unk_127a[0] = EOS;
+ }
+ else
+ {
+ if (gPokemonStorageSystemPtr->unk_11f0 == SPECIES_NIDORAN_M || gPokemonStorageSystemPtr->unk_11f0 == SPECIES_NIDORAN_F)
+ gender = MON_GENDERLESS;
+ buf = gPokemonStorageSystemPtr->unk_120f;
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x0F; // WHITE2
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x01; // DARK_GREY
+ buf = gPokemonStorageSystemPtr->unk_120f + 5;
+ buf = StringCopy(buf, gPokemonStorageSystemPtr->unk_11fa);
+ buf = gPokemonStorageSystemPtr->unk_1234;
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x0F; // WHITE2
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x01; // DARK_GREY
+ buf[5] = EXT_CTRL_CODE_BEGIN;
+ buf[6] = 0x13; // CLEAR_TO
+ buf[7] = 7;
+ buf[8] = CHAR_SLASH;
+ buf = gPokemonStorageSystemPtr->unk_1234 + 9;
+ buf = StringCopy(buf, gSpeciesNames[gPokemonStorageSystemPtr->unk_11f0]);
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x13; // CLEAR_TO
+ buf[2] = 0x50;
+ buf[3] = EOS;
+ buf = gPokemonStorageSystemPtr->unk_1259;
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x0F; // WHITE2
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x01; // DARK_GREY
+ buf[5] = EXT_CTRL_CODE_BEGIN;
+ buf[6] = 0x13; // CLEAR_TO
+ buf[7] = 8;
+ buf = gPokemonStorageSystemPtr->unk_1259 + 8;
+ buf[0] = 0x34; // LV
+ buf = gPokemonStorageSystemPtr->unk_1259 + 9;
+ buf = sub_8072C14(buf, gPokemonStorageSystemPtr->unk_11f8, 0x22, STR_CONV_MODE_RIGHT_ALIGN);
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x11; // CLEAR
+ buf[2] = 8;
+ buf += 3;
+ switch (gender)
+ {
+ case MON_MALE:
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x04; // BLUE
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x05; // YELLOW
+ buf[5] = CHAR_MALE;
+ buf += 6;
+ break;
+ case MON_FEMALE:
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x06; // CYAN
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x07; // MAGENTA
+ buf[5] = CHAR_FEMALE;
+ buf += 6;
+ break;
+ }
+ buf[0] = EOS;
+ buf = gPokemonStorageSystemPtr->unk_127a;
+ if (gPokemonStorageSystemPtr->unk_11f2)
+ {
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x04; // COLOR_HIGHLIGHT_SHADOW
+ buf[2] = 0x0F; // WHITE2
+ buf[3] = 0x00; // TRANSPARENT
+ buf[4] = 0x01; // DARK_GREY
+ buf = gPokemonStorageSystemPtr->unk_127a + 5;
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x06; // size
+ buf[2] = 0x04;
+ buf = gPokemonStorageSystemPtr->unk_127a + 8;
+ buf = StringCopy(buf, ItemId_GetItem(gPokemonStorageSystemPtr->unk_11f2)->name);
+ buf[0] = EXT_CTRL_CODE_BEGIN;
+ buf[1] = 0x07; // UNKNOWN_7;
+ buf += 2;
+ }
+ buf[0] = EOS;
+ }
+}
+
+#ifdef NONMATCHING
+u8 sub_809C464(void)
+{
+ u8 r9;
+ s8 r8 = gUnknown_020384E4;
+ s8 r4 = gUnknown_020384E5;
+ gPokemonStorageSystemPtr->unk_11de = 0;
+ gPokemonStorageSystemPtr->unk_11df = 0;
+ gPokemonStorageSystemPtr->unk_11e3 = 0;
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ r9 = 1;
+ if (gUnknown_020384E5 >= 6)
+ {
+ r4 -= 6;
+ }
+ else
+ {
+ r8 = 2;
+ r4 = 0;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ r9 = 1;
+ r4 += 6;
+ if (r4 >= 30)
+ {
+ r8 = 3;
+ r4 -= 30;
+ r4 /= 3;
+ gPokemonStorageSystemPtr->unk_11de = 1;
+ gPokemonStorageSystemPtr->unk_11e3 = 1;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ r9 = 1;
+ if (gUnknown_020384E5 % 6)
+ r4--;
+ else
+ {
+ gPokemonStorageSystemPtr->unk_11df = -1;
+ r4 += 5;
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ r9 = 1;
+ if ((gUnknown_020384E5 + 1) % 6)
+ r4++;
+ else
+ {
+ gPokemonStorageSystemPtr->unk_11df = 1;
+ r4 -= 5;
+ }
+ }
+ else if (gMain.newKeys & START_BUTTON)
+ {
+ r9 = 1;
+ r8 = 2;
+ r4 = 0;
+ }
+ else
+ {
+ if ((gMain.newKeys & A_BUTTON) && sub_809CAB0())
+ {
+ if (gUnknown_020384E9 == 0)
+ return 8;
+ switch (sub_809CE4C(0))
+ {
+ case 1:
+ return 11;
+ case 2:
+ return 12;
+ case 3:
+ return 13;
+ case 4:
+ return 14;
+ case 5:
+ return 15;
+ }
+ }
+ if (gMain.newKeys & B_BUTTON)
+ return 16;
+ if (gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR)
+ {
+ if (gMain.heldKeys & L_BUTTON)
+ return 10;
+ if (gMain.heldKeys & R_BUTTON)
+ return 9;
+ }
+ if (gMain.newKeys & SELECT_BUTTON)
+ {
+ sub_809CD88();
+ return 0;
+ }
+ r9 = 0;
+ }
+ if (r9)
+ sub_809AF18(r8, r4);
+ return r9;
+}
+#else
+__attribute__((naked)) u8 sub_809C464(void)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r9\n"
+ "\tmov r6, r8\n"
+ "\tpush {r6,r7}\n"
+ "\tldr r0, _0809C4D8 @ =gUnknown_020384E4\n"
+ "\tldrb r0, [r0]\n"
+ "\tmov r8, r0\n"
+ "\tldr r2, _0809C4DC @ =gUnknown_020384E5\n"
+ "\tldrb r4, [r2]\n"
+ "\tldr r0, _0809C4E0 @ =gPokemonStorageSystemPtr\n"
+ "\tldr r1, [r0]\n"
+ "\tldr r0, _0809C4E4 @ =0x000011de\n"
+ "\tadds r7, r1, r0\n"
+ "\tmovs r0, 0\n"
+ "\tstrb r0, [r7]\n"
+ "\tldr r3, _0809C4E8 @ =0x000011df\n"
+ "\tadds r5, r1, r3\n"
+ "\tstrb r0, [r5]\n"
+ "\tadds r3, 0x4\n"
+ "\tadds r6, r1, r3\n"
+ "\tstrb r0, [r6]\n"
+ "\tldr r0, _0809C4EC @ =gMain\n"
+ "\tmov r12, r0\n"
+ "\tldrh r1, [r0, 0x30]\n"
+ "\tmovs r0, 0x40\n"
+ "\tands r0, r1\n"
+ "\tadds r3, r2, 0\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C4A0\n"
+ "\tb _0809C62A\n"
+ "_0809C4A0:\n"
+ "\tmovs r0, 0x80\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C4F0\n"
+ "\tmovs r1, 0x1\n"
+ "\tmov r9, r1\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r3, 0xC0\n"
+ "\tlsls r3, 19\n"
+ "\tadds r0, r3\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tasrs r0, 24\n"
+ "\tcmp r0, 0x1D\n"
+ "\tbgt _0809C4BE\n"
+ "\tb _0809C648\n"
+ "_0809C4BE:\n"
+ "\tmovs r1, 0x3\n"
+ "\tmov r8, r1\n"
+ "\tsubs r0, 0x1E\n"
+ "\tlsls r0, 24\n"
+ "\tasrs r0, 24\n"
+ "\tbl __divsi3\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tmov r3, r9\n"
+ "\tstrb r3, [r7]\n"
+ "\tstrb r3, [r6]\n"
+ "\tb _0809C648\n"
+ "\t.align 2, 0\n"
+ "_0809C4D8: .4byte gUnknown_020384E4\n"
+ "_0809C4DC: .4byte gUnknown_020384E5\n"
+ "_0809C4E0: .4byte gPokemonStorageSystemPtr\n"
+ "_0809C4E4: .4byte 0x000011de\n"
+ "_0809C4E8: .4byte 0x000011df\n"
+ "_0809C4EC: .4byte gMain\n"
+ "_0809C4F0:\n"
+ "\tmovs r0, 0x20\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C524\n"
+ "\tmovs r0, 0x1\n"
+ "\tmov r9, r0\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r3, r0]\n"
+ "\tmovs r1, 0x6\n"
+ "\tbl __modsi3\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C514\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r1, 0xFF\n"
+ "\tlsls r1, 24\n"
+ "\tb _0809C63C\n"
+ "_0809C514:\n"
+ "\tmovs r0, 0xFF\n"
+ "\tstrb r0, [r5]\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r3, 0xA0\n"
+ "\tlsls r3, 19\n"
+ "\tadds r0, r3\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tb _0809C648\n"
+ "_0809C524:\n"
+ "\tmovs r0, 0x10\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C554\n"
+ "\tmovs r0, 0x1\n"
+ "\tmov r9, r0\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r3, r0]\n"
+ "\tadds r0, 0x1\n"
+ "\tmovs r1, 0x6\n"
+ "\tbl __modsi3\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C548\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r1, 0x80\n"
+ "\tlsls r1, 17\n"
+ "\tb _0809C63C\n"
+ "_0809C548:\n"
+ "\tmov r3, r9\n"
+ "\tstrb r3, [r5]\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r1, 0xFB\n"
+ "\tlsls r1, 24\n"
+ "\tb _0809C63C\n"
+ "_0809C554:\n"
+ "\tmov r3, r12\n"
+ "\tldrh r1, [r3, 0x2E]\n"
+ "\tmovs r0, 0x8\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C56A\n"
+ "\tmovs r0, 0x1\n"
+ "\tmov r9, r0\n"
+ "\tmovs r1, 0x2\n"
+ "\tmov r8, r1\n"
+ "\tb _0809C646\n"
+ "_0809C56A:\n"
+ "\tmovs r0, 0x1\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C5D4\n"
+ "\tbl sub_809CAB0\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C5D4\n"
+ "\tldr r0, _0809C588 @ =gUnknown_020384E9\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _0809C58C\n"
+ "\tmovs r0, 0x8\n"
+ "\tb _0809C658\n"
+ "\t.align 2, 0\n"
+ "_0809C588: .4byte gUnknown_020384E9\n"
+ "_0809C58C:\n"
+ "\tmovs r0, 0\n"
+ "\tbl sub_809CE4C\n"
+ "\tsubs r0, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tasrs r0, 24\n"
+ "\tcmp r0, 0x4\n"
+ "\tbhi _0809C5D4\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _0809C5A8 @ =_0809C5AC\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+ "\tmov pc, r0\n"
+ "\t.align 2, 0\n"
+ "_0809C5A8: .4byte _0809C5AC\n"
+ "\t.align 2, 0\n"
+ "_0809C5AC:\n"
+ "\t.4byte _0809C5C0\n"
+ "\t.4byte _0809C5C4\n"
+ "\t.4byte _0809C5C8\n"
+ "\t.4byte _0809C5CC\n"
+ "\t.4byte _0809C5D0\n"
+ "_0809C5C0:\n"
+ "\tmovs r0, 0xB\n"
+ "\tb _0809C658\n"
+ "_0809C5C4:\n"
+ "\tmovs r0, 0xC\n"
+ "\tb _0809C658\n"
+ "_0809C5C8:\n"
+ "\tmovs r0, 0xD\n"
+ "\tb _0809C658\n"
+ "_0809C5CC:\n"
+ "\tmovs r0, 0xE\n"
+ "\tb _0809C658\n"
+ "_0809C5D0:\n"
+ "\tmovs r0, 0xF\n"
+ "\tb _0809C658\n"
+ "_0809C5D4:\n"
+ "\tldr r2, _0809C5E4 @ =gMain\n"
+ "\tldrh r1, [r2, 0x2E]\n"
+ "\tmovs r0, 0x2\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C5E8\n"
+ "\tmovs r0, 0x10\n"
+ "\tb _0809C658\n"
+ "\t.align 2, 0\n"
+ "_0809C5E4: .4byte gMain\n"
+ "_0809C5E8:\n"
+ "\tldr r0, _0809C600 @ =gSaveBlock2\n"
+ "\tldrb r0, [r0, 0x13]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _0809C612\n"
+ "\tldrh r1, [r2, 0x2C]\n"
+ "\tmovs r0, 0x80\n"
+ "\tlsls r0, 2\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C604\n"
+ "\tmovs r0, 0xA\n"
+ "\tb _0809C658\n"
+ "\t.align 2, 0\n"
+ "_0809C600: .4byte gSaveBlock2\n"
+ "_0809C604:\n"
+ "\tmovs r0, 0x80\n"
+ "\tlsls r0, 1\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C612\n"
+ "\tmovs r0, 0x9\n"
+ "\tb _0809C658\n"
+ "_0809C612:\n"
+ "\tldrh r1, [r2, 0x2E]\n"
+ "\tmovs r0, 0x4\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C624\n"
+ "\tbl sub_809CD88\n"
+ "\tmovs r0, 0\n"
+ "\tb _0809C658\n"
+ "_0809C624:\n"
+ "\tmovs r3, 0\n"
+ "\tmov r9, r3\n"
+ "\tb _0809C656\n"
+ "_0809C62A:\n"
+ "\tmovs r0, 0x1\n"
+ "\tmov r9, r0\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r2, r0]\n"
+ "\tcmp r0, 0x5\n"
+ "\tble _0809C642\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r1, 0xFA\n"
+ "\tlsls r1, 24\n"
+ "_0809C63C:\n"
+ "\tadds r0, r1\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tb _0809C648\n"
+ "_0809C642:\n"
+ "\tmovs r3, 0x2\n"
+ "\tmov r8, r3\n"
+ "_0809C646:\n"
+ "\tmovs r4, 0\n"
+ "_0809C648:\n"
+ "\tmov r0, r9\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C656\n"
+ "\tmov r0, r8\n"
+ "\tadds r1, r4, 0\n"
+ "\tbl sub_809AF18\n"
+ "_0809C656:\n"
+ "\tmov r0, r9\n"
+ "_0809C658:\n"
+ "\tpop {r3,r4}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+#ifdef NONMATCHING
+u8 sub_809C664(void)
+{
+ s8 r10 = gUnknown_020384E4;
+ s8 r4 = gUnknown_020384E5;
+ u8 r8;
+ u8 r9;
+
+ gPokemonStorageSystemPtr->unk_11df = 0;
+ gPokemonStorageSystemPtr->unk_11de = 0;
+ gPokemonStorageSystemPtr->unk_11e3 = 0;
+ r9 = FALSE;
+ r8 = 0;
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (--r4 < 0)
+ r4 = 6;
+ if (r4 != gUnknown_020384E5)
+ r8 = 1;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (++r4 > 6)
+ r4 = 0;
+ if (r4 != gUnknown_020384E5)
+ r8 = 1;
+ }
+ else if ((gMain.newAndRepeatedKeys & DPAD_LEFT) && gUnknown_020384E5)
+ {
+ r8 = 1;
+ gPokemonStorageSystemPtr->unk_11e2 = gUnknown_020384E5;
+ r4 = 0;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ if (gUnknown_020384E5 == 0)
+ {
+ r8 = 1;
+ r4 = gPokemonStorageSystemPtr->unk_11e2;
+ }
+ else
+ {
+ r8 = 6;
+ r10 = 0;
+ r4 = 0;
+ }
+ }
+ else
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if (gUnknown_020384E5 == 6)
+ {
+ if (gPokemonStorageSystemPtr->unk_0005 == 1)
+ return 4;
+ r9 = TRUE;
+ }
+ else if (sub_809CAB0())
+ {
+ if (gUnknown_020384E9 == 0)
+ return 8;
+ switch (sub_809CE4C(0))
+ {
+ case 1:
+ return 11;
+ case 2:
+ return 12;
+ case 3:
+ return 13;
+ case 4:
+ return 14;
+ case 5:
+ return 15;
+ }
+ }
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ if (gPokemonStorageSystemPtr->unk_0005 == 1)
+ return 16;
+ r9 = TRUE;
+ }
+ if (!r9)
+ {
+ r8 = 6;
+ r10 = 0;
+ r4 = 0;
+ }
+ else if (gMain.newKeys & SELECT_BUTTON)
+ {
+ sub_809CD88();
+ return 0;
+ }
+ }
+ if (r8)
+ sub_809AF18(r10, r4);
+ return r8;
+}
+#else
+__attribute__((naked)) u8 sub_809C664(void)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tldr r0, _0809C6D8 @ =gUnknown_020384E4\n"
+ "\tldrb r0, [r0]\n"
+ "\tmov r10, r0\n"
+ "\tldr r7, _0809C6DC @ =gUnknown_020384E5\n"
+ "\tldrb r4, [r7]\n"
+ "\tldr r2, _0809C6E0 @ =gPokemonStorageSystemPtr\n"
+ "\tldr r5, [r2]\n"
+ "\tldr r1, _0809C6E4 @ =0x000011df\n"
+ "\tadds r0, r5, r1\n"
+ "\tmovs r1, 0\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r3, _0809C6E8 @ =0x000011de\n"
+ "\tadds r0, r5, r3\n"
+ "\tstrb r1, [r0]\n"
+ "\tadds r3, 0x5\n"
+ "\tadds r0, r5, r3\n"
+ "\tstrb r1, [r0]\n"
+ "\tmov r9, r1\n"
+ "\tmov r8, r1\n"
+ "\tldr r1, _0809C6EC @ =gMain\n"
+ "\tldrh r3, [r1, 0x30]\n"
+ "\tmovs r0, 0x40\n"
+ "\tands r0, r3\n"
+ "\tadds r6, r7, 0\n"
+ "\tmov r12, r2\n"
+ "\tadds r2, r1, 0\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C6A8\n"
+ "\tb _0809C81C\n"
+ "_0809C6A8:\n"
+ "\tmovs r0, 0x80\n"
+ "\tands r0, r3\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C6F0\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r1, 0x80\n"
+ "\tlsls r1, 17\n"
+ "\tadds r0, r1\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tasrs r0, 24\n"
+ "\tcmp r0, 0x6\n"
+ "\tble _0809C6C2\n"
+ "\tmovs r4, 0\n"
+ "_0809C6C2:\n"
+ "\tlsls r0, r4, 24\n"
+ "\tasrs r0, 24\n"
+ "\tmovs r1, 0\n"
+ "\tldrsb r1, [r6, r1]\n"
+ "\tcmp r0, r1\n"
+ "\tbne _0809C6D0\n"
+ "\tb _0809C83C\n"
+ "_0809C6D0:\n"
+ "\tmovs r2, 0x1\n"
+ "\tmov r8, r2\n"
+ "\tb _0809C842\n"
+ "\t.align 2, 0\n"
+ "_0809C6D8: .4byte gUnknown_020384E4\n"
+ "_0809C6DC: .4byte gUnknown_020384E5\n"
+ "_0809C6E0: .4byte gPokemonStorageSystemPtr\n"
+ "_0809C6E4: .4byte 0x000011df\n"
+ "_0809C6E8: .4byte 0x000011de\n"
+ "_0809C6EC: .4byte gMain\n"
+ "_0809C6F0:\n"
+ "\tmovs r0, 0x20\n"
+ "\tands r0, r3\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C714\n"
+ "\tldrb r1, [r6]\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r6, r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C714\n"
+ "\tmovs r3, 0x1\n"
+ "\tmov r8, r3\n"
+ "\tldr r2, _0809C710 @ =0x000011e2\n"
+ "\tadds r0, r5, r2\n"
+ "\tstrb r1, [r0]\n"
+ "\tmovs r4, 0\n"
+ "\tb _0809C83C\n"
+ "\t.align 2, 0\n"
+ "_0809C710: .4byte 0x000011e2\n"
+ "_0809C714:\n"
+ "\tldrh r1, [r2, 0x30]\n"
+ "\tmovs r0, 0x10\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C748\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r6, r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _0809C73C\n"
+ "\tmovs r3, 0x1\n"
+ "\tmov r8, r3\n"
+ "\tmov r1, r12\n"
+ "\tldr r0, [r1]\n"
+ "\tldr r2, _0809C738 @ =0x000011e2\n"
+ "\tadds r0, r2\n"
+ "\tldrb r4, [r0]\n"
+ "\tb _0809C83C\n"
+ "\t.align 2, 0\n"
+ "_0809C738: .4byte 0x000011e2\n"
+ "_0809C73C:\n"
+ "\tmovs r3, 0x6\n"
+ "\tmov r8, r3\n"
+ "\tmovs r0, 0\n"
+ "\tmov r10, r0\n"
+ "\tmovs r4, 0\n"
+ "\tb _0809C83C\n"
+ "_0809C748:\n"
+ "\tldrh r1, [r2, 0x2E]\n"
+ "\tmovs r0, 0x1\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C7D0\n"
+ "\tmovs r0, 0\n"
+ "\tldrsb r0, [r6, r0]\n"
+ "\tcmp r0, 0x6\n"
+ "\tbne _0809C76E\n"
+ "\tmov r1, r12\n"
+ "\tldr r0, [r1]\n"
+ "\tldrb r0, [r0, 0x5]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _0809C768\n"
+ "\tmovs r0, 0x4\n"
+ "\tb _0809C84C\n"
+ "_0809C768:\n"
+ "\tmovs r2, 0x1\n"
+ "\tmov r9, r2\n"
+ "\tb _0809C7D0\n"
+ "_0809C76E:\n"
+ "\tbl sub_809CAB0\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C7D0\n"
+ "\tldr r0, _0809C784 @ =gUnknown_020384E9\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _0809C788\n"
+ "\tmovs r0, 0x8\n"
+ "\tb _0809C84C\n"
+ "\t.align 2, 0\n"
+ "_0809C784: .4byte gUnknown_020384E9\n"
+ "_0809C788:\n"
+ "\tmovs r0, 0\n"
+ "\tbl sub_809CE4C\n"
+ "\tsubs r0, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tasrs r0, 24\n"
+ "\tcmp r0, 0x4\n"
+ "\tbhi _0809C7D0\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _0809C7A4 @ =_0809C7A8\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+ "\tmov pc, r0\n"
+ "\t.align 2, 0\n"
+ "_0809C7A4: .4byte _0809C7A8\n"
+ "\t.align 2, 0\n"
+ "_0809C7A8:\n"
+ "\t.4byte _0809C7BC\n"
+ "\t.4byte _0809C7C0\n"
+ "\t.4byte _0809C7C4\n"
+ "\t.4byte _0809C7C8\n"
+ "\t.4byte _0809C7CC\n"
+ "_0809C7BC:\n"
+ "\tmovs r0, 0xB\n"
+ "\tb _0809C84C\n"
+ "_0809C7C0:\n"
+ "\tmovs r0, 0xC\n"
+ "\tb _0809C84C\n"
+ "_0809C7C4:\n"
+ "\tmovs r0, 0xD\n"
+ "\tb _0809C84C\n"
+ "_0809C7C8:\n"
+ "\tmovs r0, 0xE\n"
+ "\tb _0809C84C\n"
+ "_0809C7CC:\n"
+ "\tmovs r0, 0xF\n"
+ "\tb _0809C84C\n"
+ "_0809C7D0:\n"
+ "\tldr r2, _0809C7EC @ =gMain\n"
+ "\tldrh r1, [r2, 0x2E]\n"
+ "\tmovs r0, 0x2\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C7F8\n"
+ "\tldr r0, _0809C7F0 @ =gPokemonStorageSystemPtr\n"
+ "\tldr r0, [r0]\n"
+ "\tldrb r0, [r0, 0x5]\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _0809C7F4\n"
+ "\tmovs r0, 0x10\n"
+ "\tb _0809C84C\n"
+ "\t.align 2, 0\n"
+ "_0809C7EC: .4byte gMain\n"
+ "_0809C7F0: .4byte gPokemonStorageSystemPtr\n"
+ "_0809C7F4:\n"
+ "\tmovs r3, 0x1\n"
+ "\tmov r9, r3\n"
+ "_0809C7F8:\n"
+ "\tmov r0, r9\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C80A\n"
+ "\tmovs r1, 0x6\n"
+ "\tmov r8, r1\n"
+ "\tmovs r2, 0\n"
+ "\tmov r10, r2\n"
+ "\tmovs r4, 0\n"
+ "\tb _0809C83C\n"
+ "_0809C80A:\n"
+ "\tldrh r1, [r2, 0x2E]\n"
+ "\tmovs r0, 0x4\n"
+ "\tands r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0809C83C\n"
+ "\tbl sub_809CD88\n"
+ "\tmovs r0, 0\n"
+ "\tb _0809C84C\n"
+ "_0809C81C:\n"
+ "\tlsls r0, r4, 24\n"
+ "\tmovs r3, 0xFF\n"
+ "\tlsls r3, 24\n"
+ "\tadds r0, r3\n"
+ "\tlsrs r4, r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbge _0809C82C\n"
+ "\tmovs r4, 0x6\n"
+ "_0809C82C:\n"
+ "\tlsls r0, r4, 24\n"
+ "\tasrs r0, 24\n"
+ "\tmovs r1, 0\n"
+ "\tldrsb r1, [r7, r1]\n"
+ "\tcmp r0, r1\n"
+ "\tbeq _0809C83C\n"
+ "\tmovs r0, 0x1\n"
+ "\tmov r8, r0\n"
+ "_0809C83C:\n"
+ "\tmov r1, r8\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _0809C84A\n"
+ "_0809C842:\n"
+ "\tmov r0, r10\n"
+ "\tadds r1, r4, 0\n"
+ "\tbl sub_809AF18\n"
+ "_0809C84A:\n"
+ "\tmov r0, r8\n"
+ "_0809C84C:\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");
+}
+#endif
diff --git a/src/pokemon/pokemon_storage_system_5.c b/src/pokemon/pokemon_storage_system_5.c
new file mode 100644
index 000000000..b7c3d42f5
--- /dev/null
+++ b/src/pokemon/pokemon_storage_system_5.c
@@ -0,0 +1,16 @@
+
+// Includes
+#include "global.h"
+#include "pokemon_storage_system.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+EWRAM_DATA struct UnkStruct_2000020 *gUnknown_020384EC = NULL;
+
+// Static ROM declarations
+
+// .rodata
+
+// .text
diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index 9563bc08f..9c621780a 100644
--- a/src/pokemon/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
@@ -29,7 +29,7 @@
#include "strings2.h"
#include "task.h"
#include "tv.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
static void sub_809FC0C(void);
static void sub_809FEB8(void);
@@ -41,11 +41,11 @@ static void sub_80A0090(struct Pokemon *);
static void sub_80A015C(struct Pokemon *);
static void sub_809DE44(void);
static void sub_809EB40(u8);
-static void sub_809EBC4(void);
-static void sub_809E044(void);
+/*static*/ void sub_809EBC4(void);
+/*static*/ void sub_809E044(void);
static void sub_80A1D84(struct Pokemon *);
-static void sub_80A18C4(void);
-static bool8 LoadPokemonSummaryScreenGraphics(void);
+/*static*/ void sub_80A18C4(void);
+/*static*/ bool8 LoadPokemonSummaryScreenGraphics(void);
static bool8 MonKnowsMultipleMoves(struct Pokemon *);
static void PrintSummaryWindowHeaderText(void);
static void sub_80A1DCC(struct Pokemon *);
@@ -63,8 +63,8 @@ static void PrintHeldItemName(u16, u8, u8);
static void PrintNumRibbons(struct Pokemon *);
static void DrawExperienceProgressBar(struct Pokemon *, u8, u8);
static void sub_809E13C(u8 taskId);
-static void sub_80A1950(void);
-static void sub_809DE64(void);
+/*static*/ void sub_80A1950(void);
+/*static*/ void sub_809DE64(void);
static void SummaryScreenHandleAButton(u8);
static void SummaryScreenHandleUpDownInput(u8, s8);
static bool8 sub_809F7D0(u8);
@@ -121,16 +121,14 @@ extern u8 ball_number_to_ball_processing_index(u16);
extern u8 StorageSystemGetNextMonIndex(struct BoxPokemon *, u8, u8, u8);
extern struct MusicPlayerInfo gMPlay_BGM;
-extern u8 gUnknown_020384F0;
extern u8 gUnknown_08208238[];
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern TaskFunc gUnknown_03005CF0;
-extern struct Sprite *gUnknown_020384F4;
extern struct SpriteTemplate gUnknown_02024E8C;
extern const u8 gStatusPal_Icons[];
@@ -146,7 +144,6 @@ extern const u8 gUnknown_08E74E88[];
extern const u8 gUnknown_08E73508[];
extern const u8 gStatusScreen_Gfx[];
extern const u8 gFontDefaultPalette[];
-extern const u8 gUnknownPalette_81E6692[];
extern const u8 gAbilityNames[][13];
extern const u8 * const gAbilityDescriptions[];
extern const u8 * const gContestEffectStrings[];
@@ -157,6 +154,9 @@ extern const u16 gUnknown_08E94550[];
extern const u16 gUnknown_08E94590[];
extern const u8 gUnknown_08E73E88[];
+EWRAM_DATA u8 gUnknown_020384F0 = 0;
+EWRAM_DATA struct Sprite *gUnknown_020384F4 = NULL;
+
#if ENGLISH
#include "../data/text/move_descriptions_en.h"
#include "../data/text/nature_names_en.h"
@@ -571,7 +571,43 @@ static const u8 sUnknown_083C15BC[] = {
-1, 15, 0, 10,
};
-
+#if DEBUG
+__attribute__((naked))
+void sub_809D844(void)
+{
+ asm("\
+ push {lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ bl RunTasks\n\
+ bl AnimateSprites\n\
+ bl BuildOamBuffer\n\
+ bl UpdatePaletteFade\n\
+ ldr r0, ._2 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._1 @cond_branch\n\
+ ldr r0, ._2 + 4 @ gLink\n\
+ ldr r1, ._2 + 8 @ 0xfbd\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x3\n\
+ str r1, [sp]\n\
+ mov r1, #0x14\n\
+ mov r2, #0x1\n\
+ mov r3, #0x2\n\
+ bl debug_sub_8008264\n\
+._1:\n\
+ add sp, sp, #0x4\n\
+ pop {r0}\n\
+ bx r0\n\
+._3:\n\
+ .align 2, 0\n\
+._2:\n\
+ .word gLinkOpen\n\
+ .word gLink\n\
+ .word 0xfbd");
+}
+#else
void sub_809D844(void)
{
RunTasks();
@@ -579,6 +615,7 @@ void sub_809D844(void)
BuildOamBuffer();
UpdatePaletteFade();
}
+#endif
void sub_809D85C(void)
{
@@ -586,8 +623,8 @@ void sub_809D85C(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
@@ -688,11 +725,493 @@ void sub_809DA1C(void)
}
}
+#if DEBUG
+__attribute__((naked))
+bool8 sub_809DA84(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ add sp, sp, #0xfffffff8\n\
+ ldr r1, ._52 @ gMain\n\
+ ldr r2, ._52 + 4 @ 0x43c\n\
+ add r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ mov ip, r1\n\
+ cmp r0, #0x16\n\
+ bls ._50 @cond_branch\n\
+ b ._51\n\
+._50:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._52 + 8 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._53:\n\
+ .align 2, 0\n\
+._52:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+ .word ._54\n\
+._54:\n\
+ .word ._55\n\
+ .word ._56\n\
+ .word ._57\n\
+ .word ._58\n\
+ .word ._59\n\
+ .word ._60\n\
+ .word ._61\n\
+ .word ._62\n\
+ .word ._63\n\
+ .word ._64\n\
+ .word ._65\n\
+ .word ._66\n\
+ .word ._67\n\
+ .word ._68\n\
+ .word ._69\n\
+ .word ._70\n\
+ .word ._71\n\
+ .word ._72\n\
+ .word ._73\n\
+ .word ._74\n\
+ .word ._75\n\
+ .word ._76\n\
+ .word ._77\n\
+._55:\n\
+ mov r0, #0x0\n\
+ bl SetVBlankCallback\n\
+ bl ResetSpriteData\n\
+ b ._146\n\
+._56:\n\
+ bl ScanlineEffect_Stop\n\
+ ldr r1, ._80 @ gMain\n\
+ ldr r2, ._80 + 4 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._81:\n\
+ .align 2, 0\n\
+._80:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._57:\n\
+ bl FreeAllSpritePalettes\n\
+ b ._146\n\
+._58:\n\
+ mov r2, #0xc0\n\
+ lsl r2, r2, #0x13\n\
+ mov r3, #0x80\n\
+ lsl r3, r3, #0x9\n\
+ mov r5, #0x0\n\
+ ldr r1, ._85 @ 0x40000d4\n\
+ mov r4, #0x80\n\
+ lsl r4, r4, #0x5\n\
+ ldr r6, ._85 + 4 @ 0x85000400\n\
+ mov r7, #0x85\n\
+ lsl r7, r7, #0x18\n\
+._83:\n\
+ str r5, [sp, #0x4]\n\
+ add r0, sp, #0x4\n\
+ str r0, [r1]\n\
+ str r2, [r1, #0x4]\n\
+ str r6, [r1, #0x8]\n\
+ ldr r0, [r1, #0x8]\n\
+ add r2, r2, r4\n\
+ sub r3, r3, r4\n\
+ cmp r3, r4\n\
+ bhi ._83 @cond_branch\n\
+ str r5, [sp, #0x4]\n\
+ add r0, sp, #0x4\n\
+ str r0, [r1]\n\
+ str r2, [r1, #0x4]\n\
+ lsr r0, r3, #0x2\n\
+ orr r0, r0, r7\n\
+ str r0, [r1, #0x8]\n\
+ ldr r0, [r1, #0x8]\n\
+ ldr r1, ._85 + 8 @ 0x43c\n\
+ add r1, r1, ip\n\
+ b ._153\n\
+._86:\n\
+ .align 2, 0\n\
+._85:\n\
+ .word 0x40000d4\n\
+ .word 0x85000400\n\
+ .word 0x43c\n\
+._59:\n\
+ bl sub_809DE64\n\
+ ldr r1, ._88 @ gMain\n\
+ ldr r2, ._88 + 4 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._89:\n\
+ .align 2, 0\n\
+._88:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._60:\n\
+ ldr r0, ._91 @ gWindowTemplate_81E6E6C\n\
+ bl Text_LoadWindowTemplate\n\
+ b ._146\n\
+._92:\n\
+ .align 2, 0\n\
+._91:\n\
+ .word gWindowTemplate_81E6E6C\n\
+._61:\n\
+ ldr r0, ._94 @ gWindowTemplate_81E6E6C\n\
+ bl MultistepInitMenuWindowBegin\n\
+ ldr r1, ._94 + 4 @ gMain\n\
+ ldr r2, ._94 + 8 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._95:\n\
+ .align 2, 0\n\
+._94:\n\
+ .word gWindowTemplate_81E6E6C\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._62:\n\
+ bl MultistepInitMenuWindowContinue\n\
+ cmp r0, #0\n\
+ bne ._96 @cond_branch\n\
+ b ._157\n\
+._96:\n\
+ b ._146\n\
+._63:\n\
+ bl sub_809DA1C\n\
+ ldr r1, ._100 @ gMain\n\
+ ldr r2, ._100 + 4 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._101:\n\
+ .align 2, 0\n\
+._100:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._64:\n\
+ ldr r1, ._103 @ gSummaryScreenTextTiles\n\
+ ldr r2, ._103 + 4 @ 0x600d000\n\
+ ldr r0, ._103 + 8 @ 0x40000d4\n\
+ str r1, [r0]\n\
+ str r2, [r0, #0x4]\n\
+ ldr r1, ._103 + 12 @ 0x800000a0\n\
+ str r1, [r0, #0x8]\n\
+ ldr r1, [r0, #0x8]\n\
+ ldr r1, ._103 + 16 @ sSummaryScreenButtonTiles\n\
+ ldr r2, ._103 + 20 @ 0x600d140\n\
+ str r1, [r0]\n\
+ str r2, [r0, #0x4]\n\
+ ldr r1, ._103 + 24 @ 0x80000080\n\
+ str r1, [r0, #0x8]\n\
+ ldr r0, [r0, #0x8]\n\
+ ldr r0, ._103 + 28 @ \n\
+ add r0, r0, #0x74\n\
+ mov r1, #0x0\n\
+ strb r1, [r0]\n\
+ ldr r1, ._103 + 32 @ \n\
+ add r1, r1, ip\n\
+ b ._153\n\
+._104:\n\
+ .align 2, 0\n\
+._103:\n\
+ .word gSummaryScreenTextTiles\n\
+ .word 0x600d000\n\
+ .word 0x40000d4\n\
+ .word 0x800000a0\n\
+ .word sSummaryScreenButtonTiles\n\
+ .word 0x600d140\n\
+ .word 0x80000080\n\
+ .word +0x2018000\n\
+ .word 0x43c\n\
+._65:\n\
+ bl LoadPokemonSummaryScreenGraphics\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._105 @cond_branch\n\
+ b ._157\n\
+._105:\n\
+ ldr r0, ._108 @ \n\
+ add r0, r0, #0x74\n\
+ mov r1, #0x0\n\
+ strb r1, [r0]\n\
+ b ._146\n\
+._109:\n\
+ .align 2, 0\n\
+._108:\n\
+ .word +0x2018000\n\
+._66:\n\
+ bl sub_80A18C4\n\
+ ldr r1, ._111 @ gMain\n\
+ ldr r2, ._111 + 4 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._112:\n\
+ .align 2, 0\n\
+._111:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._67:\n\
+ ldr r4, ._115 @ \n\
+ add r0, r4, #0\n\
+ bl sub_809F678\n\
+ add r0, r4, #0\n\
+ bl GetMonStatusAndPokerus\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._113 @cond_branch\n\
+ mov r0, #0x0\n\
+ bl sub_80A12D0\n\
+ b ._114\n\
+._116:\n\
+ .align 2, 0\n\
+._115:\n\
+ .word +0x2018010\n\
+._113:\n\
+ mov r0, #0xa\n\
+ bl sub_80A12D0\n\
+._114:\n\
+ ldr r0, ._118 @ \n\
+ bl DrawPokerusSurvivorDot\n\
+ b ._146\n\
+._119:\n\
+ .align 2, 0\n\
+._118:\n\
+ .word +0x2018010\n\
+._68:\n\
+ bl sub_80A1950\n\
+ ldr r0, ._121 @ \n\
+ bl sub_80A1D84\n\
+ ldr r1, ._121 + 4 @ \n\
+ ldr r2, ._121 + 8 @ \n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._122:\n\
+ .align 2, 0\n\
+._121:\n\
+ .word +0x2018010\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._69:\n\
+ ldr r4, ._124 @ \n\
+ add r0, r4, #0\n\
+ bl sub_80A1DE8\n\
+ add r4, r4, #0x64\n\
+ mov r0, #0x0\n\
+ strb r0, [r4]\n\
+ b ._146\n\
+._125:\n\
+ .align 2, 0\n\
+._124:\n\
+ .word +0x2018010\n\
+._70:\n\
+ ldr r4, ._129 @ \n\
+ add r5, r4, #0\n\
+ add r5, r5, #0x64\n\
+ add r0, r4, #0\n\
+ add r1, r5, #0\n\
+ bl sub_809F6B4\n\
+ sub r4, r4, #0x10\n\
+ strb r0, [r4, #0xc]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0xff\n\
+ bne ._126 @cond_branch\n\
+ b ._157\n\
+._126:\n\
+ mov r0, #0x0\n\
+ strb r0, [r5]\n\
+ ldr r1, ._129 + 4 @ \n\
+ ldr r2, ._129 + 8 @ \n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._130:\n\
+ .align 2, 0\n\
+._129:\n\
+ .word +0x2018010\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._71:\n\
+ bl sub_809E044\n\
+ bl DrawSummaryScreenNavigationDots\n\
+ b ._146\n\
+._72:\n\
+ ldr r1, ._134 @ \n\
+ ldrb r0, [r1, #0xb]\n\
+ cmp r0, #0x1\n\
+ bhi ._132 @cond_branch\n\
+ ldr r0, ._134 + 4 @ \n\
+ ldrb r1, [r1, #0xb]\n\
+ lsl r1, r1, #0x2\n\
+ add r1, r1, r0\n\
+ ldr r0, [r1]\n\
+ bl _call_via_r0\n\
+._132:\n\
+ ldr r1, ._134 + 8 @ \n\
+ ldr r2, ._134 + 12 @ \n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._135:\n\
+ .align 2, 0\n\
+._134:\n\
+ .word +0x2018000\n\
+ .word sUnknown_083C1580\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._73:\n\
+ ldr r0, ._137 @ \n\
+ bl sub_809FAC8\n\
+ b ._146\n\
+._138:\n\
+ .align 2, 0\n\
+._137:\n\
+ .word +0x2018010\n\
+._74:\n\
+ ldr r2, ._140 @ sUnknown_083C1598\n\
+ ldr r0, ._140 + 4 @ \n\
+ ldrb r1, [r0, #0xb]\n\
+ lsl r1, r1, #0x2\n\
+ add r1, r1, r2\n\
+ add r0, r0, #0x10\n\
+ ldr r1, [r1]\n\
+ bl _call_via_r1\n\
+ ldr r1, ._140 + 8 @ \n\
+ ldr r2, ._140 + 12 @ \n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._141:\n\
+ .align 2, 0\n\
+._140:\n\
+ .word sUnknown_083C1598\n\
+ .word +0x2018000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._75:\n\
+ ldr r0, ._144 @ \n\
+ mov r1, #0x2d\n\
+ bl GetMonData\n\
+ add r1, r0, #0\n\
+ cmp r1, #0\n\
+ beq ._142 @cond_branch\n\
+ ldr r1, ._144 + 4 @ \n\
+ mov r2, #0x80\n\
+ lsl r2, r2, #0x1\n\
+ add r0, r2, #0\n\
+ strh r0, [r1]\n\
+ b ._146\n\
+._145:\n\
+ .align 2, 0\n\
+._144:\n\
+ .word +0x2018010\n\
+ .word gBattle_BG3_X\n\
+._142:\n\
+ ldr r0, ._147 @ gBattle_BG3_X\n\
+ strh r1, [r0]\n\
+ b ._146\n\
+._148:\n\
+ .align 2, 0\n\
+._147:\n\
+ .word gBattle_BG3_X\n\
+._76:\n\
+ bl sub_809EBC4\n\
+ ldr r0, ._151 @ \n\
+ add r0, r0, #0x79\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._149 @cond_branch\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl sub_80A1488\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl sub_80A1654\n\
+ b ._150\n\
+._152:\n\
+ .align 2, 0\n\
+._151:\n\
+ .word +0x2018000\n\
+._149:\n\
+ mov r0, #0xa\n\
+ mov r1, #0x0\n\
+ bl sub_80A1488\n\
+ mov r0, #0xa\n\
+ mov r1, #0x0\n\
+ bl sub_80A1654\n\
+._150:\n\
+ bl PrintSummaryWindowHeaderText\n\
+ ldr r1, ._154 @ gMain\n\
+ ldr r2, ._154 + 4 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._153\n\
+._155:\n\
+ .align 2, 0\n\
+._154:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._77:\n\
+ bl sub_8055870\n\
+ cmp r0, #0x1\n\
+ beq ._157 @cond_branch\n\
+._146:\n\
+ ldr r1, ._158 @ gMain\n\
+ ldr r0, ._158 + 4 @ 0x43c\n\
+ add r1, r1, r0\n\
+._153:\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ b ._157\n\
+._159:\n\
+ .align 2, 0\n\
+._158:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._51:\n\
+ ldr r0, ._162 @ sub_809D85C\n\
+ bl SetVBlankCallback\n\
+ mov r0, #0x1\n\
+ str r0, [sp]\n\
+ mov r0, #0xff\n\
+ mov r1, #0x0\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginHardwarePaletteFade\n\
+ ldr r0, ._162 + 4 @ sub_809D844\n\
+ bl SetMainCallback2\n\
+ ldr r2, ._162 + 8 @ gPaletteFade\n\
+ ldrb r1, [r2, #0x8]\n\
+ mov r0, #0x7f\n\
+ and r0, r0, r1\n\
+ strb r0, [r2, #0x8]\n\
+ ldr r0, ._162 + 12 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._160 @cond_branch\n\
+ ldr r0, ._162 + 16 @ 0x600dde0\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x8\n\
+ ldr r2, ._162 + 20 @ 0x600f000\n\
+ mov r3, #0x3\n\
+ bl debug_sub_8008218\n\
+._160:\n\
+ mov r0, #0x1\n\
+ b ._161\n\
+._163:\n\
+ .align 2, 0\n\
+._162:\n\
+ .word sub_809D85C+1\n\
+ .word sub_809D844+1\n\
+ .word gPaletteFade\n\
+ .word gLinkOpen\n\
+ .word 0x600dde0\n\
+ .word 0x600f000\n\
+._157:\n\
+ mov r0, #0x0\n\
+._161:\n\
+ add sp, sp, #0x8\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r1}\n\
+ bx r1");
+}
+#else
bool8 sub_809DA84(void)
{
- const u16 *src;
- void *dest;
-
switch (gMain.state)
{
case 0:
@@ -701,7 +1220,7 @@ bool8 sub_809DA84(void)
gMain.state++;
break;
case 1:
- remove_some_task();
+ ScanlineEffect_Stop();
gMain.state++;
break;
case 2:
@@ -709,8 +1228,7 @@ bool8 sub_809DA84(void)
gMain.state++;
break;
case 3:
- dest = (void *)VRAM;
- DmaClearLarge(3, dest, 0x10000, 0x1000, 32);
+ DmaClearLarge(3, (void *)(VRAM + 0x0), 0x10000, 0x1000, 32);
gMain.state++;
break;
case 4:
@@ -718,11 +1236,11 @@ bool8 sub_809DA84(void)
gMain.state++;
break;
case 5:
- SetUpWindowConfig(&gWindowConfig_81E6E6C);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6E6C);
gMain.state++;
break;
case 6:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E6E6C);
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E6E6C);
gMain.state++;
break;
case 7:
@@ -736,14 +1254,8 @@ bool8 sub_809DA84(void)
gMain.state++;
break;
case 9:
- src = gSummaryScreenTextTiles;
- dest = (void *)VRAM + 0xD000;
- DmaCopy16(3, src, dest, 320);
-
- src = sSummaryScreenButtonTiles;
- dest = (void *)VRAM + 0xD140;
- DmaCopy16(3, src, dest, 256);
-
+ DmaCopy16Defvars(3, gSummaryScreenTextTiles, (void *)(VRAM + 0xD000), 320);
+ DmaCopy16Defvars(3, sSummaryScreenButtonTiles, (void *)(VRAM + 0xD140), 256);
pssData.loadGfxState = 0;
gMain.state++;
break;
@@ -813,11 +1325,11 @@ bool8 sub_809DA84(void)
case 20:
if (GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
{
- gUnknown_030041B0 = 256;
+ gBattle_BG3_X = 256;
}
else
{
- gUnknown_030041B0 = 0;
+ gBattle_BG3_X = 0;
}
gMain.state++;
@@ -855,13 +1367,15 @@ bool8 sub_809DA84(void)
return FALSE;
}
+#endif
static void sub_809DE44(void)
{
- while (sub_809DA84() != TRUE && sub_80F9344() != TRUE);
+ while (sub_809DA84() != TRUE && sub_80F9344() != TRUE)
+ ;
}
-static void sub_809DE64(void)
+/*static*/ void sub_809DE64(void)
{
REG_BG0CNT = 0x1E08;
REG_BG1CNT = 0x4801;
@@ -872,8 +1386,8 @@ static void sub_809DE64(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
@@ -888,7 +1402,7 @@ static void sub_809DE64(void)
REG_DISPCNT = 0x1F40;
}
-static bool8 LoadPokemonSummaryScreenGraphics(void)
+/*static*/ bool8 LoadPokemonSummaryScreenGraphics(void)
{
switch (pssData.loadGfxState)
{
@@ -938,23 +1452,23 @@ static bool8 LoadPokemonSummaryScreenGraphics(void)
return FALSE;
}
-static void sub_809E044(void)
+/*static*/ void sub_809E044(void)
{
- LoadPalette(&gUnknownPalette_81E6692[28], 129, 2);
- LoadPalette(&gUnknownPalette_81E6692[30], 136, 2);
- LoadPalette(&gUnknownPalette_81E6692[28], 143, 2);
- LoadPalette(&gUnknownPalette_81E6692[30], 137, 2);
- LoadPalette(&gUnknownPalette_81E6692[12], 209, 4);
- LoadPalette(&gUnknownPalette_81E6692[20], 211, 4);
- LoadPalette(&gUnknownPalette_81E6692[28], 213, 4);
- LoadPalette(&gUnknownPalette_81E6692[12], 215, 4);
- LoadPalette(&gUnknownPalette_81E6692[8], 217, 4);
- LoadPalette(&gUnknownPalette_81E6692[16], 219, 4);
- LoadPalette(&gUnknownPalette_81E6692[4], 221, 2);
- LoadPalette(&gUnknownPalette_81E6692[6], 222, 2);
- LoadPalette(&gUnknownPalette_81E6692[2], 223, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 14, 129, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 15, 136, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 14, 143, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 15, 137, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 6, 209, 4);
+ LoadPalette(gUnknownPalette_81E6692 + 10, 211, 4);
+ LoadPalette(gUnknownPalette_81E6692 + 14, 213, 4);
+ LoadPalette(gUnknownPalette_81E6692 + 6, 215, 4);
+ LoadPalette(gUnknownPalette_81E6692 + 4, 217, 4);
+ LoadPalette(gUnknownPalette_81E6692 + 8, 219, 4);
+ LoadPalette(gUnknownPalette_81E6692 + 2, 221, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 3, 222, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 1, 223, 2);
LoadPalette(gFontDefaultPalette, 240, 32);
- LoadPalette(&gUnknownPalette_81E6692[6], 249, 2);
+ LoadPalette(gUnknownPalette_81E6692 + 3, 249, 2);
}
static void SummaryScreenExit(u8 taskId)
@@ -1037,7 +1551,7 @@ static void sub_809E260(u8 taskId)
{
if (pssData.page == PSS_PAGE_CONTEST_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
{
- MenuZeroFillWindowRect(0, 14, 9, 18);
+ Menu_EraseWindowRect(0, 14, 9, 18);
}
SummaryScreenHandleLeftRightInput(taskId, -1);
@@ -1048,7 +1562,7 @@ static void sub_809E260(u8 taskId)
{
if (pssData.page == PSS_PAGE_BATTLE_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
{
- MenuZeroFillWindowRect(0, 14, 9, 18);
+ Menu_EraseWindowRect(0, 14, 9, 18);
}
SummaryScreenHandleLeftRightInput(taskId, 1);
@@ -1482,8 +1996,8 @@ static void sub_809EAC8(u8 taskId)
sub_80A1B1C(9);
sub_80A16CC(1);
- MenuZeroFillWindowRect(15, 12, 28, 13);
- MenuZeroFillWindowRect(11, 15, 28, 18);
+ Menu_EraseWindowRect(15, 12, 28, 13);
+ Menu_EraseWindowRect(11, 15, 28, 18);
pssData.headerActionTextId = 6;
PrintSummaryWindowHeaderText();
@@ -1517,7 +2031,7 @@ static void sub_809EB40(u8 taskId)
}
}
-static void sub_809EBC4(void)
+/*static*/ void sub_809EBC4(void)
{
if (pssData.page != PSS_PAGE_INFO)
{
@@ -2176,11 +2690,11 @@ void sub_809F43C(u8 taskId)
pssData.loadGfxState = 0;
if (GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
{
- gUnknown_030041B0 = 256;
+ gBattle_BG3_X = 256;
}
else
{
- gUnknown_030041B0 = 0;
+ gBattle_BG3_X = 0;
}
gMain.state++;
@@ -2254,7 +2768,7 @@ static void sub_809F678(struct Pokemon *mon)
else
{
struct BoxPokemon *mons = pssData.monList.boxMons;
- sub_803B4B4(&mons[pssData.monIndex], mon);
+ ExpandBoxMon(&mons[pssData.monIndex], mon);
}
}
@@ -2371,7 +2885,7 @@ void sub_809F814(u8 taskId)
{
if (pssData.page == PSS_PAGE_CONTEST_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
{
- MenuZeroFillWindowRect(0, 14, 9, 18);
+ Menu_EraseWindowRect(0, 14, 9, 18);
}
gTasks[taskId].func = sub_809E260;
@@ -2387,7 +2901,7 @@ void sub_809F814(u8 taskId)
{
if (pssData.page == PSS_PAGE_BATTLE_MOVES && (pssData.selectedMoveIndex != 4 || pssData.moveToLearn != 0))
{
- MenuZeroFillWindowRect(0, 14, 9, 18);
+ Menu_EraseWindowRect(0, 14, 9, 18);
}
gTasks[taskId].func = sub_809E260;
@@ -2414,8 +2928,8 @@ static void sub_809F9D0(u8 taskId, u8 b)
sub_80A1488(-2, 4);
sub_80A1654(-2, 4);
- MenuZeroFillWindowRect(11, 15, 28, 18);
- MenuPrint(gOtherText_CantForgetHMs, 11, 15);
+ Menu_EraseWindowRect(11, 15, 28, 18);
+ Menu_PrintText(gOtherText_CantForgetHMs, 11, 15);
gTasks[taskId].func = sub_809F814;
}
@@ -2494,9 +3008,9 @@ static void sub_809FAC8(struct Pokemon *mon)
if (GetMonData(mon, MON_DATA_IS_EGG))
{
- MenuZeroFillWindowRect(1, 2, 4, 3);
- MenuZeroFillWindowRect(3, 16, 9, 17);
- MenuZeroFillWindowRect(0, 12, 11, 15);
+ Menu_EraseWindowRect(1, 2, 4, 3);
+ Menu_EraseWindowRect(3, 16, 9, 17);
+ Menu_EraseWindowRect(0, 12, 11, 15);
GetMonNickname(mon, gStringVar1);
sub_80A1FF8(gStringVar1, 13, 3, 16);
LoadPalette(sUnknown_083C157C, 4, 2);
@@ -2520,7 +3034,7 @@ static void sub_809FAC8(struct Pokemon *mon)
}
else
{
- MenuZeroFillWindowRect(1, 2, 4, 3);
+ Menu_EraseWindowRect(1, 2, 4, 3);
}
buffer = gStringVar1;
@@ -2530,7 +3044,7 @@ static void sub_809FAC8(struct Pokemon *mon)
buffer[1] = 0x13;
buffer[2] = 0x3C;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 1, 12);
+ Menu_PrintText(gStringVar1, 1, 12);
sub_80A0958(mon);
}
@@ -2545,12 +3059,12 @@ static void sub_809FBE4(void)
sub_80A1918(i, 1);
}
- MenuZeroFillWindowRect(11, 4, 29, 18);
+ Menu_EraseWindowRect(11, 4, 29, 18);
}
static void sub_809FC0C(void)
{
- MenuPrint(gOtherText_Type2, 11, 6);
+ Menu_PrintText(gOtherText_Type2, 11, 6);
GetStringCenterAlignXOffset(0, 22, 4);
GetStringCenterAlignXOffset(2, 23, 4);
}
@@ -2569,38 +3083,38 @@ static void sub_809FC34(struct Pokemon *mon)
sub_80A1918(i, 1);
}
- MenuZeroFillWindowRect(11, 9, 28, 12);
+ Menu_EraseWindowRect(11, 9, 28, 12);
if (GetMonData(mon, MON_DATA_IS_EGG))
{
buffer = gStringVar1;
buffer = sub_80A1E58(buffer, 13);
buffer = StringCopy(buffer, gOtherText_OriginalTrainer);
- buffer = StringCopy(buffer, gOtherText_FiveQuestionsAndSlash);
+ buffer = StringCopy(buffer, gOtherText_FiveQuestions);
buffer[0] = EXT_CTRL_CODE_BEGIN;
buffer[1] = 0x13;
buffer[2] = 0x4E;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 11, 4);
+ Menu_PrintText(gStringVar1, 11, 4);
- sub_80A1EF8(gOtherText_FiveQuestionsAndSlash, 13, 193, 32, 1);
+ sub_80A1EF8(gOtherText_FiveQuestions, 13, 193, 32, 1);
sub_80A198C(9, 120, 48, 0);
friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
if (friendship < 6)
{
- MenuPrint(gOtherText_EggAbout, 11, 9);
+ Menu_PrintText(gOtherText_EggAbout, 11, 9);
}
else if (friendship < 11)
{
- MenuPrint(gOtherText_EggSoon, 11, 9);
+ Menu_PrintText(gOtherText_EggSoon, 11, 9);
}
else if (friendship < 41)
{
- MenuPrint(gOtherText_EggSomeTime, 11, 9);
+ Menu_PrintText(gOtherText_EggSomeTime, 11, 9);
}
else
{
- MenuPrint(gOtherText_EggLongTime, 11, 9);
+ Menu_PrintText(gOtherText_EggLongTime, 11, 9);
}
PokemonSummaryScreen_PrintEggTrainerMemo(mon, 11, 14);
@@ -2629,7 +3143,7 @@ static void sub_809FC34(struct Pokemon *mon)
buffer[1] = 0x13;
buffer[2] = 0x4E;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 11, 4);
+ Menu_PrintText(gStringVar1, 11, 4);
sub_80A1F98(GetMonData(mon, MON_DATA_OT_ID) & 0xFFFF, 13, 5, 2, 193, 32, 1);
@@ -2642,7 +3156,7 @@ static void sub_809FC34(struct Pokemon *mon)
ability = GetAbilityBySpecies(GetMonData(mon, MON_DATA_SPECIES), GetMonData(mon, MON_DATA_ALT_ABILITY));
sub_80A1FF8(gAbilityNames[ability], 13, 11, 9);
- MenuPrint(gAbilityDescriptions[ability], 11, 11);
+ Menu_PrintText(gAbilityDescriptions[ability], 11, 11);
PokemonSummaryScreen_PrintTrainerMemo(mon, 11, 14);
}
@@ -2656,17 +3170,17 @@ static void sub_809FE6C(struct Pokemon *mon)
static void sub_809FE80(void)
{
- MenuZeroFillWindowRect(14, 4, 18, 5);
- MenuZeroFillWindowRect(25, 4, 30, 5);
- MenuZeroFillWindowRect(11, 9, 28, 12);
- MenuZeroFillWindowRect(11, 14, 28, 17);
+ Menu_EraseWindowRect(14, 4, 18, 5);
+ Menu_EraseWindowRect(25, 4, 30, 5);
+ Menu_EraseWindowRect(11, 9, 28, 12);
+ Menu_EraseWindowRect(11, 14, 28, 17);
}
static void sub_809FEB8(void)
{
sub_80A1FF8(gOtherText_ExpPoints, 13, 11, 14);
sub_80A1FF8(gOtherText_NextLv, 13, 11, 16);
- MenuPrint(gOtherText_Terminator18, 21, 16);
+ Menu_PrintText(gOtherText_Terminator18, 21, 16);
sub_80A1F48(gOtherText_HP, 13, 11, 7, 42);
sub_80A1F48(gOtherText_Attack, 13, 11, 9, 42);
@@ -2716,7 +3230,7 @@ static void sub_809FF64(struct Pokemon *mon)
*buffer++ = CHAR_SLASH;
buffer = sub_8072C14(buffer, GetMonData(mon, MON_DATA_MAX_HP), 48, 1);
- MenuPrint_PixelCoords(gStringVar1, 126, 56, 1);
+ Menu_PrintTextPixelCoords(gStringVar1, 126, 56, 1);
}
static void sub_80A0090(struct Pokemon *mon)
@@ -2727,12 +3241,12 @@ static void sub_80A0090(struct Pokemon *mon)
static void sub_80A00A4(void)
{
- MenuZeroFillWindowRect(11, 4, 19, 5);
- MenuZeroFillWindowRect(16, 7, 21, 8);
- MenuZeroFillWindowRect(17, 9, 21, 12);
- MenuZeroFillWindowRect(27, 7, 29, 12);
- MenuZeroFillWindowRect(22, 14, 28, 15);
- MenuZeroFillWindowRect(23, 16, 28, 17);
+ Menu_EraseWindowRect(11, 4, 19, 5);
+ Menu_EraseWindowRect(16, 7, 21, 8);
+ Menu_EraseWindowRect(17, 9, 21, 12);
+ Menu_EraseWindowRect(27, 7, 29, 12);
+ Menu_EraseWindowRect(22, 14, 28, 15);
+ Menu_EraseWindowRect(23, 16, 28, 17);
}
static void sub_80A00F4(u8 a)
@@ -2770,7 +3284,7 @@ static void sub_80A015C(struct Pokemon *mon)
{
sub_80A1918(i, 1);
sub_80A1FF8(gOtherText_OneDash, 13, 15, (2 * i) + 4);
- MenuPrint(gOtherText_TwoDashes, 26, (2 * i) + 4);
+ Menu_PrintText(gOtherText_TwoDashes, 26, (2 * i) + 4);
}
else
{
@@ -2793,7 +3307,7 @@ static void sub_80A015C(struct Pokemon *mon)
buffer = sub_8072C14(buffer, curPP, 14, 1);
*buffer++ = CHAR_SLASH;
sub_8072C14(buffer, maxPP, 32, 1);
- MenuPrint(gStringVar1, 25, (2 * i) + 4);
+ Menu_PrintText(gStringVar1, 25, (2 * i) + 4);
}
}
}
@@ -2829,7 +3343,7 @@ static void sub_80A029C(struct Pokemon *mon)
buffer = sub_8072C14(buffer, pp, 14, 1);
*buffer++ = CHAR_SLASH;
buffer = sub_8072C14(buffer, pp, 32, 1);
- MenuPrint(gStringVar1, 25, 12);
+ Menu_PrintText(gStringVar1, 25, 12);
}
static void sub_80A0390(void)
@@ -2838,7 +3352,7 @@ static void sub_80A0390(void)
for (i = 0; i < MAX_MON_MOVES; i++)
{
- MenuZeroFillWindowRect(15, (i * 2) + 4, 28, (i * 2) + 5);
+ Menu_EraseWindowRect(15, (i * 2) + 4, 28, (i * 2) + 5);
}
}
@@ -2883,7 +3397,7 @@ void sub_80A03F0(struct Pokemon *mon, u8 *selectedMoveIndex)
static void sub_80A0428(struct Pokemon *mon, u8 *selectedMoveIndex)
{
u16 move = sub_80A03BC(mon, *selectedMoveIndex);
- MenuZeroFillWindowRect(11, 15, 28, 18);
+ Menu_EraseWindowRect(11, 15, 28, 18);
if (pssData.page == PSS_PAGE_BATTLE_MOVES)
{
@@ -2901,14 +3415,14 @@ static void sub_80A046C(u16 move)
{
if (move == 0xFFFF) return;
- MenuPrint(gMoveDescriptions[move - 1], 11, 15);
+ Menu_PrintText(gMoveDescriptions[move - 1], 11, 15);
}
static void sub_80A0498(u16 move)
{
if (move == 0xFFFF) return;
- MenuPrint(gContestEffectStrings[gContestMoves[move].effect], 11, 15);
+ Menu_PrintText(gContestEffectStrings[gContestMoves[move].effect], 11, 15);
}
static void sub_80A04CC(u16 move)
@@ -2921,26 +3435,26 @@ static void sub_80A04CC(u16 move)
{
buffer = gStringVar1;
buffer = sub_8072C74(buffer, gOtherText_ThreeDashes2, 21, 1);
- MenuPrint(gStringVar1, 7, 15);
+ Menu_PrintText(gStringVar1, 7, 15);
}
else
{
buffer = gStringVar1;
buffer = sub_8072C14(buffer, gBattleMoves[move].power, 21, 1);
- MenuPrint(gStringVar1, 7, 15);
+ Menu_PrintText(gStringVar1, 7, 15);
}
if (gBattleMoves[move].accuracy == 0)
{
buffer = gStringVar1;
buffer = sub_8072C74(buffer, gOtherText_ThreeDashes2, 21, 1);
- MenuPrint(gStringVar1, 7, 17);
+ Menu_PrintText(gStringVar1, 7, 17);
}
else
{
buffer = gStringVar1;
buffer = sub_8072C14(buffer, gBattleMoves[move].accuracy, 21, 1);
- MenuPrint(gStringVar1, 7, 17);
+ Menu_PrintText(gStringVar1, 7, 17);
}
}
@@ -3127,7 +3641,7 @@ bool8 PokemonSummaryScreen_CheckOT(struct Pokemon *mon)
u8 enemyId = GetMultiplayerId() ^ 1;
trainerId = gLinkPlayers[enemyId].trainerId & 0xFFFF;
StringCopy(gStringVar1, gLinkPlayers[enemyId].name);
- StripExtCtrlCodes(gStringVar1);
+ Text_StripExtCtrlCodes(gStringVar1);
}
else
{
@@ -3153,7 +3667,7 @@ static void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 lef
if (!(gameMet == VERSION_RUBY || gameMet == VERSION_SAPPHIRE || gameMet == VERSION_EMERALD))
{
- MenuPrint(gOtherText_EggObtainedInTrade, left, top);
+ Menu_PrintText(gOtherText_EggObtainedInTrade, left, top);
return;
}
@@ -3162,13 +3676,13 @@ static void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 lef
if (locationMet == 255)
{
// Eggs received from Pokemon Box.
- MenuPrint(gOtherText_EggNicePlace, left, top);
+ Menu_PrintText(gOtherText_EggNicePlace, left, top);
return;
}
if (!PokemonSummaryScreen_CheckOT(mon))
{
- MenuPrint(gOtherText_EggObtainedInTrade, left, top);
+ Menu_PrintText(gOtherText_EggObtainedInTrade, left, top);
return;
}
@@ -3176,11 +3690,11 @@ static void PokemonSummaryScreen_PrintEggTrainerMemo(struct Pokemon *mon, u8 lef
if (locationMet == 253)
{
- MenuPrint(gOtherText_EggHotSprings, left, top);
+ Menu_PrintText(gOtherText_EggHotSprings, left, top);
return;
}
- MenuPrint(gOtherText_EggDayCare, left, top);
+ Menu_PrintText(gOtherText_EggDayCare, left, top);
}
static void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *mon, u8 left, u8 top)
@@ -3285,7 +3799,7 @@ static void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *mon, u8 left,
}
}
- MenuPrint(gStringVar4, left++, top++);
+ Menu_PrintText(gStringVar4, left++, top++);
}
static void sub_80A0958(struct Pokemon *mon)
@@ -3310,8 +3824,8 @@ static void sub_80A0958(struct Pokemon *mon)
buffer[2] = 0x50;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 0, 14);
- MenuZeroFillWindowRect(3, 16, 9, 17);
+ Menu_PrintText(gStringVar1, 0, 14);
+ Menu_EraseWindowRect(3, 16, 9, 17);
level = GetMonData(mon, MON_DATA_LEVEL);
@@ -3325,7 +3839,7 @@ static void sub_80A0958(struct Pokemon *mon)
buffer[2] = 0x20;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 3, 16);
+ Menu_PrintText(gStringVar1, 3, 16);
sub_80A0A2C(mon, 7, 16);
}
@@ -3343,7 +3857,7 @@ static void sub_80A0A2C(struct Pokemon *mon, u8 left, u8 top)
{
default:
bottom = top + 1;
- MenuZeroFillWindowRect(left, top, left, bottom);
+ Menu_EraseWindowRect(left, top, left, bottom);
return;
case MON_MALE:
genderSymbol = gOtherText_MaleSymbol2;
@@ -3406,7 +3920,7 @@ static void PrintNumRibbons(struct Pokemon *mon)
ConvertIntToDecimalStringN(&text[3], numRibbons, 1, 2);
}
- MenuPrint(sUnknown_083C15AE, 21, 4);
+ Menu_PrintText(sUnknown_083C15AE, 21, 4);
}
static void PrintHeldItemName(u16 itemId, u8 left, u8 top)
@@ -3427,7 +3941,7 @@ static void PrintHeldItemName(u16 itemId, u8 left, u8 top)
CopyItemName(itemId, gStringVar1);
}
- MenuPrint(sUnknown_083C15B4, left, top);
+ Menu_PrintText(sUnknown_083C15B4, left, top);
}
static void DrawExperienceProgressBar(struct Pokemon *mon, u8 left, u8 top)
@@ -3518,7 +4032,7 @@ static void PrintSummaryWindowHeaderText(void)
buffer[2] = 0x58;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 0, 0);
+ Menu_PrintText(gStringVar1, 0, 0);
if (pssData.headerActionTextId != 0)
{
@@ -3527,7 +4041,7 @@ static void PrintSummaryWindowHeaderText(void)
}
else
{
- MenuZeroFillWindowRect(23, 0, 24, 1);
+ Menu_EraseWindowRect(23, 0, 24, 1);
}
buffer = gStringVar1;
@@ -3539,7 +4053,7 @@ static void PrintSummaryWindowHeaderText(void)
buffer[2] = 0x28;
buffer[3] = EOS;
- MenuPrint(gStringVar1, 25, 0);
+ Menu_PrintText(gStringVar1, 25, 0);
}
// If the given pokemon previously had the pokerus virus, a small
@@ -3622,16 +4136,14 @@ static void DrawSummaryScreenNavigationDots(void)
}
}
- dest = (void *)(VRAM + 0xE016);
- DmaCopy16(3, arr, dest, 16);
+ DmaCopy16Defvars(3, arr, (void *)(VRAM + 0xE016), 16);
for (i = 0; i < 8; i++)
{
arr[i] += 0x10;
}
- dest = (void *)(VRAM + 0xE056);
- DmaCopy16(3, arr, dest, 16);
+ DmaCopy16Defvars(3, arr, (void *)(VRAM + 0xE056), 16);
}
#else
__attribute__((naked))
@@ -4138,7 +4650,7 @@ static void sub_80A12D0(s8 a)
{
u8 newTaskId;
- MenuZeroFillWindowRect(1, 18, 5, 19);
+ Menu_EraseWindowRect(1, 18, 5, 19);
sub_80A18E4(29);
newTaskId = CreateTask(sub_80A1048, 0);
@@ -4194,14 +4706,14 @@ static void sub_80A12D0(s8 a)
// }
// else
// {
-// MenuZeroFillWindowRect(0, 19, 9, 19);
+// Menu_EraseWindowRect(0, 19, 9, 19);
// }
// if (gTasks[taskId].data[0] == 0 || gTasks[taskId].data[1] < 0)
// {
// if (pssData.page == PSS_PAGE_BATTLE_MOVES)
// {
-// MenuZeroFillWindowRect(0, 14, 9, 18);
+// Menu_EraseWindowRect(0, 14, 9, 18);
// sub_80A0958(pssData.loadedMon);
// if (GetMonStatusAndPokerus(pssData.loadedMon))
@@ -4327,7 +4839,7 @@ _080A13F4:\n\
movs r1, 0x13\n\
movs r2, 0x9\n\
movs r3, 0x13\n\
- bl MenuZeroFillWindowRect\n\
+ bl Menu_EraseWindowRect\n\
_080A1400:\n\
movs r1, 0\n\
ldrsh r0, [r7, r1]\n\
@@ -4346,7 +4858,7 @@ _080A1410:\n\
movs r1, 0xE\n\
movs r2, 0x9\n\
movs r3, 0x12\n\
- bl MenuZeroFillWindowRect\n\
+ bl Menu_EraseWindowRect\n\
adds r4, 0x10\n\
adds r0, r4, 0\n\
bl sub_80A0958\n\
@@ -4404,7 +4916,7 @@ static void sub_80A1488(s8 a, u8 b)
if (pssData.page == PSS_PAGE_BATTLE_MOVES)
{
- MenuZeroFillWindowRect(0, 14, 9, 19);
+ Menu_EraseWindowRect(0, 14, 9, 19);
}
taskId = FindTaskIdByFunc(sub_80A1334);
@@ -4531,7 +5043,7 @@ _080A15C0:\n\
movs r1, 0x13\n\
movs r2, 0x9\n\
movs r3, 0x13\n\
- bl MenuZeroFillWindowRect\n\
+ bl Menu_EraseWindowRect\n\
_080A15CC:\n\
movs r1, 0\n\
ldrsh r0, [r7, r1]\n\
@@ -4550,7 +5062,7 @@ _080A15DC:\n\
movs r1, 0xE\n\
movs r2, 0x9\n\
movs r3, 0x12\n\
- bl MenuZeroFillWindowRect\n\
+ bl Menu_EraseWindowRect\n\
adds r4, 0x10\n\
adds r0, r4, 0\n\
bl sub_80A0958\n\
@@ -4606,7 +5118,7 @@ static void sub_80A1654(s8 a, u8 b)
if (pssData.page == PSS_PAGE_CONTEST_MOVES)
{
- MenuZeroFillWindowRect(0, 14, 9, 19);
+ Menu_EraseWindowRect(0, 14, 9, 19);
}
taskId = FindTaskIdByFunc(sub_80A1500);
@@ -4886,7 +5398,7 @@ static void sub_80A1888(struct Sprite *sprite)
}
}
-static void sub_80A18C4(void)
+/*static*/ void sub_80A18C4(void)
{
u8 i;
@@ -4910,7 +5422,7 @@ static void sub_80A1918(u8 a, u8 invisible)
gSprites[ewram1A000[a]].invisible = invisible;
}
-static void sub_80A1950(void)
+/*static*/ void sub_80A1950(void)
{
u8 i;
@@ -5272,7 +5784,7 @@ u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8 id)
{
u8 arr[3];
- sub_8072CD4(&arr[0], &arr[1], &arr[2]);
+ Menu_GetTextColors(&arr[0], &arr[1], &arr[2]);
dest = sub_80A1E58(dest, id);
dest = StringCopy(dest, src);
@@ -5295,7 +5807,7 @@ u8 *sub_80A1E9C(u8 *dest, const u8 *src, u8 id)
static void sub_80A1EF8(const u8 *text, u8 id, u8 left, u16 top, s32 e)
{
sub_80A1E9C(gStringVar4, text, id);
- MenuPrint_PixelCoords(gStringVar4, left, top, (bool8)e);
+ Menu_PrintTextPixelCoords(gStringVar4, left, top, (bool8)e);
}
static void sub_80A1F48(const u8 *text, u8 id, u8 c, u8 d, u16 e)
@@ -5313,7 +5825,7 @@ static void sub_80A1F98(s32 value, u8 id, u8 n, u8 mode, u8 left, u16 top, s32 e
static void sub_80A1FF8(const u8 *text, u8 id, u8 left, u8 top)
{
sub_80A1E9C(gStringVar4, text, id);
- MenuPrint(gStringVar4, left, top);
+ Menu_PrintText(gStringVar4, left, top);
}
u8 *PokemonSummaryScreen_CopyPokemonLevel(u8 *dest, u8 level)
diff --git a/src/pokenav_after.c b/src/pokenav_after.c
index 84ed7b14b..330305ea3 100644
--- a/src/pokenav_after.c
+++ b/src/pokenav_after.c
@@ -6,16 +6,10 @@
#include "de_rom_8040FE0.h"
#include "string_util.h"
-void sub_80F700C(u8 *arg0, u16 arg1) {
- struct Trainer *trainer;
- u8 *ptr;
-
-#if ENGLISH
- trainer = (struct Trainer *) &gTrainers[gUnknown_083DFEC4->unkCEE8[arg1].unk0];
-#elif GERMAN
- const u16 trainerIndex = gUnknown_083DFEC4->unkCEE8[arg1].unk0;
- trainer = (struct Trainer *) &gTrainers[trainerIndex];
-#endif
+void sub_80F700C(u8 *arg0, u16 arg1)
+{
+ const struct Trainer *trainer = &gTrainers[gUnknown_083DFEC4->unkCEE8[arg1].unk0];
+ u8 *ptr = arg0;
ptr = arg0;
if (arg1 < gUnknown_083DFEC4->unkD158)
@@ -23,7 +17,7 @@ void sub_80F700C(u8 *arg0, u16 arg1) {
#if ENGLISH
ptr = StringCopy(ptr, gTrainerClassNames[trainer->trainerClass]);
#elif GERMAN
- ptr = StringCopy(ptr, de_sub_8041024(0, trainerIndex));
+ ptr = StringCopy(ptr, de_sub_8041024(0, gUnknown_083DFEC4->unkCEE8[arg1].unk0));
#endif
ptr[0] = 0xFC;
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 7693cba7d..4f7eb66b4 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -18,73 +18,72 @@
#include "sound.h"
#include "task.h"
#include "text.h"
-#include "unknown_task.h"
-
-extern u8 ewram[];
-
-struct UnknownPokenav0 {
- /* 0x0000 */ u8 var0[0x0300];
- /* 0x0300 */ void (*var300)(void);
- /* 0x0304 */ u16 var304;
- /* 0x0306 */ u16 var306;
- /* 0x0308 */ u32 var308;
- /* 0x030C */ u8 fill030C[0x6a9f];
- /* 0x6dab */ u8 var6dab;
- /* 0x6dac */ u8 var6dac;
- /* 0x6dad */ u8 var6dad;
- /* 0x6dae */ u8 var6dae;
- /* 0x6daf */ u8 fill6daf[0x3];
- /* 0x6db2 */ u8 var6db2[5];
- /* 0x6db7 */ u8 fill6db7[0x25];
- /* 0x6ddc */ s8 var6ddc;
- /* 0x6ddd */ u8 fill6ddd[0x13];
- /* 0x6df0 */ s8 var6df0;
- /* 0x6df1 */ u8 fill6df1[0xB];
- /* 0x6dfc */ u8 var6dfc;
- /* 0x6dfd */ u8 fill6dfd[0x17];
- /* 0x6e14 */ u8 var6e14;
- /* 0x6e15 */ u8 var6e15;
- /* 0x6e16 */ u8 var6e16;
- /* 0x6e17 */ u8 var6e17;
- /* 0x6e18 */ u8 fill6e18[0x78];
- /* 0x6e90 */ u8 var6e90;
- /* 0x6e91 */ u8 fill6e91[0x4];
- /* 0x6e95 */ u8 var6e95;
- /* 0x6e96 */ u8 var6e96[0x814];
- /* 0x76AA */ u8 var76aa;
- /* 0x76AB */ u8 fill76AB[0x10BD];
- /* 0x8768 */ u32 var8768;
- /* 0x876C */ u8 fill876C[0x2];
- /* 0x876E */ u8 var876E;
- /* 0x876F */ u8 fill876F[0x5];
- /* 0x8774 */ s16 var8774;
- /* 0x8776 */ u8 fill8776[0x55];
- /* 0x87CB */ u8 var87CB;
- /* 0x87CC */ u8 fill87CC[0xC];
- /* 0x87D8 */ u8 var87D8;
- /* 0x87D9 */ u8 fill87D9[0x1];
- /* 0x87DA */ s16 var87DA;
- /* 0x87DC */ s16 var87DC;
- /* 0x87DE */ u8 fill87DE[0x4a];
- /* 0x8828 */ u8 playerPartyCount;
- /* 0x8829 */ u8 fill8829[0x07bf];
- /* 0x8FE8 */ s8 var8fe8;
- /* 0x8FE9 */ u8 fill8FE9[0x16];
- /* 0x8FFF */ u8 var8fff[5];
- /* 0x9004 */ u8 fill9004[0x340];
- /* 0x9344 */ u8 var9344;
- /* 0x9345 */ u8 fill9345[0x3b8b];
- /* 0xced0 */ u32 varCED0;
- /* 0xced4 */ u8 fillCED4[0x284];
- /* 0xD158 */ u16 varD158;
- /* 0xD15A */ u8 fillD15A[0x8];
- /* 0xD162 */ u8 varD162;
+#include "scanline_effect.h"
+
+struct UnknownPokenav0
+{
+ /* 0x0000 */ u8 var0[0x0300];
+ /* 0x0300 */ void (*var300)(void);
+ /* 0x0304 */ u16 var304;
+ /* 0x0306 */ u16 var306;
+ /* 0x0308 */ u32 var308;
+ /* 0x030C */ u8 fill030C[0x6a9f];
+ /* 0x6dab */ u8 var6dab;
+ /* 0x6dac */ u8 var6dac;
+ /* 0x6dad */ u8 var6dad;
+ /* 0x6dae */ u8 var6dae;
+ /* 0x6daf */ u8 fill6daf[0x3];
+ /* 0x6db2 */ u8 var6db2[5];
+ /* 0x6db7 */ u8 fill6db7[0x25];
+ /* 0x6ddc */ s8 var6ddc;
+ /* 0x6ddd */ u8 fill6ddd[0x13];
+ /* 0x6df0 */ s8 var6df0;
+ /* 0x6df1 */ u8 fill6df1[0xB];
+ /* 0x6dfc */ u8 var6dfc;
+ /* 0x6dfd */ u8 fill6dfd[0x17];
+ /* 0x6e14 */ u8 var6e14;
+ /* 0x6e15 */ u8 var6e15;
+ /* 0x6e16 */ u8 var6e16;
+ /* 0x6e17 */ u8 var6e17;
+ /* 0x6e18 */ u8 fill6e18[0x78];
+ /* 0x6e90 */ u8 var6e90;
+ /* 0x6e91 */ u8 fill6e91[0x4];
+ /* 0x6e95 */ u8 var6e95;
+ /* 0x6e96 */ u8 var6e96[0x814];
+ /* 0x76AA */ u8 var76aa;
+ /* 0x76AB */ u8 fill76AB[0x10BD];
+ /* 0x8768 */ u32 var8768;
+ /* 0x876C */ u8 fill876C[0x2];
+ /* 0x876E */ u8 var876E;
+ /* 0x876F */ u8 fill876F[0x5];
+ /* 0x8774 */ s16 var8774;
+ /* 0x8776 */ u8 fill8776[0x55];
+ /* 0x87CB */ u8 var87CB;
+ /* 0x87CC */ u8 fill87CC[0xC];
+ /* 0x87D8 */ u8 var87D8;
+ /* 0x87D9 */ u8 fill87D9[0x1];
+ /* 0x87DA */ s16 var87DA;
+ /* 0x87DC */ s16 var87DC;
+ /* 0x87DE */ u8 fill87DE[0x4a];
+ /* 0x8828 */ u8 playerPartyCount;
+ /* 0x8829 */ u8 fill8829[0x07bf];
+ /* 0x8FE8 */ s8 var8fe8;
+ /* 0x8FE9 */ u8 fill8FE9[0x16];
+ /* 0x8FFF */ u8 var8fff[5];
+ /* 0x9004 */ u8 fill9004[0x340];
+ /* 0x9344 */ u8 var9344;
+ /* 0x9345 */ u8 fill9345[0x3b8b];
+ /* 0xced0 */ u32 varCED0;
+ /* 0xced4 */ u8 fillCED4[0x284];
+ /* 0xD158 */ u16 varD158;
+ /* 0xD15A */ u8 fillD15A[0x8];
+ /* 0xD162 */ u8 varD162;
};
struct UnknownPokenav0_1 {
- u8 fill6dad[0x6dad];
- s8 var6dad;
- s8 var6dae;
+ u8 fill6dad[0x6dad];
+ s8 var6dad;
+ s8 var6dae;
};
IWRAM_DATA void (*gUnknown_03000744)(void);
@@ -101,7 +100,6 @@ extern const u16 gPokenavConditionSearch2_Pal[];
extern const u8 gUnknown_083E0334[];
extern const u16 gUnknown_083E02B4[];
extern const u8 gPokenavConditionSearch2_Gfx[];
-extern const u8 gUnknownPalette_81E6692[];
extern const u8 gUnknown_083E0254[];
extern const u8 gUnknown_08E9FEB4[];
extern const u8 gUnknown_083E01AC[];
@@ -131,6 +129,10 @@ extern const u8 gUnknown_08E99FB0[];
extern const u8 gUnknown_08E9A100[];
extern const u16 gPokenavHoennMap1_Pal[];
+// TODO: decompile the debug code so the compiler doesn't complain about
+// unused static functions
+#define static
+
static void sub_80EBCA8();
static void sub_80EEE20();
static bool8 sub_80EEE54();
@@ -296,1141 +298,1330 @@ extern void sub_80F19FC();
extern u16 gKeyRepeatStartDelay;
+void sub_80EBA5C()
+{
+ switch (gMain.state)
+ {
+ default:
+ gMain.state = 0;
+ case 0:
+ ewram0_10.var6dac = is_c1_link_related_active();
+ if (!ewram0_10.var6dac)
+ {
+ ewram0_10.var6dab = 0;
+ gMain.state++;
+ SetMainCallback2(&sub_80EBBE8);
+ }
+ break;
+ case 1:
+ SetVBlankCallback(NULL);
+ break;
+ case 2:
+ ResetPaletteFade();
+ break;
+ case 3:
+ ResetSpriteData();
+ break;
+ case 4:
+ FreeAllSpritePalettes();
+ break;
+ case 5:
+ ResetTasks();
+ break;
+ case 6:
+ ScanlineEffect_Stop();
+ break;
+ case 7:
+ sub_80F1A90();
+ gMain.state++;
+ case 8:
+ if (sub_80F1AC4())
+ return;
+ break;
+ case 9:
+ sub_80F2688();
+ gMain.state++;
+ // fall through
+ case 10:
+ if (sub_80F26BC())
+ return;
+ break;
+ case 11:
+ sub_80F36F0();
+ gMain.state++;
+ case 12:
+ if (sub_80F3724())
+ return;
+ break;
+ case 13:
+ sub_80EBC10();
+ sub_80EBDBC(&sub_80EBDD8);
+ break;
+ case 14:
+ ewram0_10.var6dab = 1;
+ PlaySE(SE_PN_ON);
+ SetMainCallback2(&sub_80EBD90);
+ SetVBlankCallback(&sub_80EBD18);
+ sub_80F1A74();
+ break;
+ }
-void sub_80EBA5C() {
- switch (gMain.state) {
- default:
- gMain.state = 0;
- case 0:
- ewram0_10.var6dac = is_c1_link_related_active();
- if (!ewram0_10.var6dac) {
- ewram0_10.var6dab = 0;
- gMain.state++;
- SetMainCallback2(&sub_80EBBE8);
- break;
- }
- break;
- case 1:
- SetVBlankCallback(NULL);
- break;
- case 2:
- ResetPaletteFade();
- break;
- case 3:
- ResetSpriteData();
- break;
- case 4:
- FreeAllSpritePalettes();
- break;
- case 5:
- ResetTasks();
- break;
- case 6:
- remove_some_task();
- break;
- case 7:
- sub_80F1A90();
- gMain.state++;
- case 8:
- if (sub_80F1AC4()) return;
- break;
- case 9:
- sub_80F2688();
- gMain.state++;
-
- case 10:
- if (sub_80F26BC()) return;
- break;
- case 11:
- sub_80F36F0();
- gMain.state++;
- case 12:
- if (sub_80F3724()) return;
- break;
- case 13:
- sub_80EBC10();
- sub_80EBDBC(&sub_80EBDD8);
- break;
- case 14:
- ewram0_10.var6dab = 1;
- PlaySE(SE_PN_ON);
- SetMainCallback2(&sub_80EBD90);
- SetVBlankCallback(&sub_80EBD18);
- sub_80F1A74();
- break;
- }
-
- gMain.state++;
+ gMain.state++;
}
-void sub_80EBBE8() {
- u8 var1;
- if (!ewram0_10.var6dab) {
- var1 = ewram0_10.var6dab;
- do {
- sub_80EBA5C();
- var1 = ewram0_10.var6dab;
- } while (!var1);
- }
+void sub_80EBBE8()
+{
+ while (!ewram0_10.var6dab)
+ sub_80EBA5C();
}
-void sub_80EBC10() {
- u16 i;
- u16 *var1;
-
- gKeyRepeatStartDelay = 0x14;
- ewram0_10.playerPartyCount = CalculatePlayerPartyCount();
- ewram0_10.var6ddc = 0;
- ewram0_10.var9344 = 0;
- ewram0_10.var8768 = 0;
- ewram0_10.varCED0 = 0;
-
- for (i = 0; i < 5; ++i) {
- ewram0_10.var8fff[i] = 0;
- var1 = (u16 *)ewram0_10.var0;
- var1[i*2 + 0x4820] = 0x9B;
- var1[i*2 + 0x4821] = 0x5B;
- }
-
- ewram0_10.var6e95 = 0;
- sub_80EBCA8();
+void sub_80EBC10()
+{
+ u16 i;
+ u16 *var1;
+
+ gKeyRepeatStartDelay = 0x14;
+ ewram0_10.playerPartyCount = CalculatePlayerPartyCount();
+ ewram0_10.var6ddc = 0;
+ ewram0_10.var9344 = 0;
+ ewram0_10.var8768 = 0;
+ ewram0_10.varCED0 = 0;
+
+ for (i = 0; i < 5; ++i)
+ {
+ ewram0_10.var8fff[i] = 0;
+ var1 = (u16 *)ewram0_10.var0;
+ var1[i*2 + 0x4820] = 0x9B;
+ var1[i*2 + 0x4821] = 0x5B;
+ }
+
+ ewram0_10.var6e95 = 0;
+ sub_80EBCA8();
}
-void sub_80EBCA8() {
- ewram0_10.var6db2[0] = 1;
- ewram0_10.var6db2[1] = 2;
- ewram0_10.var6db2[2] = 3;
+void sub_80EBCA8()
+{
+ ewram0_10.var6db2[0] = 1;
+ ewram0_10.var6db2[1] = 2;
+ ewram0_10.var6db2[2] = 3;
- if (FlagGet(FLAG_SYS_RIBBON_GET)) {
- ewram0_10.var6db2[3] = 4;
- }
- else {
- ewram0_10.var6db2[3] = 0;
- }
+ if (FlagGet(FLAG_SYS_RIBBON_GET))
+ ewram0_10.var6db2[3] = 4;
+ else
+ ewram0_10.var6db2[3] = 0;
- ewram0_10.var6db2[4] = 5;
+ ewram0_10.var6db2[4] = 5;
}
-void sub_80EBD18() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- sub_80F1FF0();
+void sub_80EBD18()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F1FF0();
}
-void sub_80EBD30() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- UpdateRegionMapVideoRegs();
- sub_80EFE7C();
+void sub_80EBD30()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ UpdateRegionMapVideoRegs();
+ sub_80EFE7C();
}
-void sub_80EBD4C() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- sub_80F5BF0();
- sub_8089668();
+void sub_80EBD4C()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F5BF0();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
-void sub_80EBD68() {
- LoadOam();
- ProcessSpriteCopyRequests();
- TransferPlttBuffer();
- sub_80F6F64();
+void sub_80EBD68()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F6F64();
}
-void sub_80EBD80() {
- LoadOam();
- ProcessSpriteCopyRequests();
+void sub_80EBD80()
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
}
-void sub_80EBD90() {
- ewram0_10.var300();
- AnimateSprites();
- BuildOamBuffer();
- RunTasks();
- UpdatePaletteFade();
- sub_80F19FC();
+void sub_80EBD90()
+{
+ ewram0_10.var300();
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ UpdatePaletteFade();
+ sub_80F19FC();
}
-void sub_80EBDBC(void (*func)(void)) {
- ewram0_10.var300 = func;
- ewram0_10.var304 = 0;
+void sub_80EBDBC(void (*func)(void))
+{
+ ewram0_10.var300 = func;
+ ewram0_10.var304 = 0;
}
-void sub_80EBDD8() {
- switch (ewram0_10.var304) {
- case 0:
- SetVBlankCallback(NULL);
- REG_DISPCNT = 0;
- ewram0_10.var6dad = ewram0_10.var6ddc;
- ewram0_10.var6dae = 5;
- ewram0_10.var304++;
- break;
- case 1:
- sub_80F3FF0();
- ewram0_10.var304++;
- case 2:
- if (sub_80F4024()) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EEE20();
- ewram0_10.var304++;
- case 5:
- if (sub_80EEE54()) return;
- sub_80EEE08();
- ewram0_10.var304++;
- return;
- case 6:
- sub_80EF248(0);
- ewram0_10.var304++;
- case 7:
- if (sub_80EF284(0)) return;
- ewram0_10.var304++;
- break;
- case 8:
- sub_80F1B8C(0);
- ewram0_10.var304++;
- case 9:
- if (sub_80F1BC8(0)) return;
- ewram0_10.var304++;
- break;
- case 10:
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 11:
- BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- ewram0_10.var304++;
- return;
- case 12:
- sub_80EED2C(0);
- ewram0_10.var304++;
- return;
- case 13:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- return;
- case 14:
- sub_80F2C80(0);
- ewram0_10.var304++;
- case 15:
- if (sub_80F2CBC(0)) return;
- ewram0_10.var304++;
- break;
- case 16:
- sub_80F1DF0();
- ewram0_10.var304++;
- return;
- case 17:
- if (!sub_80F1E50()) {
- sub_80EF428(0, 0);
- sub_80EBDBC(&sub_80EC268);
+void sub_80EBDD8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ ewram0_10.var6dad = ewram0_10.var6ddc;
+ ewram0_10.var6dae = 5;
+ ewram0_10.var304++;
+ break;
+ case 1:
+ sub_80F3FF0();
+ ewram0_10.var304++;
+ // fall through
+ case 2:
+ if (!sub_80F4024())
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EEE20();
+ ewram0_10.var304++;
+ // fall through
+ case 5:
+ if (!sub_80EEE54())
+ {
+ sub_80EEE08();
+ ewram0_10.var304++;
}
- return;
-
- }
-
+ break;
+ case 6:
+ sub_80EF248(0);
+ ewram0_10.var304++;
+ // fall through
+ case 7:
+ if (!sub_80EF284(0))
+ ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80F1B8C(0);
+ ewram0_10.var304++;
+ // fall through
+ case 9:
+ if (!sub_80F1BC8(0))
+ ewram0_10.var304++;
+ break;
+ case 10:
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 11:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 13:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 14:
+ sub_80F2C80(0);
+ ewram0_10.var304++;
+ // fall through
+ case 15:
+ if (!sub_80F2CBC(0))
+ ewram0_10.var304++;
+ break;
+ case 16:
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ break;
+ case 17:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(0, 0);
+ sub_80EBDBC(&sub_80EC268);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ }
+ break;
+ }
}
-void sub_80EC00C() {
- switch (ewram0_10.var304) {
- case 0:
- if (!sub_80EEF78()) {
- SetVBlankCallback(&sub_80EBD80);
- sub_80EED1C();
- ewram0_10.var6dad = ewram0_10.var6ddc;
- ewram0_10.var6dae = 5;
- sub_80EEE08();
+void sub_80EC00C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (!sub_80EEF78())
+ {
+ SetVBlankCallback(&sub_80EBD80);
+ sub_80EED1C();
+ ewram0_10.var6dad = ewram0_10.var6ddc;
+ ewram0_10.var6dae = 5;
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ sub_80EF248(0);
+ ewram0_10.var304++;
+ // fall through
+ case 2:
+ if (!sub_80EF284(0))
ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F1B8C(0);
+ ewram0_10.var304++;
+ // fall through
+ case 4:
+ if (!sub_80F1BC8(0))
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 10:
+ sub_80F2C80(0);
+ ewram0_10.var304++;
+ // fall through
+ case 11:
+ if (!sub_80F2CBC(0))
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ break;
+ case 13:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(0, ewram0_10.var6dad);
+ sub_80EBDBC(&sub_80EC268);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
}
break;
- case 1:
- sub_80EF248(0);
- ewram0_10.var304++;
- case 2:
- if (sub_80EF284(0)) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F1B8C(0);
- ewram0_10.var304++;
- case 4:
- if (sub_80F1BC8(0)) return;
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0);
- ewram0_10.var304++;
- break;
- case 8:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- return;
- case 9:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 10:
- sub_80F2C80(0);
- ewram0_10.var304++;
- case 11:
- if (sub_80F2CBC(0)) return;
- ewram0_10.var304++;
- return;
- case 12:
- sub_80F1DF0();
- ewram0_10.var304++;
- return;
- case 13:
- if (sub_80F1E50()) return;
- sub_80EF428(0, ewram0_10.var6dad);
- sub_80EBDBC(&sub_80EC268);
- }
+ }
}
-void sub_80EC210() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F2D04(1);
- sub_80EE9C0(0, ewram0_10.var6ddc, 0);
- ewram0_10.var304++;
+void sub_80EC210()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F2D04(1);
+ sub_80EE9C0(0, ewram0_10.var6ddc, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ sub_80EBDBC(&sub_80EC268);
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80EC268);
- }
+ }
}
-void sub_80EC268() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEC10() != 0) {
- PlaySE(0x5);
- sub_80EF428(0, ewram0_10.var6dad);
- sub_80EED9C();
- break;
- }
- else {
- if (gMain.newKeys & A_BUTTON) {
- ewram0_10.var6ddc = ewram0_10.var6dad;
- switch (ewram0_10.var6db2[ewram0_10.var6ddc] - 1) {
- case 0:
- PlaySE(5);
- sub_80EBDBC(&sub_80EC4A0);
- break;
- case 1:
- PlaySE(5);
- sub_80EBDBC(&sub_80EC81C);
- break;
- case 4:
- ewram0_10.var304 = 1;
- break;
- case 3:
- ewram0_10.var304 = 2;
- break;
- case 2:
- ewram0_10.var304 = 6;
- break;
- }
+void sub_80EC268()
+{
+ u8 var1;
+
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (sub_80EEC10() != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(0, ewram0_10.var6dad);
+ sub_80EED9C();
+ }
+ else
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ ewram0_10.var6ddc = ewram0_10.var6dad;
+ switch (ewram0_10.var6db2[ewram0_10.var6ddc] - 1)
+ {
+ case 0:
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EC4A0);
+ break;
+ case 1:
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EC81C);
+ break;
+ case 4:
+ ewram0_10.var304 = 1;
+ break;
+ case 3:
+ ewram0_10.var304 = 2;
+ break;
+ case 2:
+ ewram0_10.var304 = 6;
+ break;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ ewram0_10.var304 = 1;
+ }
+ }
+ break;
+ case 1:
+ sub_80F208C();
+ sub_80EBDBC(&sub_80EE96C);
+ break;
+ case 2:
+ sub_80F6208();
+ ewram0_10.var304++;
+ // fall through
+ case 3:
+ if (!sub_80F6250())
+ ewram0_10.var304++;
+ break;
+ case 4:
+ if (!sub_8055870())
+ {
+ if (ewram0_10.var8fe8 != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EDB88);
}
- else if (gMain.newKeys & B_BUTTON) {
- ewram0_10.var304 = 1;
+ else
+ {
+ PlaySE(0x20);
+ sub_80EF428(0, 5);
+ ewram0_10.var304 = 0xFF;
}
- break;
}
- case 1:
- sub_80F208C();
- sub_80EBDBC(&sub_80EE96C);
- break;
- case 2:
- sub_80F6208();
- ewram0_10.var304++;
- case 3:
- if (sub_80F6250()) return;
- ewram0_10.var304++;
break;
- case 4:
- if (sub_8055870()) return;
- if (ewram0_10.var8fe8 != 0) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EDB88);
- break;
- }
- else {
- PlaySE(0x20);
- sub_80EF428(0, 5);
- ewram0_10.var304 = 0xFF;
- break;
- }
- case 6:
- sub_80F6C20();
- if (ewram0_10.varD158 != 0) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE3D8);
- break;
- }
- else {
- PlaySE(0x20);
- sub_80EF428(0, 6);
- ewram0_10.var304 = 0xFF;
- break;
- }
- case 0xFF:
- if ((var1 = sub_80EEC10()) != 0) {
- PlaySE(0x5);
- sub_80EF428(0, ewram0_10.var6dad);
- ewram0_10.var304 = 0;
- sub_80EED9C();
- }
- else {
- if (!(gMain.newKeys & (A_BUTTON | B_BUTTON))) return;
+ case 6:
+ sub_80F6C20();
+ if (ewram0_10.varD158 != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE3D8);
+ }
+ else
+ {
+ PlaySE(0x20);
+ sub_80EF428(0, 6);
+ ewram0_10.var304 = 0xFF;
+ }
+ break;
+ case 0xFF:
+ if ((var1 = sub_80EEC10()) != 0)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(0, ewram0_10.var6dad);
+ ewram0_10.var304 = 0;
+ sub_80EED9C();
+ }
+ else if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
sub_80EF428(0, ewram0_10.var6dad);
ewram0_10.var304 = var1;
- break;
}
- }
+ break;
+ }
}
-void sub_80EC4A0() {
- u32 var1;
- u32 var2;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0);
- ewram0_10.var304++;
- break;
- case 1:
- if (!sub_80F1F10()) {
- if (gSaveBlock2.regionMapZoom) {
- var1 = 0x7;
- }
- else var1 = 0x8;
- sub_80EEFBC(var1);
+void sub_80EC4A0()
+{
+ u32 var1;
+
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ if (gSaveBlock2.regionMapZoom)
+ var1 = 0x7;
+ else
+ var1 = 0x8;
+ sub_80EEFBC(var1);
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
ewram0_10.var304++;
}
- break;
- case 2:
- if (!(var2 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var2);
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80EF814();
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80EF840();
+ ewram0_10.var304++;
+ // fall through
+ case 7:
+ if (!sub_80EF874())
ewram0_10.var304++;
- }
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80EF814();
- ewram0_10.var304++;
- break;
- case 6:
- sub_80EF840();
- ewram0_10.var304++;
- case 7:
- if (sub_80EF874()) return;
- ewram0_10.var304++;
- break;
- case 8:
- sub_80F2C80(0x4);
- ewram0_10.var304++;
- case 9:
- if (sub_80F2CBC(0x4)) return;
- ewram0_10.var304++;
- break;
- case 0xA:
- sub_80F2DD8();
- SetVBlankCallback(&sub_80EBD30);
- ewram0_10.var304++;
- break;
- case 0xB:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 0xC:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- ewram0_10.var304++;
- break;
- case 0xD:
- sub_80EED2C(0x1);
- ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80F2C80(0x4);
+ ewram0_10.var304++;
+ // fall through
+ case 9:
+ if (!sub_80F2CBC(0x4))
+ ewram0_10.var304++;
+ break;
+ case 0xA:
+ sub_80F2DD8();
+ SetVBlankCallback(&sub_80EBD30);
+ ewram0_10.var304++;
+ break;
+ case 0xB:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 0xC:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ ewram0_10.var304++;
+ break;
+ case 0xD:
+ sub_80EED2C(0x1);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x75E0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ ewram0_10.var304++;
+ break;
+ case 0xE:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EC67C);
break;
- case 0xE:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EC67C);
- }
+ }
}
-void sub_80EC67C() {
- u32 var1;
- u32 var2;
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80FAB60()) {
- case 1:
- sub_80EED9C();
- break;
- case 3:
- sub_80EF9F8();
- break;
- case 4:
- PlaySE(0x5);
- ewram0_10.var304 = 1;
- break;
- case 5:
- PlaySE(0x5);
- ewram0_10.var304 = 4;
- break;
- }
- break;
- case 1:
- if (!ewram0_10.var6e90) {
+void sub_80EC67C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80FAB60())
+ {
+ case 1:
+ sub_80EED9C();
+ break;
+ case 3:
+ sub_80EF9F8();
+ break;
+ case 4:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 1;
+ break;
+ case 5:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 4;
+ break;
+ }
+ break;
+ case 1:
+ if (!ewram0_10.var6e90)
+ {
+ sub_80FAEC4();
+ ewram0_10.var304++;
+ }
+ else if (!sub_80EFBDC(1))
+ {
sub_80FAEC4();
ewram0_10.var304++;
- break;
}
- if (sub_80EFBDC(1)) return;
- sub_80FAEC4();
- ewram0_10.var304++;
- break;
- case 2:
- if ((var2 = sub_80FAFC0())) return;
- if (!ewram0_10.var6e90) {
+ break;
+ case 2:
+ if (!sub_80FAFC0())
+ {
+ if (!ewram0_10.var6e90)
+ {
+ sub_80EFBB0();
+ ewram0_10.var304 = 0;
+ }
+ else
+ {
+ ewram0_10.var304++;
+ }
+ }
+ break;
+ case 3:
+ if (!sub_80EFBDC(0))
+ {
sub_80EFBB0();
- ewram0_10.var304 = var2;
- break;
+ ewram0_10.var304 = 0;
+ }
+ break;
+ case 4:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!gPaletteFade.active)
+ {
+ sub_80F2DF4();
+ sub_80F2D04(0x4);
+ gSaveBlock2.regionMapZoom = (ewram0_10.var6e90 == 1) ? 1 : 0;
+ sub_80EBDBC(&sub_80EC00C);
}
- ewram0_10.var304++;
- break;
- case 3:
- if ((var1 = sub_80EFBDC(0))) return;
- sub_80EFBB0();
- ewram0_10.var304 = var1;
- break;
- case 4:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
break;
- case 5:
- if (gPaletteFade.active) return;
- sub_80F2DF4();
- sub_80F2D04(0x4);
- gSaveBlock2.regionMapZoom = (ewram0_10.var6e90 == 1) ? 1 : 0;
- sub_80EBDBC(&sub_80EC00C);
- }
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 1, 1, 2, 4);
+#endif
}
-void sub_80EC81C() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F2D04(0);
- sub_80EE9C0(1, 0, 1);
- ewram0_10.var304++;
+void sub_80EC81C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F2D04(0);
+ sub_80EE9C0(1, 0, 1);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ sub_80EBDBC(&sub_80EC86C);
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80EC86C);
- }
+ }
}
-void sub_80EC86C() {
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEC90()) {
- PlaySE(0x5);
- sub_80EF428(1, ewram0_10.var6dad);
- sub_80EED9C();
- break;
- }
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- ewram0_10.var6df0 = ewram0_10.var6dad;
- switch (ewram0_10.var6df0) {
- case 0:
- sub_80EBDBC(&sub_80ED620);
- break;
- case 1:
- sub_80EBDBC(&sub_80EC960);
- break;
- case 2:
- sub_80EBDBC(&sub_80EC210);
- break;
- }
- break;
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- ewram0_10.var6df0 = 0x2;
- ewram0_10.var6dad = 0x2;
- ewram0_10.var304++;
- break;
- }
+void sub_80EC86C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (sub_80EEC90())
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(1, ewram0_10.var6dad);
+ sub_80EED9C();
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ewram0_10.var6df0 = ewram0_10.var6dad;
+ switch (ewram0_10.var6df0)
+ {
+ case 0:
+ sub_80EBDBC(&sub_80ED620);
+ break;
+ case 1:
+ sub_80EBDBC(&sub_80EC960);
+ break;
+ case 2:
+ sub_80EBDBC(&sub_80EC210);
+ break;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ewram0_10.var6df0 = 0x2;
+ ewram0_10.var6dad = 0x2;
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ if (!sub_80F1E6C())
+ sub_80EBDBC(&sub_80EC210);
break;
- case 1:
- if (sub_80F1E6C()) return;
- sub_80EBDBC(&sub_80EC210);
- }
+ }
}
-void sub_80EC960() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80EE9C0(2, 0, 5);
- ewram0_10.var304++;
+void sub_80EC960()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80EE9C0(2, 0, 5);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ sub_80EBDBC(&sub_80ECC08);
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80ECC08);
- }
+ }
}
-void sub_80EC9A8() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F2D04(5);
- sub_80EE9C0(1, ewram0_10.var6df0, 0xC);
- ewram0_10.var304++;
+void sub_80EC9A8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F2D04(5);
+ sub_80EE9C0(1, ewram0_10.var6df0, 0xC);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80EEA0C())
+ {
+ sub_80EBDBC(&sub_80EC86C);
+ sub_80EF428(1, ewram0_10.var6dad);
+ }
break;
- case 1:
- if (sub_80EEA0C()) return;
- sub_80EBDBC(&sub_80EC86C);
- sub_80EF428(1, ewram0_10.var6dad);
- }
+ }
}
-void sub_80ECA10() {
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEF78()) return;
- SetVBlankCallback(&sub_80EBD80);
- sub_80EED1C();
- ewram0_10.var6dad = ewram0_10.var6df0;
- ewram0_10.var6dae = 0x3;
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 1:
- sub_80EF248(0x1);
- ewram0_10.var304++;
- case 2:
- if (sub_80EF284(0x1)) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F1B8C(0x1);
- ewram0_10.var304++;
- case 4:
- if (sub_80F1BC8(0x1)) return;
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0);
- ewram0_10.var304++;
- break;
- case 8:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 9:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 0xA:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
-
- case 0xB:
- if (sub_80F2CBC(0x1)) return;
- ewram0_10.var304++;
- break;
- case 0xC:
- sub_80F1DF0();
- ewram0_10.var304++;
+void sub_80ECA10()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (!sub_80EEF78())
+ {
+ SetVBlankCallback(&sub_80EBD80);
+ sub_80EED1C();
+ ewram0_10.var6dad = ewram0_10.var6df0;
+ ewram0_10.var6dae = 3;
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ sub_80EF248(1);
+ ewram0_10.var304++;
+ case 2:
+ if (!sub_80EF284(1))
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F1B8C(1);
+ ewram0_10.var304++;
+ case 4:
+ if (!sub_80F1BC8(1))
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (sub_8055870()) return;
+ ewram0_10.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 9:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 10:
+ sub_80F2C80(1);
+ ewram0_10.var304++;
+ // fall through
+ case 11:
+ if (!sub_80F2CBC(1))
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80F1DF0();
+ ewram0_10.var304++;
+ break;
+ case 13:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(1, ewram0_10.var6dad);
+ sub_80EBDBC(&sub_80EC86C);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ }
break;
- case 0xD:
- if (sub_80F1E50()) return;
- sub_80EF428(1, ewram0_10.var6dad);
- sub_80EBDBC(&sub_80EC86C);
- }
+ }
}
-void sub_80ECC08() {
- switch (ewram0_10.var304) {
- case 0:
- if (sub_80EEC90()) {
- PlaySE(0x5);
- sub_80EF428(2, ewram0_10.var6dad);
- sub_80EED9C();
- break;
- }
+void sub_80ECC08()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ if (sub_80EEC90())
+ {
+ PlaySE(SE_SELECT);
+ sub_80EF428(2, ewram0_10.var6dad);
+ sub_80EED9C();
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ switch ((s8)ewram0_10.var6dad)
+ {
+ case 0:
+ ewram0_10.var87D8 = 22;
+ break;
+ case 1:
+ ewram0_10.var87D8 = 23;
+ break;
+ case 2:
+ ewram0_10.var87D8 = 24;
+ break;
+ case 3:
+ ewram0_10.var87D8 = 33;
+ break;
+ case 4:
+ ewram0_10.var87D8 = 47;
+ break;
+ case 5:
+ sub_80EBDBC(&sub_80EC9A8);
+ return;
+ }
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- switch ((s8)ewram0_10.var6dad) {
- case 0:
- ewram0_10.var87D8 = 22;
- break;
- case 1:
- ewram0_10.var87D8 = 23;
- break;
- case 2:
- ewram0_10.var87D8 = 24;
- break;
- case 3:
- ewram0_10.var87D8 = 33;
- break;
- case 4:
- ewram0_10.var87D8 = 47;
- break;
- case 5:
- sub_80EBDBC(&sub_80EC9A8);
- return;
- }
+ ewram0_10.var6dfc = ewram0_10.var6dad;
+ ewram0_10.var76aa = 1;
+ sub_80EBDBC(&sub_80ED01C);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ ewram0_10.var6dad = 0x5;
+ ewram0_10.var304++;
+ }
+ break;
+ case 1:
+ if (!sub_80F1E6C())
+ sub_80EBDBC(&sub_80EC9A8);
+ break;
+ }
+}
- ewram0_10.var6dfc = ewram0_10.var6dad;
- ewram0_10.var76aa = 1;
- sub_80EBDBC(&sub_80ED01C);
+void sub_80ECD80()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 2:
+ if (!sub_80EEF78())
+ {
+ SetVBlankCallback(&sub_80EBD80);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ sub_80EED1C();
+ sub_80F3130();
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80F2D6C(0x1);
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F2D6C(0x5);
+ ewram0_10.var304++;
+ break;
+ case 6:
+ ewram0_10.var6dad = ewram0_10.var6dfc;
+ ewram0_10.var6dae = 0x6;
+ sub_80EEE08();
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EF248(0x2);
+ ewram0_10.var304++;
+ // fall through
+ case 8:
+ if (!sub_80EF284(0x2))
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F1B8C(0x2);
+ ewram0_10.var304++;
+ // fall through
+ case 10:
+ if (!sub_80F1BC8(0x2))
+ ewram0_10.var304++;
+ break;
+ case 11:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 12:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80EED2C(0);
+ ewram0_10.var304++;
+ break;
+ case 14:
+ sub_80F2598();
+ ewram0_10.var304++;
+ break;
+ case 15:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 16:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ // fall through
+ case 17:
+ if (!sub_80F2CBC(0x1))
+ {
+ ewram0_10.var306 = 0;
+ ewram0_10.var304++;
}
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- ewram0_10.var6dad = 0x5;
+ break;
+ case 18:
+ sub_80F2C80(0x5);
+ ewram0_10.var304++;
+ // fall through
+ case 19:
+ if (!sub_80F2CBC(0x5))
+ {
+ sub_80F1DF0();
ewram0_10.var304++;
}
+ break;
+ case 20:
+ if (!sub_80F1E50())
+ {
+ sub_80EF428(2, ewram0_10.var6dad);
+ sub_80EBDBC(&sub_80ECC08);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ }
break;
- case 1:
- if (sub_80F1E6C()) return;;
- sub_80EBDBC(&sub_80EC9A8);
- break;
- }
-}
-
-void sub_80ECD80() {
- u16 var1;
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_80EEF78()) return;
- SetVBlankCallback(&sub_80EBD80);
- ewram0_10.var304++;
- break;
- case 3:
- sub_80EED1C();
- sub_80F3130();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2D6C(0x1);
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F2D6C(0x5);
- ewram0_10.var304++;
- break;
- case 6:
- ewram0_10.var6dad = ewram0_10.var6dfc;
- ewram0_10.var6dae = 0x6;
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EF248(0x2);
- ewram0_10.var304++;
- case 8:
- if (sub_80EF284(0x2)) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F1B8C(0x2);
- ewram0_10.var304++;
- case 10:
- if (sub_80F1BC8(0x2)) return;
- ewram0_10.var304++;
- break;
- case 11:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 12:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 13:
- sub_80EED2C(0);
- ewram0_10.var304++;
- break;
- case 14:
- sub_80F2598();
- ewram0_10.var304++;
- break;
- case 15:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 16:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
- case 17:
- if ((var1 = sub_80F2CBC(0x1))) return;
- ewram0_10.var306 = var1;
- ewram0_10.var304++;
- break;
- case 18:
- sub_80F2C80(0x5);
- ewram0_10.var304++;
- case 19:
- if (sub_80F2CBC(0x5)) return;
- sub_80F1DF0();
- ewram0_10.var304++;
- break;
- case 20:
- if (sub_80F1E50()) return;
- sub_80EF428(2, ewram0_10.var6dad);
- sub_80EBDBC(&sub_80ECC08);
- }
+ }
}
-void sub_80ED01C() {
- u16 var1;
- u16 var3;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0x1);
- sub_80F2D04(0x5);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0);
- ewram0_10.var304++;
- break;
- case 2:
- if ((var1 = sub_80EEF34())) return;
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
- ewram0_10.var304++;
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80EF814();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F4D44();
- ewram0_10.var304++;
- case 6:
- if (!sub_80F4D88()) {
- ewram0_10.var304 += 2;
- break;
+void sub_80ED01C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0x1);
+ sub_80F2D04(0x5);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0);
+ ewram0_10.var304++;
}
- ewram0_10.var304++;
- break;
- case 7:
- if (sub_8055870()) return;
- ewram0_10.var304--;
- break;
- case 8:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F0264(0);
- ewram0_10.var304++;
- case 10:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F3008(0);
- ewram0_10.var304++;
- break;
- case 12:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 13:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 14:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
- break;
- case 15:
- if (gPaletteFade.active) return;
- ewram0_10.var306 = (u8)(gPaletteFade.active << 24);
- ewram0_10.var304++;
- break;
- case 16:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
- case 17:
- if ((var3 = sub_80F2CBC(0x1))) return;
- ewram0_10.var306 = var3;
- ewram0_10.var304++;
- break;
- case 18:
- sub_80F2C80(ewram0_10.var6dfc + 7);
- ewram0_10.var304++;
- case 19:
- if (sub_80F2CBC(ewram0_10.var6dfc + 7)) return;
- sub_80EBDBC(&sub_80ED31C);
- break;
- }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ ewram0_10.var304++;
+ }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F4D44();
+ ewram0_10.var304++;
+ // fall through
+ case 6:
+ if (!sub_80F4D88())
+ ewram0_10.var304 += 2;
+ else
+ ewram0_10.var304 += 1;
+ break;
+ case 7:
+ if (!sub_8055870())
+ ewram0_10.var304--;
+ break;
+ case 8:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F0264(0);
+ ewram0_10.var304++;
+ // fall through
+ case 10:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F3008(0);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 13:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 14:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+ break;
+ case 15:
+ if (!gPaletteFade.active)
+ {
+ ewram0_10.var306 = 0;
+ ewram0_10.var304++;
+ }
+ break;
+ case 16:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ // fall through
+ case 17:
+ if (!sub_80F2CBC(0x1))
+ {
+ ewram0_10.var306 = 0;
+ ewram0_10.var304++;
+ }
+ break;
+ case 18:
+ sub_80F2C80(ewram0_10.var6dfc + 7);
+ ewram0_10.var304++;
+ // fall through
+ case 19:
+ if (!sub_80F2CBC(ewram0_10.var6dfc + 7))
+ {
+ sub_80EBDBC(&sub_80ED31C);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ }
+ break;
+ }
}
-void sub_80ED31C() {
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80F5DD4()) {
- case 1:
- PlaySE(0x5);
+void sub_80ED31C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80F5DD4())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ ShowMapNamePopUpWindow();
+ return;
+ case 2:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304++;
+ return;
+ default:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80ED4D8);
+ return;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80ECD80);
+ return;
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_80F0718())
+ {
ShowMapNamePopUpWindow();
- break;
- case 2:
- PlaySE(0x5);
+ sub_80F3264();
ewram0_10.var304++;
- break;
- default:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80ED4D8);
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80ECD80);
- }
- break;
}
- break;
- case 1:
- if (sub_80F0718()) return;
- ShowMapNamePopUpWindow();
- sub_80F3264();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0;
- break;
- }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 1, 8, 2, 4);
+#endif
}
-void sub_80ED3D0() {
- switch (ewram0_10.var304) {
- case 0:
- SetVBlankCallback(NULL);
- ewram0_10.var304++;
- break;
- case 1:
- sub_80EED0C();
- sub_80F6134();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80EEFBC(0);
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F0264(0);
- ewram0_10.var304++;
- case 4:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- sub_80F3008(0);
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
+void sub_80ED3D0()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ sub_80EED0C();
+ sub_80F6134();
+ ewram0_10.var304++;
+ break;
+ case 2:
+ sub_80EEFBC(0);
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F0264(0);
+ ewram0_10.var304++;
+ // fall through
+ case 4:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80F3008(0);
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80ED31C);
break;
- case 8:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80ED31C);
- }
+ }
}
-void sub_80ED4D8() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80F3130();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 3:
- sub_80F4CF0();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EFF34();
- ewram0_10.var304++;
- case 5:
- if (sub_80EFF68()) return;
- ewram0_10.var304++;
- break;
- case 6:
- sub_80F35B4();
- sub_80EEFBC(0x2);
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(sub_80EBD4C);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0x2);
- ewram0_10.var304++;
- break;
- case 8:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80ED858);
- break;
- }
+void sub_80ED4D8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80F3130();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 3:
+ sub_80F4CF0();
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EFF34();
+ ewram0_10.var304++;
+ // fall through
+ case 5:
+ if (!sub_80EFF68())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80F35B4();
+ sub_80EEFBC(0x2);
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(sub_80EBD4C);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0x2);
+ ewram0_10.var304++;
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF000), 4);
+#endif
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80ED858);
+ break;
+ }
}
-void sub_80ED620() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0x1);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0x1);
- ewram0_10.var304++;
- break;
- case 2:
- if (!(var1 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+void sub_80ED620()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0x1);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0x1);
ewram0_10.var304++;
}
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80EF814();
- ewram0_10.var76aa = (u8)(gPaletteFade.active << 24);
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- ewram0_10.varD162 = 0x2;
- sub_80F4BD0();
- ewram0_10.var304++;
- break;
- case 6:
- sub_80EFF34();
- ewram0_10.var304++;
- case 7:
- if (sub_80EFF68()) return;
- ewram0_10.var304++;
- break;
- case 8:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 9:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 10:
- sub_80F33A8();
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD4C);
- ewram0_10.var304++;
- break;
- case 11:
- sub_80EED2C(0x2);
- ewram0_10.var304++;
- break;
- case 12:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 13:
- sub_80F2C80(0x1);
- ewram0_10.var304++;
- case 14:
- if (sub_80F2CBC(0x1)) return;
- ewram0_10.var304++;
- break;
- case 15:
- sub_80F2C80(0x6);
- ewram0_10.var304++;
- case 16:
- if (sub_80F2CBC(0x6)) return;
- sub_80EBDBC(&sub_80ED858);
- break;
- }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ ewram0_10.var76aa = 0;
+ ewram0_10.var304++;
+ }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ ewram0_10.varD162 = 0x2;
+ sub_80F4BD0();
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80EFF34();
+ ewram0_10.var304++;
+ // fall through
+ case 7:
+ if (!sub_80EFF68())
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 9:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 10:
+ sub_80F33A8();
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD4C);
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80EED2C(0x2);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80F2C80(0x1);
+ ewram0_10.var304++;
+ case 14:
+ if (!sub_80F2CBC(0x1))
+ ewram0_10.var304++;
+ break;
+ case 15:
+ sub_80F2C80(0x6);
+ ewram0_10.var304++;
+ // fall through
+ case 16:
+ if (!sub_80F2CBC(0x6))
+ {
+ sub_80EBDBC(&sub_80ED858);
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF000), 4);
+#endif
+ }
+ break;
+ }
}
#if 0
@@ -1448,1834 +1639,2334 @@ void sub_80F357C();
void sub_80F4FDC();
void sub_80ED858() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F4F78();
- sub_80F5B38();
- ewram0_10.var304 = 0x1;
- break;
- case 1:
- if (sub_80F5B50()) return;
- ewram0_10.var304 = 0x2;
- break;
- case 2:
- sub_80F0174(0x1);
- ewram0_10.var304 = 0x3;
- break;
- case 3:
- if (sub_80F4FB4()) return;
- sub_80F3C94();
- sub_80F3D00();
- ewram0_10.var304 = 0x4;
- break;
- case 4:
- if ( (gMain.heldKeys & 0x40) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var87DC)) ) {
- PlaySE(0x5);
- sub_80F5060(0x1);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
- }
- else if ( (gMain.heldKeys & 0x80) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var76aa >= ewram0_10.var87DC)) ) {
- PlaySE(0x5);
- sub_80F5060(0);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
- }
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F4FDC();
- move_anim_execute();
- ewram0_10.var304 = 0x9;
- }
- else if (gMain.newKeys & A_BUTTON) {
- if (ewram0_10.var76aa) {
- if (ewram0_10.var6dac) {
- PlaySE(0x5);
- ewram0_10.var304 = 0x7;
- }
- }
- else if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
- PlaySE(0x5);
- ewram0_10.var304 = 0x9;
- }
- }
+ u8 var1;
+ switch (ewram0_10.var304) {
+ case 0:
+ sub_80F4F78();
+ sub_80F5B38();
+ ewram0_10.var304 = 0x1;
+ break;
+ case 1:
+ if (sub_80F5B50()) return;
+ ewram0_10.var304 = 0x2;
+ break;
+ case 2:
+ sub_80F0174(0x1);
+ ewram0_10.var304 = 0x3;
+ break;
+ case 3:
+ if (sub_80F4FB4()) return;
+ sub_80F3C94();
+ sub_80F3D00();
+ ewram0_10.var304 = 0x4;
+ break;
+ case 4:
+ if ( (gMain.heldKeys & 0x40) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var87DC)) ) {
+ PlaySE(SE_SELECT);
+ sub_80F5060(0x1);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
+ }
+ else if ( (gMain.heldKeys & 0x80) && (ewram0_10.var87CB) && (!(ewram0_10.var76aa) || (ewram0_10.var76aa >= ewram0_10.var87DC)) ) {
+ PlaySE(SE_SELECT);
+ sub_80F5060(0);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
+ }
+ if (gMain.newKeys & B_BUTTON) {
+ PlaySE(SE_SELECT);
+ sub_80F4FDC();
+ move_anim_execute();
+ ewram0_10.var304 = 0x9;
+ }
+ else if (gMain.newKeys & A_BUTTON) {
+ if (ewram0_10.var76aa) {
+ if (ewram0_10.var6dac) {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x7;
+ }
+ }
+ else if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x9;
+ }
+ }
/*
- if (gMain.heldKeys & 0x40) {
- if (ewram0_10.var87CB) {
- if (ewram0_10.var76aa) {
- if (!ewram0_10.var87DC) goto label1;
- }
- PlaySE(0x5);
- sub_80F5060(0x1);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
+ if (gMain.heldKeys & 0x40) {
+ if (ewram0_10.var87CB) {
+ if (ewram0_10.var76aa) {
+ if (!ewram0_10.var87DC) goto label1;
+ }
+ PlaySE(SE_SELECT);
+ sub_80F5060(0x1);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
- }
- else goto label1;
- }
- else goto label1;
- break;
+ }
+ else goto label1;
+ }
+ else goto label1;
+ break;
label1:
- if (gMain.heldKeys & 0x80) {
- if (ewram0_10.var87CB) {
- if (ewram0_10.var76aa) {
- if (!(ewram0_10.var76aa < ewram0_10.var87DC)) goto label2;
- }
- PlaySE(0x5);
- sub_80F5060(0x1);
- move_anim_execute();
- ewram0_10.var304 = 0x5;
- }
- else goto label2;
- }
- else goto label2;
- break;
+ if (gMain.heldKeys & 0x80) {
+ if (ewram0_10.var87CB) {
+ if (ewram0_10.var76aa) {
+ if (!(ewram0_10.var76aa < ewram0_10.var87DC)) goto label2;
+ }
+ PlaySE(SE_SELECT);
+ sub_80F5060(0x1);
+ move_anim_execute();
+ ewram0_10.var304 = 0x5;
+ }
+ else goto label2;
+ }
+ else goto label2;
+ break;
label2:
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F4FDC();
- move_anim_execute();
- ewram0_10.var304 = 0x9;
- }
- else if (gMain.newKeys & A_BUTTON) {
- if (!ewram0_10.var76aa) {
- if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
- PlaySE(0x5);
- ewram0_10.var304 = 0x9;
- }
- }
- else {
- PlaySE(0x5);
- ewram0_10.var304 = 0x9;
- }
- }
+ if (gMain.newKeys & B_BUTTON) {
+ PlaySE(SE_SELECT);
+ sub_80F4FDC();
+ move_anim_execute();
+ ewram0_10.var304 = 0x9;
+ }
+ else if (gMain.newKeys & A_BUTTON) {
+ if (!ewram0_10.var76aa) {
+ if ((ewram0_10.var87DC == ewram0_10.var87DA - 1)) {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x9;
+ }
+ }
+ else {
+ PlaySE(SE_SELECT);
+ ewram0_10.var304 = 0x9;
+ }
+ }
*/
- break;
+ break;
- case 5:
- if (gpu_sync_bg_show()) return;
- sub_80F3D00();
- ewram0_10.var304 = 0x6;
- break;
- case 6:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0x4;
- break;
- case 7:
- sub_80EEFBC(0x3);
- sub_80F3668();
- ewram0_10.var304 = 0x8;
- break;
- case 8:
- if (sub_80F7500()) return;
- sub_80EEFBC(0x2);
- sub_80F3698();
- ewram0_10.var304 = 0x4;
- break;
- case 9:
- if (!(var1 = sub_80F5038())) {
- sub_80F0174(0);
- sub_80F2F48();
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
- ewram0_10.var304 = 0xB;
- }
- break;
- case 0xA:
- if (gPaletteFade.active) return;
- sub_80F3CE8();
- sub_80F5BDC();
- if (!ewram0_10.var76aa) {
- sub_80F357C();
- sub_80F2D6C(0x1);
- sub_80F2D6C(0x6);
- sub_80EBDBC(&sub_80ECA10);
- }
- else {
- sub_80F3614();
- sub_80EBDBC(&sub_80ED3D0);
- }
- break;
- }
+ case 5:
+ if (gpu_sync_bg_show()) return;
+ sub_80F3D00();
+ ewram0_10.var304 = 0x6;
+ break;
+ case 6:
+ if (sub_8055870()) return;
+ ewram0_10.var304 = 0x4;
+ break;
+ case 7:
+ sub_80EEFBC(0x3);
+ sub_80F3668();
+ ewram0_10.var304 = 0x8;
+ break;
+ case 8:
+ if (sub_80F7500()) return;
+ sub_80EEFBC(0x2);
+ sub_80F3698();
+ ewram0_10.var304 = 0x4;
+ break;
+ case 9:
+ if (!(var1 = sub_80F5038())) {
+ sub_80F0174(0);
+ sub_80F2F48();
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+ ewram0_10.var304 = 0xB;
+ }
+ break;
+ case 0xA:
+ if (gPaletteFade.active) return;
+ sub_80F3CE8();
+ sub_80F5BDC();
+ if (!ewram0_10.var76aa) {
+ sub_80F357C();
+ sub_80F2D6C(0x1);
+ sub_80F2D6C(0x6);
+ sub_80EBDBC(&sub_80ECA10);
+ }
+ else {
+ sub_80F3614();
+ sub_80EBDBC(&sub_80ED3D0);
+ }
+ break;
+ }
}
#else
+#if DEBUG
__attribute__((naked))
-void sub_80ED858() {
- asm_unified("push {r4,r5,lr}\n\
- sub sp, 0x4\n\
- ldr r1, _080ED878 @ =gSharedMem\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r0, r1, r2\n\
- ldrh r0, [r0]\n\
- adds r5, r1, 0\n\
- cmp r0, 0xB\n\
- bls _080ED86E\n\
- b _080EDB7A\n\
+void sub_80ED858()
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r1, ._917 @ gSharedMem\n\
+ mov r2, #0xc1\n\
+ lsl r2, r2, #0x2\n\
+ add r0, r1, r2\n\
+ ldrh r0, [r0]\n\
+ add r5, r1, #0\n\
+ cmp r0, #0xb\n\
+ bls ._915 @cond_branch\n\
+ b ._999\n\
+._915:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._917 + 4 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._918:\n\
+ .align 2, 0\n\
+._917:\n\
+ .word gSharedMem\n\
+ .word ._919\n\
+._919:\n\
+ .word ._920\n\
+ .word ._921\n\
+ .word ._922\n\
+ .word ._923\n\
+ .word ._924\n\
+ .word ._925\n\
+ .word ._926\n\
+ .word ._927\n\
+ .word ._928\n\
+ .word ._929\n\
+ .word ._999\n\
+ .word ._931\n\
+._920:\n\
+ bl sub_80F4F78\n\
+ bl sub_80F5B38\n\
+ ldr r0, ._933 @ gSharedMem\n\
+ mov r4, #0xc1\n\
+ lsl r4, r4, #0x2\n\
+ add r0, r0, r4\n\
+ mov r1, #0x1\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._934:\n\
+ .align 2, 0\n\
+._933:\n\
+ .word gSharedMem\n\
+._921:\n\
+ bl sub_80F5B50\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._935 @cond_branch\n\
+ b ._999\n\
+._935:\n\
+ ldr r0, ._938 @ gSharedMem\n\
+ mov r1, #0xc1\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r0, r1\n\
+ mov r1, #0x2\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._939:\n\
+ .align 2, 0\n\
+._938:\n\
+ .word gSharedMem\n\
+._922:\n\
+ mov r0, #0x1\n\
+ bl sub_80F0174\n\
+ ldr r0, ._941 @ gSharedMem\n\
+ mov r2, #0xc1\n\
+ lsl r2, r2, #0x2\n\
+ add r0, r0, r2\n\
+ mov r1, #0x3\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._942:\n\
+ .align 2, 0\n\
+._941:\n\
+ .word gSharedMem\n\
+._923:\n\
+ bl sub_80F4FB4\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._943 @cond_branch\n\
+ b ._999\n\
+._943:\n\
+ bl sub_80F3C94\n\
+ bl sub_80F3D00\n\
+ b ._945\n\
+._924:\n\
+ ldr r2, ._951 @ gMain\n\
+ ldrh r1, [r2, #0x2c]\n\
+ mov r0, #0x40\n\
+ and r0, r0, r1\n\
+ add r3, r2, #0\n\
+ cmp r0, #0\n\
+ beq ._949 @cond_branch\n\
+ ldr r1, ._951 + 4 @ 0x87cb\n\
+ add r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._949 @cond_branch\n\
+ ldr r2, ._951 + 8 @ 0x76aa\n\
+ add r0, r5, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._948 @cond_branch\n\
+ ldr r4, ._951 + 12 @ 0x87dc\n\
+ add r0, r5, r4\n\
+ mov r1, #0x0\n\
+ ldsh r0, [r0, r1]\n\
+ cmp r0, #0\n\
+ beq ._949 @cond_branch\n\
+._948:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ mov r0, #0x1\n\
+ bl sub_80F5060\n\
+ bl move_anim_execute\n\
+ mov r2, #0xc1\n\
+ lsl r2, r2, #0x2\n\
+ add r1, r5, r2\n\
+ b ._950\n\
+._952:\n\
+ .align 2, 0\n\
+._951:\n\
+ .word gMain\n\
+ .word 0x87cb\n\
+ .word 0x76aa\n\
+ .word 0x87dc\n\
+._949:\n\
+ ldrh r1, [r3, #0x2c]\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._956 @cond_branch\n\
+ ldr r4, ._958 @ 0x87cb\n\
+ add r0, r5, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._956 @cond_branch\n\
+ ldr r1, ._958 + 4 @ 0x76aa\n\
+ add r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._955 @cond_branch\n\
+ ldr r2, ._958 + 8 @ 0x87dc\n\
+ add r0, r5, r2\n\
+ sub r4, r4, #0x57\n\
+ add r1, r5, r4\n\
+ mov r4, #0x0\n\
+ ldsh r2, [r0, r4]\n\
+ mov r4, #0x0\n\
+ ldsh r0, [r1, r4]\n\
+ cmp r2, r0\n\
+ bge ._956 @cond_branch\n\
+._955:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ mov r0, #0x0\n\
+ bl sub_80F5060\n\
+ bl move_anim_execute\n\
+ mov r0, #0xc1\n\
+ lsl r0, r0, #0x2\n\
+ add r1, r5, r0\n\
+._950:\n\
+ mov r0, #0x5\n\
+ strh r0, [r1]\n\
+ b ._999\n\
+._959:\n\
+ .align 2, 0\n\
+._958:\n\
+ .word 0x87cb\n\
+ .word 0x76aa\n\
+ .word 0x87dc\n\
+._956:\n\
+ ldrh r2, [r3, #0x2e]\n\
+ mov r0, #0x2\n\
+ and r0, r0, r2\n\
+ cmp r0, #0\n\
+ beq ._960 @cond_branch\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ bl sub_80F4FDC\n\
+ bl move_anim_execute\n\
+ ldr r0, ._962 @ gSharedMem\n\
+ mov r1, #0xc1\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r0, r1\n\
+ mov r1, #0x9\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._963:\n\
+ .align 2, 0\n\
+._962:\n\
+ .word gSharedMem\n\
+._960:\n\
+ mov r0, #0x1\n\
+ and r0, r0, r2\n\
+ cmp r0, #0\n\
+ bne ._964 @cond_branch\n\
+ b ._999\n\
+._964:\n\
+ add r4, r5, #0\n\
+ ldr r2, ._970 @ 0x76aa\n\
+ add r0, r4, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._966 @cond_branch\n\
+ ldr r1, ._970 + 4 @ 0x87dc\n\
+ add r0, r4, r1\n\
+ mov r2, #0x0\n\
+ ldsh r1, [r0, r2]\n\
+ ldr r2, ._970 + 8 @ 0x87da\n\
+ add r0, r4, r2\n\
+ mov r2, #0x0\n\
+ ldsh r0, [r0, r2]\n\
+ sub r0, r0, #0x1\n\
+ cmp r1, r0\n\
+ beq ._967 @cond_branch\n\
+ b ._999\n\
+._967:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ mov r0, #0xc1\n\
+ lsl r0, r0, #0x2\n\
+ add r1, r4, r0\n\
+ mov r0, #0x9\n\
+ strh r0, [r1]\n\
+ b ._999\n\
+._971:\n\
+ .align 2, 0\n\
+._970:\n\
+ .word 0x76aa\n\
+ .word 0x87dc\n\
+ .word 0x87da\n\
+._966:\n\
+ ldr r1, ._975 @ 0x6dac\n\
+ add r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._972 @cond_branch\n\
+ b ._999\n\
+._972:\n\
+ mov r0, #0x5\n\
+ bl PlaySE\n\
+ mov r2, #0xc1\n\
+ lsl r2, r2, #0x2\n\
+ add r1, r5, r2\n\
+ mov r0, #0x7\n\
+ strh r0, [r1]\n\
+ b ._999\n\
+._976:\n\
+ .align 2, 0\n\
+._975:\n\
+ .word 0x6dac\n\
+._925:\n\
+ bl gpu_sync_bg_show\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._977 @cond_branch\n\
+ b ._999\n\
+._977:\n\
+ bl sub_80F3D00\n\
+ ldr r0, ._980 @ gSharedMem\n\
+ mov r4, #0xc1\n\
+ lsl r4, r4, #0x2\n\
+ add r0, r0, r4\n\
+ mov r1, #0x6\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._981:\n\
+ .align 2, 0\n\
+._980:\n\
+ .word gSharedMem\n\
+._926:\n\
+ bl sub_8055870\n\
+ cmp r0, #0\n\
+ bne ._999 @cond_branch\n\
+ ldr r0, ._984 @ gSharedMem\n\
+ mov r1, #0xc1\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r0, r1\n\
+ b ._983\n\
+._985:\n\
+ .align 2, 0\n\
+._984:\n\
+ .word gSharedMem\n\
+._927:\n\
+ mov r0, #0x3\n\
+ bl sub_80EEFBC\n\
+ bl sub_80F3668\n\
+ ldr r0, ._987 @ gSharedMem\n\
+ mov r2, #0xc1\n\
+ lsl r2, r2, #0x2\n\
+ add r0, r0, r2\n\
+ mov r1, #0x8\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._988:\n\
+ .align 2, 0\n\
+._987:\n\
+ .word gSharedMem\n\
+._928:\n\
+ bl sub_80F7500\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._999 @cond_branch\n\
+ mov r0, #0x2\n\
+ bl sub_80EEFBC\n\
+ bl sub_80F3698\n\
+._945:\n\
+ ldr r0, ._991 @ gSharedMem\n\
+ mov r4, #0xc1\n\
+ lsl r4, r4, #0x2\n\
+ add r0, r0, r4\n\
+._983:\n\
+ mov r1, #0x4\n\
+ strh r1, [r0]\n\
+ b ._999\n\
+._992:\n\
+ .align 2, 0\n\
+._991:\n\
+ .word gSharedMem\n\
+._929:\n\
+ bl sub_80F5038\n\
+ lsl r0, r0, #0x18\n\
+ lsr r4, r0, #0x18\n\
+ cmp r4, #0\n\
+ bne ._999 @cond_branch\n\
+ mov r0, #0x0\n\
+ bl sub_80F0174\n\
+ bl sub_80F2F48\n\
+ ldr r5, ._995 @ gSharedMem\n\
+ mov r1, #0xc2\n\
+ lsl r1, r1, #0x2\n\
+ add r0, r5, r1\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x1\n\
+ neg r1, r1\n\
+ str r4, [sp]\n\
+ mov r2, #0x0\n\
+ mov r3, #0x10\n\
+ bl BeginNormalPaletteFade\n\
+ mov r2, #0xc1\n\
+ lsl r2, r2, #0x2\n\
+ add r1, r5, r2\n\
+ mov r0, #0xb\n\
+ strh r0, [r1]\n\
+ b ._999\n\
+._996:\n\
+ .align 2, 0\n\
+._995:\n\
+ .word gSharedMem\n\
+._931:\n\
+ ldr r0, ._1000 @ gPaletteFade\n\
+ ldrb r1, [r0, #0x7]\n\
+ mov r0, #0x80\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ bne ._999 @cond_branch\n\
+ bl sub_80F3CE8\n\
+ bl sub_80F5BDC\n\
+ ldr r0, ._1000 + 4 @ gSharedMem\n\
+ ldr r4, ._1000 + 8 @ 0x76aa\n\
+ add r0, r0, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ bne ._998 @cond_branch\n\
+ bl sub_80F357C\n\
+ mov r0, #0x1\n\
+ bl sub_80F2D6C\n\
+ mov r0, #0x6\n\
+ bl sub_80F2D6C\n\
+ ldr r0, ._1000 + 12 @ sub_80ECA10\n\
+ bl sub_80EBDBC\n\
+ b ._999\n\
+._1001:\n\
+ .align 2, 0\n\
+._1000:\n\
+ .word gPaletteFade\n\
+ .word gSharedMem\n\
+ .word 0x76aa\n\
+ .word sub_80ECA10+1\n\
+._998:\n\
+ bl sub_80F3614\n\
+ ldr r0, ._1003 @ sub_80ED3D0\n\
+ bl sub_80EBDBC\n\
+._999:\n\
+ ldr r0, ._1003 + 4 @ gLinkOpen\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0x1\n\
+ bne ._1002 @cond_branch\n\
+ ldr r0, ._1003 + 8 @ gLink\n\
+ ldr r1, ._1003 + 12 @ 0xfbd\n\
+ add r0, r0, r1\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0x4\n\
+ str r1, [sp]\n\
+ mov r1, #0x9\n\
+ mov r2, #0x6\n\
+ mov r3, #0x2\n\
+ bl debug_sub_8008264\n\
+._1002:\n\
+ add sp, sp, #0x4\n\
+ pop {r4, r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+._1004:\n\
+ .align 2, 0\n\
+._1003:\n\
+ .word sub_80ED3D0+1\n\
+ .word gLinkOpen\n\
+ .word gLink\n\
+ .word 0xfbd");
+}
+#else
+__attribute__((naked))
+void sub_80ED858()
+{
+ asm_unified("push {r4,r5,lr}\n\
+ sub sp, 0x4\n\
+ ldr r1, _080ED878 @ =gSharedMem\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r0, r1, r2\n\
+ ldrh r0, [r0]\n\
+ adds r5, r1, 0\n\
+ cmp r0, 0xB\n\
+ bls _080ED86E\n\
+ b _080EDB7A\n\
_080ED86E:\n\
- lsls r0, 2\n\
- ldr r1, _080ED87C @ =_080ED880\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
+ lsls r0, 2\n\
+ ldr r1, _080ED87C @ =_080ED880\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
_080ED878: .4byte gSharedMem\n\
_080ED87C: .4byte _080ED880\n\
- .align 2, 0\n\
+ .align 2, 0\n\
_080ED880:\n\
- .4byte _080ED8B0\n\
- .4byte _080ED8CC\n\
- .4byte _080ED8EC\n\
- .4byte _080ED904\n\
- .4byte _080ED91A\n\
- .4byte _080EDA68\n\
- .4byte _080EDA8C\n\
- .4byte _080EDAA4\n\
- .4byte _080EDAC0\n\
- .4byte _080EDAE8\n\
- .4byte _080EDB7A\n\
- .4byte _080EDB28\n\
+ .4byte _080ED8B0\n\
+ .4byte _080ED8CC\n\
+ .4byte _080ED8EC\n\
+ .4byte _080ED904\n\
+ .4byte _080ED91A\n\
+ .4byte _080EDA68\n\
+ .4byte _080EDA8C\n\
+ .4byte _080EDAA4\n\
+ .4byte _080EDAC0\n\
+ .4byte _080EDAE8\n\
+ .4byte _080EDB7A\n\
+ .4byte _080EDB28\n\
_080ED8B0:\n\
- bl sub_80F4F78\n\
- bl sub_80F5B38\n\
- ldr r0, _080ED8C8 @ =gSharedMem\n\
- movs r4, 0xC1\n\
- lsls r4, 2\n\
- adds r0, r4\n\
- movs r1, 0x1\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ bl sub_80F4F78\n\
+ bl sub_80F5B38\n\
+ ldr r0, _080ED8C8 @ =gSharedMem\n\
+ movs r4, 0xC1\n\
+ lsls r4, 2\n\
+ adds r0, r4\n\
+ movs r1, 0x1\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED8C8: .4byte gSharedMem\n\
_080ED8CC:\n\
- bl sub_80F5B50\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080ED8D8\n\
- b _080EDB7A\n\
+ bl sub_80F5B50\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ED8D8\n\
+ b _080EDB7A\n\
_080ED8D8:\n\
- ldr r0, _080ED8E8 @ =gSharedMem\n\
- movs r1, 0xC1\n\
- lsls r1, 2\n\
- adds r0, r1\n\
- movs r1, 0x2\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ ldr r0, _080ED8E8 @ =gSharedMem\n\
+ movs r1, 0xC1\n\
+ lsls r1, 2\n\
+ adds r0, r1\n\
+ movs r1, 0x2\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED8E8: .4byte gSharedMem\n\
_080ED8EC:\n\
- movs r0, 0x1\n\
- bl sub_80F0174\n\
- ldr r0, _080ED900 @ =gSharedMem\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r0, r2\n\
- movs r1, 0x3\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x1\n\
+ bl sub_80F0174\n\
+ ldr r0, _080ED900 @ =gSharedMem\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r0, r2\n\
+ movs r1, 0x3\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED900: .4byte gSharedMem\n\
_080ED904:\n\
- bl sub_80F4FB4\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080ED910\n\
- b _080EDB7A\n\
+ bl sub_80F4FB4\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080ED910\n\
+ b _080EDB7A\n\
_080ED910:\n\
- bl sub_80F3C94\n\
- bl sub_80F3D00\n\
- b _080EDAD4\n\
+ bl sub_80F3C94\n\
+ bl sub_80F3D00\n\
+ b _080EDAD4\n\
_080ED91A:\n\
- ldr r2, _080ED960 @ =gMain\n\
- ldrh r1, [r2, 0x2C]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- adds r3, r2, 0\n\
- cmp r0, 0\n\
- beq _080ED970\n\
- ldr r1, _080ED964 @ =0x000087cb\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED970\n\
- ldr r2, _080ED968 @ =0x000076aa\n\
- adds r0, r5, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED948\n\
- ldr r4, _080ED96C @ =0x000087dc\n\
- adds r0, r5, r4\n\
- movs r1, 0\n\
- ldrsh r0, [r0, r1]\n\
- cmp r0, 0\n\
- beq _080ED970\n\
+ ldr r2, _080ED960 @ =gMain\n\
+ ldrh r1, [r2, 0x2C]\n\
+ movs r0, 0x40\n\
+ ands r0, r1\n\
+ adds r3, r2, 0\n\
+ cmp r0, 0\n\
+ beq _080ED970\n\
+ ldr r1, _080ED964 @ =0x000087cb\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED970\n\
+ ldr r2, _080ED968 @ =0x000076aa\n\
+ adds r0, r5, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED948\n\
+ ldr r4, _080ED96C @ =0x000087dc\n\
+ adds r0, r5, r4\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ cmp r0, 0\n\
+ beq _080ED970\n\
_080ED948:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0x1\n\
- bl sub_80F5060\n\
- bl move_anim_execute\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r1, r5, r2\n\
- b _080ED9B8\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ bl sub_80F5060\n\
+ bl move_anim_execute\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r1, r5, r2\n\
+ b _080ED9B8\n\
+ .align 2, 0\n\
_080ED960: .4byte gMain\n\
_080ED964: .4byte 0x000087cb\n\
_080ED968: .4byte 0x000076aa\n\
_080ED96C: .4byte 0x000087dc\n\
_080ED970:\n\
- ldrh r1, [r3, 0x2C]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _080ED9CC\n\
- ldr r4, _080ED9C0 @ =0x000087cb\n\
- adds r0, r5, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED9CC\n\
- ldr r1, _080ED9C4 @ =0x000076aa\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080ED9A2\n\
- ldr r2, _080ED9C8 @ =0x000087dc\n\
- adds r0, r5, r2\n\
- subs r4, 0x57\n\
- adds r1, r5, r4\n\
- movs r4, 0\n\
- ldrsh r2, [r0, r4]\n\
- movs r4, 0\n\
- ldrsh r0, [r1, r4]\n\
- cmp r2, r0\n\
- bge _080ED9CC\n\
+ ldrh r1, [r3, 0x2C]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080ED9CC\n\
+ ldr r4, _080ED9C0 @ =0x000087cb\n\
+ adds r0, r5, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED9CC\n\
+ ldr r1, _080ED9C4 @ =0x000076aa\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080ED9A2\n\
+ ldr r2, _080ED9C8 @ =0x000087dc\n\
+ adds r0, r5, r2\n\
+ subs r4, 0x57\n\
+ adds r1, r5, r4\n\
+ movs r4, 0\n\
+ ldrsh r2, [r0, r4]\n\
+ movs r4, 0\n\
+ ldrsh r0, [r1, r4]\n\
+ cmp r2, r0\n\
+ bge _080ED9CC\n\
_080ED9A2:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0\n\
- bl sub_80F5060\n\
- bl move_anim_execute\n\
- movs r0, 0xC1\n\
- lsls r0, 2\n\
- adds r1, r5, r0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0\n\
+ bl sub_80F5060\n\
+ bl move_anim_execute\n\
+ movs r0, 0xC1\n\
+ lsls r0, 2\n\
+ adds r1, r5, r0\n\
_080ED9B8:\n\
- movs r0, 0x5\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED9C0: .4byte 0x000087cb\n\
_080ED9C4: .4byte 0x000076aa\n\
_080ED9C8: .4byte 0x000087dc\n\
_080ED9CC:\n\
- ldrh r2, [r3, 0x2E]\n\
- movs r0, 0x2\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _080ED9F8\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- bl sub_80F4FDC\n\
- bl move_anim_execute\n\
- ldr r0, _080ED9F4 @ =gSharedMem\n\
- movs r1, 0xC1\n\
- lsls r1, 2\n\
- adds r0, r1\n\
- movs r1, 0x9\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ ldrh r2, [r3, 0x2E]\n\
+ movs r0, 0x2\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ beq _080ED9F8\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ bl sub_80F4FDC\n\
+ bl move_anim_execute\n\
+ ldr r0, _080ED9F4 @ =gSharedMem\n\
+ movs r1, 0xC1\n\
+ lsls r1, 2\n\
+ adds r0, r1\n\
+ movs r1, 0x9\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080ED9F4: .4byte gSharedMem\n\
_080ED9F8:\n\
- movs r0, 0x1\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- bne _080EDA02\n\
- b _080EDB7A\n\
+ movs r0, 0x1\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ bne _080EDA02\n\
+ b _080EDB7A\n\
_080EDA02:\n\
- adds r4, r5, 0\n\
- ldr r2, _080EDA38 @ =0x000076aa\n\
- adds r0, r4, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- bne _080EDA44\n\
- ldr r1, _080EDA3C @ =0x000087dc\n\
- adds r0, r4, r1\n\
- movs r2, 0\n\
- ldrsh r1, [r0, r2]\n\
- ldr r2, _080EDA40 @ =0x000087da\n\
- adds r0, r4, r2\n\
- movs r2, 0\n\
- ldrsh r0, [r0, r2]\n\
- subs r0, 0x1\n\
- cmp r1, r0\n\
- beq _080EDA26\n\
- b _080EDB7A\n\
+ adds r4, r5, 0\n\
+ ldr r2, _080EDA38 @ =0x000076aa\n\
+ adds r0, r4, r2\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080EDA44\n\
+ ldr r1, _080EDA3C @ =0x000087dc\n\
+ adds r0, r4, r1\n\
+ movs r2, 0\n\
+ ldrsh r1, [r0, r2]\n\
+ ldr r2, _080EDA40 @ =0x000087da\n\
+ adds r0, r4, r2\n\
+ movs r2, 0\n\
+ ldrsh r0, [r0, r2]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ beq _080EDA26\n\
+ b _080EDB7A\n\
_080EDA26:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0xC1\n\
- lsls r0, 2\n\
- adds r1, r4, r0\n\
- movs r0, 0x9\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0xC1\n\
+ lsls r0, 2\n\
+ adds r1, r4, r0\n\
+ movs r0, 0x9\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDA38: .4byte 0x000076aa\n\
_080EDA3C: .4byte 0x000087dc\n\
_080EDA40: .4byte 0x000087da\n\
_080EDA44:\n\
- ldr r1, _080EDA64 @ =0x00006dac\n\
- adds r0, r5, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- beq _080EDA50\n\
- b _080EDB7A\n\
+ ldr r1, _080EDA64 @ =0x00006dac\n\
+ adds r0, r5, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ beq _080EDA50\n\
+ b _080EDB7A\n\
_080EDA50:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r1, r5, r2\n\
- movs r0, 0x7\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r1, r5, r2\n\
+ movs r0, 0x7\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDA64: .4byte 0x00006dac\n\
_080EDA68:\n\
- bl gpu_sync_bg_show\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080EDA74\n\
- b _080EDB7A\n\
+ bl gpu_sync_bg_show\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EDA74\n\
+ b _080EDB7A\n\
_080EDA74:\n\
- bl sub_80F3D00\n\
- ldr r0, _080EDA88 @ =gSharedMem\n\
- movs r4, 0xC1\n\
- lsls r4, 2\n\
- adds r0, r4\n\
- movs r1, 0x6\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ bl sub_80F3D00\n\
+ ldr r0, _080EDA88 @ =gSharedMem\n\
+ movs r4, 0xC1\n\
+ lsls r4, 2\n\
+ adds r0, r4\n\
+ movs r1, 0x6\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDA88: .4byte gSharedMem\n\
_080EDA8C:\n\
- bl sub_8055870\n\
- cmp r0, 0\n\
- bne _080EDB7A\n\
- ldr r0, _080EDAA0 @ =gSharedMem\n\
- movs r1, 0xC1\n\
- lsls r1, 2\n\
- adds r0, r1\n\
- b _080EDADC\n\
- .align 2, 0\n\
+ bl sub_8055870\n\
+ cmp r0, 0\n\
+ bne _080EDB7A\n\
+ ldr r0, _080EDAA0 @ =gSharedMem\n\
+ movs r1, 0xC1\n\
+ lsls r1, 2\n\
+ adds r0, r1\n\
+ b _080EDADC\n\
+ .align 2, 0\n\
_080EDAA0: .4byte gSharedMem\n\
_080EDAA4:\n\
- movs r0, 0x3\n\
- bl sub_80EEFBC\n\
- bl sub_80F3668\n\
- ldr r0, _080EDABC @ =gSharedMem\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r0, r2\n\
- movs r1, 0x8\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r0, 0x3\n\
+ bl sub_80EEFBC\n\
+ bl sub_80F3668\n\
+ ldr r0, _080EDABC @ =gSharedMem\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r0, r2\n\
+ movs r1, 0x8\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDABC: .4byte gSharedMem\n\
_080EDAC0:\n\
- bl sub_80F7500\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EDB7A\n\
- movs r0, 0x2\n\
- bl sub_80EEFBC\n\
- bl sub_80F3698\n\
+ bl sub_80F7500\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EDB7A\n\
+ movs r0, 0x2\n\
+ bl sub_80EEFBC\n\
+ bl sub_80F3698\n\
_080EDAD4:\n\
- ldr r0, _080EDAE4 @ =gSharedMem\n\
- movs r4, 0xC1\n\
- lsls r4, 2\n\
- adds r0, r4\n\
+ ldr r0, _080EDAE4 @ =gSharedMem\n\
+ movs r4, 0xC1\n\
+ lsls r4, 2\n\
+ adds r0, r4\n\
_080EDADC:\n\
- movs r1, 0x4\n\
- strh r1, [r0]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ movs r1, 0x4\n\
+ strh r1, [r0]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDAE4: .4byte gSharedMem\n\
_080EDAE8:\n\
- bl sub_80F5038\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0\n\
- bne _080EDB7A\n\
- movs r0, 0\n\
- bl sub_80F0174\n\
- bl sub_80F2F48\n\
- ldr r5, _080EDB24 @ =gSharedMem\n\
- movs r1, 0xC2\n\
- lsls r1, 2\n\
- adds r0, r5, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x1\n\
- negs r1, r1\n\
- str r4, [sp]\n\
- movs r2, 0\n\
- movs r3, 0x10\n\
- bl BeginNormalPaletteFade\n\
- movs r2, 0xC1\n\
- lsls r2, 2\n\
- adds r1, r5, r2\n\
- movs r0, 0xB\n\
- strh r0, [r1]\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ bl sub_80F5038\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0\n\
+ bne _080EDB7A\n\
+ movs r0, 0\n\
+ bl sub_80F0174\n\
+ bl sub_80F2F48\n\
+ ldr r5, _080EDB24 @ =gSharedMem\n\
+ movs r1, 0xC2\n\
+ lsls r1, 2\n\
+ adds r0, r5, r1\n\
+ ldr r0, [r0]\n\
+ movs r1, 0x1\n\
+ negs r1, r1\n\
+ str r4, [sp]\n\
+ movs r2, 0\n\
+ movs r3, 0x10\n\
+ bl BeginNormalPaletteFade\n\
+ movs r2, 0xC1\n\
+ lsls r2, 2\n\
+ adds r1, r5, r2\n\
+ movs r0, 0xB\n\
+ strh r0, [r1]\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDB24: .4byte gSharedMem\n\
_080EDB28:\n\
- ldr r0, _080EDB60 @ =gPaletteFade\n\
- ldrb r1, [r0, 0x7]\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _080EDB7A\n\
- bl sub_80F3CE8\n\
- bl sub_80F5BDC\n\
- ldr r0, _080EDB64 @ =gSharedMem\n\
- ldr r4, _080EDB68 @ =0x000076aa\n\
- adds r0, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, 0\n\
- bne _080EDB70\n\
- bl sub_80F357C\n\
- movs r0, 0x1\n\
- bl sub_80F2D6C\n\
- movs r0, 0x6\n\
- bl sub_80F2D6C\n\
- ldr r0, _080EDB6C @ =sub_80ECA10\n\
- bl sub_80EBDBC\n\
- b _080EDB7A\n\
- .align 2, 0\n\
+ ldr r0, _080EDB60 @ =gPaletteFade\n\
+ ldrb r1, [r0, 0x7]\n\
+ movs r0, 0x80\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080EDB7A\n\
+ bl sub_80F3CE8\n\
+ bl sub_80F5BDC\n\
+ ldr r0, _080EDB64 @ =gSharedMem\n\
+ ldr r4, _080EDB68 @ =0x000076aa\n\
+ adds r0, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080EDB70\n\
+ bl sub_80F357C\n\
+ movs r0, 0x1\n\
+ bl sub_80F2D6C\n\
+ movs r0, 0x6\n\
+ bl sub_80F2D6C\n\
+ ldr r0, _080EDB6C @ =sub_80ECA10\n\
+ bl sub_80EBDBC\n\
+ b _080EDB7A\n\
+ .align 2, 0\n\
_080EDB60: .4byte gPaletteFade\n\
_080EDB64: .4byte gSharedMem\n\
_080EDB68: .4byte 0x000076aa\n\
_080EDB6C: .4byte sub_80ECA10\n\
_080EDB70:\n\
- bl sub_80F3614\n\
- ldr r0, _080EDB84 @ =sub_80ED3D0\n\
- bl sub_80EBDBC\n\
+ bl sub_80F3614\n\
+ ldr r0, _080EDB84 @ =sub_80ED3D0\n\
+ bl sub_80EBDBC\n\
_080EDB7A:\n\
- add sp, 0x4\n\
- pop {r4,r5}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ add sp, 0x4\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080EDB84: .4byte sub_80ED3D0\n");
}
#endif
+#endif
-void sub_80EDB88() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0x4);
- ewram0_10.var304++;
- break;
- case 2:
- if (!(var1 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+void sub_80EDB88()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0x4);
ewram0_10.var304++;
}
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(0);
- sub_80EED0C();
- sub_80EF814();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F638C();
- ewram0_10.var304++;
- case 6:
- if (!sub_80F63D0()) {
- ewram0_10.var304 += 0x2;
- break;
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ ewram0_10.var304++;
}
- ewram0_10.var304++;
- break;
- case 7:
- if (sub_8055870()) return;
- ewram0_10.var304--;
- break;
- case 8:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F0264(0x1);
- ewram0_10.var304++;
- case 10:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F2C80(0x2);
- ewram0_10.var304++;
- case 12:
- if (sub_80F2CBC(0x2)) return;
- ewram0_10.var304++;
- break;
- case 13:
- sub_80F3008(0x1);
- ewram0_10.var304++;
- break;
- case 14:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 15:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 16:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
- break;
- case 17:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EDDBC);
- break;
- }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F638C();
+ ewram0_10.var304++;
+ case 6:
+ if (!sub_80F63D0())
+ ewram0_10.var304 += 2;
+ else
+ ewram0_10.var304 += 1;
+ break;
+ case 7:
+ if (!sub_8055870())
+ ewram0_10.var304--;
+ break;
+ case 8:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F0264(0x1);
+ ewram0_10.var304++;
+ case 10:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F2C80(0x2);
+ ewram0_10.var304++;
+ case 12:
+ if (!sub_80F2CBC(0x2))
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80F3008(0x1);
+ ewram0_10.var304++;
+ break;
+ case 14:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 15:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 16:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ break;
+ case 17:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EDDBC);
+ break;
+ }
}
-void sub_80EDDBC() {
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80F5DD4()) {
- case 1:
- PlaySE(0x5);
+void sub_80EDDBC()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80F5DD4())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ ShowMapNamePopUpWindow();
+ return;
+ case 2:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304++;
+ return;
+ default:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EDEE4);
+ return;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EDE70);
+ return;
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_80F0718())
+ {
ShowMapNamePopUpWindow();
- break;
- case 2:
- PlaySE(0x5);
+ sub_80F3264();
ewram0_10.var304++;
- break;
- default:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EDEE4);
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EDE70);
- }
- break;
}
- break;
- case 1:
- if (sub_80F0718()) return;
- ShowMapNamePopUpWindow();
- sub_80F3264();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0;
- break;
-
- }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 1, 8, 2, 4);
+#endif
}
-void sub_80EDE70() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- sub_80F3130();
- sub_80F2D6C(0x2);
- ewram0_10.var304++;
- break;
- case 2:
- sub_80EBDBC(&sub_80EC00C);
- break;
- }
+void sub_80EDE70()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_80F3130();
+ sub_80F2D6C(0x2);
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80EBDBC(&sub_80EC00C);
+ break;
+ }
}
-void sub_80EDEE4() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80F3130();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80F66E0();
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 3:
- if (sub_80F1080()) return;
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EEFBC(0x5);
- sub_80F38B8();
- ewram0_10.var304++;
- case 5:
- if (sub_80F38EC()) return;
- ewram0_10.var304++;
- break;
- case 6:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 7:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 8:
- sub_80EED2C(0x3);
- ewram0_10.var304++;
- break;
- case 9:
- if (gPaletteFade.active) return;
- ewram0_10.var304++;
- break;
- case 10:
- if (sub_80F170C()) return;
- sub_80EBDBC(&sub_80EE06C);
- break;
- }
+void sub_80EDEE4()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80F3130();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80F66E0();
+ sub_80EEE08();
+ ewram0_10.var304++;
+ break;
+ case 3:
+ if (!sub_80F1080())
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EEFBC(0x5);
+ sub_80F38B8();
+ ewram0_10.var304++;
+ case 5:
+ if (!sub_80F38EC())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 7:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 8:
+ sub_80EED2C(0x3);
+ ewram0_10.var304++;
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF000), 4);
+#endif
+ break;
+ case 9:
+ if (!gPaletteFade.active)
+ ewram0_10.var304++;
+ break;
+ case 10:
+ if (!sub_80F170C())
+ sub_80EBDBC(&sub_80EE06C);
+ break;
+ }
}
-void sub_80EE06C() {
- u32 var1;
- u16 var2;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F15A8();
- ewram0_10.var304++;
- break;
- case 1:
- if (gMain.newAndRepeatedKeys & 0x40) {
- if (ewram0_10.var87DC) {
- PlaySE(0x5);
- sub_80F6A4C(-1);
- ewram0_10.var304++;
- }
- else goto label1;
- }
- else goto label1;
- break;
-label1:
- if (gMain.newAndRepeatedKeys & 0x80) {
- if (ewram0_10.var87DC < ewram0_10.var8774) {
- PlaySE(0x5);
- sub_80F6A4C(1);
- ewram0_10.var304++;
- }
- else goto label2;
+void sub_80EE06C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F15A8();
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if ((gMain.newAndRepeatedKeys & 0x40) && (ewram0_10.var87DC))
+ {
+ PlaySE(SE_SELECT);
+ sub_80F6A4C(-1);
+ ewram0_10.var304++;
+ }
+ else if ((gMain.newAndRepeatedKeys & 0x80) && ewram0_10.var87DC < ewram0_10.var8774)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F6A4C(1);
+ ewram0_10.var304++;
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EEFBC(0xB);
+ ewram0_10.var304 = 0x4;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE294);
+ }
+ break;
+ case 2:
+ if (!sub_80F6AF0())
+ ewram0_10.var304++;
+ break;
+ case 3:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ case 4:
+ sub_80F3B00();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_80F3B58())
+ {
+ sub_80F1494();
+ ewram0_10.var304++;
+ sub_80EED9C();
}
- else goto label2;
- break;
-label2:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EEFBC(0xB);
+ break;
+ case 6:
+ switch (sub_80F68E8())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ sub_80F3B94();
+ ewram0_10.var304 = 0x7;
+ return;
+ default:
+ case 0:
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F3B94();
+ ewram0_10.var304 = 0x8;
+ }
+ break;
+ }
+ break;
+ case 7:
+ if (!sub_80F3BD4())
ewram0_10.var304 = 0x4;
+ break;
+ case 8:
+ if (!sub_80F3BD4())
+ {
+ sub_80EEFBC(0x5);
+ ewram0_10.var304 = 0;
}
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE294);
- }
- break;
- case 2:
- if (sub_80F6AF0()) return;
- ewram0_10.var304++;
- break;
- case 3:
- var1 = sub_8055870();
- if (var1) return;
- ewram0_10.var304 = var1;
- break;
- case 4:
- sub_80F3B00();
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_80F3B58()) return;
- sub_80F1494();
- ewram0_10.var304++;
- sub_80EED9C();
- break;
- case 6:
- switch (sub_80F68E8()) {
- case 1:
- PlaySE(0x5);
- sub_80F3B94();
- ewram0_10.var304 = 0x7;
- break;
- default:
- case 0:
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F3B94();
- ewram0_10.var304 = 0x8;
- }
- break;
- }
- break;
- case 7:
- if (sub_80F3BD4()) return;
- ewram0_10.var304 = 0x4;
- break;
- case 8:
- var2 = sub_80F3BD4();
- if (var2) return;
- sub_80EEFBC(0x5);
- ewram0_10.var304 = var2;
- break;
- }
+ break;
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 1, 4, 2, 4);
+#endif
}
-void sub_80EE294() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80F3C2C();
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80F6134();
- sub_80F0264(0x1);
- ewram0_10.var304++;
- case 3:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 4:
- sub_80EEFBC(0x4);
- sub_80F3008(0x1);
- SetVBlankCallback(&sub_80EBD18);
- ewram0_10.var304++;
- break;
- case 5:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 6:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- ewram0_10.var304++;
- break;
- case 7:
- sub_80EED2C(0x4);
- ewram0_10.var304++;
- break;
- case 8:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EDDBC);
- break;
- }
+void sub_80EE294()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80F3C2C();
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80F6134();
+ sub_80F0264(0x1);
+ ewram0_10.var304++;
+ case 3:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 4:
+ sub_80EEFBC(0x4);
+ sub_80F3008(0x1);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0_10.var304++;
+ break;
+ case 5:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0x4);
+ ewram0_10.var304++;
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ break;
+ case 8:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EDDBC);
+ break;
+ }
}
-void sub_80EE3D8() {
- u8 var1;
- switch (ewram0_10.var304) {
- case 0:
- sub_80F1E84();
- sub_80F2D04(0);
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F1F10()) return;
- sub_80EEFBC(0x9);
- ewram0_10.var304++;
- break;
- case 2:
- if (!(var1 = sub_80EEF34())) {
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, var1);
+void sub_80EE3D8()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F1E84();
+ sub_80F2D04(0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F1F10())
+ {
+ sub_80EEFBC(0x9);
ewram0_10.var304++;
}
- break;
- case 3:
- if (gPaletteFade.active) return;
- SetVBlankCallback(NULL);
- sub_80EED0C();
- sub_80EF814();
- sub_80EEE08();
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F2620();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F0264(0x2);
- ewram0_10.var304++;
- case 6:
- if (sub_80F02A0()) return;
- ewram0_10.var304++;
- break;
- case 7:
- sub_80F2C80(0x3);
- ewram0_10.var304++;
- case 8:
- if (sub_80F2CBC(0x3)) return;
- ewram0_10.var304++;
- break;
- case 9:
- sub_80F3008(0x2);
- ewram0_10.var304++;
- break;
- case 10:
- if (sub_8055870()) return;
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F6F10();
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
- SetVBlankCallback(&sub_80EBD68);
- ewram0_10.var304++;
- break;
- case 12:
- sub_80EED2C(0x5);
- ewram0_10.var304++;
- break;
- case 13:
- if (gPaletteFade.active) return;
- sub_80EBDBC(&sub_80EE58C);
- break;
- }
+ break;
+ case 2:
+ if (!sub_80EEF34())
+ {
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_80EED0C();
+ sub_80EF814();
+ sub_80EEE08();
+ ewram0_10.var304++;
+ }
+ break;
+ case 4:
+ sub_80F2620();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F0264(0x2);
+ ewram0_10.var304++;
+ case 6:
+ if (!sub_80F02A0())
+ ewram0_10.var304++;
+ break;
+ case 7:
+ sub_80F2C80(0x3);
+ ewram0_10.var304++;
+ case 8:
+ if (!sub_80F2CBC(0x3))
+ ewram0_10.var304++;
+ break;
+ case 9:
+ sub_80F3008(0x2);
+ ewram0_10.var304++;
+ break;
+ case 10:
+ if (!sub_8055870())
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F6F10();
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD68);
+ ewram0_10.var304++;
+ break;
+ case 12:
+ sub_80EED2C(0x5);
+ ewram0_10.var304++;
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008218((void *)(VRAM + 0x7DE0), 0, (void *)(VRAM + 0xF800), 4);
+#endif
+ break;
+ case 13:
+ if (!gPaletteFade.active)
+ sub_80EBDBC(&sub_80EE58C);
+ break;
+ }
}
-void sub_80EE58C() {
- switch (ewram0_10.var304) {
- case 0:
- switch (sub_80F5DD4()) {
- case 1:
- PlaySE(0x5);
+void sub_80EE58C()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ switch (sub_80F5DD4())
+ {
+ case 1:
+ PlaySE(SE_SELECT);
+ sub_80F0FFC(ewram0_10.var876E);
+ return;
+ case 2:
+ PlaySE(SE_SELECT);
+ ewram0_10.var304++;
+ return;
+ default:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE658);
+ return;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80EBDBC(&sub_80EE8F4);
+ return;
+ }
+ break;
+ }
+ break;
+ case 1:
+ if (!sub_80F0718())
+ {
sub_80F0FFC(ewram0_10.var876E);
- break;
- case 2:
- PlaySE(0x5);
+ sub_80F3264();
ewram0_10.var304++;
- break;
- default:
- if (gMain.newKeys & A_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE658);
- }
- else if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80EBDBC(&sub_80EE8F4);
- }
- break;
}
- break;
- case 1:
- if (sub_80F0718()) return;
- sub_80F0FFC(ewram0_10.var876E);
- sub_80F3264();
- ewram0_10.var304++;
- break;
- case 2:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0;
- break;
- }
+ break;
+ case 2:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0;
+ break;
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 1, 3, 2, 4);
+#endif
}
-void sub_80EE658() {
- switch (ewram0_10.var304) {
- case 0:
- sub_80F3294(0x1);
- sub_80EEFBC(0xA);
- sub_80F0B24();
- ewram0_10.var304++;
- break;
- case 1:
- if (sub_80F0B44()) return;
- ewram0_10.var304++;
- break;
- case 2:
- sub_80F0F64();
- ewram0_10.var304++;
- break;
- case 3:
- if (sub_80F0FEC()) return;
- sub_80F6FB8(0x1);
- ewram0_10.var304++;
- break;
- case 4:
- sub_80F6DB8();
- ewram0_10.var304++;
- break;
- case 5:
- sub_80F700C((u8 *)(gSharedMem + 0x8788), *(u16 *)(gSharedMem + 0x8788 - 0x1A));
- sub_80F42C4((u8 *)(gSharedMem + 0x8788));
- ewram0_10.var304++;
- break;
- case 6:
- sub_80F0CD8();
- ewram0_10.var304++;
- case 7:
- if (sub_80F6E9C()) return;
- if (sub_80F0D5C()) return;
- ewram0_10.var304++;
- break;
- case 8:
- if (gMain.heldKeys & 0x40) {
- if (ewram0_10.var87DC) {
- PlaySE(0x5);
- sub_80F708C(-1);
- ewram0_10.var304 = 0x10;
- }
- else goto label1;
- }
- else goto label1;
- break;
-label1:
- if (gMain.heldKeys & 0x80) {
- if (ewram0_10.var87DC < ewram0_10.var8774) {
- PlaySE(0x5);
- sub_80F708C(1);
- ewram0_10.var304 = 0x10;
- }
- else goto label2;
+void sub_80EE658()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ sub_80F3294(0x1);
+ sub_80EEFBC(0xA);
+ sub_80F0B24();
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!sub_80F0B44())
+ ewram0_10.var304++;
+ break;
+ case 2:
+ sub_80F0F64();
+ ewram0_10.var304++;
+ break;
+ case 3:
+ if (!sub_80F0FEC())
+ {
+ sub_80F6FB8(0x1);
+ ewram0_10.var304++;
}
- else goto label2;
- break;
-label2:
- if (gMain.newKeys & B_BUTTON) {
- PlaySE(0x5);
- sub_80F4394();
- sub_80F0EC0();
+ break;
+ case 4:
+ sub_80F6DB8();
+ ewram0_10.var304++;
+ break;
+ case 5:
+ sub_80F700C((u8 *)(gSharedMem + 0x8788), *(u16 *)(gSharedMem + 0x8788 - 0x1A));
+ sub_80F42C4((u8 *)(gSharedMem + 0x8788));
+ ewram0_10.var304++;
+ break;
+ case 6:
+ sub_80F0CD8();
+ ewram0_10.var304++;
+ case 7:
+ if (!sub_80F6E9C() && !sub_80F0D5C())
+ ewram0_10.var304++;
+ break;
+ case 8:
+ if ((gMain.heldKeys & 0x40) && ewram0_10.var87DC)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F708C(-1);
+ ewram0_10.var304 = 0x10;
+ }
+ else if ((gMain.heldKeys & 0x80) && ewram0_10.var87DC < ewram0_10.var8774)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F708C(1);
+ ewram0_10.var304 = 0x10;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80F4394();
+ sub_80F0EC0();
+ ewram0_10.var304++;
+ }
+ break;
+ case 9:
+ if (!sub_80F6ED4() && !sub_80F0EF4())
+ {
+ sub_80F6FB8(0);
+ sub_80F2FB0();
ewram0_10.var304++;
}
- break;
- case 9:
- if (sub_80F6ED4()) return;
- if (sub_80F0EF4()) return;
- sub_80F6FB8(0);
- sub_80F2FB0();
- ewram0_10.var304++;
- break;
- case 10:
- sub_80F6134();
- ewram0_10.var304++;
- break;
- case 11:
- sub_80F0FA0();
- ewram0_10.var304++;
- break;
- case 12:
- if (sub_80F0FEC()) return;
- ewram0_10.var304++;
- break;
- case 13:
- sub_80F0C28();
- ewram0_10.var304++;
- break;
- case 14:
- if (sub_80F0C48()) return;
- ewram0_10.var304++;
- break;
- case 15:
- sub_80EEFBC(0x9);
- sub_80F3294(0);
- sub_80EBDBC(&sub_80EE58C);
- sub_80EED9C();
- break;
- case 16:
- if (sub_80F70FC()) return;
- ewram0_10.var304++;
- break;
- case 17:
- if (sub_8055870()) return;
- ewram0_10.var304 = 0x8;
- break;
- }
+ break;
+ case 10:
+ sub_80F6134();
+ ewram0_10.var304++;
+ break;
+ case 11:
+ sub_80F0FA0();
+ ewram0_10.var304++;
+ break;
+ case 12:
+ if (!sub_80F0FEC())
+ ewram0_10.var304++;
+ break;
+ case 13:
+ sub_80F0C28();
+ ewram0_10.var304++;
+ break;
+ case 14:
+ if (!sub_80F0C48())
+ ewram0_10.var304++;
+ break;
+ case 15:
+ sub_80EEFBC(0x9);
+ sub_80F3294(0);
+ sub_80EBDBC(&sub_80EE58C);
+ sub_80EED9C();
+ break;
+ case 16:
+ if (!sub_80F70FC())
+ ewram0_10.var304++;
+ break;
+ case 17:
+ if (!sub_8055870())
+ ewram0_10.var304 = 0x8;
+ break;
+ }
}
-void sub_80EE8F4() {
- switch (ewram0_10.var304) {
- case 0:
- BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
- ewram0_10.var304++;
- break;
- case 1:
- if (gPaletteFade.active) return;
- sub_80F3130();
- sub_80F2D6C(0x2);
- sub_80F6FFC();
- ewram0_10.var304++;
- break;
- case 2:
- sub_80EBDBC(&sub_80EC00C);
- break;
- }
+void sub_80EE8F4()
+{
+ switch (ewram0_10.var304)
+ {
+ case 0:
+ BeginNormalPaletteFade(ewram0_10.var308, -1, 0, 0x10, 0);
+ ewram0_10.var304++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ sub_80F3130();
+ sub_80F2D6C(0x2);
+ sub_80F6FFC();
+ ewram0_10.var304++;
+ }
+ break;
+ case 2:
+ sub_80EBDBC(&sub_80EC00C);
+ break;
+ }
}
-void sub_80EE96C() {
- u16 var1 = ewram0_10.var304;
- if (!var1) {
- PlaySE(0x6F);
- BeginNormalPaletteFade(-1, 0, 0, 0x10, var1);
- ewram0_10.var304++;
- }
- else {
- if (gPaletteFade.active) return;
- sub_80F5BDC();
- sub_805469C();
- }
+void sub_80EE96C()
+{
+ if (!ewram0_10.var304)
+ {
+ PlaySE(0x6F);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ ewram0_10.var304++;
+ }
+ else
+ {
+ if (!gPaletteFade.active)
+ {
+ sub_80F5BDC();
+ sub_805469C();
+ }
+ }
}
-void sub_80EE9C0(u8 param1, u8 param2, u8 param3) {
- sub_80F1E84();
- ewram0_10.var6e14 = param1;
- ewram0_10.var6e15 = param2;
- ewram0_10.var6e16 = 0;
- ewram0_10.var6e17 = param3;
+void sub_80EE9C0(u8 param1, u8 param2, u8 param3)
+{
+ sub_80F1E84();
+ ewram0_10.var6e14 = param1;
+ ewram0_10.var6e15 = param2;
+ ewram0_10.var6e16 = 0;
+ ewram0_10.var6e17 = param3;
}
#if 0
bool8 sub_80EEA0C() {
- switch (ewram0_10.var6e16) {
- case 0:
- if (sub_80F1F10()) return 1;
- if (ewram0_10.var6e17 != 0xC) {
- ewram0_10.var6e16 = 0x1;
- return 1;
- }
- else {
- ewram0_10.var6e16 = 0x3;
- return 1;
- }
- case 1:
- sub_80F2C80(ewram0_10.var6e17);
- ewram0_10.var6e16++;
- case 2:
- if (sub_80F2CBC(ewram0_10.var6e17)) return 1;
- ewram0_10.var6e16++;
- case 3:
-
- }
+ switch (ewram0_10.var6e16) {
+ case 0:
+ if (sub_80F1F10()) return 1;
+ if (ewram0_10.var6e17 != 0xC) {
+ ewram0_10.var6e16 = 0x1;
+ return 1;
+ }
+ else {
+ ewram0_10.var6e16 = 0x3;
+ return 1;
+ }
+ case 1:
+ sub_80F2C80(ewram0_10.var6e17);
+ ewram0_10.var6e16++;
+ case 2:
+ if (sub_80F2CBC(ewram0_10.var6e17)) return 1;
+ ewram0_10.var6e16++;
+ case 3:
+
+ }
}
#else
__attribute__((naked))
bool8 sub_80EEA0C() {
- asm_unified(
- "push {r4,lr}\n\
- ldr r1, _080EEA28 @ =gSharedMem\n\
- ldr r2, _080EEA2C @ =0x00006e16\n\
- adds r0, r1, r2\n\
- ldrb r0, [r0]\n\
- adds r3, r1, 0\n\
- cmp r0, 0x8\n\
- bls _080EEA1E\n\
- b _080EEBFA\n\
+ asm_unified(
+ "push {r4,lr}\n\
+ ldr r1, _080EEA28 @ =gSharedMem\n\
+ ldr r2, _080EEA2C @ =0x00006e16\n\
+ adds r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0x8\n\
+ bls _080EEA1E\n\
+ b _080EEBFA\n\
_080EEA1E:\n\
- lsls r0, 2\n\
- ldr r1, _080EEA30 @ =_080EEA34\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .align 2, 0\n\
+ lsls r0, 2\n\
+ ldr r1, _080EEA30 @ =_080EEA34\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .align 2, 0\n\
_080EEA28: .4byte gSharedMem\n\
_080EEA2C: .4byte 0x00006e16\n\
_080EEA30: .4byte _080EEA34\n\
- .align 2, 0\n\
+ .align 2, 0\n\
_080EEA34:\n\
- .4byte _080EEA58\n\
- .4byte _080EEA98\n\
- .4byte _080EEAAE\n\
- .4byte _080EEAD4\n\
- .4byte _080EEB3E\n\
- .4byte _080EEB68\n\
- .4byte _080EEB88\n\
- .4byte _080EEBAC\n\
- .4byte _080EEBE4\n\
+ .4byte _080EEA58\n\
+ .4byte _080EEA98\n\
+ .4byte _080EEAAE\n\
+ .4byte _080EEAD4\n\
+ .4byte _080EEB3E\n\
+ .4byte _080EEB68\n\
+ .4byte _080EEB88\n\
+ .4byte _080EEBAC\n\
+ .4byte _080EEBE4\n\
_080EEA58:\n\
- bl sub_80F1F10\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080EEA64\n\
- b _080EEC08\n\
+ bl sub_80F1F10\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EEA64\n\
+ b _080EEC08\n\
_080EEA64:\n\
- ldr r1, _080EEA7C @ =gSharedMem\n\
- ldr r4, _080EEA80 @ =0x00006e17\n\
- adds r0, r1, r4\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xC\n\
- beq _080EEA88\n\
- ldr r0, _080EEA84 @ =0x00006e16\n\
- adds r1, r0\n\
- movs r0, 0x1\n\
- strb r0, [r1]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldr r1, _080EEA7C @ =gSharedMem\n\
+ ldr r4, _080EEA80 @ =0x00006e17\n\
+ adds r0, r1, r4\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0xC\n\
+ beq _080EEA88\n\
+ ldr r0, _080EEA84 @ =0x00006e16\n\
+ adds r1, r0\n\
+ movs r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEA7C: .4byte gSharedMem\n\
_080EEA80: .4byte 0x00006e17\n\
_080EEA84: .4byte 0x00006e16\n\
_080EEA88:\n\
- ldr r2, _080EEA94 @ =0x00006e16\n\
- adds r1, r2\n\
- movs r0, 0x3\n\
- strb r0, [r1]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldr r2, _080EEA94 @ =0x00006e16\n\
+ adds r1, r2\n\
+ movs r0, 0x3\n\
+ strb r0, [r1]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEA94: .4byte 0x00006e16\n\
_080EEA98:\n\
- ldr r4, _080EEAC8 @ =gSharedMem\n\
- ldr r1, _080EEACC @ =0x00006e17\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F2C80\n\
- ldr r2, _080EEAD0 @ =0x00006e16\n\
- adds r4, r2\n\
- ldrb r0, [r4]\n\
- adds r0, 0x1\n\
- strb r0, [r4]\n\
+ ldr r4, _080EEAC8 @ =gSharedMem\n\
+ ldr r1, _080EEACC @ =0x00006e17\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F2C80\n\
+ ldr r2, _080EEAD0 @ =0x00006e16\n\
+ adds r4, r2\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
_080EEAAE:\n\
- ldr r4, _080EEAC8 @ =gSharedMem\n\
- ldr r1, _080EEACC @ =0x00006e17\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F2CBC\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _080EEAC2\n\
- b _080EEC08\n\
+ ldr r4, _080EEAC8 @ =gSharedMem\n\
+ ldr r1, _080EEACC @ =0x00006e17\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F2CBC\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080EEAC2\n\
+ b _080EEC08\n\
_080EEAC2:\n\
- ldr r2, _080EEAD0 @ =0x00006e16\n\
- adds r1, r4, r2\n\
- b _080EEB76\n\
- .align 2, 0\n\
+ ldr r2, _080EEAD0 @ =0x00006e16\n\
+ adds r1, r4, r2\n\
+ b _080EEB76\n\
+ .align 2, 0\n\
_080EEAC8: .4byte gSharedMem\n\
_080EEACC: .4byte 0x00006e17\n\
_080EEAD0: .4byte 0x00006e16\n\
_080EEAD4:\n\
- adds r2, r3, 0\n\
- ldr r4, _080EEAF8 @ =0x00006e15\n\
- adds r0, r2, r4\n\
- ldrb r1, [r0]\n\
- subs r4, 0x68\n\
- adds r0, r2, r4\n\
- strb r1, [r0]\n\
- ldr r1, _080EEAFC @ =0x00006e14\n\
- adds r0, r2, r1\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x1\n\
- beq _080EEB14\n\
- cmp r0, 0x1\n\
- bgt _080EEB00\n\
- cmp r0, 0\n\
- beq _080EEB06\n\
- b _080EEB28\n\
- .align 2, 0\n\
+ adds r2, r3, 0\n\
+ ldr r4, _080EEAF8 @ =0x00006e15\n\
+ adds r0, r2, r4\n\
+ ldrb r1, [r0]\n\
+ subs r4, 0x68\n\
+ adds r0, r2, r4\n\
+ strb r1, [r0]\n\
+ ldr r1, _080EEAFC @ =0x00006e14\n\
+ adds r0, r2, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1\n\
+ beq _080EEB14\n\
+ cmp r0, 0x1\n\
+ bgt _080EEB00\n\
+ cmp r0, 0\n\
+ beq _080EEB06\n\
+ b _080EEB28\n\
+ .align 2, 0\n\
_080EEAF8: .4byte 0x00006e15\n\
_080EEAFC: .4byte 0x00006e14\n\
_080EEB00:\n\
- cmp r0, 0x2\n\
- beq _080EEB20\n\
- b _080EEB28\n\
+ cmp r0, 0x2\n\
+ beq _080EEB20\n\
+ b _080EEB28\n\
_080EEB06:\n\
- ldr r4, _080EEB10 @ =0x00006dae\n\
- adds r1, r2, r4\n\
- movs r0, 0x5\n\
- b _080EEB26\n\
- .align 2, 0\n\
+ ldr r4, _080EEB10 @ =0x00006dae\n\
+ adds r1, r2, r4\n\
+ movs r0, 0x5\n\
+ b _080EEB26\n\
+ .align 2, 0\n\
_080EEB10: .4byte 0x00006dae\n\
_080EEB14:\n\
- ldr r0, _080EEB1C @ =0x00006dae\n\
- adds r1, r2, r0\n\
- movs r0, 0x3\n\
- b _080EEB26\n\
- .align 2, 0\n\
+ ldr r0, _080EEB1C @ =0x00006dae\n\
+ adds r1, r2, r0\n\
+ movs r0, 0x3\n\
+ b _080EEB26\n\
+ .align 2, 0\n\
_080EEB1C: .4byte 0x00006dae\n\
_080EEB20:\n\
- ldr r2, _080EEB58 @ =0x00006dae\n\
- adds r1, r3, r2\n\
- movs r0, 0x6\n\
+ ldr r2, _080EEB58 @ =0x00006dae\n\
+ adds r1, r3, r2\n\
+ movs r0, 0x6\n\
_080EEB26:\n\
- strb r0, [r1]\n\
+ strb r0, [r1]\n\
_080EEB28:\n\
- ldr r4, _080EEB5C @ =gSharedMem\n\
- ldr r1, _080EEB60 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F1B8C\n\
- ldr r2, _080EEB64 @ =0x00006e16\n\
- adds r4, r2\n\
- ldrb r0, [r4]\n\
- adds r0, 0x1\n\
- strb r0, [r4]\n\
+ ldr r4, _080EEB5C @ =gSharedMem\n\
+ ldr r1, _080EEB60 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F1B8C\n\
+ ldr r2, _080EEB64 @ =0x00006e16\n\
+ adds r4, r2\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
_080EEB3E:\n\
- ldr r4, _080EEB5C @ =gSharedMem\n\
- ldr r1, _080EEB60 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80F1BC8\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r2, _080EEB64 @ =0x00006e16\n\
- adds r1, r4, r2\n\
- b _080EEB76\n\
- .align 2, 0\n\
+ ldr r4, _080EEB5C @ =gSharedMem\n\
+ ldr r1, _080EEB60 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80F1BC8\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r2, _080EEB64 @ =0x00006e16\n\
+ adds r1, r4, r2\n\
+ b _080EEB76\n\
+ .align 2, 0\n\
_080EEB58: .4byte 0x00006dae\n\
_080EEB5C: .4byte gSharedMem\n\
_080EEB60: .4byte 0x00006e14\n\
_080EEB64: .4byte 0x00006e16\n\
_080EEB68:\n\
- bl sub_8055870\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r1, _080EEB80 @ =gSharedMem\n\
- ldr r4, _080EEB84 @ =0x00006e16\n\
- adds r1, r4\n\
+ bl sub_8055870\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r1, _080EEB80 @ =gSharedMem\n\
+ ldr r4, _080EEB84 @ =0x00006e16\n\
+ adds r1, r4\n\
_080EEB76:\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEB80: .4byte gSharedMem\n\
_080EEB84: .4byte 0x00006e16\n\
_080EEB88:\n\
- bl sub_80F1DF0\n\
- ldr r4, _080EEBA0 @ =gSharedMem\n\
- ldr r1, _080EEBA4 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- bl sub_80EF490\n\
- ldr r2, _080EEBA8 @ =0x00006e16\n\
- adds r4, r2\n\
- b _080EEBCC\n\
- .align 2, 0\n\
+ bl sub_80F1DF0\n\
+ ldr r4, _080EEBA0 @ =gSharedMem\n\
+ ldr r1, _080EEBA4 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ bl sub_80EF490\n\
+ ldr r2, _080EEBA8 @ =0x00006e16\n\
+ adds r4, r2\n\
+ b _080EEBCC\n\
+ .align 2, 0\n\
_080EEBA0: .4byte gSharedMem\n\
_080EEBA4: .4byte 0x00006e14\n\
_080EEBA8: .4byte 0x00006e16\n\
_080EEBAC:\n\
- bl sub_80F1E50\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r4, _080EEBD4 @ =gSharedMem\n\
- ldr r1, _080EEBD8 @ =0x00006e14\n\
- adds r0, r4, r1\n\
- ldrb r0, [r0]\n\
- ldr r2, _080EEBDC @ =0x00006dad\n\
- adds r1, r4, r2\n\
- ldrb r1, [r1]\n\
- bl sub_80EF428\n\
- ldr r0, _080EEBE0 @ =0x00006e16\n\
- adds r4, r0\n\
+ bl sub_80F1E50\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r4, _080EEBD4 @ =gSharedMem\n\
+ ldr r1, _080EEBD8 @ =0x00006e14\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ ldr r2, _080EEBDC @ =0x00006dad\n\
+ adds r1, r4, r2\n\
+ ldrb r1, [r1]\n\
+ bl sub_80EF428\n\
+ ldr r0, _080EEBE0 @ =0x00006e16\n\
+ adds r4, r0\n\
_080EEBCC:\n\
- ldrb r0, [r4]\n\
- adds r0, 0x1\n\
- strb r0, [r4]\n\
- b _080EEC08\n\
- .align 2, 0\n\
+ ldrb r0, [r4]\n\
+ adds r0, 0x1\n\
+ strb r0, [r4]\n\
+ b _080EEC08\n\
+ .align 2, 0\n\
_080EEBD4: .4byte gSharedMem\n\
_080EEBD8: .4byte 0x00006e14\n\
_080EEBDC: .4byte 0x00006dad\n\
_080EEBE0: .4byte 0x00006e16\n\
_080EEBE4:\n\
- bl sub_80EF4F8\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080EEC08\n\
- ldr r1, _080EEC00 @ =gSharedMem\n\
- ldr r2, _080EEC04 @ =0x00006e16\n\
- adds r1, r2\n\
- ldrb r0, [r1]\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
+ bl sub_80EF4F8\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080EEC08\n\
+ ldr r1, _080EEC00 @ =gSharedMem\n\
+ ldr r2, _080EEC04 @ =0x00006e16\n\
+ adds r1, r2\n\
+ ldrb r0, [r1]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1]\n\
_080EEBFA:\n\
- movs r0, 0\n\
- b _080EEC0A\n\
- .align 2, 0\n\
+ movs r0, 0\n\
+ b _080EEC0A\n\
+ .align 2, 0\n\
_080EEC00: .4byte gSharedMem\n\
_080EEC04: .4byte 0x00006e16\n\
_080EEC08:\n\
- movs r0, 0x1\n\
+ movs r0, 0x1\n\
_080EEC0A:\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n"
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n"
- );
+ );
}
#endif
// var6dad and var6dae must be s8 in this func
-bool8 sub_80EEC10() {
- if (gMain.newKeys & 0x40) {
- do {
- if (--ewram0_11.var6dad < 0) {
- ewram0_11.var6dad = ewram0_11.var6dae - 1;
- }
-
- } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
- return 1;
- }
- if (gMain.newKeys & 0x80) {
- do {
- if (++ewram0_11.var6dad >= ewram0_11.var6dae) {
- ewram0_11.var6dad = 0;
- }
- } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
- return 1;
- }
- return 0;
+bool8 sub_80EEC10()
+{
+ if (gMain.newKeys & 0x40)
+ {
+ do
+ {
+ if (--ewram0_11.var6dad < 0)
+ ewram0_11.var6dad = ewram0_11.var6dae - 1;
+ } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
+ return TRUE;
+ }
+ if (gMain.newKeys & 0x80)
+ {
+ do
+ {
+ if (++ewram0_11.var6dad >= ewram0_11.var6dae)
+ ewram0_11.var6dad = 0;
+ } while (!ewram0_10.var6db2[ewram0_11.var6dad]);
+ return TRUE;
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 6, 10, 2, 4);
+#endif
+ return FALSE;
}
-bool8 sub_80EEC90() {
- if (gMain.newKeys & 0x40) {
- if (--ewram0_11.var6dad < 0) {
- ewram0_11.var6dad = ewram0_11.var6dae - 1;
- }
- return 1;
- }
- if (gMain.newKeys & 0x80) {
- if (++ewram0_11.var6dad >= ewram0_11.var6dae) {
- ewram0_11.var6dad = 0;
- }
- return 1;
- }
- return 0;
+bool8 sub_80EEC90()
+{
+ if (gMain.newKeys & 0x40)
+ {
+ if (--ewram0_11.var6dad < 0)
+ ewram0_11.var6dad = ewram0_11.var6dae - 1;
+ return TRUE;
+ }
+ if (gMain.newKeys & 0x80)
+ {
+ if (++ewram0_11.var6dad >= ewram0_11.var6dae)
+ ewram0_11.var6dad = 0;
+ return TRUE;
+ }
+#if DEBUG
+ if (gLinkOpen == TRUE)
+ debug_sub_8008264(gLink.recvQueue.count, 6, 10, 2, 4);
+#endif
+ return FALSE;
}
-void sub_80EED0C() {
- REG_DISPCNT = 512;
+void sub_80EED0C()
+{
+ REG_DISPCNT = 512;
}
-void sub_80EED1C() {
- REG_DISPCNT = 0x92 << 5;
+void sub_80EED1C()
+{
+ REG_DISPCNT = 0x92 << 5;
}
-void sub_80EED2C(u8 param1) {
- switch (param1) {
- case 0:
- REG_DISPCNT = 0xFA << 5;
- break;
- case 1:
- REG_DISPCNT = 0x1741;
- break;
- case 3:
- case 4:
- REG_DISPCNT = 0xFA << 5;
- break;
- case 2:
- REG_DISPCNT = 0x7b40;
- break;
- case 5:
- REG_DISPCNT = 0xFD << 6;
- break;
- }
+void sub_80EED2C(u8 param1)
+{
+ switch (param1) {
+ case 0:
+ REG_DISPCNT = 0xFA << 5;
+ break;
+ case 1:
+ REG_DISPCNT = 0x1741;
+ break;
+ case 3:
+ case 4:
+ REG_DISPCNT = 0xFA << 5;
+ break;
+ case 2:
+ REG_DISPCNT = 0x7b40;
+ break;
+ case 5:
+ REG_DISPCNT = 0xFD << 6;
+ break;
+ }
}
-void sub_80EED9C(void) {
- gUnknown_03000744 = ewram0_10.var300;
- ewram0_10.var300 = &sub_80EEDC4;
- ewram0_10.var300();
+void sub_80EED9C(void)
+{
+ gUnknown_03000744 = ewram0_10.var300;
+ ewram0_10.var300 = &sub_80EEDC4;
+ ewram0_10.var300();
}
-void sub_80EEDC4(void) {
- if (sub_8055870() != 0x1) {
- ewram0_10.var300 = gUnknown_03000744;
- }
+void sub_80EEDC4(void)
+{
+ if (sub_8055870() != 0x1)
+ ewram0_10.var300 = gUnknown_03000744;
}
-void sub_80EEDE8(void) {
- REG_BG0HOFS = 0;
- REG_BG0VOFS = 0;
- REG_BG2VOFS = 0;
- REG_BG2HOFS = 0;
- REG_BG3HOFS = 0;
- REG_BG3VOFS = 0;
+void sub_80EEDE8(void)
+{
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
}
-void sub_80EEE08(void) {
- gUnknown_083DFEC4->unkD160 = 0;
+void sub_80EEE08(void)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
}
-void sub_80EEE20(void) {
- gUnknown_083DFEC4->unkD160 = 0;
- if (!gUnknown_083DFEC4->unk6DAC) {
- while (sub_80EEE54());
- }
+void sub_80EEE20(void)
+{
+ gUnknown_083DFEC4->unkD160 = 0;
+ if (!gUnknown_083DFEC4->unk6DAC)
+ {
+ while (sub_80EEE54())
+ ;
+ }
}
-bool8 sub_80EEE54(void) {
- switch (gUnknown_083DFEC4->unkD160) {
- case 0:
- LZ77UnCompVram(gPokenavHoennMapMisc_Gfx, (void *)VRAM + 0xC000);
- break;
- case 1:
- LZ77UnCompVram(gUnknown_08E99FB0, (void *)VRAM + 0xD800);
- break;
- case 2:
- LoadPalette(gPokenavHoennMap1_Pal, 0x10, 0x20);
- break;
- case 3:
- sub_80EF58C(0);
- sub_80EF58C(1);
- sub_80EF58C(2);
- break;
- case 4:
- gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
- REG_BG1HOFS = 0;
- REG_BG1VOFS = 0;
- REG_BG1CNT = 0x1B0C;
- gUnknown_083DFEC4->unkD160++;
- default:
- return 0;
- }
- gUnknown_083DFEC4->unkD160++;
- return 1;
+bool8 sub_80EEE54(void)
+{
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ LZ77UnCompVram(gPokenavHoennMapMisc_Gfx, (void *)VRAM + 0xC000);
+ break;
+ case 1:
+ LZ77UnCompVram(gUnknown_08E99FB0, (void *)VRAM + 0xD800);
+ break;
+ case 2:
+ LoadPalette(gPokenavHoennMap1_Pal, 0x10, 0x20);
+ break;
+ case 3:
+ sub_80EF58C(0);
+ sub_80EF58C(1);
+ sub_80EF58C(2);
+ break;
+ case 4:
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG1CNT = 0x1B0C;
+ gUnknown_083DFEC4->unkD160++;
+ default:
+ return FALSE;
+ }
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
-bool8 sub_80EEF34(void) {
- bool8 retVal = TRUE;
+bool8 sub_80EEF34(void)
+{
+ bool8 retVal = TRUE;
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 32)
- {
- return FALSE;
- }
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 32)
+ return FALSE;
- gUnknown_083DFEC4->unk030C.unk030C.unk0 += 2;
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 > 31)
- {
- gUnknown_083DFEC4->unk030C.unk030C.unk0 = 32;
- retVal = FALSE;
- }
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 += 2;
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 > 31)
+ {
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 32;
+ retVal = FALSE;
+ }
- REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
- return retVal;
+ REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
+ return retVal;
}
bool8 sub_80EEF78(void)
{
- bool8 retVal = TRUE;
-
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 0)
- {
- return FALSE;
- }
-
- gUnknown_083DFEC4->unk030C.unk030C.unk0 -= 2;
- if (gUnknown_083DFEC4->unk030C.unk030C.unk0 <= 0)
- {
- gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
- retVal = FALSE;
- }
-
- REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
- return retVal;
+ bool8 retVal = TRUE;
+
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 == 0)
+ return FALSE;
+
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 -= 2;
+ if (gUnknown_083DFEC4->unk030C.unk030C.unk0 <= 0)
+ {
+ gUnknown_083DFEC4->unk030C.unk030C.unk0 = 0;
+ retVal = FALSE;
+ }
+
+ REG_BG1VOFS = gUnknown_083DFEC4->unk030C.unk030C.unk0;
+ return retVal;
}
void sub_80EEFBC(u8 a)
{
- u8 var1;
+ u8 var1;
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 0, 17, 2);
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 0, 17, 2);
- switch (a)
- {
- case 0:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 17, 0, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 11:
- sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 2:
- var1 = gUnknown_083DFEC4->unk6DAC;
- if (!var1)
- {
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 2, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, var1, 6, 7, 2);
- }
- else
- {
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- }
- break;
- case 3:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 4, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 4:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 2, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 7:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 4, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 8:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 4, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 5:
- case 9:
- sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 2, 10, 2);
- sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- case 10:
- sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
- break;
- }
+ switch (a)
+ {
+ case 0:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 17, 0, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 11:
+ sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 2:
+ var1 = gUnknown_083DFEC4->unk6DAC;
+ if (!var1)
+ {
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 2, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, var1, 6, 7, 2);
+ }
+ else
+ {
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ }
+ break;
+ case 3:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 4, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 4:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 2, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 10, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 7:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 10, 4, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 8:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 20, 4, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 7, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 5:
+ case 9:
+ sub_809D104((void *)VRAM + 0xD800, 0, 22, gUnknown_08E9A100, 0, 2, 10, 2);
+ sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ case 10:
+ sub_809D104((void *)VRAM + 0xD800, 8, 22, gUnknown_08E9A100, 0, 6, 7, 2);
+ break;
+ }
}
void sub_80EF248(u8 a)
{
- gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_083DFEC4->unkD160 = 0;
- if (!gUnknown_083DFEC4->unk6DAC)
- {
- while (sub_80EF284(a));
- }
+ if (!gUnknown_083DFEC4->unk6DAC)
+ {
+ while (sub_80EF284(a))
+ ;
+ }
}
bool8 sub_80EF284(u8 a)
{
- switch (gUnknown_083DFEC4->unkD160)
- {
- case 0:
- sub_80EEDE8();
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E7224);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7224);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- DmaCopy16Defvars(3, gUnknown_083DFEEC, (void *)VRAM + 0x5000, 0xA0);
- break;
- case 5:
- LZ77UnCompVram(gUnknown_083DFF8C, (void *)VRAM + 0xF800);
- break;
- case 6:
- DmaCopy16Defvars(3, gUnknown_083E005C, (void *)VRAM + 0x8000, 0x20);
- break;
- case 7:
- LZ77UnCompVram(gUnknown_083E007C, (void *)VRAM + 0xE000);
- break;
- case 8:
- LZ77UnCompVram(gPokenavOutlineTilemap, (void *)VRAM + 0xE800);
- break;
- case 9:
- LZ77UnCompVram(gPokenavOutlineTiles, (void *)VRAM + 0x8020);
- break;
- case 10:
- sub_80EF54C(a);
- LoadPalette(gUnknown_083DFECC, 0xF0, 0x20);
- LoadPalette(gPokenavOutlinePalette, 0x40, 0x20);
- sub_80EF7D4();
- break;
- case 11:
- REG_BG0CNT = 0x1F01;
- REG_BG2CNT = 0x1D0A;
- REG_BG3CNT = 0x1C0B;
- REG_BLDCNT = 0;
-
- gUnknown_083DFEC4->unkD160++;
- return FALSE;
- default:
- return FALSE;
- }
-
- gUnknown_083DFEC4->unkD160++;
- return TRUE;
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ sub_80EEDE8();
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7224);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E7224);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ return TRUE;
+ break;
+ case 4:
+ DmaCopy16Defvars(3, gUnknown_083DFEEC, (void *)VRAM + 0x5000, 0xA0);
+ break;
+ case 5:
+ LZ77UnCompVram(gUnknown_083DFF8C, (void *)VRAM + 0xF800);
+ break;
+ case 6:
+ DmaCopy16Defvars(3, gUnknown_083E005C, (void *)VRAM + 0x8000, 0x20);
+ break;
+ case 7:
+ LZ77UnCompVram(gUnknown_083E007C, (void *)VRAM + 0xE000);
+ break;
+ case 8:
+ LZ77UnCompVram(gPokenavOutlineTilemap, (void *)VRAM + 0xE800);
+ break;
+ case 9:
+ LZ77UnCompVram(gPokenavOutlineTiles, (void *)VRAM + 0x8020);
+ break;
+ case 10:
+ sub_80EF54C(a);
+ LoadPalette(gUnknown_083DFECC, 0xF0, 0x20);
+ LoadPalette(gPokenavOutlinePalette, 0x40, 0x20);
+ sub_80EF7D4();
+ break;
+ case 11:
+ REG_BG0CNT = 0x1F01;
+ REG_BG2CNT = 0x1D0A;
+ REG_BG3CNT = 0x1C0B;
+ REG_BLDCNT = 0;
+
+ gUnknown_083DFEC4->unkD160++;
+ return FALSE;
+ default:
+ return FALSE;
+ }
+
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
void sub_80EF428(u8 a, u8 b)
{
- u8 *tileBuffer;
- const u8 *pcText = 0;
+ u8 *tileBuffer;
+ const u8 *pcText = 0;
- switch (a)
- {
- case 0:
- pcText = gUnknown_083E31B0[b];
- break;
- case 1:
- pcText = gUnknown_083E31CC[b];
- break;
- case 2:
- pcText = gUnknown_083E31D8[b];
- break;
- }
+ switch (a)
+ {
+ case 0:
+ pcText = gUnknown_083E31B0[b];
+ break;
+ case 1:
+ pcText = gUnknown_083E31CC[b];
+ break;
+ case 2:
+ pcText = gUnknown_083E31D8[b];
+ break;
+ }
- tileBuffer = gUnknown_083DFEC8;
- sub_8072C74(&tileBuffer[0x800], pcText, 0xC0, 2);
- MenuPrint(&tileBuffer[0x800], 3, 17);
+ tileBuffer = gUnknown_083DFEC8;
+ sub_8072C74(&tileBuffer[0x800], pcText, 0xC0, 2);
+ Menu_PrintText(&tileBuffer[0x800], 3, 17);
}
void sub_80EF490(u8 a)
{
- u16 var1, var2;
-
- if (a == 2)
- {
- a = 1;
- }
-
- gUnknown_083DFEC4->unkCE4E = a * 30;
- var1 = gUnknown_083DFEC4->unkCE4C;
- var2 = a * 30;
- if (var1 < var2)
- {
- gUnknown_083DFEC4->unkCE50 = 2;
- }
- else if (var1 > var2)
- {
- gUnknown_083DFEC4->unkCE50 = -2;
- }
- else
- {
- gUnknown_083DFEC4->unkCE50 = 0;
- }
+ u16 var1, var2;
+
+ if (a == 2)
+ a = 1;
+
+ gUnknown_083DFEC4->unkCE4E = a * 30;
+ var1 = gUnknown_083DFEC4->unkCE4C;
+ var2 = a * 30;
+ if (var1 < var2)
+ gUnknown_083DFEC4->unkCE50 = 2;
+ else if (var1 > var2)
+ gUnknown_083DFEC4->unkCE50 = -2;
+ else
+ gUnknown_083DFEC4->unkCE50 = 0;
}
bool8 sub_80EF4F8(void)
{
- u16 *palettes;
+ u16 *palettes;
- if (gUnknown_083DFEC4->unkCE4C == gUnknown_083DFEC4->unkCE4E)
- {
- return FALSE;
- }
- else
- {
- gUnknown_083DFEC4->unkCE4C = gUnknown_083DFEC4->unkCE50 + gUnknown_083DFEC4->unkCE4C;
+ if (gUnknown_083DFEC4->unkCE4C == gUnknown_083DFEC4->unkCE4E)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gUnknown_083DFEC4->unkCE4C = gUnknown_083DFEC4->unkCE50 + gUnknown_083DFEC4->unkCE4C;
- palettes = gUnknown_083DFEC4->palettesCE52;
- LoadPalette(&palettes[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
- return TRUE;
- }
+ palettes = gUnknown_083DFEC4->palettesCE52;
+ LoadPalette(&palettes[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
+ return TRUE;
+ }
}
void sub_80EF54C(u8 a)
{
- if (a == 2)
- {
- a = 1;
- }
+ if (a == 2)
+ a = 1;
- gUnknown_083DFEC4->unkCE4C = a * 30;
- LoadPalette(&gUnknown_083DFEC4->palettesCE52[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
+ gUnknown_083DFEC4->unkCE4C = a * 30;
+ LoadPalette(&gUnknown_083DFEC4->palettesCE52[gUnknown_083DFEC4->unkCE4C], 0x31, 4);
}
void sub_80EF58C(u8 a)
{
- u16 i;
- u16 * palettes;
- const u16 *var1;
-
- switch (a)
- {
- case 0:
- for (i = 0; i < 62; i++)
- {
- gUnknown_083DFEC4->palettesCE52[i] = 0;
- }
- break;
- case 1:
- palettes = gUnknown_083DFEC4->palettesCE52;
- var1 = gUnknown_083E003C;
- sub_80EF624(&var1[1], &var1[3], 16, 2, palettes);
- break;
- case 2:
- palettes = gUnknown_083DFEC4->palettesCE8E;
- var1 = gUnknown_083E003C;
- sub_80EF624(&var1[3], &var1[7], 16, 2, palettes);
- break;
- }
+ u16 i;
+ u16 * palettes;
+ const u16 *var1;
+
+ switch (a)
+ {
+ case 0:
+ for (i = 0; i < 62; i++)
+ gUnknown_083DFEC4->palettesCE52[i] = 0;
+ break;
+ case 1:
+ palettes = gUnknown_083DFEC4->palettesCE52;
+ var1 = gUnknown_083E003C;
+ sub_80EF624(&var1[1], &var1[3], 16, 2, palettes);
+ break;
+ case 2:
+ palettes = gUnknown_083DFEC4->palettesCE8E;
+ var1 = gUnknown_083E003C;
+ sub_80EF624(&var1[3], &var1[7], 16, 2, palettes);
+ break;
+ }
}
#ifdef NONMATCHING
void sub_80EF624(const u16 *a, const u16 *b, u8 c, u8 d, u16 *palettes)
{
- u16 red1, green1, blue1;
- u16 red2, green2, blue2;
- s32 redDiv, greenDiv, blueDiv;
- u16 *palettes2;
- u16 i, j;
-
- i = 0;
- while (i < d)
- {
- red1 = (*a & 0x1F) << 8;
- green1 = ((*a >> 5) & 0x1F) << 8;
- blue1 = ((*a >> 10) & 0x1F) << 8;
-
- red2 = (*b & 0x1F) << 8;
- green2 = ((*b >> 5) & 0x1F) << 8;
- blue2 = ((*b >> 10) & 0x1F) << 8;
-
- redDiv = (red2 - red1) / c;
- greenDiv = (green2 - green1) / c;
- blueDiv = (blue2 - blue1) / c;
-
- palettes2 = palettes;
- for (j = 0; j < c - 1; j++)
- {
- *palettes2 = (((blue1 << 8) >> 16) << 10) | (((green1 << 8) >> 16) << 5) | ((red1 << 8) >> 16);
- palettes2 += d;
- red1 += redDiv;
- green1 += greenDiv;
- blue1 += blueDiv;
- }
+ u16 red1, green1, blue1;
+ u16 red2, green2, blue2;
+ s32 redDiv, greenDiv, blueDiv;
+ u16 *palettes2;
+ u16 i, j;
+
+ i = 0;
+ while (i < d)
+ {
+ red1 = (*a & 0x1F) << 8;
+ green1 = ((*a >> 5) & 0x1F) << 8;
+ blue1 = ((*a >> 10) & 0x1F) << 8;
+
+ red2 = (*b & 0x1F) << 8;
+ green2 = ((*b >> 5) & 0x1F) << 8;
+ blue2 = ((*b >> 10) & 0x1F) << 8;
+
+ redDiv = (red2 - red1) / c;
+ greenDiv = (green2 - green1) / c;
+ blueDiv = (blue2 - blue1) / c;
+
+ palettes2 = palettes;
+ for (j = 0; j < c - 1; j++)
+ {
+ *palettes2 = (((blue1 << 8) >> 16) << 10) | (((green1 << 8) >> 16) << 5) | ((red1 << 8) >> 16);
+ palettes2 += d;
+ red1 += redDiv;
+ green1 += greenDiv;
+ blue1 += blueDiv;
+ }
- *palettes2 = (red2 >> 8) | (blue2 << 2) | (green2 >> 3);
- palettes++;
+ *palettes2 = (red2 >> 8) | (blue2 << 2) | (green2 >> 3);
+ palettes++;
- a++;
- b++;
- i++;
- }
+ a++;
+ b++;
+ i++;
+ }
}
#else
__attribute__((naked))
@@ -3430,151 +4121,142 @@ _080EF72E:\n\
void sub_80EF740(void)
{
- gUnknown_083DFEC4->unk6DA0 = (gUnknown_083DFEC4->unk6DA0 + 1) & 1;
- if (gUnknown_083DFEC4->unk6DA0)
- {
- gUnknown_083DFEC4->unk6DA2++;
- }
+ gUnknown_083DFEC4->unk6DA0 = (gUnknown_083DFEC4->unk6DA0 + 1) & 1;
+ if (gUnknown_083DFEC4->unk6DA0)
+ gUnknown_083DFEC4->unk6DA2++;
- REG_BG3HOFS = gUnknown_083DFEC4->unk6DA2;
+ REG_BG3HOFS = gUnknown_083DFEC4->unk6DA2;
}
void sub_80EF780(u8 taskId)
{
- if (gTasks[taskId].data[0] == 0 || (gUnknown_083DFEC4->unk6DA2 & 0x7) != 0)
- {
- sub_80EF740();
- }
- else
- {
- u16 value = gUnknown_083DFEC4->unk6DA2 & 0x7;
- gUnknown_083DFEC4->unk6DA2 = value;
- gUnknown_083DFEC4->unk6DA0 = value;
- REG_BG3HOFS = value;
- }
+ if (gTasks[taskId].data[0] == 0 || (gUnknown_083DFEC4->unk6DA2 & 0x7) != 0)
+ {
+ sub_80EF740();
+ }
+ else
+ {
+ u16 value = gUnknown_083DFEC4->unk6DA2 & 0x7;
+ gUnknown_083DFEC4->unk6DA2 = value;
+ gUnknown_083DFEC4->unk6DA0 = value;
+ REG_BG3HOFS = value;
+ }
}
void sub_80EF7D4(void)
{
- gUnknown_083DFEC4->unk6DA2 = 0;
- gUnknown_083DFEC4->unk6DA0 = 0;
- gUnknown_083DFEC4->taskId6DA4 = CreateTask(sub_80EF780, 80);
+ gUnknown_083DFEC4->unk6DA2 = 0;
+ gUnknown_083DFEC4->unk6DA0 = 0;
+ gUnknown_083DFEC4->taskId6DA4 = CreateTask(sub_80EF780, 80);
}
void sub_80EF814(void)
{
- if (FuncIsActiveTask(sub_80EF780))
- {
- DestroyTask(gUnknown_083DFEC4->taskId6DA4);
- }
+ if (FuncIsActiveTask(sub_80EF780))
+ DestroyTask(gUnknown_083DFEC4->taskId6DA4);
}
void sub_80EF840(void)
{
- gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_083DFEC4->unkD160 = 0;
- if (gUnknown_083DFEC4->unk6DAC == 0)
- {
- while (sub_80EF874() != 0);
- }
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80EF874() != 0)
+ ;
+ }
}
bool8 sub_80EF874(void)
{
- switch (gUnknown_083DFEC4->unkD160)
- {
- case 0:
- sub_80EEDE8();
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E7224);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7224);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- MenuZeroFillScreen();
- break;
- case 5:
- sub_80FA904(&gUnknown_083DFEC4->regionMap, gSaveBlock2.regionMapZoom ? TRUE : FALSE);
- break;
- case 6:
- if (sub_80FA940())
- {
- return TRUE;
- }
- break;
- case 7:
- LZ77UnCompVram(gPokenavHoennMapSquares_Gfx, (void *)VRAM + 0x5000);
- break;
- case 8:
- LoadPalette(gPokenavHoennMapSquares_Pal, 0x30, 0x20);
- sub_80EFC3C();
- break;
- case 9:
- if (sub_80EFC64())
- {
- return TRUE;
- }
- break;
- case 10:
- MenuDrawTextWindow(13, 3, 29, 17);
- sub_80EF9F8();
- break;
- case 11:
- if (!gUnknown_083DFEC4->regionMap.zoomed)
- {
- gUnknown_083DFEC4->unk7698 = 160;
- REG_BG0VOFS = 160;
- }
- else
- {
- gUnknown_083DFEC4->unk7698 = 256;
- REG_BG0VOFS = 0;
- }
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ sub_80EEDE8();
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7224);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E7224);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ return TRUE;
+ break;
+ case 4:
+ Menu_EraseScreen();
+ break;
+ case 5:
+ sub_80FA904(&gUnknown_083DFEC4->regionMap, gSaveBlock2.regionMapZoom ? TRUE : FALSE);
+ break;
+ case 6:
+ if (sub_80FA940())
+ return TRUE;
+ break;
+ case 7:
+ LZ77UnCompVram(gPokenavHoennMapSquares_Gfx, (void *)VRAM + 0x5000);
+ break;
+ case 8:
+ LoadPalette(gPokenavHoennMapSquares_Pal, 0x30, 0x20);
+ sub_80EFC3C();
+ break;
+ case 9:
+ if (sub_80EFC64())
+ return TRUE;
+ break;
+ case 10:
+ Menu_DrawStdWindowFrame(13, 3, 29, 17);
+ sub_80EF9F8();
+ break;
+ case 11:
+ if (!gUnknown_083DFEC4->regionMap.zoomed)
+ {
+ gUnknown_083DFEC4->unk7698 = 160;
+ REG_BG0VOFS = 160;
+ }
+ else
+ {
+ gUnknown_083DFEC4->unk7698 = 256;
+ REG_BG0VOFS = 0;
+ }
- REG_BG0CNT = REG_BG0CNT;
- REG_BG0CNT |= 1;
- REG_BLDCNT = 0;
- break;
- default:
- return FALSE;
- }
+ REG_BG0CNT = REG_BG0CNT;
+ REG_BG0CNT |= 1;
+ REG_BLDCNT = 0;
+ break;
+ default:
+ return FALSE;
+ }
- gUnknown_083DFEC4->unkD160++;
- return TRUE;
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
asm(".include \"constants/gba_constants.inc\"\n");
void sub_80EF9F8(void)
{
- bool8 someBool = FALSE;
+ bool8 someBool = FALSE;
u16 top = 4;
- u16 mapSectionId;
- u8 b;
+ u16 mapSectionId;
+ u8 b;
- switch (gUnknown_083DFEC4->regionMap.unk16)
- {
+ switch (gUnknown_083DFEC4->regionMap.unk16)
+ {
case 0:
break;
- case 1:
- case 4:
- sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
- top += 2;
- if (gLinkOpen == TRUE)
- {
- sub_80F1A80();
+ case 1:
+ case 4:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
+ top += 2;
+ if (gLinkOpen == TRUE)
+ {
+ sub_80F1A80();
someBool = TRUE;
- }
- else
- {
+ }
+ else
+ {
u16 i;
for (i = 0; i < 4; i++)
@@ -3589,99 +4271,95 @@ void sub_80EF9F8(void)
sub_8072A18(secName, 0x70, top * 8, 0x78, 1);
top += 2;
}
- }
- break;
- case 2:
- sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
- top += 2;
- mapSectionId = gUnknown_083DFEC4->regionMap.mapSectionId;
+ }
+ break;
+ case 2:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
+ top += 2;
+ mapSectionId = gUnknown_083DFEC4->regionMap.mapSectionId;
b = gUnknown_083DFEC4->regionMap.everGrandeCityArea;
if (gUnknown_083DFEC4->unkCDCC[mapSectionId][b] != NULL)
- {
- MenuFillWindowRectWithBlankTile(14, top, 15, 15);
- MenuFillWindowRectWithBlankTile(26, top, 28, 15);
- sub_8095C8C((void *)(VRAM + 0xF800), 16, 6, gUnknown_083DFEC4->unkCDCC[mapSectionId][b], 0, 0, 10, 10, 10);
- top += 11;
- }
- break;
- case 3:
- sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
- top += 2;
- break;
- }
+ {
+ Menu_BlankWindowRect(14, top, 15, 15);
+ Menu_BlankWindowRect(26, top, 28, 15);
+ sub_8095C8C((void *)(VRAM + 0xF800), 16, 6, gUnknown_083DFEC4->unkCDCC[mapSectionId][b], 0, 0, 10, 10, 10);
+ top += 11;
+ }
+ break;
+ case 3:
+ sub_8072A18(gUnknown_083DFEC4->regionMap.mapSectionName, 0x70, top * 8, 0x78, 1);
+ top += 2;
+ break;
+ }
// Epic fail by the compiler at optimizing this.
if (!someBool && top < 16)
- MenuFillWindowRectWithBlankTile(14, top, 28, 15);
+ Menu_BlankWindowRect(14, top, 28, 15);
- if (gUnknown_083DFEC4->regionMap.unk16 == 2)
- sub_80EFD74();
- else
- sub_80EFDA0();
+ if (gUnknown_083DFEC4->regionMap.unk16 == 2)
+ sub_80EFD74();
+ else
+ sub_80EFDA0();
}
void sub_80EFBB0(void)
{
- if (!gUnknown_083DFEC4->regionMap.zoomed)
- {
- sub_80EEFBC(8);
- }
- else
- {
- sub_80EEFBC(7);
- }
+ if (!gUnknown_083DFEC4->regionMap.zoomed)
+ sub_80EEFBC(8);
+ else
+ sub_80EEFBC(7);
}
bool8 sub_80EFBDC(bool8 a)
{
- bool8 retVal = TRUE;
- u16 var1 = gUnknown_083DFEC4->unk7698;
+ bool8 retVal = TRUE;
+ u16 var1 = gUnknown_083DFEC4->unk7698;
- if (a)
- {
- if (var1 > 168)
- {
- var1 = var1 - 8;
- }
- else
- {
- var1 = 160;
- retVal = FALSE;
- }
- }
- else
- {
- if (var1 < 248)
- {
- var1 = var1 + 8;
- }
- else
- {
- var1 = 256;
- retVal = FALSE;
- }
- }
+ if (a)
+ {
+ if (var1 > 168)
+ {
+ var1 = var1 - 8;
+ }
+ else
+ {
+ var1 = 160;
+ retVal = FALSE;
+ }
+ }
+ else
+ {
+ if (var1 < 248)
+ {
+ var1 = var1 + 8;
+ }
+ else
+ {
+ var1 = 256;
+ retVal = FALSE;
+ }
+ }
- gUnknown_083DFEC4->unk7698 = var1;
- REG_BG0VOFS = var1 & 0xFF;
+ gUnknown_083DFEC4->unk7698 = var1;
+ REG_BG0VOFS = var1 & 0xFF;
- return retVal;
+ return retVal;
}
void sub_80EFC3C(void)
{
- gUnknown_083DFEC4->unkBC9A = 0;
- gUnknown_083DFEC4->unkBC9B = 0;
- sub_80EFD3C();
+ gUnknown_083DFEC4->unkBC9A = 0;
+ gUnknown_083DFEC4->unkBC9B = 0;
+ sub_80EFD3C();
}
bool8 sub_80EFC64(void)
{
- u16 i;
- u8 var1;
- u16 var2;
+ u16 i;
+ u8 var1;
+ u16 var2;
- if (gUnknown_083DFEC4->unkBC9A >= 16)
+ if (gUnknown_083DFEC4->unkBC9A >= 16)
return FALSE;
var1 = gUnknown_083DFEC4->unkBC9A;
@@ -3709,345 +4387,330 @@ bool8 sub_80EFC64(void)
void sub_80EFD3C(void)
{
- gUnknown_083DFEC4->unk769E = 0;
- gUnknown_083DFEC4->unk769C = 47;
- gUnknown_083DFEC4->unk769D = 0;
- gUnknown_083DFEC4->unk769A = 0;
+ gUnknown_083DFEC4->unk769E = 0;
+ gUnknown_083DFEC4->unk769C = 47;
+ gUnknown_083DFEC4->unk769D = 0;
+ gUnknown_083DFEC4->unk769A = 0;
}
void sub_80EFD74(void)
{
- gUnknown_083DFEC4->unk769E = 1;
-
- if (gUnknown_083DFEC4->unk769D == 1)
- {
- gUnknown_083DFEC4->unk769D = 2;
- }
+ gUnknown_083DFEC4->unk769E = 1;
+ if (gUnknown_083DFEC4->unk769D == 1)
+ gUnknown_083DFEC4->unk769D = 2;
}
void sub_80EFDA0(void)
{
- sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9AC2C, 0, 0, 15, 1, 15);
- gUnknown_083DFEC4->unk769E = 0;
+ sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9AC2C, 0, 0, 15, 1, 15);
+ gUnknown_083DFEC4->unk769E = 0;
}
void sub_80EFDE4(u8 param0)
{
- u16 var1 = 60 - gUnknown_083DFEC4->unk769C;
+ u16 var1 = 60 - gUnknown_083DFEC4->unk769C;
- if (var1 > 15)
- {
- var1 = 15;
- }
+ if (var1 > 15)
+ var1 = 15;
- if (gUnknown_083DFEC4->unk769E != 0)
- {
- sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9ABB4, gUnknown_083DFEC4->unk769C, 0, var1, 1, 60);
+ if (gUnknown_083DFEC4->unk769E != 0)
+ {
+ sub_8095C8C((void *)VRAM + 0xF800, 14, 16, gUnknown_08E9ABB4, gUnknown_083DFEC4->unk769C, 0, var1, 1, 60);
- if (var1 < 15)
- {
- u16 var2 = var1 + 14;
+ if (var1 < 15)
+ {
+ u16 var2 = var1 + 14;
- sub_8095C8C((void *)VRAM + 0xF800, var2, 16, gUnknown_08E9ABB4, 0, 0, (u16)(15 - var1), 1, 60);
- }
- }
+ sub_8095C8C((void *)VRAM + 0xF800, var2, 16, gUnknown_08E9ABB4, 0, 0, (u16)(15 - var1), 1, 60);
+ }
+ }
}
void sub_80EFE7C(void)
{
- u16 var1;
- u8 var2 = gUnknown_083DFEC4->unk769D;
+ u16 var1;
+ u8 var2 = gUnknown_083DFEC4->unk769D;
- switch (var2)
- {
- case 0:
- var1 = ++gUnknown_083DFEC4->unk769C;
+ switch (var2)
+ {
+ case 0:
+ var1 = ++gUnknown_083DFEC4->unk769C;
- if (var1 > 59)
- {
- gUnknown_083DFEC4->unk769C = var2;
- }
+ if (var1 > 59)
+ gUnknown_083DFEC4->unk769C = var2;
- sub_80EFDE4(gUnknown_083DFEC4->unk769E);
+ sub_80EFDE4(gUnknown_083DFEC4->unk769E);
- switch (gUnknown_083DFEC4->unk769C)
- {
- case 0:
- case 15:
- case 30:
- case 45:
- gUnknown_083DFEC4->unk769D = 1;
- gUnknown_083DFEC4->unk769A = 0;
- break;
- }
- break;
- case 1:
- var1 = ++gUnknown_083DFEC4->unk769A;
- if (var1 > 120)
- {
- gUnknown_083DFEC4->unk769A = 0;
- gUnknown_083DFEC4->unk769D = 0;
- }
- break;
- case 2:
- sub_80EFDE4(1);
- gUnknown_083DFEC4->unk769D = 1;
- break;
- }
+ switch (gUnknown_083DFEC4->unk769C)
+ {
+ case 0:
+ case 15:
+ case 30:
+ case 45:
+ gUnknown_083DFEC4->unk769D = 1;
+ gUnknown_083DFEC4->unk769A = 0;
+ break;
+ }
+ break;
+ case 1:
+ var1 = ++gUnknown_083DFEC4->unk769A;
+ if (var1 > 120)
+ {
+ gUnknown_083DFEC4->unk769A = 0;
+ gUnknown_083DFEC4->unk769D = 0;
+ }
+ break;
+ case 2:
+ sub_80EFDE4(1);
+ gUnknown_083DFEC4->unk769D = 1;
+ break;
+ }
}
void sub_80EFF34(void)
{
- gUnknown_083DFEC4->unkD160 = 0;
+ gUnknown_083DFEC4->unkD160 = 0;
- if (gUnknown_083DFEC4->unk6DAC == 0)
- {
- while (sub_80EFF68());
- }
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80EFF68())
+ ;
+ }
}
bool8 sub_80EFF68(void)
{
- switch (gUnknown_083DFEC4->unkD160)
- {
- case 0:
- sub_80EEDE8();
- gUnknown_083DFEC4->unkD162[0] = 11;
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E7080);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E7080);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- MenuZeroFillScreen();
- break;
- case 5:
- sub_80F1614();
- break;
- case 6:
- if (sub_80F162C(0))
- {
- return TRUE;
- }
- break;
- case 7:
- LZ77UnCompVram(gPokenavConditionView_Gfx, (void *)VRAM + 0x5000);
- break;
- case 8:
- LZ77UnCompVram(gUnknown_08E9AC4C, (void *)VRAM + 0xF000);
- LoadPalette(gPokenavConditionMenu2_Pal, 0x20, 0x20);
- break;
- case 9:
- if (gUnknown_083DFEC4->unk76AA == 1)
- {
- sub_8095C8C((void *)VRAM + 0xF000, 0, 5, gUnknown_083E01AC, 0, 0, 9, 4, 9);
- }
- break;
- case 10:
- LZ77UnCompVram(gUnknown_08E9FEB4, (void *)VRAM + 0xB800);
- break;
- case 11:
- LoadPalette(gUnknown_083E0254, 0x30, 0x20);
- LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
- LoadPalette(&gPokenavConditionMenu2_Pal[2], 0xB1, 0x2);
- LoadPalette(&gPokenavConditionMenu2_Pal[16], 0xB5, 0x2);
- LoadPalette(&gPokenavConditionMenu2_Pal[30], 0xBF, 0x2);
- sub_80F01A4();
- break;
- case 12:
- sub_80F01E0((u16)gUnknown_083DFEC4->unk8fe9);
- break;
- case 13:
- REG_BG3CNT = 0x1E03;
- REG_BG2CNT = 0x1702;
- REG_BLDCNT = 0x844;
- REG_BLDALPHA = 0x40B;
- break;
- default:
- return FALSE;
- }
+ switch (gUnknown_083DFEC4->unkD160)
+ {
+ case 0:
+ sub_80EEDE8();
+ gUnknown_083DFEC4->unkD162[0] = 11;
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7080);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E7080);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ return TRUE;
+ break;
+ case 4:
+ Menu_EraseScreen();
+ break;
+ case 5:
+ sub_80F1614();
+ break;
+ case 6:
+ if (sub_80F162C(0))
+ return TRUE;
+ break;
+ case 7:
+ LZ77UnCompVram(gPokenavConditionView_Gfx, (void *)VRAM + 0x5000);
+ break;
+ case 8:
+ LZ77UnCompVram(gUnknown_08E9AC4C, (void *)VRAM + 0xF000);
+ LoadPalette(gPokenavConditionMenu2_Pal, 0x20, 0x20);
+ break;
+ case 9:
+ if (gUnknown_083DFEC4->unk76AA == 1)
+ sub_8095C8C((void *)VRAM + 0xF000, 0, 5, gUnknown_083E01AC, 0, 0, 9, 4, 9);
+ break;
+ case 10:
+ LZ77UnCompVram(gUnknown_08E9FEB4, (void *)VRAM + 0xB800);
+ break;
+ case 11:
+ LoadPalette(gUnknown_083E0254, 0x30, 0x20);
+ LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
+ LoadPalette(&gPokenavConditionMenu2_Pal[2], 0xB1, 0x2);
+ LoadPalette(&gPokenavConditionMenu2_Pal[16], 0xB5, 0x2);
+ LoadPalette(&gPokenavConditionMenu2_Pal[30], 0xBF, 0x2);
+ sub_80F01A4();
+ break;
+ case 12:
+ sub_80F01E0((u16)gUnknown_083DFEC4->unk8fe9);
+ break;
+ case 13:
+ REG_BG3CNT = 0x1E03;
+ REG_BG2CNT = 0x1702;
+ REG_BLDCNT = 0x844;
+ REG_BLDALPHA = 0x40B;
+ break;
+ default:
+ return FALSE;
+ }
- gUnknown_083DFEC4->unkD160++;
- return TRUE;
+ gUnknown_083DFEC4->unkD160++;
+ return TRUE;
}
-void sub_80F0174(bool8 a)
+void sub_80F0174(bool8 bg2on)
{
- if (a)
- {
- REG_DISPCNT |= DISPCNT_BG2_ON;
- }
- else
- {
- REG_DISPCNT &= ~DISPCNT_BG2_ON;
- }
+ if (bg2on)
+ REG_DISPCNT |= DISPCNT_BG2_ON;
+ else
+ REG_DISPCNT &= ~DISPCNT_BG2_ON;
}
void sub_80F01A4(void)
{
- REG_WIN0H = WIN_RANGE(0, 240);
- REG_WIN1H = WIN_RANGE(0, 155);
- REG_WIN0V = WIN_RANGE(56, 121);
- REG_WIN1V = WIN_RANGE(56, 121);
- REG_WININ = 0x3F3F;
- REG_WINOUT = 0x001B;
+ REG_WIN0H = WIN_RANGE(0, 240);
+ REG_WIN1H = WIN_RANGE(0, 155);
+ REG_WIN0V = WIN_RANGE(56, 121);
+ REG_WIN1V = WIN_RANGE(56, 121);
+ REG_WININ = 0x3F3F;
+ REG_WINOUT = 0x001B;
}
void sub_80F01E0(u16 a)
{
- MenuPrint(gUnknown_083DFEC4->unk8829[a], 13, 1);
-
- if (gUnknown_083DFEC4->unk76AA == 1)
- {
- MenuPrint(gUnknown_083DFEC4->unk88E9[a], 13, 3);
- sub_80F443C(gUnknown_083DFEC4->unk8788, gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].unk2);
- MenuPrint(gUnknown_083DFEC4->unk8788, 1, 6);
- }
+ Menu_PrintText(gUnknown_083DFEC4->unk8829[a], 13, 1);
+
+ if (gUnknown_083DFEC4->unk76AA == 1)
+ {
+ Menu_PrintText(gUnknown_083DFEC4->unk88E9[a], 13, 3);
+ sub_80F443C(gUnknown_083DFEC4->unk8788, gUnknown_083DFEC4->unk893c[gUnknown_083DFEC4->unk87DC].unk2);
+ Menu_PrintText(gUnknown_083DFEC4->unk8788, 1, 6);
+ }
}
void sub_80F0264(u8 a)
{
- gUnknown_083DFEC4->unk306 = 0;
- gUnknown_083DFEC4->unk87CA = a;
+ gUnknown_083DFEC4->unk306 = 0;
+ gUnknown_083DFEC4->unk87CA = a;
- if (gUnknown_083DFEC4->unk6DAC == 0)
- {
- while (sub_80F02A0());
- }
+ if (gUnknown_083DFEC4->unk6DAC == 0)
+ {
+ while (sub_80F02A0())
+ ;
+ }
}
#ifdef NONMATCHING // small nonmatching part is in the third else clause in case 7.
bool8 sub_80F02A0(void)
{
- const u16 *pointer;
+ const u16 *pointer;
- switch (gUnknown_083DFEC4->unk306)
- {
- case 0:
- sub_80EEDE8();
+ switch (gUnknown_083DFEC4->unk306)
+ {
+ case 0:
+ sub_80EEDE8();
- gUnknown_083DFEC4->unk87C8 = gUnknown_083DFEC4->unk87CA == 1;
- gUnknown_083DFEC4->unkD162[0] = 11;
- break;
- case 1:
- SetUpWindowConfig(&gWindowConfig_81E70D4);
- break;
- case 2:
- MultistepInitMenuWindowBegin(&gWindowConfig_81E70D4);
- break;
- case 3:
- if (!MultistepInitMenuWindowContinue())
- {
- return TRUE;
- }
- break;
- case 4:
- MenuZeroFillScreen();
- break;
- case 5:
- LZ77UnCompVram(gUnknown_08E9FC64, (void *)VRAM + 0xE800);
- break;
- case 6:
- LZ77UnCompVram(gPokenavConditionSearch2_Gfx, (void *)VRAM + 0x8000);
- break;
- case 7:
- LoadPalette(gUnknown_083E02B4, 0xB0, 0x20);
- LoadPalette(gUnknown_083E02B4, 0xF0, 0x20);
- LoadPalette(gUnknown_083E0334, 0x40, 0x20);
+ gUnknown_083DFEC4->unk87C8 = gUnknown_083DFEC4->unk87CA == 1;
+ gUnknown_083DFEC4->unkD162[0] = 11;
+ break;
+ case 1:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E70D4);
+ break;
+ case 2:
+ MultistepInitMenuWindowBegin(&gWindowTemplate_81E70D4);
+ break;
+ case 3:
+ if (!MultistepInitMenuWindowContinue())
+ {
+ return TRUE;
+ }
+ break;
+ case 4:
+ Menu_EraseScreen();
+ break;
+ case 5:
+ LZ77UnCompVram(gUnknown_08E9FC64, (void *)VRAM + 0xE800);
+ break;
+ case 6:
+ LZ77UnCompVram(gPokenavConditionSearch2_Gfx, (void *)VRAM + 0x8000);
+ break;
+ case 7:
+ LoadPalette(gUnknown_083E02B4, 0xB0, 0x20);
+ LoadPalette(gUnknown_083E02B4, 0xF0, 0x20);
+ LoadPalette(gUnknown_083E0334, 0x40, 0x20);
- if (gUnknown_083DFEC4->unk87CA == 0)
- {
- LoadPalette(gPokenavConditionSearch2_Pal, 0x30, 0x20);
- gPlttBufferUnfaded[0] = gPokenavConditionSearch2_Pal[5];
- LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
- LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
- LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
- LoadPalette(&gPokenavConditionSearch2_Pal[5], 0xBF, 0x2);
- }
- else if (gUnknown_083DFEC4->unk87CA == 1)
- {
- LoadPalette(gUnknown_083E0274, 0x30, 0x20);
- gPlttBufferUnfaded[0] = gUnknown_083E0274[5];
- LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
- LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
- LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
- LoadPalette(&gUnknown_083E0274[5], 0xBF, 0x2);
- }
- else
- {
- LoadPalette(gUnknown_08E9F9E8, 0x30, 0x20);
- pointer = &gUnknown_08E9F9E8[5];
- gPlttBufferUnfaded[0] = gUnknown_08E9F9E8[5];
- LoadPalette(gUnknown_083E0314, 0x50, 0x20);
- LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
- LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
- LoadPalette(pointer, 0xBF, 0x2);
- LoadPalette(pointer, 0x5F, 0x2);
- }
- break;
- case 8:
- if (gUnknown_083DFEC4->unk87CA != 2)
- {
- sub_8095C8C((void *)VRAM + 0xE800, 0, 5, gUnknown_08E9FD1C, 0, 0, 9, 4, 9);
- }
- else
- {
- sub_8095C8C((void *)VRAM + 0xE800, 0, 4, gUnknown_08E9FE54, 0, 0, 12, 10, 12);
- sub_8095C8C((void *)VRAM + 0xE800, 0, 8, gUnknown_08E9FD64, 0, 0, 12, 10, 12);
- }
- break;
- case 9:
- LZ77UnCompVram(gUnknown_083E0354, (void *)VRAM + 0x5000);
- break;
- case 10:
- DmaClear16(3, (void *)VRAM + 0xF800, 0x800);
- break;
- case 11:
- sub_80F0900();
- break;
- case 12:
- if (sub_80F0944())
- {
- return TRUE;
- }
- break;
- case 13:
- if (gUnknown_083DFEC4->unk87CA != 2)
- {
- ShowMapNamePopUpWindow();
- }
- else
- {
- sub_80F081C(0);
- sub_80F0FFC(gUnknown_083DFEC4->unk876E);
- }
- break;
- case 14:
- REG_BG2CNT = 0x1D0A;
- REG_BG3CNT = 0x1E03;
- REG_BG0CNT = 0x1F01;
- REG_BG3VOFS = 0xF8;
-
- gUnknown_083DFEC4->unk8776 = 0xF8;
- gUnknown_083DFEC4->unk8778 = 0;
-
- REG_BLDCNT = 0;
- gUnknown_083DFEC4->unkD160++;
- return FALSE;
- default:
- return FALSE;
- }
-
- gUnknown_083DFEC4->unk306++;
- return TRUE;
+ if (gUnknown_083DFEC4->unk87CA == 0)
+ {
+ LoadPalette(gPokenavConditionSearch2_Pal, 0x30, 0x20);
+ gPlttBufferUnfaded[0] = gPokenavConditionSearch2_Pal[5];
+ LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
+ LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
+ LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
+ LoadPalette(&gPokenavConditionSearch2_Pal[5], 0xBF, 0x2);
+ }
+ else if (gUnknown_083DFEC4->unk87CA == 1)
+ {
+ LoadPalette(gUnknown_083E0274, 0x30, 0x20);
+ gPlttBufferUnfaded[0] = gUnknown_083E0274[5];
+ LoadPalette(gUnknownPalette_81E6692, 0xB0, 0x20);
+ LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
+ LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
+ LoadPalette(&gUnknown_083E0274[5], 0xBF, 0x2);
+ }
+ else
+ {
+ LoadPalette(gUnknown_08E9F9E8, 0x30, 0x20);
+ pointer = &gUnknown_08E9F9E8[5];
+ gPlttBufferUnfaded[0] = gUnknown_08E9F9E8[5];
+ LoadPalette(gUnknown_083E0314, 0x50, 0x20);
+ LoadPalette(&gUnknown_083E02B4[1], 0xB1, 0x2);
+ LoadPalette(&gUnknown_083E02B4[8], 0xB5, 0x2);
+ LoadPalette(pointer, 0xBF, 0x2);
+ LoadPalette(pointer, 0x5F, 0x2);
+ }
+ break;
+ case 8:
+ if (gUnknown_083DFEC4->unk87CA != 2)
+ {
+ sub_8095C8C((void *)VRAM + 0xE800, 0, 5, gUnknown_08E9FD1C, 0, 0, 9, 4, 9);
+ }
+ else
+ {
+ sub_8095C8C((void *)VRAM + 0xE800, 0, 4, gUnknown_08E9FE54, 0, 0, 12, 10, 12);
+ sub_8095C8C((void *)VRAM + 0xE800, 0, 8, gUnknown_08E9FD64, 0, 0, 12, 10, 12);
+ }
+ break;
+ case 9:
+ LZ77UnCompVram(gUnknown_083E0354, (void *)VRAM + 0x5000);
+ break;
+ case 10:
+ DmaClear16(3, (void *)VRAM + 0xF800, 0x800);
+ break;
+ case 11:
+ sub_80F0900();
+ break;
+ case 12:
+ if (sub_80F0944())
+ {
+ return TRUE;
+ }
+ break;
+ case 13:
+ if (gUnknown_083DFEC4->unk87CA != 2)
+ {
+ ShowMapNamePopUpWindow();
+ }
+ else
+ {
+ sub_80F081C(0);
+ sub_80F0FFC(gUnknown_083DFEC4->unk876E);
+ }
+ break;
+ case 14:
+ REG_BG2CNT = 0x1D0A;
+ REG_BG3CNT = 0x1E03;
+ REG_BG0CNT = 0x1F01;
+ REG_BG3VOFS = 0xF8;
+
+ gUnknown_083DFEC4->unk8776 = 0xF8;
+ gUnknown_083DFEC4->unk8778 = 0;
+
+ REG_BLDCNT = 0;
+ gUnknown_083DFEC4->unkD160++;
+ return FALSE;
+ default:
+ return FALSE;
+ }
+
+ gUnknown_083DFEC4->unk306++;
+ return TRUE;
}
#else
__attribute__((naked))
@@ -4120,17 +4783,17 @@ _080F0338: .4byte 0x000087ca\n\
_080F033C: .4byte 0x000087c8\n\
_080F0340: .4byte 0x0000d162\n\
_080F0344:\n\
- ldr r0, _080F034C @ =gWindowConfig_81E70D4\n\
- bl SetUpWindowConfig\n\
+ ldr r0, _080F034C @ =gWindowTemplate_81E70D4\n\
+ bl Text_LoadWindowTemplate\n\
b _080F0618\n\
.align 2, 0\n\
-_080F034C: .4byte gWindowConfig_81E70D4\n\
+_080F034C: .4byte gWindowTemplate_81E70D4\n\
_080F0350:\n\
- ldr r0, _080F0358 @ =gWindowConfig_81E70D4\n\
+ ldr r0, _080F0358 @ =gWindowTemplate_81E70D4\n\
bl MultistepInitMenuWindowBegin\n\
b _080F0618\n\
.align 2, 0\n\
-_080F0358: .4byte gWindowConfig_81E70D4\n\
+_080F0358: .4byte gWindowTemplate_81E70D4\n\
_080F035C:\n\
bl MultistepInitMenuWindowContinue\n\
cmp r0, 0\n\
@@ -4139,7 +4802,7 @@ _080F035C:\n\
_080F0366:\n\
b _080F0626\n\
_080F0368:\n\
- bl MenuZeroFillScreen\n\
+ bl Menu_EraseScreen\n\
b _080F0618\n\
_080F036E:\n\
ldr r0, _080F0378 @ =gUnknown_08E9FC64\n\
diff --git a/src/rom3.c b/src/rom3.c
index cdc66989c..7b3051b86 100644
--- a/src/rom3.c
+++ b/src/rom3.c
@@ -5,6 +5,7 @@
#include "battle_anim.h"
#include "battle_anim_81258BC.h"
#include "battle_anim_8137220.h"
+#include "battle_util.h"
#include "cable_club.h"
#include "constants/items.h"
#include "link.h"
@@ -66,6 +67,10 @@ void sub_800B858(void)
}
}
+#if DEBUG
+extern u8 gUnknown_02023A14_50;
+#endif
+
void setup_poochyena_battle(void)
{
s32 i;
@@ -92,6 +97,16 @@ void setup_poochyena_battle(void)
}
gUnknown_020239FC = 0;
gUnknown_02024C78 = 0;
+
+#if DEBUG
+ if (gUnknown_02023A14_50 & 0x80)
+ {
+ gSharedMem[0x160fd] = 0;
+ gSharedMem[0x160fe] = 0;
+ gSharedMem[0x160ff] = 0;
+ ((u32 *) gBattleBuffersTransferData)[64]++;
+ }
+#endif
}
void sub_800B950(void)
@@ -462,7 +477,7 @@ void sub_800C1A8(u8 taskId)
}
break;
case 4:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
var = (ewram14004arr(0, gTasks[taskId].data[15]) | (ewram14004arr(1, gTasks[taskId].data[15]) << 8));
gTasks[taskId].data[13] = 1;
@@ -582,7 +597,7 @@ void Emitcmd1(u8 a, u8 b, u8 c)
PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4);
}
-void EmitSetAttributes(u8 a, u8 b, u8 c, u8 d, void *e)
+void EmitSetMonData(u8 a, u8 b, u8 c, u8 d, void *e)
{
int i;
@@ -748,9 +763,9 @@ void EmitPrintString(u8 a, u16 stringID)
stringInfo->lastMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility;
- stringInfo->scrActive = BATTLE_STRUCT->scriptingActive;
- stringInfo->unk1605E = BATTLE_STRUCT->unk1605E;
- stringInfo->hpScale = BATTLE_STRUCT->hpScale;
+ stringInfo->scrActive = gBattleStruct->scriptingActive;
+ stringInfo->unk1605E = gBattleStruct->unk1605E;
+ stringInfo->hpScale = gBattleStruct->hpScale;
stringInfo->StringBank = gStringBank;
stringInfo->moveType = gBattleMoves[gCurrentMove].type;
@@ -780,8 +795,8 @@ void EmitPrintStringPlayerOnly(u8 a, u16 stringID)
stringInfo->lastMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility;
- stringInfo->scrActive = BATTLE_STRUCT->scriptingActive;
- stringInfo->unk1605E = BATTLE_STRUCT->unk1605E;
+ stringInfo->scrActive = gBattleStruct->scriptingActive;
+ stringInfo->unk1605E = gBattleStruct->unk1605E;
for (i = 0; i < 4; i++)
stringInfo->abilities[i] = gBattleMons[i].ability;
diff --git a/src/rom6.c b/src/rom6.c
index e71484b0a..06e84cc0f 100644
--- a/src/rom6.c
+++ b/src/rom6.c
@@ -1,4 +1,6 @@
#include "global.h"
+#include "constants/map_objects.h"
+#include "constants/songs.h"
#include "rom6.h"
#include "braille_puzzles.h"
#include "field_effect.h"
@@ -8,7 +10,6 @@
#include "pokemon_menu.h"
#include "overworld.h"
#include "script.h"
-#include "constants/songs.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
@@ -116,6 +117,21 @@ static void sub_810B4CC(u8 taskId)
DestroyTask(taskId);
}
+#if DEBUG
+void debug_sub_8120968(void)
+{
+ if (npc_before_player_of_type(MAP_OBJ_GFX_BREAKABLE_ROCK) == TRUE)
+ {
+ gLastFieldPokeMenuOpened = 0;
+ sub_810B53C();
+ }
+ else
+ {
+ ScriptContext2_Disable();
+ }
+}
+#endif
+
bool8 SetUpFieldMove_RockSmash(void)
{
if (npc_before_player_of_type(0x56) == TRUE)
@@ -142,7 +158,7 @@ int FldEff_RockSmash(void)
gTasks[taskId].data[8] = (u32)sub_810B58C >> 16;
gTasks[taskId].data[9] = (u32)sub_810B58C;
- IncrementGameStat(0x13);
+ IncrementGameStat(GAME_STAT_USED_ROCK_SMASH);
return 0;
}
diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c
index bf6d03fb7..a1b0f5ecb 100644
--- a/src/rom_800D42C.c
+++ b/src/rom_800D42C.c
@@ -28,8 +28,8 @@ extern u8 BattleText_Tie[];
#define PRINT_MESSAGE(text, tileDataStartOffset, x) \
{ \
- InitWindow(&gUnknown_03004210, text, tileDataStartOffset, x, MESSAGE_Y); \
- sub_8002F44(&gUnknown_03004210); \
+ Text_InitWindow(&gUnknown_03004210, text, tileDataStartOffset, x, MESSAGE_Y); \
+ Text_PrintWindow8002F44(&gUnknown_03004210); \
}
#define PRINT_MESSAGE_LEFT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, LEFT_MESSAGE_X)
@@ -52,7 +52,7 @@ void PrintLinkBattleWinLossTie(void)
{
// lp_field_18 = player position?
- switch (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18)
+ switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18)
{
case 0:
case 2:
@@ -70,7 +70,7 @@ void PrintLinkBattleWinLossTie(void)
else
{
- switch (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18)
+ switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18)
{
case 1:
case 3:
@@ -92,7 +92,7 @@ void PrintLinkBattleWinLossTie(void)
if (gBattleOutcome == 1)
{
- if (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18 != 0)
+ if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 != 0)
{
PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN);
PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS);
@@ -105,7 +105,7 @@ void PrintLinkBattleWinLossTie(void)
}
else
{
- if (gLinkPlayers[BATTLE_STRUCT->linkPlayerIndex].lp_field_18 != 0)
+ if (gLinkPlayers[gBattleStruct->linkPlayerIndex].lp_field_18 != 0)
{
PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 9cf28a111..4a580eb41 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -1,13 +1,14 @@
#include "global.h"
+#include "constants/species.h"
#include "rom_8077ABC.h"
#include "battle.h"
#include "battle_anim.h"
#include "blend_palette.h"
+#include "contest.h"
#include "data2.h"
#include "decompress.h"
#include "palette.h"
#include "pokemon_icon.h"
-#include "constants/species.h"
#include "sprite.h"
#include "task.h"
#include "trig.h"
@@ -31,52 +32,28 @@
#define gTransformPersonalities gTransformedPersonalities
#define gBattleMonSprites gObjectBankIDs
-
-struct Struct_unk_2019348 {
- u16 field_0;
- u16 field_2;
- u8 field_4;
- u32 field_8;
- u32 field_c;
- u32 field_10;
-};
-
-struct TransformStatus {
+struct TransformStatus
+{
u16 unknown;
u16 species;
};
-struct Struct_gUnknown_0837F578 {
+struct Struct_gUnknown_0837F578
+{
u8 field_0;
u8 field_1;
};
-struct Struct_2017810 {
+struct Struct_2017810
+{
u8 filler_0[6];
u8 field_6;
u8 filler_7[5];
};
-struct Color {
- u16 r:5;
- u16 g:5;
- u16 b:5;
-};
-
-struct BGCnt {
- u16 priority:2;
- u16 charBase:2;
- u16 unused:2;
- u16 mosaic:1;
- u16 colorMode:1;
- u16 screenBase:5;
- u16 overflow:1;
- u16 size:2;
-};
-
-#define BG1CNT (*(volatile struct BGCnt*)REG_ADDR_BG1CNT)
-#define BG2CNT (*(volatile struct BGCnt*)REG_ADDR_BG2CNT)
-#define BG3CNT (*(volatile struct BGCnt*)REG_ADDR_BG3CNT)
+#define BG1CNT (*(vBgCnt *)REG_ADDR_BG1CNT)
+#define BG2CNT (*(vBgCnt *)REG_ADDR_BG2CNT)
+#define BG3CNT (*(vBgCnt *)REG_ADDR_BG3CNT)
extern struct OamData gOamData_837DF9C[];
extern const union AnimCmd *const gDummySpriteAnimTable[];
@@ -102,7 +79,8 @@ extern u8 UpdateMonIconFrame(struct Sprite *sprite);
EWRAM_DATA union AffineAnimCmd *gUnknown_0202F7D4 = NULL;
EWRAM_DATA u32 filler_0202F7D8[3] = {0};
-const struct Struct_gUnknown_0837F578 gUnknown_0837F578[][4] = {
+const struct Struct_gUnknown_0837F578 gUnknown_0837F578[][4] =
+{
{
{ 72, 80 },
{ 176, 40 },
@@ -120,14 +98,16 @@ const struct Struct_gUnknown_0837F578 gUnknown_0837F578[][4] = {
// One entry for each of the four Castform forms.
// Coords are probably front pic coords or back pic coords, but this data does not seem to be
// used during battle, party summary, or pokedex screens.
-const struct MonCoords gCastformFrontSpriteCoords[] = {
+const struct MonCoords gCastformFrontSpriteCoords[] =
+{
{ 0x44, 17 }, // NORMAL
{ 0x66, 9 }, // SUN
{ 0x46, 9 }, // RAIN
{ 0x86, 8 }, // HAIL
};
-const u8 gCastformElevations[] = {
+const u8 gCastformElevations[] =
+{
13, // NORMAL
14, // SUN
13, // RAIN
@@ -135,14 +115,16 @@ const u8 gCastformElevations[] = {
};
// Y position of the backsprite for each of the four Castform forms.
-const u8 gCastformBackSpriteYCoords[] = {
+const u8 gCastformBackSpriteYCoords[] =
+{
0, // NORMAL
0, // SUN
0, // RAIN
0, // HAIL
};
-const struct SpriteTemplate gSpriteTemplate_837F5B0[] = {
+const struct SpriteTemplate gSpriteTemplate_837F5B0[] =
+{
{
.tileTag = 55125,
.paletteTag = 55125,
@@ -151,7 +133,8 @@ const struct SpriteTemplate gSpriteTemplate_837F5B0[] = {
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
- }, {
+ },
+ {
.tileTag = 55126,
.paletteTag = 55126,
.oam = gOamData_837DF9C,
@@ -162,23 +145,27 @@ const struct SpriteTemplate gSpriteTemplate_837F5B0[] = {
}
};
-const struct SpriteSheet gUnknown_0837F5E0[] = {
+const struct SpriteSheet gUnknown_0837F5E0[] =
+{
{ gMiscBlank_Gfx, 0x800, 55125, },
{ gMiscBlank_Gfx, 0x800, 55126, },
};
+// pkmn_form.c
-u8 GetBankPosition(u8 slot, u8 a2) {
+u8 GetBankPosition(u8 slot, u8 a2)
+{
u8 var;
u16 species;
struct TransformStatus *transform;
- if (IsContest()) {
- if (a2 == 3 && slot == 3) {
+ if (IsContest())
+ {
+ if (a2 == 3 && slot == 3)
a2 = 1;
- }
}
- switch (a2) {
+ switch (a2)
+ {
case 0:
case 2:
var = gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_0;
@@ -189,339 +176,402 @@ u8 GetBankPosition(u8 slot, u8 a2) {
case 3:
case 4:
default:
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- species = ewram19348.unk2;
- } else {
- species = ewram19348.unk0;
- }
- } else {
- if (GetBankSide(slot)) {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ species = shared19348.unk2;
+ else
+ species = shared19348.unk0;
+ }
+ else
+ {
+ if (GetBankSide(slot))
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
}
}
- if (a2 == 3) {
+ if (a2 == 3)
var = sub_8077E44(slot, species, 1);
- } else {
+ else
var = sub_8077E44(slot, species, 0);
- }
break;
}
return var;
}
-u8 sub_8077BFC(u8 slot, u16 species) {
+u8 sub_8077BFC(u8 slot, u16 species)
+{
u16 letter;
u32 personality;
struct TransformStatus *transform;
u8 ret;
u16 var;
- if (!GetBankSide(slot) || IsContest()) {
- if (species == SPECIES_UNOWN) {
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- personality = ewram19348.unk10;
- } else {
- personality = ewram19348.unk8;
- }
- } else {
+ if (GetBankSide(slot) == 0 || IsContest())
+ {
+ if (species == SPECIES_UNOWN)
+ {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ personality = shared19348.unk10;
+ else
+ personality = shared19348.unk8;
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ else
personality = gTransformPersonalities[slot];
- }
}
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = species;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
ret = gMonBackPicCoords[var].y_offset;
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
ret = gCastformBackSpriteYCoords[gBattleMonForms[slot]];
- } else if (species > NUM_SPECIES) {
+ }
+ else if (species > NUM_SPECIES)
+ {
ret = gMonBackPicCoords[0].y_offset;
- } else {
+ }
+ else
+ {
ret = gMonBackPicCoords[species].y_offset;
}
- } else {
- if (species == SPECIES_UNOWN) {
+ }
+ else
+ {
+ if (species == SPECIES_UNOWN)
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ else
personality = gTransformPersonalities[slot];
- }
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = species;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
ret = gMonFrontPicCoords[var].y_offset;
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
ret = gCastformFrontSpriteCoords[gBattleMonForms[slot]].y_offset;
- } else if (species > NUM_SPECIES) {
+ }
+ else if (species > NUM_SPECIES)
+ {
ret = gMonFrontPicCoords[0].y_offset;
- } else {
+ }
+ else
+ {
ret = gMonFrontPicCoords[species].y_offset;
}
}
return ret;
}
-u8 sub_8077DD8(u8 slot, u16 species) {
+u8 sub_8077DD8(u8 slot, u16 species)
+{
u8 ret = 0;
- if (GetBankSide(slot) == 1) {
- if (!IsContest()) {
- if (species == SPECIES_CASTFORM) {
+ if (GetBankSide(slot) == 1)
+ {
+ if (!IsContest())
+ {
+ if (species == SPECIES_CASTFORM)
ret = gCastformElevations[gBattleMonForms[slot]];
- } else if (species > NUM_SPECIES) {
+ else if (species > NUM_SPECIES)
ret = gEnemyMonElevation[0];
- } else {
+ else
ret = gEnemyMonElevation[species];
- }
}
}
return ret;
}
-u8 sub_8077E44(u8 slot, u16 species, u8 a3) {
+u8 sub_8077E44(u8 slot, u16 species, u8 a3)
+{
u16 offset;
u8 y;
- if (GetBankSide(slot) == 0 || IsContest()) {
+
+ if (GetBankSide(slot) == 0 || IsContest())
+ {
offset = sub_8077BFC(slot, species);
- } else {
+ }
+ else
+ {
offset = sub_8077BFC(slot, species);
offset -= sub_8077DD8(slot, species);
}
y = offset + gUnknown_0837F578[IS_DOUBLE_BATTLE()][GetBankIdentity(slot)].field_1;
- if (a3) {
- if (GetBankSide(slot) == 0) {
+ if (a3)
+ {
+ if (GetBankSide(slot) == 0)
y += 8;
- }
- if (y > 104) y = 104;
+ if (y > 104)
+ y = 104;
}
return y;
}
-u8 sub_8077EE4(u8 slot, u8 a2) {
+u8 sub_8077EE4(u8 slot, u8 a2)
+{
u16 species;
struct TransformStatus *transform;
- if (a2 == 3 || a2 == 4) {
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- species = ewram19348.unk2;
- } else {
- species = ewram19348.unk0;
- }
- } else {
+ if (a2 == 3 || a2 == 4)
+ {
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ species = shared19348.unk2;
+ else
+ species = shared19348.unk0;
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = gAnimSpeciesByBanks[slot];
- } else {
+ else
species = transform->species;
- }
}
- if (a2 == 3) {
+ if (a2 == 3)
return sub_8077E44(slot, species, 1);
- } else {
+ else
return sub_8077E44(slot, species, 0);
- }
- } else {
+ }
+ else
+ {
return GetBankPosition(slot, a2);
}
}
-u8 sub_8077F68(u8 slot) {
+u8 sub_8077F68(u8 slot)
+{
return GetBankPosition(slot, 4);
}
-u8 sub_8077F7C(u8 slot) {
+u8 sub_8077F7C(u8 slot)
+{
u16 var;
- if (GetBankSide(slot)) {
+ if (GetBankSide(slot) != 0)
var = GetBankPosition(slot, 1) + 16;
- } else {
+ else
var = GetBankPosition(slot, 1) + 17;
- }
return var;
}
-u8 sub_8077FC0(u8 slot) {
+u8 sub_8077FC0(u8 slot)
+{
u16 var;
u8 r6;
struct TransformStatus *transform;
+
r6 = GetBankPosition(slot, 1);
- if (!IsContest()) {
- if (GetBankSide(slot)) {
+ if (!IsContest())
+ {
+ if (GetBankSide(slot) != 0)
+ {
transform = &eTransformStatuses[slot];
if (!transform->species) {
var = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
} else {
var = transform->species;
}
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
var = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
- } else {
+ else
var = transform->species;
- }
}
- if (GetBankSide(slot)) {
+ if (GetBankSide(slot) != 0)
r6 -= sub_8077DD8(slot, var);
- }
}
return r6;
}
-u8 GetAnimBankSpriteId(u8 whichBank) {
+u8 GetAnimBankSpriteId(u8 whichBank)
+{
u8 *sprites;
- if (whichBank == ANIM_BANK_ATTACKER) {
- if (IsBankSpritePresent(gAnimBankAttacker)) {
+
+ if (whichBank == ANIM_BANK_ATTACKER)
+ {
+ if (IsBankSpritePresent(gAnimBankAttacker))
+ {
sprites = gBattleMonSprites;
return sprites[gAnimBankAttacker];
- } else {
+ }
+ else
+ {
return 0xff;
}
- } else if (whichBank == ANIM_BANK_TARGET) {
- if (IsBankSpritePresent(gAnimBankTarget)) {
+ }
+ else if (whichBank == ANIM_BANK_TARGET)
+ {
+ if (IsBankSpritePresent(gAnimBankTarget))
+ {
sprites = gBattleMonSprites;
return sprites[gAnimBankTarget];
- } else {
+ }
+ else
+ {
return 0xff;
}
- } else if (whichBank == ANIM_BANK_ATK_PARTNER) {
- if (!IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) {
+ }
+ else if (whichBank == ANIM_BANK_ATK_PARTNER)
+ {
+ if (!IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
return 0xff;
- } else {
+ else
return gBattleMonSprites[gAnimBankAttacker ^ 2];
- }
- } else {
- if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) {
+ }
+ else
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
return gBattleMonSprites[gAnimBankTarget ^ 2];
- } else {
+ else
return 0xff;
- }
}
}
-void StoreSpriteCallbackInData(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
+void StoreSpriteCallbackInData(struct Sprite *sprite, void (*callback)(struct Sprite*))
+{
sprite->data[6] = (u32)(callback) & 0xffff;
sprite->data[7] = (u32)(callback) >> 16;
}
-void SetCallbackToStoredInData(struct Sprite *sprite) {
+void SetCallbackToStoredInData(struct Sprite *sprite)
+{
u32 callback = (u16)sprite->data[6] | (sprite->data[7] << 16);
sprite->callback = (void (*)(struct Sprite *))callback;
}
-void sub_8078114(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void sub_8078114(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]);
sprite->data[0] += sprite->data[2];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078174(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void sub_8078174(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]);
sprite->data[0] += sprite->data[2];
sprite->data[5] += sprite->data[4];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void unref_sub_80781F0(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void unref_sub_80781F0(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[4], sprite->data[1]);
sprite->data[0] += sprite->data[2];
sprite->data[4] += sprite->data[5];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
- if (sprite->data[4] >= 0x100) {
+ if (sprite->data[4] >= 0x100)
sprite->data[4] -= 0x100;
- } else if (sprite->data[4] < 0) {
+ else if (sprite->data[4] < 0)
sprite->data[4] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078278(struct Sprite *sprite) {
- if (sprite->data[3]) {
+void sub_8078278(struct Sprite *sprite)
+{
+ if (sprite->data[3])
+ {
sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]);
sprite->pos2.y = Cos(sprite->data[0], sprite->data[4]);
sprite->data[0] += sprite->data[2];
- if (sprite->data[0] >= 0x100) {
+ if (sprite->data[0] >= 0x100)
sprite->data[0] -= 0x100;
- } else if (sprite->data[0] < 0) {
+ else if (sprite->data[0] < 0)
sprite->data[0] += 0x100;
- }
sprite->data[3]--;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_80782D8(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_80782D8(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
sprite->data[0]--;
- } else {
+ else
SetCallbackToStoredInData(sprite);
- }
}
-void sub_80782F8(struct Sprite *sprite) {
+void sub_80782F8(struct Sprite *sprite)
+{
sub_8078314(sprite);
sprite->callback = sub_8078364;
sprite->callback(sprite);
}
-void sub_8078314(struct Sprite *sprite) {
+void sub_8078314(struct Sprite *sprite)
+{
s16 old;
int v1;
- if (sprite->data[1] > sprite->data[2]) {
+
+ if (sprite->data[1] > sprite->data[2])
sprite->data[0] = -sprite->data[0];
- }
v1 = sprite->data[2] - sprite->data[1];
old = sprite->data[0];
sprite->data[0] = abs(v1 / sprite->data[0]);
@@ -529,42 +579,55 @@ void sub_8078314(struct Sprite *sprite) {
sprite->data[1] = old;
}
-void sub_8078364(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078364(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->pos2.x += sprite->data[1];
sprite->pos2.y += sprite->data[2];
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078394(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078394(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
sprite->pos2.x = sprite->data[3] >> 8;
sprite->pos2.y = sprite->data[4] >> 8;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_80783D0(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_80783D0(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
sprite->pos2.x = sprite->data[3] >> 8;
sprite->pos2.y = sprite->data[4] >> 8;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
UpdateMonIconFrame(sprite);
}
-void unref_sub_8078414(struct Sprite *sprite) {
+void unref_sub_8078414(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2);
@@ -572,51 +635,65 @@ void unref_sub_8078414(struct Sprite *sprite) {
sprite->callback = sub_80782F8;
}
-void sub_8078458(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078458(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
gSprites[sprite->data[3]].pos2.x += sprite->data[1];
gSprites[sprite->data[3]].pos2.y += sprite->data[2];
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_80784A8(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_80784A8(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
gSprites[sprite->data[5]].pos2.x = sprite->data[3] >> 8;
gSprites[sprite->data[5]].pos2.y = sprite->data[4] >> 8;
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void sub_8078504(struct Sprite *sprite) {
- if (sprite->data[0] > 0) {
+void sub_8078504(struct Sprite *sprite)
+{
+ if (sprite->data[0] > 0)
+ {
sprite->data[0]--;
sprite->pos2.x = sprite->data[2] >> 8;
sprite->data[2] += sprite->data[1];
sprite->pos2.y = sprite->data[4] >> 8;
sprite->data[4] += sprite->data[3];
- if (sprite->data[0] % sprite->data[5] == 0) {
- if (sprite->data[5]) {
+ if (sprite->data[0] % sprite->data[5] == 0)
+ {
+ if (sprite->data[5])
sprite->invisible ^= 1;
- }
}
- } else {
+ }
+ else
+ {
SetCallbackToStoredInData(sprite);
}
}
-void move_anim_8074EE0(struct Sprite *sprite) {
+void move_anim_8074EE0(struct Sprite *sprite)
+{
FreeSpriteOamMatrix(sprite);
DestroyAnimSprite(sprite);
}
-void unref_sub_8078588(struct Sprite *sprite) {
+void unref_sub_8078588(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBankPosition(gAnimBankAttacker, 2);
@@ -624,57 +701,68 @@ void unref_sub_8078588(struct Sprite *sprite) {
sprite->callback = sub_80782F8;
}
-void unref_sub_80785CC(struct Sprite *sprite) {
+void unref_sub_80785CC(struct Sprite *sprite)
+{
ResetPaletteStructByUid(sprite->data[5]);
move_anim_8074EE0(sprite);
}
-void sub_80785E4(struct Sprite *sprite) {
- if (sprite->affineAnimEnded) {
+void sub_80785E4(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded)
SetCallbackToStoredInData(sprite);
- }
}
-void sub_8078600(struct Sprite *sprite) {
- if (sprite->animEnded) {
+void sub_8078600(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
SetCallbackToStoredInData(sprite);
- }
}
-void sub_807861C(struct Sprite *sprite) {
+void sub_807861C(struct Sprite *sprite)
+{
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
DestroyAnimSprite(sprite);
}
-void sub_8078634(u8 task) {
+void sub_8078634(u8 task)
+{
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
DestroyAnimVisualTask(task);
}
-void sub_8078650(struct Sprite *sprite) {
+void sub_8078650(struct Sprite *sprite)
+{
sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
}
-void sub_807867C(struct Sprite *sprite, s16 a2) {
+void sub_807867C(struct Sprite *sprite, s16 a2)
+{
u16 v1 = GetBankPosition(gAnimBankAttacker, 0);
u16 v2 = GetBankPosition(gAnimBankTarget, 0);
- if (v1 > v2) {
+
+ if (v1 > v2)
+ {
sprite->pos1.x -= a2;
- } else if (v1 < v2) {
+ }
+ else if (v1 < v2)
+ {
sprite->pos1.x += a2;
- } else {
- if (GetBankSide(gAnimBankAttacker)) {
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker) != 0)
sprite->pos1.x -= a2;
- } else {
+ else
sprite->pos1.x += a2;
- }
}
}
-void sub_80786EC(struct Sprite *sprite) {
+void sub_80786EC(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
obj_translate_based_on_private_1_2_3_4(sprite);
@@ -682,24 +770,27 @@ void sub_80786EC(struct Sprite *sprite) {
sprite->data[7] = 0;
}
-bool8 sub_8078718(struct Sprite *sprite) {
- if (sub_8078B5C(sprite)) {
+bool8 sub_8078718(struct Sprite *sprite)
+{
+ if (sub_8078B5C(sprite))
return TRUE;
- }
sprite->data[7] += sprite->data[6];
sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
return FALSE;
}
-void oamt_add_pos2_onto_pos1(struct Sprite *sprite) {
+void oamt_add_pos2_onto_pos1(struct Sprite *sprite)
+{
sprite->pos1.x += sprite->pos2.x;
sprite->pos1.y += sprite->pos2.y;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
-void sub_8078764(struct Sprite *sprite, u8 a2) {
- if (!a2) {
+void sub_8078764(struct Sprite *sprite, bool8 a2)
+{
+ if (!a2)
+ {
sprite->pos1.x = sub_8077EE4(gAnimBankTarget, 0);
sprite->pos1.y = sub_8077EE4(gAnimBankTarget, 1);
}
@@ -707,11 +798,15 @@ void sub_8078764(struct Sprite *sprite, u8 a2) {
sprite->pos1.y += gBattleAnimArgs[1];
}
-void sub_80787B0(struct Sprite *sprite, u8 a2) {
- if (!a2) {
+void sub_80787B0(struct Sprite *sprite, u8 a2)
+{
+ if (!a2)
+ {
sprite->pos1.x = sub_8077EE4(gAnimBankAttacker, 0);
sprite->pos1.y = sub_8077EE4(gAnimBankAttacker, 1);
- } else {
+ }
+ else
+ {
sprite->pos1.x = sub_8077EE4(gAnimBankAttacker, 2);
sprite->pos1.y = sub_8077EE4(gAnimBankAttacker, 3);
}
@@ -719,103 +814,127 @@ void sub_80787B0(struct Sprite *sprite, u8 a2) {
sprite->pos1.y += gBattleAnimArgs[1];
}
-u8 GetBankSide(u8 slot) {
+u8 GetBankSide(u8 slot)
+{
return gBanksBySide[slot] & 1;
}
-u8 GetBankIdentity(u8 slot) {
+u8 GetBankIdentity(u8 slot)
+{
return gBanksBySide[slot];
}
-u8 GetBankByPlayerAI(u8 slot) {
+u8 GetBankByIdentity(u8 slot)
+{
u8 i;
- for (i = 0; i < gNoOfAllBanks; i++) {
- if (gBanksBySide[i] == slot) {
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (gBanksBySide[i] == slot)
break;
- }
}
return i;
}
-bool8 IsBankSpritePresent(u8 slot) {
- if (IsContest()) {
- if (gAnimBankAttacker == slot) {
+bool8 IsBankSpritePresent(u8 slot)
+{
+ if (IsContest())
+ {
+ if (gAnimBankAttacker == slot)
return TRUE;
- }
- if (gAnimBankTarget == slot) {
+ if (gAnimBankTarget == slot)
return TRUE;
- }
return FALSE;
- } else {
- if (gBanksBySide[slot] == 0xff) {
+ }
+ else
+ {
+ if (gBanksBySide[slot] == 0xff)
return FALSE;
- }
- if (GetBankSide(slot)) {
- if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) {
+ if (GetBankSide(slot))
+ {
+ if (GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0)
return TRUE;
- }
- } else {
- if (GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0) {
+ }
+ else
+ {
+ if (GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_HP) != 0)
return TRUE;
- }
}
return FALSE;
}
}
-bool8 IsDoubleBattle() {
+bool8 IsDoubleBattle()
+{
return IS_DOUBLE_BATTLE();
}
-void sub_8078914(struct Struct_sub_8078914 *unk) {
- if (IsContest()) {
- unk->field_0 = (u8 *)0x6008000;
- unk->field_4 = (u8 *)0x600f000;
+void sub_8078914(struct Struct_sub_8078914 *unk)
+{
+ if (IsContest())
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x8000);
+ unk->field_4 = (u8 *)(VRAM + 0xf000);
unk->field_8 = 0xe;
- } else {
- unk->field_0 = (u8 *)0x6004000;
- unk->field_4 = (u8 *)0x600e000;
+ }
+ else
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x4000);
+ unk->field_4 = (u8 *)(VRAM + 0xe000);
unk->field_8 = 0x8;
}
}
-void sub_8078954(struct Struct_sub_8078914 *unk) {
- if (IsContest()) {
- unk->field_0 = (u8 *)0x6008000;
- unk->field_4 = (u8 *)0x600f000;
+void sub_8078954(struct Struct_sub_8078914 *unk)
+{
+ if (IsContest())
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x8000);
+ unk->field_4 = (u8 *)(VRAM + 0xf000);
unk->field_8 = 0xe;
- } else if (GetBankIdentity_permutated(gAnimBankAttacker) == 1) {
- unk->field_0 = (u8 *)0x6004000;
- unk->field_4 = (u8 *)0x600e000;
+ }
+ else if (GetBankIdentity_permutated(gAnimBankAttacker) == 1)
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x4000);
+ unk->field_4 = (u8 *)(VRAM + 0xe000);
unk->field_8 = 0x8;
- } else {
- unk->field_0 = (u8 *)0x6006000;
- unk->field_4 = (u8 *)0x600f000;
+ }
+ else
+ {
+ unk->field_0 = (u8 *)(VRAM + 0x6000);
+ unk->field_4 = (u8 *)(VRAM + 0xf000);
unk->field_8 = 0x9;
}
}
-u8 sub_80789BC() {
- if (IsContest()) {
+u8 sub_80789BC()
+{
+ if (IsContest())
return 1;
- }
return 2;
}
-void sub_80789D4(bool8 a1) {
- if (!a1) {
- BG3CNT.size = 0;
- BG3CNT.overflow = 1;
- } else if (IsContest()) {
- BG3CNT.size = 0;
- BG3CNT.overflow = 1;
- } else {
- BG3CNT.size = 1;
- BG3CNT.overflow = 0;
+void sub_80789D4(bool8 a1)
+{
+ if (!a1)
+ {
+ BG3CNT.screenSize = 0;
+ BG3CNT.areaOverflowMode = 1;
+ }
+ else if (IsContest())
+ {
+ BG3CNT.screenSize = 0;
+ BG3CNT.areaOverflowMode = 1;
+ }
+ else
+ {
+ BG3CNT.screenSize = 1;
+ BG3CNT.areaOverflowMode = 0;
}
}
-void sub_8078A34(struct Sprite *sprite) {
+void sub_8078A34(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078A5C(sprite);
@@ -823,7 +942,8 @@ void sub_8078A34(struct Sprite *sprite) {
sprite->callback(sprite);
}
-void sub_8078A5C(struct Sprite *sprite) {
+void sub_8078A5C(struct Sprite *sprite)
+{
s16 x = (sprite->data[2] - sprite->data[1]) << 8;
s16 y = (sprite->data[4] - sprite->data[3]) << 8;
sprite->data[1] = x / sprite->data[0];
@@ -832,32 +952,36 @@ void sub_8078A5C(struct Sprite *sprite) {
sprite->data[3] = 0;
}
-void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite) {
+void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite)
+{
int x = sprite->data[2] - sprite->data[1];
int y = sprite->data[4] - sprite->data[3];
bool8 r8 = x < 0;
bool8 r9 = y < 0;
u16 x2 = abs(x) << 8;
u16 y2 = abs(y) << 8;
+
x2 = x2 / sprite->data[0];
y2 = y2 / sprite->data[0];
- if (r8) {
+
+ if (r8)
x2 |= 1;
- } else {
+ else
x2 &= ~1;
- }
- if (r9) {
+
+ if (r9)
y2 |= 1;
- } else {
+ else
y2 &= ~1;
- }
+
sprite->data[1] = x2;
sprite->data[2] = y2;
sprite->data[4] = 0;
sprite->data[3] = 0;
}
-void sub_8078B34(struct Sprite *sprite) {
+void sub_8078B34(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
obj_translate_based_on_private_1_2_3_4(sprite);
@@ -865,46 +989,51 @@ void sub_8078B34(struct Sprite *sprite) {
sprite->callback(sprite);
}
-bool8 sub_8078B5C(struct Sprite *sprite) {
+bool8 sub_8078B5C(struct Sprite *sprite)
+{
u16 v1, v2, x, y;
- if (!sprite->data[0]) {
+
+ if (!sprite->data[0])
return TRUE;
- }
+
v1 = sprite->data[1];
v2 = sprite->data[2];
x = sprite->data[3];
y = sprite->data[4];
x += v1;
y += v2;
- if (v1 & 1) {
+
+ if (v1 & 1)
sprite->pos2.x = -(x >> 8);
- } else {
+ else
sprite->pos2.x = x >> 8;
- }
- if (v2 & 1) {
+
+ if (v2 & 1)
sprite->pos2.y = -(y >> 8);
- } else {
+ else
sprite->pos2.y = y >> 8;
- }
+
sprite->data[3] = x;
sprite->data[4] = y;
sprite->data[0]--;
return FALSE;
}
-void sub_8078BB8(struct Sprite *sprite) {
- if (sub_8078B5C(sprite)) {
+void sub_8078BB8(struct Sprite *sprite)
+{
+ if (sub_8078B5C(sprite))
SetCallbackToStoredInData(sprite);
- }
}
-void sub_8078BD4(struct Sprite *sprite) {
+void sub_8078BD4(struct Sprite *sprite)
+{
int v1 = abs(sprite->data[2] - sprite->data[1]) << 8;
sprite->data[0] = v1 / sprite->data[0];
obj_translate_based_on_private_1_2_3_4(sprite);
}
-void sub_8078C00(struct Sprite *sprite) {
+void sub_8078C00(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078BD4(sprite);
@@ -912,32 +1041,36 @@ void sub_8078C00(struct Sprite *sprite) {
sprite->callback(sprite);
}
-void sub_8078C28(struct Sprite *sprite) {
+void sub_8078C28(struct Sprite *sprite)
+{
int x = sprite->data[2] - sprite->data[1];
int y = sprite->data[4] - sprite->data[3];
bool8 x_sign = x < 0;
bool8 y_sign = y < 0;
u16 x2 = abs(x) << 4;
u16 y2 = abs(y) << 4;
+
x2 /= sprite->data[0];
y2 /= sprite->data[0];
- if (x_sign) {
+
+ if (x_sign)
x2 |= 1;
- } else {
+ else
x2 &= ~1;
- }
- if (y_sign) {
+
+ if (y_sign)
y2 |= 1;
- } else {
+ else
y2 &= ~1;
- }
+
sprite->data[1] = x2;
sprite->data[2] = y2;
sprite->data[4] = 0;
sprite->data[3] = 0;
}
-void sub_8078CC0(struct Sprite *sprite) {
+void sub_8078CC0(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078C28(sprite);
@@ -945,46 +1078,51 @@ void sub_8078CC0(struct Sprite *sprite) {
sprite->callback(sprite);
}
-bool8 sub_8078CE8(struct Sprite *sprite) {
+bool8 sub_8078CE8(struct Sprite *sprite)
+{
u16 v1, v2, x, y;
- if (!sprite->data[0]) {
+
+ if (!sprite->data[0])
return TRUE;
- }
+
v1 = sprite->data[1];
v2 = sprite->data[2];
x = sprite->data[3];
y = sprite->data[4];
x += v1;
y += v2;
- if (v1 & 1) {
+
+ if (v1 & 1)
sprite->pos2.x = -(x >> 4);
- } else {
+ else
sprite->pos2.x = x >> 4;
- }
- if (v2 & 1) {
+
+ if (v2 & 1)
sprite->pos2.y = -(y >> 4);
- } else {
+ else
sprite->pos2.y = y >> 4;
- }
+
sprite->data[3] = x;
sprite->data[4] = y;
sprite->data[0]--;
return FALSE;
}
-void sub_8078D44(struct Sprite *sprite) {
- if (sub_8078CE8(sprite)) {
+void sub_8078D44(struct Sprite *sprite)
+{
+ if (sub_8078CE8(sprite))
SetCallbackToStoredInData(sprite);
- }
}
-void sub_8078D60(struct Sprite *sprite) {
+void sub_8078D60(struct Sprite *sprite)
+{
int v1 = abs(sprite->data[2] - sprite->data[1]) << 4;
sprite->data[0] = v1 / sprite->data[0];
sub_8078C28(sprite);
}
-void sub_8078D8C(struct Sprite *sprite) {
+void sub_8078D8C(struct Sprite *sprite)
+{
sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y;
sub_8078D60(sprite);
@@ -992,16 +1130,17 @@ void sub_8078D8C(struct Sprite *sprite) {
sprite->callback(sprite);
}
-void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
+void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation)
+{
int i;
struct ObjAffineSrcData src;
struct OamMatrix matrix;
+
src.xScale = xScale;
src.yScale = yScale;
src.rotation = rotation;
- if (sub_8078E38()) {
+ if (sub_8078E38())
src.xScale = -src.xScale;
- }
i = gSprites[sprite].oam.matrixNum;
ObjAffineSet(&src, &matrix, 1, 2);
gOamMatrices[i].a = matrix.a;
@@ -1010,31 +1149,33 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
gOamMatrices[i].d = matrix.d;
}
-bool8 sub_8078E38() {
- if (IsContest()) {
- if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */) {
+bool8 sub_8078E38()
+{
+ if (IsContest())
+ {
+ if (gSprites[GetAnimBankSpriteId(0)].data[2] == 0xc9 /* XXX SPECIES_UNOWN? */)
return FALSE;
- }
return TRUE;
}
return FALSE;
}
-void sub_8078E70(u8 sprite, u8 a2) {
+void sub_8078E70(u8 sprite, u8 a2)
+{
u8 r7 = gSprites[sprite].data[0];
- if (IsContest() || IsAnimBankSpriteVisible(r7)) {
+
+ if (IsContest() || IsAnimBankSpriteVisible(r7))
gSprites[sprite].invisible = FALSE;
- }
gSprites[sprite].oam.objMode = a2;
gSprites[sprite].affineAnimPaused = TRUE;
- if (!IsContest() && !gSprites[sprite].oam.affineMode) {
+ if (!IsContest() && !gSprites[sprite].oam.affineMode)
gSprites[sprite].oam.matrixNum = ewram17810[r7].unk6;
- }
gSprites[sprite].oam.affineMode = 3;
CalcCenterToCornerVec(&gSprites[sprite], gSprites[sprite].oam.shape, gSprites[sprite].oam.size, gSprites[sprite].oam.affineMode);
}
-void sub_8078F40(u8 sprite) {
+void sub_8078F40(u8 sprite)
+{
obj_id_set_rotscale(sprite, 0x100, 0x100, 0);
gSprites[sprite].oam.affineMode = 1;
gSprites[sprite].oam.objMode = 0;
@@ -1042,31 +1183,33 @@ void sub_8078F40(u8 sprite) {
CalcCenterToCornerVec(&gSprites[sprite], gSprites[sprite].oam.shape, gSprites[sprite].oam.size, gSprites[sprite].oam.affineMode);
}
-void sub_8078F9C(u8 sprite) {
+void sub_8078F9C(u8 sprite)
+{
u16 matrix = gSprites[sprite].oam.matrixNum;
s16 c = gOamMatrices[matrix].c;
- if (c < 0) {
+
+ if (c < 0)
c = -c;
- }
gSprites[sprite].pos2.y = c >> 3;
}
// related to obj_id_set_rotscale
-void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation) {
+void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation)
+{
int i;
struct ObjAffineSrcData src;
struct OamMatrix matrix;
- if (sprite->oam.affineMode & 1) {
+
+ if (sprite->oam.affineMode & 1)
+ {
sprite->affineAnimPaused = TRUE;
- if (a2) {
+ if (a2)
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
- }
src.xScale = xScale;
src.yScale = yScale;
src.rotation = rotation;
- if (sub_8078E38()) {
+ if (sub_8078E38())
src.xScale = -src.xScale;
- }
i = sprite->oam.matrixNum;
ObjAffineSet(&src, &matrix, 1, 2);
gOamMatrices[i].a = matrix.a;
@@ -1076,56 +1219,67 @@ void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 ro
}
}
-void sub_8079098(struct Sprite *sprite) {
+void sub_8079098(struct Sprite *sprite)
+{
sub_8078FDC(sprite, TRUE, 0x100, 0x100, 0);
sprite->affineAnimPaused = FALSE;
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
}
-static u16 ArcTan2_(s16 a, s16 b) {
+static u16 ArcTan2_(s16 a, s16 b)
+{
return ArcTan2(a, b);
}
-u16 sub_80790F0(s16 a, s16 b) {
+u16 sub_80790F0(s16 a, s16 b)
+{
u16 var = ArcTan2_(a, b);
return -var;
}
-void sub_8079108(u16 a1, bool8 a2) {
+void sub_8079108(u16 a1, bool8 a2)
+{
int i;
- struct Color *c;
- struct Color *c2;
+ struct PlttData *c;
+ struct PlttData *c2;
u16 average;
a1 *= 0x10;
- if (!a2) {
- for (i = 0; i < 0x10; i++) {
- c = (struct Color *)&gPlttBufferUnfaded[a1 + i];
+ if (!a2)
+ {
+ for (i = 0; i < 0x10; i++)
+ {
+ c = (struct PlttData *)&gPlttBufferUnfaded[a1 + i];
average = c->r + c->g + c->b;
average /= 3;
- c2 = (struct Color *)&gPlttBufferFaded[a1 + i];
+ c2 = (struct PlttData *)&gPlttBufferFaded[a1 + i];
c2->r = average;
c2->g = average;
c2->b = average;
}
- } else {
+ }
+ else
+ {
CpuCopy32(&gPlttBufferUnfaded[a1], &gPlttBufferFaded[a1], 0x20);
}
}
-u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
+u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7)
+{
u32 var = 0;
u32 shift;
- if (a1) {
- if (!IsContest()) {
+
+ if (a1)
+ {
+ if (!IsContest())
var = 0xe;
- } else {
+ else
var = 1 << sub_80789BC();
- }
}
- if (a2) {
+ if (a2)
+ {
shift = gAnimBankAttacker + 16;
var |= 1 << shift;
}
@@ -1133,62 +1287,70 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
shift = gAnimBankTarget + 16;
var |= 1 << shift;
}
- if (a4) {
- if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) {
+ if (a4)
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
+ {
shift = (gAnimBankAttacker ^ 2) + 16;
var |= 1 << shift;
}
}
- if (a5) {
- if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) {
+ if (a5)
+ {
+ if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
+ {
shift = (gAnimBankTarget ^ 2) + 16;
var |= 1 << shift;
}
}
- if (a6) {
- if (!IsContest()) {
+ if (a6)
+ {
+ if (!IsContest())
var |= 0x100;
- } else {
+ else
var |= 0x4000;
- }
}
- if (a7) {
- if (!IsContest()) {
+ if (a7)
+ {
+ if (!IsContest())
var |= 0x200;
- }
}
return var;
}
-u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
+u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4)
+{
u32 var = 0;
u32 shift;
- if (IsContest()) {
- if (a1) {
+
+ if (IsContest())
+ {
+ if (a1)
+ {
var |= 1 << 18;
return var;
}
} else {
if (a1) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(0))) {
- var |= 1 << (GetBankByPlayerAI(0) + 16);
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(0))) {
+ var |= 1 << (GetBankByIdentity(0) + 16);
}
}
if (a2) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(2))) {
- shift = GetBankByPlayerAI(2) + 16;
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(2))) {
+ shift = GetBankByIdentity(2) + 16;
var |= 1 << shift;
}
}
if (a3) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(1))) {
- shift = GetBankByPlayerAI(1) + 16;
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(1))) {
+ shift = GetBankByIdentity(1) + 16;
var |= 1 << shift;
}
}
if (a4) {
- if (IsAnimBankSpriteVisible(GetBankByPlayerAI(3))) {
- shift = GetBankByPlayerAI(3) + 16;
+ if (IsAnimBankSpriteVisible(GetBankByIdentity(3))) {
+ shift = GetBankByIdentity(3) + 16;
var |= 1 << shift;
}
}
@@ -1196,51 +1358,57 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
return var;
}
-u8 sub_80793A8(u8 a1) {
+u8 sub_80793A8(u8 a1)
+{
return a1;
}
-u8 unref_sub_80793B0(u8 a1) {
- return GetBankByPlayerAI(a1);
+u8 unref_sub_80793B0(u8 a1)
+{
+ return GetBankByIdentity(a1);
}
-void sub_80793C4(struct Sprite *sprite) {
+void sub_80793C4(struct Sprite *sprite)
+{
bool8 var;
- if (!sprite->data[0]) {
- if (!gBattleAnimArgs[3]) {
+
+ if (!sprite->data[0])
+ {
+ if (!gBattleAnimArgs[3])
var = TRUE;
- } else {
+ else
var = FALSE;
- }
- if (!gBattleAnimArgs[2]) {
+ if (!gBattleAnimArgs[2])
sub_80787B0(sprite, var);
- } else {
+ else
sub_8078764(sprite, var);
- }
sprite->data[0]++;
- } else if (sprite->animEnded || sprite->affineAnimEnded) {
+ }
+ else if (sprite->animEnded || sprite->affineAnimEnded)
+ {
move_anim_8074EE0(sprite);
}
}
-void sub_807941C(struct Sprite *sprite) {
+void sub_807941C(struct Sprite *sprite)
+{
bool8 v1;
u8 v2;
- if (!(gBattleAnimArgs[5] & 0xff00)) {
+
+ if (!(gBattleAnimArgs[5] & 0xff00))
v1 = TRUE;
- } else {
+ else
v1 = FALSE;
- }
- if (!(gBattleAnimArgs[5] & 0xff)) {
+
+ if (!(gBattleAnimArgs[5] & 0xff))
v2 = 3;
- } else {
+ else
v2 = 1;
- }
+
sub_80787B0(sprite, v1);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- }
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, v2) + gBattleAnimArgs[3];
@@ -1248,11 +1416,11 @@ void sub_807941C(struct Sprite *sprite) {
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-void sub_80794A8(struct Sprite *sprite) {
+void sub_80794A8(struct Sprite *sprite)
+{
sub_80787B0(sprite, 1);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- }
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(gAnimBankTarget, 2) + gBattleAnimArgs[2];
sprite->data[4] = GetBankPosition(gAnimBankTarget, 3) + gBattleAnimArgs[3];
@@ -1261,31 +1429,38 @@ void sub_80794A8(struct Sprite *sprite) {
sprite->callback = sub_8079518;
}
-void sub_8079518(struct Sprite *sprite) {
- if (sub_8078718(sprite)) {
+void sub_8079518(struct Sprite *sprite)
+{
+ if (sub_8078718(sprite))
DestroyAnimSprite(sprite);
- }
}
-void sub_8079534(struct Sprite *sprite) {
+void sub_8079534(struct Sprite *sprite)
+{
u8 r4, slot, r7;
- if (!gBattleAnimArgs[6]) {
+
+ if (!gBattleAnimArgs[6])
+ {
r4 = 1;
r7 = 3;
- } else {
+ }
+ else
+ {
r4 = 0;
r7 = 1;
}
- if (!gBattleAnimArgs[5]) {
+ if (!gBattleAnimArgs[5])
+ {
sub_80787B0(sprite, r4);
slot = gAnimBankAttacker;
- } else {
+ }
+ else
+ {
sub_8078764(sprite, r4);
slot = gAnimBankTarget;
}
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- }
sub_8078764(sprite, r4);
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBankPosition(slot, 2) + gBattleAnimArgs[2];
@@ -1294,43 +1469,47 @@ void sub_8079534(struct Sprite *sprite) {
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) {
+s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1)
+{
u16 i;
u8 sprite = GetAnimBankSpriteId(a1);
- if (sprite != 0xff) {
- for (i = 0; i < 0x40; i++) {
- if (gSprites[i].inUse) {
- continue;
+
+ if (sprite != 0xff)
+ {
+ for (i = 0; i < 0x40; i++)
+ {
+ if (!gSprites[i].inUse)
+ {
+ gSprites[i] = gSprites[sprite];
+ gSprites[i].oam.objMode = 1;
+ gSprites[i].invisible = FALSE;
+ return i;
}
- gSprites[i] = gSprites[sprite];
- gSprites[i].oam.objMode = 1;
- gSprites[i].invisible = FALSE;
- return i;
}
}
return -1;
}
-void obj_delete_but_dont_free_vram(struct Sprite *sprite) {
+void obj_delete_but_dont_free_vram(struct Sprite *sprite)
+{
sprite->usingSheet = TRUE;
DestroySprite(sprite);
}
-void sub_8079670(u8 task) {
+void sub_8079670(u8 task)
+{
s16 v1 = 0;
s16 v2 = 0;
- if (gBattleAnimArgs[2] > gBattleAnimArgs[0]) {
+
+ if (gBattleAnimArgs[2] > gBattleAnimArgs[0])
v2 = 1;
- }
- if (gBattleAnimArgs[2] < gBattleAnimArgs[0]) {
+ if (gBattleAnimArgs[2] < gBattleAnimArgs[0])
v2 = -1;
- }
- if (gBattleAnimArgs[3] > gBattleAnimArgs[1]) {
+ if (gBattleAnimArgs[3] > gBattleAnimArgs[1])
v1 = 1;
- }
- if (gBattleAnimArgs[3] < gBattleAnimArgs[1]) {
+ if (gBattleAnimArgs[3] < gBattleAnimArgs[1])
v1 = -1;
- }
+
gTasks[task].data[0] = 0;
gTasks[task].data[1] = gBattleAnimArgs[4];
gTasks[task].data[2] = 0;
@@ -1344,30 +1523,38 @@ void sub_8079670(u8 task) {
gTasks[task].func = sub_80796F8;
}
-void sub_80796F8(u8 taskId) {
+void sub_80796F8(u8 taskId)
+{
struct Task *task = &gTasks[taskId];
- if (++task->data[0] > task->data[1]) {
+
+ if (++task->data[0] > task->data[1])
+ {
task->data[0] = 0;
- if (++task->data[2] & 1) {
- if (task->data[3] != task->data[7]) {
+ if (++task->data[2] & 1)
+ {
+ if (task->data[3] != task->data[7])
task->data[3] += task->data[5];
- }
- } else {
- if (task->data[4] != task->data[8]) {
+ }
+ else
+ {
+ if (task->data[4] != task->data[8])
task->data[4] += task->data[6];
- }
}
REG_BLDALPHA = (task->data[4] << 8) | task->data[3];
- if (task->data[3] == task->data[7] && task->data[4] == task->data[8]) {
+ if (task->data[3] == task->data[7] && task->data[4] == task->data[8])
+ {
DestroyAnimVisualTask(taskId);
return;
}
}
}
-void sub_8079790(u8 task) {
+void sub_8079790(u8 task)
+{
u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
- if (sprite == 0xff) {
+
+ if (sprite == 0xff)
+ {
DestroyAnimVisualTask(task);
return;
}
@@ -1375,7 +1562,8 @@ void sub_8079790(u8 task) {
sub_80797EC(&gTasks[task]);
}
-void sub_80797EC(struct Task *task) {
+void sub_80797EC(struct Task *task)
+{
task->data[1] = gBattleAnimArgs[1];
task->data[2] = 0;
task->data[3] = gBattleAnimArgs[2];
@@ -1386,24 +1574,33 @@ void sub_80797EC(struct Task *task) {
task->func = sub_8079814;
}
-void sub_8079814(u8 taskId) {
+void sub_8079814(u8 taskId)
+{
struct Task *task = &gTasks[taskId];
- if (++task->data[4] >= task->data[5]) {
+
+ if (++task->data[4] >= task->data[5])
+ {
task->data[4] = 0;
- if (!task->data[6]) {
+ if (!task->data[6])
+ {
task->data[2]++;
BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]);
- if (task->data[2] == task->data[3]) {
+ if (task->data[2] == task->data[3])
task->data[6] = 1;
- }
- } else {
+ }
+ else
+ {
task->data[2]--;
BlendPalette(task->data[0], 0xf, task->data[2], task->data[1]);
- if (!task->data[2]) {
- if (--task->data[7]) {
+ if (!task->data[2])
+ {
+ if (--task->data[7])
+ {
task->data[4] = 0;
task->data[6] = 0;
- } else {
+ }
+ else
+ {
DestroyAnimVisualTask(taskId);
return;
}
@@ -1412,9 +1609,12 @@ void sub_8079814(u8 taskId) {
}
}
-void sub_80798AC(u8 task) {
+void sub_80798AC(u8 task)
+{
u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
- if (palette == 0xff) {
+
+ if (palette == 0xff)
+ {
DestroyAnimVisualTask(task);
return;
}
@@ -1422,7 +1622,8 @@ void sub_80798AC(u8 task) {
sub_80797EC(&gTasks[task]);
}
-void sub_80798F4(struct Task *task, u8 a2, const void *a3) {
+void sub_80798F4(struct Task *task, u8 a2, const void *a3)
+{
task->data[7] = 0;
task->data[8] = 0;
task->data[9] = 0;
@@ -1434,11 +1635,14 @@ void sub_80798F4(struct Task *task, u8 a2, const void *a3) {
sub_8078E70(a2, 0);
}
-bool8 sub_807992C(struct Task *task) {
+bool8 sub_807992C(struct Task *task)
+{
gUnknown_0202F7D4 = sub_8079BFC(task->data[13], task->data[14]) + (task->data[7] << 3);
- switch (gUnknown_0202F7D4->type) {
+ switch (gUnknown_0202F7D4->type)
+ {
default:
- if (!gUnknown_0202F7D4->frame.duration) {
+ if (!gUnknown_0202F7D4->frame.duration)
+ {
task->data[10] = gUnknown_0202F7D4->frame.xScale;
task->data[11] = gUnknown_0202F7D4->frame.yScale;
task->data[12] = gUnknown_0202F7D4->frame.rotation;
@@ -1450,44 +1654,49 @@ bool8 sub_807992C(struct Task *task) {
task->data[12] += gUnknown_0202F7D4->frame.rotation;
obj_id_set_rotscale(task->data[15], task->data[10], task->data[11], task->data[12]);
sub_8079A64(task->data[15]);
- if (++task->data[8] >= gUnknown_0202F7D4->frame.duration) {
+ if (++task->data[8] >= gUnknown_0202F7D4->frame.duration)
+ {
task->data[8] = 0;
task->data[7]++;
}
break;
-
case AFFINEANIMCMDTYPE_JUMP:
task->data[7] = gUnknown_0202F7D4->jump.target;
break;
-
case AFFINEANIMCMDTYPE_LOOP:
- if (gUnknown_0202F7D4->loop.count) {
- if (task->data[9]) {
- if (!--task->data[9]) {
+ if (gUnknown_0202F7D4->loop.count)
+ {
+ if (task->data[9])
+ {
+ if (!--task->data[9])
+ {
task->data[7]++;
break;
}
- } else {
+ }
+ else
+ {
task->data[9] = gUnknown_0202F7D4->loop.count;
}
- if (!task->data[7]) {
+ if (!task->data[7])
+ {
break;
}
- for (;;) {
+ for (;;)
+ {
task->data[7]--;
gUnknown_0202F7D4--;
- if (gUnknown_0202F7D4->type == AFFINEANIMCMDTYPE_LOOP) {
+ if (gUnknown_0202F7D4->type == AFFINEANIMCMDTYPE_LOOP)
+ {
task->data[7]++;
return TRUE;
}
- if (!task->data[7]) {
+ if (!task->data[7])
return TRUE;
- }
}
}
task->data[7]++;
break;
-
case 0x7fff:
gSprites[task->data[15]].pos2.y = 0;
sub_8078F40(task->data[15]);
@@ -1497,52 +1706,62 @@ bool8 sub_807992C(struct Task *task) {
return TRUE;
}
-void sub_8079A64(u8 sprite) {
+void sub_8079A64(u8 sprite)
+{
int var = 0x40 - sub_8079B10(sprite) * 2;
u16 matrix = gSprites[sprite].oam.matrixNum;
int var2 = (var << 8) / gOamMatrices[matrix].d;
- if (var2 > 0x80) {
+
+ if (var2 > 0x80)
var2 = 0x80;
- }
gSprites[sprite].pos2.y = (var - var2) / 2;
}
-void sub_8079AB8(u8 sprite, u8 sprite2) {
+void sub_8079AB8(u8 sprite, u8 sprite2)
+{
int var = 0x40 - sub_8079B10(sprite2) * 2;
u16 matrix = gSprites[sprite].oam.matrixNum;
int var2 = (var << 8) / gOamMatrices[matrix].d;
- if (var2 > 0x80) {
+
+ if (var2 > 0x80)
var2 = 0x80;
- }
gSprites[sprite].pos2.y = (var - var2) / 2;
}
-u16 sub_8079B10(u8 sprite) {
+u16 sub_8079B10(u8 sprite)
+{
struct TransformStatus *transform;
u8 slot = gSprites[sprite].data[0];
u16 species;
u16 i;
- for (i = 0; i < (sizeof(gBattleMonSprites) / sizeof(u8)); i++) {
- if (gBattleMonSprites[i] == sprite) {
- if (IsContest()) {
- species = ewram19348.unk0;
+
+ for (i = 0; i < (sizeof(gBattleMonSprites) / sizeof(u8)); i++)
+ {
+ if (gBattleMonSprites[i] == sprite)
+ {
+ if (IsContest())
+ {
+ species = shared19348.unk0;
return gMonBackPicCoords[species].y_offset;
- } else {
- if (!GetBankSide(i)) {
+ }
+ else
+ {
+ if (!GetBankSide(i))
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
return gMonBackPicCoords[species].y_offset;
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[i]], MON_DATA_SPECIES);
- } else {
+ else
species = transform->species;
- }
return gMonFrontPicCoords[species].y_offset;
}
}
@@ -1551,19 +1770,22 @@ u16 sub_8079B10(u8 sprite) {
return 0x40;
}
-void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr) {
+void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr)
+{
*bottom = ((intptr_t) ptr) & 0xffff;
*top = (((intptr_t) ptr) >> 16) & 0xffff;
}
-void *sub_8079BFC(s16 bottom, s16 top) {
+void *sub_8079BFC(s16 bottom, s16 top)
+{
return (void *)((u16)bottom | ((u16)top << 16));
}
// possible new file
-void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7) {
+void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7)
+{
task->data[8] = a7;
task->data[15] = a2; // spriteId
task->data[9] = a3;
@@ -1574,124 +1796,133 @@ void sub_8079C08(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a
task->data[12] = (a6 - a4) / a7;
}
-u8 sub_8079C74(struct Task *task) {
- if (!task->data[8]) {
+u8 sub_8079C74(struct Task *task)
+{
+ if (!task->data[8])
return 0;
- }
- if (--task->data[8]) {
+
+ if (--task->data[8] != 0)
+ {
task->data[9] += task->data[11];
task->data[10] += task->data[12];
- } else {
+ }
+ else
+ {
task->data[9] = task->data[13];
task->data[10] = task->data[14];
}
obj_id_set_rotscale(task->data[15], task->data[9], task->data[10], 0);
- if (task->data[8]) {
+ if (task->data[8])
sub_8079A64(task->data[15]);
- } else {
+ else
gSprites[task->data[15]].pos2.y = 0;
- }
return task->data[8];
}
-void sub_8079CEC(u8 task) {
+void sub_8079CEC(u8 task)
+{
u16 v1;
- if (gAnimFriendship <= 30) {
+
+ if (gAnimFriendship <= 30)
v1 = 0;
- } else if (gAnimFriendship <= 100) {
+ else if (gAnimFriendship <= 100)
v1 = 1;
- } else if (gAnimFriendship <= 200) {
+ else if (gAnimFriendship <= 200)
v1 = 2;
- } else {
+ else
v1 = 3;
- }
gBattleAnimArgs[7] = v1;
DestroyAnimVisualTask(task);
}
-void unref_sub_8079D20(u8 priority) {
- if (IsAnimBankSpriteVisible(gAnimBankTarget)) {
+void unref_sub_8079D20(u8 priority)
+{
+ if (IsAnimBankSpriteVisible(gAnimBankTarget))
gSprites[gBattleMonSprites[gAnimBankTarget]].oam.priority = priority;
- }
- if (IsAnimBankSpriteVisible(gAnimBankAttacker)) {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker))
gSprites[gBattleMonSprites[gAnimBankAttacker]].oam.priority = priority;
- }
- if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2)) {
+ if (IsAnimBankSpriteVisible(gAnimBankTarget ^ 2))
gSprites[gBattleMonSprites[gAnimBankTarget ^ 2]].oam.priority = priority;
- }
- if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2)) {
+ if (IsAnimBankSpriteVisible(gAnimBankAttacker ^ 2))
gSprites[gBattleMonSprites[gAnimBankAttacker ^ 2]].oam.priority = priority;
- }
}
-void sub_8079E24() {
+void sub_8079E24()
+{
int i;
- for (i = 0; i < gNoOfAllBanks; i++) {
- if (IsAnimBankSpriteVisible(i)) {
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (IsAnimBankSpriteVisible(i))
+ {
gSprites[gBattleMonSprites[i]].subpriority = sub_8079E90(i);
gSprites[gBattleMonSprites[i]].oam.priority = 2;
}
}
}
-u8 sub_8079E90(u8 slot) {
+u8 sub_8079E90(u8 slot)
+{
u8 status;
u8 ret;
- if (IsContest()) {
- if (slot == 2) {
+
+ if (IsContest())
+ {
+ if (slot == 2)
return 30;
- } else {
+ else
return 40;
- }
- } else {
+ }
+ else
+ {
status = GetBankIdentity(slot);
- if (status == 0) {
+ if (status == 0)
ret = 30;
- } else if (status == 2) {
+ else if (status == 2)
ret = 20;
- } else if (status == 1) {
+ else if (status == 1)
ret = 40;
- } else {
+ else
ret = 50;
- }
}
return ret;
}
-u8 sub_8079ED4(u8 slot) {
+u8 sub_8079ED4(u8 slot)
+{
u8 status = GetBankIdentity(slot);
- if (IsContest()) {
+
+ if (IsContest())
return 2;
- }
- if (status == 0 || status == 3) {
+ if (status == 0 || status == 3)
return BG2CNT.priority;
- } else {
+ else
return BG1CNT.priority;
- }
}
-u8 GetBankIdentity_permutated(u8 slot) {
+u8 GetBankIdentity_permutated(u8 slot)
+{
u8 status;
- if (!IsContest()) {
+
+ if (!IsContest())
+ {
status = GetBankIdentity(slot);
- if (status == 0 || status == 3) {
+ if (status == 0 || status == 3)
return 2;
- } else {
+ else
return 1;
- }
}
return 1;
}
-u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7, u32 a8) {
- void *src;
- void *dest;
- int size;
-
+u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7, u32 a8)
+{
u8 sprite;
u16 sheet = LoadSpriteSheet(&gUnknown_0837F5E0[a3]);
u16 palette = AllocSpritePalette(gSpriteTemplate_837F5B0[a3].paletteTag);
- if (!isBackpic) {
+
+ if (!isBackpic)
+ {
LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonFrontPicTable[species],
@@ -1703,9 +1934,10 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
a7,
1
);
- } else {
- LoadCompressedPalette(
- GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
+ }
+ else
+ {
+ LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
@@ -1718,28 +1950,28 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
);
}
- src = (void *)0x2000000;
- dest = (void *)(0x6010000 + (sheet * 0x20));
- size = 0x800;
- DmaCopy32(3, src, dest, size);
+ DmaCopy32Defvars(3, (void *)0x2000000, (void *)(VRAM + 0x10000 + (sheet * 0x20)), 0x800);
- if (!isBackpic) {
+ if (!isBackpic)
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonFrontPicCoords[species].y_offset, a6);
- } else {
+ else
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonBackPicCoords[species].y_offset, a6);
- }
- if (IsContest()) {
+
+ if (IsContest())
+ {
gSprites[sprite].affineAnims = gSpriteAffineAnimTable_81E7C18;
StartSpriteAffineAnim(&gSprites[sprite], 0);
}
return sprite;
}
-void sub_807A0F4(struct Sprite *sprite) {
+void sub_807A0F4(struct Sprite *sprite)
+{
DestroySpriteAndFreeResources(sprite);
}
-int sub_807A100(u8 slot, u8 a2) {
+s16 sub_807A100(u8 slot, u8 a2)
+{
u16 species;
u32 personality;
u16 letter;
@@ -1747,80 +1979,113 @@ int sub_807A100(u8 slot, u8 a2) {
int ret;
const struct MonCoords *coords;
struct TransformStatus *transform;
- if (IsContest()) {
- if (ewram19348.unk4 & 1) {
- species = ewram19348.unk2;
- personality = ewram19348.unk10;
- } else {
- species = ewram19348.unk0;
- personality = ewram19348.unk8;
+
+ if (IsContest())
+ {
+ if (shared19348.unk4_0)
+ {
+ species = shared19348.unk2;
+ personality = shared19348.unk10;
+ }
+ else
+ {
+ species = shared19348.unk0;
+ personality = shared19348.unk8;
}
- if (species == SPECIES_UNOWN) {
+ if (species == SPECIES_UNOWN)
+ {
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = SPECIES_UNOWN;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
coords = &gMonBackPicCoords[var];
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
coords = &gCastformFrontSpriteCoords[gBattleMonForms[slot]];
- } else if (species <= SPECIES_EGG) {
+ }
+ else if (species <= SPECIES_EGG)
+ {
coords = &gMonBackPicCoords[species];
- } else {
+ }
+ else
+ {
coords = &gMonBackPicCoords[0];
}
- } else {
- if (!GetBankSide(slot)) {
+ }
+ else
+ {
+ if (!GetBankSide(slot))
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
+ {
species = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
personality = GetMonData(&gPlayerParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ }
+ else
+ {
species = transform->species;
personality = gTransformPersonalities[slot];
}
- if (species == SPECIES_UNOWN) {
+ if (species == SPECIES_UNOWN)
+ {
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = SPECIES_UNOWN;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
coords = &gMonBackPicCoords[var];
- } else if (species > SPECIES_EGG) {
+ }
+ else if (species > SPECIES_EGG)
+ {
coords = &gMonBackPicCoords[0];
- } else {
+ }
+ else
+ {
coords = &gMonBackPicCoords[species];
}
- } else {
+ }
+ else
+ {
transform = &eTransformStatuses[slot];
- if (!transform->species) {
+ if (!transform->species)
+ {
species = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_SPECIES);
personality = GetMonData(&gEnemyParty[gBattleMonPartyPositions[slot]], MON_DATA_PERSONALITY);
- } else {
+ }
+ else
+ {
species = transform->species;
personality = gTransformPersonalities[slot];
}
- if (species == SPECIES_UNOWN) {
+ if (species == SPECIES_UNOWN)
+ {
letter = GET_UNOWN_LETTER(personality);
- if (!letter) {
+ if (!letter)
var = SPECIES_UNOWN;
- } else {
+ else
var = letter + SPECIES_UNOWN_B - 1;
- }
coords = &gMonFrontPicCoords[var];
- } else if (species == SPECIES_CASTFORM) {
+ }
+ else if (species == SPECIES_CASTFORM)
+ {
coords = &gCastformFrontSpriteCoords[gBattleMonForms[slot]];
- } else if (species > SPECIES_EGG) {
+ }
+ else if (species > SPECIES_EGG)
+ {
coords = &gMonFrontPicCoords[0];
- } else {
+ }
+ else
+ {
coords = &gMonFrontPicCoords[species];
}
}
}
- switch (a2) {
+ switch (a2)
+ {
case 0:
return (coords->coords & 0xf) * 8;
case 1:
@@ -1841,23 +2106,31 @@ int sub_807A100(u8 slot, u8 a2) {
}
}
-void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) {
+void sub_807A3FC(u8 slot, bool8 a2, s16 *a3, s16 *a4)
+{
u8 v1, v2;
s16 v3, v4;
s16 v5, v6;
- if (!a2) {
+
+ if (!a2)
+ {
v1 = 0;
v2 = 1;
- } else {
+ }
+ else
+ {
v1 = 2;
v2 = 3;
}
v3 = GetBankPosition(slot, v1);
v4 = GetBankPosition(slot, v2);
- if (IsDoubleBattle() && !IsContest()) {
+ if (IsDoubleBattle() && !IsContest())
+ {
v5 = GetBankPosition(slot ^ 2, v1);
v6 = GetBankPosition(slot ^ 2, v2);
- } else {
+ }
+ else
+ {
v5 = v3;
v6 = v4;
}
@@ -1865,7 +2138,8 @@ void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) {
*a4 = (v4 + v6) / 2;
}
-u8 sub_807A4A0(int a1, u8 sprite, int a3) {
+u8 sub_807A4A0(int bank, u8 sprite, int species)
+{
u8 new_sprite = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
gSprites[new_sprite] = gSprites[sprite];
gSprites[new_sprite].usingSheet = TRUE;
@@ -1876,13 +2150,19 @@ u8 sub_807A4A0(int a1, u8 sprite, int a3) {
return new_sprite;
}
-void sub_807A544(struct Sprite *sprite) {
+// unused_orb
+
+void sub_807A544(struct Sprite *sprite)
+{
sub_8078650(sprite);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
+ {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
sprite->hFlip = TRUE;
- } else {
+ }
+ else
+ {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
@@ -1894,11 +2174,15 @@ void sub_807A544(struct Sprite *sprite) {
sprite->callback = sub_8078504;
}
-void sub_807A5C4(struct Sprite *sprite) {
- if (GetBankSide(gAnimBankAttacker)) {
+void sub_807A5C4(struct Sprite *sprite)
+{
+ if (GetBankSide(gAnimBankAttacker))
+ {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] *= -1;
- } else {
+ }
+ else
+ {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
@@ -1911,19 +2195,24 @@ void sub_807A5C4(struct Sprite *sprite) {
sprite->callback = sub_8078504;
}
-void sub_807A63C(struct Sprite *sprite) {
+// file_2
+
+void sub_807A63C(struct Sprite *sprite)
+{
sub_8078650(sprite);
- if (GetBankSide(gAnimBankAttacker)) {
+ if (GetBankSide(gAnimBankAttacker))
sprite->pos1.x -= gBattleAnimArgs[0];
- } else {
+ else
sprite->pos1.x += gBattleAnimArgs[0];
- }
sprite->pos1.y += gBattleAnimArgs[1];
sprite->callback = sub_8078600;
StoreSpriteCallbackInData(sprite, DestroyAnimSprite);
}
-void sub_807A69C(u8 taskId) {
+// file_3 (punch effect?)
+
+void sub_807A69C(u8 taskId)
+{
u16 src;
u16 dest;
struct Task *task = &gTasks[taskId];
@@ -1938,23 +2227,25 @@ void sub_807A69C(u8 taskId) {
dest = (task->data[4] + 0x10) * 0x10;
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
task->data[6] = sub_8079E90(gAnimBankAttacker);
- if (task->data[6] == 20 || task->data[6] == 40) {
+ if (task->data[6] == 20 || task->data[6] == 40)
task->data[6] = 2;
- } else {
+ else
task->data[6] = 3;
- }
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
BlendPalette(dest, 0x10, gBattleAnimArgs[1], gBattleAnimArgs[0]);
task->func = sub_807A784;
}
-void sub_807A784(u8 taskId) {
+void sub_807A784(u8 taskId)
+{
struct Task *task = &gTasks[taskId];
- switch (task->data[2]) {
+ switch (task->data[2])
+ {
case 0:
sub_807A850(task, taskId);
gSprites[task->data[0]].pos2.x += task->data[1];
- if (++task->data[3] == 5) {
+ if (++task->data[3] == 5)
+ {
task->data[3]--;
task->data[2]++;
}
@@ -1962,13 +2253,15 @@ void sub_807A784(u8 taskId) {
case 1:
sub_807A850(task, taskId);
gSprites[task->data[0]].pos2.x -= task->data[1];
- if (--task->data[3] == 0) {
+ if (--task->data[3] == 0)
+ {
gSprites[task->data[0]].pos2.x = 0;
task->data[2]++;
}
break;
case 2:
- if (!task->data[5]) {
+ if (!task->data[5])
+ {
FreeSpritePaletteByTag(10097);
DestroyAnimVisualTask(taskId);
}
@@ -1976,9 +2269,11 @@ void sub_807A784(u8 taskId) {
}
}
-void sub_807A850(struct Task *task, u8 taskId) {
+void sub_807A850(struct Task *task, u8 taskId)
+{
s16 sprite = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
- if (sprite >= 0) {
+ if (sprite >= 0)
+ {
gSprites[sprite].oam.priority = task->data[6];
gSprites[sprite].oam.paletteNum = task->data[4];
gSprites[sprite].data[0] = 8;
@@ -1990,48 +2285,54 @@ void sub_807A850(struct Task *task, u8 taskId) {
}
}
-void sub_807A8D4(struct Sprite *sprite) {
- if (--sprite->data[0] == 0) {
+void sub_807A8D4(struct Sprite *sprite)
+{
+ if (--sprite->data[0] == 0)
+ {
gTasks[sprite->data[1]].data[5]--;
obj_delete_but_dont_free_vram(sprite);
}
}
+// file_4
+
void sub_807A908(struct Sprite *sprite) {
sprite->pos1.x = GetBankPosition(gAnimBankAttacker, 2);
sprite->pos1.y = GetBankPosition(gAnimBankAttacker, 3);
- if (!GetBankSide(gAnimBankAttacker)) {
+ if (!GetBankSide(gAnimBankAttacker))
sprite->data[0] = 5;
- } else {
+ else
sprite->data[0] = -10;
- }
sprite->data[1] = -40;
sprite->callback = sub_807A960;
}
-void sub_807A960(struct Sprite *sprite) {
+void sub_807A960(struct Sprite *sprite)
+{
sprite->data[2] += sprite->data[0];
sprite->data[3] += sprite->data[1];
sprite->pos2.x = sprite->data[2] / 10;
sprite->pos2.y = sprite->data[3] / 10;
- if (sprite->data[1] < -20) {
+ if (sprite->data[1] < -20)
sprite->data[1]++;
- }
- if ((sprite->pos1.y + sprite->pos2.y) < -32) {
+ if (sprite->pos1.y + sprite->pos2.y < -32)
DestroyAnimSprite(sprite);
- }
}
-void sub_807A9BC(struct Sprite *sprite) {
+void sub_807A9BC(struct Sprite *sprite)
+{
int x;
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[4];
sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[5];
- if (!GetBankSide(gAnimBankTarget)) {
+ if (!GetBankSide(gAnimBankTarget))
+ {
x = (u16)gBattleAnimArgs[4] + 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 20;
- } else {
+ }
+ else
+ {
x = (u16)gBattleAnimArgs[4] - 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 80;
diff --git a/src/roulette.c b/src/roulette.c
new file mode 100644
index 000000000..838ce94f8
--- /dev/null
+++ b/src/roulette.c
@@ -0,0 +1,5731 @@
+#include "global.h"
+#include "ewram.h"
+#include "field_fadetransition.h"
+#include "constants/game_stat.h"
+#include "m4a.h"
+#include "main.h"
+#include "menu.h"
+#include "menu_cursor.h"
+#include "menu_helpers.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokemon.h"
+#include "roulette.h"
+#include "roulette_util.h"
+#include "rtc.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "script.h"
+#include "constants/species.h"
+#include "sprite.h"
+#include "strings2.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "trig.h"
+#include "scanline_effect.h"
+
+asm(".include \"constants/gba_constants.inc\"");
+
+struct Roulette /* ewram + 0x19000 */
+{
+ u8 var00;
+ u8 var01;
+ u8 var02;
+ u8 var03_0:5;
+ u8 var03_5:1;
+ u8 var03_6:1;
+ u8 var03_7:1;
+ u8 var04_0:2;
+ u8 var04_2:5;
+ u8 var04_7:1;
+ u32 var08;
+ u8 var0C[0x6];
+ u8 var12[0x4];
+ u8 var16[0x3];
+ u8 var19;
+ u8 var1A_0:4;
+ u8 var1A_4:4;
+ u8 var1B[0x6];
+ u8 var21;
+ u8 var22;
+ u8 var23;
+ s16 var24;
+ s16 var26;
+ s16 var28;
+ s16 var2A;
+ struct OamMatrix var2C;
+ u16 var34;
+ struct Sprite *var38;
+ u8 var3C[0x40]; // Sprite IDs
+ u8 var7C;
+ u8 var7D;
+ u8 var7E;
+ u8 var7F;
+ s16 var80;
+ s16 var82;
+ s16 var84;
+ s16 var86;
+ float var88;
+ float var8C;
+ float var90;
+ float var94;
+ float var98;
+ float var9C;
+ float varA0;
+ u8 varA4;
+ u8 varA5;
+ u8 v51[0x2];
+ u16 varA8;
+ u16 varAA;
+ TaskFunc varAC;
+ u8 v46[0x4];
+ TaskFunc varB4;
+ struct UnkStruct0 varB8;
+};
+
+struct StructgUnknown_083F8DF4
+{
+ u8 var00;
+ u8 var01;
+ u8 var02;
+ u8 var03;
+ u8 var04;
+ u8 v[0x3];
+ u16 var08;
+ u16 var0A;
+ u16 var0C;
+ u16 v13[0x1];
+ u16 var10;
+ u16 var12;
+ u16 var14;
+ u8 v1[0x2];
+ u16 var18;
+ u16 var1A;
+ float var1C;
+};
+
+struct StructgUnknown_083F8C00
+{
+ u8 var00;
+ u8 var01_0:4;
+ u8 var01_4:4;
+ u8 var02;
+ u8 var03;
+ u8 var04;
+ u8 var05;
+ u8 var06;
+ u8 var07;
+ u32 var08;
+ u32 var0C;
+ u16 var10;
+ u16 var12;
+};
+
+struct StructgUnknown_083F8D90
+{
+ u8 var00;
+ u8 var01;
+ u8 var02;
+ u8 var03;
+ u32 var04;
+};
+
+#if DEBUG
+u8 gUnknown_Debug_03005FB8;
+#endif
+
+#define static
+
+static void sub_81150FC(void);
+static void sub_8115124(void);
+static void sub_8115238(void);
+static void sub_8115384(void);
+static void sub_8115634(u8);
+static void sub_81156BC(u8);
+static void sub_8115734(u8);
+void sub_811577C(u8);
+void sub_81157AC(u8);
+static void sub_81157D0(u8);
+static void sub_8115928(u8, u8);
+static void sub_811597C(u8);
+static void sub_81159BC(u8);
+static u8 sub_8115A94(s16 *, u8);
+void sub_8115B58(u8);
+static void sub_8115DA0(u8);
+static void sub_8115E14(u8);
+static void sub_8115ECC(u8);
+u8 sub_8115F58(u16, u16);
+static void sub_8116100(u8);
+void sub_8116308(u8);
+static void sub_811637C(u8);
+static void sub_8116474(u8);
+static void sub_8116514(u8);
+static void sub_811659C(u8);
+static void sub_8116638(u8);
+static void sub_81166E8(u8);
+static void sub_811677C(u8);
+static void sub_81167F4(u8);
+static void sub_8116880(u8);
+static void dp01t_12_3_battle_menu(u8);
+static void sub_8116AB0(u8);
+static void sub_8116B40(u8);
+static void sub_8116BC0(u8);
+static void sub_8116C34(u8, TaskFunc, u16, u16);
+static void sub_8116CAC(u8);
+static void sub_8116CF8(void);
+static u8 sub_8116D54(u8, u8);
+static u8 sub_8116E5C(u8, u8);
+static void sub_8116EF8(u8);
+static void sub_8117158(u8);
+static u8 sub_8117380(u8);
+static void sub_8117434(void);
+static void sub_81174F8(u8);
+static void sub_8117528(u8);
+void sub_811755C(u8);
+void sub_81175C0(u8);
+static void sub_81175DC(u8);
+static void sub_8117630(u8);
+static void Task_Roulette_0(u8);
+static void sub_8117838(u8);
+static u8 sub_8117890(const struct SpriteTemplate *, u8, u16 *);
+static void sub_8117900(void);
+void unref_sub_8117A74(void);
+static void sub_8117AA8(u8, u8);
+static void sub_8117BBC(void);
+static void sub_8117C60(u8, u8);
+static void sub_8117D68(u8);
+static void sub_8117DF4(void);
+void sub_8117E98(struct Sprite *);
+static void sub_8117F2C(void);
+static void sub_81180F4(u16);
+static u8 sub_81181E8(u8);
+static void sub_811829C(u8);
+static void sub_81182F8(u8);
+void sub_81184CC(struct Sprite *);
+static void sub_81184D8(void);
+void sub_8118554(struct Sprite *);
+static void sub_811857C(void);
+static void sub_81185E8(void);
+static s16 sub_811866C(struct Sprite *);
+static u8 sub_81186B8(struct Sprite *);
+static s16 sub_81186E8(struct Sprite *);
+static void sub_8118724(struct Sprite *);
+static void sub_8118834(struct Sprite *);
+static void sub_811889C(struct Sprite *);
+static void sub_81189A8(struct Sprite *);
+static void sub_8118B30(struct Sprite *);
+static void sub_8118BD8(struct Sprite *);
+static void sub_8118CAC(struct Sprite *);
+void sub_8118CEC(struct Sprite *);
+void sub_8118D2C(struct Sprite *);
+static void sub_8118DE4(struct Sprite *);
+static void sub_8118F8C(struct Sprite *);
+static void sub_8119088(struct Sprite *);
+static void sub_8119134(struct Sprite *);
+static void sub_81191F4(struct Sprite *);
+static void sub_8119224(struct Sprite *);
+static void sub_81193D4(struct Sprite *);
+static void sub_811952C(struct Sprite *);
+static void sub_8119780(struct Sprite *);
+static void sub_81197D8(struct Sprite *);
+static void sub_8119898(struct Sprite *);
+void sub_8119964(struct Sprite *);
+static void sub_8119A90(struct Sprite *);
+static void sub_8119AAC(struct Sprite *);
+static void sub_8119B24(struct Sprite *);
+static void sub_8119BCC(struct Sprite *);
+static void sub_8119D08(struct Sprite *);
+void sub_8119D80(struct Sprite *);
+
+extern u8 gUnknown_02019000[];
+extern u16 gSpecialVar_0x8004;
+extern struct StructgUnknown_083F8DF4 gUnknown_083F8DF4[];
+extern u8 gUnknown_083F8EC4;
+extern u8 gUnknown_083F8DF0[];
+extern u8 gUnknown_083F8E34[];
+extern const u8 gUnknown_08E8096C[];
+extern const u8 gRouletteWheelTiles[];
+extern const u8 gRouletteCenter_Gfx[];
+extern const u8 gRouletteHeadersTiles[];
+extern const u8 gRouletteCreditTiles[];
+extern const u8 gRouletteNumbersTiles[];
+extern const u8 gRouletteMultiplierTiles[];
+extern const u16 gUnknown_083F86BC[];
+extern const u8 gUnknown_083F88BC[];
+extern const u8 gUnknown_083F8A60[];
+extern u16 gPlttBufferFaded[];
+extern u16 gPlttBufferUnfaded[];
+extern const u8 gUnknown_081C4157[];
+extern const struct YesNoFuncTable gUnknown_083F8EBC;
+extern const u8 gUnknown_081C41E3;
+extern const u16 gUnknown_083F8ECE;
+extern const struct StructgUnknown_083F8C00 gUnknown_083F8C00[];
+const extern u8 gUnknown_083F8ECA[];
+const extern u8 gUnknown_081C41A5;
+const extern u8 gUnknown_081C4199;
+const extern u8 gUnknown_081C41AE;
+const extern u8 gUnknown_081C41BD;
+const extern u8 gUnknown_081C41F1;
+const extern u8 gUnknown_081C4231;
+const extern u8 gUnknown_081C41D2;
+extern const struct StructgUnknown_083F8D90 gUnknown_083F8D90[];
+extern const u32 gUnknown_083F8ED8[];
+extern const u32 gUnknown_083F8EE8[];
+extern const struct UnkStruct1 gUnknown_083F8E9C[];
+extern const u8 gUnknown_083F8EF4[];
+extern const struct YesNoFuncTable gUnknown_083F8EB4;
+extern const u8 gUnknown_081C40DF;
+extern const u8 gUnknown_081C4139;
+extern const u8 gUnknown_081C411C;
+extern const u8 gUnknown_083F92A8[];
+extern const u8 gUnknown_083F90FC[];
+extern const u8 gUnknown_083F9D3C[];
+extern const struct SpritePalette gUnknown_083F9E30;
+extern const struct SpriteSheet gUnknown_083F9F54;
+extern const struct SpriteSheet gUnknown_083F9F5C;
+extern const struct SpriteTemplate gSpriteTemplate_83FA07C[];
+extern const struct SpriteTemplate gSpriteTemplate_83F9FD4[];
+extern const struct SpriteTemplate gSpriteTemplate_83FA034[];
+extern const struct SpriteTemplate gSpriteTemplate_83FA40C;
+extern const struct SpriteSheet gUnknown_083F9EE8;
+extern const struct SpriteTemplate gSpriteTemplate_83FA0DC[];
+extern struct OamMatrix gOamMatrices[];
+extern const struct SpriteSheet gUnknown_083FA21C[];
+extern const struct SpriteTemplate gSpriteTemplate_83FA2B0;
+extern const struct SpriteTemplate gSpriteTemplate_83FA2C8;
+extern const struct SpriteTemplate gSpriteTemplate_83FA2E0;
+extern const struct SpriteTemplate gSpriteTemplate_83FA2F8;
+extern const struct SpriteTemplate gSpriteTemplate_83FA310;
+extern const u8 gUnknown_083FA608[0x5];
+extern const struct SpriteSheet gUnknown_083FA42C;
+extern const struct SpriteTemplate gSpriteTemplate_83FA434;
+extern void (*gFieldCallback)(void);
+extern struct MusicPlayerInfo gMPlay_SE1;
+extern struct MusicPlayerInfo gMPlay_SE2;
+extern const u16 gUnknown_083FA60E[0x2][0x2];
+extern const struct SpriteTemplate gSpriteTemplate_83FA50C;
+extern const struct SpriteTemplate gSpriteTemplate_83FA5C0[];
+extern const u16 gUnknown_083FA616[0x2][0x2];
+extern const struct SpriteTemplate gSpriteTemplate_83FA524;
+extern const struct SpriteTemplate gSpriteTemplate_83FA5F0;
+extern const u16 gUnknown_083FA61E[0xA];
+extern const u16 gUnknown_083FA632[];
+extern const s8 gUnknown_083FA64A[0x2];
+extern const s8 gUnknown_083FA64C[0x8][0x2];
+
+#if DEBUG
+EWRAM_DATA u8 unk_203955C[4] = { 0 };
+EWRAM_DATA u8 unk_2039560[4] = { 0 };
+#endif
+
+
+void sub_81150FC(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ if (eRoulette->varB8.var00)
+ task_tutorial_controls_fadein(&eRoulette->varB8);
+}
+
+void sub_8115124(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_8117434();
+ REG_BG1HOFS = 0x200 - eRoulette->var26;
+ if (eRoulette->var01)
+ REG_BLDALPHA = eRoulette->var34;
+ if (eRoulette->var2A != 0)
+ {
+ DmaCopy16(3, &gBGTilemapBuffers[1][0xE0], (void *)(VRAM + 0x21C0), 0x340);
+ eRoulette->var2A = 0x0;
+ }
+ switch (eRoulette->var28)
+ {
+ case 0x1:
+ REG_BG0CNT = (0x20 * 0xF8);
+ DmaCopy16(3, &gBGTilemapBuffers[2][0xE0], (void *)(VRAM + 0xF9C0), 0x340);
+ eRoulette->var28 = 0x2;
+ break;
+ case 0x2:
+ DmaCopy16(3, &gBGTilemapBuffers[2][0xE0], (void *)(VRAM + 0xF9C0), 0x340);
+ break;
+ case 0xFF:
+ REG_BG0CNT = 0x1F08;
+ DmaFill16(3, 0x0, (void *)(VRAM + 0xF9C0), 0x340);
+ eRoulette->var28 = 0x0;
+ break;
+ case 0x0:
+ }
+}
+#ifdef NONMATCHING
+
+void sub_8115238(void)
+{
+ u8 i;
+ u32 temp;
+ struct PlttData t;
+ struct PlttData *unfaded;
+ struct PlttData *faded;
+ struct StructgUnknown_083F8DF4 *s0;
+ struct PlttData arr[0x3]; // the third is never used ?
+ memcpy(&arr, &gUnknown_083F8EC4, 0x6);
+ memset(eRoulette, 0x0, 0x17C);
+ eRoulette->var04_0 = (gSpecialVar_0x8004 & 0x1);
+ if (gSpecialVar_0x8004 & 0x80)
+ eRoulette->var04_7 = 0x1;
+ s0 = &gUnknown_083F8DF4[0];
+ eRoulette->var22 = s0[eRoulette->var04_0].var03;
+ eRoulette->var23 = s0[eRoulette->var04_0].var04;
+ temp = gUnknown_083F8DF0[eRoulette->var04_0 + eRoulette->var04_7 * 2];
+ eRoulette->var19 = temp;
+ eRoulette->var1A_4 = 0x1;
+ if (temp == 0x1)
+ {
+ unfaded = (struct PlttData *)&gPlttBufferUnfaded[0];
+ faded = (struct PlttData *)&gPlttBufferFaded[0];
+ t = arr[0];
+ }
+ else
+ {
+ unfaded = (struct PlttData *)&gPlttBufferUnfaded[0];
+ faded = (struct PlttData *)&gPlttBufferFaded[0];
+ t = arr[1];
+ }
+ faded[0x51] = t;
+ faded[0x0] = faded[0x51];
+ unfaded[0x51] = t;
+ unfaded[0x0] = t;
+ sub_8124918((&eRoulette->varB8));
+ for (i = 0; i < 0xD; i++)
+ sub_812492C((&eRoulette->varB8), i, (struct UnkStruct1 *)&gUnknown_083F8E34[i * 8]);
+ for (i = 0; i < 0x6; i++)
+ {
+ switch (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2))
+ {
+ case SPECIES_TAILLOW:
+ eRoulette->var02 |= 0x2;
+ break;
+ case SPECIES_SHROOMISH:
+ eRoulette->var02 |= 0x1;
+ break;
+ }
+ }
+ RtcCalcLocalTime();
+}
+#else
+__attribute__((naked))
+void sub_8115238(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ sub sp, 0x8\n\
+ ldr r1, _081152C0 @ =gUnknown_083F8EC4\n\
+ mov r0, sp\n\
+ movs r2, 0x6\n\
+ bl memcpy\n\
+ ldr r5, _081152C4 @ =0x02019000\n\
+ movs r2, 0xBE\n\
+ lsls r2, 1\n\
+ adds r0, r5, 0\n\
+ movs r1, 0\n\
+ bl memset\n\
+ ldr r0, _081152C8 @ =gSpecialVar_0x8004\n\
+ ldrh r2, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r2\n\
+ ldrb r1, [r5, 0x4]\n\
+ movs r3, 0x4\n\
+ negs r3, r3\n\
+ ands r3, r1\n\
+ orrs r3, r0\n\
+ strb r3, [r5, 0x4]\n\
+ movs r0, 0x80\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ beq _08115276\n\
+ movs r0, 0x80\n\
+ orrs r3, r0\n\
+ strb r3, [r5, 0x4]\n\
+ _08115276:\n\
+ ldr r3, _081152CC @ =gUnknown_083F8DF4\n\
+ ldrb r2, [r5, 0x4]\n\
+ lsls r1, r2, 30\n\
+ lsrs r0, r1, 25\n\
+ adds r0, r3\n\
+ ldrb r0, [r0, 0x3]\n\
+ adds r4, r5, 0\n\
+ adds r4, 0x22\n\
+ strb r0, [r4]\n\
+ lsrs r0, r1, 25\n\
+ adds r0, r3\n\
+ ldrb r0, [r0, 0x4]\n\
+ adds r3, r5, 0\n\
+ adds r3, 0x23\n\
+ strb r0, [r3]\n\
+ ldr r0, _081152D0 @ =gUnknown_083F8DF0\n\
+ lsrs r1, 30\n\
+ lsls r2, 24\n\
+ lsrs r2, 31\n\
+ lsls r2, 1\n\
+ adds r1, r2\n\
+ adds r1, r0\n\
+ ldrb r2, [r1]\n\
+ strb r2, [r5, 0x19]\n\
+ ldrb r1, [r5, 0x1A]\n\
+ movs r0, 0xF\n\
+ ands r0, r1\n\
+ movs r1, 0x10\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x1A]\n\
+ cmp r2, 0x1\n\
+ bne _081152DC\n\
+ ldr r4, _081152D4 @ =gPlttBufferUnfaded\n\
+ ldr r3, _081152D8 @ =gPlttBufferFaded\n\
+ mov r0, sp\n\
+ ldrh r2, [r0]\n\
+ b _081152E4\n\
+ .align 2, 0\n\
+ _081152C0: .4byte gUnknown_083F8EC4\n\
+ _081152C4: .4byte 0x02019000\n\
+ _081152C8: .4byte gSpecialVar_0x8004\n\
+ _081152CC: .4byte gUnknown_083F8DF4\n\
+ _081152D0: .4byte gUnknown_083F8DF0\n\
+ _081152D4: .4byte gPlttBufferUnfaded\n\
+ _081152D8: .4byte gPlttBufferFaded\n\
+ _081152DC:\n\
+ ldr r4, _08115348 @ =gPlttBufferUnfaded\n\
+ ldr r3, _0811534C @ =gPlttBufferFaded\n\
+ mov r0, sp\n\
+ ldrh r2, [r0, 0x2]\n\
+ _081152E4:\n\
+ adds r0, r3, 0\n\
+ adds r0, 0xA2\n\
+ strh r2, [r0]\n\
+ ldr r1, _08115350 @ =0x0000ffff\n\
+ adds r0, r1, 0\n\
+ ands r0, r2\n\
+ strh r0, [r3]\n\
+ ands r0, r1\n\
+ adds r2, r4, 0\n\
+ adds r2, 0xA2\n\
+ strh r0, [r2]\n\
+ ands r0, r1\n\
+ strh r0, [r4]\n\
+ ldr r0, _08115354 @ =0x020190b8\n\
+ bl sub_8124918\n\
+ movs r4, 0\n\
+ ldr r5, _08115358 @ =gUnknown_083F8E34\n\
+ _08115308:\n\
+ lsls r2, r4, 3\n\
+ adds r2, r5\n\
+ ldr r0, _08115354 @ =0x020190b8\n\
+ adds r1, r4, 0\n\
+ bl sub_812492C\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0xC\n\
+ bls _08115308\n\
+ movs r4, 0\n\
+ ldr r5, _0811535C @ =0x02019000\n\
+ _08115322:\n\
+ movs r0, 0x64\n\
+ muls r0, r4\n\
+ ldr r1, _08115360 @ =gPlayerParty\n\
+ adds r0, r1\n\
+ movs r1, 0x41\n\
+ bl GetMonData\n\
+ adds r1, r0, 0\n\
+ movs r0, 0x98\n\
+ lsls r0, 1\n\
+ cmp r1, r0\n\
+ beq _08115364\n\
+ adds r0, 0x2\n\
+ cmp r1, r0\n\
+ bne _0811536C\n\
+ ldrb r0, [r5, 0x2]\n\
+ movs r1, 0x1\n\
+ b _08115368\n\
+ .align 2, 0\n\
+ _08115348: .4byte gPlttBufferUnfaded\n\
+ _0811534C: .4byte gPlttBufferFaded\n\
+ _08115350: .4byte 0x0000ffff\n\
+ _08115354: .4byte 0x020190b8\n\
+ _08115358: .4byte gUnknown_083F8E34\n\
+ _0811535C: .4byte 0x02019000\n\
+ _08115360: .4byte gPlayerParty\n\
+ _08115364:\n\
+ ldrb r0, [r5, 0x2]\n\
+ movs r1, 0x2\n\
+ _08115368:\n\
+ orrs r0, r1\n\
+ strb r0, [r5, 0x2]\n\
+ _0811536C:\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x5\n\
+ bls _08115322\n\
+ bl RtcCalcLocalTime\n\
+ add sp, 0x8\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+void sub_8115384(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r1, ._35 @ gUnknown_Debug_03005FB8\n\
+ ldr r0, ._35 + 4 @ 0x2019000\n\
+ str r0, [r1]\n\
+ ldr r1, ._35 + 8 @ gMain\n\
+ ldr r2, ._35 + 12 @ 0x43c\n\
+ add r0, r1, r2\n\
+ ldrb r0, [r0]\n\
+ add r2, r1, #0\n\
+ cmp r0, #0x7\n\
+ bls ._33 @cond_branch\n\
+ b ._64\n\
+._33:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._35 + 16 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._36:\n\
+ .align 2, 0\n\
+._35:\n\
+ .word gUnknown_Debug_03005FB8\n\
+ .word 0x2019000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+ .word ._37\n\
+._37:\n\
+ .word ._38\n\
+ .word ._39\n\
+ .word ._40\n\
+ .word ._41\n\
+ .word ._42\n\
+ .word ._43\n\
+ .word ._44\n\
+ .word ._45\n\
+._38:\n\
+ mov r0, #0x0\n\
+ bl SetVBlankCallback\n\
+ bl ScanlineEffect_Stop\n\
+ bl ClearVideoCallbacks\n\
+ bl sub_80F9368\n\
+ ldr r1, ._47 @ 0x400000c\n\
+ ldr r3, ._47 + 4 @ 0x4686\n\
+ add r0, r3, #0\n\
+ strh r0, [r1]\n\
+ sub r1, r1, #0x2\n\
+ ldr r2, ._47 + 8 @ 0x4401\n\
+ add r0, r2, #0\n\
+ strh r0, [r1]\n\
+ add r1, r1, #0x46\n\
+ mov r3, #0x90\n\
+ lsl r3, r3, #0x6\n\
+ add r0, r3, #0\n\
+ strh r0, [r1]\n\
+ add r1, r1, #0x2\n\
+ ldr r2, ._47 + 12 @ 0x60a\n\
+ add r0, r2, #0\n\
+ strh r0, [r1]\n\
+ ldr r0, ._47 + 16 @ gUnknown_08E8096C\n\
+ mov r1, #0xc0\n\
+ lsl r1, r1, #0x13\n\
+ bl LZ77UnCompVram\n\
+ ldr r0, ._47 + 20 @ gRouletteWheelTiles\n\
+ ldr r1, ._47 + 24 @ 0x6004000\n\
+ bl LZ77UnCompVram\n\
+ ldr r1, ._47 + 28 @ gMain\n\
+ ldr r3, ._47 + 32 @ 0x43c\n\
+ add r1, r1, r3\n\
+ b ._61\n\
+._48:\n\
+ .align 2, 0\n\
+._47:\n\
+ .word 0x400000c\n\
+ .word 0x4686\n\
+ .word 0x4401\n\
+ .word 0x60a\n\
+ .word gUnknown_08E8096C\n\
+ .word gRouletteWheelTiles\n\
+ .word 0x6004000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._39:\n\
+ bl ResetPaletteFade\n\
+ bl ResetSpriteData\n\
+ bl ResetTasks\n\
+ ldr r1, ._50 @ gMain\n\
+ ldr r0, ._50 + 4 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._61\n\
+._51:\n\
+ .align 2, 0\n\
+._50:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._40:\n\
+ ldr r0, ._53 @ gWindowTemplate_81E6C3C\n\
+ bl Text_LoadWindowTemplate\n\
+ ldr r0, ._53 + 4 @ gWindowTemplate_81E6CE4\n\
+ bl InitMenuWindow\n\
+ ldr r0, ._53 + 8 @ gUnknown_083F86BC\n\
+ mov r2, #0xe0\n\
+ lsl r2, r2, #0x1\n\
+ mov r1, #0x0\n\
+ bl LoadPalette\n\
+ ldr r1, ._53 + 12 @ gMain\n\
+ ldr r2, ._53 + 16 @ 0x43c\n\
+ add r1, r1, r2\n\
+ b ._61\n\
+._54:\n\
+ .align 2, 0\n\
+._53:\n\
+ .word gWindowTemplate_81E6C3C\n\
+ .word gWindowTemplate_81E6CE4\n\
+ .word gUnknown_083F86BC\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._41:\n\
+ bl sub_8115238\n\
+ bl ClearBGTilemapBuffers\n\
+ ldr r0, ._56 @ gUnknown_083F88BC\n\
+ ldr r1, ._56 + 4 @ 0x2018800\n\
+ bl LZ77UnCompWram\n\
+ ldr r0, ._56 + 8 @ gUnknown_083F8A60\n\
+ ldr r1, ._56 + 12 @ 0x6003000\n\
+ bl LZ77UnCompVram\n\
+ ldr r1, ._56 + 16 @ gMain\n\
+ ldr r3, ._56 + 20 @ 0x43c\n\
+ add r1, r1, r3\n\
+ b ._61\n\
+._57:\n\
+ .align 2, 0\n\
+._56:\n\
+ .word gUnknown_083F88BC\n\
+ .word 0x2018800\n\
+ .word gUnknown_083F8A60\n\
+ .word 0x6003000\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._42:\n\
+ mov r0, #0x0\n\
+ bl sub_8117838\n\
+ bl sub_811857C\n\
+ bl sub_81184D8\n\
+ bl sub_8117F2C\n\
+ bl sub_8117900\n\
+ bl sub_8117BBC\n\
+ bl sub_8117DF4\n\
+ ldr r1, ._59 @ gMain\n\
+ ldr r0, ._59 + 4 @ 0x43c\n\
+ add r1, r1, r0\n\
+ b ._61\n\
+._60:\n\
+ .align 2, 0\n\
+._59:\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._43:\n\
+ bl AnimateSprites\n\
+ bl BuildOamBuffer\n\
+ ldr r0, ._62 @ gSaveBlock1\n\
+ ldr r1, ._62 + 4 @ 0x494\n\
+ add r0, r0, r1\n\
+ ldrh r0, [r0]\n\
+ bl sub_81180F4\n\
+ mov r0, #0x6\n\
+ bl sub_81182F8\n\
+ mov r0, #0x0\n\
+ bl sub_811829C\n\
+ mov r0, #0x0\n\
+ bl sub_8117158\n\
+ mov r0, #0x0\n\
+ mov r1, #0xe\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ ldr r0, ._62 + 8 @ gUnknown_081C4157\n\
+ mov r1, #0x1\n\
+ mov r2, #0xf\n\
+ bl Menu_PrintText\n\
+ ldr r1, ._62 + 12 @ gSpriteCoordOffsetX\n\
+ mov r2, #0x3c\n\
+ neg r2, r2\n\
+ add r0, r2, #0\n\
+ strh r0, [r1]\n\
+ ldr r1, ._62 + 16 @ gSpriteCoordOffsetY\n\
+ mov r0, #0x0\n\
+ strh r0, [r1]\n\
+ ldr r1, ._62 + 20 @ gMain\n\
+ ldr r3, ._62 + 24 @ 0x43c\n\
+ add r1, r1, r3\n\
+ b ._61\n\
+._63:\n\
+ .align 2, 0\n\
+._62:\n\
+ .word gSaveBlock1\n\
+ .word 0x494\n\
+ .word gUnknown_081C4157\n\
+ .word gSpriteCoordOffsetX\n\
+ .word gSpriteCoordOffsetY\n\
+ .word gMain\n\
+ .word 0x43c\n\
+._44:\n\
+ mov r1, #0x80\n\
+ lsl r1, r1, #0x13\n\
+ ldr r3, ._65 @ 0x1741\n\
+ add r0, r3, #0\n\
+ strh r0, [r1]\n\
+ ldr r0, ._65 + 4 @ 0x43c\n\
+ add r1, r2, r0\n\
+._61:\n\
+ ldrb r0, [r1]\n\
+ add r0, r0, #0x1\n\
+ strb r0, [r1]\n\
+ b ._64\n\
+._66:\n\
+ .align 2, 0\n\
+._65:\n\
+ .word 0x1741\n\
+ .word 0x43c\n\
+._45:\n\
+ ldr r3, ._67 @ 0x4000208\n\
+ ldrh r2, [r3]\n\
+ mov r0, #0x0\n\
+ strh r0, [r3]\n\
+ ldr r4, ._67 + 4 @ 0x4000200\n\
+ ldrh r0, [r4]\n\
+ mov r1, #0x1\n\
+ orr r0, r0, r1\n\
+ strh r0, [r4]\n\
+ strh r2, [r3]\n\
+ ldr r2, ._67 + 8 @ 0x4000004\n\
+ ldrh r0, [r2]\n\
+ mov r1, #0x8\n\
+ orr r0, r0, r1\n\
+ strh r0, [r2]\n\
+ ldr r0, ._67 + 12 @ sub_8115124\n\
+ bl SetVBlankCallback\n\
+ mov r0, #0x1\n\
+ str r0, [sp]\n\
+ mov r0, #0xff\n\
+ mov r1, #0x0\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginHardwarePaletteFade\n\
+ ldr r0, ._67 + 16 @ sub_81156BC\n\
+ mov r1, #0x0\n\
+ bl CreateTask\n\
+ ldr r4, ._67 + 20 @ 0x2019000\n\
+ add r1, r4, #0\n\
+ add r1, r1, #0xa4\n\
+ strb r0, [r1]\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r2, ._67 + 24 @ gTasks\n\
+ lsl r1, r0, #0x2\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r2\n\
+ mov r0, #0x6\n\
+ strh r0, [r1, #0x14]\n\
+ ldr r0, ._67 + 28 @ gSaveBlock1\n\
+ ldr r2, ._67 + 32 @ 0x494\n\
+ add r0, r0, r2\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r1, #0x22]\n\
+ ldr r0, ._67 + 36 @ sub_8115634\n\
+ mov r1, #0x1\n\
+ bl CreateTask\n\
+ add r4, r4, #0xa5\n\
+ strb r0, [r4]\n\
+ ldr r0, ._67 + 40 @ sub_81150FC\n\
+ bl SetMainCallback2\n\
+._64:\n\
+ add sp, sp, #0x4\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._68:\n\
+ .align 2, 0\n\
+._67:\n\
+ .word 0x4000208\n\
+ .word 0x4000200\n\
+ .word 0x4000004\n\
+ .word sub_8115124+1\n\
+ .word sub_81156BC+1\n\
+ .word 0x2019000\n\
+ .word gTasks\n\
+ .word gSaveBlock1\n\
+ .word 0x494\n\
+ .word sub_8115634+1\n\
+ .word sub_81150FC+1");
+}
+#else
+void sub_8115384(void)
+{
+ u32 temp_IME;
+ u8 taskid;
+ switch (gMain.state)
+ {
+ case 0x0:
+ SetVBlankCallback(NULL);
+ ScanlineEffect_Stop();
+ ClearVideoCallbacks();
+ sub_80F9368();
+ REG_BG2CNT = 0x4686;
+ REG_BG1CNT = 0x4401;
+ REG_BLDCNT = 0x2400;
+ REG_BLDALPHA = 0x060A;
+ LZ77UnCompVram(&gUnknown_08E8096C, (void *)VRAM);
+ LZ77UnCompVram(&gRouletteWheelTiles, (void *)(VRAM + 0x4000));
+ gMain.state++;
+ break;
+ case 0x1:
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ gMain.state++;
+ break;
+ case 0x2:
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
+ LoadPalette(&gUnknown_083F86BC, 0x0, 0x1C0);
+ gMain.state++;
+ break;
+ case 0x3:
+ sub_8115238();
+ ClearBGTilemapBuffers();
+ LZ77UnCompWram(&gUnknown_083F88BC, (void *)(ewram18800));
+ LZ77UnCompVram(&gUnknown_083F8A60, (void *)(VRAM + 0x3000));
+ gMain.state++;
+ break;
+ case 0x4:
+ sub_8117838(0x0);
+ sub_811857C();
+ sub_81184D8();
+ sub_8117F2C();
+ sub_8117900();
+ sub_8117BBC();
+ sub_8117DF4();
+ gMain.state++;
+ break;
+ case 0x5:
+ AnimateSprites();
+ BuildOamBuffer();
+ sub_81180F4(gSaveBlock1.coins);
+ sub_81182F8(0x6);
+ sub_811829C(0x0);
+ sub_8117158(0x0);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C4157[0], 0x1, 0xF);
+ gSpriteCoordOffsetX = -0x3C;
+ gSpriteCoordOffsetY = 0x0;
+ gMain.state++;
+ break;
+ case 0x6:
+ REG_DISPCNT = 0x1741;
+ gMain.state++;
+ break;
+ case 0x7:
+ temp_IME = REG_IME;
+ REG_IME = 0x0; //disable interrupts
+ REG_IE |= 0x1; //enable VBlank interrupt
+ REG_IME = temp_IME; //reenable interrupts
+ REG_DISPSTAT |= 0x8;
+ SetVBlankCallback(&sub_8115124);
+ BeginHardwarePaletteFade(0xFF, 0x0, 0x10, 0x0 , 0x1);
+ taskid = eRoulette->varA4 = CreateTask(&sub_81156BC, 0x0);
+ gTasks[taskid].data[0x6] = 0x6;
+ gTasks[taskid].data[0xD] = gSaveBlock1.coins;
+ eRoulette->varA5 = CreateTask(&sub_8115634, 0x1);
+ SetMainCallback2(&sub_81150FC);
+ break;
+ }
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+void sub_8115634(u8 unused)
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ ldr r0, ._75 @ 0x2019000\n\
+ add r3, r0, #0\n\
+ add r3, r3, #0x21\n\
+ ldrb r1, [r3]\n\
+ add r2, r1, #1\n\
+ strb r2, [r3]\n\
+ add r2, r0, #0\n\
+ add r2, r2, #0x23\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ add r6, r0, #0\n\
+ ldrb r2, [r2]\n\
+ cmp r1, r2\n\
+ bne ._70 @cond_branch\n\
+ mov r0, #0x0\n\
+ strb r0, [r3]\n\
+ add r2, r6, #0\n\
+ add r2, r2, #0x22\n\
+ ldrb r1, [r2]\n\
+ ldrh r0, [r6, #0x24]\n\
+ sub r0, r0, r1\n\
+ strh r0, [r6, #0x24]\n\
+ lsl r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bge ._70 @cond_branch\n\
+ ldrb r1, [r2]\n\
+ mov r2, #0xb4\n\
+ lsl r2, r2, #0x1\n\
+ add r0, r2, #0\n\
+ sub r0, r0, r1\n\
+ strh r0, [r6, #0x24]\n\
+._70:\n\
+ add r4, r6, #0\n\
+ ldrh r0, [r4, #0x24]\n\
+ bl Sin2\n\
+ lsl r0, r0, #0x10\n\
+ lsr r5, r0, #0x10\n\
+ ldrh r0, [r4, #0x24]\n\
+ bl Cos2\n\
+ lsl r0, r0, #0x10\n\
+ lsr r1, r0, #0x10\n\
+ lsl r0, r5, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bge ._71 @cond_branch\n\
+ add r0, r0, #0xf\n\
+._71:\n\
+ lsl r0, r0, #0xc\n\
+ lsr r5, r0, #0x10\n\
+ lsl r0, r1, #0x10\n\
+ asr r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bge ._72 @cond_branch\n\
+ add r0, r0, #0xf\n\
+._72:\n\
+ asr r0, r0, #0x4\n\
+ strh r0, [r6, #0x32]\n\
+ strh r0, [r6, #0x2c]\n\
+ strh r5, [r6, #0x2e]\n\
+ lsl r0, r5, #0x10\n\
+ asr r0, r0, #0x10\n\
+ neg r0, r0\n\
+ strh r0, [r6, #0x30]\n\
+ ldr r0, ._75 + 4 @ unk_203955C\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._74 @cond_branch\n\
+ ldr r0, ._75 + 8 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._74 @cond_branch\n\
+ ldr r2, ._75 + 12 @ gTasks\n\
+ add r0, r6, #0\n\
+ add r0, r0, #0xa4\n\
+ ldrb r1, [r0]\n\
+ lsl r0, r1, #0x2\n\
+ add r0, r0, r1\n\
+ lsl r0, r0, #0x3\n\
+ add r0, r0, r2\n\
+ ldr r1, ._75 + 16 @ sub_81157AC\n\
+ str r1, [r0]\n\
+ ldr r0, ._75 + 20 @ gMPlay_SE1\n\
+ bl m4aMPlayStop\n\
+ ldr r0, ._75 + 24 @ gMPlay_SE2\n\
+ bl m4aMPlayStop\n\
+ ldr r0, ._75 + 28 @ gMPlay_SE3\n\
+ bl m4aMPlayStop\n\
+._74:\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._76:\n\
+ .align 2, 0\n\
+._75:\n\
+ .word 0x2019000\n\
+ .word unk_203955C\n\
+ .word gMain\n\
+ .word gTasks\n\
+ .word sub_81157AC+1\n\
+ .word gMPlay_SE1\n\
+ .word gMPlay_SE2\n\
+ .word gMPlay_SE3");
+}
+#else
+void sub_8115634(u8 unused)
+{
+ s16 sin;
+ s16 cos;
+ s32 cos32;
+ if (eRoulette->var21++ == eRoulette->var23)
+ {
+ eRoulette->var21 = 0x0;
+ if ((eRoulette->var24 -= eRoulette->var22) < 0)
+ eRoulette->var24 = 0x168 - eRoulette->var22;
+ }
+ sin = Sin2(eRoulette->var24);
+ cos = Cos2(eRoulette->var24);
+ sin = sin / 16;
+ cos32 = cos / 16;
+ eRoulette->var2C.d = cos32;
+ eRoulette->var2C.a = cos32;
+ eRoulette->var2C.b = sin;
+ eRoulette->var2C.c = -sin;
+}
+#endif
+
+void sub_81156BC(u8 taskid)
+{
+ if (UpdatePaletteFade() == 0)
+ {
+ REG_BLDCNT |= 0x2400;
+ REG_BLDALPHA = 0x0808;
+ gTasks[taskid].data[0x6] = 0;
+ sub_8116CAC(taskid);
+ sub_8116CF8();
+ sub_81185E8();
+ sub_8117158(0);
+ sub_81182F8(0x6);
+ sub_8116C34(taskid, &sub_81159BC, 0xFFFF, 0x3);
+ }
+}
+
+void sub_8115734(u8 taskid)
+{
+ DisplayYesNoMenu(0x14, 0x8, 0x1);
+ sub_814AAF8(0x2D9E);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C41E3, 0x1, 0xF);
+ DoYesNoFuncWithChoice(taskid, &gUnknown_083F8EBC);
+}
+
+void sub_811577C(u8 taskid)
+{
+ Menu_EraseWindowRect(0x14, 0x8, 0x1A, 0xD);
+ gTasks[taskid].func = &sub_81159BC;
+}
+
+void sub_81157AC(u8 taskid)
+{
+ DestroyTask(eRoulette->varA5);
+ sub_8116AB0(taskid);
+}
+
+void sub_81157D0(u8 r0)
+{
+ u8 temp0, temp1;
+ switch (r0)
+ {
+ case 0x0:
+ sub_8124DDC(&gBGTilemapBuffers[2][0], 0x0, 0xE, 0x7, 0x10, 0xD);
+ break;
+ case 0x1:
+ case 0x2:
+ case 0x3:
+ case 0x4:
+ temp0 = (r0 * 3 + 0xE);
+ sub_8124DDC(&gBGTilemapBuffers[2][0], 0x0, 0xE, 0x7, 0x10, 0xD);
+ sub_8124E2C(&gBGTilemapBuffers[2][0], ewram18a32, temp0, 0x7, 0x3, 0xD);
+ break;
+ case 0x5:
+ case 0xA:
+ case 0xF:
+ temp1 = ((r0 - 1) / 5 * 3 + 0xA);
+ sub_8124DDC(&gBGTilemapBuffers[2][0], 0x0, 0xE, 0x7, 0x10, 0xD);
+ sub_8124E2C(&gBGTilemapBuffers[2][0], ewram18a80, 0xE, temp1, 0x10, 0x3);
+ break;
+ default:
+ temp0 = ((r0 % 5) * 3 + 0xE);
+ temp1 = ((r0 - 1) / 5 * 3 + 0x7);
+ sub_8124DDC(&gBGTilemapBuffers[2][0], 0x0, 0xE, 0x7, 0x10, 0xD);
+ sub_8124E2C(&gBGTilemapBuffers[2][0], ewram18a20, temp0, temp1, 0x3, 0x3);
+ }
+}
+
+void sub_8115928(u8 taskid, u8 r1)
+{
+ if (!r1)
+ sub_811829C(gTasks[taskid].data[0x4]);
+ else
+ sub_811829C(eRoulette->var1B[eRoulette->var1A_0]);
+ sub_81157D0(gTasks[taskid].data[0x4]);
+}
+
+void sub_811597C(u8 taskid)
+{
+ eRoulette->var28 = 0x1;
+ sub_81157D0(gTasks[taskid].data[0x4]);
+ eRoulette->var23 = 0x2;
+ eRoulette->var21 = 0x0;
+ gTasks[taskid].func = &sub_8115E14;
+}
+
+void sub_81159BC(u8 taskid)
+{
+ s16 i;
+ if(eRoulette->var08 & 0x20)
+ {
+ for (i = 0xB; (i < 0xE); i++)
+ if ((eRoulette->var08 & gUnknown_083F8C00[i].var08) == 0)
+ break;
+ }
+ else
+ {
+ for (i = 0x6; (i < 0xA); i++)
+ if ((eRoulette->var08 & gUnknown_083F8C00[i].var08) == 0)
+ break;
+ }
+ gTasks[taskid].data[0x4] = i;
+ sub_8116CAC(taskid);
+ sub_8117158(gTasks[taskid].data[0x4]);
+ sub_811829C(gTasks[taskid].data[0x4]);
+ sub_8116EF8(gTasks[taskid].data[0x4]);
+ gTasks[taskid].data[0x1] = 0x0;
+ gTasks[taskid].func = &sub_811597C;
+}
+
+u8 sub_8115A94(s16 *r0, u8 r1)
+{
+ s8 temp1 = 0;
+ s8 temp = 0;
+ s8 arr[0x4];
+ s8 t;
+ memcpy(&arr, gUnknown_083F8ECA, 0x4);
+ t = (u8)*r0;
+ switch (r1)
+ {
+ case 0x0:
+ case 0x1:
+ temp1 = (*r0 % 5);
+ temp = temp1 + 0xF;
+ if (temp1 == 0)
+ temp1 = 0x5;
+ break;
+ case 0x2:
+ case 0x3:
+ temp1 = (s16)(*r0 / 5) * 5;
+ temp = temp1 + 0x4;
+ if (temp1 == 0)
+ temp1 = 0x1;
+ break;
+ }
+ *r0 += arr[r1];
+ if (*r0 < temp1)
+ *r0 = temp;
+ if (*r0 > temp)
+ *r0 = temp1;
+ if (*r0 != t)
+ return TRUE;
+ return FALSE;
+}
+
+void sub_8115B58(u8 r0)
+{
+ u8 z = 0x0;
+ bool8 var0 = FALSE;
+ if (!(gMain.newKeys & DPAD_UP) || ((var0 = TRUE), sub_8115A94(&gTasks[r0].data[0x4], 0x0)))
+ if (!(gMain.newKeys & DPAD_DOWN) || ((var0 = TRUE), sub_8115A94(&gTasks[r0].data[0x4], 0x1)))
+ if (!(gMain.newKeys & DPAD_LEFT) || ((var0 = TRUE), sub_8115A94(&gTasks[r0].data[0x4], 0x2)))
+ if (!(gMain.newKeys & DPAD_RIGHT) || ((var0 = TRUE), sub_8115A94(&gTasks[r0].data[0x4], 0x3)))
+ if (var0)
+ {
+ u8 i;
+ sub_8117158(gTasks[r0].data[0x4]);
+ sub_8115928(r0, FALSE);
+ gTasks[r0].data[0x1] = z;
+ PlaySE(SE_SELECT);
+ sub_8124D3C((&eRoulette->varB8), 0xFFFF);
+ (&eRoulette->varB8)->var04[0xF].var00_7 = 0x0;
+ (&eRoulette->varB8)->var04[0xE].var00_7 = 0x0;
+ (&eRoulette->varB8)->var04[0xD].var00_7 = 0x0;
+ sub_8116EF8(gTasks[r0].data[0x4]);
+ for (i = 0; i < 0x4; i++)
+ {
+ gSprites[eRoulette->var3C[i + 0x29]].oam.tileNum =
+ gSprites[eRoulette->var3C[i + 0x29]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[i + 0x29]].anims)->type;
+ }
+ if ((u16)(gTasks[r0].data[0x4] - 1) < 0x4 && !(eRoulette->var08 & gUnknown_083F8C00[gTasks[r0].data[0x4]].var08) )
+ {
+ z = gTasks[r0].data[0x4] - 1;
+ gSprites[eRoulette->var3C[z + 0x29]].oam.tileNum =
+ gSprites[eRoulette->var3C[z + 0x29]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[z + 0x29]].anims + 1)->type;
+ }
+ }
+}
+
+void sub_8115D58(u8 r0)
+{
+ eRoulette->var28 = 0xFF;
+ if (eRoulette->var19 == 1)
+ eRoulette->var23 = 1;
+ else
+ eRoulette->var23 = 0;
+ eRoulette->var21 = 0;
+ gTasks[r0].data[0x1] = 0x20;
+ gTasks[r0].func = &sub_8115ECC;
+}
+
+void sub_8115DA0(u8 taskid)
+{
+ eRoulette->var1B[eRoulette->var1A_0] = gTasks[taskid].data[0x4];
+ gTasks[taskid].data[0x2] = sub_8117380(eRoulette->var1B[eRoulette->var1A_0]);
+ sub_811829C(eRoulette->var1B[eRoulette->var1A_0]);
+ if ((gTasks[taskid].data[0xD] -= eRoulette->var19) < 0)
+ gTasks[taskid].data[0xD] = 0;
+ sub_81180F4(gTasks[taskid].data[0xD]);
+ gTasks[taskid].func = &sub_8115D58;
+}
+
+void sub_8115E14(u8 taskid)
+{
+ sub_8115B58(taskid);
+ switch (gTasks[taskid].data[0x1])
+ {
+ case 0x0:
+ sub_81157D0(gTasks[taskid].data[0x4]);
+ gTasks[taskid].data[0x1]+= 1;
+ break;
+ case 0x1E:
+ sub_81157D0(0);
+ gTasks[taskid].data[0x1]+= 1;
+ break;
+ case 0x3B:
+ gTasks[taskid].data[0x1] = 0;
+ break;
+ default:
+ gTasks[taskid].data[0x1]++;
+ }
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if ((eRoulette->var08 & gUnknown_083F8C00[gTasks[taskid].data[0x4]].var08))
+ PlaySE(SE_BOO);
+ else
+ {
+ m4aSongNumStart(SE_REGI);
+ gTasks[taskid].func = &sub_8115DA0;
+ }
+ }
+}
+
+void sub_8115ECC(u8 taskid)
+{
+ if (gTasks[taskid].data[0x1]-- > 0)
+ {
+ if (gTasks[taskid].data[0x1] > 0x2)
+ gSpriteCoordOffsetX += 0x2;
+ if ((eRoulette->var26 += 0x4) == 0x68)
+ gSprites[eRoulette->var3C[0x19]].callback = &SpriteCallbackDummy;
+ }
+ else
+ {
+ sub_8117AA8(0x1, 0xFF);
+ sub_8117C60(0x1, 0xFF);
+ gTasks[taskid].func = &sub_8116100;
+ gTasks[taskid].data[0x1] = 0;
+ }
+}
+
+u8 sub_8115F58(u16 r0, u16 r1)
+{
+ u8 timeh;
+ switch (eRoulette->var02)
+ {
+ case 0x1: // SHROOMISH
+ case 0x2: // TAILLOW
+ // one of the two is in party
+ timeh = gLocalTime.hours - 0x4;
+ if (!(timeh > 0x5))
+ {
+ if (!(r0 < 0xC || (r1 & 0x1)))
+ return 0x1;
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 2;
+ }
+ }
+ else if (!(r1 & 0x3))
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 2;
+ }
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02;
+ }
+ break;
+ case 0x3:
+ // both are in party
+ timeh = gLocalTime.hours - 0x4;
+ if (!(timeh > 0x6))
+ {
+ if (r0 < 0x6 || (r1 & 0x1))
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 2;
+ }
+ else
+ {
+ return 0x1;
+ }
+ }
+ else if ((r1 & 0x1) && !(r0 < 0x7))
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 4;
+ }
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 2;
+ }
+ break;
+ case 0:
+ default:
+ // neither is in party
+ timeh = gLocalTime.hours - 0x4;
+ if (!(timeh > 5))
+ {
+ if (!(r1 & 0x3))
+ {
+ return 0x1;
+ }
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 2;
+ }
+ }
+ else if (!(r1 & 0x3))
+ {
+ if (!(r0 < 0xD))
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02 / 2;
+ }
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02;
+ }
+ }
+ else if (r1 & (0x80 << 8))
+ {
+ if (!(r0 < 0xD))
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var02;
+ }
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var01;
+ }
+ }
+ else
+ {
+ struct StructgUnknown_083F8DF4 *p = &gUnknown_083F8DF4[0];
+ return p[eRoulette->var04_0].var01 * 2;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+void sub_8116100(u8 taskid)
+{
+ u8 randf;
+ s8 randfinal;
+ s8 r5;
+ u16 g;
+ u16 rand;
+ u16 randmod;
+ u16 angles[0x4]; // angles in 90 degree steps
+ u8 zero = 0x0;
+ memcpy(angles, &gUnknown_083F8ECE, 0x8);
+ rand = Random();
+ randmod = rand % 0x64;
+ eRoulette->var7C = gTasks[taskid].data[0x6];
+ eRoulette->var7F = zero;
+ eRoulette->var7E = zero;
+ eRoulette->var7D = zero;
+ randf = sub_8115F58(gTasks[taskid].data[0x8], rand);
+ randfinal = (rand % randf) - (randf / 2);
+ if (gLocalTime.hours < 0xD)
+ r5 = 0x0;
+ else
+ r5 = 0x1;
+ if (randmod < 0x50)
+ r5 *= 2;
+ else
+ r5 = (1 - r5) * 2;
+ g = (&gUnknown_083F8DF4[eRoulette->var04_0])->var1A;
+ eRoulette->var80 = (g + randfinal);
+ //
+ g = ((float)(u16)(g + randfinal)) / 5.0f;
+ eRoulette->var82 = g * 3;
+ eRoulette->var84 = g;
+ eRoulette->var86 = g;
+ //
+ eRoulette->var88 = (float)(angles[(rand & 0x1) + r5]);
+ eRoulette->var8C = (float)((&gUnknown_083F8DF4[eRoulette->var04_0])->var18);
+ eRoulette->var90 = ((eRoulette->var8C * 0.5f) - eRoulette->var8C) / (float)(u16)(g * 3);
+ eRoulette->var94 = 68.0f;
+ eRoulette->var9C = 0.0f;
+ eRoulette->var98 = -(8.0f / (float)(u16)(g * 3));
+ eRoulette->varA0 = 36.0f;
+ gTasks[taskid].func = &sub_8116308;
+}
+#else
+__attribute__((naked))
+void sub_8116100(u8 taskid)
+{
+asm(".syntax unified\n\
+push {r4-r7,lr}\n\
+mov r7, r10\n\
+mov r6, r9\n\
+mov r5, r8\n\
+push {r5-r7}\n\
+sub sp, 0x8\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+mov r9, r0\n\
+movs r4, 0\n\
+ldr r1, _08116188 @ =gUnknown_083F8ECE\n\
+mov r0, sp\n\
+movs r2, 0x8\n\
+bl memcpy\n\
+bl Random\n\
+lsls r0, 16\n\
+lsrs r7, r0, 16\n\
+adds r0, r7, 0\n\
+movs r1, 0x64\n\
+bl __umodsi3\n\
+lsls r0, 16\n\
+lsrs r6, r0, 16\n\
+ldr r3, _0811618C @ =0x02019000\n\
+ldr r1, _08116190 @ =gTasks\n\
+mov r2, r9\n\
+lsls r0, r2, 2\n\
+add r0, r9\n\
+lsls r0, 3\n\
+adds r0, r1\n\
+ldrh r2, [r0, 0x14]\n\
+adds r1, r3, 0\n\
+adds r1, 0x7C\n\
+strb r2, [r1]\n\
+adds r1, 0x3\n\
+strb r4, [r1]\n\
+subs r1, 0x1\n\
+strb r4, [r1]\n\
+subs r1, 0x1\n\
+strb r4, [r1]\n\
+ldrh r0, [r0, 0x18]\n\
+adds r1, r7, 0\n\
+bl sub_8115F58\n\
+adds r4, r0, 0\n\
+lsls r4, 24\n\
+lsrs r1, r4, 24\n\
+adds r0, r7, 0\n\
+bl __modsi3\n\
+lsrs r4, 25\n\
+subs r0, r4\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r0, _08116194 @ =gLocalTime\n\
+ldrb r0, [r0, 0x2]\n\
+lsls r0, 24\n\
+asrs r0, 24\n\
+movs r5, 0x1\n\
+cmp r0, 0xC\n\
+bgt _08116180\n\
+movs r5, 0\n\
+_08116180:\n\
+cmp r6, 0x4F\n\
+bhi _08116198\n\
+lsls r0, r5, 25\n\
+b _081161A2\n\
+.align 2, 0\n\
+_08116188: .4byte gUnknown_083F8ECE\n\
+_0811618C: .4byte 0x02019000\n\
+_08116190: .4byte gTasks\n\
+_08116194: .4byte gLocalTime\n\
+_08116198:\n\
+lsls r1, r5, 24\n\
+asrs r1, 24\n\
+movs r0, 0x1\n\
+subs r0, r1\n\
+lsls r0, 25\n\
+_081161A2:\n\
+lsrs r5, r0, 24\n\
+ldr r6, _081162D8 @ =0x02019000\n\
+ldrb r0, [r6, 0x4]\n\
+lsls r0, 30\n\
+mov r10, r0\n\
+lsrs r0, 25\n\
+ldr r1, _081162DC @ =gUnknown_083F8DF4\n\
+adds r0, r1\n\
+lsls r4, 24\n\
+asrs r4, 24\n\
+ldrh r0, [r0, 0x1A]\n\
+adds r4, r0\n\
+adds r0, r6, 0\n\
+adds r0, 0x80\n\
+strh r4, [r0]\n\
+lsls r4, 16\n\
+asrs r4, 16\n\
+adds r0, r4, 0\n\
+bl __floatsisf\n\
+cmp r4, 0\n\
+bge _081161D4\n\
+ldr r1, _081162E0 @ =0x47800000\n\
+bl __addsf3\n\
+_081161D4:\n\
+ldr r1, _081162E4 @ =0x40a00000\n\
+bl __divsf3\n\
+bl __fixunssfsi\n\
+lsls r0, 16\n\
+lsrs r4, r0, 16\n\
+lsls r0, r4, 1\n\
+adds r0, r4\n\
+mov r8, r0\n\
+adds r0, r6, 0\n\
+adds r0, 0x82\n\
+mov r2, r8\n\
+strh r2, [r0]\n\
+adds r0, 0x2\n\
+strh r4, [r0]\n\
+adds r0, 0x2\n\
+strh r4, [r0]\n\
+movs r0, 0x1\n\
+ands r0, r7\n\
+lsls r1, r5, 24\n\
+asrs r1, 24\n\
+adds r0, r1\n\
+lsls r0, 1\n\
+add r0, sp\n\
+movs r1, 0\n\
+ldrsh r4, [r0, r1]\n\
+adds r0, r4, 0\n\
+bl __floatsisf\n\
+cmp r4, 0\n\
+bge _0811621A\n\
+ldr r1, _081162E0 @ =0x47800000\n\
+bl __addsf3\n\
+_0811621A:\n\
+ldr r2, _081162E8 @ =0x02019088\n\
+str r0, [r2]\n\
+adds r7, r6, 0\n\
+adds r7, 0x8C\n\
+mov r1, r10\n\
+lsrs r0, r1, 25\n\
+ldr r2, _081162DC @ =gUnknown_083F8DF4\n\
+adds r0, r2\n\
+movs r1, 0x18\n\
+ldrsh r4, [r0, r1]\n\
+adds r0, r4, 0\n\
+bl __floatsisf\n\
+adds r5, r0, 0\n\
+cmp r4, 0\n\
+bge _08116242\n\
+ldr r1, _081162E0 @ =0x47800000\n\
+bl __addsf3\n\
+adds r5, r0, 0\n\
+_08116242:\n\
+str r5, [r7]\n\
+adds r7, r6, 0\n\
+adds r7, 0x90\n\
+ldr r1, _081162EC @ =0x3f000000\n\
+adds r0, r5, 0\n\
+bl __mulsf3\n\
+adds r1, r5, 0\n\
+bl __subsf3\n\
+adds r5, r0, 0\n\
+mov r2, r8\n\
+lsls r0, r2, 16\n\
+asrs r4, r0, 16\n\
+adds r0, r4, 0\n\
+bl __floatsisf\n\
+adds r2, r0, 0\n\
+cmp r4, 0\n\
+bge _08116272\n\
+ldr r1, _081162E0 @ =0x47800000\n\
+bl __addsf3\n\
+adds r2, r0, 0\n\
+_08116272:\n\
+adds r0, r5, 0\n\
+adds r1, r2, 0\n\
+bl __divsf3\n\
+str r0, [r7]\n\
+adds r1, r6, 0\n\
+adds r1, 0x94\n\
+ldr r0, _081162F0 @ =0x42880000\n\
+str r0, [r1]\n\
+adds r1, 0x8\n\
+ldr r0, _081162F4 @ =0x00000000\n\
+str r0, [r1]\n\
+adds r5, r6, 0\n\
+adds r5, 0x98\n\
+adds r0, r4, 0\n\
+bl __floatsisf\n\
+adds r2, r0, 0\n\
+cmp r4, 0\n\
+bge _081162A2\n\
+ldr r1, _081162E0 @ =0x47800000\n\
+bl __addsf3\n\
+adds r2, r0, 0\n\
+_081162A2:\n\
+ldr r0, _081162F8 @ =0x41000000\n\
+adds r1, r2, 0\n\
+bl __divsf3\n\
+bl __negsf2\n\
+str r0, [r5]\n\
+adds r1, r6, 0\n\
+adds r1, 0xA0\n\
+ldr r0, _081162FC @ =0x42100000\n\
+str r0, [r1]\n\
+ldr r1, _08116300 @ =gTasks\n\
+mov r2, r9\n\
+lsls r0, r2, 2\n\
+add r0, r9\n\
+lsls r0, 3\n\
+adds r0, r1\n\
+ldr r1, _08116304 @ =sub_8116308\n\
+str r1, [r0]\n\
+add sp, 0x8\n\
+pop {r3-r5}\n\
+mov r8, r3\n\
+mov r9, r4\n\
+mov r10, r5\n\
+pop {r4-r7}\n\
+pop {r0}\n\
+bx r0\n\
+.align 2, 0\n\
+_081162D8: .4byte 0x02019000\n\
+_081162DC: .4byte gUnknown_083F8DF4\n\
+_081162E0: .4byte 0x47800000\n\
+_081162E4: .4byte 0x40a00000\n\
+_081162E8: .4byte 0x02019088\n\
+_081162EC: .4byte 0x3f000000\n\
+_081162F0: .4byte 0x42880000\n\
+_081162F4: .4byte 0x00000000\n\
+_081162F8: .4byte 0x41000000\n\
+_081162FC: .4byte 0x42100000\n\
+_08116300: .4byte gTasks\n\
+_08116304: .4byte sub_8116308\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_8116308(u8 taskid)
+{
+ u8 index;
+ eRoulette->var03_7 = 1;
+ index = eRoulette->var3C[eRoulette->var7C];
+ eRoulette->var38 = &gSprites[index];
+ (&gSprites[index])->callback = &sub_81191F4;
+ gTasks[taskid].data[0x6]++;
+ gTasks[taskid].data[0x8]++;
+ sub_81182F8(0x6 - gTasks[taskid].data[0x6]);
+ m4aSongNumStart(SE_TAMAKORO);
+ gTasks[taskid].func = &sub_811637C;
+}
+
+void sub_811637C(u8 taskid)
+{
+ if (eRoulette->var7D)
+ {
+ if (eRoulette->var03_5)
+ {
+ if (eRoulette->var03_6)
+ {
+ eRoulette->var03_6 = FALSE;
+ eRoulette->var03_5 = FALSE;
+ }
+ }
+ else
+ {
+ if (!gTasks[taskid].data[0x1])
+ {
+ u8 temp = sub_8116E5C(sub_8116D54(taskid, eRoulette->var7E), eRoulette->var1B[eRoulette->var1A_0]);
+ gTasks[taskid].data[0x5] = temp;
+ if (temp == 1)
+ sub_8124CE8((&eRoulette->varB8), 0x1000);
+ }
+ if (gTasks[taskid].data[0x1] < 0x3D)
+ {
+ if (gMain.newKeys & A_BUTTON)
+ gTasks[taskid].data[0x1] = 0x3C;
+ gTasks[taskid].data[0x1]++;
+ }
+ else
+ {
+ sub_8117158(eRoulette->var1B[eRoulette->var1A_0]);
+ sub_8117AA8(0x0, (u8)gTasks[taskid].data[0xC]);
+ sub_8117C60(0x0, (u8)gTasks[taskid].data[0x6] - 0x1);
+ gTasks[taskid].data[0x1] = 0x20;
+ gTasks[taskid].func = &sub_8116474;
+ }
+ }
+ }
+}
+
+void sub_8116474(u8 taskid)
+{
+ if (gTasks[taskid].data[0x1]-- > 0x0)
+ {
+ if(gTasks[taskid].data[0x1] > 0x2)
+ gSpriteCoordOffsetX -= 0x2;
+ if((eRoulette->var26 -= 0x4) == 0x68)
+ gSprites[eRoulette->var3C[0x19]].callback = &sub_81184CC;
+ }
+ else
+ {
+ sub_8117D68(gTasks[taskid].data[0xC]);
+ if (gTasks[taskid].data[0x5] == 1)
+ gTasks[taskid].data[0x1] = 0x79;
+ else
+ gTasks[taskid].data[0x1] = 0x3D;
+ gTasks[taskid].func = &sub_8116514;
+ }
+}
+
+void sub_8116514(u8 taskid)
+{
+ if (gTasks[taskid].data[0x1]-- > 0x1)
+ {
+ switch(gTasks[taskid].data[0x1] % 0x10)
+ {
+ case 0x8:
+ sub_8117AA8(0x0, 0xFF);
+ sub_8117C60(0x0, 0xFF);
+ break;
+ case 0x0:
+ sub_8117AA8(0x0, (u8)gTasks[taskid].data[0xC]);
+ sub_8117C60(0x0, (u8)gTasks[taskid].data[0x6] - 0x1);
+ break;
+ }
+ }
+ else
+ {
+ sub_8116C34(taskid, &sub_8116638, 0x1E, 0x0);
+ }
+}
+
+void sub_811659C(u8 taskid)
+{
+ switch(gTasks[taskid].data[0x5])
+ {
+ case 0x1:
+ case 0x2:
+ if (IsFanfareTaskInactive())
+ {
+ u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS);
+ if(wins < ++gTasks[taskid].data[0xB])
+ SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskid].data[0xB]);
+ sub_8116C34(taskid, &sub_811677C, 0xFFFF, 0x3);
+ }
+ break;
+ case 0:
+ default:
+ if (!IsSEPlaying())
+ {
+ gTasks[taskid].data[0xB] = FALSE;
+ sub_8116C34(taskid, &sub_81167F4, 0xFFFF, 0x3);
+ }
+ }
+}
+
+void sub_8116638(u8 taskid)
+{
+ switch(gTasks[taskid].data[0x5])
+ {
+ case 0x1:
+ case 0x2:
+ if (gTasks[taskid].data[0x2] == 0xC)
+ {
+ PlayFanfare(BGM_ME_B_BIG);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C41A5, 0x1, 0xF);
+ }
+ else
+ {
+ PlayFanfare(BGM_ME_B_SMALL);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C4199, 0x1, 0xF);
+ }
+ break;
+ case 0:
+ default:
+ m4aSongNumStart(SE_HAZURE);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C41AE, 0x1, 0xF);
+ }
+ gTasks[taskid].data[0x1] = 0x0;
+ gTasks[taskid].func = &sub_811659C;
+}
+
+void sub_81166E8(u8 taskid)
+{
+ s32 r0 = gTasks[taskid].data[0x7];
+ switch(r0)
+ {
+ case 0x0:
+ gTasks[taskid].data[0xD]++;
+ m4aSongNumStart(SE_PIN);
+ sub_81180F4(gTasks[taskid].data[0xD]);
+ if (gTasks[taskid].data[0xD] > 0x270E)
+ {
+ gTasks[taskid].data[0x1] = r0;
+ }
+ else
+ {
+ gTasks[taskid].data[0x1]--;
+ gTasks[taskid].data[0x7]++;
+ }
+ break;
+ case 0x3:
+ m4aSongNumStop(SE_PIN);
+ gTasks[taskid].data[0x7] = 0x0;
+ break;
+ default:
+ gTasks[taskid].data[0x7]++;
+ }
+ if (gTasks[taskid].data[0x1] == 0x0)
+ sub_8116C34(taskid, &sub_81167F4, 0xFFFF, 0x3);
+}
+
+void sub_811677C(u8 taskid)
+{
+ ConvertIntToDecimalStringN((u8 *)&gStringVar1, (eRoulette->var19 * gTasks[taskid].data[0x2]), STR_CONV_MODE_LEFT_ALIGN, 0x2);
+ StringExpandPlaceholders((u8 *)&gStringVar4, &gUnknown_081C41BD);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText((u8 *)&gStringVar4, 0x1, 0xF);
+ gTasks[taskid].data[0x1] = (eRoulette->var19 * gTasks[taskid].data[0x2]);
+ gTasks[taskid].data[0x7] = 0x0;
+ gTasks[taskid].func = &sub_81166E8;
+}
+
+void sub_81167F4(u8 taskid)
+{
+ sub_8124D3C((&eRoulette->varB8), 0xFFFF);
+ (&eRoulette->varB8)->var04[0xF].var00_7 = 0x0;
+ (&eRoulette->varB8)->var04[0xE].var00_7 = 0x0;
+ (&eRoulette->varB8)->var04[0xD].var00_7 = 0x0;
+ gSprites[eRoulette->var3C[0x7 + gUnknown_083F8C00[gTasks[taskid].data[0xC]].var00]].invisible = TRUE;
+ gTasks[taskid].func = &sub_8116880;
+}
+
+void sub_8116880(u8 taskid)
+{
+ u8 i = 0;
+ gTasks[taskid].data[0x4] = i;
+ eRoulette->var1B[eRoulette->var1A_0] = 0x0;
+ sub_8117158(0x0);
+ gSprites[eRoulette->var3C[0x30]].invisible = TRUE;
+ for (i = 0; i < 0x4; i++)
+ {
+ gSprites[eRoulette->var3C[i + 0x29]].oam.tileNum =
+ gSprites[eRoulette->var3C[i + 0x29]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[i + 0x29]].anims)->type;
+ }
+ if (!(gTasks[taskid].data[0xD] < eRoulette->var19))
+ {
+ if (gTasks[taskid].data[0x6] == 0x6)
+ {
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C41F1, 0x1, 0xF);
+ sub_8116C34(taskid, &dp01t_12_3_battle_menu, 0xFFFF, 0x3);
+ }
+ else if (gTasks[taskid].data[0xD] == 0x270F)
+ {
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C4231, 0x1, 0xF);
+ sub_8116C34(taskid, &sub_8115734, 0xFFFF, 0x3);
+ }
+ else
+ {
+ gTasks[taskid].func = &sub_8115734;
+ }
+ }
+ else
+ {
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C41D2, 0x1, 0xF);
+ sub_8116C34(taskid, &sub_81157AC, 0x3C, 0x3);
+ }
+}
+
+void dp01t_12_3_battle_menu(u8 taskid)
+{
+ u8 i = 0x0;
+ gTasks[taskid].data[0x6] = 0x0;
+ sub_8116CAC(taskid);
+ sub_8116CF8();
+ sub_81185E8();
+ sub_8117158(0x0);
+ sub_81182F8(0x6);
+ for (i = 0; i < 0xC; i++)
+ gSprites[eRoulette->var3C[i + 0x7]].invisible = FALSE;
+ if (gTasks[taskid].data[0xD] == 0x270F)
+ {
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C4231, 0x1, 0xF);
+ sub_8116C34(taskid, &sub_8115734, 0xFFFF, 0x3);
+ }
+ else
+ {
+ gTasks[taskid].func = &sub_8115734;
+ }
+}
+
+void sub_8116AB0(u8 taskid)
+{
+ sub_8124D3C((&eRoulette->varB8), 0xFFFF);
+ sub_8124918((&eRoulette->varB8));
+ gSaveBlock1.coins = gTasks[taskid].data[0xD];
+ if (gSaveBlock1.coins < eRoulette->var19)
+ gSpecialVar_0x8004 = TRUE;
+ else
+ gSpecialVar_0x8004 = FALSE;
+ BeginHardwarePaletteFade(0xFF, 0x0, 0x0, 0x10, 0x0);
+ gTasks[taskid].func = &sub_8116B40;
+}
+
+#if DEBUG
+__attribute__((naked))
+void sub_8116B40(u8 taskid) // end roulette ?
+{
+ asm("\
+ push {r4, r5, r6, lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r6, r0, #0x18\n\
+ bl UpdatePaletteFade\n\
+ lsl r0, r0, #0x18\n\
+ lsr r5, r0, #0x18\n\
+ cmp r5, #0\n\
+ bne ._380 @cond_branch\n\
+ mov r0, #0x0\n\
+ bl SetVBlankCallback\n\
+ ldr r0, ._381 @ 0x2019000\n\
+ mov r2, #0xbe\n\
+ lsl r2, r2, #0x1\n\
+ mov r1, #0x0\n\
+ bl memset\n\
+ ldr r1, ._381 + 4 @ gSpriteCoordOffsetX\n\
+ ldr r0, ._381 + 8 @ gSpriteCoordOffsetY\n\
+ mov r4, #0x0\n\
+ strh r5, [r0]\n\
+ strh r5, [r1]\n\
+ bl sub_80F9368\n\
+ bl FreeAllSpritePalettes\n\
+ bl ResetPaletteFade\n\
+ bl ResetSpriteData\n\
+ bl ClearBGTilemapBuffers\n\
+ ldr r0, ._381 + 12 @ 0x4000050\n\
+ strh r5, [r0]\n\
+ add r0, r0, #0x2\n\
+ strh r5, [r0]\n\
+ add r0, r0, #0x2\n\
+ strh r5, [r0]\n\
+ ldr r1, ._381 + 16 @ gFieldCallback\n\
+ ldr r0, ._381 + 20 @ sub_8080990\n\
+ str r0, [r1]\n\
+ ldr r0, ._381 + 24 @ c2_exit_to_overworld_2_switch\n\
+ bl SetMainCallback2\n\
+ add r0, r6, #0\n\
+ bl DestroyTask\n\
+ ldr r0, ._381 + 28 @ unk_203955C\n\
+ strb r4, [r0]\n\
+._380:\n\
+ pop {r4, r5, r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+._382:\n\
+ .align 2, 0\n\
+._381:\n\
+ .word 0x2019000\n\
+ .word gSpriteCoordOffsetX\n\
+ .word gSpriteCoordOffsetY\n\
+ .word 0x4000050\n\
+ .word gFieldCallback\n\
+ .word sub_8080990+1\n\
+ .word c2_exit_to_overworld_2_switch+1\n\
+ .word unk_203955C");
+}
+#else
+void sub_8116B40(u8 taskid) // end roulette ?
+{
+ if (UpdatePaletteFade() == 0)
+ {
+ SetVBlankCallback(0x0);
+ memset(eRoulette, 0x0, 0x17C);
+ gSpriteCoordOffsetX = gSpriteCoordOffsetY = 0x0;
+ sub_80F9368();
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ ResetSpriteData();
+ ClearBGTilemapBuffers();
+ REG_BLDCNT = 0x0;
+ REG_BLDALPHA = 0x0;
+ REG_BLDY = 0x0;
+ gFieldCallback = &sub_8080990;
+ SetMainCallback2(&c2_exit_to_overworld_2_switch);
+ DestroyTask(taskid);
+ }
+}
+#endif
+
+void sub_8116BC0(u8 taskid)
+{
+ if(eRoulette->varA8 == 0 || gMain.newKeys & eRoulette->varAA)
+ {
+ gTasks[taskid].func = eRoulette->varAC;
+ if (eRoulette->varAA > 0)
+ PlaySE(SE_SELECT);
+ eRoulette->varAC = NULL;
+ eRoulette->varAA = 0x0;
+ eRoulette->varA8 = 0x0;
+ }
+ if (eRoulette->varA8 != 0xFFFF)
+ eRoulette->varA8--;
+}
+
+void sub_8116C34(u8 taskid, TaskFunc r1, u16 r2, u16 r3)
+{
+ eRoulette->varB4 = gTasks[taskid].func;
+ if(r1 == NULL)
+ r1 = eRoulette->varB4;
+ eRoulette->varAC = r1;
+ eRoulette->varA8 = r2;
+ if (r2 == 0xFFFF && r3 == 0)
+ eRoulette->varAA = 0xFFFF;
+ else
+ eRoulette->varAA = r3;
+ gTasks[taskid].func = &sub_8116BC0;
+}
+
+void sub_8116CAC(u8 taskid)
+{
+ u8 i = 0;
+ eRoulette->var00 = i;
+ eRoulette->var03_0 = 0x0;
+ eRoulette->var03_5 = 0x0;
+ eRoulette->var03_6 = 0x0;
+ eRoulette->var03_7 = 0x0;
+ for (i = 0; i < 0x6; i++)
+ eRoulette->var1B[i] = 0x0;
+ eRoulette->var1A_0 = 0x0;
+ gTasks[taskid].data[0x1] = 0x0;
+}
+
+void sub_8116CF8(void)
+{
+ u8 i;
+ eRoulette->var08 = 0x0;
+ for (i = 0; i < 0x6; i++)
+ eRoulette->var0C[i] = 0x0;
+ for (i = 0; i < 0x4; i++)
+ eRoulette->var12[i] = 0x0;
+ for (i = 0; i < 0x3; i++)
+ eRoulette->var16[i] = 0x0;
+ sub_8117C60(0x1, 0xFF);
+}
+
+u8 sub_8116D54(u8 taskid, u8 r1)
+{
+ u32 t0[0x4];
+ u32 t1[0x3];
+ memcpy(t0, gUnknown_083F8ED8, 0x10);
+ memcpy(t1, gUnknown_083F8EE8, 0xC);
+ if (r1 > 0xB)
+ {
+ return 0x0;
+ }
+ else
+ {
+ u8 i;
+ u8 z;
+ eRoulette->var0C[gTasks[taskid].data[0x6] - 1] = gUnknown_083F8D90[r1].var02;
+ gTasks[taskid].data[0xC] = gUnknown_083F8D90[r1].var02;
+ eRoulette->var08 |= gUnknown_083F8D90[r1].var04;
+ for (i = 0; i < 0x4; i++)
+ {
+ if (gUnknown_083F8D90[r1].var04 & t0[i])
+ eRoulette->var12[i]++;
+ if (eRoulette->var12[i] > 0x2)
+ eRoulette->var08 |= t0[i];
+ }
+ for (z = 0; z < 0x3; z++)
+ {
+ if (gUnknown_083F8D90[r1].var04 & t1[z])
+ eRoulette->var16[z]++;
+ if (eRoulette->var16[z] > 0x3)
+ eRoulette->var08 |= t1[z];
+ }
+ return gUnknown_083F8D90[r1].var02;
+ }
+}
+
+u8 sub_8116E5C(u8 r0, u8 r1)
+{
+ u8 t = r0;
+ if (--r0 < 0x13)
+ {
+ switch(r1)
+ {
+ case 0x0:
+ return 0x3;
+ break;
+ case 0x1 ... 0x4:
+ if (t == r1 + 5 || t == r1 + 10 || t == r1 + 15)
+ return 0x1;
+ break;
+ case 0x5:
+ case 0xA:
+ case 0xF:
+ if (!(t < r1 + 1) && !(t > r1 + 4))
+ return 0x1;
+ break;
+ default:
+ if (t == r1)
+ return 0x1;
+ }
+ }
+ return 0x0;
+}
+
+#ifdef NONMATCHING // stack variable switched with a register variable
+void sub_8116EF8(u8 r0)
+{
+
+ u32 var0 = 0x0;
+ struct UnkStruct1 var1[0x3];
+ u32 var2;
+ u16 var3;
+ u32 var4;
+ u8 i;
+ switch(r0)
+ {
+ case 0x5:
+ case 0xA:
+ case 0xF:
+ for (i = (r0 + 0x1); i < (r0 + 0x5); i++)
+ if (!(eRoulette->var08 & gUnknown_083F8C00[i].var08))
+ var0 |= gUnknown_083F8C00[i].var10;
+ var0 &= 0xDFFF;
+ sub_8124CE8(&eRoulette->varB8, var0);
+ break;
+ default:
+ memcpy(var1, gUnknown_083F8E9C, 0x18);
+ if ((u8)(r0 - 0x1) < 0x4)
+ var2 = 0x3;
+ else
+ var2 = 0x1;
+ var3 = ((r0 / 0x5) - 0x1);
+ switch((u8)r0 % 0x5)
+ {
+ case 0x1:
+ var3 = gSprites[eRoulette->var3C[0x7 + 0x0]].oam.paletteNum * 0x10;
+ break;
+ case 0x2:
+ var3 = gSprites[eRoulette->var3C[0x7 + 0x1]].oam.paletteNum * 0x10;
+ break;
+ case 0x3:
+ var3 = gSprites[eRoulette->var3C[0x7 + 0x2]].oam.paletteNum * 0x10;
+ break;
+ case 0x4:
+ var3 = gSprites[eRoulette->var3C[0x7 + 0x3]].oam.paletteNum * 0x10;
+ break;
+ }
+ if (var2 == 0x1)
+ {
+ if (!(eRoulette->var08 & gUnknown_083F8C00[r0].var08))
+ {
+ var4 = (r0 / 0x5);
+ var1[var4 - 0x1].var02 += var3;
+ sub_812492C(&eRoulette->varB8, 0xD, &var1[var4 - 0x2]);
+ sub_8124CE8(&eRoulette->varB8, var0 |= gUnknown_083F8C00[r0].var10);
+ }
+ }
+ else
+ {
+ for (i = 0; i < 0x3; i++)
+ {
+ u8 var4 = i * 0x5 + r0 + 0x5;
+ if (!(eRoulette->var08 & gUnknown_083F8C00[var4].var08))
+ {
+ u8 var5 = (var4 / 0x5);
+ var1[var5 - 0x1].var02 += var3;
+ sub_812492C(&eRoulette->varB8, (u8)(0xD + i), &var1[var5 - 0x2]);
+ if (var2 == 0x3)
+ var0 = gUnknown_083F8C00[var4].var10;
+ var2--;
+ }
+ }
+ if (var2 != 0x2)
+ var0 = 0x0;
+ sub_8124CE8(&eRoulette->varB8, var0 |= gUnknown_083F8C00[r0].var10);
+ }
+ }
+}
+
+#else
+__attribute__((naked))
+void sub_8116EF8(u8 r0)
+{
+asm(".syntax unified\n\
+push {r4-r7,lr}\n\
+mov r7, r10\n\
+mov r6, r9\n\
+mov r5, r8\n\
+push {r5-r7}\n\
+sub sp, 0x20\n\
+lsls r0, 24\n\
+lsrs r6, r0, 24\n\
+movs r0, 0\n\
+str r0, [sp, 0x18]\n\
+cmp r6, 0xA\n\
+beq _08116F1E\n\
+cmp r6, 0xA\n\
+bgt _08116F1A\n\
+cmp r6, 0x5\n\
+beq _08116F1E\n\
+b _08116F7C\n\
+_08116F1A:\n\
+cmp r6, 0xF\n\
+bne _08116F7C\n\
+_08116F1E:\n\
+adds r0, r6, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+adds r0, r6, 0x5\n\
+ldr r7, _08116F70 @ =0x020190b8\n\
+cmp r4, r0\n\
+bge _08116F5E\n\
+adds r1, r7, 0\n\
+subs r1, 0xB8\n\
+ldr r3, _08116F74 @ =gUnknown_083F8C00\n\
+ldr r5, [r1, 0x8]\n\
+adds r6, r3, 0\n\
+adds r6, 0x8\n\
+adds r2, r0, 0\n\
+_08116F3A:\n\
+lsls r0, r4, 2\n\
+adds r0, r4\n\
+lsls r1, r0, 2\n\
+adds r0, r1, r6\n\
+ldr r0, [r0]\n\
+ands r0, r5\n\
+cmp r0, 0\n\
+bne _08116F54\n\
+adds r0, r1, r3\n\
+ldrh r0, [r0, 0x10]\n\
+ldr r1, [sp, 0x18]\n\
+orrs r1, r0\n\
+str r1, [sp, 0x18]\n\
+_08116F54:\n\
+adds r0, r4, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+cmp r4, r2\n\
+blt _08116F3A\n\
+_08116F5E:\n\
+ldr r0, _08116F78 @ =0x0000dfff\n\
+ldr r2, [sp, 0x18]\n\
+ands r2, r0\n\
+str r2, [sp, 0x18]\n\
+adds r0, r7, 0\n\
+adds r1, r2, 0\n\
+bl sub_8124CE8\n\
+b _0811713C\n\
+.align 2, 0\n\
+_08116F70: .4byte 0x020190b8\n\
+_08116F74: .4byte gUnknown_083F8C00\n\
+_08116F78: .4byte 0x0000dfff\n\
+_08116F7C:\n\
+mov r0, sp\n\
+ldr r1, _08116FC8 @ =gUnknown_083F8E9C\n\
+ldm r1!, {r2-r4}\n\
+stm r0!, {r2-r4}\n\
+ldm r1!, {r2-r4}\n\
+stm r0!, {r2-r4}\n\
+subs r0, r6, 0x1\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+movs r3, 0x1\n\
+mov r10, r3\n\
+cmp r0, 0x3\n\
+bhi _08116F9A\n\
+movs r4, 0x3\n\
+mov r10, r4\n\
+_08116F9A:\n\
+adds r0, r6, 0\n\
+movs r1, 0x5\n\
+bl __udivsi3\n\
+lsls r0, 24\n\
+lsrs r0, 8\n\
+ldr r1, _08116FCC @ =0xffff0000\n\
+adds r0, r1\n\
+lsrs r7, r0, 16\n\
+adds r0, r6, 0\n\
+movs r1, 0x5\n\
+bl __umodsi3\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+cmp r0, 0x2\n\
+beq _08116FF8\n\
+cmp r0, 0x2\n\
+bgt _08116FD4\n\
+cmp r0, 0x1\n\
+beq _08116FE4\n\
+ldr r4, _08116FD0 @ =0x02019000\n\
+b _0811703A\n\
+.align 2, 0\n\
+_08116FC8: .4byte gUnknown_083F8E9C\n\
+_08116FCC: .4byte 0xffff0000\n\
+_08116FD0: .4byte 0x02019000\n\
+_08116FD4:\n\
+cmp r0, 0x3\n\
+beq _0811700C\n\
+cmp r0, 0x4\n\
+beq _08117020\n\
+ldr r4, _08116FE0 @ =0x02019000\n\
+b _0811703A\n\
+.align 2, 0\n\
+_08116FE0: .4byte 0x02019000\n\
+_08116FE4:\n\
+ldr r3, _08116FF0 @ =gSprites\n\
+ldr r2, _08116FF4 @ =0x02019000\n\
+adds r0, r2, 0\n\
+adds r0, 0x43\n\
+b _08117028\n\
+.align 2, 0\n\
+_08116FF0: .4byte gSprites\n\
+_08116FF4: .4byte 0x02019000\n\
+_08116FF8:\n\
+ldr r3, _08117004 @ =gSprites\n\
+ldr r2, _08117008 @ =0x02019000\n\
+adds r0, r2, 0\n\
+adds r0, 0x44\n\
+b _08117028\n\
+.align 2, 0\n\
+_08117004: .4byte gSprites\n\
+_08117008: .4byte 0x02019000\n\
+_0811700C:\n\
+ldr r3, _08117018 @ =gSprites\n\
+ldr r2, _0811701C @ =0x02019000\n\
+adds r0, r2, 0\n\
+adds r0, 0x45\n\
+b _08117028\n\
+.align 2, 0\n\
+_08117018: .4byte gSprites\n\
+_0811701C: .4byte 0x02019000\n\
+_08117020:\n\
+ldr r3, _08117088 @ =gSprites\n\
+ldr r2, _0811708C @ =0x02019000\n\
+adds r0, r2, 0\n\
+adds r0, 0x46\n\
+_08117028:\n\
+ldrb r1, [r0]\n\
+lsls r0, r1, 4\n\
+adds r0, r1\n\
+lsls r0, 2\n\
+adds r0, r3\n\
+ldrb r0, [r0, 0x5]\n\
+lsrs r0, 4\n\
+lsls r7, r0, 4\n\
+adds r4, r2, 0\n\
+_0811703A:\n\
+mov r2, r10\n\
+cmp r2, 0x1\n\
+bne _08117094\n\
+ldr r1, _08117090 @ =gUnknown_083F8C00\n\
+lsls r2, r6, 2\n\
+adds r0, r2, r6\n\
+lsls r0, 2\n\
+adds r1, 0x8\n\
+adds r0, r1\n\
+ldr r1, [r4, 0x8]\n\
+ldr r0, [r0]\n\
+ands r1, r0\n\
+str r2, [sp, 0x1C]\n\
+cmp r1, 0\n\
+bne _0811713C\n\
+adds r0, r6, 0\n\
+movs r1, 0x5\n\
+bl __udivsi3\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+subs r1, r0, 0x1\n\
+lsls r1, 3\n\
+mov r3, sp\n\
+adds r2, r3, r1\n\
+ldrh r1, [r2, 0x2]\n\
+adds r1, r7, r1\n\
+strh r1, [r2, 0x2]\n\
+adds r1, r4, 0\n\
+adds r1, 0xB8\n\
+lsls r0, 3\n\
+subs r0, 0x8\n\
+adds r2, r3, r0\n\
+adds r0, r1, 0\n\
+movs r1, 0xD\n\
+bl sub_812492C\n\
+b _08117122\n\
+.align 2, 0\n\
+_08117088: .4byte gSprites\n\
+_0811708C: .4byte 0x02019000\n\
+_08117090: .4byte gUnknown_083F8C00\n\
+_08117094:\n\
+movs r4, 0\n\
+lsls r0, r6, 2\n\
+str r0, [sp, 0x1C]\n\
+ldr r1, _0811714C @ =0x02019000\n\
+mov r8, r1\n\
+ldr r2, _08117150 @ =gUnknown_083F8C00\n\
+mov r9, r2\n\
+_081170A2:\n\
+lsls r0, r4, 2\n\
+adds r0, r4\n\
+adds r0, r6, r0\n\
+adds r0, 0x5\n\
+lsls r0, 24\n\
+lsrs r2, r0, 24\n\
+lsls r0, r2, 2\n\
+adds r0, r2\n\
+lsls r5, r0, 2\n\
+mov r0, r9\n\
+adds r0, 0x8\n\
+adds r0, r5, r0\n\
+mov r3, r8\n\
+ldr r1, [r3, 0x8]\n\
+ldr r0, [r0]\n\
+ands r1, r0\n\
+cmp r1, 0\n\
+bne _0811710E\n\
+adds r0, r2, 0\n\
+movs r1, 0x5\n\
+bl __udivsi3\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+subs r1, r0, 0x1\n\
+lsls r1, 3\n\
+mov r3, sp\n\
+adds r2, r3, r1\n\
+ldrh r1, [r2, 0x2]\n\
+adds r1, r7, r1\n\
+strh r1, [r2, 0x2]\n\
+adds r1, r4, 0\n\
+adds r1, 0xD\n\
+lsls r1, 24\n\
+lsrs r1, 24\n\
+lsls r0, 3\n\
+subs r0, 0x8\n\
+adds r2, r3, r0\n\
+mov r0, r8\n\
+adds r0, 0xB8\n\
+bl sub_812492C\n\
+mov r0, r10\n\
+cmp r0, 0x3\n\
+bne _08117104\n\
+mov r1, r9\n\
+adds r0, r5, r1\n\
+ldrh r0, [r0, 0x10]\n\
+str r0, [sp, 0x18]\n\
+_08117104:\n\
+mov r0, r10\n\
+subs r0, 0x1\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+mov r10, r0\n\
+_0811710E:\n\
+adds r0, r4, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+cmp r4, 0x2\n\
+bls _081170A2\n\
+mov r2, r10\n\
+cmp r2, 0x2\n\
+beq _08117122\n\
+movs r3, 0\n\
+str r3, [sp, 0x18]\n\
+_08117122:\n\
+ldr r0, _08117154 @ =0x020190b8\n\
+ldr r2, _08117150 @ =gUnknown_083F8C00\n\
+ldr r4, [sp, 0x1C]\n\
+adds r1, r4, r6\n\
+lsls r1, 2\n\
+adds r1, r2\n\
+ldrh r1, [r1, 0x10]\n\
+ldr r2, [sp, 0x18]\n\
+orrs r2, r1\n\
+str r2, [sp, 0x18]\n\
+adds r1, r2, 0\n\
+bl sub_8124CE8\n\
+_0811713C:\n\
+add sp, 0x20\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\
+.align 2, 0\n\
+_0811714C: .4byte 0x02019000\n\
+_08117150: .4byte gUnknown_083F8C00\n\
+_08117154: .4byte 0x020190b8\n\
+.syntax divided\n");
+}
+#endif
+
+#ifdef NONMATCHING //not enough stack usage
+void sub_8117158(u8 r0)
+{
+ u8 i;
+ u8 l;
+ u8 v[0x5];
+ u8 z;
+ u8 var0;
+ u8 var1;
+ u16 var2;
+ eRoulette->var2A = 0x1;
+ sub_8117AA8(0x0, 0x0);
+ sub_8124E2C(&gBGTilemapBuffers[2][0], ewram18800, 0xE, 0x7, 0x10, 0xD);
+ switch(r0)
+ {
+ case 0x0:
+ return;
+ case 0x1 ... 0x4:
+ l = 0x4;
+ for (i = 0x0; i < l; i++)
+ v[i] = i * 0x5 + r0;
+ break;
+ case 0x5:
+ case 0xA:
+ case 0xF:
+ l = 0x5;
+ for (i = 0x0; i < l; i++)
+ v[i] = i + r0;
+ break;
+ default:
+ l = 0x1;
+ v[0] = r0;
+ }
+ for (i = 0x0; i < l; i++)
+ {
+ //_0811727C
+ var0 = gUnknown_083F8C00[v[i]].var06;
+ var1 = gUnknown_083F8C00[v[i]].var03;
+ for (z = 0; z < 0x3; z++)
+ {
+ var2 = (gUnknown_083F8C00[v[i]].var04 + z) * 0x20;
+ gBGTilemapBuffers[2][var2 + var1 + 0x0] = ewram189a0[(var0 + z) * 0x3 + 0x0];
+ gBGTilemapBuffers[2][var2 + var1 + 0x1] = ewram189a0[(var0 + z) * 0x3 + 0x1];
+ gBGTilemapBuffers[2][var2 + var1 + 0x2] = ewram189a0[(var0 + z) * 0x3 + 0x2];
+ }
+ //_08117350
+ }
+}
+#else
+__attribute__((naked))
+void sub_8117158(u8 r0)
+{
+asm(".syntax unified\n\
+push {r4-r7,lr}\n\
+mov r7, r10\n\
+mov r6, r9\n\
+mov r5, r8\n\
+push {r5-r7}\n\
+sub sp, 0x24\n\
+lsls r0, 24\n\
+lsrs r5, r0, 24\n\
+ldr r4, _0811719C @ =0x02019000\n\
+movs r0, 0x1\n\
+strh r0, [r4, 0x2A]\n\
+movs r0, 0\n\
+movs r1, 0\n\
+bl sub_8117AA8\n\
+ldr r0, _081171A0 @ =gBGTilemapBuffers + 0x800\n\
+ldr r1, _081171A4 @ =0xfffff800\n\
+adds r4, r1\n\
+movs r1, 0x10\n\
+str r1, [sp]\n\
+movs r1, 0xD\n\
+str r1, [sp, 0x4]\n\
+adds r1, r4, 0\n\
+movs r2, 0xE\n\
+movs r3, 0x7\n\
+bl sub_8124E2C\n\
+cmp r5, 0xF\n\
+bhi _08117250\n\
+lsls r0, r5, 2\n\
+ldr r1, _081171A8 @ =_081171AC\n\
+adds r0, r1\n\
+ldr r0, [r0]\n\
+mov pc, r0\n\
+.align 2, 0\n\
+_0811719C: .4byte 0x02019000\n\
+_081171A0: .4byte gBGTilemapBuffers + 0x800\n\
+_081171A4: .4byte 0xfffff800\n\
+_081171A8: .4byte _081171AC\n\
+.align 2, 0\n\
+_081171AC:\n\
+.4byte _08117360\n\
+.4byte _081171EC\n\
+.4byte _081171EC\n\
+.4byte _081171EC\n\
+.4byte _081171EC\n\
+.4byte _08117220\n\
+.4byte _08117250\n\
+.4byte _08117250\n\
+.4byte _08117250\n\
+.4byte _08117250\n\
+.4byte _08117220\n\
+.4byte _08117250\n\
+.4byte _08117250\n\
+.4byte _08117250\n\
+.4byte _08117250\n\
+.4byte _08117220\n\
+_081171EC:\n\
+movs r0, 0x4\n\
+str r0, [sp, 0x18]\n\
+add r1, sp, 0x8\n\
+movs r0, 0\n\
+strb r0, [r1]\n\
+adds r0, r1, 0\n\
+ldrb r0, [r0]\n\
+cmp r0, 0x3\n\
+bhi _08117258\n\
+add r4, sp, 0x10\n\
+adds r3, r1, 0\n\
+_08117202:\n\
+ldrb r2, [r3]\n\
+adds r2, r4\n\
+ldrb r1, [r3]\n\
+lsls r0, r1, 2\n\
+adds r0, r1\n\
+adds r0, r5, r0\n\
+strb r0, [r2]\n\
+ldrb r0, [r3]\n\
+adds r0, 0x1\n\
+strb r0, [r3]\n\
+ldrb r0, [r3]\n\
+ldr r1, [sp, 0x18]\n\
+cmp r0, r1\n\
+bcc _08117202\n\
+b _08117258\n\
+_08117220:\n\
+movs r0, 0x5\n\
+str r0, [sp, 0x18]\n\
+add r1, sp, 0x8\n\
+movs r0, 0\n\
+strb r0, [r1]\n\
+adds r0, r1, 0\n\
+ldrb r0, [r0]\n\
+cmp r0, 0x4\n\
+bhi _08117258\n\
+add r3, sp, 0x10\n\
+adds r2, r1, 0\n\
+_08117236:\n\
+ldrb r1, [r2]\n\
+adds r1, r3\n\
+ldrb r0, [r2]\n\
+adds r0, r5, r0\n\
+strb r0, [r1]\n\
+ldrb r0, [r2]\n\
+adds r0, 0x1\n\
+strb r0, [r2]\n\
+ldrb r0, [r2]\n\
+ldr r1, [sp, 0x18]\n\
+cmp r0, r1\n\
+bcc _08117236\n\
+b _08117258\n\
+_08117250:\n\
+movs r0, 0x1\n\
+str r0, [sp, 0x18]\n\
+add r0, sp, 0x10\n\
+strb r5, [r0]\n\
+_08117258:\n\
+add r1, sp, 0x8\n\
+movs r0, 0\n\
+strb r0, [r1]\n\
+adds r0, r1, 0\n\
+ldrb r0, [r0]\n\
+ldr r1, [sp, 0x18]\n\
+cmp r0, r1\n\
+bcs _08117360\n\
+mov r0, sp\n\
+adds r0, 0xE\n\
+str r0, [sp, 0x1C]\n\
+add r1, sp, 0x10\n\
+mov r9, r1\n\
+add r0, sp, 0x8\n\
+mov r12, r0\n\
+mov r1, sp\n\
+adds r1, 0xA\n\
+str r1, [sp, 0x20]\n\
+_0811727C:\n\
+mov r1, r12\n\
+ldrb r0, [r1]\n\
+add r0, r9\n\
+ldrb r1, [r0]\n\
+lsls r0, r1, 2\n\
+adds r0, r1\n\
+lsls r0, 2\n\
+ldr r1, _08117370 @ =gUnknown_083F8C00\n\
+adds r0, r1\n\
+ldrb r0, [r0, 0x6]\n\
+ldr r1, [sp, 0x1C]\n\
+strb r0, [r1]\n\
+mov r1, r12\n\
+ldrb r0, [r1]\n\
+add r0, r9\n\
+ldrb r1, [r0]\n\
+lsls r0, r1, 2\n\
+adds r0, r1\n\
+lsls r0, 2\n\
+ldr r1, _08117370 @ =gUnknown_083F8C00\n\
+adds r0, r1\n\
+ldrb r0, [r0, 0x3]\n\
+ldr r1, [sp, 0x20]\n\
+strh r0, [r1]\n\
+mov r4, sp\n\
+adds r4, 0x9\n\
+movs r0, 0\n\
+strb r0, [r4]\n\
+ldrb r0, [r4]\n\
+cmp r0, 0x2\n\
+bhi _08117350\n\
+add r5, sp, 0xC\n\
+ldr r7, [sp, 0x20]\n\
+ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800\n\
+mov r8, r0\n\
+ldr r6, [sp, 0x1C]\n\
+ldr r1, _08117378 @ =0x020189a0\n\
+mov r10, r1\n\
+_081172C8:\n\
+mov r1, r12\n\
+ldrb r0, [r1]\n\
+add r0, r9\n\
+ldrb r0, [r0]\n\
+lsls r1, r0, 2\n\
+adds r1, r0\n\
+lsls r1, 2\n\
+ldr r0, _08117370 @ =gUnknown_083F8C00\n\
+adds r1, r0\n\
+adds r3, r4, 0\n\
+ldrb r0, [r4]\n\
+ldrb r1, [r1, 0x4]\n\
+adds r0, r1\n\
+lsls r0, 5\n\
+strh r0, [r5]\n\
+ldrh r0, [r7]\n\
+ldrh r2, [r5]\n\
+adds r2, r0\n\
+lsls r2, 1\n\
+add r2, r8\n\
+ldrb r0, [r6]\n\
+ldrb r1, [r4]\n\
+adds r1, r0\n\
+lsls r0, r1, 1\n\
+adds r0, r1\n\
+lsls r0, 1\n\
+add r0, r10\n\
+ldrh r0, [r0]\n\
+strh r0, [r2]\n\
+ldrh r0, [r7]\n\
+ldrh r2, [r5]\n\
+adds r2, r0\n\
+adds r2, 0x1\n\
+lsls r2, 1\n\
+add r2, r8\n\
+ldrb r0, [r6]\n\
+ldrb r1, [r4]\n\
+adds r1, r0\n\
+lsls r0, r1, 1\n\
+adds r0, r1\n\
+lsls r0, 1\n\
+mov r1, r10\n\
+adds r1, 0x2\n\
+adds r0, r1\n\
+ldrh r0, [r0]\n\
+strh r0, [r2]\n\
+ldrh r0, [r7]\n\
+ldrh r2, [r5]\n\
+adds r2, r0\n\
+adds r2, 0x2\n\
+lsls r2, 1\n\
+add r2, r8\n\
+ldrb r0, [r6]\n\
+ldrb r1, [r4]\n\
+adds r1, r0\n\
+lsls r0, r1, 1\n\
+adds r0, r1\n\
+lsls r0, 1\n\
+ldr r1, _0811737C @ =0x020189a4\n\
+adds r0, r1\n\
+ldrh r0, [r0]\n\
+strh r0, [r2]\n\
+ldrb r0, [r4]\n\
+adds r0, 0x1\n\
+strb r0, [r4]\n\
+ldrb r0, [r3]\n\
+cmp r0, 0x2\n\
+bls _081172C8\n\
+_08117350:\n\
+mov r1, r12\n\
+ldrb r0, [r1]\n\
+adds r0, 0x1\n\
+strb r0, [r1]\n\
+ldrb r0, [r1]\n\
+ldr r1, [sp, 0x18]\n\
+cmp r0, r1\n\
+bcc _0811727C\n\
+_08117360:\n\
+add sp, 0x24\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\
+.align 2, 0\n\
+_08117370: .4byte gUnknown_083F8C00\n\
+_08117374: .4byte gBGTilemapBuffers + 0x800\n\
+_08117378: .4byte 0x020189a0\n\
+_0811737C: .4byte 0x020189a4\n\
+.syntax divided\n");
+}
+#endif
+
+#ifdef NONMATCHING
+u8 sub_8117380(u8 r0)
+{
+ u8 var0[0x5];
+ u8 t;
+ u8 z;
+ memcpy(var0, gUnknown_083F8EF4, 0x5);
+ if (r0 > 0x13)
+ r0 = 0x0;
+ switch (gUnknown_083F8C00[r0].var01_0)
+ {
+ case 0x3:
+ z = r0 / 0x5 - 0x1;
+ if (eRoulette->var16[z] > 0x3)
+ return 0x0;
+ return var0[eRoulette->var16[z] + 0x1];
+ case 0x4:
+ t = r0 - 0x1;
+ if (eRoulette->var12[t] > 0x2)
+ return 0x0;
+ return var0[eRoulette->var12[t] + 0x2];
+ case 0xC:
+ if (eRoulette->var08 & gUnknown_083F8C00[r0].var08)
+ return 0x0;
+ return var0[0x4];
+ default:
+ }
+ return 0x0;
+}
+#else
+__attribute__((naked))
+u8 sub_8117380(u8 r0)
+{
+asm(".syntax unified\n\
+push {r4,lr}\n\
+sub sp, 0x8\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r1, _081173B8 @ =gUnknown_083F8EF4\n\
+mov r0, sp\n\
+movs r2, 0x5\n\
+bl memcpy\n\
+cmp r4, 0x13\n\
+bls _08117398\n\
+movs r4, 0\n\
+_08117398:\n\
+ldr r3, _081173BC @ =gUnknown_083F8C00\n\
+lsls r0, r4, 2\n\
+adds r0, r4\n\
+lsls r2, r0, 2\n\
+adds r0, r2, r3\n\
+ldrb r0, [r0, 0x1]\n\
+lsls r0, 28\n\
+lsrs r0, 28\n\
+cmp r0, 0x4\n\
+beq _081173EC\n\
+cmp r0, 0x4\n\
+bgt _081173C0\n\
+cmp r0, 0x3\n\
+beq _081173C6\n\
+b _08117428\n\
+.align 2, 0\n\
+_081173B8: .4byte gUnknown_083F8EF4\n\
+_081173BC: .4byte gUnknown_083F8C00\n\
+_081173C0:\n\
+cmp r0, 0xC\n\
+beq _0811740C\n\
+b _08117428\n\
+_081173C6:\n\
+adds r0, r4, 0\n\
+movs r1, 0x5\n\
+bl __udivsi3\n\
+subs r0, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r0, _081173E8 @ =0x02019000\n\
+adds r0, 0x16\n\
+adds r1, r4, r0\n\
+ldrb r0, [r1]\n\
+cmp r0, 0x3\n\
+bhi _08117428\n\
+ldrb r0, [r1]\n\
+adds r0, 0x1\n\
+b _08117402\n\
+.align 2, 0\n\
+_081173E8: .4byte 0x02019000\n\
+_081173EC:\n\
+subs r0, r4, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r0, _08117408 @ =0x02019000\n\
+adds r0, 0x12\n\
+adds r1, r4, r0\n\
+ldrb r0, [r1]\n\
+cmp r0, 0x2\n\
+bhi _08117428\n\
+ldrb r0, [r1]\n\
+adds r0, 0x2\n\
+_08117402:\n\
+add r0, sp\n\
+ldrb r0, [r0]\n\
+b _0811742A\n\
+.align 2, 0\n\
+_08117408: .4byte 0x02019000\n\
+_0811740C:\n\
+ldr r1, _08117424 @ =0x02019000\n\
+adds r0, r3, 0\n\
+adds r0, 0x8\n\
+adds r0, r2, r0\n\
+ldr r1, [r1, 0x8]\n\
+ldr r0, [r0]\n\
+ands r1, r0\n\
+cmp r1, 0\n\
+bne _08117428\n\
+mov r0, sp\n\
+ldrb r0, [r0, 0x4]\n\
+b _0811742A\n\
+.align 2, 0\n\
+_08117424: .4byte 0x02019000\n\
+_08117428:\n\
+movs r0, 0\n\
+_0811742A:\n\
+add sp, 0x8\n\
+pop {r4}\n\
+pop {r1}\n\
+bx r1\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_8117434(void)
+{
+ s32 x1;
+ s32 x2;
+ REG_BG2PA = eRoulette->var2C.a;
+ REG_BG2PB = eRoulette->var2C.b;
+ REG_BG2PC = eRoulette->var2C.c;
+ REG_BG2PD = eRoulette->var2C.d;
+ x1 = 0x7400 - eRoulette->var2C.a * (gSpriteCoordOffsetX + 0x74)
+ - eRoulette->var2C.b * (gSpriteCoordOffsetY + 0x50);
+ x2 = 0x5400 - eRoulette->var2C.c * (gSpriteCoordOffsetX + 0x74)
+ - eRoulette->var2C.d * (gSpriteCoordOffsetY + 0x50);
+ REG_BG2X_L = x1;
+ REG_BG2X_H = (x1 & 0x0fff0000) >> 16;
+ REG_BG2Y_L = x2;
+ REG_BG2Y_H = (x2 & 0x0fff0000) >> 16;
+}
+
+s16 sub_81174C4(s16 r0, s16 r1)
+{
+ s32 t = r0 * r1;
+ t /= 0x100;
+ return t;
+}
+
+s16 sub_81174E0(s16 r0)
+{
+ s32 t = 0x10000;
+ return t / r0;
+}
+
+void sub_81174F8(u8 r0)
+{
+ DisplayYesNoMenu(0x14, 0x8, 0x1);
+ sub_814AAF8(0x2D9E);
+ DoYesNoFuncWithChoice(r0, &gUnknown_083F8EB4);
+}
+
+void sub_8117528(u8 taskid)
+{
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ SetMainCallback2(&sub_8115384);
+ DestroyTask(taskid);
+ }
+}
+
+void sub_811755C(u8 taskid)
+{
+ Menu_EraseWindowRect(0x14, 0x8, 0x1A, 0xD);
+ Menu_EraseScreen();
+ BeginNormalPaletteFade(-0x1, 0x0, 0x0, 0x10, 0x0);
+ gPaletteFade.delayCounter = gPaletteFade.multipurpose2;
+ UpdatePaletteFade();
+ gTasks[taskid].func = &sub_8117528;
+}
+
+void sub_81175C0(u8 taskid)
+{
+#if DEBUG
+ unk_203955C[0] = 0;
+#endif
+ Menu_EraseScreen();
+ ScriptContext2_Disable();
+ DestroyTask(taskid);
+}
+
+void sub_81175DC(u8 taskid)
+{
+ gTasks[taskid].data[0]++;
+ if (!(gMain.newKeys & (A_BUTTON | B_BUTTON)) && gTasks[taskid].data[0] < 0x3D)
+ return;
+ gSpecialVar_0x8004 = 0x1;
+ Menu_EraseScreen();
+ ScriptContext2_Disable();
+ DestroyTask(taskid);
+}
+
+void sub_8117630(u8 taskid)
+{
+ u32 temp = gUnknown_083F8DF0[(gSpecialVar_0x8004 & 0x1) + (gSpecialVar_0x8004 >> 0x7 << 0x1)];
+ ConvertIntToDecimalStringN(gStringVar1, temp, 0x2, 0x1);
+ StringExpandPlaceholders(gStringVar4, &gUnknown_081C40DF);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(gStringVar4, 0x1, 0xF);
+ gTasks[taskid].func = &sub_81174F8;
+}
+
+void Task_Roulette_0(u8 taskid)
+{
+ s32 temp;
+ ConvertIntToDecimalStringN(gStringVar1, gTasks[taskid].data[0xD], 0x1, 0x4);
+ StringExpandPlaceholders(gStringVar4, gOtherText_Coins);
+ Menu_DrawStdWindowFrame(0x0, 0x0, 0x9, 0x3);
+ MenuPrint_RightAligned(gStringVar4, 0x9, 0x1);
+ temp = gUnknown_083F8DF0[(gSpecialVar_0x8004 & 0x1) + (gSpecialVar_0x8004 >> 0x7 << 0x1)];
+ ConvertIntToDecimalStringN(gStringVar1, temp, 0x2, 0x1);
+ if (gTasks[taskid].data[0xD] >= temp)
+ {
+ if ((gSpecialVar_0x8004 & 0x80) && (gSpecialVar_0x8004 & 0x1))
+ {
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(&gUnknown_081C4139, 0x1, 0xF);
+ sub_8116C34(taskid , &sub_8117630, 0xFFFF, 0x3);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, &gUnknown_081C40DF);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(gStringVar4, 0x1, 0xF);
+ gTasks[taskid].func = &sub_81174F8;
+ }
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, &gUnknown_081C411C);
+ Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13);
+ Menu_PrintText(gStringVar4, 0x1, 0xF);
+ gTasks[taskid].func = &sub_81175DC;
+ gTasks[taskid].data[0xD] = 0x0;
+ gTasks[taskid].data[0x0] = 0x0;
+ }
+}
+
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_812CDE4()
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r3, r0, #0x18\n\
+ add r4, r3, #0\n\
+ ldr r0, ._575 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._572 @cond_branch\n\
+ ldr r1, ._575 + 4 @ gTasks\n\
+ lsl r0, r3, #0x2\n\
+ add r0, r0, r3\n\
+ lsl r0, r0, #0x3\n\
+ add r2, r0, r1\n\
+ ldrh r0, [r2, #0x22]\n\
+ add r0, r0, #0x1\n\
+ strh r0, [r2, #0x22]\n\
+ lsl r0, r0, #0x10\n\
+ ldr r1, ._575 + 8 @ 0x27100000\n\
+ cmp r0, r1\n\
+ bne ._573 @cond_branch\n\
+ mov r0, #0x0\n\
+ strh r0, [r2, #0x22]\n\
+._573:\n\
+ ldr r0, ._575 + 12 @ gStringVar1\n\
+ mov r3, #0x22\n\
+ ldsh r1, [r2, r3]\n\
+ b ._584\n\
+._576:\n\
+ .align 2, 0\n\
+._575:\n\
+ .word gMain\n\
+ .word gTasks\n\
+ .word 0x27100000\n\
+ .word gStringVar1\n\
+._572:\n\
+ mov r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._577 @cond_branch\n\
+ ldr r1, ._580 @ gTasks\n\
+ lsl r0, r3, #0x2\n\
+ add r0, r0, r3\n\
+ lsl r0, r0, #0x3\n\
+ add r2, r0, r1\n\
+ ldrh r0, [r2, #0x22]\n\
+ sub r0, r0, #0x1\n\
+ strh r0, [r2, #0x22]\n\
+ lsl r0, r0, #0x10\n\
+ asr r0, r0, #0x10\n\
+ mov r1, #0x1\n\
+ neg r1, r1\n\
+ cmp r0, r1\n\
+ bne ._578 @cond_branch\n\
+ ldr r0, ._580 + 4 @ 0x270f\n\
+ strh r0, [r2, #0x22]\n\
+._578:\n\
+ ldr r0, ._580 + 8 @ gStringVar1\n\
+ mov r3, #0x22\n\
+ ldsh r1, [r2, r3]\n\
+ b ._584\n\
+._581:\n\
+ .align 2, 0\n\
+._580:\n\
+ .word gTasks\n\
+ .word 0x270f\n\
+ .word gStringVar1\n\
+._577:\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._582 @cond_branch\n\
+ ldr r1, ._585 @ gTasks\n\
+ lsl r0, r3, #0x2\n\
+ add r0, r0, r3\n\
+ lsl r0, r0, #0x3\n\
+ add r2, r0, r1\n\
+ ldrh r3, [r2, #0x22]\n\
+ add r0, r3, #0\n\
+ add r0, r0, #0xa\n\
+ strh r0, [r2, #0x22]\n\
+ lsl r0, r0, #0x10\n\
+ ldr r1, ._585 + 4 @ 0x270f0000\n\
+ cmp r0, r1\n\
+ ble ._583 @cond_branch\n\
+ ldr r1, ._585 + 8 @ 0xffffd8fb\n\
+ add r0, r3, r1\n\
+ strh r0, [r2, #0x22]\n\
+._583:\n\
+ ldr r0, ._585 + 12 @ gStringVar1\n\
+ mov r3, #0x22\n\
+ ldsh r1, [r2, r3]\n\
+ b ._584\n\
+._586:\n\
+ .align 2, 0\n\
+._585:\n\
+ .word gTasks\n\
+ .word 0x270f0000\n\
+ .word 0xffffd8fb\n\
+ .word gStringVar1\n\
+._582:\n\
+ mov r0, #0x80\n\
+ lsl r0, r0, #0x2\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._587 @cond_branch\n\
+ ldr r0, ._590 @ gTasks\n\
+ lsl r1, r3, #0x2\n\
+ add r1, r1, r3\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r0\n\
+ ldrh r2, [r1, #0x22]\n\
+ add r0, r2, #0\n\
+ sub r0, r0, #0xa\n\
+ strh r0, [r1, #0x22]\n\
+ lsl r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bge ._588 @cond_branch\n\
+ ldr r3, ._590 + 4 @ 0x2705\n\
+ add r0, r2, r3\n\
+ strh r0, [r1, #0x22]\n\
+._588:\n\
+ ldr r0, ._590 + 8 @ gStringVar1\n\
+ mov r2, #0x22\n\
+ ldsh r1, [r1, r2]\n\
+._584:\n\
+ mov r2, #0x1\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r4, ._590 + 12 @ gStringVar4\n\
+ ldr r1, ._590 + 16 @ gOtherText_Coins\n\
+ add r0, r4, #0\n\
+ bl StringExpandPlaceholders\n\
+ add r0, r4, #0\n\
+ mov r1, #0x9\n\
+ mov r2, #0x1\n\
+ bl MenuPrint_RightAligned\n\
+ b ._596\n\
+._591:\n\
+ .align 2, 0\n\
+._590:\n\
+ .word gTasks\n\
+ .word 0x2705\n\
+ .word gStringVar1\n\
+ .word gStringVar4\n\
+ .word gOtherText_Coins\n\
+._587:\n\
+ mov r0, #0x8\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._592 @cond_branch\n\
+ ldr r0, ._594 @ gSaveBlock1\n\
+ ldr r2, ._594 + 4 @ gTasks\n\
+ lsl r1, r3, #0x2\n\
+ add r1, r1, r3\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r2\n\
+ ldrh r2, [r1, #0x22]\n\
+ ldr r3, ._594 + 8 @ 0x494\n\
+ add r0, r0, r3\n\
+ mov r5, #0x0\n\
+ strh r2, [r0]\n\
+ ldr r0, ._594 + 12 @ Task_Roulette_0\n\
+ str r0, [r1]\n\
+ ldr r0, ._594 + 16 @ gStringVar1\n\
+ mov r2, #0x22\n\
+ ldsh r1, [r1, r2]\n\
+ mov r2, #0x1\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r4, ._594 + 20 @ gStringVar4\n\
+ ldr r1, ._594 + 24 @ gOtherText_Coins\n\
+ add r0, r4, #0\n\
+ bl StringExpandPlaceholders\n\
+ add r0, r4, #0\n\
+ mov r1, #0x9\n\
+ mov r2, #0x1\n\
+ bl MenuPrint_RightAligned\n\
+ ldr r0, ._594 + 28 @ unk_2039560\n\
+ strb r5, [r0]\n\
+ b ._596\n\
+._595:\n\
+ .align 2, 0\n\
+._594:\n\
+ .word gSaveBlock1\n\
+ .word gTasks\n\
+ .word 0x494\n\
+ .word Task_Roulette_0+1\n\
+ .word gStringVar1\n\
+ .word gStringVar4\n\
+ .word gOtherText_Coins\n\
+ .word unk_2039560\n\
+._592:\n\
+ mov r0, #0x4\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._596 @cond_branch\n\
+ ldr r0, ._597 @ gSaveBlock1\n\
+ ldr r2, ._597 + 4 @ gTasks\n\
+ lsl r1, r4, #0x2\n\
+ add r1, r1, r4\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r2\n\
+ ldrh r2, [r1, #0x22]\n\
+ ldr r3, ._597 + 8 @ 0x494\n\
+ add r0, r0, r3\n\
+ strh r2, [r0]\n\
+ ldr r0, ._597 + 12 @ Task_Roulette_0\n\
+ str r0, [r1]\n\
+ ldr r0, ._597 + 16 @ gStringVar1\n\
+ mov r2, #0x22\n\
+ ldsh r1, [r1, r2]\n\
+ mov r2, #0x1\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r4, ._597 + 20 @ gStringVar4\n\
+ ldr r1, ._597 + 24 @ gOtherText_Coins\n\
+ add r0, r4, #0\n\
+ bl StringExpandPlaceholders\n\
+ add r0, r4, #0\n\
+ mov r1, #0x9\n\
+ mov r2, #0x1\n\
+ bl MenuPrint_RightAligned\n\
+ ldr r1, ._597 + 28 @ unk_2039560\n\
+ mov r0, #0x1\n\
+ strb r0, [r1]\n\
+._596:\n\
+ pop {r4, r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+._598:\n\
+ .align 2, 0\n\
+._597:\n\
+ .word gSaveBlock1\n\
+ .word gTasks\n\
+ .word 0x494\n\
+ .word Task_Roulette_0+1\n\
+ .word gStringVar1\n\
+ .word gStringVar4\n\
+ .word gOtherText_Coins\n\
+ .word unk_2039560");
+}
+
+__attribute__((naked))
+void debug_sub_812CFE8()
+{
+ asm("\
+ push {r4, r5, lr}\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r2, ._600 @ gTasks\n\
+ lsl r1, r0, #0x2\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ add r5, r1, r2\n\
+ ldr r0, ._600 + 4 @ gSaveBlock1\n\
+ ldr r1, ._600 + 8 @ 0x494\n\
+ add r0, r0, r1\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r5, #0x22]\n\
+ bl Random\n\
+ mov r1, #0x1\n\
+ and r1, r1, r0\n\
+ cmp r1, #0\n\
+ beq ._599 @cond_branch\n\
+ ldr r0, ._600 + 12 @ gSpecialVar_0x8004\n\
+ ldrh r1, [r0]\n\
+ mov r2, #0x80\n\
+ orr r1, r1, r2\n\
+ strh r1, [r0]\n\
+._599:\n\
+ ldr r0, ._600 + 16 @ gStringVar1\n\
+ mov r2, #0x22\n\
+ ldsh r1, [r5, r2]\n\
+ mov r2, #0x1\n\
+ mov r3, #0x4\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r4, ._600 + 20 @ gStringVar4\n\
+ ldr r1, ._600 + 24 @ gOtherText_Coins\n\
+ add r0, r4, #0\n\
+ bl StringExpandPlaceholders\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ mov r2, #0x9\n\
+ mov r3, #0x3\n\
+ bl Menu_DrawStdWindowFrame\n\
+ add r0, r4, #0\n\
+ mov r1, #0x9\n\
+ mov r2, #0x1\n\
+ bl MenuPrint_RightAligned\n\
+ mov r0, #0x0\n\
+ mov r1, #0xe\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ ldr r0, ._600 + 28 @ gUnknown_Debug_0842510D\n\
+ mov r1, #0x1\n\
+ mov r2, #0xf\n\
+ bl Menu_PrintText\n\
+ ldr r0, ._600 + 32 @ debug_sub_812CDE4\n\
+ str r0, [r5]\n\
+ pop {r4, r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+._601:\n\
+ .align 2, 0\n\
+._600:\n\
+ .word gTasks\n\
+ .word gSaveBlock1\n\
+ .word 0x494\n\
+ .word gSpecialVar_0x8004\n\
+ .word gStringVar1\n\
+ .word gStringVar4\n\
+ .word gOtherText_Coins\n\
+ .word gUnknown_Debug_0842510D\n\
+ .word debug_sub_812CDE4+1");
+}
+
+#endif
+
+#if DEBUG
+__attribute__((naked))
+void PlayRoulette(void)
+{
+ asm("\
+ push {lr}\n\
+ bl ScriptContext2_Enable\n\
+ ldr r1, ._604 @ unk_2039560\n\
+ mov r0, #0x0\n\
+ strb r0, [r1]\n\
+ ldr r0, ._604 + 4 @ unk_203955C\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._602 @cond_branch\n\
+ ldr r0, ._604 + 8 @ debug_sub_812CFE8\n\
+ mov r1, #0x0\n\
+ bl CreateTask\n\
+ b ._603\n\
+._605:\n\
+ .align 2, 0\n\
+._604:\n\
+ .word unk_2039560\n\
+ .word unk_203955C\n\
+ .word debug_sub_812CFE8+1\n\
+._602:\n\
+ ldr r0, ._606 @ Task_Roulette_0\n\
+ mov r1, #0x0\n\
+ bl CreateTask\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ ldr r2, ._606 + 4 @ gTasks\n\
+ lsl r1, r0, #0x2\n\
+ add r1, r1, r0\n\
+ lsl r1, r1, #0x3\n\
+ add r1, r1, r2\n\
+ ldr r0, ._606 + 8 @ gSaveBlock1\n\
+ ldr r2, ._606 + 12 @ 0x494\n\
+ add r0, r0, r2\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r1, #0x22]\n\
+._603:\n\
+ pop {r0}\n\
+ bx r0\n\
+._607:\n\
+ .align 2, 0\n\
+._606:\n\
+ .word Task_Roulette_0+1\n\
+ .word gTasks\n\
+ .word gSaveBlock1\n\
+ .word 0x494");
+}
+#else
+void PlayRoulette(void)
+{
+ u8 taskid;
+ ScriptContext2_Enable();
+ taskid = CreateTask(&Task_Roulette_0, 0x0);
+ gTasks[taskid].data[0xD] = gSaveBlock1.coins;
+}
+#endif
+
+void sub_8117838(u8 r0)
+{
+ if (!r0)
+ {
+ FreeAllSpritePalettes();
+ LoadSpritePalettes(&gUnknown_083F9E30);
+ LZ77UnCompWram(gUnknown_083F92A8, ewram17000);
+ LZ77UnCompWram(gUnknown_083F90FC, ewram17E00);
+ LZ77UnCompWram(gUnknown_083F9D3C, ewram18000);
+ }
+ else
+ {
+ FreeAllSpritePalettes();
+ }
+}
+
+u8 sub_8117890(const struct SpriteTemplate *r0, u8 r1, u16 *r2)
+{
+ u16 temp;
+ u8 spriteid = CreateSprite(r0, 0x74, 0x50, r0->oam->y);
+ gSprites[spriteid].data[0] = *r2;
+ gSprites[spriteid].data[1] = r1;
+ gSprites[spriteid].coordOffsetEnabled = TRUE;
+ gSprites[spriteid].animPaused = TRUE;
+ gSprites[spriteid].affineAnimPaused = TRUE;
+ temp = *r2;
+ *r2 += 0x1E;
+ if (*r2 > 0x167)
+ *r2 = temp - 0x14A;
+ return spriteid;
+}
+
+void sub_8117900(void)
+{
+ u8 i, j;
+ u8 spriteid;
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_083F9F54.data, gSharedMem);
+ s.data = gSharedMem;
+ s.size = gUnknown_083F9F54.size;
+ s.tag = gUnknown_083F9F54.tag;
+ LoadSpriteSheet(&s);
+ LZ77UnCompWram(gUnknown_083F9F5C.data, gSharedMem);
+ s.data = gSharedMem;
+ s.size = gUnknown_083F9F5C.size;
+ s.tag = gUnknown_083F9F5C.tag;
+ LoadSpriteSheet(&s);
+ for (i = 0; i < 0x3; i++)
+ {
+ u8 o = i * 0x18;
+ for (j = 0; j < 0x4; j++)
+ {
+ spriteid = eRoulette->var3C[0x1D + i * 0x4 + j] =
+ CreateSprite(&gSpriteTemplate_83FA07C[j], j * 0x18 + 0x94, o + 0x5C, 0x1E);
+ gSprites[spriteid].animPaused = TRUE;
+ o += 0x18;
+ if (o > 0x47)
+ o = 0x0;
+ }
+ }
+ for (i = 0x0; i < 0x4; i++)
+ {
+ spriteid = eRoulette->var3C[0x29 + i] =
+ CreateSprite(&gSpriteTemplate_83F9FD4[i], (s16)(i * 0x18 + 0x94), 0x46, 0x1E);
+ gSprites[spriteid].animPaused = TRUE;
+ }
+ for (i = 0x0; i < 0x3; i++)
+ {
+ spriteid = eRoulette->var3C[0x2D + i] =
+ CreateSprite(&gSpriteTemplate_83FA034[i], 0x7E, (s16)(i * 0x18 + 0x5C), 0x1E);
+ gSprites[spriteid].animPaused = TRUE;
+ }
+}
+
+void unref_sub_8117A74(void) //destroy all sprites at 0x1D
+{
+ u8 i;
+ for (i = 0x0; i < 0xC; i++)
+ DestroySprite(&gSprites[eRoulette->var3C[0x1D + i]]);
+}
+
+void sub_8117AA8(u8 r0, u8 r1)
+{
+ u8 i;
+ switch(r0)
+ {
+ case 0x1:
+ for (i = 0x0; i < 0x13; i++)
+ gSprites[eRoulette->var3C[0x1D + i]].invisible = TRUE;
+ break;
+ case 0x0:
+ for (i = 0x0; i < 0xC; i++)
+ {
+ if (!(eRoulette->var08 & gUnknown_083F8D90[i].var04))
+ gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE;
+ else if(!(gUnknown_083F8D90[i].var02 == r1))
+ gSprites[eRoulette->var3C[0x1D + i]].invisible = TRUE;
+ else
+ gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE;
+ }
+ for ( ; i < 0x13; i++)
+ gSprites[eRoulette->var3C[0x1D + i]].invisible = FALSE;
+ break;
+ }
+}
+
+void sub_8117BBC(void)
+{
+ u8 i;
+ for (i = 0x0; i < 0x6; i++)
+ {
+ eRoulette->var3C[0x31 + i] = CreateSprite(&gSpriteTemplate_83FA40C, 0x74, 0x14, 0xA);
+ gSprites[eRoulette->var3C[0x31 + i]].invisible = TRUE;
+ gSprites[eRoulette->var3C[0x31 + i]].data[0] = 0x1;
+ gSprites[eRoulette->var3C[0x31 + i]].callback = &sub_81184CC;
+ gSprites[eRoulette->var3C[0x31 + i]].oam.priority = 0x1;
+ StartSpriteAnim(&gSprites[eRoulette->var3C[0x31 + i]], 0x8);
+ }
+}
+
+void sub_8117C60(u8 r0, u8 r1)
+{
+ u8 i = 0x0;
+ if (r0)
+ {
+ for ( ; i < 0x6; i++)
+ gSprites[eRoulette->var3C[0x31 + i]].invisible = TRUE;
+ }
+ else
+ {
+ for ( ; i < 0x6; i++)
+ {
+ if (!(eRoulette->var0C[i]) || (i == r1))
+ {
+ gSprites[eRoulette->var3C[0x31 + i]].invisible = TRUE;
+ }
+ else
+ {
+ gSprites[eRoulette->var3C[0x31 + i]].invisible = FALSE;
+ gSprites[eRoulette->var3C[0x31 + i]].pos1.x = (gUnknown_083F8C00[eRoulette->var0C[i]].var03 + 0x1) * 0x8 + 0x4;
+ gSprites[eRoulette->var3C[0x31 + i]].pos1.y = (gUnknown_083F8C00[eRoulette->var0C[i]].var04 + 0x1) * 0x8 + 0x3;
+ }
+ }
+ }
+}
+
+void sub_8117D68(u8 r0)
+{
+ if (!r0)
+ {
+ gSprites[eRoulette->var3C[0x30]].invisible = TRUE;
+ }
+ else
+ {
+ gSprites[eRoulette->var3C[0x30]].invisible = FALSE;
+ gSprites[eRoulette->var3C[0x30]].pos1.x = (gUnknown_083F8C00[r0].var03 + 0x2) * 0x8;
+ gSprites[eRoulette->var3C[0x30]].pos1.y = (gUnknown_083F8C00[r0].var04 + 0x2) * 0x8;
+ }
+}
+
+void sub_8117DF4(void)
+{
+ u8 i, j;
+ u16 k;
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_083F9EE8.data, gSharedMem);
+ s.data = gSharedMem;
+ s.size = gUnknown_083F9EE8.size;
+ s.tag = gUnknown_083F9EE8.tag;
+ LoadSpriteSheet(&s);
+ k = 0xF;
+ for (i = 0x0; i < 0x3; i++)
+ {
+ for (j = 0x0; j < 0x4; j++)
+ {
+ u8 spriteid;
+ spriteid =
+ eRoulette->var3C[0x7 + i * 0x4 + j] = sub_8117890(&gSpriteTemplate_83FA0DC[i * 0x4 + j], 0x28, &k);
+ gSprites[spriteid].animPaused = TRUE;
+ gSprites[spriteid].affineAnimPaused = TRUE;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+void sub_8117E98(struct Sprite *sprite)
+{
+ struct OamMatrix *m;
+ u8 p;
+ u16 angle;
+ s16 cos, sin, z;
+ u32 cos32;
+ angle = eRoulette->var24 + sprite->data[0x0];
+ z = angle;
+ if (z > 359)
+ angle = z - 360;
+ sin = Sin2(angle);
+ cos = Cos2(angle);
+ sprite->pos2.x = sin * sprite->data[0x1] >> 0xC;
+ sprite->pos2.y = -cos * sprite->data[0x1] >> 0xC;
+ p = sprite->oam.matrixNum;
+ sin = sin / 0x10;
+ m = &gOamMatrices[p];
+ cos32 = cos / 0x10;
+
+ m->d = cos32;
+ m->a = cos32;
+ m->b = sin;
+ m->c = -sin;
+}
+#else
+__attribute__((naked))
+void sub_8117E98(struct Sprite *r0)
+{
+asm(".syntax unified\n\
+push {r4-r6,lr}\n\
+adds r6, r0, 0\n\
+ldr r0, _08117F1C @ =0x02019000\n\
+ldrh r1, [r6, 0x2E]\n\
+ldrh r0, [r0, 0x24]\n\
+adds r1, r0\n\
+lsls r1, 16\n\
+lsrs r4, r1, 16\n\
+asrs r1, 16\n\
+ldr r0, _08117F20 @ =0x00000167\n\
+cmp r1, r0\n\
+ble _08117EB8\n\
+ldr r2, _08117F24 @ =0xfffffe98\n\
+adds r0, r1, r2\n\
+lsls r0, 16\n\
+lsrs r4, r0, 16\n\
+_08117EB8:\n\
+adds r0, r4, 0\n\
+bl Sin2\n\
+lsls r0, 16\n\
+lsrs r5, r0, 16\n\
+adds r0, r4, 0\n\
+bl Cos2\n\
+lsls r2, r5, 16\n\
+asrs r2, 16\n\
+movs r3, 0x30\n\
+ldrsh r1, [r6, r3]\n\
+muls r1, r2\n\
+asrs r1, 12\n\
+strh r1, [r6, 0x24]\n\
+lsls r0, 16\n\
+asrs r4, r0, 16\n\
+negs r1, r4\n\
+movs r3, 0x30\n\
+ldrsh r0, [r6, r3]\n\
+muls r0, r1\n\
+asrs r0, 12\n\
+strh r0, [r6, 0x26]\n\
+ldrb r0, [r6, 0x3]\n\
+lsls r0, 26\n\
+lsrs r3, r0, 27\n\
+cmp r2, 0\n\
+bge _08117EF2\n\
+adds r2, 0xF\n\
+_08117EF2:\n\
+lsls r0, r2, 12\n\
+lsrs r5, r0, 16\n\
+ldr r1, _08117F28 @ =gOamMatrices\n\
+lsls r0, r3, 3\n\
+adds r1, r0, r1\n\
+adds r0, r4, 0\n\
+cmp r0, 0\n\
+bge _08117F04\n\
+adds r0, 0xF\n\
+_08117F04:\n\
+asrs r0, 4\n\
+strh r0, [r1, 0x6]\n\
+strh r0, [r1]\n\
+strh r5, [r1, 0x2]\n\
+lsls r0, r5, 16\n\
+asrs r0, 16\n\
+negs r0, r0\n\
+strh r0, [r1, 0x4]\n\
+pop {r4-r6}\n\
+pop {r0}\n\
+bx r0\n\
+.align 2, 0\n\
+_08117F1C: .4byte 0x02019000\n\
+_08117F20: .4byte 0x00000167\n\
+_08117F24: .4byte 0xfffffe98\n\
+_08117F28: .4byte gOamMatrices\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_8117F2C(void)
+{
+ u8 i;
+ for (i = 0x0; i < 0x5; i++)
+ {
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_083FA21C[i].data, gSharedMem);
+ s.data = gSharedMem;
+ s.size = gUnknown_083FA21C[i].size;
+ s.tag = gUnknown_083FA21C[i].tag;
+ LoadSpriteSheet(&s);
+ }
+ eRoulette->var3C[0x14] = CreateSprite(&gSpriteTemplate_83FA2B0, 0xD0, 0x10, 0x4);
+ gSprites[eRoulette->var3C[0x14]].animPaused = TRUE;
+ for (i = 0x0; i < 0x4; i++)
+ {
+ eRoulette->var3C[0x15 + i] = CreateSprite(&gSpriteTemplate_83FA2C8, (s16)(i * 0x8 + 0xC4), 0x18, 0x0);
+ gSprites[eRoulette->var3C[0x15 + i]].invisible = TRUE;
+ gSprites[eRoulette->var3C[0x15 + i]].animPaused = TRUE;
+ }
+ eRoulette->var3C[0x19] = CreateSprite(&gSpriteTemplate_83FA2E0, 0x78, 0x44, 0x4);
+ gSprites[eRoulette->var3C[0x19]].animPaused = TRUE;
+ for (i = 0x0; i < 0x3; i++)
+ {
+ eRoulette->var3C[0x1A + i] = CreateSprite(&gSpriteTemplate_83FA2F8, (s16)(i * 0x10 + 0xC0), 0x24, 0x4);
+ gSprites[eRoulette->var3C[0x1A + i]].invisible = TRUE;
+ gSprites[eRoulette->var3C[0x1A + i]].animPaused = TRUE;
+ }
+ eRoulette->var3C[0x30] = CreateSprite(&gSpriteTemplate_83FA310, 0x98, 0x60, 0x9);
+ gSprites[eRoulette->var3C[0x30]].oam.priority = 0x1;
+ gSprites[eRoulette->var3C[0x30]].animPaused = TRUE;
+ gSprites[eRoulette->var3C[0x30]].invisible = TRUE;
+}
+
+void sub_81180F4(u16 r0)
+{
+ u8 i;
+ u16 d = 1000;
+ bool8 v = FALSE;
+ for (i = 0x0; i < 0x4; i++)
+ {
+ u8 t = r0 / d;
+ gSprites[eRoulette->var3C[0x15 + i]].invisible = TRUE;
+ if (t > 0x0 || v || i == 0x3)
+ {
+ gSprites[eRoulette->var3C[0x15 + i]].invisible = FALSE;
+ gSprites[eRoulette->var3C[0x15 + i]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x15 + i]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x15 + i]].anims + t)->type;
+ v = TRUE;
+ }
+ r0 = r0 % d;
+ d = d / 10;
+ }
+}
+
+#ifdef NONMATCHING
+u8 sub_81181E8(u8 r0)
+{
+ u8 t[0x5];
+ memcpy(&t, &gUnknown_083FA608, 0x5);
+ if (r0 > 0x13)
+ r0 = 0x0;
+ switch(gUnknown_083F8C00[r0].var01_0)
+ {
+ case 0x3:
+ r0 = r0 / 0x5 - 0x1;
+ if ((u32)eRoulette->var16[r0] < 0x4)
+ return t[0x1 + eRoulette->var16[r0]]; // couldn't recreate redundant loads
+ break;
+ case 0x4:
+ r0 = r0 - 0x1;
+ if (eRoulette->var12[r0] < 0x3)
+ return t[0x2 + eRoulette->var12[r0]];
+ break;
+ case 0xC:
+ if (!(eRoulette->var08 & gUnknown_083F8C00[r0].var08))
+ return t[0x4];
+ break;
+ }
+ return 0x0;
+}
+#else
+__attribute__((naked))
+u8 sub_81181E8(u8 r0)
+{
+asm(".syntax unified\n\
+push {r4,lr}\n\
+sub sp, 0x8\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r1, _08118220 @ =gUnknown_083FA608\n\
+mov r0, sp\n\
+movs r2, 0x5\n\
+bl memcpy\n\
+cmp r4, 0x13\n\
+bls _08118200\n\
+movs r4, 0\n\
+_08118200:\n\
+ldr r3, _08118224 @ =gUnknown_083F8C00\n\
+lsls r0, r4, 2\n\
+adds r0, r4\n\
+lsls r2, r0, 2\n\
+adds r0, r2, r3\n\
+ldrb r0, [r0, 0x1]\n\
+lsls r0, 28\n\
+lsrs r0, 28\n\
+cmp r0, 0x4\n\
+beq _08118254\n\
+cmp r0, 0x4\n\
+bgt _08118228\n\
+cmp r0, 0x3\n\
+beq _0811822E\n\
+b _08118290\n\
+.align 2, 0\n\
+_08118220: .4byte gUnknown_083FA608\n\
+_08118224: .4byte gUnknown_083F8C00\n\
+_08118228:\n\
+cmp r0, 0xC\n\
+beq _08118274\n\
+b _08118290\n\
+_0811822E:\n\
+adds r0, r4, 0\n\
+movs r1, 0x5\n\
+bl __udivsi3\n\
+subs r0, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r0, _08118250 @ =0x02019000\n\
+adds r0, 0x16\n\
+adds r1, r4, r0\n\
+ldrb r0, [r1]\n\
+cmp r0, 0x3\n\
+bhi _08118290\n\
+ldrb r0, [r1]\n\
+adds r0, 0x1\n\
+b _0811826A\n\
+.align 2, 0\n\
+_08118250: .4byte 0x02019000\n\
+_08118254:\n\
+subs r0, r4, 0x1\n\
+lsls r0, 24\n\
+lsrs r4, r0, 24\n\
+ldr r0, _08118270 @ =0x02019000\n\
+adds r0, 0x12\n\
+adds r1, r4, r0\n\
+ldrb r0, [r1]\n\
+cmp r0, 0x2\n\
+bhi _08118290\n\
+ldrb r0, [r1]\n\
+adds r0, 0x2\n\
+_0811826A:\n\
+add r0, sp\n\
+ldrb r0, [r0]\n\
+b _08118292\n\
+.align 2, 0\n\
+_08118270: .4byte 0x02019000\n\
+_08118274:\n\
+ldr r1, _0811828C @ =0x02019000\n\
+adds r0, r3, 0\n\
+adds r0, 0x8\n\
+adds r0, r2, r0\n\
+ldr r1, [r1, 0x8]\n\
+ldr r0, [r0]\n\
+ands r1, r0\n\
+cmp r1, 0\n\
+bne _08118290\n\
+mov r0, sp\n\
+ldrb r0, [r0, 0x4]\n\
+b _08118292\n\
+.align 2, 0\n\
+_0811828C: .4byte 0x02019000\n\
+_08118290:\n\
+movs r0, 0\n\
+_08118292:\n\
+add sp, 0x8\n\
+pop {r4}\n\
+pop {r1}\n\
+bx r1\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_811829C(u8 r0)
+{
+ struct Sprite *s = &gSprites[eRoulette->var3C[0x19]];
+ s->animCmdIndex = sub_81181E8(r0);
+ s->oam.tileNum =
+ s->sheetTileStart
+ + (*s->anims + s->animCmdIndex)->type;
+}
+
+void sub_81182F8(u8 r0)
+{
+ u8 i;
+ u8 t = 0x0;
+ if (eRoulette->var19 == 0x1)
+ t = 0x2;
+ switch(r0)
+ {
+ case 0x6:
+ for (i = 0x0; i < 0x3; i++)
+ {
+ gSprites[eRoulette->var3C[0x1A + i]].invisible = FALSE;
+ gSprites[eRoulette->var3C[0x1A + i]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1A + i]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1A + i]].anims)->type;
+ }
+ break;
+ case 0x5:
+ gSprites[eRoulette->var3C[0x1C]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1C]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1C]].anims + t + 0x1)->type;
+ break;
+ case 0x4:
+ gSprites[eRoulette->var3C[0x1C]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1C]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1C]].anims + t + 0x2)->type;
+ break;
+ case 0x3:
+ gSprites[eRoulette->var3C[0x1B]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1B]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1B]].anims + t + 0x1)->type;
+ break;
+ case 0x2:
+ gSprites[eRoulette->var3C[0x1B]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1B]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1B]].anims + t + 0x2)->type;
+ break;
+ case 0x1:
+ gSprites[eRoulette->var3C[0x1A]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1A]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1A]].anims + t + 0x1)->type;
+ break;
+ case 0x0:
+ default:
+ for (i = 0x0; i < 0x3; i++)
+ {
+ gSprites[eRoulette->var3C[0x1A + i]].oam.tileNum =
+ gSprites[eRoulette->var3C[0x1A + i]].sheetTileStart
+ + (*gSprites[eRoulette->var3C[0x1A + i]].anims + t + 2)->type;
+ }
+ }
+}
+
+void sub_81184CC(struct Sprite *sprite)
+{
+ sprite->pos2.x = eRoulette->var26;
+}
+
+void sub_81184D8(void)
+{
+ u8 spriteid;
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_083FA42C.data, gSharedMem);
+ s.data = gSharedMem;
+ s.size = gUnknown_083FA42C.size;
+ s.tag = gUnknown_083FA42C.tag;
+ LoadSpriteSheet(&s);
+ spriteid = CreateSprite(&gSpriteTemplate_83FA434, 0x74, 0x50, 0x51);
+ gSprites[spriteid].data[0] = eRoulette->var24;
+ gSprites[spriteid].data[1] = 0x0;
+ gSprites[spriteid].animPaused = TRUE;
+ gSprites[spriteid].affineAnimPaused = TRUE;
+ gSprites[spriteid].coordOffsetEnabled = TRUE;
+}
+
+void sub_8118554(struct Sprite *sprite)
+{
+ u32 t = sprite->oam.matrixNum;
+ struct OamMatrix *m = &gOamMatrices[0];
+ m[t].d = eRoulette->var2C.a;
+ m[t].a = eRoulette->var2C.a;
+ m[t].b = eRoulette->var2C.b;
+ m[t].c = eRoulette->var2C.c;
+}
+
+void sub_811857C(void)
+{
+ u8 i;
+ for (i = 0x0; i < 0x6; i++)
+ {
+ u8 spriteid =
+ eRoulette->var3C[i] = CreateSprite(&gSpriteTemplate_83FA40C, 0x74, 0x50, 0x39 - i);
+ if (spriteid != 0x40)
+ {
+ gSprites[eRoulette->var3C[i]].invisible = TRUE;
+ gSprites[eRoulette->var3C[i]].coordOffsetEnabled = TRUE;
+ }
+ }
+}
+
+void sub_81185E8(void)
+{
+ u8 t = eRoulette->var3C[0x0];
+ u8 i;
+ for (i = 0x0; i < 0x6; i++)
+ {
+ u8 j;
+ gSprites[t].invisible = TRUE;
+ gSprites[t].callback = &SpriteCallbackDummy;
+ StartSpriteAnim(&gSprites[t], 0x0);
+ for (j = 0x0; j < 0x8; j++)
+ gSprites[t].data[j] = 0x0;
+ t++;
+ }
+}
+
+s16 sub_811866C(struct Sprite *sprite)
+{
+ if (eRoulette->var24 > sprite->data[0x3])
+ {
+ sprite->data[0x6] = 360 - eRoulette->var24 + sprite->data[0x3];
+ if (sprite->data[0x6] > 359)
+ sprite->data[0x6] -=360;
+ }
+ else
+ sprite->data[0x6] = sprite->data[0x3] - eRoulette->var24;
+ return sprite->data[0x6];
+}
+
+u8 sub_81186B8(struct Sprite *sprite)
+{
+ eRoulette->var7E = (u8)(((float)(s16)sub_811866C(sprite)) / 30.0f);
+ return eRoulette->var7E;
+}
+
+s16 sub_81186E8(struct Sprite *sprite)
+{
+ s16 t = sub_811866C(sprite) % 30;
+ u16 z;
+ if (t == 0xE)
+ {
+ z = 0x0;
+ return sprite->data[0x2] = z;
+ }
+ else if (t > 0xD)
+ {
+ z = (u16)(0x2B - t);
+ return sprite->data[0x2] = z;
+ }
+ else
+ {
+ z = (u16)(0xE - t);
+ return sprite->data[0x2] = z;
+ }
+}
+
+void sub_8118724(struct Sprite *sprite)
+{
+ s16 sin, cos;
+ eRoulette->var8C += eRoulette->var90;
+ eRoulette->var88 += eRoulette->var8C;
+ if (eRoulette->var88 >= 360)
+ eRoulette->var88 -= 360.0f;
+ else
+ if (eRoulette->var88 < 0.0f)
+ eRoulette->var88 += 360.0f;
+ sprite->data[0x3] = eRoulette->var88;
+ eRoulette->var98 += eRoulette->var9C;
+ eRoulette->var94 += eRoulette->var98;
+ sprite->data[0x4] = eRoulette->var94;
+ sin = Sin2(sprite->data[0x3]);
+ cos = Cos2(sprite->data[0x3]);
+ sprite->pos2.x = sin * sprite->data[0x4] >> 0xC;
+ sprite->pos2.y = -cos * sprite->data[0x4] >> 0xC;
+ if (IsSEPlaying())
+ {
+ m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF, sprite->pos2.x);
+ m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, sprite->pos2.x);
+ }
+}
+
+void sub_8118834(struct Sprite *sprite)
+{
+ s16 sin, cos;
+ sprite->data[0x3] = eRoulette->var24 + sprite->data[0x6];
+ if (sprite->data[0x3] > 359)
+ sprite->data[0x3] -= 360;
+ sin = Sin2(sprite->data[0x3]);
+ cos = Cos2(sprite->data[0x3]);
+ sprite->pos2.x = sin * sprite->data[0x4] >> 0xC;
+ sprite->pos2.y = -cos * sprite->data[0x4] >> 0xC;
+ sprite->pos2.y += gSpriteCoordOffsetY;
+}
+
+void sub_811889C(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ sprite->data[0x2]++;
+ if ((u16)(sprite->data[0x4] + 0x84) > 0xD4)
+ sprite->invisible = TRUE;
+ else
+ sprite->invisible = FALSE;
+ if (!(sprite->data[0x2] < 30))
+ {
+ if (!sprite->data[0x0])
+ {
+ if (eRoulette->var94 <= eRoulette->varA0 - 2.0f)
+ {
+ eRoulette->var7D = 0xFF;
+ eRoulette->var03_7 = 0x0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3);
+ sub_81186B8(sprite);
+ sprite->data[0x4] = 30;
+ sub_811866C(sprite);
+ sprite->data[0x6] = (sprite->data[0x6] / 30) * 30 + 0xF;
+ sprite->callback = &sub_8118834;
+ m4aSongNumStartOrChange(0x47);
+ eRoulette->var9C = eRoulette->var98 = 0.0f;
+ eRoulette->var8C = -1.0f;
+ }
+ }
+ else
+ {
+ if (eRoulette->var94 >= eRoulette->varA0 - 2.0f)
+ {
+ eRoulette->var7D = 0xFF;
+ eRoulette->var03_7 = 0x0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3);
+ sub_81186B8(sprite);
+ sprite->data[0x4] = 30;
+ sub_811866C(sprite);
+ sprite->data[0x6] = (sprite->data[0x6] / 30) * 30 + 0xF;
+ sprite->callback = &sub_8118834;
+ m4aSongNumStartOrChange(0x47);
+ eRoulette->var9C = eRoulette->var98 = 0.0f;
+ eRoulette->var8C = -1.0f;
+ }
+ }
+ }
+}
+
+void sub_81189A8(struct Sprite *sprite)
+{
+ float f0, f1, f2;
+ struct StructgUnknown_083F8DF4 *p;
+ sub_8118724(sprite);
+ switch(sprite->data[0x3])
+ {
+ case 0:
+ if (sprite->data[0x0] != 0x1)
+ {
+ f0 = ((float)sprite->data[0x7]);
+ p = &gUnknown_083F8DF4[0];
+ f1 = (f0 * ((float)(s32)p[eRoulette->var04_0].var01) + (float)((s32)p[eRoulette->var04_0].var02 - 0x1));
+ f2 = (f0 / ((float)(s32)p[eRoulette->var04_0].var0C));
+ }
+ else
+ {
+ return;
+ }
+ break;
+ case 180:
+ if (sprite->data[0x0] != 0x0)
+ {
+ f0 = ((float)sprite->data[0x7]);
+ p = &gUnknown_083F8DF4[0];
+ f1 = (f0 * ((float)(s32)p[eRoulette->var04_0].var01) + (float)((s32)p[eRoulette->var04_0].var02 - 0x1));
+ f2 = -(f0 / ((float)(s32)p[eRoulette->var04_0].var0C));
+ }
+ else
+ {
+ return;
+ }
+ break;
+ default: return;
+ }
+ eRoulette->varA0 = eRoulette->var94;
+ eRoulette->var98 = f2;
+ eRoulette->var9C = -((f2 + f2) / f1 + (2.0f / (f1 * f1)));
+ eRoulette->var8C = 0.0f;
+ sprite->animPaused = FALSE;
+ sprite->animNum = 0x0;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->callback = &sub_811889C;
+ sprite->data[0x2] = 0x0;
+}
+
+void sub_8118B30(struct Sprite *sprite)
+{
+ sprite->pos2.y = (s32)(((float)sprite->data[0x2]) * 0.05f * ((float)sprite->data[0x2])) - 45;
+ sprite->data[0x2]++;
+ if (sprite->data[0x2] > 29 && sprite->pos2.y >= 0)
+ {
+ eRoulette->var7D = 0xFF;
+ eRoulette->var03_7 = FALSE;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3);
+ sub_81186B8(sprite);
+ sprite->data[0x4] = 30;
+ sub_811866C(sprite);
+ sprite->data[0x6] = (sprite->data[0x6] / 30) * 30 + 0xF;
+ sprite->callback = &sub_8118834;
+ m4aSongNumStartOrChange(0x47);
+ eRoulette->var03_6 = TRUE;
+ }
+}
+
+void sub_8118BD8(struct Sprite *sprite)
+{
+ if (sprite->data[0x2]++ < 45)
+ {
+ sprite->pos2.y--;
+ if(sprite->data[0x2] == 45)
+ {
+ if (gSprites[eRoulette->var3C[0x37]].animCmdIndex == 0x1)
+ sprite->pos2.y++;
+ }
+ }
+ else
+ {
+ if (sprite->data[0x2] < sprite->data[0x7])
+ {
+ if (gSprites[eRoulette->var3C[0x37]].animDelayCounter == 0x0)
+ {
+ if (gSprites[eRoulette->var3C[0x37]].animCmdIndex == 0x1)
+ sprite->pos2.y++;
+ else
+ sprite->pos2.y--;
+ }
+ }
+ else
+ {
+ sprite->animPaused = FALSE;
+ sprite->animNum = 0x1;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->data[0x2] = 0x0;
+ sprite->callback = &sub_8118B30;
+ m4aSongNumStart(0x3D);
+ }
+ }
+}
+
+void sub_8118CAC(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ switch(sprite->data[0x3])
+ {
+ case 90:
+ if (sprite->data[0x0] != 0x1)
+ {
+ sprite->callback = &sub_8118BD8;
+ sprite->data[0x2] = 0x0;
+ }
+ break;
+ case 270:
+ if (sprite->data[0x0] != 0x0)
+ {
+ sprite->callback = &sub_8118BD8;
+ sprite->data[0x2] = 0x0;
+ }
+ break;
+ }
+}
+
+void sub_8118CEC(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ switch(eRoulette->var03_0)
+ {
+ default:
+ case 0x0:
+ sub_8119224(sprite);
+ sprite->callback = &sub_81189A8;
+ break;
+ case 0x1:
+ sub_81193D4(sprite);
+ sprite->callback = &sub_8118CAC;
+ break;
+ }
+}
+
+void sub_8118D2C(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ if (sprite->data[0x2]-- == 0x10)
+ eRoulette->var98 *= -1.0f;
+ if (sprite->data[0x2] == 0x0)
+ {
+ if (!sprite->data[0x0])
+ {
+ eRoulette->var7D = 0xFF;
+ eRoulette->var03_7 = 0x0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3);
+ sub_81186B8(sprite);
+ sprite->data[0x4] = 30;
+ sub_811866C(sprite);
+ sprite->data[0x6] = (sprite->data[0x6] / 30) * 30 + 15;
+ sprite->callback = &sub_8118834;
+ m4aSongNumStartOrChange(0x47);
+ }
+ else
+ {
+ sprite->animPaused = TRUE;
+ m4aSongNumStart(0x38);
+ sub_811952C(sprite);
+ }
+ }
+}
+
+#if DEBUG
+__attribute__((naked))
+void debug_sub_812E698()
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ add r7, r0, #0\n\
+ bl sub_8118724\n\
+ mov r0, #0x0\n\
+ strh r0, [r7, #0x32]\n\
+ add r0, r7, #0\n\
+ bl sub_81186B8\n\
+ mov r0, #0x38\n\
+ bl m4aSongNumStart\n\
+ bl Random\n\
+ mov r1, #0x1\n\
+ and r1, r1, r0\n\
+ cmp r1, #0\n\
+ beq ._837 @cond_branch\n\
+ ldr r4, ._839 @ 0x2019000\n\
+ add r1, r4, #0\n\
+ add r1, r1, #0x8c\n\
+ ldr r0, ._839 + 4 @ 0x0\n\
+ str r0, [r1]\n\
+ add r0, r4, #0\n\
+ add r0, r0, #0x7e\n\
+ ldrb r0, [r0]\n\
+ add r0, r0, #0x1\n\
+ mov r1, #0xc\n\
+ bl __modsi3\n\
+ add r1, r4, #0\n\
+ add r1, r1, #0x7f\n\
+ strb r0, [r1]\n\
+ add r1, r4, #0\n\
+ ldr r4, ._839 + 8 @ gUnknown_083F8DF4\n\
+ b ._838\n\
+._840:\n\
+ .align 2, 0\n\
+._839:\n\
+ .word 0x2019000\n\
+ .word 0x0\n\
+ .word gUnknown_083F8DF4\n\
+._837:\n\
+ ldr r6, ._841 @ 0x2019000\n\
+ add r5, r6, #0\n\
+ add r5, r5, #0x8c\n\
+ ldr r4, ._841 + 4 @ gUnknown_083F8DF4\n\
+ ldrb r0, [r6, #0x4]\n\
+ lsl r0, r0, #0x1e\n\
+ lsr r0, r0, #0x19\n\
+ add r1, r4, #0\n\
+ add r1, r1, #0x1c\n\
+ add r0, r0, r1\n\
+ ldr r1, [r0]\n\
+ add r0, r1, #0\n\
+ bl __addsf3\n\
+ str r0, [r5]\n\
+ add r0, r6, #0\n\
+ add r0, r0, #0x7e\n\
+ ldrb r0, [r0]\n\
+ add r1, r6, #0\n\
+ add r1, r1, #0x7f\n\
+ strb r0, [r1]\n\
+ add r1, r6, #0\n\
+._838:\n\
+ mov r0, #0x1\n\
+ strh r0, [r7, #0x2e]\n\
+ ldrb r0, [r1, #0x4]\n\
+ lsl r0, r0, #0x1e\n\
+ lsr r0, r0, #0x19\n\
+ add r0, r0, r4\n\
+ ldrb r0, [r0, #0x2]\n\
+ strh r0, [r7, #0x32]\n\
+ add r1, r1, #0x98\n\
+ ldr r0, ._841 + 8 @ 0x3dae147b\n\
+ str r0, [r1]\n\
+ ldr r0, ._841 + 12 @ sub_8118D2C\n\
+ str r0, [r7, #0x1c]\n\
+ mov r0, #0x5\n\
+ strh r0, [r7, #0x30]\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._842:\n\
+ .align 2, 0\n\
+._841:\n\
+ .word 0x2019000\n\
+ .word gUnknown_083F8DF4\n\
+ .word 0x3dae147b\n\
+ .word sub_8118D2C+1");
+}
+#endif
+
+#ifdef NONMATCHING
+void sub_8118DE4(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ sprite->data[0x2] = 0x0;
+ sub_81186B8(sprite);
+ if (!(gUnknown_083F8D90[eRoulette->var7E].var04 & eRoulette->var08))
+ {
+ eRoulette->var7D = 0xFF;
+ eRoulette->var03_7 = 0x0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3);
+ sub_81186B8(sprite);
+ sprite->data[0x4] = 30;
+ sub_811866C(sprite);
+ sprite->data[0x6] = (sprite->data[0x6] / 30) * 30 + 15;
+ sprite->callback = &sub_8118834;
+ m4aSongNumStartOrChange(0x47);
+ }
+ else
+ {
+ u8 t;
+ u32 z;
+ m4aSongNumStart(0x38);
+ if ((z = (Random() & 0x1)))
+ {
+ u32 o;
+ eRoulette->var8C = 0.0f;
+ o = (eRoulette->var7E + 0x1) % 0xC;
+ t = o;
+ eRoulette->var7F = o;
+ }
+ else
+ {
+ eRoulette->var8C = gUnknown_083F8DF4[eRoulette->var04_0].var1C * 2; // couldn't replicate loads
+ t = (eRoulette->var7E + 0xB) % 0xC;
+ eRoulette->var7F = eRoulette->var7E;
+ }
+ if (gUnknown_083F8D90[t].var04 & eRoulette->var08)
+ {
+ sprite->data[0x0] = 0x1;
+ sprite->data[0x2] = (&gUnknown_083F8DF4[eRoulette->var04_0])->var02;
+ }
+ else
+ {
+ sprite->data[0x0] = gUnknown_083F8D90[t].var04 & eRoulette->var08;
+ if (eRoulette->var04_0)
+ {
+ sprite->data[0x2] = (&gUnknown_083F8DF4[eRoulette->var04_0])->var01;
+ }
+ else
+ {
+ sprite->data[0x2] = (&gUnknown_083F8DF4[eRoulette->var04_0])->var02;
+ if (z)
+ {
+ eRoulette->var8C = 1.5f;
+ }
+ else
+ {
+ eRoulette->var8C = -1.5f;
+ }
+ }
+ }
+ eRoulette->var98 = 0.085f;
+ sprite->callback = &sub_8118D2C;
+ sprite->data[0x1] = 0x5;
+ }
+}
+#else
+__attribute__((naked))
+void sub_8118DE4(struct Sprite *sprite)
+{
+asm(".syntax unified\n\
+push {r4-r7,lr}\n\
+mov r7, r9\n\
+mov r6, r8\n\
+push {r6,r7}\n\
+adds r7, r0, 0\n\
+bl sub_8118724\n\
+movs r0, 0\n\
+strh r0, [r7, 0x32]\n\
+adds r0, r7, 0\n\
+bl sub_81186B8\n\
+ldr r1, _08118E70 @ =gUnknown_083F8D90\n\
+ldr r6, _08118E74 @ =gSharedMem + 0x19000\n\
+movs r0, 0x7E\n\
+adds r0, r6\n\
+mov r8, r0\n\
+ldrb r0, [r0]\n\
+lsls r0, 3\n\
+adds r1, 0x4\n\
+adds r0, r1\n\
+ldr r0, [r0]\n\
+ldr r1, [r6, 0x8]\n\
+ands r0, r1\n\
+cmp r0, 0\n\
+bne _08118E7C\n\
+adds r1, r6, 0\n\
+adds r1, 0x7D\n\
+movs r0, 0xFF\n\
+strb r0, [r1]\n\
+ldrb r1, [r6, 0x3]\n\
+movs r0, 0x7F\n\
+ands r0, r1\n\
+strb r0, [r6, 0x3]\n\
+adds r0, r7, 0\n\
+adds r0, 0x2B\n\
+ldrb r1, [r0]\n\
+adds r1, 0x3\n\
+lsls r1, 24\n\
+lsrs r1, 24\n\
+adds r0, r7, 0\n\
+bl StartSpriteAnim\n\
+adds r0, r7, 0\n\
+bl sub_81186B8\n\
+movs r0, 0x1E\n\
+strh r0, [r7, 0x36]\n\
+adds r0, r7, 0\n\
+bl sub_811866C\n\
+movs r1, 0x3A\n\
+ldrsh r0, [r7, r1]\n\
+movs r1, 0x1E\n\
+bl __divsi3\n\
+lsls r0, 16\n\
+asrs r0, 16\n\
+lsls r1, r0, 4\n\
+subs r1, r0\n\
+lsls r1, 1\n\
+adds r1, 0xF\n\
+strh r1, [r7, 0x3A]\n\
+ldr r0, _08118E78 @ =sub_8118834\n\
+str r0, [r7, 0x1C]\n\
+movs r0, 0x47\n\
+bl m4aSongNumStartOrChange\n\
+b _08118F74\n\
+.align 2, 0\n\
+_08118E70: .4byte gUnknown_083F8D90\n\
+_08118E74: .4byte gSharedMem + 0x19000\n\
+_08118E78: .4byte sub_8118834\n\
+_08118E7C:\n\
+movs r0, 0x38\n\
+bl m4aSongNumStart\n\
+bl Random\n\
+movs r2, 0x1\n\
+mov r9, r2\n\
+mov r1, r9\n\
+ands r1, r0\n\
+mov r9, r1\n\
+cmp r1, 0\n\
+beq _08118EC0\n\
+adds r1, r6, 0\n\
+adds r1, 0x8C\n\
+ldr r0, _08118EB8 @ =0x00000000\n\
+str r0, [r1]\n\
+mov r2, r8\n\
+ldrb r0, [r2]\n\
+adds r0, 0x1\n\
+movs r1, 0xC\n\
+bl __modsi3\n\
+lsls r1, r0, 24\n\
+lsrs r2, r1, 24\n\
+adds r1, r6, 0\n\
+adds r1, 0x7F\n\
+strb r0, [r1]\n\
+ldr r5, _08118EBC @ =gUnknown_083F8DF4\n\
+b _08118EF4\n\
+.align 2, 0\n\
+_08118EB8: .4byte 0x00000000\n\
+_08118EBC: .4byte gUnknown_083F8DF4\n\
+_08118EC0:\n\
+adds r4, r6, 0\n\
+adds r4, 0x8C\n\
+ldr r5, _08118F1C @ =gUnknown_083F8DF4\n\
+ldrb r0, [r6, 0x4]\n\
+lsls r0, 30\n\
+lsrs r0, 25\n\
+adds r1, r5, 0\n\
+adds r1, 0x1C\n\
+adds r0, r1\n\
+ldr r1, [r0]\n\
+adds r0, r1, 0\n\
+bl __addsf3\n\
+str r0, [r4]\n\
+mov r0, r8\n\
+ldrb r4, [r0]\n\
+adds r0, r4, 0\n\
+adds r0, 0xB\n\
+movs r1, 0xC\n\
+bl __modsi3\n\
+lsls r0, 24\n\
+lsrs r2, r0, 24\n\
+adds r0, r6, 0\n\
+adds r0, 0x7F\n\
+strb r4, [r0]\n\
+_08118EF4:\n\
+ldr r0, _08118F20 @ =gUnknown_083F8D90\n\
+lsls r1, r2, 3\n\
+adds r0, 0x4\n\
+adds r1, r0\n\
+ldr r2, _08118F24 @ =gSharedMem + 0x19000\n\
+ldr r1, [r1]\n\
+ldr r0, [r2, 0x8]\n\
+ands r1, r0\n\
+cmp r1, 0\n\
+beq _08118F28\n\
+movs r0, 0x1\n\
+strh r0, [r7, 0x2E]\n\
+ldrb r0, [r2, 0x4]\n\
+lsls r0, 30\n\
+lsrs r0, 25\n\
+adds r0, r5\n\
+ldrb r0, [r0, 0x2]\n\
+strh r0, [r7, 0x32]\n\
+b _08118F64\n\
+.align 2, 0\n\
+_08118F1C: .4byte gUnknown_083F8DF4\n\
+_08118F20: .4byte gUnknown_083F8D90\n\
+_08118F24: .4byte gSharedMem + 0x19000\n\
+_08118F28:\n\
+strh r1, [r7, 0x2E]\n\
+ldrb r1, [r2, 0x4]\n\
+movs r0, 0x3\n\
+ands r0, r1\n\
+cmp r0, 0\n\
+beq _08118F40\n\
+lsls r0, r1, 30\n\
+lsrs r0, 25\n\
+adds r0, r5\n\
+ldrb r0, [r0, 0x1]\n\
+strh r0, [r7, 0x32]\n\
+b _08118F64\n\
+_08118F40:\n\
+lsls r0, r1, 30\n\
+lsrs r0, 25\n\
+adds r0, r5\n\
+ldrb r0, [r0, 0x2]\n\
+strh r0, [r7, 0x32]\n\
+mov r1, r9\n\
+cmp r1, 0\n\
+beq _08118F5C\n\
+adds r1, r2, 0\n\
+adds r1, 0x8C\n\
+ldr r0, _08118F58 @ =0x3f000000\n\
+b _08118F62\n\
+.align 2, 0\n\
+_08118F58: .4byte 0x3f000000\n\
+_08118F5C:\n\
+adds r1, r2, 0\n\
+adds r1, 0x8C\n\
+ldr r0, _08118F80 @ =0xbfc00000\n\
+_08118F62:\n\
+str r0, [r1]\n\
+_08118F64:\n\
+adds r1, r2, 0\n\
+adds r1, 0x98\n\
+ldr r0, _08118F84 @ =0x3dae147b\n\
+str r0, [r1]\n\
+ldr r0, _08118F88 @ =sub_8118D2C\n\
+str r0, [r7, 0x1C]\n\
+movs r0, 0x5\n\
+strh r0, [r7, 0x30]\n\
+_08118F74:\n\
+pop {r3,r4}\n\
+mov r8, r3\n\
+mov r9, r4\n\
+pop {r4-r7}\n\
+pop {r0}\n\
+bx r0\n\
+.align 2, 0\n\
+_08118F80: .4byte 0xbfc00000\n\
+_08118F84: .4byte 0x3dae147b\n\
+_08118F88: .4byte sub_8118D2C\n\
+.syntax divided\n");
+}
+#endif
+
+#if DEBUG
+__attribute__((naked))
+void sub_8118F8C(struct Sprite *sprite)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6, r7}\n\
+ add r6, r0, #0\n\
+ bl sub_8118724\n\
+ ldr r5, ._868 @ 0x2019000\n\
+ mov r0, #0x8c\n\
+ add r0, r0, r5\n\
+ mov r8, r0\n\
+ ldr r0, [r0]\n\
+ ldr r1, ._868 + 4 @ 0x3f000000\n\
+ bl __gtsf2\n\
+ cmp r0, #0\n\
+ bgt ._874 @cond_branch\n\
+ add r0, r6, #0\n\
+ bl sub_81186B8\n\
+ add r0, r6, #0\n\
+ bl sub_81186E8\n\
+ lsl r0, r0, #0x10\n\
+ cmp r0, #0\n\
+ bne ._864 @cond_branch\n\
+ add r1, r5, #0\n\
+ add r1, r1, #0x90\n\
+ ldr r0, ._868 + 8 @ 0x0\n\
+ str r0, [r1]\n\
+ ldr r1, ._868 + 12 @ gUnknown_083F8DF4\n\
+ mov r9, r1\n\
+ ldrb r0, [r5, #0x4]\n\
+ lsl r7, r0, #0x1e\n\
+ lsr r0, r7, #0x19\n\
+ add r0, r0, r9\n\
+ mov r4, #0x3\n\
+ ldsb r4, [r0, r4]\n\
+ add r0, r4, #0\n\
+ bl __floatsisf\n\
+ add r5, r0, #0\n\
+ cmp r4, #0\n\
+ bge ._865 @cond_branch\n\
+ ldr r1, ._868 + 16 @ 0x43800000\n\
+ bl __addsf3\n\
+ add r5, r0, #0\n\
+._865:\n\
+ lsr r0, r7, #0x19\n\
+ add r0, r0, r9\n\
+ ldrb r0, [r0, #0x4]\n\
+ add r0, r0, #0x1\n\
+ bl __floatsisf\n\
+ add r1, r0, #0\n\
+ add r0, r5, #0\n\
+ bl __divsf3\n\
+ add r1, r0, #0\n\
+ mov r2, r8\n\
+ ldr r0, [r2]\n\
+ bl __subsf3\n\
+ mov r1, r8\n\
+ str r0, [r1]\n\
+ mov r0, #0x4\n\
+ strh r0, [r6, #0x30]\n\
+ ldr r0, ._868 + 20 @ unk_2039560\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq ._866 @cond_branch\n\
+ ldr r0, ._868 + 24 @ debug_sub_812E698\n\
+ str r0, [r6, #0x1c]\n\
+ b ._874\n\
+._869:\n\
+ .align 2, 0\n\
+._868:\n\
+ .word 0x2019000\n\
+ .word 0x3f000000\n\
+ .word 0x0\n\
+ .word gUnknown_083F8DF4\n\
+ .word 0x43800000\n\
+ .word unk_2039560\n\
+ .word debug_sub_812E698+1\n\
+._866:\n\
+ ldr r0, ._871 @ sub_8118DE4\n\
+ str r0, [r6, #0x1c]\n\
+ b ._874\n\
+._872:\n\
+ .align 2, 0\n\
+._871:\n\
+ .word sub_8118DE4+1\n\
+._864:\n\
+ add r6, r5, #0\n\
+ add r6, r6, #0x90\n\
+ ldr r0, [r6]\n\
+ ldr r4, ._875 @ 0x0\n\
+ add r1, r4, #0\n\
+ bl __nesf2\n\
+ cmp r0, #0\n\
+ beq ._874 @cond_branch\n\
+ mov r2, r8\n\
+ ldr r0, [r2]\n\
+ add r1, r4, #0\n\
+ bl __ltsf2\n\
+ cmp r0, #0\n\
+ bge ._874 @cond_branch\n\
+ str r4, [r6]\n\
+ mov r0, r8\n\
+ str r4, [r0]\n\
+ add r4, r5, #0\n\
+ add r4, r4, #0x98\n\
+ ldr r0, [r4]\n\
+ bl __extendsfdf2\n\
+ ldr r2, ._875 + 4 @ 0x3ff33333\n\
+ ldr r3, ._875 + 8 @ 0x33333333\n\
+ bl __divdf3\n\
+ bl __truncdfsf2\n\
+ str r0, [r4]\n\
+._874:\n\
+ pop {r3, r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._876:\n\
+ .align 2, 0\n\
+._875:\n\
+ .word 0x0\n\
+ .word 0x3ff33333\n\
+ .word 0x33333333");
+}
+#else
+void sub_8118F8C(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ if (!(eRoulette->var8C > 0.5f))
+ {
+ sub_81186B8(sprite);
+ if (sub_81186E8(sprite) == 0x0)
+ {
+ struct StructgUnknown_083F8DF4 *p;
+ eRoulette->var90 = 0.0f;
+ p = &gUnknown_083F8DF4[0];
+ eRoulette->var8C -= ((float)p[eRoulette->var04_0].var03)
+ / ((float)(s16)((&p[eRoulette->var04_0])->var04 + 0x1));
+ sprite->data[0x1] = 0x4;
+ sprite->callback = &sub_8118DE4;
+ }
+ else
+ {
+ if (eRoulette->var90 != 0.0f)
+ {
+ if (eRoulette->var8C < 0.0f)
+ {
+ eRoulette->var90 = 0.0f;
+ eRoulette->var8C = 0.0f;
+ eRoulette->var98 /= 1.2;
+ }
+ }
+ }
+ }
+}
+#endif
+
+void sub_8119088(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ if (!(eRoulette->var94 > 40.f))
+ {
+ eRoulette->var98 = - ( 4.0f / (float)(u16)eRoulette->var86);
+ eRoulette->var90 = - (eRoulette->var8C / (float)(u16)eRoulette->var86);
+ sprite->animNum = 0x2;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->data[0x1] = 0x3;
+ sprite->callback = &sub_8118F8C;
+ }
+}
+
+void sub_8119134(struct Sprite *sprite)
+{
+ sub_8118724(sprite);
+ if (!(eRoulette->var94 > 60.0f))
+ {
+ m4aSongNumStartOrChange(0x5D);
+ eRoulette->var98 = - ( 20.0f / (float)(u16)eRoulette->var84);
+ eRoulette->var90 = ((1.0f - eRoulette->var8C) / (float)(u16)eRoulette->var84);
+ sprite->animNum = 0x1;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->data[0x1] = 0x2;
+ sprite->callback = &sub_8119088;
+ }
+}
+
+void sub_81191F4(struct Sprite *sprite)
+{
+ sprite->data[0x1] = 0x1;
+ sprite->data[0x2] = 0x0;
+ sub_8118724(sprite);
+ sprite->invisible = FALSE;
+ sprite->callback = &sub_8119134;
+}
+
+void sub_8119224(struct Sprite *sprite)
+{
+ u16 t;
+ u8 i;
+ s16 s[0x2][0x2];
+ struct Roulette *p;
+ memcpy(s, &gUnknown_083FA60E, 0x8);
+ t = sprite->data[0x7] - 0x2;
+ p = eRoulette;
+ p->var3C[0x37] = CreateSprite(&gSpriteTemplate_83FA50C, 0x24, -0xC, 0x32);
+ p->var3C[0x38] = CreateSprite(&gSpriteTemplate_83FA5C0[0x0], s[sprite->data[0x0]][0x0], s[sprite->data[0x0]][0x1], 0x3B);
+ p->var3C[0x39] = CreateSprite(&gSpriteTemplate_83FA5C0[0x1], 0x24, 0x8C, 0x33);
+ gSprites[eRoulette->var3C[0x39]].oam.objMode = 0x1;
+ for (i = 0x0; i < 0x3; i++)
+ {
+ gSprites[eRoulette->var3C[0x37 + i]].coordOffsetEnabled = FALSE;
+ gSprites[eRoulette->var3C[0x37 + i]].invisible = TRUE;
+ gSprites[eRoulette->var3C[0x37 + i]].animPaused = TRUE;
+ gSprites[eRoulette->var3C[0x37 + i]].affineAnimPaused = TRUE;
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x4] = eRoulette->var3C[0x37];
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x5] = eRoulette->var3C[0x38];
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x6] = eRoulette->var3C[0x39];
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x2] = t;
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x3] = (sprite->data[0x7] * (&gUnknown_083F8DF4[eRoulette->var04_0])->var01) +
+ ((&gUnknown_083F8DF4[eRoulette->var04_0])->var02 + 0xFFFF);
+ }
+ gSprites[eRoulette->var3C[0x38]].coordOffsetEnabled = TRUE;
+ eRoulette->var38 = sprite;
+}
+
+void sub_81193D4(struct Sprite *sprite)
+{
+ u8 i = 0;
+ s16 t;
+ s16 s[0x2][0x2];
+ struct StructgUnknown_083F8DF4 *p;
+ memcpy(s, &gUnknown_083FA616, 0x8);
+ t = sprite->data[0x7] - 0x2;
+ eRoulette->var3C[0x37] = CreateSprite(&gSpriteTemplate_83FA524, s[sprite->data[0x0]][0x0], s[sprite->data[0x0]][0x1], 0x32);
+ StartSpriteAnim(&gSprites[eRoulette->var3C[0x37]], sprite->data[0x0]);
+ eRoulette->var3C[0x38] = CreateSprite(&gSpriteTemplate_83FA5F0, s[sprite->data[0x0]][0x0], s[sprite->data[0x0]][0x1], 0x33);
+ gSprites[eRoulette->var3C[0x38]].affineAnimPaused = TRUE;
+ gSprites[eRoulette->var3C[0x38]].animPaused = TRUE;
+ sprite->data[0x7] = (t * (p = &gUnknown_083F8DF4[0])[eRoulette->var04_0].var01) + (p[eRoulette->var04_0].var10 + 0x2D);
+ for (; i < 0x2; i++)
+ {
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x4] = eRoulette->var3C[0x37];
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x5] = eRoulette->var3C[0x38];
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x6] = eRoulette->var3C[0x38];
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x2] = t;
+ gSprites[eRoulette->var3C[0x37 + i]].data[0x3] = sprite->data[0x7] - 0x2D;
+ }
+ eRoulette->var38 = sprite;
+}
+
+#ifdef NONMATCHING
+void sub_811952C(struct Sprite *sprite)
+{
+ u8 z;
+ register u8 h asm("r10") = 0x0;
+ u8 j = 0x5;
+ u32 p = 0x0;
+ u16 o;
+ u8 i;
+ u8 s[0xA] = (u8[]){0,0,0,0,0,0,0,0,0,0};
+ u16 t = Random();
+ eRoulette->var7D = 0x1;
+ eRoulette->var03_5 = TRUE;
+ eRoulette->var03_6 = FALSE;
+ eRoulette->var7E = 0xFF;
+ eRoulette->var88 = sprite->data[0x3];
+ eRoulette->var98 = 0.0f;
+ eRoulette->var8C = (&gUnknown_083F8DF4[eRoulette->var04_0])->var1C; //couldn't replicate load, same as sub_8118DE4
+ o = (eRoulette->var04_0 * 30 + 33) + (0x1 - eRoulette->var03_0) * 15;
+ for (i = 0x0; i < 0x4; i++)
+ {
+ if (o < sprite->data[0x3] && !(sprite->data[0x3] > o + 90))
+ {
+ sprite->data[0x0] = i * 0x2;
+ eRoulette->var03_0 = 0x1 & i;
+ break;
+ }
+ if (i == 0x3)
+ {
+ sprite->data[0x0] = 0x1;
+ eRoulette->var03_0 = 0x1;
+ break;
+ }
+ o += 90;
+ }
+ if (eRoulette->var03_0)
+ {
+ if (sprite->data[0x0])
+ {
+ PlayCry1(0x130, -0x3F);
+ }
+ else
+ {
+ PlayCry1(0x130, 0x3F);
+ }
+ }
+ else
+ {
+ PlayCry1(0x132, -0x3F);
+ }
+ i = 0x2;
+ z = (eRoulette->var7F + 0x2) % 0xC;
+ if (eRoulette->var03_0 == 0x1 && eRoulette->var04_0 == 0x1)
+ j += 0x6;
+ else
+ j += i;
+ for (; i < j; i++)
+ {
+ if (!(eRoulette->var08 & gUnknown_083F8D90[z].var04))
+ {
+ s[h++] = i;
+ if (!p && (gUnknown_083F8D90[z].var04 & gUnknown_083F8C00[eRoulette->var1B[eRoulette->var1A_0]].var00))
+ {
+ p = i;
+ }
+ }
+ z = (z + 0x1) % 0xC;
+ }
+ if ((eRoulette->var03_0 + 0x1) & eRoulette->var02)
+ {
+ if (p && (t & 0xFF) <= 0xBF)
+ {
+ sprite->data[0x7] = p;
+ }
+ else
+ {
+ sprite->data[0x7] = s[t % h];
+ }
+ }
+ else
+ {
+ sprite->data[0x7] = s[t % h];
+ }
+ sprite->callback = &sub_8118CEC;
+}
+#else
+__attribute__((naked))
+void sub_811952C(struct Sprite *sprite)
+{
+asm(".syntax unified\n\
+push {r4-r7,lr}\n\
+mov r7, r10\n\
+mov r6, r9\n\
+mov r5, r8\n\
+push {r5-r7}\n\
+sub sp, 0x14\n\
+mov r8, r0\n\
+movs r0, 0\n\
+mov r10, r0\n\
+movs r1, 0x5\n\
+mov r9, r1\n\
+movs r2, 0\n\
+str r2, [sp, 0xC]\n\
+mov r0, sp\n\
+movs r1, 0\n\
+movs r2, 0xA\n\
+bl memset\n\
+bl Random\n\
+lsls r0, 16\n\
+lsrs r0, 16\n\
+str r0, [sp, 0x10]\n\
+ldr r7, _08119610 @ =gSharedMem + 0x19000\n\
+adds r0, r7, 0\n\
+adds r0, 0x7D\n\
+movs r6, 0x1\n\
+strb r6, [r0]\n\
+ldrb r4, [r7, 0x3]\n\
+movs r0, 0x20\n\
+orrs r4, r0\n\
+movs r0, 0x41\n\
+negs r0, r0\n\
+ands r4, r0\n\
+strb r4, [r7, 0x3]\n\
+adds r1, r7, 0\n\
+adds r1, 0x7E\n\
+movs r0, 0xFF\n\
+strb r0, [r1]\n\
+adds r5, r7, 0\n\
+adds r5, 0x88\n\
+mov r3, r8\n\
+movs r1, 0x34\n\
+ldrsh r0, [r3, r1]\n\
+bl __floatsisf\n\
+str r0, [r5]\n\
+adds r1, r7, 0\n\
+adds r1, 0x98\n\
+ldr r0, _08119614 @ =0x00000000\n\
+str r0, [r1]\n\
+adds r3, r7, 0\n\
+adds r3, 0x8C\n\
+ldr r2, _08119618 @ =gUnknown_083F8DF4\n\
+ldrb r0, [r7, 0x4]\n\
+lsls r0, 30\n\
+lsrs r1, r0, 25\n\
+adds r2, 0x1C\n\
+adds r1, r2\n\
+ldr r1, [r1]\n\
+str r1, [r3]\n\
+lsrs r0, 30\n\
+lsls r1, r0, 4\n\
+subs r1, r0\n\
+lsls r1, 1\n\
+adds r1, 0x21\n\
+lsls r4, 27\n\
+lsrs r4, 27\n\
+subs r6, r4\n\
+lsls r0, r6, 4\n\
+subs r0, r6\n\
+adds r1, r0\n\
+lsls r1, 16\n\
+lsrs r1, 16\n\
+mov r5, r10\n\
+mov r3, r8\n\
+movs r0, 0x34\n\
+ldrsh r2, [r3, r0]\n\
+_081195C8:\n\
+cmp r1, r2\n\
+bge _081195D4\n\
+adds r0, r1, 0\n\
+adds r0, 0x5A\n\
+cmp r2, r0\n\
+ble _08119638\n\
+_081195D4:\n\
+cmp r5, 0x3\n\
+beq _0811961C\n\
+adds r0, r1, 0\n\
+adds r0, 0x5A\n\
+lsls r0, 16\n\
+lsrs r1, r0, 16\n\
+adds r0, r5, 0x1\n\
+lsls r0, 24\n\
+lsrs r5, r0, 24\n\
+cmp r5, 0x3\n\
+bls _081195C8\n\
+_081195EA:\n\
+ldr r0, _08119610 @ =gSharedMem + 0x19000\n\
+ldrb r1, [r0, 0x3]\n\
+movs r0, 0x1F\n\
+ands r0, r1\n\
+cmp r0, 0\n\
+beq _08119664\n\
+mov r1, r8\n\
+movs r2, 0x2E\n\
+ldrsh r0, [r1, r2]\n\
+cmp r0, 0\n\
+beq _08119658\n\
+movs r0, 0x98\n\
+lsls r0, 1\n\
+movs r1, 0x3F\n\
+negs r1, r1\n\
+bl PlayCry1\n\
+b _08119670\n\
+.align 2, 0\n\
+_08119610: .4byte gSharedMem + 0x19000\n\
+_08119614: .4byte 0x00000000\n\
+_08119618: .4byte gUnknown_083F8DF4\n\
+_0811961C:\n\
+movs r0, 0x1\n\
+mov r3, r8\n\
+strh r0, [r3, 0x2E]\n\
+ldr r2, _08119634 @ =gSharedMem + 0x19000\n\
+ldrb r1, [r2, 0x3]\n\
+subs r0, 0x21\n\
+ands r0, r1\n\
+movs r1, 0x1\n\
+orrs r0, r1\n\
+strb r0, [r2, 0x3]\n\
+b _081195EA\n\
+.align 2, 0\n\
+_08119634: .4byte gSharedMem + 0x19000\n\
+_08119638:\n\
+lsrs r0, r5, 1\n\
+mov r1, r8\n\
+strh r0, [r1, 0x2E]\n\
+ldr r3, _08119654 @ =gSharedMem + 0x19000\n\
+movs r1, 0x1\n\
+ands r1, r5\n\
+ldrb r2, [r3, 0x3]\n\
+movs r0, 0x20\n\
+negs r0, r0\n\
+ands r0, r2\n\
+orrs r0, r1\n\
+strb r0, [r3, 0x3]\n\
+b _081195EA\n\
+.align 2, 0\n\
+_08119654: .4byte gSharedMem + 0x19000\n\
+_08119658:\n\
+movs r0, 0x98\n\
+lsls r0, 1\n\
+movs r1, 0x3F\n\
+bl PlayCry1\n\
+b _08119670\n\
+_08119664:\n\
+movs r0, 0x99\n\
+lsls r0, 1\n\
+movs r1, 0x3F\n\
+negs r1, r1\n\
+bl PlayCry1\n\
+_08119670:\n\
+movs r5, 0x2\n\
+ldr r4, _081196A0 @ =gSharedMem + 0x19000\n\
+adds r0, r4, 0\n\
+adds r0, 0x7F\n\
+ldrb r0, [r0]\n\
+adds r0, 0x2\n\
+movs r1, 0xC\n\
+bl __modsi3\n\
+lsls r0, 24\n\
+lsrs r3, r0, 24\n\
+ldrb r1, [r4, 0x3]\n\
+movs r0, 0x1F\n\
+ands r0, r1\n\
+cmp r0, 0x1\n\
+bne _081196A4\n\
+ldrb r1, [r4, 0x4]\n\
+movs r0, 0x3\n\
+ands r0, r1\n\
+cmp r0, 0x1\n\
+bne _081196A4\n\
+mov r0, r9\n\
+adds r0, 0x6\n\
+b _081196A8\n\
+.align 2, 0\n\
+_081196A0: .4byte gSharedMem + 0x19000\n\
+_081196A4:\n\
+mov r2, r9\n\
+adds r0, r2, r5\n\
+_081196A8:\n\
+lsls r0, 24\n\
+lsrs r0, 24\n\
+mov r9, r0\n\
+cmp r5, r9\n\
+bcs _0811970E\n\
+ldr r6, _08119734 @ =gSharedMem + 0x19000\n\
+ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC\n\
+_081196B6:\n\
+lsls r0, r3, 3\n\
+ldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4\n\
+adds r0, r1\n\
+ldr r1, [r6, 0x8]\n\
+ldr r2, [r0]\n\
+ands r1, r2\n\
+cmp r1, 0\n\
+bne _081196F8\n\
+mov r0, r10\n\
+adds r1, r0, 0x1\n\
+lsls r1, 24\n\
+lsrs r1, 24\n\
+mov r10, r1\n\
+add r0, sp\n\
+strb r5, [r0]\n\
+ldr r0, [sp, 0xC]\n\
+cmp r0, 0\n\
+bne _081196F8\n\
+ldrb r0, [r6, 0x1A]\n\
+lsls r0, 28\n\
+lsrs r0, 28\n\
+ldr r1, _08119740 @ =gSharedMem + 0x1901B\n\
+adds r0, r1\n\
+ldrb r1, [r0]\n\
+lsls r0, r1, 2\n\
+adds r0, r1\n\
+lsls r0, 2\n\
+adds r0, r7\n\
+ldr r0, [r0]\n\
+ands r2, r0\n\
+cmp r2, 0\n\
+beq _081196F8\n\
+str r5, [sp, 0xC]\n\
+_081196F8:\n\
+adds r0, r3, 0x1\n\
+movs r1, 0xC\n\
+bl __modsi3\n\
+lsls r0, 24\n\
+lsrs r3, r0, 24\n\
+adds r0, r5, 0x1\n\
+lsls r0, 24\n\
+lsrs r5, r0, 24\n\
+cmp r5, r9\n\
+bcc _081196B6\n\
+_0811970E:\n\
+ldrb r0, [r4, 0x3]\n\
+lsls r0, 27\n\
+lsrs r0, 27\n\
+adds r0, 0x1\n\
+ldrb r1, [r4, 0x2]\n\
+ands r0, r1\n\
+cmp r0, 0\n\
+beq _08119756\n\
+ldr r2, [sp, 0xC]\n\
+cmp r2, 0\n\
+beq _08119744\n\
+movs r0, 0xFF\n\
+ldr r3, [sp, 0x10]\n\
+ands r0, r3\n\
+cmp r0, 0xBF\n\
+bhi _08119744\n\
+mov r0, r8\n\
+strh r2, [r0, 0x3C]\n\
+b _08119766\n\
+.align 2, 0\n\
+_08119734: .4byte gSharedMem + 0x19000\n\
+_08119738: .4byte gUnknown_083F8C00 + 0xC\n\
+_0811973C: .4byte gUnknown_083F8D90 + 0x4\n\
+_08119740: .4byte gSharedMem + 0x1901B\n\
+_08119744:\n\
+ldr r0, [sp, 0x10]\n\
+mov r1, r10\n\
+bl __modsi3\n\
+add r0, sp\n\
+ldrb r0, [r0]\n\
+mov r1, r8\n\
+strh r0, [r1, 0x3C]\n\
+b _08119766\n\
+_08119756:\n\
+ldr r0, [sp, 0x10]\n\
+mov r1, r10\n\
+bl __modsi3\n\
+add r0, sp\n\
+ldrb r0, [r0]\n\
+mov r2, r8\n\
+strh r0, [r2, 0x3C]\n\
+_08119766:\n\
+ldr r3, _0811977C @ =sub_8118CEC\n\
+mov r0, r8\n\
+str r3, [r0, 0x1C]\n\
+add sp, 0x14\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\
+.align 2, 0\n\
+_0811977C: .4byte sub_8118CEC\n\
+.syntax divided\n");
+}
+#endif
+
+void sub_8119780(struct Sprite *sprite)
+{
+ if (!(sprite->data[0x1]++ < sprite->data[0x3]))
+ {
+ if ((sprite->pos1.x -= 0x2) < -0x10)
+ {
+ if (!eRoulette->var03_6)
+ {
+ eRoulette->var03_6 = TRUE;
+ }
+ DestroySprite(sprite);
+ eRoulette->var01 = 0x0;
+ eRoulette->var34 = gUnknown_083FA61E[0x0];
+ }
+ }
+}
+
+void sub_81197D8(struct Sprite *sprite)
+{
+ u16 t[0x3][0x4];
+ s32 p, z;
+ memcpy(t, &gUnknown_083FA632, 0x18);
+ if (sprite->data[0x1]++ < sprite->data[0x3])
+ {
+ if(sprite->data[0x1] & 0x1)
+ {
+ gSpriteCoordOffsetY = t[sprite->data[0x2] / 0x2][sprite->data[0x7]];
+ p = z = sprite->data[0x7] + 0x1;
+ if (z < 0)
+ p += 0x3;
+ sprite->data[0x7] = z - ((p >> 2) * 4);
+ }
+ sprite->invisible ^= 0x1;
+ }
+ else
+ {
+ gSpriteCoordOffsetY = 0x0;
+ gSprites[eRoulette->var3C[0x37]].animPaused = FALSE;
+ DestroySprite(sprite);
+ }
+}
+
+void sub_8119898(struct Sprite *sprite)
+{
+ float t;
+ sprite->data[0x1]++;
+ t = sprite->data[0x1];
+ sprite->pos2.y = t * 0.039f * t;
+ eRoulette->var34 = gUnknown_083FA61E[(eRoulette->var01 - 0x1) / 2];
+ if (eRoulette->var01 < 0x13)
+ eRoulette->var01++;
+ if (sprite->data[0x1] > 0x3C)
+ {
+ sprite->data[0x1] = 0x0;
+ sprite->callback = &sub_8119780;
+ gSprites[sprite->data[0x6]].callback = &sub_8119780;
+ gSprites[sprite->data[0x6]].data[0x1] = -0x2;
+ gSprites[sprite->data[0x5]].invisible = FALSE;
+ gSprites[sprite->data[0x5]].callback = &sub_81197D8;
+ m4aSongNumStart(0xD6);
+ }
+}
+
+void sub_8119964(struct Sprite *sprite)
+{
+ if(sprite->data[0x7] == 0x0)
+ {
+ register u32 t asm("r2");
+ u32 z ;
+ if (eRoulette->var38->data[0x0] == 0x0)
+ {
+ t = eRoulette->var38->data[0x3];
+ z = gUnknown_083F8DF4[eRoulette->var04_0].var08;
+ }
+ else
+ {
+ t = eRoulette->var38->data[0x3];
+ z = gUnknown_083F8DF4[eRoulette->var04_0].var08;
+ z += 0xB4;
+ }
+ if (t == z)
+ {
+ sprite->invisible = FALSE;
+ sprite->data[0x7]++;
+ m4aSongNumStart(0x2B);
+ eRoulette->var01 = 0x1;
+ eRoulette->var34 = gUnknown_083FA61E[0x0];
+ }
+ }
+ else
+ {
+ u32 t, z;
+ eRoulette->var34 = gUnknown_083FA61E[(eRoulette->var01 - 0x1) / 2];
+ if (eRoulette->var01 < 0x13)
+ eRoulette->var01++;
+ if (eRoulette->var38->data[0x0] == 0x0)
+ {
+ t = eRoulette->var38->data[0x3];
+ z = gUnknown_083F8DF4[eRoulette->var04_0].var0A;
+ }
+ else
+ {
+ t = eRoulette->var38->data[0x3];
+ z = gUnknown_083F8DF4[eRoulette->var04_0].var0A ;
+ z += 0xB4;
+ }
+ if (t == z)
+ {
+ gSprites[sprite->data[0x4]].callback = &sub_8119898;
+ gSprites[sprite->data[0x4]].invisible = FALSE;
+ sprite->callback = &SpriteCallbackDummy;
+ sprite->data[0x7] = 0x0;
+ }
+ }
+}
+
+void sub_8119A90(struct Sprite *sprite)
+{
+ sprite->invisible ^= 0x1;
+}
+
+void sub_8119AAC(struct Sprite *sprite)
+{
+ if (sprite->pos1.y > -0x10)
+ {
+ sprite->pos1.y--;
+ }
+ else
+ {
+ sprite->callback = &SpriteCallbackDummy;
+ sprite->invisible = TRUE;
+ sprite->animPaused = TRUE;
+ m4aSongNumStop(0x5E);
+ DestroySprite(sprite);
+ FreeOamMatrix(gSprites[eRoulette->var3C[0x38]].oam.matrixNum);
+ DestroySprite(&gSprites[eRoulette->var3C[0x38]]);
+ }
+}
+
+void sub_8119B24(struct Sprite *sprite)
+{
+ if (!(sprite->data[0x1] < 0x0))
+ {
+ sprite->data[0x1]--;
+ sprite->pos1.y--;
+ if (sprite->data[0x1] == 0x0 && sprite->animCmdIndex == 0x1)
+ sprite->pos2.y++;
+ }
+ else
+ {
+ if (!(sprite->data[0x3] < 0x0))
+ {
+ sprite->data[0x3]--;
+ if (sprite->animDelayCounter == 0x0)
+ {
+ if (sprite->animCmdIndex == 0x1)
+ sprite->pos2.y++;
+ else
+ sprite->pos2.y--;
+ }
+ }
+ else
+ {
+ m4aSongNumStart(0x2B);
+ StartSpriteAnim(sprite, eRoulette->var38->data[0x0] + 0x4);
+ sprite->callback = &sub_8119AAC;
+ gSprites[sprite->data[0x6]].affineAnimPaused = FALSE;
+ }
+ }
+}
+
+void sub_8119BCC(struct Sprite *sprite)
+{
+ s8 t[0x2]; //sign
+ s8 z[0x8][0x2];
+ memcpy(t, &gUnknown_083FA64A, 0x2);
+ memcpy(z, &gUnknown_083FA64C, 0x10);
+ if (sprite->data[0x1]-- > 0x7)
+ {
+ sprite->pos1.x += t[eRoulette->var38->data[0x0]] * 0x2;
+ if (IsSEPlaying())
+ {
+ s8 u = -((0x74 - sprite->pos1.x) / 0x2);
+ m4aMPlayPanpotControl(&gMPlay_SE1, 0xFFFF,u);
+ m4aMPlayPanpotControl(&gMPlay_SE2, 0xFFFF, u);
+ }
+ }
+ else
+ {
+ if (!(sprite->data[0x1] < 0x0))
+ {
+ sprite->pos1.x += t[eRoulette->var38->data[0x0]] * z[0x7 - sprite->data[0x1]][0x0];
+ sprite->pos1.y += z[0x7 - sprite->data[0x1]][0x1];
+ }
+ else
+ {
+ m4aSongNumStartOrChange(0x5E);
+ if(eRoulette->var38->data[0x0] == 0x0)
+ PlayCry1(0x130, 0x3F);
+ else
+ PlayCry1(0x130, -0x3F);
+ StartSpriteAnim(sprite, eRoulette->var38->data[0x0] + 0x2);
+ sprite->data[0x1] = 45;
+ sprite->callback = &sub_8119B24;
+ }
+ }
+}
+
+void sub_8119D08(struct Sprite *sprite)
+{
+ s8 t[0x2]; //sign
+ memcpy(t, &gUnknown_083FA64A, 0x2);
+ if (!(sprite->data[0x1]-- < 0x0))
+ {
+ sprite->pos1.x += t[eRoulette->var38->data[0x0]] * 0x2;
+ gSprites[sprite->data[0x6]].invisible ^= 0x1;
+ }
+ else
+ {
+ sprite->callback = &sub_8119A90;
+ }
+}
+
+void sub_8119D80(struct Sprite *sprite)
+{
+ if (eRoulette->var38->data[0x0] == 0x0)
+ {
+ if (eRoulette->var38->data[0x3] == gUnknown_083F8DF4[eRoulette->var04_0].var12 + 90)
+ {
+ gSprites[sprite->data[0x6]].data[0x1] = 0x34;
+ gSprites[sprite->data[0x4]].data[0x1] = 0x34;
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ if (eRoulette->var38->data[0x3] == gUnknown_083F8DF4[eRoulette->var04_0].var14 + 270)
+ {
+ gSprites[sprite->data[0x6]].data[0x1] = 0x2E;
+ gSprites[sprite->data[0x4]].data[0x1] = 0x2E;
+ }
+ else
+ {
+ return;
+ }
+ }
+ gSprites[sprite->data[0x6]].callback = &sub_8119D08;
+ gSprites[sprite->data[0x4]].callback = &sub_8119BCC;
+ m4aSongNumStart(0x2B);
+}
diff --git a/src/roulette_util.c b/src/roulette_util.c
new file mode 100644
index 000000000..f3eae5518
--- /dev/null
+++ b/src/roulette_util.c
@@ -0,0 +1,242 @@
+#include "global.h"
+#include "roulette_util.h"
+#include "roulette.h"
+
+static u8 sub_81249E4(struct UnkStruct3 *);
+static u8 sub_8124BEC(struct UnkStruct3 *);
+u8 unref_sub_81249B0(struct UnkStruct0 *, u8);
+
+extern u16 gPlttBufferFaded[];
+extern u16 gPlttBufferUnfaded[];
+
+void sub_8124918(struct UnkStruct0 *r0)
+{
+ r0->var00 = 0;
+ r0->var02 = 0;
+ memset(&r0->var04, 0, sizeof(r0->var04));
+}
+
+u8 sub_812492C(struct UnkStruct0 *r0, u8 r1, struct UnkStruct1 *r2)
+{
+ if (!(r1 < 16) || (r0->var04[r1].var00_7))
+ return 0xFF;
+
+ r0->var04[r1].var04.var00 = r2->var00;
+ r0->var04[r1].var04.var02 = r2->var02;
+ r0->var04[r1].var04.var04 = r2->var04;
+ r0->var04[r1].var04.var05 = r2->var05;
+ r0->var04[r1].var04.var06 = r2->var06;
+ r0->var04[r1].var04.var07_0 = r2->var07_0;
+ r0->var04[r1].var04.var07_5 = r2->var07_5;
+ r0->var04[r1].var04.var07_7 = r2->var07_7;
+ r0->var04[r1].var00_0 = 0;
+ r0->var04[r1].var00_7 = 1;
+ r0->var04[r1].var02 = 0;
+ r0->var04[r1].var01 = 0;
+ if (r0->var04[r1].var04.var07_7 < 0)
+ r0->var04[r1].var03 = 0xFF;
+ else
+ r0->var04[r1].var03 = 1;
+ return r1;
+}
+
+u8 unref_sub_81249B0(struct UnkStruct0 *r0, u8 r1)
+{
+ if (r1 >= 16)
+ return 0xFF;
+ if (!r0->var04[r1].var00_7)
+ return 0xFF;
+ memset(&r0->var04[r1], 0, sizeof(r0->var04[r1]));
+ return r1;
+}
+
+u8 sub_81249E4(struct UnkStruct3 *r0)
+{
+ u8 i;
+ u8 returnval;
+
+ for (i = 0; i < r0->var04.var04; i++)
+ {
+ struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i];
+ struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i];
+
+ switch (r0->var00_0)
+ {
+ case 1:
+ if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32)
+ faded->r += r0->var03;
+ if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32)
+ faded->g += r0->var03;
+ if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32)
+ faded->b += r0->var03;
+ break;
+ case 2:
+ if (r0->var03 < 0)
+ {
+ if (faded->r + r0->var03 >= unfaded->r)
+ faded->r += r0->var03;
+ if (faded->g + r0->var03 >= unfaded->g)
+ faded->g += r0->var03;
+ if (faded->b + r0->var03 >= unfaded->b)
+ faded->b += r0->var03;
+ }
+ else
+ {
+ if (faded->r + r0->var03 <= unfaded->r)
+ faded->r += r0->var03;
+ if (faded->g + r0->var03 <= unfaded->g)
+ faded->g += r0->var03;
+ if (faded->b + r0->var03 <= unfaded->b)
+ faded->b += r0->var03;
+ }
+ break;
+ }
+ }
+ if ((u32)r0->var02++ != r0->var04.var07_0)
+ {
+ returnval = 0;
+ }
+ else
+ {
+ r0->var02 = 0;
+ r0->var03 *= -1;
+ if (r0->var00_0 == 1)
+ r0->var00_0++;
+ else
+ r0->var00_0--;
+ returnval = 1;
+ }
+ return returnval;
+}
+
+u8 sub_8124BEC(struct UnkStruct3 *r0)
+{
+ u8 rg2 = 0;
+
+ switch (r0->var00_0)
+ {
+ case 1:
+ for (rg2 = 0; rg2 < r0->var04.var04; rg2++)
+ gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00;
+ r0->var00_0++;
+ break;
+ case 2:
+ for (rg2 = 0; rg2 < r0->var04.var04; rg2++)
+ gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2];
+ r0->var00_0--;
+ break;
+ }
+ return 1;
+}
+
+void task_tutorial_controls_fadein(struct UnkStruct0 *r0)
+{
+ u8 i = 0;
+
+ if (r0->var00)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ if ((r0->var02 >> i) & 1)
+ {
+ if (--r0->var04[i].var01 == 0xFF) // if underflow ?
+ {
+ if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ?
+ sub_81249E4(&r0->var04[i]);
+ else
+ sub_8124BEC(&r0->var04[i]);
+ r0->var04[i].var01 = r0->var04[i].var04.var05;
+ }
+ }
+ }
+ }
+}
+
+void sub_8124CE8(struct UnkStruct0 *r0, u16 r1)
+{
+ u8 i = 0;
+
+ r0->var00++;
+ for (i = 0; i < 16; i++)
+ {
+ if ((r1 >> i) & 1)
+ {
+ if (r0->var04[i].var00_7)
+ {
+ r0->var02 |= 1 << i;
+ r0->var04[i].var00_0 = 1;
+ }
+ }
+ }
+}
+
+void sub_8124D3C(struct UnkStruct0 *r0, u16 r1)
+{
+ u8 i;
+
+ for (i = 0; i < 16; i++)
+ {
+ if ((r0->var02 >> i) & 1)
+ {
+ if (r0->var04[i].var00_7)
+ {
+ if ((r1 >> i) & 1)
+ {
+ u32 offset = r0->var04[i].var04.var02;
+ u16 *faded = &gPlttBufferFaded[offset];
+ u16 *unfaded = &gPlttBufferUnfaded[offset];
+ memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2);
+ r0->var04[i].var00_0 = 0;
+ r0->var04[i].var02 = 0;
+ r0->var04[i].var01 = 0;
+ if (r0->var04[i].var04.var07_7 < 0)
+ r0->var04[i].var03 = 0xFF;
+ else
+ r0->var04[i].var03 = 0x1;
+ }
+ }
+ }
+ }
+ if (r1 == 0xFFFF)
+ {
+ r0->var00 = 0;
+ r0->var02 = 0;
+ }
+ else
+ {
+ r0->var02 = r0->var02 & ~r1;
+ }
+}
+void sub_8124DDC(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height)
+{
+ u16 *_dest;
+ u8 i;
+ u8 j;
+ i = 0;
+ dest = &dest[top * 32 + left];
+ for (; i < height; i++)
+ {
+ _dest = dest + i * 32;
+ for (j = 0; j < width; j++)
+ {
+ *_dest++ = src;
+ }
+ }
+}
+void sub_8124E2C(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height)
+{
+ u16 *_dest;
+ u16 *_src = src;
+ u8 i;
+ u8 j;
+ i = 0;
+ dest = &dest[top * 32 + left];
+ for (; i < height; i++)
+ {
+ _dest = dest + i * 32;
+ for (j = 0; j < width; j++)
+ {
+ *_dest++ = *_src++;
+ }
+ }
+}
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
new file mode 100644
index 000000000..b4de0689f
--- /dev/null
+++ b/src/scanline_effect.c
@@ -0,0 +1,261 @@
+#include "global.h"
+#include "data2.h"
+#include "task.h"
+#include "trig.h"
+#include "scanline_effect.h"
+
+static void CopyValue16Bit(void);
+static void CopyValue32Bit(void);
+
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
+
+EWRAM_DATA static u8 sShouldStopWaveTask = FALSE;
+
+struct ScanlineEffect gScanlineEffect;
+
+// Per-scanline register values.
+// This is double buffered so that it can be safely written to at any time
+// without overwriting the buffer that the DMA is currently reading
+u16 gScanlineEffectRegBuffers[2][0x3C0];
+
+void ScanlineEffect_Stop(void)
+{
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ if (gScanlineEffect.waveTaskId != 0xFF)
+ {
+ DestroyTask(gScanlineEffect.waveTaskId);
+ gScanlineEffect.waveTaskId = 0xFF;
+ }
+}
+
+void ScanlineEffect_Clear(void)
+{
+ CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
+ gScanlineEffect.dmaSrcBuffers[0] = NULL;
+ gScanlineEffect.dmaSrcBuffers[1] = NULL;
+ gScanlineEffect.dmaDest = NULL;
+ gScanlineEffect.dmaControl = 0;
+ gScanlineEffect.srcBuffer = 0;
+ gScanlineEffect.state = 0;
+ gScanlineEffect.unused16 = 0;
+ gScanlineEffect.unused17 = 0;
+ gScanlineEffect.waveTaskId = 0xFF;
+}
+
+void ScanlineEffect_SetParams(struct ScanlineEffectParams params)
+{
+ if (params.dmaControl == SCANLINE_EFFECT_DMACNT_16BIT) // 16-bit
+ {
+ // Set the DMA src to the value for the second scanline because the
+ // first DMA transfer occurs in HBlank *after* the first scanline is drawn
+ gScanlineEffect.dmaSrcBuffers[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.setFirstScanlineReg = CopyValue16Bit;
+ }
+ else // assume 32-bit
+ {
+ // Set the DMA src to the value for the second scanline because the
+ // first DMA transfer occurs in HBlank *after* the first scanline is drawn
+ gScanlineEffect.dmaSrcBuffers[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.setFirstScanlineReg = CopyValue32Bit;
+ }
+
+ gScanlineEffect.dmaControl = params.dmaControl;
+ gScanlineEffect.dmaDest = params.dmaDest;
+ gScanlineEffect.state = params.initState;
+ gScanlineEffect.unused16 = params.unused9;
+ gScanlineEffect.unused17 = params.unused9;
+}
+
+void ScanlineEffect_InitHBlankDmaTransfer(void)
+{
+ if (gScanlineEffect.state == 0)
+ {
+ return;
+ }
+ else if (gScanlineEffect.state == 3)
+ {
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ sShouldStopWaveTask = TRUE;
+ }
+ else
+ {
+ DmaStop(0);
+ // Set DMA to copy to dest register on each HBlank for the next frame.
+ // The HBlank DMA transfers do not occurr during VBlank, so the transfer
+ // will begin on the HBlank after the first scanline
+ DmaSet(0, gScanlineEffect.dmaSrcBuffers[gScanlineEffect.srcBuffer], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl);
+ // Manually set the reg for the first scanline
+ gScanlineEffect.setFirstScanlineReg();
+ // Swap current buffer
+ gScanlineEffect.srcBuffer ^= 1;
+ }
+}
+
+// These two functions are used to copy the register for the first scanline,
+// depending whether it is a 16-bit register or a 32-bit register.
+
+static void CopyValue16Bit(void)
+{
+ u16 *dest = (u16 *)gScanlineEffect.dmaDest;
+ u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+
+ *dest = *src;
+}
+
+static void CopyValue32Bit(void)
+{
+ u32 *dest = (u32 *)gScanlineEffect.dmaDest;
+ u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+
+ *dest = *src;
+}
+
+#define tStartLine data[0]
+#define tEndLine data[1]
+#define tWaveLength data[2]
+#define tSrcBufferOffset data[3]
+#define tFramesUntilMove data[4]
+#define tDelayInterval data[5]
+#define tRegOffset data[6]
+#define tApplyBattleBgOffsets data[7]
+
+static void TaskFunc_UpdateWavePerFrame(u8 taskId)
+{
+ int value = 0;
+ int i;
+ int offset;
+
+ if (sShouldStopWaveTask)
+ {
+ DestroyTask(taskId);
+ gScanlineEffect.waveTaskId = 0xFF;
+ }
+ else
+ {
+ if (gTasks[taskId].tApplyBattleBgOffsets)
+ {
+ switch (gTasks[taskId].tRegOffset)
+ {
+ case SCANLINE_EFFECT_REG_BG0HOFS:
+ value = gBattle_BG0_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG0VOFS:
+ value = gBattle_BG0_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG1HOFS:
+ value = gBattle_BG1_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG1VOFS:
+ value = gBattle_BG1_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG2HOFS:
+ value = gBattle_BG2_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG2VOFS:
+ value = gBattle_BG2_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG3HOFS:
+ value = gBattle_BG3_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG3VOFS:
+ value = gBattle_BG3_Y;
+ break;
+ }
+ }
+ if (gTasks[taskId].tFramesUntilMove != 0)
+ {
+ gTasks[taskId].tFramesUntilMove--;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ offset++;
+ }
+ }
+ else
+ {
+ gTasks[taskId].tFramesUntilMove = gTasks[taskId].tDelayInterval;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ offset++;
+ }
+
+ // increment src buffer offset
+ gTasks[taskId].tSrcBufferOffset++;
+ if (gTasks[taskId].tSrcBufferOffset == gTasks[taskId].tWaveLength)
+ gTasks[taskId].tSrcBufferOffset = 0;
+ }
+ }
+}
+
+static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused)
+{
+ u16 i = 0;
+ u8 theta = 0;
+
+ while (i < 256)
+ {
+ buffer[i] = (gSineTable[theta] * amplitude) / 256;
+ theta += frequency;
+ i++;
+ }
+}
+
+// Initializes a background "wave" effect that affects scanlines startLine (inclusive) to endLine (exclusive).
+// 'frequency' and 'amplitude' control the frequency and amplitude of the wave.
+// 'delayInterval' controls how fast the wave travels up the screen. The wave will shift upwards one scanline every 'delayInterval'+1 frames.
+// 'regOffset' is the offset of the video register to modify.
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 applyBattleBgOffsets)
+{
+ int i;
+ int offset;
+ struct ScanlineEffectParams params;
+ u8 taskId;
+
+ ScanlineEffect_Clear();
+
+ params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset);
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.initState = 1;
+ params.unused9 = 0;
+ ScanlineEffect_SetParams(params);
+
+ taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0);
+
+ gTasks[taskId].tStartLine = startLine;
+ gTasks[taskId].tEndLine = endLine;
+ gTasks[taskId].tWaveLength = 256 / frequency;
+ gTasks[taskId].tSrcBufferOffset = 0;
+ gTasks[taskId].tFramesUntilMove = delayInterval;
+ gTasks[taskId].tDelayInterval = delayInterval;
+ gTasks[taskId].tRegOffset = regOffset;
+ gTasks[taskId].tApplyBattleBgOffsets = applyBattleBgOffsets;
+
+ gScanlineEffect.waveTaskId = taskId;
+ sShouldStopWaveTask = FALSE;
+
+ GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine);
+
+ offset = 320;
+ for (i = startLine; i < endLine; i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset];
+ gScanlineEffectRegBuffers[1][i] = gScanlineEffectRegBuffers[0][offset];
+ offset++;
+ }
+
+ return taskId;
+}
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 53308e856..24cbcb9c0 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -198,8 +198,8 @@ void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo);
void sub_80A6978(void);
u8 sub_80A7DEC(u8 berryId, u8 x, u8 y, bool8 animate);
-void sub_814A880(u8 a1, u8 a2);
-u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+void MenuCursor_SetPos814A880(u8 a1, u8 a2);
+u8 MenuCursor_Create814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
s8 GetFirstFreePokeblockSlot(void);
bool8 sub_810CA34(struct Pokeblock *pokeblock);
#ifdef GERMAN
@@ -215,7 +215,7 @@ extern u8 byte_3002A68;
extern const u8 gUnknown_08E6C100[];
extern const u8 gUnknown_08E6C920[];
extern const u8 gUnknown_08E6D354[];
-extern const struct WindowConfig gWindowConfig_81E6F68;
+extern const struct WindowTemplate gWindowTemplate_81E6F68;
extern const u8 *const gPokeblockNames[];
extern const struct Berry gBerries[];
@@ -274,12 +274,12 @@ static void sub_8051B18(void);
static void sub_805123C(void);
static void sub_8050954(void);
static bool8 Blender_PrintBlendingRanking(void);
-static bool8 Blender_PrintBlendingResults(void);
+bool8 Blender_PrintBlendingResults(void);
static void sub_80510E8(void);
static void sub_8050E30(void);
static void sub_805197C(u16 a0, u16 a1);
-static void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst);
-static void sub_8052BD0(u8 taskID);
+/*static*/ void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst);
+/*static*/ void sub_8052BD0(u8 taskID);
static void sub_8052AF8(void);
static void sub_804F8C8(u8 taskID);
static void sub_804F9F4(u8 taskID);
@@ -832,34 +832,13 @@ static bool8 sub_804E2EC(void)
gBerryBlenderData->field_1++;
break;
case 1:
- {
- const void* offsetRead = sBlenderCenterMap;
- void* offsetWrite = (void*)(VRAM + 0x4000);
-
- DmaCopy16(3, offsetRead, offsetWrite, 0x400);
- LoadPalette(sBlenderCenterPal, 0, 0x100);
- gBerryBlenderData->field_1++;
- }
+ DmaCopy16Defvars(3, sBlenderCenterMap, (void *)(VRAM + 0x4000), 0x400);
+ LoadPalette(sBlenderCenterPal, 0, 0x100);
+ gBerryBlenderData->field_1++;
break;
case 2:
- {
- void* offsetRead = ewram10000;
- void* offsetWrite = (void*)(VRAM);
- u32 size = 0x2000;
- while (TRUE)
- {
- DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
- offsetRead += 0x1000;
- offsetWrite += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaCopy16(3, offsetRead, offsetWrite, size);
- break;
- }
- }
- gBerryBlenderData->field_1++;
- }
+ DmaCopyLarge16(3, ewram10000, (void *)(VRAM + 0x0), 0x2000, 0x1000);
+ gBerryBlenderData->field_1++;
break;
case 3:
LZDecompressWram(gUnknown_08E6C920, ewram10000);
@@ -870,37 +849,23 @@ static bool8 sub_804E2EC(void)
gBerryBlenderData->field_1++;
break;
case 5:
- {
- void* offsetRead = ewram10000;
- void* offsetWrite = (void*)(VRAM + 0xE000);
-
- DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
- gBerryBlenderData->field_1++;
- }
+ DmaCopy16Defvars(3, ewram10000, (void *)(VRAM + 0xE000), 0x1000);
+ gBerryBlenderData->field_1++;
break;
case 6:
- {
- void* offsetRead = ewram11000;
- void* offsetWrite = (void*)(VRAM + 0xF000);
-
- DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
- gBerryBlenderData->field_1++;
- }
+ DmaCopy16Defvars(3, ewram11000, (void *)(VRAM + 0xF000), 0x1000);
+ gBerryBlenderData->field_1++;
break;
case 7:
{
u16 i;
u16* palStore = (u16*)(ewram13000);
- void* offsetRead;
- void* offsetWrite;
for (i = 0; i < 640; i++)
{
*(palStore + i) |= 0x100;
}
- offsetRead = ewram13000;
- offsetWrite = (void*)(VRAM + 0x6000);
- DmaCopy16(3, offsetRead, offsetWrite, 0x500);
+ DmaCopy16Defvars(3, ewram13000, (void *)(VRAM + 0x6000), 0x500);
LoadPalette(sBlenderOuterPal, 0x80, 0x20);
gBerryBlenderData->field_1++;
}
@@ -957,8 +922,8 @@ static void sub_804E56C(void)
ResetSpriteData();
FreeAllSpritePalettes();
SetVBlankCallback(NULL);
- SetUpWindowConfig(&gWindowConfig_81E6F68);
- InitMenuWindow(&gWindowConfig_81E6F68);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F68);
+ InitMenuWindow(&gWindowTemplate_81E6F68);
gBerryBlenderData->field_0++;
gBerryBlenderData->field_140 = 0;
gBerryBlenderData->field_13E = 0;
@@ -993,12 +958,12 @@ static void sub_804E56C(void)
}
break;
case 4:
- MenuDrawTextWindow(0, 14, 29, 19);
+ Menu_DrawStdWindowFrame(0, 14, 29, 19);
MenuPrintMessage(gOtherText_BlenderChooseBerry, 1, 15);
gBerryBlenderData->field_0++;
break;
case 5:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
gBerryBlenderData->field_0++;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
@@ -1135,8 +1100,8 @@ static void sub_804E9F8(void)
FreeAllSpritePalettes();
ResetTasks();
SetVBlankCallback(VBlankCB0_BerryBlender);
- SetUpWindowConfig(&gWindowConfig_81E6F68);
- InitMenuWindow(&gWindowConfig_81E6F68);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F68);
+ InitMenuWindow(&gWindowTemplate_81E6F68);
gLinkType = 0x4422;
gBerryBlenderData->field_0++;
gBerryBlenderData->field_4E = 0;
@@ -1184,8 +1149,8 @@ static void sub_804E9F8(void)
}
break;
case 5:
- MenuDrawTextWindow(0, 13, 29, 19);
- MenuPrint(gOtherText_LinkStandby3, 1, 14);
+ Menu_DrawStdWindowFrame(0, 13, 29, 19);
+ Menu_PrintText(gOtherText_LinkStandby3, 1, 14);
gBerryBlenderData->field_0 = 8;
gBerryBlenderData->framesToWait = 0;
break;
@@ -1198,7 +1163,7 @@ static void sub_804E9F8(void)
gBerryBlenderData->framesToWait = 0;
break;
case 9:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
ResetBlockReceivedFlags();
if (GetMultiplayerId() == 0)
@@ -1209,7 +1174,7 @@ static void sub_804E9F8(void)
case 10:
if (++gBerryBlenderData->framesToWait > 20)
{
- MenuZeroFillScreen();
+ Menu_EraseScreen();
if (GetBlockReceivedStatus() == sub_8008198())
{
for (i = 0; i < GetLinkPlayerCount(); i++)
@@ -1250,7 +1215,7 @@ static void sub_804E9F8(void)
}
break;
case 13:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
gBerryBlenderData->field_0++;
sub_8051414(&gBerryBlenderData->field_168);
@@ -1292,7 +1257,7 @@ static void sub_804E9F8(void)
gBerryBlenderData->field_0++;
break;
case 20:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
sub_8007E24();
gBerryBlenderData->field_0++;
@@ -1309,12 +1274,12 @@ static void sub_804E9F8(void)
PlayBGM(BGM_CYCLING);
break;
case 100:
- MenuDrawTextWindow(0, 13, 29, 19);
+ Menu_DrawStdWindowFrame(0, 13, 29, 19);
MenuPrintMessage(gOtherText_LinkNotFound, 1, 15);
gBerryBlenderData->field_0++;
break;
case 101:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
gBerryBlenderData->field_0++;
break;
case 102:
@@ -1338,8 +1303,8 @@ static void sub_804F0F4(void)
SetVBlankCallback(VBlankCB0_BerryBlender);
- SetUpWindowConfig(&gWindowConfig_81E6F68);
- InitMenuWindow(&gWindowConfig_81E6F68);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F68);
+ InitMenuWindow(&gWindowTemplate_81E6F68);
gLinkType = 0x4422;
@@ -1426,7 +1391,7 @@ static void sub_804F2A8(void)
if (GetMultiplayerId() == gBerryBlenderData->field_9A[i])
stringPtr = StringCopy(stringPtr, sRedColorString);
StringCopy(stringPtr, gLinkPlayers[gBerryBlenderData->field_9A[i]].name);
- MenuPrint_PixelCoords(gStringVar1, gUnknown_082162D4[i][0] * 8 + 1, gUnknown_082162D4[i][1] * 8, 1);
+ Menu_PrintTextPixelCoords(gStringVar1, gUnknown_082162D4[i][0] * 8 + 1, gUnknown_082162D4[i][1] * 8, 1);
}
}
}
@@ -2446,7 +2411,7 @@ static void BlenderDebug_CalculatePokeblock(struct BlenderBerry* berries, struct
Blender_CalculatePokeblock(berries, pokeblock, playersNo, flavours, a4);
}
-static void sub_8050760(void)
+/*static*/ void sub_8050760(void)
{
u32 frames = (u16)(gBerryBlenderData->gameFrameTime);
u16 max_RPM = gBerryBlenderData->max_RPM;
@@ -2494,15 +2459,15 @@ static void sub_8050760(void)
static void sub_80508D4(u8 value)
{
gBerryBlenderData->field_AA = value;
- sub_814A880(192, (gBerryBlenderData->field_AA * 16) + 72);
+ MenuCursor_SetPos814A880(192, (gBerryBlenderData->field_AA * 16) + 72);
}
static void sub_80508FC(void)
{
gBerryBlenderData->field_AA = 0;
- MenuDrawTextWindow(23, 8, 28, 13);
- sub_814A5C0(0, -1, 12, 0x2D9F, 32);
- MenuPrint(gOtherText_YesNoTerminating, 24, 9);
+ Menu_DrawStdWindowFrame(23, 8, 28, 13);
+ MenuCursor_Create814A5C0(0, -1, 12, 0x2D9F, 32);
+ Menu_PrintText(gOtherText_YesNoTerminating, 24, 9);
sub_80508D4(gBerryBlenderData->field_AA);
}
@@ -2541,7 +2506,7 @@ static void sub_8050954(void)
case 3:
if (/*multiplayerID != 0*/ GetMultiplayerId() != 0)
gBerryBlenderData->field_6F++;
- else if (sub_8007ECC())
+ else if (IsLinkTaskFinished())
{
gBerryBlenderData->field_1BC = gBerryBlenderData->gameFrameTime;
gBerryBlenderData->field_1C0 = gBerryBlenderData->max_RPM;
@@ -2567,19 +2532,19 @@ static void sub_8050954(void)
if (Blender_PrintBlendingResults())
{
if (gInGameOpponentsNo == 0)
- IncrementGameStat(34);
+ IncrementGameStat(GAME_STAT_POKEBLOCKS_WITH_FRIENDS);
else
- IncrementGameStat(33);
+ IncrementGameStat(GAME_STAT_POKEBLOCKS);
gBerryBlenderData->field_6F++;
}
break;
case 7:
gBerryBlenderData->field_6F++;
- MenuDrawTextWindow(0, 14, 29, 19);
+ Menu_DrawStdWindowFrame(0, 14, 29, 19);
MenuPrintMessage(gOtherText_BlendAnotherBerryPrompt, 1, 15);
break;
case 8:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
gBerryBlenderData->field_6F++;
break;
case 9:
@@ -2654,7 +2619,7 @@ static void sub_8050954(void)
}
break;
case 13:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
SetMainCallback2(sub_8050E30);
gBerryBlenderData->field_6F = 0;
@@ -2681,7 +2646,7 @@ bool8 sub_8050CE8(void)
gBerryBlenderData->framesToWait = 0;
break;
case 1:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
gBerryBlenderData->field_1C4++;
gSoftResetDisabled = TRUE;
@@ -2700,7 +2665,7 @@ bool8 sub_8050CE8(void)
}
break;
case 4:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
if (sub_8125E6C())
gBerryBlenderData->field_1C4 = 5;
@@ -2746,7 +2711,7 @@ static void sub_8050E30(void)
case 1:
gBerryBlenderData->field_6F = 3;
DestroyMenuCursor();
- MenuZeroFillWindowRect(23, 8, 28, 13);
+ Menu_EraseWindowRect(23, 8, 28, 13);
#ifdef ENGLISH
StringCopy(gStringVar4, gLinkPlayers[gBerryBlenderData->field_7A].name);
StringAppend(gStringVar4, gOtherText_OtherCaseIsFull);
@@ -2759,7 +2724,7 @@ static void sub_8050E30(void)
case 2:
gBerryBlenderData->field_6F++;
DestroyMenuCursor();
- MenuZeroFillWindowRect(23, 8, 28, 13);
+ Menu_EraseWindowRect(23, 8, 28, 13);
#ifdef ENGLISH
StringCopy(gStringVar4, gLinkPlayers[gBerryBlenderData->field_7A].name);
StringAppend(gStringVar4, gOtherText_NoBerriesForBlend);
@@ -2770,7 +2735,7 @@ static void sub_8050E30(void)
MenuPrintMessage(gStringVar4, 1, 15);
break;
case 3:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
gBerryBlenderData->framesToWait = 0;
gBerryBlenderData->field_6F++;
@@ -2781,13 +2746,13 @@ static void sub_8050E30(void)
gBerryBlenderData->field_6F = 5;
break;
case 5:
- MenuDrawTextWindow(0, 14, 29, 19);
- MenuPrint(gMultiText_Saving, 2, 15);
+ Menu_DrawStdWindowFrame(0, 14, 29, 19);
+ Menu_PrintText(gMultiText_Saving, 2, 15);
sub_80084A4();
gBerryBlenderData->field_6F++;
break;
case 6:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
gBerryBlenderData->framesToWait = 0;
gBerryBlenderData->field_6F++;
@@ -2806,7 +2771,7 @@ static void sub_8050E30(void)
sub_80084A4();
break;
case 9:
- if (sub_8007ECC())
+ if (IsLinkTaskFinished())
{
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gBerryBlenderData->field_6F++;
@@ -2859,17 +2824,17 @@ static void sub_80510E8(void)
case 1:
gBerryBlenderData->field_6F = 3;
DestroyMenuCursor();
- MenuZeroFillWindowRect(23, 8, 28, 13);
+ Menu_EraseWindowRect(23, 8, 28, 13);
MenuPrintMessage(gOtherText_CaseIsFull, 1, 15);
break;
case 2:
gBerryBlenderData->field_6F++;
DestroyMenuCursor();
- MenuZeroFillWindowRect(23, 8, 28, 13);
+ Menu_EraseWindowRect(23, 8, 28, 13);
MenuPrintMessage(gOtherText_OutOfBerries, 1, 15);
break;
case 3:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
gBerryBlenderData->field_6F = 9;
break;
case 9:
@@ -3080,14 +3045,14 @@ void unref_sub_80516F8(u8 taskID)
task->data[0] = 0;
if (task->data[0] == 100)
{
- ZeroFillWindowRect(&gBerryBlenderData->field_4, 0, 0, 16, 20);
- MenuDrawTextWindow(4, 4, 10, 12);
+ Text_EraseWindowRect(&gBerryBlenderData->field_4, 0, 0, 16, 20);
+ Menu_DrawStdWindowFrame(4, 4, 10, 12);
for (i = 0; i < 3; i++)
{
if (gLinkPlayers[i + 1].trainerId != 0)
- MenuPrint(gUnknown_08216284[i], 5, (2 * i) + 5);
- MenuDrawTextWindow(0, 13, 29, 19);
- MenuPrint(gOtherText_PressAToStart, 1, 15);
+ Menu_PrintText(gUnknown_08216284[i], 5, (2 * i) + 5);
+ Menu_DrawStdWindowFrame(0, 13, 29, 19);
+ Menu_PrintText(gOtherText_PressAToStart, 1, 15);
}
}
if (gMain.newKeys & A_BUTTON)
@@ -3099,7 +3064,7 @@ void unref_sub_80516F8(u8 taskID)
else
{
if (task->data[0] == 10)
- MenuPrint(gOtherText_PleaseWait, 3, 10);
+ Menu_PrintText(gOtherText_PleaseWait, 3, 10);
if (++task->data[0] > 120)
task->data[0] = 0;
if (byte_3002A68 > 4 && gReceivedRemoteLinkPlayers == 1)
@@ -3305,13 +3270,13 @@ static void sub_8051C04(struct Sprite* sprite)
sprite->pos2.y = -(gBerryBlenderData->field_146);
}
-static void Blender_TrySettingRecord(void)
+/*static*/ void Blender_TrySettingRecord(void)
{
if (gSaveBlock1.berryBlenderRecords[gBerryBlenderData->playersNo - 2] < gBerryBlenderData->max_RPM)
gSaveBlock1.berryBlenderRecords[gBerryBlenderData->playersNo - 2] = gBerryBlenderData->max_RPM;
}
-static bool8 Blender_PrintBlendingResults(void)
+bool8 Blender_PrintBlendingResults(void)
{
u16 i;
@@ -3348,7 +3313,7 @@ static bool8 Blender_PrintBlendingResults(void)
u8* textPtr;
u16 secondsPassed, minutes, seconds;
- MenuDrawTextWindow(4, 2, 25, 17);
+ Menu_DrawStdWindowFrame(4, 2, 25, 17);
sub_8072BD8(gOtherText_ResultsOfBlending, 5, 3, 160);
for (i = 0; i < gBerryBlenderData->playersNo; i++)
{
@@ -3370,7 +3335,7 @@ static bool8 Blender_PrintBlendingResults(void)
textPtr += 3;
textPtr = sub_8072C74(textPtr, gLinkPlayers[place].name, 88, 0);
sub_8072C74(textPtr, text[0], 157, 0);
- MenuPrint(gBerryBlenderData->stringVar, 5, gUnknown_082165E9[gBerryBlenderData->playersNo] + (i * gUnknown_082165EE[gBerryBlenderData->playersNo]));
+ Menu_PrintText(gBerryBlenderData->stringVar, 5, gUnknown_082165E9[gBerryBlenderData->playersNo] + (i * gUnknown_082165EE[gBerryBlenderData->playersNo]));
}
ConvertIntToDecimalStringN(text[0], gBerryBlenderData->max_RPM % 100, 2, 2);
textPtr = gBerryBlenderData->stringVar;
@@ -3388,7 +3353,7 @@ static bool8 Blender_PrintBlendingResults(void)
textPtr = sub_8072C74(textPtr, text[0], 136, 1);
#endif
StringCopy(textPtr, gOtherText_RPM);
- MenuPrint(gBerryBlenderData->stringVar, 5, 13);
+ Menu_PrintText(gBerryBlenderData->stringVar, 5, 13);
secondsPassed = gBerryBlenderData->gameFrameTime / 60;
seconds = secondsPassed % 60;
@@ -3408,7 +3373,7 @@ static bool8 Blender_PrintBlendingResults(void)
textPtr = sub_8072C74(textPtr, text[1], 136, 1);
StringCopy(textPtr, gOtherText_Sec);
- MenuPrint(gBerryBlenderData->stringVar, 5, 15);
+ Menu_PrintText(gBerryBlenderData->stringVar, 5, 15);
gBerryBlenderData->framesToWait = 0;
gBerryBlenderData->field_0++;
@@ -3419,8 +3384,8 @@ static bool8 Blender_PrintBlendingResults(void)
gBerryBlenderData->field_0++;
break;
case 5:
- MenuZeroFillScreen();
- MenuDrawTextWindow(0, 14, 29, 19);
+ Menu_EraseScreen();
+ Menu_DrawStdWindowFrame(0, 14, 29, 19);
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
{
if (gBerryBlenderData->chosenItemID[i] != 0)
@@ -3430,13 +3395,18 @@ static bool8 Blender_PrintBlendingResults(void)
Blender_CalculatePokeblock(gBerryBlenderData->blendedBerries, &pokeblock, gBerryBlenderData->playersNo, flavours, gBerryBlenderData->max_RPM);
Blender_PrintMadePokeblockString(&pokeblock, gBerryBlenderData->stringVar);
CreateTask(sub_8052BD0, 6);
+#if DEBUG
+ ConvertIntToHexStringN(text[0], sub_8007E40(), 0, 4);
+ StringAppend(text[0], gUnknown_08216249);
+ StringAppend(gBerryBlenderData->stringVar, text[0]);
+#endif
MenuPrintMessage(gBerryBlenderData->stringVar, 1, 15);
RemoveBagItem(gSpecialVar_ItemId, 1);
sub_810CA34(&pokeblock);
gBerryBlenderData->field_0++;
break;
case 6:
- if (MenuUpdateWindowText())
+ if (Menu_UpdateWindowText())
{
Blender_TrySettingRecord();
return TRUE;
@@ -3446,7 +3416,7 @@ static bool8 Blender_PrintBlendingResults(void)
return FALSE;
}
-static void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst)
+/*static*/ void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst)
{
u8 text[12];
u8 flavourLvl, feel;
@@ -3536,7 +3506,7 @@ static bool8 Blender_PrintBlendingRanking(void)
}
break;
case 3:
- MenuDrawTextWindow(4, 2, 25, 17);
+ Menu_DrawStdWindowFrame(4, 2, 25, 17);
sub_8072BD8(gOtherText_Ranking, 5, 3, 160);
gBerryBlenderData->scoreIconIDs[BLENDER_SCORE_BEST] = CreateSprite(&sSpriteTemplate_821645C, 140, 52, 0);
@@ -3575,7 +3545,7 @@ static bool8 Blender_PrintBlendingRanking(void)
txtPtr = sub_8072C14(txtPtr, gBerryBlenderData->scores[place][BLENDER_SCORE_GOOD], 132, 1);
txtPtr = sub_8072C14(txtPtr, gBerryBlenderData->scores[place][BLENDER_SCORE_MISS], 156, 1);
- MenuPrint(gBerryBlenderData->stringVar, 5, i * gUnknown_082165F3[gBerryBlenderData->playersNo] + 8);
+ Menu_PrintText(gBerryBlenderData->stringVar, 5, i * gUnknown_082165F3[gBerryBlenderData->playersNo] + 8);
}
gBerryBlenderData->framesToWait = 0;
gBerryBlenderData->field_0++;
@@ -3606,8 +3576,8 @@ void unref_sub_80524BC(void)
FreeAllSpritePalettes();
ResetTasks();
SetVBlankCallback(VBlankCB1_BerryBlender);
- SetUpWindowConfig(&gWindowConfig_81E6CE4);
- InitMenuWindow(&gWindowConfig_81E6CE4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
+ InitMenuWindow(&gWindowTemplate_81E6CE4);
SeedRng(gMain.vblankCounter1);
REG_DISPCNT = 0x1540;
RunTasks();
@@ -3625,10 +3595,10 @@ static void BlenderDebug_PrintBerryData(void)
u8 i;
StringCopy(text, sText_BPM);
- MenuPrint(text, 2, 0);
+ Menu_PrintText(text, 2, 0);
ConvertIntToDecimalStringN(text, sBlenderDebug.BPM / 100, 2, 3);
- MenuPrint(text, 6, 0);
+ Menu_PrintText(text, 6, 0);
for (i = 0; i < 4; i++)
{
@@ -3646,7 +3616,7 @@ static void BlenderDebug_PrintBerryData(void)
text[7] = EOS;
}
var = (i * 3) + 3;
- MenuPrint(text, 2, var);
+ Menu_PrintText(text, 2, var);
ConvertIntToDecimalStringN(&text[0], gBerries[sBlenderDebug.berries[i]].spicy, 2, 2);
StringAppend(text, sText_Space);
@@ -3666,12 +3636,12 @@ static void BlenderDebug_PrintBerryData(void)
ConvertIntToDecimalStringN(&text[15], gBerries[sBlenderDebug.berries[i]].smoothness, 2, 2);
text[17] = EOS;
- MenuPrint(text, 7, var);
+ Menu_PrintText(text, 7, var);
}
if (sBlenderDebug.pokeblock.color != 0)
{
StringCopy(text, gPokeblockNames[sBlenderDebug.pokeblock.color]);
- MenuPrint(text, 2, 15);
+ Menu_PrintText(text, 2, 15);
ConvertIntToHexStringN(&text[0], sBlenderDebug.spicy, 2, 2);
StringAppend(text, sText_Space);
@@ -3691,7 +3661,7 @@ static void BlenderDebug_PrintBerryData(void)
ConvertIntToHexStringN(&text[15], sBlenderDebug.feel, 2, 2);
text[17] = EOS;
- MenuPrint(text, 7, 17);
+ Menu_PrintText(text, 7, 17);
}
}
@@ -3743,7 +3713,7 @@ static void sub_80527BC(void)
gUnknown_020297DC = 0;
}
- MenuPrint(text, 2, 15);
+ Menu_PrintText(text, 2, 15);
}
static void sub_8052918(void)
@@ -3845,9 +3815,9 @@ void ShowBerryBlenderRecordWindow(void)
u8 text[30];
s32 i;
- MenuDrawTextWindow(6, 3, 23, 16);
- MenuPrint(gMultiText_BerryBlenderMaxSpeedRecord, 8, 4);
- MenuPrint(gMultiText_2P3P4P, 8, 9);
+ Menu_DrawStdWindowFrame(6, 3, 23, 16);
+ Menu_PrintText(gMultiText_BerryBlenderMaxSpeedRecord, 8, 4);
+ Menu_PrintText(gMultiText_2P3P4P, 8, 9);
for (i = 0; i < 3; i++)
{
@@ -3865,11 +3835,11 @@ void ShowBerryBlenderRecordWindow(void)
txtPtr = ConvertIntToDecimalStringN(txtPtr, record % 100, 2, 2);
StringAppend(txtPtr, gOtherText_RPM);
- MenuPrint(text, 15, i * 2 + 9);
+ Menu_PrintText(text, 15, i * 2 + 9);
}
}
-static void sub_8052BD0(u8 taskID)
+/*static*/ void sub_8052BD0(u8 taskID)
{
if (gTasks[taskID].data[0] == 0)
{
diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c
new file mode 100644
index 000000000..114505e4d
--- /dev/null
+++ b/src/scene/cable_car.c
@@ -0,0 +1,1198 @@
+
+// Includes
+#include "global.h"
+#include "ewram.h"
+#include "overworld.h"
+#include "palette.h"
+#include "random.h"
+#include "main.h"
+#include "menu.h"
+#include "script.h"
+#include "task.h"
+#include "sound.h"
+#include "graphics.h"
+#include "constants/songs.h"
+#include "decompress.h"
+#include "field_weather.h"
+#include "field_map_obj.h"
+#include "scanline_effect.h"
+#include "event_data.h"
+#include "cable_car_util.h"
+#include "constants/map_objects.h"
+#include "constants/weather.h"
+
+// Static type declarations
+
+// Credits to Made (dolphin emoji)
+#define S16TOPOSFLOAT(val) \
+({ \
+ s16 v = (val); \
+ float f = (float)v; \
+ if(v < 0) f += 65536.0f; \
+ f; \
+})
+
+struct CableCarEwramStruct1 {
+ u8 unk_0000;
+ u8 unk_0001;
+ u8 unk_0002;
+ u8 unk_0003;
+ u16 unk_0004;
+ u16 unk_0006;
+ u8 unk_0008;
+ u8 unk_0009;
+ u8 filler_000a[2];
+ u8 unk_000c;
+ u8 unk_000d;
+ u8 filler_0000e[6];
+ u8 unk_0014;
+ u8 unk_0015;
+ u8 unk_0016;
+ u8 unk_0017;
+ u8 unk_0018;
+ u8 unk_0019;
+ u8 unk_001a;
+ u8 unk_001b;
+ u8 unk_001c;
+ u8 unk_001d;
+ u8 unk_001e;
+ u8 unk_001f;
+ u8 unk_0020;
+ u16 unk_0022[9][12];
+ u8 filler_00fa[2];
+ u16 unk_00fc[0x20][0x20];
+ u16 unk_08fc[0x20][0x20];
+}; // size 0x10FC
+
+struct CableCarEwramStruct2 {
+ /* 0x000 */ u16 mtChimneyTilemap[0xb4];
+ /* 0x168 */ u16 treeTilemap[0x1e0];
+ /* 0x528 */ u16 mountainTilemap[0x258];
+ /* 0x9d8 */ u16 pylonStemTilemap[0x628]; // size not actually known
+};
+
+// Static RAM declarations
+
+EWRAM_DATA struct CableCarEwramStruct1 *sCableCarPtr = NULL;
+EWRAM_DATA u8 gUnknown_02039278 = 0;
+EWRAM_DATA u8 gUnknown_02039279 = 0;
+EWRAM_DATA u8 gUnknown_0203927A = 0;
+EWRAM_DATA u8 gUnknown_0203927B = 0;
+EWRAM_DATA u8 gUnknown_0203927C = 0;
+EWRAM_DATA u8 gUnknown_0203927D = 0;
+EWRAM_DATA u32 filler_02039280 = 0;
+
+// Static ROM declarations
+
+static void CableCarMainCallback_Setup(void);
+static void CableCarMainCallback_Run(void);
+static void sub_8123878(u8 taskId);
+static void sub_81239E4(u8 taskId);
+static void sub_8123AF8(u8 taskId);
+static void CableCarVblankCallback(void);
+static void nullsub_76(struct Sprite *sprite);
+static void sub_8123CB8(struct Sprite *sprite);
+static void sub_8123EB8(struct Sprite *sprite);
+static void sub_8123F44(struct Sprite *sprite);
+static void sub_8123FBC(u8);
+static void LoadSprites(void);
+static void sub_812453C(void);
+static void sub_8124598(void);
+static void sub_81245F4(void);
+static void sub_812476C(void);
+static void sub_81248AC(u8);
+
+// .rodata
+
+#if DEBUG
+
+u8 debug_sub_8138D74(void);
+u8 debug_sub_8138D8C(void);
+u8 debug_sub_8138C14(void);
+u8 debug_sub_8138C34(void);
+u8 debug_sub_810CD9C(void);
+
+const u8 Str_842DBD0[] = _("CABLE CAR U");
+const u8 Str_842DBDC[] = _("CABLE CAR D");
+const u8 Str_842DBE8[] = _("ROULETTE1");
+const u8 Str_842DBF2[] = _("ROULETTE3");
+const u8 Str_842DBFC[] = _("View a MAIL");
+
+const struct MenuAction gUnkDebug4Menu[] =
+{
+ {Str_842DBD0, debug_sub_8138D74},
+ {Str_842DBDC, debug_sub_8138D8C},
+ {Str_842DBE8, debug_sub_8138C14},
+ {Str_842DBF2, debug_sub_8138C34},
+ {Str_842DBFC, debug_sub_810CD9C},
+};
+
+#endif
+
+static const u8 gCableCarMtChimneyTilemap[] = INCBIN_U8("graphics/misc/cable_car_mt_chimney_map.bin.lz");
+
+static const u8 gCableCarTreeTilemap[] = INCBIN_U8("graphics/misc/cable_car_tree_map.bin.lz");
+
+static const u8 gCableCarMountainTilemap[] = INCBIN_U8("graphics/misc/cable_car_mountain_map.bin.lz");
+
+static const u16 gCableCarPylonHookTilemapEntries[] = {
+ 0x3000,
+ 0x3001,
+ 0x3002,
+ 0x3003,
+ 0x3004,
+ 0x3005,
+ 0x3006,
+ 0x3007,
+ 0x3008,
+ 0x3009
+};
+
+static const u8 gCableCarPylonStemTilemap[] = INCBIN_U8("graphics/misc/cable_car_pylon_stem_map.bin.lz");
+
+static const struct CompressedSpriteSheet gUnknown_08401CF8[] = {
+ { gCableCar_Gfx, 0x800, 1 },
+ { gCableCarDoor_Gfx, 0x40, 2 },
+ { gCableCarCord_Gfx, 0x80, 3 },
+ { }
+};
+static const struct SpritePalette gUnknown_08401D18[] = {
+ { gCableCar_Pal, 1 },
+ { }
+};
+
+static const struct OamData gOamData_8401D28 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .size = 3,
+ .priority = 2
+};
+
+static const struct OamData gOamData_8401D30 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .shape = ST_OAM_H_RECTANGLE,
+ .priority = 2
+};
+
+static const struct OamData gOamData_8401D38 = {
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .size = 1,
+ .priority = 2
+};
+
+static const struct SpriteTemplate gSpriteTemplate_8401D40[] = {
+ {
+ 1,
+ 1,
+ &gOamData_8401D28,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_8123CB8
+ }, {
+ 2,
+ 1,
+ &gOamData_8401D30,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ sub_8123CB8
+ }, {
+ 3,
+ 1,
+ &gOamData_8401D38,
+ gDummySpriteAnimTable,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ nullsub_76
+ }
+};
+
+// .text
+
+#if DEBUG
+
+__attribute__((naked))
+u8 debug_sub_8138C14(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r0, ._1 @ unk_203955C\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._1 + 4 @ MauvilleCity_GameCorner_EventScript_1C407E\n\
+ bl ScriptContext1_SetupScript\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+ pop {r1}\n\
+ bx r1\n\
+._2:\n\
+ .align 2, 0\n\
+._1:\n\
+ .word unk_203955C\n\
+ .word MauvilleCity_GameCorner_EventScript_1C407E");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138C34(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r0, ._3 @ unk_203955C\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._3 + 4 @ MauvilleCity_GameCorner_EventScript_1C40AC\n\
+ bl ScriptContext1_SetupScript\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+ pop {r1}\n\
+ bx r1\n\
+._4:\n\
+ .align 2, 0\n\
+._3:\n\
+ .word unk_203955C\n\
+ .word MauvilleCity_GameCorner_EventScript_1C40AC");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138C54(void)
+{
+ asm("\n\
+ push {r4, lr}\n\
+ ldr r4, ._10 @ gMain\n\
+ ldrh r0, [r4, #0x2e]\n\
+ cmp r0, #0x40\n\
+ bne ._5 @cond_branch\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ bl Menu_MoveCursor\n\
+._5:\n\
+ ldrh r0, [r4, #0x2e]\n\
+ cmp r0, #0x80\n\
+ bne ._6 @cond_branch\n\
+ mov r0, #0x1\n\
+ bl Menu_MoveCursor\n\
+._6:\n\
+ ldrh r1, [r4, #0x2e]\n\
+ cmp r1, #0x1\n\
+ beq ._7 @cond_branch\n\
+ ldr r0, ._10 + 4 @ 0x101\n\
+ cmp r1, r0\n\
+ bne ._8 @cond_branch\n\
+ ldr r1, ._10 + 8 @ gSpecialVar_0x8004\n\
+ mov r0, #0x1\n\
+ strh r0, [r1]\n\
+._7:\n\
+ ldr r4, ._10 + 12 @ gUnkDebug4Menu\n\
+ bl Menu_GetCursorPos\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x15\n\
+ add r4, r4, #0x4\n\
+ add r0, r0, r4\n\
+ ldr r0, [r0]\n\
+ bl _call_via_r0\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ b ._13\n\
+._11:\n\
+ .align 2, 0\n\
+._10:\n\
+ .word gMain\n\
+ .word 0x101\n\
+ .word gSpecialVar_0x8004\n\
+ .word gUnkDebug4Menu\n\
+._8:\n\
+ cmp r1, #0x2\n\
+ beq ._12 @cond_branch\n\
+ mov r0, #0x0\n\
+ b ._13\n\
+._12:\n\
+ bl CloseMenu\n\
+ mov r0, #0x1\n\
+._13:\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138CC4(void)
+{
+ asm("\n\
+ push {lr}\n\
+ add sp, sp, #0xfffffff8\n\
+ ldr r1, ._14 @ gSpecialVar_0x8004\n\
+ mov r0, #0x0\n\
+ strh r0, [r1]\n\
+ bl Menu_EraseScreen\n\
+ mov r0, #0x13\n\
+ mov r1, #0x0\n\
+ mov r2, #0x1d\n\
+ mov r3, #0xc\n\
+ bl Menu_DrawStdWindowFrame\n\
+ ldr r3, ._14 + 4 @ gUnkDebug4Menu\n\
+ mov r0, #0x14\n\
+ mov r1, #0x1\n\
+ mov r2, #0x5\n\
+ bl Menu_PrintItems\n\
+ mov r0, #0x0\n\
+ str r0, [sp]\n\
+ mov r0, #0x8\n\
+ str r0, [sp, #0x4]\n\
+ mov r0, #0x0\n\
+ mov r1, #0x14\n\
+ mov r2, #0x1\n\
+ mov r3, #0x5\n\
+ bl InitMenu\n\
+ ldr r1, ._14 + 8 @ gMenuCallback\n\
+ ldr r0, ._14 + 12 @ debug_sub_8138C54\n\
+ str r0, [r1]\n\
+ mov r0, #0x0\n\
+ add sp, sp, #0x8\n\
+ pop {r1}\n\
+ bx r1\n\
+._15:\n\
+ .align 2, 0\n\
+._14:\n\
+ .word gSpecialVar_0x8004\n\
+ .word gUnkDebug4Menu\n\
+ .word gMenuCallback\n\
+ .word debug_sub_8138C54+1");
+}
+
+#endif
+
+static void CableCarTask1(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(CableCarMainCallback_Setup);
+ DestroyTask(taskId);
+ }
+}
+
+void CableCar(void)
+{
+ ScriptContext2_Enable();
+ CreateTask(CableCarTask1, 1);
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+}
+
+#if DEBUG
+
+__attribute__((naked))
+u8 debug_sub_8138D74(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r1, ._21 @ gSpecialVar_0x8004\n\
+ mov r0, #0x0\n\
+ strh r0, [r1]\n\
+ bl CloseMenu\n\
+ bl CableCar\n\
+ pop {r0}\n\
+ bx r0\n\
+._22:\n\
+ .align 2, 0\n\
+._21:\n\
+ .word gSpecialVar_0x8004");
+}
+
+__attribute__((naked))
+u8 debug_sub_8138D8C(void)
+{
+ asm("\n\
+ push {lr}\n\
+ ldr r1, ._23 @ gSpecialVar_0x8004\n\
+ mov r0, #0x1\n\
+ strh r0, [r1]\n\
+ bl CloseMenu\n\
+ bl CableCar\n\
+ pop {r0}\n\
+ bx r0\n\
+._24:\n\
+ .align 2, 0\n\
+._23:\n\
+ .word gSpecialVar_0x8004");
+}
+
+#endif
+
+static void CableCarMainCallback_Setup(void)
+{
+ u8 i;
+ u16 imebak;
+
+ switch (gMain.state)
+ {
+ case 0:
+ default:
+ SetVBlankCallback(NULL);
+ ScanlineEffect_Stop();
+ DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
+ DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
+ DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
+ sCableCarPtr = eCableCar1;
+ DmaFill16Large(3, 0, eCableCar1, 0x10FC, 0x1000);
+ gMain.state++;
+ break;
+ case 1:
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ StartWeather();
+ for (i = 0; i < 20; i++)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
+ }
+ InitMapMusic();
+ ResetMapMusic();
+ gSpriteCoordOffsetX = gSpriteCoordOffsetY = 0;
+ gMain.state++;
+ break;
+ case 2:
+ for (i = 0; i < 3; i++)
+ {
+ LoadCompressedObjectPic(&gUnknown_08401CF8[i]);
+ }
+ LoadSpritePalettes(gUnknown_08401D18);
+ LZDecompressWram(gCableCarMtChimneyTilemap, eCableCar2->mtChimneyTilemap);
+ LZDecompressWram(gCableCarTreeTilemap, eCableCar2->treeTilemap);
+ LZDecompressWram(gCableCarMountainTilemap, eCableCar2->mountainTilemap);
+ LZDecompressWram(gCableCarPylonStemTilemap, eCableCar2->pylonStemTilemap);
+ LoadPalette(gCableCarBG_Pal, 0, 0x80);
+ LZ77UnCompVram(gCableCarBG_Gfx, (u16 *)BG_VRAM);
+ gMain.state++;
+ break;
+ case 3:
+ LoadSprites();
+ RunTasks();
+ gMain.state++;
+ break;
+ case 4:
+ if (sCableCarPtr->unk_0002 == 7)
+ {
+ gMain.state++;
+ }
+ else if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
+ }
+ }
+ gMain.state++;
+ }
+ break;
+ case 5:
+ CableCarUtil_CopyWrapped((void *)BG_SCREEN_ADDR(29), eCableCar2->treeTilemap, 0, 17, 32, 15);
+ CableCarUtil_CopyWrapped((void *)BG_SCREEN_ADDR(30), eCableCar2->mountainTilemap, 0, 0, 30, 20);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 20);
+ gMain.state++;
+ break;
+ case 6:
+ sub_81248AC(gSpecialVar_0x8004);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x48, 0, 14, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x6C, 12, 17, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x90, 24, 20, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 0, 17, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0, 20, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 12, 20, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 12, 23, 12, 3);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x00, 24, 23, 12, 3);
+ gMain.state++;
+ break;
+ case 7:
+ BeginNormalPaletteFade(-1, 3, 16, 0, 0);
+ FadeInNewBGM(BGM_ROPEWAY, 1);
+ sub_8123FBC(1);
+ gMain.state++;
+ break;
+ case 8:
+ imebak = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = imebak;
+ SetVBlankCallback(CableCarVblankCallback);
+ SetMainCallback2(CableCarMainCallback_Run);
+ CreateTask(sub_8123878, 0);
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sCableCarPtr->unk_0000 = CreateTask(sub_81239E4, 1);
+ }
+ else
+ {
+ sCableCarPtr->unk_0000 = CreateTask(sub_8123AF8, 1);
+ }
+ break;
+ }
+}
+
+static void CableCarMainCallback_Run(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+ MapMusicMain();
+}
+
+static void sub_8123740(void)
+{
+ u8 i;
+
+ i = 0;
+ sub_8123FBC(0);
+ gSpriteCoordOffsetX = 0;
+ sub_807C9B4(WEATHER_NONE);
+ for (; i < 20; i++)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i] = NULL;
+ }
+ ResetTasks();
+ ResetSpriteData();
+ ResetPaletteFade();
+ DmaFill32Large(3, 0, gSharedMem, 0x20000, 0x1000);
+ sCableCarPtr = NULL;
+ DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000);
+ DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
+ DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
+ warp_in();
+ gFieldCallback = NULL;
+ SetMainCallback2(CB2_LoadMap);
+}
+
+static void sub_8123878(u8 taskId)
+{
+ u8 i;
+
+ i = 0;
+ sCableCarPtr->unk_0006++;
+ switch (sCableCarPtr->unk_0001)
+ {
+ case 0:
+ if (sCableCarPtr->unk_0006 == sCableCarPtr->unk_0004)
+ {
+ ChangeWeather(sCableCarPtr->unk_0002);
+ sCableCarPtr->unk_0001 = 1;
+ }
+ break;
+ case 1:
+ switch (sCableCarPtr->unk_0002)
+ {
+ case 7:
+ if (gWeatherPtr->sprites.s2.ashSprites[0] != NULL && gWeatherPtr->sprites.s2.ashSprites[0]->oam.priority != 0)
+ {
+ for (; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i]->oam.priority = 0;
+ }
+ }
+ sCableCarPtr->unk_0001 = 2;
+ }
+ break;
+ case 2:
+ if (gWeatherPtr->currWeather == 2)
+ {
+ sCableCarPtr->unk_0001 = 2;
+ }
+ else if (sCableCarPtr->unk_0006 >= sCableCarPtr->unk_0004 + 8)
+ {
+ for (; i < 20; i++)
+ {
+ if (gWeatherPtr->sprites.s2.ashSprites[i] != NULL)
+ {
+ gWeatherPtr->sprites.s2.ashSprites[i]->invisible ^= TRUE;
+ }
+ }
+ }
+ break;
+ }
+ break;
+ case 2:
+ if (sCableCarPtr->unk_0006 == 570)
+ {
+ sCableCarPtr->unk_0001 = 3;
+ BeginNormalPaletteFade(-1, 3, 0, 16, 0);
+ FadeOutBGM(4);
+ }
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ sCableCarPtr->unk_0001 = 255;
+ }
+ break;
+ case 255:
+ SetVBlankCallback(NULL);
+ DestroyTask(taskId);
+ DestroyTask(sCableCarPtr->unk_0000);
+ SetMainCallback2(sub_8123740);
+ break;
+ }
+}
+
+static void sub_81239E4(u8 taskId)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ sCableCarPtr->unk_0014--;
+ if ((sCableCarPtr->unk_0006 % 2) == 0)
+ {
+ sCableCarPtr->unk_0015--;
+ }
+ if ((sCableCarPtr->unk_0006 % 8) == 0)
+ {
+ sCableCarPtr->unk_000c--;
+ sCableCarPtr->unk_000d--;
+ }
+ switch (sCableCarPtr->unk_0014)
+ {
+ case 175:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 0, 22, 2, 10);
+ break;
+ case 40:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 3, 0, 2, 2);
+ break;
+ case 32:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 2, 0, 1, 2);
+ break;
+ case 16:
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, gCableCarPylonHookTilemapEntries, 0, 0, 5, 2);
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
+ sCableCarPtr->unk_0015 = 64;
+ break;
+ }
+ }
+ sub_812453C();
+ gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 1) % 128;
+}
+
+static void sub_8123AF8(u8 taskId)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ sCableCarPtr->unk_0014++;
+ if ((sCableCarPtr->unk_0006 % 2) == 0)
+ {
+ sCableCarPtr->unk_0015++;
+ }
+ if ((sCableCarPtr->unk_0006 % 8) == 0)
+ {
+ sCableCarPtr->unk_000c++;
+ sCableCarPtr->unk_000d++;
+ }
+ switch (sCableCarPtr->unk_0014)
+ {
+ case 176:
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_08fc, eCableCar2->pylonStemTilemap, 0, 2, 2, 30);
+ break;
+ case 16:
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 2, 0, 3, 2);
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_08fc, 0, 0, 22, 2, 10);
+ sCableCarPtr->unk_0015 = 192;
+ break;
+ case 32:
+ sCableCarPtr->unk_08fc[0][2] = (gCableCarPylonHookTilemapEntries + 2)[0];
+ sCableCarPtr->unk_08fc[0][3] = (gCableCarPylonHookTilemapEntries + 2)[1];
+ sCableCarPtr->unk_08fc[1][2] = (gCableCarPylonHookTilemapEntries + 2)[5];
+ sCableCarPtr->unk_08fc[1][3] = (gCableCarPylonHookTilemapEntries + 2)[6];
+ break;
+ case 40:
+ sCableCarPtr->unk_08fc[0][4] = (gCableCarPylonHookTilemapEntries + 4)[0];
+ sCableCarPtr->unk_08fc[1][4] = (gCableCarPylonHookTilemapEntries + 4)[5];
+ break;
+ }
+ }
+ sub_8124598();
+ if (sCableCarPtr->unk_0006 < sCableCarPtr->unk_0004) {
+ gSpriteCoordOffsetX = (gSpriteCoordOffsetX + 247) % 248;
+ }
+ else
+ {
+ gWeatherPtr->unknown_6FC = (gWeatherPtr->unknown_6FC + 247) % 248;
+ }
+}
+
+static void CableCarVblankCallback(void)
+{
+ DmaCopy16(3, sCableCarPtr->unk_00fc, BG_SCREEN_ADDR(28), 0x800);
+ DmaCopy16(3, sCableCarPtr->unk_08fc, BG_SCREEN_ADDR(31), 0x800);
+ REG_BG3HOFS = sCableCarPtr->unk_0014;
+ REG_BG3VOFS = sCableCarPtr->unk_0015;
+ REG_BG1HOFS = sCableCarPtr->unk_000c;
+ REG_BG1VOFS = sCableCarPtr->unk_000d;
+ REG_BG0HOFS = sCableCarPtr->unk_0008;
+ REG_BG0VOFS = sCableCarPtr->unk_0009;
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void nullsub_76(struct Sprite *sprite)
+{
+
+}
+
+static void sub_8123CB8(struct Sprite *sprite)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ else
+ {
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ }
+}
+
+static void sub_8123D98(struct Sprite *sprite)
+{
+ if (sCableCarPtr->unk_0001 != 255)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sprite->pos1.x = sprite->data[0] - (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] - (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ else
+ {
+ sprite->pos1.x = sprite->data[0] + (u8)(0.14f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ sprite->pos1.y = sprite->data[1] + (u8)(0.067f * S16TOPOSFLOAT(sCableCarPtr->unk_0006));
+ }
+ switch (sprite->data[2])
+ {
+ case 0:
+ sprite->pos2.y = 17;
+ if (sprite->data[3] ++ > 9)
+ {
+ sprite->data[3] = 0;
+ sprite->data[2] ++;
+ }
+ break;
+ default:
+ sprite->pos2.y = 16;
+ if (sprite->data[3] ++ > 9)
+ {
+ sprite->data[3] = 0;
+ sprite->data[2] = 0;
+ }
+ break;
+ }
+ }
+}
+
+static void sub_8123EB8(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.x += 2 * sprite->centerToCornerVecX;
+ sprite->pos1.y += 16 + sprite->centerToCornerVecY;
+ }
+ if (++sprite->data[0] >= sprite->data[2])
+ {
+ switch (sprite->data[1])
+ {
+ case 0:
+ sprite->pos1.x++;
+ if ((sprite->data[0] % 4) == 0)
+ {
+ sprite->pos1.y++;
+ }
+ break;
+ case 1:
+ if ((sprite->data[0] % 2) != 0)
+ {
+ sprite->pos1.x++;
+ if ((sprite->pos1.x % 4) == 0)
+ {
+ sprite->pos1.y++;
+ }
+ }
+ break;
+ }
+ if (sprite->pos1.y > 0xa0)
+ {
+ DestroySprite(sprite);
+ }
+ }
+}
+
+static void sub_8123F44(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 0)
+ {
+ sprite->pos1.y += 16 + sprite->centerToCornerVecY;
+ }
+ if (++sprite->data[0] >= sprite->data[2])
+ {
+ switch (sprite->data[1])
+ {
+ case 0:
+ sprite->pos1.x--;
+ if ((sprite->data[0] % 4) == 0)
+ {
+ sprite->pos1.y--;
+ }
+ break;
+ case 1:
+ if ((sprite->data[0] % 2) != 0)
+ {
+ sprite->pos1.x--;
+ if ((sprite->pos1.x % 4) == 0)
+ {
+ sprite->pos1.y--;
+ }
+ }
+ break;
+ }
+ if (sprite->pos1.y < 0x50)
+ {
+ DestroySprite(sprite);
+ }
+ }
+}
+
+static void sub_8123FBC(bool8 which)
+{
+ switch (which)
+ {
+ case FALSE:
+ default:
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ REG_WIN0H = 0;
+ REG_WIN1H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1V = 0;
+ REG_DISPCNT = 0;
+ REG_BG3CNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG3HOFS = 0;
+ REG_BG3VOFS = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BLDCNT = 0;
+ break;
+ case TRUE:
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ REG_WIN0H = 0;
+ REG_WIN1H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1V = 0;
+ if (gSpecialVar_0x8004 == 0)
+ {
+ sCableCarPtr->unk_0014 = 0xb0;
+ sCableCarPtr->unk_0015 = 0x10;
+ sCableCarPtr->unk_000c = 0x00;
+ sCableCarPtr->unk_000d = 0x50;
+ sCableCarPtr->unk_0009 = 0;
+ sCableCarPtr->unk_0009 = 0;
+ }
+ else
+ {
+ sCableCarPtr->unk_0014 = 0x60;
+ sCableCarPtr->unk_0015 = 0xe8;
+ sCableCarPtr->unk_000c = 0x00;
+ sCableCarPtr->unk_000d = 0x04;
+ sCableCarPtr->unk_0009 = 0;
+ sCableCarPtr->unk_0009 = 0;
+ }
+ REG_BG3HOFS = sCableCarPtr->unk_0014;
+ REG_BG3VOFS = sCableCarPtr->unk_0015;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = sCableCarPtr->unk_000c;
+ REG_BG1VOFS = sCableCarPtr->unk_000d;
+ REG_BG0HOFS = sCableCarPtr->unk_0008;
+ REG_BG0VOFS = sCableCarPtr->unk_0009;
+ REG_BG0CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_WRAP;
+ REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_SCREENBASE(29) | BGCNT_WRAP;
+ REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(30) | BGCNT_WRAP;
+ REG_BG3CNT = BGCNT_PRIORITY(0) | BGCNT_SCREENBASE(31) | BGCNT_WRAP;
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ REG_BLDCNT = 0x3f00;
+ break;
+ }
+}
+
+static void LoadSprites(void)
+{
+ u8 spriteId;
+ u8 i;
+
+ u8 playerGraphicsIds[2] = {
+ MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
+ MAP_OBJ_GFX_RIVAL_MAY_NORMAL
+ };
+ u16 rval = Random();
+ u8 hikerGraphicsIds[4] = {
+ MAP_OBJ_GFX_HIKER,
+ MAP_OBJ_GFX_CAMPER,
+ MAP_OBJ_GFX_PICNICKER,
+ MAP_OBJ_GFX_POOCHYENA
+ };
+ s16 hikerCoords[2][2] = {
+ { 0, 80 },
+ { 240, 146 }
+ };
+ u8 hikerMovementDelayTable[4] = {
+ 0,
+ 60,
+ 120,
+ 170
+ };
+ void (*callbacks[2])(struct Sprite *) = {
+ sub_8123EB8,
+ sub_8123F44
+ };
+
+ switch (gSpecialVar_0x8004)
+ {
+ case 0:
+ default:
+ spriteId = AddPseudoFieldObject(playerGraphicsIds[gSaveBlock2.playerGender], sub_8123D98, 0xc8, 0x49, 0x66);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].pos2.x = 0x08;
+ gSprites[spriteId].pos2.y = 0x10;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x49;
+ }
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[0], 0xb0, 0x2b, 0x67);
+ gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20;
+ gSprites[spriteId].data[0] = 0xb0;
+ gSprites[spriteId].data[1] = 0x2b;
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[1], 0xc8, 0x63, 0x65);
+ gSprites[spriteId].pos2.x = 8;
+ gSprites[spriteId].pos2.y = 4;
+ gSprites[spriteId].data[0] = 0xc8;
+ gSprites[spriteId].data[1] = 0x63;
+ sCableCarPtr->unk_0002 = 7;
+ sCableCarPtr->unk_0004 = 0x15e;
+ sub_807C9B4(WEATHER_SUNNY);
+ break;
+ case 1:
+ CableCarUtil_CopyWrapped(sCableCarPtr->unk_00fc, eCableCar2->mtChimneyTilemap + 0x24, 0x18, 0x1a, 0x0c, 0x03);
+ spriteId = AddPseudoFieldObject(playerGraphicsIds[gSaveBlock2.playerGender], sub_8123D98, 0x80, 0x27, 0x66);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].pos2.x = 0x08;
+ gSprites[spriteId].pos2.y = 0x10;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x27;
+ }
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[0], 0x68, 0x09, 0x67);
+ gSprites[spriteId].pos2.x = gSprites[spriteId].pos2.y = 0x20;
+ gSprites[spriteId].data[0] = 0x68;
+ gSprites[spriteId].data[1] = 0x09;
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[1], 0x80, 0x41, 0x65);
+ gSprites[spriteId].pos2.x = 8;
+ gSprites[spriteId].pos2.y = 4;
+ gSprites[spriteId].data[0] = 0x80;
+ gSprites[spriteId].data[1] = 0x41;
+ sCableCarPtr->unk_0002 = 2;
+ sCableCarPtr->unk_0004 = 0x109;
+ sub_807C9B4(WEATHER_ASH);
+ break;
+ }
+ for (i = 0; i < 9; i++)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_8401D40[2], 16 * i + 0x60, 8 * i - 8, 0x68);
+ gSprites[spriteId].pos2.x = 8;
+ gSprites[spriteId].pos2.y = 8;
+ }
+ if ((rval % 64) == 0)
+ {
+ spriteId = AddPseudoFieldObject(hikerGraphicsIds[rval % 3], callbacks[gSpecialVar_0x8004], hikerCoords[gSpecialVar_0x8004][0], hikerCoords[gSpecialVar_0x8004][1], 0x6a);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].pos2.x = -gSprites[spriteId].centerToCornerVecX;
+ gSprites[spriteId].pos2.y = -gSprites[spriteId].centerToCornerVecY;
+ if (gSpecialVar_0x8004 == 0)
+ {
+ if (rval % 2)
+ {
+ StartSpriteAnim(&gSprites[spriteId], 6);
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].pos1.y += 2;
+ }
+ else
+ {
+ StartSpriteAnim(&gSprites[spriteId], 7);
+ gSprites[spriteId].data[1] = 0;
+ }
+ }
+ else
+ {
+ if (rval % 2)
+ {
+ StartSpriteAnim(&gSprites[spriteId], 7);
+ gSprites[spriteId].data[1] = 1;
+ gSprites[spriteId].pos1.y += 2;
+ }
+ else
+ {
+ StartSpriteAnim(&gSprites[spriteId], 6);
+ gSprites[spriteId].data[1] = 0;
+ }
+ }
+ gSprites[spriteId].data[2] = hikerMovementDelayTable[rval % 4];
+ }
+ }
+}
+
+static void sub_812446C(void)
+{
+ u8 i;
+ u8 j;
+ u8 k;
+ u8 offset;
+
+ for (i = 0, k = 0, offset = 0x24 * (sCableCarPtr->unk_001b + 2); i < 3; i++)
+ {
+ for (j = 0; j < 12; j++)
+ {
+ sCableCarPtr->unk_0022[i][j] = *(eCableCar2->mtChimneyTilemap + (offset++));
+ sCableCarPtr->unk_0022[i + 3][j] = eCableCar2->mtChimneyTilemap[k];
+ sCableCarPtr->unk_0022[i + 6][j] = (eCableCar2->mtChimneyTilemap + 0x24)[k];
+ k++;
+ }
+ }
+ sCableCarPtr->unk_001b = (sCableCarPtr->unk_001b + 1) % 3;
+}
+
+static void sub_812453C(void)
+{
+ sCableCarPtr->unk_001c = (sCableCarPtr->unk_001c + 1) % 0x60;
+ sCableCarPtr->unk_0008 = sCableCarPtr->unk_001f - sCableCarPtr->unk_001d;
+ sCableCarPtr->unk_0009 = sCableCarPtr->unk_0020 - sCableCarPtr->unk_001e;
+ sCableCarPtr->unk_001d++;
+ if ((sCableCarPtr->unk_001d % 4) == 0)
+ {
+ sCableCarPtr->unk_001e++;
+ }
+ if (sCableCarPtr->unk_001d > 16)
+ {
+ sub_81245F4();
+ }
+}
+
+static void sub_8124598(void)
+{
+ sCableCarPtr->unk_001c = (sCableCarPtr->unk_001c + 1) % 0x60;
+ sCableCarPtr->unk_0008 = sCableCarPtr->unk_001f + sCableCarPtr->unk_001d;
+ sCableCarPtr->unk_0009 = sCableCarPtr->unk_0020 + sCableCarPtr->unk_001e;
+ sCableCarPtr->unk_001d++;
+ if ((sCableCarPtr->unk_001d % 4) == 0)
+ {
+ sCableCarPtr->unk_001e++;
+ }
+ if (sCableCarPtr->unk_001d > 16)
+ {
+ sub_812476C();
+ }
+}
+
+static void sub_81245F4(void)
+{
+ u8 i = 0;
+
+ sCableCarPtr->unk_001d = sCableCarPtr->unk_001e = 0;
+ sCableCarPtr->unk_001f = sCableCarPtr->unk_0008;
+ sCableCarPtr->unk_0020 = sCableCarPtr->unk_0009;
+ sCableCarPtr->unk_0019 = (sCableCarPtr->unk_0019 + 30) % 32;
+ sCableCarPtr->unk_0018 -= 2;
+ gUnknown_0203927A = (sCableCarPtr->unk_001a + 23) % 32;
+ for (i = 0; i < 9; i++)
+ {
+ gUnknown_02039278 = sCableCarPtr->unk_0019;
+ gUnknown_02039279 = (gUnknown_0203927A + i) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_02039279][gUnknown_02039278] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018];
+ gUnknown_02039278 = (gUnknown_02039278 + 1) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_02039279][gUnknown_02039278] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018 + 1];
+ }
+ gUnknown_02039278 = (sCableCarPtr->unk_0019 + 30) % 32;
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_00fc, 0, gUnknown_02039278, 0, 2, 32);
+ if (sCableCarPtr->unk_0018 == 0)
+ {
+ sCableCarPtr->unk_001a = (sCableCarPtr->unk_001a + 29) % 32;
+ sCableCarPtr->unk_0018 = 12;
+ sub_812446C();
+ gUnknown_02039278 = (sCableCarPtr->unk_001a + 1) % 32;
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_00fc, 0, 0, gUnknown_02039278, 32, 9);
+ }
+}
+
+static void sub_812476C(void)
+{
+ u8 i = 0;
+
+ sCableCarPtr->unk_001d = sCableCarPtr->unk_001e = 0;
+ sCableCarPtr->unk_001f = sCableCarPtr->unk_0008;
+ sCableCarPtr->unk_0020 = sCableCarPtr->unk_0009;
+ sCableCarPtr->unk_0019 = (sCableCarPtr->unk_0019 + 2) % 32;
+ sCableCarPtr->unk_0018 += 2;
+ gUnknown_0203927D = sCableCarPtr->unk_001a;
+ for (i = 0; i < 9; i++)
+ {
+ gUnknown_0203927B = sCableCarPtr->unk_0019;
+ gUnknown_0203927C = (gUnknown_0203927D + i) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_0203927C][gUnknown_0203927B] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018];
+ gUnknown_0203927B = (gUnknown_0203927B + 1) % 32;
+ sCableCarPtr->unk_00fc[gUnknown_0203927C][gUnknown_0203927B] = sCableCarPtr->unk_0022[i][sCableCarPtr->unk_0018 + 1];
+ }
+ gUnknown_0203927C = (sCableCarPtr->unk_001a + 23) % 32;
+ CableCarUtil_FillWrapped(sCableCarPtr->unk_00fc, 0, sCableCarPtr->unk_0019, gUnknown_0203927C, 2, 9);
+ if (sCableCarPtr->unk_0018 == 10)
+ {
+ sCableCarPtr->unk_001a = (sCableCarPtr->unk_001a + 3) % 32;
+ sCableCarPtr->unk_0018 = 0xfe;
+ sub_812446C();
+ }
+}
+
+static void sub_81248AC(u8 a0)
+{
+ switch (a0)
+ {
+ case 0:
+ default:
+ sCableCarPtr->unk_001b = 2;
+ sCableCarPtr->unk_0019 = 0;
+ sCableCarPtr->unk_001a = 20;
+ sCableCarPtr->unk_0018 = 12;
+ sub_812446C();
+ sub_81245F4();
+ break;
+ case 1:
+ sCableCarPtr->unk_001b = 2;
+ sCableCarPtr->unk_0019 = 28;
+ sCableCarPtr->unk_001a = 20;
+ sCableCarPtr->unk_0018 = 4;
+ sub_812446C();
+ sub_812476C();
+ break;
+ }
+ sCableCarPtr->unk_001c = 0;
+}
diff --git a/src/scene/contest_painting.c b/src/scene/contest_painting.c
index 442d8ec26..0aa02312f 100644
--- a/src/scene/contest_painting.c
+++ b/src/scene/contest_painting.c
@@ -11,7 +11,7 @@
#include "string_util.h"
#include "strings.h"
#include "text.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "ewram.h"
static u8 gUnknown_03000750;
@@ -147,7 +147,7 @@ static void ShowContestPainting(void)
switch (gMain.state)
{
case 0:
- remove_some_task();
+ ScanlineEffect_Stop();
SetVBlankCallback(NULL);
gUnknown_03005E8C = &ewram15DE0;
ContestPaintingInitVars(TRUE);
@@ -156,23 +156,8 @@ static void ShowContestPainting(void)
break;
case 1:
{
- u8 *addr;
- size_t size;
-
ResetPaletteFade();
- addr = (void *)VRAM;
- size = 0x18000;
- while (1)
- {
- DmaFill32(3, 0, addr, 0x1000);
- addr += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill32(3, 0, addr, size);
- break;
- }
- }
+ DmaFill32Large(3, 0, (void *)(VRAM + 0x0), 0x18000, 0x1000);
ResetSpriteData();
gMain.state++;
break;
@@ -243,8 +228,8 @@ static void HoldContestPainting(void)
static void ContestPaintingInitWindow(u8 arg0)
{
- InitMenuWindow(&gWindowConfig_81E7160);
- SetUpWindowConfig(&gWindowConfig_81E7160);
+ InitMenuWindow(&gWindowTemplate_81E7160);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7160);
}
static void ContestPaintingPrintCaption(u8 contestType, u8 arg1)
@@ -291,7 +276,7 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1)
xPos = 3;
yPos = 14;
}
- MenuPrint_PixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1);
+ Menu_PrintTextPixelCoords(gUnknown_03005E40, xPos * 8 + 1, yPos * 8, 1);
}
static void ContestPaintingInitBG(void)
diff --git a/src/scene/credits.c b/src/scene/credits.c
index 17c1bf263..e31e2c797 100644
--- a/src/scene/credits.c
+++ b/src/scene/credits.c
@@ -474,8 +474,8 @@ void sub_81439D0(void)
taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID];
gTasks[taskIdC].data[TDC_0] = 40;
- SetUpWindowConfig(&gWindowConfig_81E7208);
- InitMenuWindow(&gWindowConfig_81E7208);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7208);
+ InitMenuWindow(&gWindowTemplate_81E7208);
LoadPalette(&gUnknown_0840B7BC, 0x80, sizeof(gUnknown_0840B7BC));
CpuCopy16(&gUnknown_0840B7FC, (void *)(VRAM + 0xBEE0), sizeof(gUnknown_0840B7FC));
@@ -857,7 +857,7 @@ static void task_b_81441B8(u8 taskIdB)
case 5:
if (!gPaletteFade.active)
{
- MenuZeroFillWindowRect(0, 9, 29, 19);
+ Menu_EraseWindowRect(0, 9, 29, 19);
gTasks[taskIdB].data[TDB_0] = 2;
}
return;
diff --git a/src/scene/cute_sketch.c b/src/scene/cute_sketch.c
index 5317bc334..2af990290 100644
--- a/src/scene/cute_sketch.c
+++ b/src/scene/cute_sketch.c
@@ -29,6 +29,350 @@ void sub_80FD1C8(u16);
u16 sub_80FD39C(u16*);
u16 sub_80FD68C(u16*, u16*, u16*);
+#if DEBUG
+
+__attribute__((naked))
+void debug_sub_8110CCC(void)
+{
+ asm("\
+ push {r4, r5, r6, r7, lr}\n\
+ mov r7, #0x0\n\
+ mov r1, #0x0\n\
+ ldr r2, ._5 @ gUnknown_083E79C0\n\
+ ldr r6, ._5 + 4 @ \n\
+._7:\n\
+ lsl r0, r1, #0x3\n\
+ add r4, r0, r2\n\
+ ldrh r0, [r6, #0x1c]\n\
+ ldrh r3, [r4, #0x4]\n\
+ cmp r0, r3\n\
+ bne ._1 @cond_branch\n\
+ ldrh r0, [r4, #0x6]\n\
+ bl FlagGet\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._4 @cond_branch\n\
+ ldrb r0, [r6, #0x1f]\n\
+ ldr r1, [r4]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ bl StringLength\n\
+ mov r1, #0xc\n\
+ sub r1, r1, r0\n\
+ lsl r1, r1, #0x10\n\
+ lsr r5, r1, #0x10\n\
+ cmp r1, #0\n\
+ bge ._3 @cond_branch\n\
+ mov r5, #0x0\n\
+._3:\n\
+ mov r7, #0x1\n\
+ mov r0, #0x10\n\
+ mov r1, #0xe\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ add r0, r6, #0\n\
+ add r0, r0, #0x8\n\
+ mov r1, #0x11\n\
+ mov r2, #0xf\n\
+ bl Menu_PrintText\n\
+ ldrb r0, [r6, #0x1f]\n\
+ ldr r1, [r4]\n\
+ lsl r0, r0, #0x2\n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ add r1, r5, #0\n\
+ add r1, r1, #0x11\n\
+ lsl r1, r1, #0x18\n\
+ lsr r1, r1, #0x18\n\
+ mov r2, #0x11\n\
+ bl Menu_PrintText\n\
+ b ._4\n\
+._6:\n\
+ .align 2, 0\n\
+._5:\n\
+ .word gUnknown_083E79C0\n\
+ .word +0x2000000\n\
+._1:\n\
+ add r0, r1, #1\n\
+ lsl r0, r0, #0x10\n\
+ lsr r1, r0, #0x10\n\
+ cmp r1, #0\n\
+ beq ._7 @cond_branch\n\
+._4:\n\
+ cmp r7, #0\n\
+ bne ._8 @cond_branch\n\
+ mov r0, #0x10\n\
+ mov r1, #0x10\n\
+ mov r2, #0x1d\n\
+ mov r3, #0x13\n\
+ bl Menu_DrawStdWindowFrame\n\
+ ldr r0, ._9 @ \n\
+ mov r1, #0x11\n\
+ mov r2, #0x11\n\
+ bl Menu_PrintText\n\
+ mov r0, #0x10\n\
+ mov r1, #0xe\n\
+ mov r2, #0x1d\n\
+ mov r3, #0xf\n\
+ bl Menu_EraseWindowRect\n\
+._8:\n\
+ pop {r4, r5, r6, r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+._10:\n\
+ .align 2, 0\n\
+._9:\n\
+ .word +0x2000008");
+}
+
+__attribute__((naked))
+void debug_sub_8110D84(void)
+{
+ asm("\
+ push {r4, lr}\n\
+ add sp, sp, #0xfffffffc\n\
+ ldr r0, ._13 @ \n\
+ ldrh r0, [r0, #0x4]\n\
+ cmp r0, #0x7\n\
+ bls ._11 @cond_branch\n\
+ b ._65\n\
+._11:\n\
+ lsl r0, r0, #0x2\n\
+ ldr r1, ._13 + 4 @ \n\
+ add r0, r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+._14:\n\
+ .align 2, 0\n\
+._13:\n\
+ .word +0x2000000\n\
+ .word ._15\n\
+._15:\n\
+ .word ._16\n\
+ .word ._17\n\
+ .word ._18\n\
+ .word ._19\n\
+ .word ._20\n\
+ .word ._21\n\
+ .word ._22\n\
+ .word ._23\n\
+._16:\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x10\n\
+ mov r3, #0x0\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, ._25 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._26:\n\
+ .align 2, 0\n\
+._25:\n\
+ .word +0x2000000\n\
+._17:\n\
+ bl UpdatePaletteFade\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._27 @cond_branch\n\
+ b ._65\n\
+._27:\n\
+ ldr r1, ._30 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._31:\n\
+ .align 2, 0\n\
+._30:\n\
+ .word +0x2000000\n\
+._18:\n\
+ bl sub_80FAB60\n\
+ lsl r0, r0, #0x18\n\
+ lsr r0, r0, #0x18\n\
+ cmp r0, #0x3\n\
+ beq ._32 @cond_branch\n\
+ cmp r0, #0x3\n\
+ bgt ._33 @cond_branch\n\
+ b ._65\n\
+._33:\n\
+ cmp r0, #0x4\n\
+ beq ._35 @cond_branch\n\
+ cmp r0, #0x5\n\
+ beq ._36 @cond_branch\n\
+ b ._65\n\
+._35:\n\
+ ldr r4, ._41 @ \n\
+ ldrb r0, [r4, #0x1e]\n\
+ cmp r0, #0\n\
+ bne ._38 @cond_branch\n\
+ b ._65\n\
+._38:\n\
+ mov r0, #0x5\n\
+ bl m4aSongNumStart\n\
+ ldr r1, ._41 + 4 @ \n\
+ add r0, r4, r1\n\
+ mov r1, #0x1\n\
+ strb r1, [r0]\n\
+ ldr r0, ._41 + 8 @ \n\
+ bl sub_80FC244\n\
+ b ._65\n\
+._42:\n\
+ .align 2, 0\n\
+._41:\n\
+ .word +0x2000000\n\
+ .word 0xa6e\n\
+ .word sub_80FC69C+1\n\
+._36:\n\
+ mov r0, #0x5\n\
+ bl m4aSongNumStart\n\
+ mov r0, #0x1\n\
+ neg r0, r0\n\
+ mov r1, #0x0\n\
+ str r1, [sp]\n\
+ mov r2, #0x0\n\
+ mov r3, #0x10\n\
+ bl BeginNormalPaletteFade\n\
+ ldr r1, ._44 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._45:\n\
+ .align 2, 0\n\
+._44:\n\
+ .word +0x2000000\n\
+._19:\n\
+ bl UpdatePaletteFade\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._65 @cond_branch\n\
+ ldr r0, ._48 @ sub_805469C\n\
+ bl SetMainCallback2\n\
+ b ._65\n\
+._49:\n\
+ .align 2, 0\n\
+._48:\n\
+ .word sub_805469C+1\n\
+._20:\n\
+ bl sub_80FAB60\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._50 @cond_branch\n\
+._32:\n\
+ bl debug_sub_8110CCC\n\
+ b ._65\n\
+._50:\n\
+ ldr r0, ._54 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._65 @cond_branch\n\
+ bl sub_80FBCA0\n\
+ bl sub_80FAEC4\n\
+ ldr r1, ._54 + 4 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._55:\n\
+ .align 2, 0\n\
+._54:\n\
+ .word gMain\n\
+ .word +0x2000000\n\
+._21:\n\
+ bl sub_80FAFC0\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._65 @cond_branch\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl CreateRegionMapCursor\n\
+ ldr r1, ._58 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._59:\n\
+ .align 2, 0\n\
+._58:\n\
+ .word +0x2000000\n\
+._22:\n\
+ bl sub_80FAB60\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ beq ._60 @cond_branch\n\
+ bl debug_sub_8110CCC\n\
+._60:\n\
+ ldr r0, ._63 @ gMain\n\
+ ldrh r1, [r0, #0x2e]\n\
+ mov r0, #0x1\n\
+ and r0, r0, r1\n\
+ cmp r0, #0\n\
+ beq ._65 @cond_branch\n\
+ bl sub_80FBCA0\n\
+ bl sub_80FAEC4\n\
+ ldr r1, ._63 + 4 @ \n\
+ ldrh r0, [r1, #0x4]\n\
+ add r0, r0, #0x1\n\
+ b ._62\n\
+._64:\n\
+ .align 2, 0\n\
+._63:\n\
+ .word gMain\n\
+ .word +0x2000000\n\
+._23:\n\
+ bl sub_80FAFC0\n\
+ lsl r0, r0, #0x18\n\
+ cmp r0, #0\n\
+ bne ._65 @cond_branch\n\
+ mov r0, #0x0\n\
+ mov r1, #0x0\n\
+ bl CreateRegionMapCursor\n\
+ ldr r1, ._66 @ \n\
+ mov r0, #0x3\n\
+._62:\n\
+ strh r0, [r1, #0x4]\n\
+._65:\n\
+ add sp, sp, #0x4\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+._67:\n\
+ .align 2, 0\n\
+._66:\n\
+ .word +0x2000000");
+}
+
+__attribute__((naked))
+void debug_sub_8110F28(void)
+{
+ asm("\
+ push {lr}\n\
+ bl CB2_InitFlyRegionMap\n\
+ ldr r0, ._69 @ gMain\n\
+ ldr r1, [r0, #0x4]\n\
+ ldr r0, ._69 + 4 @ CB2_FlyRegionMap\n\
+ cmp r1, r0\n\
+ bne ._68 @cond_branch\n\
+ bl sub_80FBF94\n\
+ ldr r0, ._69 + 8 @ debug_sub_8110D84\n\
+ bl sub_80FC244\n\
+ bl debug_sub_8110CCC\n\
+._68:\n\
+ pop {r0}\n\
+ bx r0\n\
+._70:\n\
+ .align 2, 0\n\
+._69:\n\
+ .word gMain\n\
+ .word CB2_FlyRegionMap+1\n\
+ .word debug_sub_8110D84+1");
+}
+
+#endif
+
void sub_80FC7A0(struct Unk03005E20* info)
{
gUnknown_03005DEC = info->var_4;
diff --git a/src/scene/egg_hatch.c b/src/scene/egg_hatch.c
index c0111de7d..282ad31fb 100644
--- a/src/scene/egg_hatch.c
+++ b/src/scene/egg_hatch.c
@@ -471,10 +471,10 @@ static void CB2_EggHatch_0(void)
gSpecialVar_0x8005 = GetCurrentMapMusic();
break;
case 1:
- SetUpWindowConfig(&gWindowConfig_81E6F84);
- InitWindowFromConfig(&gEggHatchData->window, &gWindowConfig_81E6F84);
- gEggHatchData->tileDataStartOffset = SetTextWindowBaseTileNum(20);
- LoadTextWindowGraphics(&gEggHatchData->window);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F84);
+ Text_InitWindowWithTemplate(&gEggHatchData->window, &gWindowTemplate_81E6F84);
+ gEggHatchData->tileDataStartOffset = TextWindow_SetBaseTileNum(20);
+ TextWindow_LoadStdFrameGraphics(&gEggHatchData->window);
gMain.state++;
break;
case 2:
@@ -504,35 +504,11 @@ static void CB2_EggHatch_0(void)
gMain.state++;
break;
case 7:
- {
- u32 offsetRead, offsetWrite;
- u32 offsetRead2, offsetWrite2;
- u32 size;
-
- REG_BG2CNT = 0x4C06;
- LoadPalette(gUnknown_0820C9F8, 0x10, 0xA0);
-
- offsetRead = (u32)(&gUnknown_0820CA98);
- offsetWrite = (VRAM + 0x4000);
- size = 0x1300;
- while (TRUE)
- {
- DmaCopy16(3, offsetRead, (void *) (offsetWrite), 0x1000);
- offsetRead += 0x1000;
- offsetWrite += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaCopy16(3, offsetRead, (void *) (offsetWrite), size);
- break;
- }
- }
-
- offsetRead2 = (u32)(&gUnknown_0820F798);
- offsetWrite2 = (u32)(VRAM + 0x6000);
- DmaCopy16(3, offsetRead2, (void*)(offsetWrite2), 0x1000);
- gMain.state++;
- }
+ REG_BG2CNT = 0x4C06;
+ LoadPalette(gUnknown_0820C9F8, 0x10, 0xA0);
+ DmaCopyLarge16(3, gUnknown_0820CA98, (void *)(VRAM + 0x4000), 0x1300, 0x1000);
+ DmaCopy16Defvars(3, gUnknown_0820F798, (void *)(VRAM + 0x6000), 0x1000);
+ gMain.state++;
break;
case 8:
REG_BG1CNT = 0x501;
@@ -625,7 +601,7 @@ static void CB2_EggHatch_1(void)
case 8:
if (EggHatchUpdateWindowText())
{
- MenuDrawTextWindow(22, 8, 27, 13);
+ Menu_DrawStdWindowFrame(22, 8, 27, 13);
InitYesNoMenu(22, 8, 4);
gEggHatchData->CB2_state++;
}
@@ -633,7 +609,7 @@ static void CB2_EggHatch_1(void)
case 9:
{
s8 menuInput;
- if ((menuInput = ProcessMenuInputNoWrap_()) != -2)
+ if ((menuInput = Menu_ProcessInputNoWrap_()) != -2)
{
if (menuInput != -1 && menuInput != 1)
{
@@ -848,15 +824,15 @@ static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8
static void EggHatchPrintMessage1(u8* src)
{
- sub_8002EB0(&gEggHatchData->window, src, gEggHatchData->tileDataStartOffset, 3, 15);
+ Text_InitWindow8002EB0(&gEggHatchData->window, src, gEggHatchData->tileDataStartOffset, 3, 15);
}
static void EggHatchPrintMessage2(u8* src)
{
- sub_8003460(&gEggHatchData->window, src, gEggHatchData->tileDataStartOffset, 3, 15);
+ Text_InitWindowAndPrintText(&gEggHatchData->window, src, gEggHatchData->tileDataStartOffset, 3, 15);
}
static bool8 EggHatchUpdateWindowText(void)
{
- return sub_80035AC(&gEggHatchData->window);
+ return Text_UpdateWindow(&gEggHatchData->window);
}
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index f307f5979..3ba325574 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -9,7 +9,7 @@
#include "pokemon.h"
#include "string_util.h"
#include "battle.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "data2.h"
#include "decompress.h"
#include "m4a.h"
@@ -65,14 +65,14 @@ void nullsub_6(void);
bool32 IsHMMove2(u16 move);
extern struct Window gUnknown_03004210;
-extern u16 gUnknown_030042A4;
-extern u16 gUnknown_030042A0;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
-extern u16 gUnknown_030041B0;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
extern u8 gBattleTerrain;
extern u8 gReservedSpritePaletteCount;
extern u16 gMoveToLearn;
@@ -88,8 +88,7 @@ extern u8 gBattleCommunication[];
extern const u8 BattleText_StartEvo[];
extern const u8 BattleText_FinishEvo[];
extern const u8 BattleText_StopEvo[];
-extern void * const gUnknown_081FAF4C[];
-extern const u8* const gBattleStringsTable[];
+extern const u8 *const gBattleStringsTable[];
// this file's functions
static void Task_EvolutionScene(u8 taskID);
@@ -197,25 +196,25 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
REG_WININ = 0;
REG_WINOUT = 0;
- SetUpWindowConfig(&gWindowConfig_81E6C58);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 256;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 256;
+ gBattle_BG3_Y = 0;
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58);
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
gBattleTerrain = BATTLE_TERRAIN_PLAIN;
sub_800D6D4();
sub_800DAB8();
ResetSpriteData();
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
FreeAllSpritePalettes();
@@ -306,18 +305,18 @@ static void CB2_EvolutionSceneLoadGraphics(void)
REG_WIN1V = 0;
REG_WININ = 0;
REG_WINOUT = 0;
- SetUpWindowConfig(&gWindowConfig_81E6C58);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 256;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 256;
+ gBattle_BG3_Y = 0;
- InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58);
+ Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
gBattleTerrain = BATTLE_TERRAIN_PLAIN;
sub_800D6D4();
@@ -362,26 +361,26 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
- gUnknown_030042A4 = 0;
- gUnknown_030042A0 = 0;
+ gBattle_BG0_X = 0;
+ gBattle_BG0_Y = 0;
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 256;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 256;
+ gBattle_BG3_Y = 0;
gMain.state++;
break;
case 1:
- SetUpWindowConfig(&gWindowConfig_81E6F84);
- InitWindowFromConfig(&gUnknown_03004828->window, &gWindowConfig_81E6F84);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E6F84);
+ Text_InitWindowWithTemplate(&gUnknown_03004828->window, &gWindowTemplate_81E6F84);
gMain.state++;
break;
case 2:
- LoadTextWindowGraphics(&gUnknown_03004828->window);
- gUnknown_03004828->textWindowBaseTileNum = SetTextWindowBaseTileNum(2);
- LoadTextWindowGraphics(&gUnknown_03004828->window);
- MenuZeroFillScreen();
+ TextWindow_LoadStdFrameGraphics(&gUnknown_03004828->window);
+ gUnknown_03004828->textWindowBaseTileNum = TextWindow_SetBaseTileNum(2);
+ TextWindow_LoadStdFrameGraphics(&gUnknown_03004828->window);
+ Menu_EraseScreen();
ResetPaletteFade();
gMain.state++;
SetHBlankCallback(EvoDummyFunc);
@@ -481,7 +480,7 @@ static void CB2_EvolutionSceneUpdate(void)
{
AnimateSprites();
BuildOamBuffer();
- sub_800374C(&gUnknown_03004210);
+ Text_UpdateWindowInBattle(&gUnknown_03004210);
UpdatePaletteFade();
RunTasks();
}
@@ -490,7 +489,7 @@ static void CB2_TradeEvolutionSceneUpdate(void)
{
AnimateSprites();
BuildOamBuffer();
- sub_80035AC(&gUnknown_03004828->window);
+ Text_UpdateWindow(&gUnknown_03004828->window);
UpdatePaletteFade();
RunTasks();
}
@@ -498,35 +497,31 @@ static void CB2_TradeEvolutionSceneUpdate(void)
static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon)
{
u32 data = 0;
- if (gEvolutionTable[preEvoSpecies].evolutions[0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < 6)
+
+ if (gEvolutionTable[preEvoSpecies][0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < 6)
{
s32 i;
struct Pokemon* Shedinja = &gPlayerParty[gPlayerPartyCount];
- const struct EvolutionData* EvoTable;
- const struct EvolutionData* Evos;
CopyMon(Shedinja, mon, sizeof(struct Pokemon));
- SetMonData(Shedinja, MON_DATA_SPECIES, (void*)(&gEvolutionTable[preEvoSpecies].evolutions[1].targetSpecies));
- SetMonData(Shedinja, MON_DATA_NICKNAME, (void*)(gSpeciesNames[gEvolutionTable[preEvoSpecies].evolutions[1].targetSpecies]));
- SetMonData(Shedinja, MON_DATA_HELD_ITEM, (void*)(&data));
- SetMonData(Shedinja, MON_DATA_MARKINGS, (void*)(&data));
- SetMonData(Shedinja, MON_DATA_10, (void*)(&data));
+ SetMonData(Shedinja, MON_DATA_SPECIES, (void*)&gEvolutionTable[preEvoSpecies][1].targetSpecies);
+ SetMonData(Shedinja, MON_DATA_NICKNAME, (void*)gSpeciesNames[gEvolutionTable[preEvoSpecies][1].targetSpecies]);
+ SetMonData(Shedinja, MON_DATA_HELD_ITEM, (void*)&data);
+ SetMonData(Shedinja, MON_DATA_MARKINGS, (void*)&data);
+ SetMonData(Shedinja, MON_DATA_10, (void*)&data);
for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + 5; i++)
- SetMonData(Shedinja, i, (void*)(&data));
+ SetMonData(Shedinja, i, (void*)&data);
for (i = MON_DATA_CHAMPION_RIBBON; i <= MON_DATA_FATEFUL_ENCOUNTER; i++)
- SetMonData(Shedinja, i, (void*)(&data));
- SetMonData(Shedinja, MON_DATA_STATUS, (void*)(&data));
+ SetMonData(Shedinja, i, (void*)&data);
+ SetMonData(Shedinja, MON_DATA_STATUS, (void*)&data);
data = 0xFF;
- SetMonData(Shedinja, MON_DATA_MAIL, (void*)(&data));
+ SetMonData(Shedinja, MON_DATA_MAIL, (void*)&data);
CalculateMonStats(Shedinja);
CalculatePlayerPartyCount();
- // can't match it otherwise, ehh
- EvoTable = gEvolutionTable;
- Evos = EvoTable + preEvoSpecies;
- GetSetPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 2);
- GetSetPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), 3);
if (GetMonData(Shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA
&& GetMonData(Shedinja, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE
@@ -558,7 +553,7 @@ static void Task_EvolutionScene(u8 taskID)
if (!gPaletteFade.active)
{
StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
- sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tState++;
}
break;
@@ -646,7 +641,7 @@ static void Task_EvolutionScene(u8 taskID)
if (IsCryFinished() && !gPaletteFade.active)
{
StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
- sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
PlayBGM(BGM_FANFA5);
gTasks[taskID].tState++;
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
@@ -654,7 +649,7 @@ static void Task_EvolutionScene(u8 taskID)
EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies);
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
- IncrementGameStat(14);
+ IncrementGameStat(GAME_STAT_EVOLVED_POKEMON);
}
break;
case 14: // check if it wants to learn a new move
@@ -715,7 +710,7 @@ static void Task_EvolutionScene(u8 taskID)
if (IsCryFinished())
{
StringExpandPlaceholders(gStringVar4, BattleText_StopEvo);
- sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15);
gTasks[taskID].tEvoWasStopped = TRUE;
gTasks[taskID].tState = 14;
}
@@ -726,7 +721,7 @@ static void Task_EvolutionScene(u8 taskID)
sub_8024CEC();
PlayFanfare(BGM_FANFA1);
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[3]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter
gTasks[taskID].tState++;
}
@@ -743,7 +738,7 @@ static void Task_EvolutionScene(u8 taskID)
{
sub_8024CEC();
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[4]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
break;
@@ -751,7 +746,7 @@ static void Task_EvolutionScene(u8 taskID)
if (gUnknown_03004210.state == 0 && !IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[5]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
break;
@@ -761,7 +756,7 @@ static void Task_EvolutionScene(u8 taskID)
if (!IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tData9 = 5;
gTasks[taskID].tdata10 = 9;
gTasks[taskID].tLearnMoveState++;
@@ -794,7 +789,7 @@ static void Task_EvolutionScene(u8 taskID)
{
sub_8023AD8();
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
PlaySE(SE_SELECT);
if (sEvoCursorPos != 0)
gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
@@ -809,7 +804,7 @@ static void Task_EvolutionScene(u8 taskID)
{
sub_8023AD8();
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
PlaySE(SE_SELECT);
gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
}
@@ -835,7 +830,7 @@ static void Task_EvolutionScene(u8 taskID)
if (IsHMMove2(move))
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[307]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tLearnMoveState = 11;
}
else
@@ -848,7 +843,7 @@ static void Task_EvolutionScene(u8 taskID)
RemoveMonPPBonus(mon, var);
SetMonMoveSlot(mon, gMoveToLearn, var);
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[207]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
}
@@ -858,7 +853,7 @@ static void Task_EvolutionScene(u8 taskID)
if (gUnknown_03004210.state == 0 && !IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[7]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
break;
@@ -866,20 +861,20 @@ static void Task_EvolutionScene(u8 taskID)
if (gUnknown_03004210.state == 0 && !IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[208]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tState = 19;
}
break;
case 9:
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tData9 = 10;
gTasks[taskID].tdata10 = 0;
gTasks[taskID].tLearnMoveState = 3;
break;
case 10:
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[9]);
- sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15);
gTasks[taskID].tState = 14;
break;
case 11:
@@ -900,7 +895,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
{
case 0:
StringExpandPlaceholders(gStringVar4, BattleText_StartEvo);
- sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState++;
break;
case 1:
@@ -988,7 +983,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (IsCryFinished() && !gPaletteFade.active)
{
StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo);
- sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlayFanfare(BGM_FANFA5);
gTasks[taskID].tState++;
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
@@ -996,7 +991,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies);
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
- IncrementGameStat(14);
+ IncrementGameStat(GAME_STAT_EVOLVED_POKEMON);
}
break;
case 13:
@@ -1022,7 +1017,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
else
{
PlayBGM(BGM_SHINKA);
- sub_8002EB0(&gUnknown_03004828->window, gOtherText_LinkStandby2, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gOtherText_LinkStandby2, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState++;
}
}
@@ -1040,7 +1035,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
sub_8024CEC();
PlayFanfare(BGM_FANFA1);
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[3]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter
gTasks[taskID].tState++;
}
@@ -1057,7 +1052,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
{
sub_8024CEC();
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[4]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
break;
@@ -1065,7 +1060,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (gUnknown_03004828->window.state == 0 && !IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[5]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
break;
@@ -1075,7 +1070,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (!IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[6]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tData9 = 5;
gTasks[taskID].tdata10 = 9;
gTasks[taskID].tLearnMoveState++;
@@ -1083,11 +1078,11 @@ static void Task_TradeEvolutionScene(u8 taskID)
case 3:
if (gUnknown_03004828->window.state == 0 && !IsSEPlaying())
{
- DrawTextWindow(&gUnknown_03004828->window, 24, 8, 29, 13);
+ TextWindow_DrawStdFrame(&gUnknown_03004828->window, 24, 8, 29, 13);
sEvoCursorPos = 0;
- InitWindow(&gUnknown_03004828->window, gOtherText_YesNoAndPlayer, gUnknown_03004828->textWindowBaseTileNum + 128, 25, 9);
- sub_8002F44(&gUnknown_03004828->window);
- sub_814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20);
+ Text_InitWindow(&gUnknown_03004828->window, gOtherText_YesNoAndPlayer, gUnknown_03004828->textWindowBaseTileNum + 128, 25, 9);
+ Text_PrintWindow8002F44(&gUnknown_03004828->window);
+ MenuCursor_Create814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20);
sub_81150D8();
gTasks[taskID].tLearnMoveState++;
sEvoCursorPos = 0;
@@ -1110,10 +1105,10 @@ static void Task_TradeEvolutionScene(u8 taskID)
}
if (gMain.newKeys & A_BUTTON)
{
- ZeroFillWindowRect(&gUnknown_03004828->window, 0x18, 8, 0x1D, 0xD);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0x18, 8, 0x1D, 0xD);
DestroyMenuCursor();
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlaySE(SE_SELECT);
if (sEvoCursorPos != 0)
gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
@@ -1126,10 +1121,10 @@ static void Task_TradeEvolutionScene(u8 taskID)
}
if (gMain.newKeys & B_BUTTON)
{
- ZeroFillWindowRect(&gUnknown_03004828->window, 0x18, 8, 0x1D, 0xD);
+ Text_EraseWindowRect(&gUnknown_03004828->window, 0x18, 8, 0x1D, 0xD);
DestroyMenuCursor();
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[292]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
PlaySE(SE_SELECT);
gTasks[taskID].tLearnMoveState = gTasks[taskID].tdata10;
}
@@ -1155,7 +1150,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (IsHMMove2(move))
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[307]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tLearnMoveState = 11;
}
else
@@ -1168,7 +1163,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
RemoveMonPPBonus(mon, var);
SetMonMoveSlot(mon, gMoveToLearn, var);
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[207]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
}
@@ -1178,7 +1173,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (gUnknown_03004828->window.state == 0 && !IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[7]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tLearnMoveState++;
}
break;
@@ -1186,20 +1181,20 @@ static void Task_TradeEvolutionScene(u8 taskID)
if (gUnknown_03004828->window.state == 0 && !IsSEPlaying())
{
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[208]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState = 15;
}
break;
case 9:
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[8]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tData9 = 10;
gTasks[taskID].tdata10 = 0;
gTasks[taskID].tLearnMoveState = 3;
break;
case 10:
StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[9]);
- sub_8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
+ Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15);
gTasks[taskID].tState = 13;
break;
case 11:
@@ -3923,39 +3918,39 @@ static void EvoDummyFunc(void)
static void VBlankCB_EvolutionScene(void)
{
REG_BG0CNT = BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x256 | BGCNT_AFF512x512 | BGCNT_PRIORITY(3); // 0x9803
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void VBlankCB_TradeEvolutionScene(void)
{
- REG_BG0HOFS = gUnknown_030042A4;
- REG_BG0VOFS = gUnknown_030042A0;
+ REG_BG0HOFS = gBattle_BG0_X;
+ REG_BG0VOFS = gBattle_BG0_Y;
REG_BG1HOFS = gBattle_BG1_X;
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void sub_81150D8(void)
{
- sub_814A880(200, 72 + (sEvoCursorPos * 16));
+ MenuCursor_SetPos814A880(200, 72 + (sEvoCursorPos * 16));
}
static void EvoDummyFunc2(void)
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index 1751ee99c..2b790e97d 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -16,7 +16,11 @@
#include "data2.h"
#include "decompress.h"
#include "random.h"
+#include "scanline_effect.h"
#include "trig.h"
+#include "hof_pc.h"
+#include "credits.h"
+#include "pc_screen_effect.h"
#include "ewram.h"
static EWRAM_DATA u32 sUnknown_0203931C = 0;
@@ -87,16 +91,6 @@ static u32 HallOfFame_LoadPokemonPic(u16 species, s16 posX, s16 posY, u16 pokeID
static u32 HallOfFame_LoadTrainerPic(u16 trainerPicID, s16 posX, s16 posY, u16 a3);
static bool8 sub_81438C4(void);
-// functions from different files
-void sub_81439D0(void);
-void sub_80C5CD4(void*); // ?
-void sub_80C5E38(void*); // ?
-bool8 sub_80C5DCC(void);
-bool8 sub_80C5F98(void);
-void ReturnFromHallOfFamePC(void);
-u16 SpeciesToPokedexNum(u16 species);
-void remove_some_task(void);
-
// data and gfx
static const struct CompressedSpriteSheet sHallOfFame_ConfettiSpriteSheet =
@@ -130,9 +124,9 @@ static const s16 sHallOfFame_MonsHalfTeamPositions[3][4] =
{-41, 214, 184, 64}
};
-static const struct HallofFameMon sDummyFameMon =
-{
- 0x3EA03EA, 0, 0, 0, {0}
+static const struct PCScreenEffectStruct sPCScreenEffectTemplate = {
+ .tileTag = 0x3ea,
+ .paletteTag = 0x3ea
};
static const u8 sUnused2[6] = {2, 1, 3, 6, 4, 5};
@@ -539,7 +533,7 @@ static void sub_814217C(u8 taskID)
ewram1E000(i) = 0;
}
else
- sub_8125EC8(3);
+ Save_LoadGameData(SAVE_HALL_OF_FAME);
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, lastSavedTeam++)
{
@@ -558,15 +552,15 @@ static void sub_814217C(u8 taskID)
lastSavedTeam--;
}
*lastSavedTeam = *fameMons;
- MenuDrawTextWindow(2, 14, 27, 19);
- MenuPrint(gMenuText_HOFSaving, 3, 15);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
+ Menu_PrintText(gMenuText_HOFSaving, 3, 15);
gTasks[taskID].func = sub_8142274;
}
static void sub_8142274(u8 taskID)
{
gGameContinueCallback = sub_8141FC4;
- TrySavingData(3);
+ Save_WriteData(3);
PlaySE(SE_SAVE);
gTasks[taskID].func = sub_81422B8;
gTasks[taskID].tFrameCount = 32;
@@ -582,8 +576,8 @@ static void sub_81422B8(u8 taskID)
static void sub_81422E8(u8 taskID)
{
- SetUpWindowConfig(&gWindowConfig_81E7198);
- InitMenuWindow(&gWindowConfig_81E7198);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7198);
+ InitMenuWindow(&gWindowTemplate_81E7198);
gTasks[taskID].func = sub_8142320;
}
@@ -617,7 +611,7 @@ static void sub_8142320(u8 taskID)
gSprites[spriteID].data[0] = 0;
gSprites[spriteID].callback = sub_81435DC;
gTasks[taskID].tMonSpriteID(currPokeID) = spriteID;
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskID].func = sub_8142404;
}
@@ -670,7 +664,7 @@ static void sub_8142570(u8 taskID)
if (gTasks[taskID].tMonSpriteID(i) != 0xFF)
gSprites[gTasks[taskID].tMonSpriteID(i)].oam.priority = 0;
}
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
sub_8143068(0, 15);
PlaySE(SE_DENDOU);
gTasks[taskID].tFrameCount = 400;
@@ -694,7 +688,7 @@ static void sub_8142618(u8 taskID)
gSprites[gTasks[taskID].tMonSpriteID(i)].oam.priority = 1;
}
BeginNormalPaletteFade(sUnknown_0203931C, 0, 12, 12, 0x735F);
- MenuZeroFillWindowRect(0, 14, 29, 19);
+ Menu_EraseWindowRect(0, 14, 29, 19);
gTasks[taskID].tFrameCount = 7;
gTasks[taskID].func = sub_81426F8;
}
@@ -714,8 +708,8 @@ static void sub_81426F8(u8 taskID)
static void sub_8142738(u8 taskID)
{
REG_DISPCNT = 0x1940;
- SetUpWindowConfig(&gWindowConfig_81E71B4);
- InitMenuWindow(&gWindowConfig_81E71B4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E71B4);
+ InitMenuWindow(&gWindowTemplate_81E71B4);
gTasks[taskID].tPlayerSpriteID = HallOfFame_LoadTrainerPic(gSaveBlock2.playerGender, 120, 72, 6);
gTasks[taskID].tFrameCount = 120;
@@ -732,10 +726,10 @@ static void sub_8142794(u8 taskID)
gSprites[gTasks[taskID].tPlayerSpriteID].pos1.x++;
else
{
- MenuDrawTextWindow(1, 2, 15, 9);
+ Menu_DrawStdWindowFrame(1, 2, 15, 9);
HallOfFame_PrintPlayerInfo(1, 2);
- MenuDrawTextWindow(2, 14, 27, 19);
- MenuPrint(gMenuText_HOFCongratulations, 4, 15);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
+ Menu_PrintText(gMenuText_HOFCongratulations, 4, 15);
gTasks[taskID].func = sub_8142818;
}
}
@@ -800,20 +794,15 @@ void sub_81428CC(void)
}
break;
case 3:
- {
- struct HallofFameMons* fameMons;
-
- REG_BLDCNT = 0;
- REG_BLDALPHA = 0;
- REG_BLDY = 0;
- sub_81435B8();
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ sub_81435B8();
- fameMons = eHallOfFameMons1;
- fameMons->mons[0] = sDummyFameMon;
+ eHOFPCScreenEffect = sPCScreenEffectTemplate;
- sub_80C5CD4(fameMons);
- gMain.state++;
- }
+ sub_80C5CD4(&eHOFPCScreenEffect);
+ gMain.state++;
break;
case 4:
AnimateSprites();
@@ -840,7 +829,7 @@ void sub_81428CC(void)
static void sub_8142A28(u8 taskID)
{
- if (sub_8125EC8(3) != 1)
+ if (Save_LoadGameData(SAVE_HALL_OF_FAME) != SAVE_STATUS_OK)
gTasks[taskID].func = sub_8142FEC;
else
{
@@ -864,8 +853,8 @@ static void sub_8142A28(u8 taskID)
*(vram1 + i) = i + 3;
*(vram2 + i) = i + 20;
}
- SetUpWindowConfig(&gWindowConfig_81E7198);
- InitMenuWindow(&gWindowConfig_81E7198);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E7198);
+ InitMenuWindow(&gWindowTemplate_81E7198);
gTasks[taskID].func = sub_8142B04;
}
}
@@ -930,7 +919,7 @@ static void sub_8142B04(u8 taskID)
stringPtr[1] = 0x13;
stringPtr[2] = 0xF0;
stringPtr[3] = EOS;
- MenuPrint(gStringVar1, 0, 0);
+ Menu_PrintText(gStringVar1, 0, 0);
gTasks[taskID].func = sub_8142CC8;
}
@@ -1022,12 +1011,9 @@ static void sub_8142DF4(u8 taskID)
static void sub_8142F78(u8 taskID)
{
- struct HallofFameMons* fameMons;
-
CpuSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x200);
- fameMons = eHallOfFameMons1;
- fameMons->mons[0] = sDummyFameMon;
- sub_80C5E38(fameMons);
+ eHOFPCScreenEffect = sPCScreenEffectTemplate;
+ sub_80C5E38(&eHOFPCScreenEffect);
gTasks[taskID].func = sub_8142FCC;
}
@@ -1042,14 +1028,14 @@ static void sub_8142FCC(u8 taskID)
static void sub_8142FEC(u8 taskID)
{
- MenuDrawTextWindow(2, 14, 27, 19);
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
MenuPrintMessage(gMenuText_HOFCorrupt, 3, 15);
gTasks[taskID].func = sub_814302C;
}
static void sub_814302C(u8 taskID)
{
- if (MenuUpdateWindowText() && gMain.newKeys & A_BUTTON)
+ if (Menu_UpdateWindowText() && gMain.newKeys & A_BUTTON)
gTasks[taskID].func = sub_8142F78;
}
@@ -1086,7 +1072,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 a1, u8 a2)
}
}
- MenuPrint(gStringVar1, a1 + 4, a2 + 1);
+ Menu_PrintText(gStringVar1, a1 + 4, a2 + 1);
stringPtr = gStringVar1;
for (i = 0; i < 10 && currMon->nick[i] != EOS; stringPtr[i] = currMon->nick[i], i++) {}
@@ -1099,8 +1085,8 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 a1, u8 a2)
stringPtr[1] = 0x13;
stringPtr[2] = 0xA0;
stringPtr[3] = EOS;
- MenuPrint(gStringVar1, a1 + 9, a2 + 1);
- MenuZeroFillWindowRect(0, a2 + 3, 29, a2 + 4);
+ Menu_PrintText(gStringVar1, a1 + 9, a2 + 1);
+ Menu_EraseWindowRect(0, a2 + 3, 29, a2 + 4);
}
else
{
@@ -1139,7 +1125,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 a1, u8 a2)
stringPtr[2] = 0xA0;
stringPtr[3] = EOS;
- MenuPrint(gStringVar1, a1 + 9, a2 + 1);
+ Menu_PrintText(gStringVar1, a1 + 9, a2 + 1);
monData = currMon->lvl;
@@ -1157,14 +1143,14 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 a1, u8 a2)
stringPtr[2] = 0x30;
stringPtr[3] = EOS;
- MenuPrint(gStringVar1, a1 + 7, a2 + 3);
+ Menu_PrintText(gStringVar1, a1 + 7, a2 + 3);
monData = currMon->tid;
stringPtr = StringCopy(gStringVar1, gOtherText_IDNumber);
ConvertIntToDecimalStringN(stringPtr, monData, 2, 5);
- MenuPrint(gStringVar1, a1 + 13, a2 + 3);
+ Menu_PrintText(gStringVar1, a1 + 13, a2 + 3);
}
}
@@ -1175,15 +1161,15 @@ static void HallOfFame_PrintPlayerInfo(u8 a0, u8 a1)
u8* stringPtr;
u16 visibleTid;
- MenuPrint(gOtherText_Name, a0 + 1, a1 + 1);
+ Menu_PrintText(gOtherText_Name, a0 + 1, a1 + 1);
MenuPrint_RightAligned(gSaveBlock2.playerName, a0 + 14, a1 + 1);
- MenuPrint(gOtherText_IDNumber2, a0 + 1, a1 + 3);
+ Menu_PrintText(gOtherText_IDNumber2, a0 + 1, a1 + 3);
visibleTid = ByteRead16(gSaveBlock2.playerTrainerId);
ConvertIntToDecimalStringN(gStringVar1, visibleTid, 2, 5);
MenuPrint_RightAligned(gStringVar1, a0 + 14, a1 + 3);
- MenuPrint(gMainMenuString_Time, a0 + 1, a1 + 5);
+ Menu_PrintText(gMainMenuString_Time, a0 + 1, a1 + 5);
stringPtr = ConvertIntToDecimalString(gStringVar1, gSaveBlock2.playTimeHours);
stringPtr[0] = CHAR_SPACE;
@@ -1199,8 +1185,6 @@ static void HallOfFame_PrintPlayerInfo(u8 a0, u8 a1)
static void sub_81433E0(void)
{
- u32 offsetWrite, offsetWrite2, offsetWrite3, offsetWrite4;
- u32 size, size2, size3, size4;
u16 i;
REG_DISPCNT = 0;
@@ -1221,27 +1205,9 @@ static void sub_81433E0(void)
REG_BG3HOFS = 0;
REG_BG3VOFS = 0;
- offsetWrite = (VRAM);
- size = 0x18000;
- while (TRUE)
- {
- DmaFill16(3, 0, offsetWrite, 0x1000);
- offsetWrite += 0x1000;
- size -= 0x1000;
- if (size <= 0x1000)
- {
- DmaFill16(3, 0, offsetWrite, size);
- break;
- }
- }
-
- offsetWrite2 = OAM;
- size2 = OAM_SIZE;
- DmaFill32(3, 0, offsetWrite2, size2);
-
- offsetWrite3 = PLTT;
- size3 = PLTT_SIZE;
- DmaFill16(3, 0, offsetWrite3, size3);
+ DmaFill16Large(3, 0, VRAM, 0x18000, 0x1000);
+ DmaFill32Defvars(3, 0, OAM, OAM_SIZE);
+ DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE);
LZ77UnCompVram(gHallOfFame_Gfx, (void*)(VRAM));
@@ -1258,35 +1224,22 @@ static void sub_81433E0(void)
*((u16*)(VRAM + 0x3000) + i) = 2;
}
- offsetWrite4 = ewram0_6;
- size4 = 0x4000;
- while (TRUE)
- {
- DmaFill16(3, 0, offsetWrite4, 0x1000);
- offsetWrite4 += 0x1000;
- size4 -= 0x1000;
- if (size4 <= 0x1000)
- {
- DmaFill16(3, 0, offsetWrite4, size4);
- break;
- }
- }
-
+ DmaFill16Large(3, 0, ewram0_6, 0x4000, 0x1000);
ResetPaletteFade();
LoadPalette(gHallOfFame_Pal, 0, 0x20);
}
static void sub_8143570(void)
{
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 8;
LoadCompressedObjectPic(&sHallOfFame_ConfettiSpriteSheet);
LoadCompressedObjectPalette(&sHallOfFame_ConfettiSpritePalette);
- SetUpWindowConfig(&gWindowConfig_81E71B4);
- InitMenuWindow(&gWindowConfig_81E71B4);
+ Text_LoadWindowTemplate(&gWindowTemplate_81E71B4);
+ InitMenuWindow(&gWindowTemplate_81E71B4);
}
static void sub_81435B8(void)
diff --git a/src/scene/intro.c b/src/scene/intro.c
index 4dc6cc91c..4da341744 100644
--- a/src/scene/intro.c
+++ b/src/scene/intro.c
@@ -19,7 +19,7 @@
#include "task.h"
#include "title_screen.h"
#include "trig.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "ewram.h"
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -873,7 +873,7 @@ static u8 SetUpCopyrightScreen(void)
DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
ResetPaletteFade();
LoadCopyrightGraphics(0, 0x3800, 0);
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
@@ -930,8 +930,8 @@ void CB2_InitCopyrightScreenAfterBootup(void)
if (!SetUpCopyrightScreen())
{
sub_8052E4C();
- ResetSaveCounters();
- sub_8125EC8(0);
+ Save_ResetSaveCounters();
+ Save_LoadGameData(SAVE_NORMAL);
if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
ClearSav2();
SetPokemonCryStereo(gSaveBlock2.optionsSound);
@@ -1217,7 +1217,6 @@ static void Task_IntroWaitToSetupPart3DoubleFight(u8 taskId)
static void Task_IntroLoadPart3Streaks(u8 taskId)
{
u16 i;
- void *vram;
intro_reset_and_hide_bgs();
for (i = 0; i < 32; i++)
@@ -1226,8 +1225,7 @@ static void Task_IntroLoadPart3Streaks(u8 taskId)
ewram0arr[1][i] = 17;
ewram0arr[2][i] = 34;
}
- vram = (void *)VRAM;
- DmaCopy16(3, gSharedMem, vram, 0x60);
+ DmaCopy16Defvars(3, gSharedMem, (void *)(VRAM + 0x0), 0x60);
for (i = 0; i < 0x280; i++)
((u16 *)(VRAM + 0x3000))[i] = 0xF001;
for (i = 0; i < 0x80; i++)
diff --git a/src/scene/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c
index 6cee74cce..7f6765ef6 100755..100644
--- a/src/scene/intro_credits_graphics.c
+++ b/src/scene/intro_credits_graphics.c
@@ -19,7 +19,7 @@
#include "task.h"
#include "title_screen.h"
#include "trig.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
// define register constants for the inline asm
asm(".include \"constants/gba_constants.inc\"\n");
@@ -301,9 +301,10 @@ const struct CompressedSpriteSheet gUnknown_08416E34[] = {
};
-extern u16 gUnknown_02039358;
-extern s16 gUnknown_0203935A;
-extern s16 gUnknown_0203935C;
+EWRAM_DATA u16 gUnknown_02039358 = 0;
+EWRAM_DATA s16 gUnknown_0203935A = 0;
+EWRAM_DATA s16 gUnknown_0203935C = 0;
+
extern u8 gReservedSpritePaletteCount;
void sub_8149248();
diff --git a/src/scene/new_game.c b/src/scene/new_game.c
index 0279f99c6..e64dc91e3 100644
--- a/src/scene/new_game.c
+++ b/src/scene/new_game.c
@@ -1,4 +1,7 @@
#include "global.h"
+#include "constants/maps.h"
+#include "constants/species.h"
+#include "clock.h"
#include "new_game.h"
#include "battle_records.h"
#include "berry.h"
@@ -20,6 +23,7 @@
#include "pokemon_storage_system.h"
#include "random.h"
#include "roamer.h"
+#include "script_pokemon_80C4.h"
#include "overworld.h"
#include "rtc.h"
#include "script.h"
@@ -42,6 +46,18 @@ static const struct ContestWinner sEmptyMuseumPortrait =
.trainerName = {EOS},
};
+#if DEBUG
+const s8 gUnknown_Debug_0823C788[][2] =
+{
+ { MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK) },
+ { MAP_GROUP(OLDALE_TOWN_POKEMON_CENTER_2F), MAP_NUM(OLDALE_TOWN_POKEMON_CENTER_2F) },
+ { MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN) },
+ { MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F) }
+};
+
+const u8 gUnknown_Debug_0823C790[] = _("KRÖTE");
+#endif
+
void write_word_to_mem(u32 var, u8 *dataPtr)
{
dataPtr[0] = var;
@@ -94,6 +110,30 @@ void ZeroBattleTowerData(void)
CpuFill32(0, &gSaveBlock2.battleTower, sizeof(gSaveBlock2.battleTower));
}
+#if DEBUG
+void debug_sub_8052E04()
+{
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_Debug_0823C788[i][0] == gSaveBlock1.location.mapGroup &&
+ gUnknown_Debug_0823C788[i][1] == gSaveBlock1.location.mapNum)
+ {
+ break;
+ }
+ }
+
+ i++;
+ if (i >= 4)
+ {
+ i = 0;
+ }
+
+ Overworld_SetWarpDestination(gUnknown_Debug_0823C788[i][0], gUnknown_Debug_0823C788[i][1], -1, -1, -1);
+}
+#endif
+
void WarpToTruck(void)
{
Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck
@@ -109,6 +149,9 @@ void ClearSav2(void)
void sub_8052E4C(void)
{
gDifferentSaveFile = 0;
+#if DEBUG
+ gUnknown_020297ED = 0;
+#endif
sub_808C0A0();
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
@@ -161,3 +204,33 @@ void NewGameInitData(void)
WarpToTruck();
ScriptContext2_RunNewScript(gUnknown_0819FA81);
}
+
+#if DEBUG
+extern void debug_sub_80A3904(void);
+extern void debug_sub_80A3714(void);
+extern void debug_sub_8120F98(void);
+extern void unref_sub_8070F90(void);
+
+void debug_sub_8057508(bool32 arg0)
+{
+ gUnknown_020297ED = 1;
+ NewGameInitData();
+ gSaveBlock1.money = 999999;
+ FlagSet(FLAG_SYS_POKEMON_GET);
+ FlagSet(FLAG_SYS_POKEDEX_GET);
+ FlagSet(FLAG_SYS_POKENAV_GET);
+ FlagSet(FLAG_SYS_B_DASH);
+ ScriptGiveMon(SPECIES_TREECKO, 99, 0, 0, 0, 0);
+
+ if (arg0 == TRUE)
+ SetMonData(&gPlayerParty[0], MON_DATA_NICKNAME, gUnknown_Debug_0823C790);
+
+ debug_sub_80A3904();
+ debug_sub_80A3714();
+ debug_sub_8120F98();
+ FlagSet(FLAG_SYS_HIPSTER_MEET);
+ sub_80EB8EC();
+ unref_sub_8070F90();
+ InitTimeBasedEvents();
+}
+#endif
diff --git a/src/scene/title_screen.c b/src/scene/title_screen.c
index 26fe088d5..a1c8e081d 100644
--- a/src/scene/title_screen.c
+++ b/src/scene/title_screen.c
@@ -8,12 +8,13 @@
#include "m4a.h"
#include "main.h"
#include "main_menu.h"
+#include "overworld.h"
#include "palette.h"
#include "reset_rtc_screen.h"
#include "sound.h"
#include "sprite.h"
#include "task.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#if ENGLISH
#define VERSION_BANNER_SHAPE 1
@@ -353,6 +354,9 @@ static void Task_TitleScreenPhase1(u8);
static void Task_TitleScreenPhase2(u8);
static void Task_TitleScreenPhase3(u8);
static void CB2_GoToMainMenu(void);
+#if DEBUG
+static void CB2_GoToTestMenu(void);
+#endif
static void CB2_GoToClearSaveDataScreen(void);
static void CB2_GoToResetRtcScreen(void);
static void CB2_GoToCopyrightScreen(void);
@@ -598,7 +602,7 @@ static void StartPokemonLogoShine(bool8 flashBackground)
static void VBlankCB(void)
{
- sub_8089668();
+ ScanlineEffect_InitHBlankDmaTransfer();
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -644,7 +648,7 @@ void CB2_InitTitleScreen(void)
LZ77UnCompVram(sLegendaryMonTilemap, (void *)(VRAM + 0xC000));
LZ77UnCompVram(sBackdropTilemap, (void *)(VRAM + 0xC800));
LoadPalette(sLegendaryMonPalettes, 0xE0, sizeof(sLegendaryMonPalettes));
- remove_some_task();
+ ScanlineEffect_Stop();
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
@@ -711,7 +715,7 @@ void CB2_InitTitleScreen(void)
if (!UpdatePaletteFade())
{
StartPokemonLogoShine(FALSE);
- sub_8089944(0, 0xA0, 4, 4, 0, 4, 1);
+ ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, SCANLINE_EFFECT_REG_BG1HOFS, TRUE);
SetMainCallback2(MainCB2);
}
break;
@@ -829,6 +833,13 @@ static void Task_TitleScreenPhase3(u8 taskId)
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_GoToResetRtcScreen);
}
+#if DEBUG
+ else if (gMain.heldKeys == SELECT_BUTTON)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ SetMainCallback2(CB2_GoToTestMenu);
+ }
+#endif
else
{
REG_BG2Y = 0;
@@ -855,6 +866,14 @@ static void CB2_GoToMainMenu(void)
SetMainCallback2(CB2_InitMainMenu);
}
+#if DEBUG
+static void CB2_GoToTestMenu(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitTestMenu);
+}
+#endif
+
static void CB2_GoToCopyrightScreen(void)
{
if (!UpdatePaletteFade())
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index f397e5ebb..02e66d313 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -32,26 +32,13 @@ extern void sub_80C4698(u8 *, u8);
extern struct SpriteTemplate gUnknown_02024E8C;
-extern u8 gContestPlayerMonIndex;
-extern u8 gIsLinkContest;
-extern u8 gPlayerPartyCount;
extern u8 gSelectedOrderFromParty[];
-extern u16 gSpecialVar_0x8004;
-extern u16 gSpecialVar_0x8005;
-extern u16 gSpecialVar_0x8006;
-
extern u16 gSpecialVar_ContestCategory;
extern u16 gSpecialVar_ContestRank;
-extern u16 gSpecialVar_Result;
-
-extern u32 gUnknown_03005D28;
extern u8 gUnknown_02038694;
extern u8 gUnknown_0203856C;
-extern u8 gContestFinalStandings[];
-extern s16 gUnknown_02038670[];
-extern s16 gUnknown_02038678[];
void SetContestTrainerGfxIds(void)
{
@@ -238,8 +225,8 @@ void ShowContestWinner(void)
if(gUnknown_0203856C)
{
sub_80AAF30();
- BATTLE_STRUCT->unk15DDF = 1;
- BATTLE_STRUCT->unk15DDE = sub_80B2C4C(254, 0);
+ gBattleStruct->unk15DDF = 1;
+ gBattleStruct->unk15DDE = sub_80B2C4C(254, 0);
Contest_SaveWinner(3);
gUnknown_0203856C = 0;
}
@@ -292,7 +279,7 @@ void ShowContestEntryMonPic(void)
u8 left = CONTEST_ENTRY_PIC_LEFT;
u8 top = CONTEST_ENTRY_PIC_TOP;
- MenuDrawTextWindow(left, top, 19, 13);
+ Menu_DrawStdWindowFrame(left, top, 19, 13);
species = gContestMons[gSpecialVar_0x8006].species;
var1 = gContestMons[gSpecialVar_0x8006].personality;
var2 = gContestMons[gSpecialVar_0x8006].otId;
@@ -349,7 +336,7 @@ void sub_80C5190(u8 taskId)
task->data[0]++;
break;
case 3:
- MenuZeroFillWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
+ Menu_EraseWindowRect(task->data[3], task->data[4], task->data[3] + 9, task->data[4] + 10);
DestroyTask(taskId);
break;
case 1:
@@ -373,8 +360,8 @@ void ScriptRandom(void)
if(gIsLinkContest & 1)
{
- gUnknown_03005D28 = 1103515245 * gUnknown_03005D28 + 24691;
- random = gUnknown_03005D28 >> 16;
+ gContestRngValue = 1103515245 * gContestRngValue + 24691;
+ random = gContestRngValue >> 16;
scriptPtr = &gSpecialVar_Result;
}
else
diff --git a/src/strings.c b/src/strings.c
index 06bbadb8f..0f599db72 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -173,7 +173,8 @@ const u8 gOtherText_None[] = _("NONE");
const u8 gOtherText_ThreeQuestions2[] = _("???");
-const u8 gOtherText_FiveQuestionsAndSlash[] = _("?????$/");
+const u8 gOtherText_FiveQuestions[] = _("?????");
+const u8 gOtherText_Slash[] = _("/");
const u8 gOtherText_OneDash[] = _("-");
const u8 gOtherText_TwoDashes[] = _("--");
@@ -267,7 +268,9 @@ const u8 gContestStatsText_Spicy[] = _("SPICY");
const u8 gContestStatsText_Dry[] = _("DRY");
const u8 gContestStatsText_Sweet[] = _("SWEET");
const u8 gContestStatsText_Bitter[] = _("BITTER");
-const u8 gContestStatsText_Sour[] = _("SOUR$TASTY$FEEL"); // tasty is unused, feel might not be
+const u8 gContestStatsText_Sour[] = _("SOUR");
+const u8 gContestStatsText_Tasty[] = _("TASTY");
+const u8 gContestStatsText_Feel[] = _("FEEL");
const u8 gContestStatsText_StowCase[] = _("Stow CASE.");
const u8 gContestStatsText_ThrowAwayPrompt[] = _("Throw away this\n{STR_VAR_1}?");
@@ -1096,7 +1099,8 @@ const u8 gOtherText_None[] = _("KEINES");
const u8 gOtherText_ThreeQuestions2[] = _("???");
-const u8 gOtherText_FiveQuestionsAndSlash[] = _("?????$/");
+const u8 gOtherText_FiveQuestions[] = _("?????");
+const u8 gOtherText_Slash[] = _("/");
const u8 gOtherText_OneDash[] = _("-");
const u8 gOtherText_TwoDashes[] = _("--");
@@ -1190,7 +1194,9 @@ const u8 gContestStatsText_Spicy[] = _("SCHARF");
const u8 gContestStatsText_Dry[] = _("TROCKEN");
const u8 gContestStatsText_Sweet[] = _("SÜSS");
const u8 gContestStatsText_Bitter[] = _("BITTER");
-const u8 gContestStatsText_Sour[] = _("SAUER$LECKER$WÜRZE");
+const u8 gContestStatsText_Sour[] = _("SAUER");
+const u8 gContestStatsText_Tasty[] = _("LECKER");
+const u8 gContestStatsText_Feel[] = _("WÜRZE");
const u8 gContestStatsText_StowCase[] = _("BOX verstauen.");
const u8 gContestStatsText_ThrowAwayPrompt[] = _("{STR_VAR_1}\nwegwerfen?");
diff --git a/src/unknown_task.c b/src/unknown_task.c
deleted file mode 100644
index c9ba95d42..000000000
--- a/src/unknown_task.c
+++ /dev/null
@@ -1,234 +0,0 @@
-#include "global.h"
-#include "data2.h"
-#include "task.h"
-#include "trig.h"
-#include "unknown_task.h"
-
-static void sub_80896F4(void);
-static void sub_8089714(void);
-
-extern u16 gUnknown_030041B0;
-extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
-extern u16 gBattle_BG2_Y;
-extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030042A0;
-extern u16 gUnknown_030042A4;
-extern u16 gBattle_BG1_X;
-
-extern u8 gUnknown_0202FFA4;
-
-extern struct UnknownTaskStruct2 gUnknown_03004DC0;
-
-extern u16 gUnknown_03004DE0[][0x3C0];
-
-void remove_some_task(void)
-{
- gUnknown_03004DC0.unk15 = 0;
- DmaStop(0);
- if (gUnknown_03004DC0.taskId != 0xFF)
- {
- DestroyTask(gUnknown_03004DC0.taskId);
- gUnknown_03004DC0.taskId = 0xFF;
- }
-}
-
-void dp12_8087EA4(void)
-{
- CpuFill16(0, gUnknown_03004DE0, 0x780 * 2);
- gUnknown_03004DC0.src[0] = 0;
- gUnknown_03004DC0.src[1] = 0;
- gUnknown_03004DC0.dest = 0;
- gUnknown_03004DC0.unkC = 0;
- gUnknown_03004DC0.srcBank = 0;
- gUnknown_03004DC0.unk15 = 0;
- gUnknown_03004DC0.unk16 = 0;
- gUnknown_03004DC0.unk17 = 0;
- gUnknown_03004DC0.taskId = 0xFF;
-}
-
-void sub_80895F8(struct UnknownTaskStruct unk)
-{
- if (unk.control == (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1))
- {
- gUnknown_03004DC0.src[0] = &gUnknown_03004DE0[0][1];
- gUnknown_03004DC0.src[1] = &gUnknown_03004DE0[1][1];
- gUnknown_03004DC0.unk10 = sub_80896F4;
- }
- else
- {
- gUnknown_03004DC0.src[0] = &gUnknown_03004DE0[0][2];
- gUnknown_03004DC0.src[1] = &gUnknown_03004DE0[1][2];
- gUnknown_03004DC0.unk10 = sub_8089714;
- }
-
- gUnknown_03004DC0.unkC = unk.control;
- gUnknown_03004DC0.dest = unk.dest;
- gUnknown_03004DC0.unk15 = unk.unk8;
- gUnknown_03004DC0.unk16 = unk.unk9;
- gUnknown_03004DC0.unk17 = unk.unk9;
-}
-
-void sub_8089668(void)
-{
- if (gUnknown_03004DC0.unk15)
- {
- if (gUnknown_03004DC0.unk15 == 3)
- {
- gUnknown_03004DC0.unk15 = 0;
- DmaStop(0);
- gUnknown_0202FFA4 = 1;
- }
- else
- {
- DmaStop(0);
- DmaSet(0, gUnknown_03004DC0.src[gUnknown_03004DC0.srcBank], gUnknown_03004DC0.dest, gUnknown_03004DC0.unkC);
- gUnknown_03004DC0.unk10();
- gUnknown_03004DC0.srcBank ^= 1;
- }
- }
-}
-
-static void sub_80896F4(void)
-{
- u16 *dest = (u16 *)gUnknown_03004DC0.dest;
- u16 *src = (u16 *)&gUnknown_03004DE0[gUnknown_03004DC0.srcBank];
- *dest = *src;
-}
-
-static void sub_8089714(void)
-{
- u32 *dest = (u32 *)gUnknown_03004DC0.dest;
- u32 *src = (u32 *)&gUnknown_03004DE0[gUnknown_03004DC0.srcBank];
- *dest = *src;
-}
-
-static void task00_for_dp12(u8 taskId)
-{
- int value = 0;
-
- if (gUnknown_0202FFA4)
- {
- DestroyTask(taskId);
- gUnknown_03004DC0.taskId = 0xFF;
- }
- else
- {
- if (gTasks[taskId].data[7])
- {
- switch (gTasks[taskId].data[6])
- {
- case 0x0:
- value = gUnknown_030042A4;
- break;
- case 0x2:
- value = gUnknown_030042A0;
- break;
- case 0x4:
- value = gBattle_BG1_X;
- break;
- case 0x6:
- value = gBattle_BG1_Y;
- break;
- case 0x8:
- value = gBattle_BG2_X;
- break;
- case 0xA:
- value = gBattle_BG2_Y;
- break;
- case 0xC:
- value = gUnknown_030041B0;
- break;
- case 0xE:
- value = gUnknown_030041B8;
- break;
- }
- }
- if (gTasks[taskId].data[4])
- {
- int i;
- int offset;
- gTasks[taskId].data[4]--;
- offset = gTasks[taskId].data[3] + 320;
- for (i = gTasks[taskId].data[0]; i < gTasks[taskId].data[1]; i++)
- {
- gUnknown_03004DE0[gUnknown_03004DC0.srcBank][i] = gUnknown_03004DE0[0][offset] + value;
- offset++;
- }
- }
- else
- {
- int i;
- int offset;
- gTasks[taskId].data[4] = gTasks[taskId].data[5];
- offset = gTasks[taskId].data[3] + 320;
- for (i = gTasks[taskId].data[0]; i < gTasks[taskId].data[1]; i++)
- {
- gUnknown_03004DE0[gUnknown_03004DC0.srcBank][i] = gUnknown_03004DE0[0][offset] + value;
- offset++;
- }
- gTasks[taskId].data[3]++;
- if (gTasks[taskId].data[3] == gTasks[taskId].data[2])
- {
- gTasks[taskId].data[3] = 0;
- }
- }
- }
-}
-
-static void sub_80898FC(u16 *a1, u8 a2, u8 a3, u8 a4)
-{
- u16 i = 0;
- u8 offset = 0;
-
- while (i < 0x100)
- {
- a1[i] = (gSineTable[offset] * a3) / 256;
- offset += a2;
- i++;
- }
-}
-
-u8 sub_8089944(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7)
-{
- int i;
- int offset;
- struct UnknownTaskStruct unk;
- u8 taskId;
-
- dp12_8087EA4();
-
- unk.dest = (void *)(REG_ADDR_BG0HOFS + a6);
- unk.control = ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1;
- unk.unk8 = 1;
- unk.unk9 = 0;
-
- sub_80895F8(unk);
-
- taskId = CreateTask(task00_for_dp12, 0);
-
- gTasks[taskId].data[0] = a1;
- gTasks[taskId].data[1] = a2;
- gTasks[taskId].data[2] = 256 / a3;
- gTasks[taskId].data[3] = 0;
- gTasks[taskId].data[4] = a5;
- gTasks[taskId].data[5] = a5;
- gTasks[taskId].data[6] = a6;
- gTasks[taskId].data[7] = a7;
-
- gUnknown_03004DC0.taskId = taskId;
- gUnknown_0202FFA4 = 0;
-
- sub_80898FC(&gUnknown_03004DE0[0][320], a3, a4, a2 - a1);
-
- offset = 320;
-
- for (i = a1; i < a2; i++)
- {
- gUnknown_03004DE0[0][i] = gUnknown_03004DE0[0][offset];
- gUnknown_03004DE0[1][i] = gUnknown_03004DE0[0][offset];
- offset++;
- }
-
- return taskId;
-}
diff --git a/src/unused_81258BC.c b/src/unused_81258BC.c
new file mode 100644
index 000000000..c25884053
--- /dev/null
+++ b/src/unused_81258BC.c
@@ -0,0 +1,36 @@
+#include "constants/songs.h"
+#include "global.h"
+#include "menu.h"
+#include "mystery_event_script.h"
+#include "sound.h"
+#include "text.h"
+
+void sub_812AF10(void);
+
+bool8 unref_sub_812AECC(u8 *script)
+{
+ u8 result = RunMysteryEventScript(script);
+ switch (result)
+ {
+ case 0:
+ return FALSE;
+ case 1:
+ PlaySE(SE_BOO);
+ return TRUE;
+ case 2:
+ sub_812AF10();
+ return FALSE;
+ case 3:
+ PlaySE(SE_BOO);
+ sub_812AF10();
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
+
+void sub_812AF10(void)
+{
+ Menu_DrawStdWindowFrame(2, 14, 27, 19);
+ Menu_PrintText(gStringVar4, 3, 15);
+} \ No newline at end of file
diff --git a/sym_bss.txt b/sym_bss.txt
index 6587c2c39..7f0aa80f6 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -1,41 +1,53 @@
- .include "src/engine/main.o"
- .include "src/engine/sprite.o"
- .include "src/engine/text.o"
- .include "src/engine/string_util.o"
- .include "src/engine/link.o"
- .include "src/engine/rtc.o"
- .include "src/field/daycare.o"
- .include "src/engine/trade.o"
- .include "src/scene/berry_blender.o"
- .include "src/engine/play_time.o"
- .include "src/field/overworld.o"
- .include "src/field/field_camera.o"
- .include "src/field/field_map_obj.o"
- .include "src/field/field_message_box.o"
- .include "src/engine/text_window.o"
- .include "src/engine/script.o"
- .include "src/field/start_menu.o"
- .include "src/engine/menu.o"
- .include "src/engine/tileset_anim.o"
- .include "src/engine/sound.o"
- .include "src/field/field_weather.o"
- .include "src/field/field_effect.o"
- .include "src/field/item_menu.o"
- .include "src/field/shop.o"
- .include "src/engine/record_mixing.o"
- .include "src/field/tv.o"
- .include "src/battle/battle_anim_80CA710.o"
- .include "src/field/easy_chat.o"
- .include "src/pokenav_before.o"
- .include "src/field/mauville_man.o"
- .include "src/field/menu_helpers.o"
- .include "src/scene/contest_painting.o"
- .include "src/field/pokeblock.o"
- .include "src/field/field_specials.o"
- .include "src/pokemon/learn_move.o"
- .include "src/field/player_pc.o"
- .include "asm/m4a_1.o"
- .include "src/libs/agb_flash.o"
- .include "src/libs/siirtc.o"
- .include "tools/agbcc/lib/libgcc.a:dp-bit.o"
- .include "tools/agbcc/lib/libgcc.a:fp-bit.o"
+. = ALIGN(4); src/engine/main.o(.bss);
+. = ALIGN(4); src/engine/sprite.o(.bss);
+. = ALIGN(4); src/engine/text.o(.bss);
+. = ALIGN(4); src/engine/string_util.o(.bss);
+. = ALIGN(4); src/engine/link.o(.bss);
+. = ALIGN(4); src/engine/rtc.o(.bss);
+. = ALIGN(4); src/field/daycare.o(.bss);
+. = ALIGN(4); src/engine/trade.o(.bss);
+. = ALIGN(4); src/scene/berry_blender.o(.bss);
+. = ALIGN(4); src/engine/play_time.o(.bss);
+. = ALIGN(4); src/field/overworld.o(.bss);
+. = ALIGN(4); src/field/field_camera.o(.bss);
+. = ALIGN(4); src/field/field_map_obj.o(.bss);
+. = ALIGN(4); src/field/field_message_box.o(.bss);
+. = ALIGN(4); src/engine/text_window.o(.bss);
+. = ALIGN(4); src/engine/script.o(.bss);
+. = ALIGN(4); src/field/start_menu.o(.bss);
+. = ALIGN(4); src/debug/start_menu_debug.o(.bss);
+. = ALIGN(4); src/engine/menu.o(.bss);
+. = ALIGN(4); src/engine/tileset_anim.o(.bss);
+. = ALIGN(4); src/engine/sound.o(.bss);
+. = ALIGN(4); src/field/field_weather.o(.bss);
+. = ALIGN(4); src/debug/tomomichi_debug_menu.o(.bss);
+. = ALIGN(4); src/debug/nohara_debug_menu.o(.bss);
+. = ALIGN(4); src/field/field_effect.o(.bss);
+. = ALIGN(4); src/engine/trainer_card.o(.bss);
+. = ALIGN(4); src/field/item_menu.o(.bss);
+#if DEBUG
+unk_debug_bss_3 = .;
+ . += 0x4;
+#endif
+. = ALIGN(4); src/field/shop.o(.bss);
+. = ALIGN(4); src/engine/record_mixing.o(.bss);
+. = ALIGN(4); src/field/tv.o(.bss);
+. = ALIGN(4); src/battle/battle_anim_80CA710.o(.bss);
+. = ALIGN(4); src/easy_chat_2.o(.bss);
+. = ALIGN(4); src/pokenav_before.o(.bss);
+. = ALIGN(4); src/field/mauville_man.o(.bss);
+. = ALIGN(4); src/pokemon/mail.o(.bss);
+. = ALIGN(4); src/field/menu_helpers.o(.bss);
+. = ALIGN(4); src/field/slot_machine.o(.bss);
+. = ALIGN(4); src/scene/contest_painting.o(.bss);
+. = ALIGN(4); src/field/pokeblock.o(.bss);
+. = ALIGN(4); src/field/field_specials.o(.bss);
+. = ALIGN(4); src/pokemon/learn_move.o(.bss);
+. = ALIGN(4); src/field/player_pc.o(.bss);
+. = ALIGN(4); src/debug/nakamura_debug_menu.o(.bss);
+. = ALIGN(4); src/libs/m4a_1.o(.bss);
+. = ALIGN(4); src/libs/agb_flash.o(.bss);
+. = ALIGN(4); src/libs/siirtc.o(.bss);
+. = ALIGN(4); tools/agbcc/lib/libgcc.a:dp-bit.o(.bss);
+. = ALIGN(4); tools/agbcc/lib/libgcc.a:fp-bit.o(.bss);
+. = ALIGN(4); tools/agbcc/lib/libc.a:syscalls.o(.bss);
diff --git a/sym_common.txt b/sym_common.txt
index 87b411ff4..b4061bfe4 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -1,262 +1,396 @@
- .include "engine/main.o"
- .include "engine/sprite.o"
- .include "engine/string_util.o"
- .include "engine/link.o"
- .include "engine/rtc.o"
- .include "rom3.o"
-
-@ battle
-
- .align 2
-gUnknown_030041B0: @ 30041B0
- .space 0x4
-
-gBattle_BG1_Y: @ 30041B4
- .space 0x4
-
-gUnknown_030041B8: @ 30041B8
- .space 0x8
-
-gBattleTextBuff1: @ 30041C0
- .space 0x10
-
-gUnknown_030041D0: @ 30041D0
- .space 0x30
-
-gBattle_WIN1H: @ 3004200
- .space 0x10
-
-gUnknown_03004210: @ 3004210
- .space 0x30
-
-gBattle_WIN0V: @ 3004240
- .space 0x4
-
-gBattle_WIN1V: @ 3004244
- .space 0xC
-
-gUnknown_03004250: @ 3004250
- .space 0x30
-
-gBattle_BG2_Y: @ 3004280
- .space 0x4
-
-gUnknown_03004284: @ 3004284
- .space 0x4
-
-gBattle_BG2_X: @ 3004288
- .space 0x4
-
-gBattleTerrain: @ 300428C
- .space 0x4
-
-gBattleTextBuff2: @ 3004290
- .space 0x10
-
-gUnknown_030042A0: @ 30042A0
- .space 0x4
-
-gUnknown_030042A4: @ 30042A4
- .space 0xC
-
-gBattleTextBuff3: @ 30042B0
- .space 0x10
-
-gBattle_BG1_X: @ 30042C0
- .space 0x4
-
-gBattle_WIN0H: @ 30042C4
- .space 0xC
-
-gPreBattleCallback1: @ 30042D0
- .space 0x4
-
-gBattleMainFunc: @ 30042D4
- .space 0xC
-
-gBattleResults: @ 30042E0
- .space 0x1C
-
-gUnknown_030042FC: @ 30042FC
- .space 0xE
-
-gUnknown_0300430A: @ 300430A
- .space 0xC
-
-gUnknown_03004316: @ 3004316
- .space 0xE
-
-gLeveledUpInBattle: @ 3004324
- .space 0xC
-
-gBattleBankFunc: @ 3004330
- .space 0x10
-
-gHealthboxIDs: @ 3004340
- .space 0x4
-
-gUnknown_03004344: @ 3004344
- .space 0x4
-
-gUnknown_03004348: @ 3004348
- .space 0x4
-
-gUnknown_0300434C: @ 300434C
- .space 0x4
-
- .include "pokemon/pokemon_1.o"
- .include "engine/random.o"
- .include "scene/egg_hatch.o"
- .include "engine/load_save.o"
-
-@ trade
-
-gUnknown_03004824: @ 3004824
- .space 0x4
-
-gUnknown_03004828: @ 3004828
- .space 0x8
-
- .include "scene/berry_blender.o"
- .include "field/overworld.o"
- .include "field/fieldmap.o"
- .include "field/field_camera.o"
- .include "field/field_map_obj.o"
- .include "field/field_control_avatar.o"
-
-@ party_menu?
-
- .align 2
-gUnknown_03004AE4: @ 3004AE4
- .space 0x4
-
- .include "field/start_menu.o"
- .include "engine/sound.o"
- .include "battle/battle_anim.o"
- .include "engine/task.o"
- .include "debug/mori_debug_menu.o"
-
-@ unknown_task
-
- .align 4
-gUnknown_03004DC0: @ 3004DC0
- .space 0x20
-
-gUnknown_03004DE0: @ 3004DE0
- .space 0x2
-
-gUnknown_03004DE2: @ 3004DE2
- .space 0x2
-
-gUnknown_03004DE4: @ 3004DE4
- .space 0x27C
-
-gUnknown_03005060: @ 3005060
- .space 0x500
-
-gUnknown_03005560: @ 3005560
- .space 0x140
-
-gUnknown_030056A0: @ 30056A0
- .space 0x640
-
- .include "pokemon/pokemon_menu.o"
- .include "pokemon/pokedex.o"
-
-@ pokemon_summary_screen
-
- .align 4
-gUnknown_03005CF0: @ 3005CF0
- .space 0x10
-
-@ item_menu
-
- .align 4
-gFieldItemUseCallback: @ 3005D00
- .space 0x10
-
-gBagPocketScrollStates: @ 3005D10
- .space 0x14
-
-gCurrentBagPocketItemSlots: @ 3005D24
- .space 0x4
-
-@ contest
-
- .align 2
-gUnknown_03005D28: @ 3005D28
- .space 0x4
-
- .include "engine/record_mixing.o"
- .include "debug/sound_check_menu.o"
- .include "field/tv.o"
-
- .space 0x64 @ unused variable?
-
-@ mauville_old_man
-
- .align 4
-gUnknown_03005DA0: @ 3005DA0
- .space 0x48
-
-@ cute_sketch
-
-gUnknown_03005DE8: @ 3005DE8
- .space 0x4
-
-gUnknown_03005DEC: @ 3005DEC
- .space 0x4
-
-gUnknown_03005DF0: @ 3005DF0
- .space 0x4
-
-gUnknown_03005DF4: @ 3005DF4
- .space 0x4
-
-gUnknown_03005DF8: @ 3005DF8
- .space 0x4
-
-gUnknown_03005DFC: @ 3005DFC
- .space 0x4
-
-gUnknown_03005E00: @ 3005E00
- .space 0x4
-
-gUnknown_03005E04: @ 3005E04
- .space 0x4
-
-gUnknown_03005E08: @ 3005E08
- .space 0x4
-
-gUnknown_03005E0C: @ 3005E0C
- .space 0x4
-
- .include "scene/contest_painting.o"
- .include "scene/evolution_scene.o"
-
-@ pokedex_cry_screen
-
-gUnknown_03005E98: @ 3005E98
- .space 0x4
-
- .include "engine/save.o"
-
- .space 0x10 @ unused variable?
-
- .include "scene/intro.o"
-
-@ battle_anim_813F0F4
-
- .align 2
-gUnknown_03005F0C: @ 3005F0C
- .space 0x4
-
-gUnknown_03005F10: @ 3005F10
- .space 0x4
-
-gUnknown_03005F14: @ 3005F14
- .space 0xC
-
- .include "pokemon/pokeblock_feed.o"
- .include "libs/m4a_2.o"
- .include "libs/agb_flash.o"
+#define SYMBOL(name, size) \
+ . = ALIGN (((size) > 16) ? 16 : (size)); \
+ . = ALIGN(4); \
+ name = .; \
+ . += size;
+
+
+// main.c
+#if DEBUG
+/*. += 0x18;*/
+#endif
+SYMBOL(gKeyRepeatStartDelay, 4)
+SYMBOL(gLinkTransferringData, 4)
+#if DEBUG
+. += 0x8;
+#endif
+SYMBOL(gMain, 1088)
+SYMBOL(gKeyRepeatContinueDelay, 4)
+SYMBOL(gSoftResetDisabled, 4)
+SYMBOL(gIntrTable, 56)
+SYMBOL(gLinkVSyncDisabled, 4)
+SYMBOL(IntrMain_Buffer, 2048)
+SYMBOL(gPcmDmaCounter, 4)
+
+// sprite.c
+SYMBOL(gSpriteOrder, 64)
+SYMBOL(gSpriteTileAllocBitmap, 128)
+SYMBOL(gSpriteCoordOffsetX, 4)
+SYMBOL(gOamLimit, 4)
+SYMBOL(gReservedSpriteTileCount, 4)
+SYMBOL(gSpriteCopyRequestCount, 4)
+SYMBOL(gSpriteCopyRequests, 768)
+SYMBOL(gSpriteCoordOffsetY, 4)
+SYMBOL(gOamMatrices, 256)
+SYMBOL(gShouldProcessSpriteCopyRequests, 4)
+SYMBOL(gOamMatrixAllocBitmap, 4)
+SYMBOL(gReservedSpritePaletteCount, 4)
+
+// string_util.c
+SYMBOL(gUnknownStringVar, 16)
+
+// link.c
+SYMBOL(word_3002910, 8)
+SYMBOL(gLinkDebugValue1, 4)
+SYMBOL(localLinkPlayerBlock, 60)
+SYMBOL(gLinkErrorOccurred, 4)
+. += 0x4;
+SYMBOL(gLinkDebugValue2, 4)
+. += 0x4;
+#ifdef GERMAN
+SYMBOL(deUnkValue1, 4)
+SYMBOL(deUnkValue2, 4)
+#endif
+SYMBOL(gLinkPlayerPending, 4)
+SYMBOL(gLinkPlayers, 112)
+SYMBOL(gBlockReceived, 4)
+. += 0x4;
+SYMBOL(gLinkHeldKeys, 4)
+SYMBOL(gLinkTimeOutCounter, 4)
+. += 0x4;
+SYMBOL(localLinkPlayer, 28)
+SYMBOL(gRecvCmds, 64)
+SYMBOL(gLinkStatus, 4)
+SYMBOL(gLinkDummyBool, 4)
+SYMBOL(byte_3002A68, 4)
+SYMBOL(gBlockSendBuffer, 256)
+SYMBOL(u8_array_3002B70, 4)
+SYMBOL(gLinkType, 4)
+SYMBOL(u8_array_3002B78, 4)
+SYMBOL(gBlockRecvBuffer, 1024)
+SYMBOL(gSuppressLinkErrorMessage, 4)
+SYMBOL(gSavedLinkPlayerCount, 4)
+SYMBOL(gSendCmd, 16)
+SYMBOL(gSavedMultiplayerId, 4)
+SYMBOL(gReceivedRemoteLinkPlayers, 4)
+SYMBOL(gLinkTestBGInfo, 16)
+SYMBOL(gLinkCallback, 4)
+SYMBOL(gSavedLinkPlayers, 112)
+SYMBOL(gShouldAdvanceLinkState, 4)
+SYMBOL(gLinkTestBlockChecksums, 8)
+SYMBOL(gUnknown_Debug_30030E0, 4)
+SYMBOL(gBlockRequestType, 4)
+. += 0x8;
+SYMBOL(gLastSendQueueCount, 4)
+SYMBOL(gLink, 4032)
+SYMBOL(gLastRecvQueueCount, 4)
+SYMBOL(gLinkSavedIme, 4)
+
+// rtc.c
+SYMBOL(gLocalTime, 8)
+
+// battle
+SYMBOL(gBattleBuffersTransferData, 368)
+SYMBOL(gBattle_BG3_X, 4)
+SYMBOL(gBattle_BG1_Y, 4)
+SYMBOL(gBattle_BG3_Y, 4)
+SYMBOL(gBattleTextBuff1, 16)
+SYMBOL(gUnknown_030041D0, 48)
+SYMBOL(gBattle_WIN1H, 4)
+SYMBOL(gUnknown_03004210, 48)
+SYMBOL(gBattle_WIN0V, 4)
+SYMBOL(gBattle_WIN1V, 4)
+SYMBOL(gUnknown_03004250, 48)
+SYMBOL(gBattle_BG2_Y, 4)
+SYMBOL(gUnknown_03004284, 4)
+SYMBOL(gBattle_BG2_X, 4)
+SYMBOL(gBattleTerrain, 4)
+SYMBOL(gBattleTextBuff2, 16)
+SYMBOL(gBattle_BG0_Y, 4)
+SYMBOL(gBattle_BG0_X, 4)
+SYMBOL(gBattleTextBuff3, 16)
+SYMBOL(gBattle_BG1_X, 4)
+SYMBOL(gBattle_WIN0H, 4)
+. += 0x8;
+
+#if DEBUG
+gUnknown_Debug_03004360 = .;
+ . += 0x10;
+gUnknown_Debug_03004370 = .;
+ . += 0x30;
+gUnknown_Debug_030043A0 = .;
+ . += 0x4;
+gUnknown_Debug_030043A4 = .;
+ . += 0x4;
+gUnknown_Debug_030043A8 = .;
+ . += 0x8;
+#endif
+
+SYMBOL(gPreBattleCallback1, 4)
+gBattleMainFunc = .;
+. += 0xC;
+gBattleResults = .;
+. += 0x1C;
+// Why is this not aligned?
+gUnknown_030042FC = .;
+. += 0x1A;
+gUnknown_03004316 = .;
+. += 0xE;
+gLeveledUpInBattle = .;
+. += 0xC;
+SYMBOL(gBattleBankFunc, 16)
+SYMBOL(gHealthboxIDs, 4)
+SYMBOL(gUnknown_03004344, 4)
+SYMBOL(gUnknown_03004348, 4)
+SYMBOL(gUnknown_0300434C, 4)
+
+// pokemon_1.c
+SYMBOL(gPlayerPartyCount, 4)
+SYMBOL(gPlayerParty, 600)
+SYMBOL(gEnemyPartyCount, 4)
+SYMBOL(gEnemyParty, 600)
+
+// random.c
+SYMBOL(gRngValue, 4)
+
+// egg_hatch.c
+SYMBOL(gEggHatchData, 4)
+
+// load_save.c
+SYMBOL(gFlashMemoryPresent, 4)
+
+// trade.c
+SYMBOL(gUnknown_03004824, 4)
+SYMBOL(gUnknown_03004828, 4)
+. += 0x4;
+
+// berry_blender.c
+SYMBOL(gUnknown_03004830, 4)
+SYMBOL(gInGameOpponentsNo, 4)
+SYMBOL(gUnknown_03004840, 20)
+SYMBOL(gBerryBlenderData, 4)
+
+// overworld.c
+SYMBOL(word_3004858, 4)
+SYMBOL(gFieldCallback, 4)
+SYMBOL(gUnknown_03004860, 4)
+SYMBOL(gFieldLinkPlayerCount, 4)
+
+// fieldmap.c
+. = ALIGN(16);
+gUnknown_03004870 = .;
+. += 0xC;
+
+// field_camera.c
+SYMBOL(gUnknown_03004880, 24)
+SYMBOL(gUnknown_03004898, 4)
+SYMBOL(gUnknown_0300489C, 4)
+
+// field_map_obj.c
+SYMBOL(gMapObjects, 576)
+
+#if DEBUG
+gUnknown_Debug_03004BC0 = .;
+. += 0x4;
+#endif
+
+// field_control_avatar.c
+SYMBOL(gSelectedMapObject, 4)
+
+// ???
+SYMBOL(gPokemonItemUseCallback, 4)
+
+// start_menu.c
+SYMBOL(gMenuCallback, 4)
+
+#if DEBUG
+gUnknown_Debug_03004BD0 = .;
+. += 0x4;
+#endif
+
+// sound.c
+SYMBOL(gDisableMusic, 4)
+
+#if DEBUG
+unk_debug_common_2 = .;
+. += 0x8;
+#endif
+
+// battle_anim.c
+SYMBOL(gSoundAnimFramesToWait, 4)
+SYMBOL(gBattleAnimArgs, 16)
+SYMBOL(gAnimSpriteIndexArray, 16)
+
+// task.c
+SYMBOL(gTasks, 640)
+
+#if DEBUG
+unk_debug_common_1 = .;
+. += 0x4;
+unk_3004E94 = .;
+. += 0x4;
+unk_3004E98 = .;
+. += 0x8;
+#endif
+
+// mori_debug_menu.c
+SYMBOL(gUnknown_03004DA0, 32)
+
+// scanline_effect.c
+SYMBOL(gScanlineEffect, 32)
+SYMBOL(gScanlineEffectRegBuffers, 3840)
+
+// pokemon_menu.c
+SYMBOL(gLastFieldPokeMenuOpened, 4)
+SYMBOL(gUnknown_03005CE4, 4)
+
+// pokedex.c
+SYMBOL(gUnknown_03005CE8, 4)
+SYMBOL(gUnknown_03005CEC, 4)
+
+// pokemon_summary_screen.o
+SYMBOL(gUnknown_03005CF0, 4)
+
+// huh?
+. = ALIGN(16);
+
+// item_menu.c
+gFieldItemUseCallback = .;
+. += 0x10;
+gBagPocketScrollStates = .;
+. += 0x14;
+SYMBOL(gCurrentBagPocketItemSlots, 4)
+
+// contest.c
+SYMBOL(gContestRngValue, 4)
+
+#if DEBUG
+unk_debug_common_0 = .;
+. += 0x4;
+
+// watanabe_debug_menu.c
+byte_3005E30 = .;
+. += 0x20;
+
+#endif
+
+// record_mixing.c
+SYMBOL(gUnknown_03005D2C, 4)
+
+// sound_check_menu.c
+SYMBOL(gUnknown_03005D30, 4)
+SYMBOL(gSoundTestCryNum, 4)
+
+// tv.c
+SYMBOL(gUnknown_03005D38, 4)
+#if DEBUG
+. += 0x54;
+#else
+. += 0x64; // huge gap?
+#endif
+
+// mauville_man.c
+SYMBOL(gUnknown_03005DA0, 0x48)
+
+// cute_sketch.c
+SYMBOL(gUnknown_03005DE8, 4)
+SYMBOL(gUnknown_03005DEC, 4)
+SYMBOL(gUnknown_03005DF0, 4)
+SYMBOL(gUnknown_03005DF4, 4)
+SYMBOL(gUnknown_03005DF8, 4)
+SYMBOL(gUnknown_03005DFC, 4)
+SYMBOL(gUnknown_03005E00, 4)
+SYMBOL(gUnknown_03005E04, 4)
+SYMBOL(gUnknown_03005E08, 4)
+SYMBOL(gUnknown_03005E0C, 4)
+
+// contest_painting.c
+SYMBOL(gUnknown_03005E10, 4)
+SYMBOL(gUnknown_03005E20, 32)
+SYMBOL(gUnknown_03005E40, 76)
+SYMBOL(gUnknown_03005E8C, 4)
+SYMBOL(gUnknown_03005E90, 4)
+
+// evolution_scene.c
+SYMBOL(gCB2_AfterEvolution, 4)
+
+#if DEBUG
+gUnknown_Debug_03005FB8 = .;
+. += 0x4;
+#endif
+
+// pokedex_cry_screen.c
+SYMBOL(gUnknown_03005E98, 4)
+
+// save.c
+SYMBOL(gFirstSaveSector, 4)
+SYMBOL(gPrevSaveCounter, 4)
+SYMBOL(gLastKnownGoodSector, 4)
+SYMBOL(gDamagedSaveSectors, 4)
+SYMBOL(gSaveCounter, 4)
+SYMBOL(gFastSaveSection, 4)
+SYMBOL(gUnknown_03005EB4, 4)
+SYMBOL(gSaveFileStatus, 4)
+SYMBOL(gGameContinueCallback, 4)
+#if DEBUG
+. += 0xC;
+#else
+. += 0x10;
+#endif
+
+// intro.c
+SYMBOL(gIntroFrameCounter, 4)
+SYMBOL(gMultibootProgramStruct, 44)
+
+// battle_anim_813F0F4.c
+SYMBOL(gUnknown_03005F0C, 4)
+SYMBOL(gUnknown_03005F10, 4)
+gUnknown_03005F14 = .;
+. += 0xC;
+
+// pokeblock_feed.c
+SYMBOL(gPokeblockFeedPokeSprite, 4)
+SYMBOL(gPokeblockFeedMonSpecies, 4)
+SYMBOL(gPokeblockMonNotFlipped, 4)
+SYMBOL(gPokeblockFeedMonSpriteID, 4)
+SYMBOL(gPokeblockFeedMonNature, 4)
+SYMBOL(gUnknown_03005F34, 4)
+SYMBOL(gPokeblockFeedUnused0, 4)
+SYMBOL(gUnknown_03005F3C, 4)
+SYMBOL(gUnknown_03005F40, 4)
+SYMBOL(gPokeblockFeedPokeSpriteCopy, 68)
+SYMBOL(gUnknown_03005F94, 4)
+#if DEBUG
+SYMBOL(gUnknown_03005FA0, 32)
+#else
+SYMBOL(gUnknown_03005FA0, 48)
+#endif
+
+// m4a_2.c
+#if DEBUG
+. += 0x10;
+#endif
+SYMBOL(gSoundInfo, 4016)
+SYMBOL(gPokemonCrySongs, 104)
+SYMBOL(gPokemonCryMusicPlayers, 128)
+SYMBOL(gMPlayJumpTable, 144)
+SYMBOL(gCgbChans, 256)
+SYMBOL(gPokemonCryTracks, 320)
+SYMBOL(gPokemonCrySong, 52)
+SYMBOL(gMPlay_BGM, 64)
+SYMBOL(gMPlay_SE1, 64)
+SYMBOL(gMPlay_SE2, 64)
+SYMBOL(gMPlayMemAccArea, 16)
+SYMBOL(gMPlay_SE3, 64)
+
+// agb_flash.c
+SYMBOL(gFlashTimeoutFlag, 4)
+SYMBOL(PollFlashStatus, 4)
+SYMBOL(WaitForFlashWrite, 4)
+SYMBOL(ProgramFlashSector, 4)
+SYMBOL(gFlash, 4)
+SYMBOL(ProgramFlashByte, 4)
+SYMBOL(gFlashNumRemainingBytes, 4)
+SYMBOL(EraseFlashChip, 4)
+SYMBOL(EraseFlashSector, 4)
+SYMBOL(gFlashMaxTime, 4)
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 6f7be47c1..012a32cc6 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1,644 +1,424 @@
- .include "src/engine/main.o"
- .include "src/engine/sprite.o"
- .include "src/engine/text.o"
- .include "src/engine/string_util.o"
+. = ALIGN(4); src/engine/main.o(ewram_data);
+. = ALIGN(4); src/engine/sprite.o(ewram_data);
+. = ALIGN(4); src/engine/text.o(ewram_data);
+. = ALIGN(4); src/engine/string_util.o(ewram_data);
- .space 0x2E8
+. += 0x2E8;
- .include "src/engine/link.o"
- .include "src/rom3.o"
+. = ALIGN(4); src/engine/link.o(ewram_data);
+. = ALIGN(4); src/rom3.o(ewram_data);
-@ battle
+/* battle */
- .align 2
-gUnknown_020238C8: @ 20238C8
- .space 0x4
+ . = ALIGN(4);
+gUnknown_020238C8 = .; /* 20238C8 */
+ . += 0x4;
-gDisplayedStringBattle: @ 20238CC
- .space 0x12C
+gDisplayedStringBattle = .; /* 20238CC */
+ . += 0x12C;
-gBattleTypeFlags: @ 20239F8
- .space 0x4
+gBattleTypeFlags = .; /* 20239F8 */
+ . += 0x4;
-gUnknown_020239FC: @ 20239FC
- .space 0x4
+gUnknown_020239FC = .; /* 20239FC */
+ . += 0x4;
-gUnknown_02023A00: @ 2023A00
- .space 0x4
+gUnknown_02023A00 = .; /* 2023A00 */
+ . += 0x4;
-gUnknown_02023A04: @ 2023A04
- .space 0x10
+gUnknown_02023A04 = .; /* 2023A04 */
+ . += 0x10;
-gUnknown_02023A14: @ 2023A14
- .space 0x4C
+gUnknown_02023A14 = .; /* 2023A14 */
+ . += 0x4C;
-gBattleBufferA: @ 2023A60
- .space 0x2
+#if DEBUG
-gUnknown_02023A62: @ 2023A62
- .space 0x1
+gUnknown_02023A14_4C = .;
+ . += 0x4;
-gUnknown_02023A63: @ 2023A63
- .space 0x1
+gUnknown_02023A14_50 = .;
+ . += 0x2;
-gUnknown_02023A64: @ 2023A64
- .space 0x7FC
+gUnknown_Debug_2023A76 = .;
+gUnknown_Debug_2023A76_ = .;
+ . += 0x4;
-gBattleBufferB: @ 2024260
- .space 0x4
+gUnknown_Debug_2023A7A = .;
+ . += 0x42;
-gUnknown_02024264: @ 2024264
- .space 0x7FC
+gUnknown_Debug_2023ABC = .;
+ . += 0x4;
-gActiveBank: @ 2024A60
- .space 0x4
+gUnknown_Debug_2023AC0 = .;
+ . += 0x42;
-gBattleExecBuffer: @ 2024A64
- .space 0x4
+gUnknown_Debug_2023B02 = .;
+ . += 0x30;
-gNoOfAllBanks: @ 2024A68
- .space 0x2
+gUnknown_Debug_2023B32 = .;
+ . += 0x30;
-gBattlePartyID: @ 2024A6A
- .space 0x8
+gUnknown_Debug_2023B62 = .;
+ . += 0x1A2;
-gBanksBySide: @ 2024A72
- .space 0x4
+#endif
-gUnknown_02024A76: @ 2024A76
- .space 0x4
+gBattleBufferA = .; /* 2023A60 */
+ . += 0x800;
-gTurnOrder: @ 2024A7A
- .space 0x4
+gBattleBufferB = .; /* 2024260 */
+ . += 0x800;
-gCurrentMoveTurn: @ 2024A7E
- .space 0x1
+gActiveBank = .; /* 2024A60 */
+ . += 0x4;
-gFightStateTracker: @ 2024A7F
- .space 0x1
+gBattleExecBuffer = .; /* 2024A64 */
+ . += 0x4;
-gBattleMons: @ 2024A80
- .space 0xC
+gNoOfAllBanks = .; /* 2024A68 */
+ . += 0x2;
-gUnknown_02024A8C: @ 2024A8C
- .space 0xC
+gBattlePartyID = .; /* 2024A6A */
+ . += 0x8;
-gUnknown_02024A98: @ 2024A98
- .space 0xC
+gBanksBySide = .; /* 2024A72 */
+ . += 0x4;
-gUnknown_02024AA4: @ 2024AA4
- .space 0x4
+gActionsByTurnOrder = .; /* 2024A76 */
+ . += 0x4;
-gUnknown_02024AA8: @ 2024AA8
- .space 0x24
+gBanksByTurnOrder = .; /* 2024A7A */
+ . += 0x4;
-gUnknown_02024ACC: @ 2024ACC
- .space 0x4
+gCurrentTurnActionNumber = .; /* 2024A7E */
+ . += 0x1;
-gUnknown_02024AD0: @ 2024AD0
- .space 0x110
+gCurrentActionFuncId = .; /* 2024A7F */
+ . += 0x1;
-gObjectBankIDs: @ 2024BE0
- .space 0x4
+gBattleMons = .; /* 2024A80 */
+ . += 0xC;
-gCurrMovePos: @ 2024BE4
- .space 0x1
+gUnknown_02024A8C = .; /* 2024A8C */
+ . += 0xC;
-gUnknown_02024BE5: @ 2024BE5
- .space 0x1
+gUnknown_02024A98 = .; /* 2024A98 */
+ . += 0xC;
-gCurrentMove: @ 2024BE6
- .space 0x2
+gUnknown_02024AA4 = .; /* 2024AA4 */
+ . += 0x4;
-gChosenMove: @ 2024BE8
- .space 0x2
+gUnknown_02024AA8 = .; /* 2024AA8 */
+ . += 0x24;
-gRandomMove: @ 2024BEA
- .space 0x2
+gUnknown_02024ACC = .; /* 2024ACC */
+ . += 0x4;
-gBattleMoveDamage: @ 2024BEC
- .space 0x4
+gUnknown_02024AD0 = .; /* 2024AD0 */
+ . += 0x110;
-gHP_dealt: @ 2024BF0
- .space 0x4
+gObjectBankIDs = .; /* 2024BE0 */
+ . += 0x4;
-gTakenDmg: @ 2024BF4
- .space 0x10
+gCurrMovePos = .; /* 2024BE4 */
+ . += 0x1;
-gLastUsedItem: @ 2024C04
- .space 0x2
+gUnknown_02024BE5 = .; /* 2024BE5 */
+ . += 0x1;
-gLastUsedAbility: @ 2024C06
- .space 0x1
+gCurrentMove = .; /* 2024BE6 */
+ . += 0x2;
-gBankAttacker: @ 2024C07
- .space 0x1
+gChosenMove = .; /* 2024BE8 */
+ . += 0x2;
-gBankTarget: @ 2024C08
- .space 0x1
+gRandomMove = .; /* 2024BEA */
+ . += 0x2;
-gBank1: @ 2024C09
- .space 0x1
+gBattleMoveDamage = .; /* 2024BEC */
+ . += 0x4;
-gEffectBank: @ 2024C0A
- .space 0x1
+gHpDealt = .; /* 2024BF0 */
+ . += 0x4;
-gStringBank: @ 2024C0B
- .space 0x1
+gTakenDmg = .; /* 2024BF4 */
+ . += 0x10;
-gAbsentBankFlags: @ 2024C0C
- .space 0x1
+gLastUsedItem = .; /* 2024C04 */
+ . += 0x2;
-gCritMultiplier: @ 2024C0D
- .space 0x1
+gLastUsedAbility = .; /* 2024C06 */
+ . += 0x1;
-gMultiHitCounter: @ 2024C0E
- .space 0x2
+gBankAttacker = .; /* 2024C07 */
+ . += 0x1;
-gBattlescriptCurrInstr: @ 2024C10
- .space 0x8
+gBankTarget = .; /* 2024C08 */
+ . += 0x1;
-gActionForBanks: @ 2024C18
- .space 0x4
+gBank1 = .; /* 2024C09 */
+ . += 0x1;
-gUnknown_02024C1C: @ 2024C1C
- .space 0x10
+gEffectBank = .; /* 2024C0A */
+ . += 0x1;
-gUnknown_02024C2C: @ 2024C2C
- .space 0x8
+gStringBank = .; /* 2024C0B */
+ . += 0x1;
-gLastUsedMove: @ 2024C34
- .space 0x8
+gAbsentBankFlags = .; /* 2024C0C */
+ . += 0x1;
-gMoveHitWith: @ 2024C3C
- .space 0x8
+gCritMultiplier = .; /* 2024C0D */
+ . += 0x1;
-gUnknown_02024C44: @ 2024C44
- .space 0x8
+gMultiHitCounter = .; /* 2024C0E */
+ . += 0x2;
-gUnknown_02024C4C: @ 2024C4C
- .space 0x8
+gBattlescriptCurrInstr = .; /* 2024C10 */
+ . += 0x8;
-gLockedMove: @ 2024C54
- .space 0x8
+gActionForBanks = .; /* 2024C18 */
+ . += 0x4;
-gUnknown_02024C5C: @ 2024C5C
- .space 0x4
+gUnknown_02024C1C = .; /* 2024C1C */
+ . += 0x10;
-gChosenMovesByBanks: @ 2024C60
- .space 0x8
+gUnknown_02024C2C = .; /* 2024C2C */
+ . += 0x8;
-gBattleMoveFlags: @ 2024C68
- .space 0x4
+gLastUsedMove = .; /* 2024C34 */
+ . += 0x8;
-gHitMarker: @ 2024C6C
- .space 0x4
+gLastLandedMoves = .; /* 2024C3C */
+ . += 0x8;
-gUnknown_02024C70: @ 2024C70
- .space 0x4
+gLastHitByType = .; /* 2024C44 */
+ . += 0x8;
-gTakenDmgBanks: @ 2024C74
- .space 0x4
+gUnknown_02024C4C = .; /* 2024C4C */
+ . += 0x8;
-gUnknown_02024C78: @ 2024C78
- .space 0x2
+gLockedMoves = .; /* 2024C54 */
+ . += 0x8;
-gSideAffecting: @ 2024C7A
- .space 0x6
+gUnknown_02024C5C = .; /* 2024C5C */
+ . += 0x4;
-gSideTimer: @ 2024C80
- .space 0x18
+gChosenMovesByBanks = .; /* 2024C60 */
+ . += 0x8;
-gStatuses3: @ 2024C98
- .space 0x10
+gBattleMoveFlags = .; /* 2024C68 */
+ . += 0x4;
-gDisableStructs: @ 2024CA8
- .space 0x70
+gHitMarker = .; /* 2024C6C */
+ . += 0x4;
-gPauseCounterBattle: @ 2024D18
- .space 0x2
+gUnknown_02024C70 = .; /* 2024C70 */
+ . += 0x4;
-gPaydayMoney: @ 2024D1A
- .space 0x2
+gTakenDmgBanks = .; /* 2024C74 */
+ . += 0x4;
-gRandomTurnNumber: @ 2024D1C
- .space 0x2
+gUnknown_02024C78 = .; /* 2024C78 */
+ . += 0x2;
-gBattleCommunication: @ 2024D1E
- .space 0x1
+gSideAffecting = .; /* 2024C7A */
+ . += 0x6;
-gUnknown_02024D1F: @ 2024D1F
- .space 0x7
+gSideTimers = .; /* 2024C80 */
+ . += 0x18;
-gBattleOutcome: @ 2024D26
- .space 0x2
+gStatuses3 = .; /* 2024C98 */
+ . += 0x10;
-gProtectStructs: @ 2024D28
- .space 0x40
+gDisableStructs = .; /* 2024CA8 */
+ . += 0x70;
-gSpecialStatuses: @ 2024D68
- .space 0x50
+gPauseCounterBattle = .; /* 2024D18 */
+ . += 0x2;
-gBattleWeather: @ 2024DB8
- .space 0x4
+gPaydayMoney = .; /* 2024D1A */
+ . += 0x2;
-gWishFutureKnock: @ 2024DBC
- .space 0x20
+gRandomTurnNumber = .; /* 2024D1C */
+ . += 0x2;
-gUnknown_02024DDC: @ 2024DDC
- .space 0xC
+gBattleCommunication = .; /* 2024D1E */
+ . += 0x1;
-gUnknown_02024DE8: @ 2024DE8
- .space 0x2
+gUnknown_02024D1F = .; /* 2024D1F */
+ . += 0x7;
-gSentPokesToOpponent: @ 2024DEA
- .space 0x2
+gBattleOutcome = .; /* 2024D26 */
+ . += 0x2;
-gDynamicBasePower: @ 2024DEC
- .space 0x2
+gProtectStructs = .; /* 2024D28 */
+ . += 0x40;
-gExpShareExp: @ 2024DEE
- .space 0x2
+gSpecialStatuses = .; /* 2024D68 */
+ . += 0x50;
-gEnigmaBerries: @ 2024DF0
- .space 0x8
+gBattleWeather = .; /* 2024DB8 */
+ . += 0x4;
-gUnknown_02024DF8: @ 2024DF8
- .space 0x68
+gWishFutureKnock = .; /* 2024DBC */
+ . += 0x20;
-gActionSelectionCursor: @ 2024E60
- .space 0x4
+gUnknown_02024DDC = .; /* 2024DDC */
+ . += 0xC;
-gMoveSelectionCursor: @ 2024E64
- .space 0x4
+gUnknown_02024DE8 = .; /* 2024DE8 */
+ . += 0x2;
-gUnknown_02024E68: @ 2024E68
- .space 0x4
-
-gBankInMenu: @ 2024E6C
- .space 0x1
-
-gDoingBattleAnim: @ 2024E6D
- .space 0x3
-
-gTransformedPersonalities: @ 2024E70
- .space 0x10
-
-gBattleMovePower: @ 2024E80
- .space 0x2
-
-gMoveToLearn: @ 2024E82
- .space 0x2
-
-gBattleMonForms: @ 2024E84
- .space 0x4
-
- .include "src/pokemon/pokemon_1.o"
- .include "src/pokemon/pokemon_2.o"
- .include "src/engine/load_save.o"
-
-@ trade
-
-gUnknown_020296CC: @ 20296CC
- .space 0x34
-
-gUnknown_02029700: @ 2029700
- .space 0xD8
-
-gUnknown_020297D8: @ 20297D8
- .space 0x4
-
- .include "src/scene/berry_blender.o"
- .include "src/scene/new_game.o"
- .include "src/field/overworld.o"
- .include "src/field/fieldmap.o"
- .include "src/field/field_camera.o"
- .include "src/field/field_player_avatar.o"
- .include "src/field/field_message_box.o"
- .include "src/engine/script.o"
- .include "src/field/scrcmd.o"
- .include "src/field/field_control_avatar.o"
- .include "src/field/event_data.o"
-
-@ party_menu
-
- .align 2
-gUnknown_0202E8F4: @ 202E8F4
- .space 0x1
-
-gUnknown_0202E8F5: @ 202E8F5
- .space 0x1
-
-gUnknown_0202E8F6: @ 202E8F6
- .space 0x2
-
-gUnknown_0202E8F8: @ 202E8F8
- .space 0x2
-
-gPartyMenuType: @ 202E8FA
- .space 0x2
-
- .include "src/field/start_menu.o"
- .include "src/engine/menu.o"
- .include "src/engine/tileset_anim.o"
- .include "src/engine/palette.o"
- .include "src/engine/sound.o"
- .include "src/battle/battle_anim.o"
- .include "src/rom_8077ABC.o"
- .include "src/scene/title_screen.o"
-
-@ field_weather
-
- .align 2
-gWeather: @ 202F7E8
- .space 0x200
-
-gUnknown_0202F9E8: @ 202F9E8
- .space 0x260
-
-gUnknown_0202FC48: @ 202FC48
- .space 0x2F0
-
-gUnknown_0202FF38: @ 202FF38
- .space 0x20
-
-gUnknown_0202FF58: @ 202FF58
- .space 0x4
-
- .include "src/battle/battle_setup.o"
- .include "src/field/wild_encounter.o"
- .include "src/field/field_effect.o"
-
-@ unknown_task
-
-gUnknown_0202FFA4: @ 202FFA4
- .space 0x4
-
- .include "src/pokemon/pokemon_menu.o"
- .include "src/pokemon/pokedex.o"
- .include "src/engine/trainer_card.o"
- .include "src/pokemon/pokemon_storage_system.o"
-
-@ still pokemon_storage_system
-
- .align 2
-gUnknown_02038470: @ 2038470
- .space 0x3
-
-gUnknown_02038473: @ 2038473
- .space 0x1
-
-gUnknown_02038474: @ 2038474
- .space 0x4
-
-gUnknown_02038478: @ 2038478
- .space 0x4
-
-gUnknown_0203847C: @ 203847C
- .space 0x1
-
-gUnknown_0203847D: @ 203847D
- .space 0x1
-
-gUnknown_0203847E: @ 203847E
- .space 0x1
-
-gUnknown_0203847F: @ 203847F
- .space 0x1
-
-gUnknown_02038480: @ 2038480
- .space 0x64
-
-gUnknown_020384E4: @ 20384E4
- .space 0x1
-
-gUnknown_020384E5: @ 20384E5
- .space 0x1
-
-gUnknown_020384E6: @ 20384E6
- .space 0x1
-
-gUnknown_020384E7: @ 20384E7
- .space 0x1
-
-gUnknown_020384E8: @ 20384E8
- .space 0x1
-
-gUnknown_020384E9: @ 20384E9
- .space 0x1
-
-gUnknown_020384EA: @ 20384EA
- .space 0x2
-
-gUnknown_020384EC: @ 20384EC
- .space 0x4
-
-@ pokemon_summary_screen
-
-gUnknown_020384F0: @ 20384F0
- .space 0x4
-
-gUnknown_020384F4: @ 20384F4
- .space 0x4
-
- .include "src/field/script_movement.o"
- .include "src/field/map_name_popup.o"
- .include "src/field/item_menu.o"
-
-@ contest
-
- .align 2
-gUnknown_0203856C: @ 203856C
- .space 0x4
-
-gContestMons: @ 2038570
- .space 0xD
-
-gUnknown_0203857D: @ 203857D
- .space 0x11
-
- @ contest move space
-gUnknown_0203858E: @ 203858E
- .space 0x8
-
-gUnknown_02038596: @ 2038596
- .space 0xDA
-
-gUnknown_02038670: @ 2038670
- .space 0x8
-
-gUnknown_02038678: @ 2038678
- .space 0x8
-
-gUnknown_02038680: @ 2038680
- .space 0x8
-
-gUnknown_02038688: @ 2038688
- .space 0x8
-
-gContestFinalStandings: @ 2038690
- .space 0x4
-
-gUnknown_02038694: @ 2038694
- .space 0x1
-
-gContestPlayerMonIndex: @ 2038695
- .space 0x1
-
-gUnknown_02038696: @ 2038696
- .space 0x4
-
-gIsLinkContest: @ 203869A
- .space 0x1
-
-gUnknown_0203869B: @ 203869B
- .space 0x1
-
-gSpecialVar_ContestCategory: @ 203869C
- .space 0x2
-
-gSpecialVar_ContestRank: @ 203869E
- .space 0x2
-
- .include "src/field/shop.o"
- .include "src/field/money.o"
-
-@ record_mixing
-
- .align 2
-gUnknown_02038738: @ 2038738
- .space 0x78
-
- .include "src/debug/sound_check_menu.o"
-
-@ secret_base
-
- .align 2
-gUnknown_020387DC: @ 20387DC
- .space 0x4
-
-@ tv
-
- .include "src/field/tv.o"
-
-@ fldeff_80C5CD4
-
- .align 2
-gUnknown_020387EC: @ 20387EC
- .space 0x4
-
- .include "src/field/rotating_gate.o"
- .include "src/field/safari_zone.o"
-
-@ easy_chat
-
-gUnknown_020388AC: @ 20388AC
- .space 0x4
-
-@ pokenav
-
-gUnknown_020388B0: @ 20388B0
- .space 0x4
-
-gUnknown_020388B4: @ 20388B4
- .space 0x4
-
- .include "src/pokemon/mon_markings.o"
- .include "src/field/mauville_man.o"
- .include "src/field/menu_helpers.o"
- .include "src/field/region_map.o"
- .include "src/field/decoration.o"
- .include "src/battle/battle_ai.o"
- .include "src/rom6.o"
- .include "src/field/pokeblock.o"
- .include "src/field/field_specials.o"
-
-@ pokedex_area_screen
-
- .align 2
-gUnknown_02039260: @ 2039260
- .space 0x2
-
-gUnknown_02039262: @ 2039262
- .space 0x2
-
-gUnknown_02039264: @ 2039264
- .space 0x2
-
-gUnknown_02039266: @ 2039266
- .space 0x2
-
-gUnknown_02039268: @ 2039268
- .space 0x2
-
-gUnknown_0203926A: @ 203926A
- .space 0x2
-
-@ battle_message
-
-gAbilitiesPerBank: @ 203926C
- .space 0x4
-
- .include "src/field/choose_party.o"
-
-@ cable_car
-
- .align 2
-gUnknown_02039274: @ 2039274
- .space 0x4
-
-gUnknown_02039278: @ 2039278
- .space 0x1
-
-gUnknown_02039279: @ 2039279
- .space 0x1
-
-gUnknown_0203927A: @ 203927A
- .space 0x1
-
-gUnknown_0203927B: @ 203927B
- .space 0x1
-
-gUnknown_0203927C: @ 203927C
- .space 0x1
-
-gUnknown_0203927D: @ 203927D
- .space 0x7
-
- .include "src/engine/save.o"
- .include "src/engine/mystery_event_script.o"
- .include "src/field/roamer.o"
- .include "src/field/use_pokeblock.o"
- .include "src/field/player_pc.o"
- .include "src/scene/intro.o"
- .include "src/scene/hall_of_fame.o"
- .include "src/scene/credits.o"
- .include "src/field/lottery_corner.o"
- .include "src/field/berry_tag_screen.o"
- .include "src/engine/mystery_event_menu.o"
- .include "src/engine/save_failed_screen.o"
- .include "src/pokemon/pokeblock_feed.o"
-
-@ intro_credits_graphics
-
-gUnknown_02039358: @ 2039358
- .space 0x2
-
-gUnknown_0203935A: @ 203935A
- .space 0x2
-
-gUnknown_0203935C: @ 203935C
- .space 0x4
-
-@ ???
-
-gTileBuffer: @ 2039360
- .space 0x100
-
-gUnknown_02039460: @ 2039460
- .space 0x300
-
-gUnknown_02039760: @ 2039760
- .space 0xC00
-
- .include "src/engine/menu_cursor.o"
+gSentPokesToOpponent = .; /* 2024DEA */
+ . += 0x2;
+
+gDynamicBasePower = .; /* 2024DEC */
+ . += 0x2;
+
+gExpShareExp = .; /* 2024DEE */
+ . += 0x2;
+
+gEnigmaBerries = .; /* 2024DF0 */
+ . += 0x8;
+
+gUnknown_02024DF8 = .; /* 2024DF8 */
+ . += 0x68;
+
+gActionSelectionCursor = .; /* 2024E60 */
+ . += 0x4;
+
+gMoveSelectionCursor = .; /* 2024E64 */
+ . += 0x4;
+
+gUnknown_02024E68 = .; /* 2024E68 */
+ . += 0x4;
+
+gBankInMenu = .; /* 2024E6C */
+ . += 0x1;
+
+gDoingBattleAnim = .; /* 2024E6D */
+ . += 0x3;
+
+gTransformedPersonalities = .; /* 2024E70 */
+ . += 0x10;
+
+gBattleMovePower = .; /* 2024E80 */
+ . += 0x2;
+
+gMoveToLearn = .; /* 2024E82 */
+ . += 0x2;
+
+gBattleMonForms = .; /* 2024E84 */
+ . += 0x4;
+
+. = ALIGN(4); src/pokemon/pokemon_1.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_2.o(ewram_data);
+. = ALIGN(4); src/engine/load_save.o(ewram_data);
+. = ALIGN(4); src/engine/trade.o(ewram_data);
+. = ALIGN(4); src/scene/berry_blender.o(ewram_data);
+. = ALIGN(4); src/scene/new_game.o(ewram_data);
+. = ALIGN(4); src/field/overworld.o(ewram_data);
+. = ALIGN(4); src/field/fieldmap.o(ewram_data);
+. = ALIGN(4); src/field/field_camera.o(ewram_data);
+. = ALIGN(4); src/field/field_player_avatar.o(ewram_data);
+. = ALIGN(4); src/field/field_message_box.o(ewram_data);
+. = ALIGN(4); src/engine/script.o(ewram_data);
+. = ALIGN(4); src/field/scrcmd.o(ewram_data);
+. = ALIGN(4); src/field/field_control_avatar.o(ewram_data);
+. = ALIGN(4); src/field/event_data.o(ewram_data);
+. = ALIGN(4); src/field/party_menu.o(ewram_data);
+. = ALIGN(4); src/field/start_menu.o(ewram_data);
+. = ALIGN(4); src/engine/menu.o(ewram_data);
+. = ALIGN(4); src/engine/tileset_anim.o(ewram_data);
+. = ALIGN(4); src/engine/palette.o(ewram_data);
+. = ALIGN(4); src/engine/sound.o(ewram_data);
+. = ALIGN(4); src/battle/battle_anim.o(ewram_data);
+. = ALIGN(4); src/rom_8077ABC.o(ewram_data);
+. = ALIGN(4); src/scene/title_screen.o(ewram_data);
+. = ALIGN(4); src/field/field_weather.o(ewram_data);
+. = ALIGN(4); src/battle/battle_setup.o(ewram_data);
+
+#if DEBUG
+unk_2030220 = .;
+ . += 0x4;
+. = ALIGN(4); src/debug/taya_debug_window.o(ewram_data);
+#endif
+
+. = ALIGN(4); src/field/wild_encounter.o(ewram_data);
+. = ALIGN(4); src/field/field_effect.o(ewram_data);
+. = ALIGN(4); src/scanline_effect.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_menu.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokedex.o(ewram_data);
+. = ALIGN(4); src/engine/trainer_card.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_storage_system.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_storage_system_2.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_storage_system_3.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_storage_system_4.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_storage_system_5.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokemon_summary_screen.o(ewram_data);
+. = ALIGN(4); src/field/script_movement.o(ewram_data);
+. = ALIGN(4); src/field/map_name_popup.o(ewram_data);
+. = ALIGN(4); src/field/item_menu.o(ewram_data);
+. = ALIGN(4); src/contest.o(ewram_data);
+. = ALIGN(4); src/field/shop.o(ewram_data);
+. = ALIGN(4); src/field/fldeff_escalator.o(ewram_data);
+. = ALIGN(4); src/debug/watanabe_debug_menu.o(ewram_data);
+. = ALIGN(4); src/field/money.o(ewram_data);
+. = ALIGN(4); src/engine/record_mixing.o(ewram_data);
+. = ALIGN(4); src/debug/sound_check_menu.o(ewram_data);
+. = ALIGN(4); src/field/secret_base.o(ewram_data);
+. = ALIGN(4); src/field/tv.o(ewram_data);
+. = ALIGN(4); src/field/pc_screen_effect.o(ewram_data);
+. = ALIGN(4); src/field/rotating_gate.o(ewram_data);
+. = ALIGN(4); src/field/safari_zone.o(ewram_data);
+. = ALIGN(4); src/easy_chat_2.o(ewram_data);
+. = ALIGN(4); src/field/pokenav.o(ewram_data);
+. = ALIGN(4); src/pokemon/mon_markings.o(ewram_data);
+. = ALIGN(4); src/field/mauville_man.o(ewram_data);
+. = ALIGN(4); src/field/menu_helpers.o(ewram_data);
+. = ALIGN(4); src/field/region_map.o(ewram_data);
+. = ALIGN(4); src/field/decoration.o(ewram_data);
+. = ALIGN(4); src/battle/battle_ai.o(ewram_data);
+. = ALIGN(4); src/rom6.o(ewram_data);
+. = ALIGN(4); src/field/pokeblock.o(ewram_data);
+. = ALIGN(4); src/field/field_specials.o(ewram_data);
+. = ALIGN(4); src/field/pokedex_area_screen.o(ewram_data);
+. = ALIGN(4); src/roulette.o(ewram_data);
+. = ALIGN(4); src/battle/battle_message.o(ewram_data);
+. = ALIGN(4); src/field/choose_party.o(ewram_data);
+. = ALIGN(4); src/scene/cable_car.o(ewram_data);
+. = ALIGN(4); src/engine/save.o(ewram_data);
+. = ALIGN(4); src/engine/mystery_event_script.o(ewram_data);
+. = ALIGN(4); src/field/roamer.o(ewram_data);
+. = ALIGN(4); src/field/use_pokeblock.o(ewram_data);
+. = ALIGN(4); src/field/player_pc.o(ewram_data);
+. = ALIGN(4); src/scene/intro.o(ewram_data);
+. = ALIGN(4); src/scene/hall_of_fame.o(ewram_data);
+. = ALIGN(4); src/scene/credits.o(ewram_data);
+. = ALIGN(4); src/field/lottery_corner.o(ewram_data);
+. = ALIGN(4); src/field/berry_tag_screen.o(ewram_data);
+. = ALIGN(4); src/engine/mystery_event_menu.o(ewram_data);
+. = ALIGN(4); src/engine/save_failed_screen.o(ewram_data);
+. = ALIGN(4); src/pokemon/pokeblock_feed.o(ewram_data);
+. = ALIGN(4); src/debug/nakamura_debug_menu.o(ewram_data);
+. = ALIGN(4); src/scene/intro_credits_graphics.o(ewram_data);
+
+/* ??? */
+
+#if DEBUG
+ . = ALIGN(8);
+#else
+ . = ALIGN(16);
+#endif
+gTileBuffer = .; /* 2039360 */
+ . += 0x100;
+
+gUnknown_02039460 = .; /* 2039460 */
+ . += 0x300;
+
+gUnknown_02039760 = .; /* 2039760 */
+ . += 0xC00;
+
+. = ALIGN(4); src/engine/menu_cursor.o(ewram_data);
diff --git a/tilesets.mk b/tilesets.mk
index 9bb9a1f3d..ae0e57c9b 100644
--- a/tilesets.mk
+++ b/tilesets.mk
@@ -1,185 +1,89 @@
TILESETDIR := data/tilesets
-$(TILESETDIR)/secondary/petalburg/tiles.4bpp: $(TILESETDIR)/secondary/petalburg/tiles.png
- $(GFX) $< $@ -num_tiles 159
-
-$(TILESETDIR)/secondary/rustboro/tiles.4bpp: $(TILESETDIR)/secondary/rustboro/tiles.png
- $(GFX) $< $@ -num_tiles 498
-
-$(TILESETDIR)/secondary/dewford/tiles.4bpp: $(TILESETDIR)/secondary/dewford/tiles.png
- $(GFX) $< $@ -num_tiles 343
-
-$(TILESETDIR)/secondary/slateport/tiles.4bpp: $(TILESETDIR)/secondary/slateport/tiles.png
- $(GFX) $< $@ -num_tiles 504
-
-$(TILESETDIR)/secondary/mauville/tiles.4bpp: $(TILESETDIR)/secondary/mauville/tiles.png
- $(GFX) $< $@ -num_tiles 450
-
-$(TILESETDIR)/secondary/lavaridge/tiles.4bpp: $(TILESETDIR)/secondary/lavaridge/tiles.png
- $(GFX) $< $@ -num_tiles 348
-
-$(TILESETDIR)/secondary/fallarbor/tiles.4bpp: $(TILESETDIR)/secondary/fallarbor/tiles.png
- $(GFX) $< $@ -num_tiles 374
-
-$(TILESETDIR)/secondary/fortree/tiles.4bpp: $(TILESETDIR)/secondary/fortree/tiles.png
- $(GFX) $< $@ -num_tiles 493
-
-$(TILESETDIR)/secondary/mossdeep/tiles.4bpp: $(TILESETDIR)/secondary/mossdeep/tiles.png
- $(GFX) $< $@ -num_tiles 499
-
-$(TILESETDIR)/secondary/pacifidlog/tiles.4bpp: $(TILESETDIR)/secondary/pacifidlog/tiles.png
- $(GFX) $< $@ -num_tiles 504
-
-$(TILESETDIR)/secondary/sootopolis/tiles.4bpp: $(TILESETDIR)/secondary/sootopolis/tiles.png
- $(GFX) $< $@ -num_tiles 180
-
-$(TILESETDIR)/primary/building/tiles.4bpp: $(TILESETDIR)/primary/building/tiles.png
- $(GFX) $< $@ -num_tiles 502
-
-$(TILESETDIR)/secondary/shop/tiles.4bpp: $(TILESETDIR)/secondary/shop/tiles.png
- $(GFX) $< $@ -num_tiles 502
-
-$(TILESETDIR)/secondary/pokemon_center/tiles.4bpp: $(TILESETDIR)/secondary/pokemon_center/tiles.png
- $(GFX) $< $@ -num_tiles 478
-
-$(TILESETDIR)/secondary/cave/tiles.4bpp: $(TILESETDIR)/secondary/cave/tiles.png
- $(GFX) $< $@ -num_tiles 420
-
-$(TILESETDIR)/secondary/pokemon_school/tiles.4bpp: $(TILESETDIR)/secondary/pokemon_school/tiles.png
- $(GFX) $< $@ -num_tiles 278
-
-$(TILESETDIR)/secondary/pokemon_fan_club/tiles.4bpp: $(TILESETDIR)/secondary/pokemon_fan_club/tiles.png
- $(GFX) $< $@ -num_tiles 319
-
-$(TILESETDIR)/secondary/unused_1/tiles.4bpp: $(TILESETDIR)/secondary/unused_1/tiles.png
- $(GFX) $< $@ -num_tiles 17
-
-$(TILESETDIR)/secondary/meteor_falls/tiles.4bpp: $(TILESETDIR)/secondary/meteor_falls/tiles.png
- $(GFX) $< $@ -num_tiles 422
-
-$(TILESETDIR)/secondary/oceanic_museum/tiles.4bpp: $(TILESETDIR)/secondary/oceanic_museum/tiles.png
- $(GFX) $< $@ -num_tiles 319
-
-$(TILESETDIR)/secondary/cable_club/unknown_tiles.4bpp: $(TILESETDIR)/secondary/cable_club/unknown_tiles.png
- $(GFX) $< $@ -num_tiles 120
-
-$(TILESETDIR)/secondary/seashore_house/tiles.4bpp: $(TILESETDIR)/secondary/seashore_house/tiles.png
- $(GFX) $< $@ -num_tiles 312
-
-$(TILESETDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp: $(TILESETDIR)/secondary/pretty_petal_flower_shop/tiles.png
- $(GFX) $< $@ -num_tiles 345
-
-$(TILESETDIR)/secondary/pokemon_day_care/tiles.4bpp: $(TILESETDIR)/secondary/pokemon_day_care/tiles.png
- $(GFX) $< $@ -num_tiles 355
-
-$(TILESETDIR)/secondary/facility/tiles.4bpp: $(TILESETDIR)/secondary/facility/tiles.png
- $(GFX) $< $@ -num_tiles 503
-
-$(TILESETDIR)/secondary/secret_base/brown_cave/tiles.4bpp: $(TILESETDIR)/secondary/secret_base/brown_cave/tiles.png
- $(GFX) $< $@ -num_tiles 83
-
-$(TILESETDIR)/secondary/secret_base/tree/tiles.4bpp: $(TILESETDIR)/secondary/secret_base/tree/tiles.png
- $(GFX) $< $@ -num_tiles 83
-
-$(TILESETDIR)/secondary/secret_base/shrub/tiles.4bpp: $(TILESETDIR)/secondary/secret_base/shrub/tiles.png
- $(GFX) $< $@ -num_tiles 83
-
-$(TILESETDIR)/secondary/secret_base/blue_cave/tiles.4bpp: $(TILESETDIR)/secondary/secret_base/blue_cave/tiles.png
- $(GFX) $< $@ -num_tiles 83
-
-$(TILESETDIR)/secondary/secret_base/yellow_cave/tiles.4bpp: $(TILESETDIR)/secondary/secret_base/yellow_cave/tiles.png
- $(GFX) $< $@ -num_tiles 83
-
-$(TILESETDIR)/secondary/secret_base/red_cave/tiles.4bpp: $(TILESETDIR)/secondary/secret_base/red_cave/tiles.png
- $(GFX) $< $@ -num_tiles 83
-
-$(TILESETDIR)/secondary/inside_of_truck/tiles.4bpp: $(TILESETDIR)/secondary/inside_of_truck/tiles.png
- $(GFX) $< $@ -num_tiles 62
-
-$(TILESETDIR)/secondary/contest/tiles.4bpp: $(TILESETDIR)/secondary/contest/tiles.png
- $(GFX) $< $@ -num_tiles 430
-
-$(TILESETDIR)/secondary/lilycove_museum/tiles.4bpp: $(TILESETDIR)/secondary/lilycove_museum/tiles.png
- $(GFX) $< $@ -num_tiles 431
-
-$(TILESETDIR)/secondary/lab/tiles.4bpp: $(TILESETDIR)/secondary/lab/tiles.png
- $(GFX) $< $@ -num_tiles 500
-
-$(TILESETDIR)/secondary/underwater/tiles.4bpp: $(TILESETDIR)/secondary/underwater/tiles.png
- $(GFX) $< $@ -num_tiles 500
-
-$(TILESETDIR)/secondary/generic_building/tiles.4bpp: $(TILESETDIR)/secondary/generic_building/tiles.png
- $(GFX) $< $@ -num_tiles 509
-
-$(TILESETDIR)/secondary/mauville_game_corner/tiles.4bpp: $(TILESETDIR)/secondary/mauville_game_corner/tiles.png
- $(GFX) $< $@ -num_tiles 469
-
-$(TILESETDIR)/secondary/unused_2/tiles.4bpp: $(TILESETDIR)/secondary/unused_2/tiles.png
- $(GFX) $< $@ -num_tiles 150
-
-$(TILESETDIR)/secondary/rustboro_gym/tiles.4bpp: $(TILESETDIR)/secondary/rustboro_gym/tiles.png
- $(GFX) $< $@ -num_tiles 94
-
-$(TILESETDIR)/secondary/dewford_gym/tiles.4bpp: $(TILESETDIR)/secondary/dewford_gym/tiles.png
- $(GFX) $< $@ -num_tiles 88
-
-$(TILESETDIR)/secondary/lavaridge_gym/tiles.4bpp: $(TILESETDIR)/secondary/lavaridge_gym/tiles.png
- $(GFX) $< $@ -num_tiles 70
-
-$(TILESETDIR)/secondary/fortree_gym/tiles.4bpp: $(TILESETDIR)/secondary/fortree_gym/tiles.png
- $(GFX) $< $@ -num_tiles 84
-
-$(TILESETDIR)/secondary/mossdeep_gym/tiles.4bpp: $(TILESETDIR)/secondary/mossdeep_gym/tiles.png
- $(GFX) $< $@ -num_tiles 122
-
-$(TILESETDIR)/secondary/sootopolis_gym/tiles.4bpp: $(TILESETDIR)/secondary/sootopolis_gym/tiles.png
- $(GFX) $< $@ -num_tiles 484
-
-$(TILESETDIR)/secondary/trick_house_puzzle/tiles.4bpp: $(TILESETDIR)/secondary/trick_house_puzzle/tiles.png
- $(GFX) $< $@ -num_tiles 255
-
-$(TILESETDIR)/secondary/ship/tiles.4bpp: $(TILESETDIR)/secondary/ship/tiles.png
- $(GFX) $< $@ -num_tiles 342
-
-$(TILESETDIR)/secondary/elite_four/tiles.4bpp: $(TILESETDIR)/secondary/elite_four/tiles.png
- $(GFX) $< $@ -num_tiles 505
+$(TILESETDIR)/secondary/petalburg/tiles.4bpp: GFX_OPTS := -num_tiles 159
+$(TILESETDIR)/secondary/rustboro/tiles.4bpp: GFX_OPTS := -num_tiles 498
+$(TILESETDIR)/secondary/dewford/tiles.4bpp: GFX_OPTS := -num_tiles 343
+$(TILESETDIR)/secondary/slateport/tiles.4bpp: GFX_OPTS := -num_tiles 504
+$(TILESETDIR)/secondary/mauville/tiles.4bpp: GFX_OPTS := -num_tiles 450
+$(TILESETDIR)/secondary/lavaridge/tiles.4bpp: GFX_OPTS := -num_tiles 348
+$(TILESETDIR)/secondary/fallarbor/tiles.4bpp: GFX_OPTS := -num_tiles 374
+$(TILESETDIR)/secondary/fortree/tiles.4bpp: GFX_OPTS := -num_tiles 493
+$(TILESETDIR)/secondary/mossdeep/tiles.4bpp: GFX_OPTS := -num_tiles 499
+$(TILESETDIR)/secondary/pacifidlog/tiles.4bpp: GFX_OPTS := -num_tiles 504
+$(TILESETDIR)/secondary/sootopolis/tiles.4bpp: GFX_OPTS := -num_tiles 180
+$(TILESETDIR)/primary/building/tiles.4bpp: GFX_OPTS := -num_tiles 502
+$(TILESETDIR)/secondary/shop/tiles.4bpp: GFX_OPTS := -num_tiles 502
+$(TILESETDIR)/secondary/pokemon_center/tiles.4bpp: GFX_OPTS := -num_tiles 478
+$(TILESETDIR)/secondary/cave/tiles.4bpp: GFX_OPTS := -num_tiles 420
+$(TILESETDIR)/secondary/pokemon_school/tiles.4bpp: GFX_OPTS := -num_tiles 278
+$(TILESETDIR)/secondary/pokemon_fan_club/tiles.4bpp: GFX_OPTS := -num_tiles 319
+$(TILESETDIR)/secondary/unused_1/tiles.4bpp: GFX_OPTS := -num_tiles 17
+$(TILESETDIR)/secondary/meteor_falls/tiles.4bpp: GFX_OPTS := -num_tiles 422
+$(TILESETDIR)/secondary/oceanic_museum/tiles.4bpp: GFX_OPTS := -num_tiles 319
+$(TILESETDIR)/secondary/cable_club/unknown_tiles.4bpp: GFX_OPTS := -num_tiles 120
+$(TILESETDIR)/secondary/seashore_house/tiles.4bpp: GFX_OPTS := -num_tiles 312
+$(TILESETDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp: GFX_OPTS := -num_tiles 345
+$(TILESETDIR)/secondary/pokemon_day_care/tiles.4bpp: GFX_OPTS := -num_tiles 355
+$(TILESETDIR)/secondary/facility/tiles.4bpp: GFX_OPTS := -num_tiles 503
+$(TILESETDIR)/secondary/secret_base/brown_cave/tiles.4bpp: GFX_OPTS := -num_tiles 83
+$(TILESETDIR)/secondary/secret_base/tree/tiles.4bpp: GFX_OPTS := -num_tiles 83
+$(TILESETDIR)/secondary/secret_base/shrub/tiles.4bpp: GFX_OPTS := -num_tiles 83
+$(TILESETDIR)/secondary/secret_base/blue_cave/tiles.4bpp: GFX_OPTS := -num_tiles 83
+$(TILESETDIR)/secondary/secret_base/yellow_cave/tiles.4bpp: GFX_OPTS := -num_tiles 83
+$(TILESETDIR)/secondary/secret_base/red_cave/tiles.4bpp: GFX_OPTS := -num_tiles 83
+$(TILESETDIR)/secondary/inside_of_truck/tiles.4bpp: GFX_OPTS := -num_tiles 62
+$(TILESETDIR)/secondary/contest/tiles.4bpp: GFX_OPTS := -num_tiles 430
+$(TILESETDIR)/secondary/lilycove_museum/tiles.4bpp: GFX_OPTS := -num_tiles 431
+$(TILESETDIR)/secondary/lab/tiles.4bpp: GFX_OPTS := -num_tiles 500
+$(TILESETDIR)/secondary/underwater/tiles.4bpp: GFX_OPTS := -num_tiles 500
+$(TILESETDIR)/secondary/generic_building/tiles.4bpp: GFX_OPTS := -num_tiles 509
+$(TILESETDIR)/secondary/mauville_game_corner/tiles.4bpp: GFX_OPTS := -num_tiles 469
+$(TILESETDIR)/secondary/unused_2/tiles.4bpp: GFX_OPTS := -num_tiles 150
+$(TILESETDIR)/secondary/rustboro_gym/tiles.4bpp: GFX_OPTS := -num_tiles 94
+$(TILESETDIR)/secondary/dewford_gym/tiles.4bpp: GFX_OPTS := -num_tiles 88
+$(TILESETDIR)/secondary/lavaridge_gym/tiles.4bpp: GFX_OPTS := -num_tiles 70
+$(TILESETDIR)/secondary/fortree_gym/tiles.4bpp: GFX_OPTS := -num_tiles 84
+$(TILESETDIR)/secondary/mossdeep_gym/tiles.4bpp: GFX_OPTS := -num_tiles 122
+$(TILESETDIR)/secondary/sootopolis_gym/tiles.4bpp: GFX_OPTS := -num_tiles 484
+$(TILESETDIR)/secondary/trick_house_puzzle/tiles.4bpp: GFX_OPTS := -num_tiles 255
+$(TILESETDIR)/secondary/ship/tiles.4bpp: GFX_OPTS := -num_tiles 342
+$(TILESETDIR)/secondary/elite_four/tiles.4bpp: GFX_OPTS := -num_tiles 505
# reproduce overflow quirk
-
$(TILESETDIR)/secondary/pokemon_school/tiles.4bpp.lz: $(TILESETDIR)/secondary/pokemon_school/tiles.4bpp
- $(GFX) $< $@ -overflow 10
+ $(GBAGFX) $< $@ -overflow 10
$(TILESETDIR)/secondary/pokemon_fan_club/tiles.4bpp.lz: $(TILESETDIR)/secondary/pokemon_fan_club/tiles.4bpp
- $(GFX) $< $@ -overflow 12
+ $(GBAGFX) $< $@ -overflow 12
$(TILESETDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp.lz: $(TILESETDIR)/secondary/pretty_petal_flower_shop/tiles.4bpp
- $(GFX) $< $@ -overflow 8
+ $(GBAGFX) $< $@ -overflow 8
$(TILESETDIR)/secondary/pokemon_day_care/tiles.4bpp.lz: $(TILESETDIR)/secondary/pokemon_day_care/tiles.4bpp
- $(GFX) $< $@ -overflow 14
+ $(GBAGFX) $< $@ -overflow 14
$(TILESETDIR)/secondary/inside_of_truck/tiles.4bpp.lz: $(TILESETDIR)/secondary/inside_of_truck/tiles.4bpp
- $(GFX) $< $@ -overflow 10
+ $(GBAGFX) $< $@ -overflow 10
$(TILESETDIR)/secondary/battle_tower/tiles.4bpp.lz: $(TILESETDIR)/secondary/battle_tower/tiles.4bpp
- $(GFX) $< $@ -overflow 16
+ $(GBAGFX) $< $@ -overflow 16
# unused copies of secret base tiles
$(TILESETDIR)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(TILESETDIR)/secondary/secret_base/brown_cave/tiles.png
- $(GFX) $< $@ -num_tiles 82
+ $(GBAGFX) $< $@ -num_tiles 82
$(TILESETDIR)/secondary/secret_base/tree/unused_tiles.4bpp: $(TILESETDIR)/secondary/secret_base/tree/tiles.png
- $(GFX) $< $@ -num_tiles 82
+ $(GBAGFX) $< $@ -num_tiles 82
$(TILESETDIR)/secondary/secret_base/shrub/unused_tiles.4bpp: $(TILESETDIR)/secondary/secret_base/shrub/tiles.png
- $(GFX) $< $@ -num_tiles 82
+ $(GBAGFX) $< $@ -num_tiles 82
$(TILESETDIR)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(TILESETDIR)/secondary/secret_base/blue_cave/tiles.png
- $(GFX) $< $@ -num_tiles 82
+ $(GBAGFX) $< $@ -num_tiles 82
$(TILESETDIR)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(TILESETDIR)/secondary/secret_base/yellow_cave/tiles.png
- $(GFX) $< $@ -num_tiles 82
+ $(GBAGFX) $< $@ -num_tiles 82
$(TILESETDIR)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(TILESETDIR)/secondary/secret_base/red_cave/tiles.png
- $(GFX) $< $@ -num_tiles 82
+ $(GBAGFX) $< $@ -num_tiles 82